5 set_clipboard(GdomeDOMString* data)
7 GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
8 gtk_clipboard_set_text(clipboard, data->str, gdome_str_length(data));
12 set_frame(BonoboControl *control, gpointer data)
17 click_cb(GtkMathView* math_view, GdomeElement* elem, gint state,
18 GtkMathViewControlData* control_data)
20 GdomeException exc = 0;
22 g_return_if_fail(math_view != NULL);
23 g_return_if_fail(control_data != NULL);
28 GdomeDOMString* href = find_hyperlink(elem);
32 /*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");
41 gtk_math_view_freeze(math_view);
42 action_toggle(action);
43 gtk_math_view_thaw(math_view);
44 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;
62 select_begin_cb(GtkMathView* math_view, GdomeElement* elem, gint state,
63 GtkMathViewControlData* control_data)
65 g_return_if_fail(math_view != NULL);
66 g_return_if_fail(control_data != NULL);
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->id_ns_uri != NULL || control_data->id_name != NULL)
82 GdomeElement* new_elem = find_element_with_id(elem, control_data->id_ns_uri, control_data->id_name);
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,
108 GtkMathViewControlData* control_data)
110 g_return_if_fail(math_view != NULL);
111 g_return_if_fail(control_data != NULL);
113 if (control_data->first_selected != NULL && elem != NULL)
115 GdomeException exc = 0;
117 gtk_math_view_freeze(math_view);
119 if (control_data->root_selected != NULL)
121 gtk_math_view_unselect(math_view, control_data->root_selected);
122 gdome_el_unref(control_data->root_selected, &exc);
124 control_data->root_selected = NULL;
127 if (control_data->id_ns_uri != NULL || control_data->id_name != NULL)
129 GdomeElement* new_root = find_common_ancestor(control_data->first_selected, elem);
130 if (new_root != NULL)
132 control_data->root_selected = find_element_with_id(new_root, control_data->id_ns_uri, control_data->id_name);
133 gdome_el_unref(new_root, &exc);
137 control_data->root_selected = NULL;
140 control_data->root_selected = find_common_ancestor(control_data->first_selected, elem);
142 if (control_data->root_selected != NULL)
143 gtk_math_view_select(math_view, control_data->root_selected);
145 gtk_math_view_thaw(math_view);
150 select_end_cb(GtkMathView* math_view, GdomeElement* elem, gint state,
151 GtkMathViewControlData* control_data)
153 g_return_if_fail(math_view != NULL);
154 g_return_if_fail(control_data != NULL);
156 if (control_data->first_selected != NULL)
158 GdomeException exc = 0;
159 gdome_el_unref(control_data->first_selected, &exc);
161 control_data->first_selected = NULL;
163 if (control_data->root_selected != NULL &&
164 (control_data->id_ns_uri != NULL || control_data->id_name != NULL))
166 GdomeException exc = 0;
167 GdomeDOMString* id = gdome_el_getAttributeNS(control_data->root_selected,
168 control_data->id_ns_uri,
169 control_data->id_name, &exc);
171 g_assert(id != NULL);
179 select_abort_cb(GtkMathView* math_view, GtkMathViewControlData* control_data)
181 GdomeException exc = 0;
183 g_return_if_fail(math_view != NULL);
184 g_return_if_fail(control_data != NULL);
186 if (control_data->first_selected != NULL)
188 gdome_el_unref(control_data->first_selected, &exc);
190 control_data->first_selected = NULL;
193 if (control_data->root_selected != NULL)
195 gtk_math_view_freeze(math_view);
196 gtk_math_view_unselect(math_view, control_data->root_selected);
197 gtk_math_view_thaw(math_view);
198 gdome_el_unref(control_data->root_selected, &exc);
200 control_data->root_selected = NULL;