4 set_frame(BonoboControl *control,gpointer data)
6 /*Bonobo_UIContainer remote_ui_container;
7 BonoboUIComponent *ui_component;
8 GtkMathViewControlData *control_data;
9 GtkWidget *scrolled_window;
10 Bonobo_ControlFrame frame;
11 control_data = (GtkMathViewControlData *) data;*/
15 click_cb(GtkMathView* math_view, GdomeElement* elem, gint state, GtkMathViewControlData* control_data)
19 GdomeDOMString* ns_uri;
22 g_return_if_fail(math_view != NULL);
24 printf("*** click signal: %p %x %p\n", elem, state, control_data);
29 GdomeDOMString* href = find_hyperlink(elem);
32 /* printf("hyperlink %s\n", href->str); */
33 gtk_math_view_load_uri(math_view,href->str);
34 gdome_str_unref(href);
38 action = find_self_or_ancestor(elem, MATHML_NS_URI, "maction");
39 /* printf("action? %p\n", action); */
42 gtk_math_view_freeze(math_view);
43 action_toggle(action);
44 gtk_math_view_thaw(math_view);
45 gdome_el_unref(action, &exc);
50 if (control_data->root_selected != NULL)
52 gtk_math_view_freeze(math_view);
53 gtk_math_view_unselect(math_view, control_data->root_selected);
54 gtk_math_view_thaw(math_view);
55 gdome_el_unref(control_data->root_selected, &exc);
57 control_data->root_selected = NULL;
63 select_begin_cb(GtkMathView* math_view, GdomeElement* elem, gint state,GtkMathViewControlData* control_data)
65 g_return_if_fail(math_view != NULL);
66 g_return_if_fail(GTK_IS_MATH_VIEW(math_view));
67 printf("*** select_begin signal: %p %x\n", elem, state);
70 GdomeException exc = 0;
71 gtk_math_view_freeze(math_view);
72 if (control_data->root_selected != NULL)
74 gtk_math_view_unselect(math_view,control_data->root_selected);
75 gdome_el_unref(control_data->root_selected, &exc);
77 control_data->root_selected = NULL;
80 if (control_data->semantic_selection)
82 GdomeElement* new_elem = find_xref_element(elem);
85 gdome_el_ref(new_elem, &exc);
88 control_data->first_selected = control_data->root_selected = new_elem;
92 gdome_el_ref(elem, &exc);
94 gdome_el_ref(elem, &exc);
96 control_data->first_selected = control_data->root_selected = elem;
99 if (control_data->root_selected != NULL)
100 gtk_math_view_select(math_view, control_data->root_selected);
102 gtk_math_view_thaw(math_view);
107 select_over_cb(GtkMathView* math_view, GdomeElement* elem, gint state,GtkMathViewControlData* control_data)
109 g_return_if_fail(math_view != NULL);
110 g_return_if_fail(GTK_IS_MATH_VIEW(math_view));
112 printf("*** select_over signal: %p %x\n", elem, state);
114 if (control_data->first_selected != NULL && elem != NULL)
116 GdomeException exc = 0;
118 gtk_math_view_freeze(math_view);
120 if (control_data->root_selected != NULL)
122 gtk_math_view_unselect(math_view, control_data->root_selected);
123 gdome_el_unref(control_data->root_selected, &exc);
125 control_data->root_selected = NULL;
128 if (control_data->semantic_selection)
130 GdomeElement* new_root = find_common_ancestor(control_data->first_selected, elem);
131 if (new_root != NULL)
133 control_data->root_selected = find_xref_element(new_root);
134 gdome_el_unref(new_root, &exc);
138 control_data->root_selected = NULL;
141 control_data->root_selected = find_common_ancestor(control_data->first_selected, elem);
143 if (control_data->root_selected != NULL)
144 gtk_math_view_select(math_view, control_data->root_selected);
146 gtk_math_view_thaw(math_view);
151 select_end_cb(GtkMathView* math_view, GdomeElement* elem, gint state,GtkMathViewControlData* control_data)
153 g_return_if_fail(math_view != NULL);
154 g_return_if_fail(GTK_IS_MATH_VIEW(math_view));
156 printf("*** select_end signal: %p %x\n", elem, state);
158 if (control_data->first_selected != NULL)
160 GdomeException exc = 0;
161 gdome_el_unref(control_data->first_selected, &exc);
163 control_data->first_selected = NULL;
168 select_abort_cb(GtkMathView* math_view,GtkMathViewControlData* control_data)
170 GdomeException exc = 0;
172 g_return_if_fail(math_view != NULL);
173 g_return_if_fail(GTK_IS_MATH_VIEW(math_view));
175 printf("*** select_abort signal\n");
177 if (control_data->first_selected != NULL)
179 gdome_el_unref(control_data->first_selected, &exc);
181 control_data->first_selected = NULL;
183 if (control_data->root_selected != NULL)
185 gtk_math_view_freeze(math_view);
186 gtk_math_view_unselect(math_view, control_data->root_selected);
187 gtk_math_view_thaw(math_view);
188 gdome_el_unref(control_data->root_selected, &exc);
190 control_data->root_selected = NULL;