summaryrefslogtreecommitdiffstats
path: root/tdeui/tests/qxembedtest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdeui/tests/qxembedtest.cpp')
-rw-r--r--tdeui/tests/qxembedtest.cpp88
1 files changed, 88 insertions, 0 deletions
diff --git a/tdeui/tests/qxembedtest.cpp b/tdeui/tests/qxembedtest.cpp
new file mode 100644
index 000000000..5e870ba8f
--- /dev/null
+++ b/tdeui/tests/qxembedtest.cpp
@@ -0,0 +1,88 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "tqapplication.h"
+#include "tqpushbutton.h"
+#include "tqlineedit.h"
+#include "tqhbox.h"
+#include "tqvbox.h"
+#include "qxembed.h"
+
+WId windowWithName(const char *);
+
+
+int
+main(int argc, char**argv)
+{
+ if (argc != 2)
+ {
+ fprintf(stderr,
+ "usage: qxembedtest [qtoptions] windowid\n"
+ " qxembedtest [qtoptions] windowTitle\n");
+ exit(10);
+ }
+
+
+ TQApplication a(argc,argv);
+
+ TQWidget *main = new TQVBox(NULL,"main",Qt::WDestructiveClose);
+ TQWidget *top = new TQHBox(main);
+ TQPushButton *quit = new TQPushButton("Quit", top);
+ TQObject::connect( quit, TQT_SIGNAL(clicked()), main, TQT_SLOT(close()) );
+ TQLineEdit *edit = new TQLineEdit(top);
+ edit->setText( "Just to see focus changes");
+ QXEmbed *embed = new QXEmbed(main);
+ embed->setProtocol(QXEmbed::XPLAIN);
+ a.setMainWidget(main);
+ main->show();
+
+ WId wid = strtol(argv[1], NULL, 0);
+ if (! wid)
+ wid = windowWithName(argv[1]);
+ if (! wid)
+ {
+ fprintf(stderr,"qxembedtest: window not found\n");
+ exit(10);
+ }
+
+ fprintf(stderr,"qxembedtest: embedding wid=0x%08x\n", (unsigned int)wid);
+
+ embed->embed(wid);
+
+ return a.exec();
+}
+
+
+
+
+
+#include <X11/Xlib.h>
+#include <tqpaintdevice.h>
+
+// This is lifted from X11 xprop.
+
+Window Window_With_Name(Display *dpy, Window top, const char *name)
+{
+ Window *children, dummy;
+ unsigned int nchildren;
+ Window w=0;
+ char *window_name;
+ if (XFetchName(dpy, top, &window_name) && !strcmp(window_name, name))
+ return(top);
+ if (!XQueryTree(dpy, top, &dummy, &dummy, &children, &nchildren))
+ return(0);
+ for (unsigned int i=0; i<nchildren; i++) {
+ w = Window_With_Name(dpy, children[i], name);
+ if (w)
+ break;
+ }
+ if (children)
+ XFree ((char *)children);
+ return(w);
+}
+
+
+WId windowWithName(const char *name)
+{
+ return Window_With_Name(qt_xdisplay(), qt_xrootwin(), name);
+}