Connected implementation for Accessibility_Magnifier_exit ()
authorbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Sat, 13 Apr 2002 12:55:01 +0000 (12:55 +0000)
committerbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Sat, 13 Apr 2002 12:55:01 +0000 (12:55 +0000)
CORBA method.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@266 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
test/Makefile.am
test/simple-at.c
util/mag_control.c
util/magnifier.c

index 68966ca..d8418f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2002-04-13  Bill Haneman <bill.haneman@sun.com>
+
+        * util/magnifier.c:
+       Added implementation code for Accessibility_Magnifier_exit ().
+
+       * util/mag_control.c:
+       Added test code for above method; you can
+       now kill an existing magnifier via 
+       ./mag_control q, from the util directory.
+
 2002-04-11  Bill Haneman <bill.haneman@sun.com>
 
        * test/app.c, test/keysynth-demo.c:
index 77ab4a7..8c6c202 100644 (file)
@@ -1,6 +1,8 @@
 NULL=
 
-noinst_PROGRAMS = test-simple at app simple-at keysynth-demo accessx-gui
+noinst_PROGRAMS = test-simple at app simple-at keysynth-demo accessx-gui wm_test
+
+wm_test_SOURCES = wm_mode_test.c
 
 at_SOURCES = at.c 
 
index d35ade7..63bec0a 100644 (file)
@@ -33,6 +33,7 @@
 
 static void report_focus_event    (const AccessibleEvent *event, void *user_data);
 static void report_generic_event  (const AccessibleEvent *event, void *user_data);
+static void report_window_event  (const AccessibleEvent *event, void *user_data);
 static void report_text_event     (const AccessibleEvent *event, void *user_data);
 static void report_button_press   (const AccessibleEvent *event, void *user_data);
 static void check_property_change (const AccessibleEvent *event, void *user_data);
@@ -56,6 +57,7 @@ static SPIBoolean name_changed = FALSE;
 static AccessibleEventListener *focus_listener;
 static AccessibleEventListener *property_listener;
 static AccessibleEventListener *generic_listener;
+static AccessibleEventListener *window_listener;
 static AccessibleEventListener *button_listener;
 static AccessibleEventListener *text_listener;
 static AccessibleKeystrokeListener *command_key_listener;
@@ -92,6 +94,7 @@ main (int argc, char **argv)
   focus_listener = SPI_createAccessibleEventListener (report_focus_event, NULL);
   property_listener = SPI_createAccessibleEventListener (check_property_change, NULL); 
   generic_listener = SPI_createAccessibleEventListener (report_generic_event, NULL); 
+  window_listener = SPI_createAccessibleEventListener (report_window_event, NULL); 
   text_listener = SPI_createAccessibleEventListener (report_text_event, NULL); 
   button_listener = SPI_createAccessibleEventListener (report_button_press, NULL);
   SPI_registerGlobalEventListener (focus_listener, "focus:");
@@ -105,6 +108,7 @@ main (int argc, char **argv)
   SPI_registerGlobalEventListener (text_listener, "object:text-caret-moved"); 
   SPI_registerGlobalEventListener (generic_listener, "object:text-changed"); 
   SPI_registerGlobalEventListener (button_listener, "Gtk:GtkWidget:button-press-event");
+  SPI_registerGlobalEventListener (window_listener, "Gtk:GtkWidget:window-state-event");
   n_desktops = SPI_getDesktopCount ();
 
   for (i=0; i<n_desktops; ++i)
@@ -332,6 +336,12 @@ report_generic_event (const AccessibleEvent *event, void *user_data)
 }
 
 void
+report_window_event (const AccessibleEvent *event, void *user_data)
+{
+  fprintf (stderr, "%s event received\n", event->type);
+}
+
+void
 report_text_event (const AccessibleEvent *event, void *user_data)
 {
   AccessibleText *text = Accessible_getText (event->source);
index a2883f0..f1fa71a 100644 (file)
@@ -37,6 +37,10 @@ int main(int argc, char ** argv){
          printf ("destroying/clearing all regions.\n");
          magnifier_clear_all_regions ();
          break;
+       case 'q':
+         printf ("exiting magnifier.\n");
+         magnifier_exit ();
+         break;
        case 'c':
          printf ("creating 3x region at 100,100; 300x200\n");
          magnifier_create_region (3.0, 3.0, 100, 100, 400, 300);
@@ -152,3 +156,10 @@ magnifier_set_magnification (int zoom_region, float mag_factor_x, float mag_fact
                                             &ev);
 }
 
+void
+magnifier_exit (void)
+{
+  Accessibility_Magnifier magnifier = get_magnifier();
+  if (magnifier)
+    Accessibility_Magnifier_exit (magnifier, &ev);
+}
index f3aa4c6..e19700e 100644 (file)
@@ -531,7 +531,11 @@ impl_magnifier_clear_all_zoom_regions (PortableServer_Servant servant,
 static void
 impl_magnifier_exit (PortableServer_Servant servant, CORBA_Environment *ev)
 {
-       ;
+       Magnifier *magnifier = MAGNIFIER (bonobo_object_from_servant (servant));
+       if (magnifier->mag_data->zoom_regions) 
+               g_list_free (magnifier->mag_data->zoom_regions);
+       g_free (magnifier->mag_data);
+       magnifier_exit();
 }
 
 static void