2 #include <login-helper/login-helper.h>
3 #include <gtk/gtkmain.h>
4 #include <gtk/gtkwindow.h>
8 static void test_init_login_helper_vpointers (LoginHelper *helper,
9 gpointer test_set_safe,
10 gpointer test_get_device_reqs,
11 gpointer test_get_raise_windows);
13 static gboolean test_set_safe (LoginHelper *helper, gboolean safe);
15 static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper);
17 static Window* test_get_raise_windows (LoginHelper *helper);
19 static void test_post_window (void);
21 static void test_set_wm_dock (void);
23 static GtkWidget *mainwin = NULL;
26 main (int argc, char **argv)
32 if (!bonobo_init (&argc, argv))
34 g_error ("Could not initialize oaf / Bonobo");
37 obj_id = "OAFIID:GNOME_TEST:1.0"; /* just for testing, install manually */
39 helper = BONOBO_OBJECT (g_object_new (LOGIN_HELPER_TYPE, NULL));
41 ret = bonobo_activation_register_active_server (
43 bonobo_object_corba_objref (bonobo_object (helper)),
46 if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
50 case Bonobo_ACTIVATION_REG_NOT_LISTED:
51 fprintf (stderr, "OAFIID not listed\n");
54 fprintf (stderr, "Registration Error: %d\n", ret);
62 CORBA_exception_init (&ev);
64 ret = Bonobo_Unknown_queryInterface (
65 BONOBO_OBJREF (helper),
66 "IDL:Accessibility/LoginHelper:1.0",
71 fprintf (stderr, "queryInterface error: %s\n",
72 bonobo_exception_get_text (&ev));
76 fprintf (stderr, "query returned %p: objref self = %p\n",
77 ret, BONOBO_OBJREF (helper));
81 /* this is a testing hack - we are changing the LoginHelperClass's vpointers here */
83 test_init_login_helper_vpointers ((LoginHelper*)helper, test_set_safe, test_get_device_reqs, test_get_raise_windows);
85 gtk_init (&argc, &argv);
95 test_init_login_helper_vpointers (LoginHelper *helper,
96 gpointer set_safe_func,
97 gpointer get_device_reqs_func,
98 gpointer get_raise_windows_func)
100 LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
101 klass->set_safe = set_safe_func;
102 klass->get_device_reqs = get_device_reqs_func;
103 klass->get_raise_windows = get_raise_windows_func;
107 test_set_safe (LoginHelper *helper, gboolean safe)
112 static LoginHelperDeviceReqFlags
113 test_get_device_reqs (LoginHelper *helper)
115 return LOGIN_HELPER_POST_WINDOWS;
119 test_get_raise_windows (LoginHelper *helper)
121 Window *winlist = g_new0 (Window, 2);
122 winlist[0] = GDK_WINDOW_XWINDOW (mainwin->window);
129 test_set_wm_dock (void)
131 Atom atom_type[1], atom_window_type;
133 gtk_widget_hide (mainwin);
135 gdk_error_trap_push ();
136 atom_window_type = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE");
138 atom_type[0] = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE_DOCK");
140 XChangeProperty (GDK_WINDOW_XDISPLAY (mainwin->window),
141 GDK_WINDOW_XWINDOW (mainwin->window),
143 XA_ATOM, 32, PropModeReplace,
144 (guchar *) &atom_type, 1);
145 gdk_error_trap_pop ();
147 gtk_widget_show (mainwin);
152 test_post_window (void)
154 mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
156 gtk_window_set_screen (GTK_WINDOW (mainwin), gdk_screen_get_default ());
158 /* gtk_window_set_keep_above (GTK_WINDOW (mainwin), true); optional */
159 /* test_set_wm_dock (); optional */
161 gtk_widget_show_all (mainwin);