summaryrefslogtreecommitdiffstats
path: root/xparts/xpart_notepad/xp_notepad.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit90825e2392b2d70e43c7a25b8a3752299a933894 (patch)
treee33aa27f02b74604afbfd0ea4f1cfca8833d882a /xparts/xpart_notepad/xp_notepad.cpp
downloadtdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz
tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'xparts/xpart_notepad/xp_notepad.cpp')
-rw-r--r--xparts/xpart_notepad/xp_notepad.cpp114
1 files changed, 114 insertions, 0 deletions
diff --git a/xparts/xpart_notepad/xp_notepad.cpp b/xparts/xpart_notepad/xp_notepad.cpp
new file mode 100644
index 00000000..57173bbb
--- /dev/null
+++ b/xparts/xpart_notepad/xp_notepad.cpp
@@ -0,0 +1,114 @@
+#include <dcopclient.h>
+#include <kapplication.h>
+#include <qmultilineedit.h>
+#include <qfile.h>
+#include <qtextstream.h>
+#include <stdio.h>
+#include <iostream.h>
+#include <xpart.h>
+#include <kdebug.h>
+
+#include "xparthost_stub.h"
+
+class XPartNotepad : public QMultiLineEdit, virtual public XPart
+{
+
+public:
+ XPartNotepad(char *)
+ {
+ setText("This is a xpart component editor");
+ setReadOnly( false );
+ resize( 200, 200 );
+ QMultiLineEdit::setFocus();
+ }
+
+ /** needed by XPartManager to embed the part */
+ Q_UINT32 windowId()
+ { return winId(); }
+
+ /** used by XPartManager to show the part */
+ void show()
+ { printf("show()\n"); QWidget::show(); }
+
+ /** sent by the XPartHost to query an url */
+ bool openURL( const QCString& url )
+ { printf("openURL %s\n", (const char *) url );
+ QFile f(url);
+ QString s;
+ if ( ! f.open(IO_ReadOnly) ) {
+ return false;
+ }
+ QTextStream t( &f );
+ while ( !t.eof() ) {
+ s += t.readLine() + "\n";
+ }
+ f.close();
+ setText(s);
+ return true;
+ }
+
+ /** sent by the XPartHost to close an url */
+ bool closeURL()
+ { printf("closeURL\n"); setText(""); return true; }
+
+ /** called when an action has been activated. name is
+ * the name of the
+ * * action, state is used with Toggle actions to
+ * precise the current state.
+ * */
+ void activateAction( const QString &name, int state )
+ { printf("activateAction: %s, %d\n", name.latin1(), state ); }
+
+ /** are extentions available -> browser extension
+ * / TextEditor ? */
+ DCOPRef queryExtension( const QCString& extension )
+ { printf("query Extension : %s\n", (const char * ) extension ); return DCOPRef(); }
+
+
+protected:
+ void focusInEvent( QFocusEvent * )
+ { kdDebug() << "Focus in" << endl; QMultiLineEdit::setFocus(); }
+ void focusOutEvent( QFocusEvent * )
+ { kdDebug() << "Focus Out" << endl;QMultiLineEdit::setFocus(); }
+};
+
+int main( int argc, char **argv )
+{
+ if (argc < 3) {
+ printf("application need arguments");
+ return 1;
+ }
+ printf("args: XPartHost appId = %s , XPartHost_KPart objId = %s\n", argv[1], argv[2] );
+
+ KApplication app( argc, argv, "xp_notepad" );
+ XPartNotepad * xpn = new XPartNotepad("xp_notepad");
+ app.setMainWidget( xpn );
+ app.dcopClient()->attach();
+ QCString appId = app.dcopClient()->registerAs("xp_notepad", true);
+
+ XPartHost_stub xph_stub( argv[1], argv[2] );
+ DCOPRef xpn_dcopref( xpn );
+
+ DCOPRef xph_dcopref = xph_stub.registerXPart(xpn_dcopref);
+ if ( xph_dcopref.isNull() ) {
+ printf("could not register\n");
+ return 2;
+ }
+ printf("XPart registered!\n");
+
+ // Initializing actions:
+ const char * actions =
+"<!DOCTYPE actionList SYSTEM \"actionlist.dtd\">\n"
+"<Actionlist>\n"
+" <Action name=\"open_url\" />\n"
+" <Action name=\"close_url\" />\n"
+" <Action name=\"nonexistant\" />\n"
+" <XMLFile location=\"./xp_notepad.rc\" />\n"
+"</Actionlist>\n";
+ xph_stub.createActions( actions );
+
+ return app.exec();
+}
+
+
+