2 #include <login-helper/login-helper.h>
3 #include <gtk/gtkwindow.h>
7 static void test_init_login_helper_vpointers (LoginHelper *helper,
8 gpointer test_set_safe,
9 gpointer test_get_device_reqs,
10 gpointer test_get_raise_windows);
12 static gboolean test_set_safe (LoginHelper *helper, gboolean safe);
14 static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper);
16 static Window* test_get_raise_windows (LoginHelper *helper);
18 static void test_post_window (void);
20 static void test_set_wm_dock (void);
22 static GtkWidget *mainwin = NULL;
25 main (int argc, char **argv)
28 char *obj_id, *display_name;
31 if (!bonobo_init (&argc, argv))
33 g_error ("Could not initialize oaf / Bonobo");
36 obj_id = "OAFIID:GNOME_TEST:1.0"; /* just for testing, install manually */
38 helper = BONOBO_OBJECT (g_object_new (LOGIN_HELPER_TYPE, NULL));
40 ret = bonobo_activation_register_active_server (
42 bonobo_object_corba_objref (bonobo_object (helper)),
45 if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
49 case Bonobo_ACTIVATION_REG_NOT_LISTED:
50 fprintf (stderr, "OAFIID not listed\n");
53 fprintf (stderr, "Registration Error: %d\n", ret);
61 CORBA_exception_init (&ev);
63 ret = Bonobo_Unknown_queryInterface (
64 BONOBO_OBJREF (helper),
65 "IDL:Accessibility/LoginHelper:1.0",
70 fprintf (stderr, "queryInterface error: %s\n",
71 bonobo_exception_get_text (&ev));
75 fprintf (stderr, "query returned %p: objref self = %p\n",
76 ret, BONOBO_OBJREF (helper));
80 /* this is a testing hack - we are changing the LoginHelperClass's vpointers here */
82 test_init_login_helper_vpointers ((LoginHelper*)helper, test_set_safe, test_get_device_reqs, test_get_raise_windows);
84 gtk_init (&argc, &argv);
92 test_init_login_helper_vpointers (LoginHelper *helper,
93 gpointer set_safe_func,
94 gpointer get_device_reqs_func,
95 gpointer get_raise_windows_func)
97 LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
98 klass->set_safe = set_safe_func;
99 klass->get_device_reqs = get_device_reqs_func;
100 klass->get_raise_windows = get_raise_windows_func;
104 test_set_safe (LoginHelper *helper, gboolean safe)
109 static LoginHelperDeviceReqFlags
110 test_get_device_reqs (LoginHelper *helper)
112 return LOGIN_HELPER_POST_WINDOWS;
116 test_get_raise_windows (LoginHelper *helper)
118 Window *winlist = g_new0 (Window, 2);
119 winlist[0] = GDK_WINDOW_XWINDOW (mainwin->window);
128 Atom atom_type[1], atom_window_type;
130 gtk_widget_hide (mainwin);
132 gdk_error_trap_push ();
133 atom_window_type = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE");
135 atom_type[0] = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE_DOCK");
137 XChangeProperty (GDK_WINDOW_XDISPLAY (mainwin->window),
138 GDK_WINDOW_XWINDOW (mainwin->window),
140 XA_ATOM, 32, PropModeReplace,
141 (guchar *) &atom_type, 1);
142 gdk_error_trap_pop ();
144 gtk_widget_show (mainwin);
151 mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
153 gtk_window_set_screen (GTK_WINDOW (mainwin), gdk_screen_get_default ());
155 /* gtk_window_set_keep_above (GTK_WINDOW (mainwin), true); optional */
156 /* test_set_wm_dock (); optional */
158 gtk_widget_show_all (mainwin);