diff examples/svg2code_ex/main.c @ 84:42698de1f653

Support translate() function for transform attribute of 'g' tag.
author Thinker K.F. Li <thinker@branda.to>
date Fri, 22 Aug 2008 12:52:48 +0800
parents ea758bb3bbe2
children 565b55508c8d
line wrap: on
line diff
--- a/examples/svg2code_ex/main.c	Fri Aug 22 00:12:04 2008 +0800
+++ b/examples/svg2code_ex/main.c	Fri Aug 22 12:52:48 2008 +0800
@@ -12,9 +12,25 @@
 static void file_button_handler(event_t *evt, void *arg) {
     ex_rt_t *ex_rt = (ex_rt_t *)arg;
 
-    coord_show(ex_rt->code->file_menu);
-    rdman_coord_changed(ex_rt->rt->rdman, ex_rt->code->file_menu);
-    rdman_redraw_changed(ex_rt->rt->rdman);
+    switch(evt->type) {
+    case EVT_MOUSE_BUT_PRESS:
+	coord_show(ex_rt->code->file_menu);
+	rdman_coord_changed(ex_rt->rt->rdman, ex_rt->code->file_menu);
+	rdman_redraw_changed(ex_rt->rt->rdman);
+	break;
+    }
+}
+
+static void file_menu_handler(event_t *evt, void *arg) {
+    ex_rt_t *ex_rt = (ex_rt_t *)arg;
+
+    switch(evt->type) {
+    case EVT_MOUSE_BUT_PRESS:
+	coord_hide(ex_rt->code->file_menu);
+	rdman_coord_changed(ex_rt->rt->rdman, ex_rt->code->file_menu);
+	rdman_redraw_changed(ex_rt->rt->rdman);
+	break;
+    }
 }
 
 int main(int argc, char * const argv[]) {
@@ -34,6 +50,8 @@
     ex_rt.rt = &rt;
     ex_rt.code = svg2code;
     subject_add_observer(factory, subject, file_button_handler, &ex_rt);
+    subject = coord_get_mouse_event(svg2code->file_menu);
+    subject_add_observer(factory, subject, file_menu_handler, &ex_rt);
 
     X_MB_handle_connection(&rt);