+gchar*
+gtk_math_view_control_data_get_id_ns_uri(GtkMathViewControlData* cd)
+{
+ g_return_val_if_fail(cd != NULL, NULL);
+ return (cd->id_ns_uri != NULL) ? g_strdup(cd->id_ns_uri->str) : NULL;
+}
+
+void
+gtk_math_view_control_data_set_id_ns_uri(GtkMathViewControlData* cd, const gchar* ns_uri)
+{
+ g_return_if_fail(cd != NULL);
+ if (cd->id_ns_uri != NULL) gdome_str_unref(cd->id_ns_uri);
+ cd->id_ns_uri = (ns_uri != NULL) ? gdome_str_mkref_dup(ns_uri) : NULL;
+}
+
+gchar*
+gtk_math_view_control_data_get_id_name(GtkMathViewControlData* cd)
+{
+ g_return_val_if_fail(cd != NULL, NULL);
+ return (cd->id_name != NULL) ? g_strdup(cd->id_name->str) : NULL;
+}
+
+void
+gtk_math_view_control_data_set_id_name(GtkMathViewControlData* cd, const gchar* name)
+{
+ g_return_if_fail(cd != NULL);
+ if (cd->id_name != NULL) gdome_str_unref(cd->id_name);
+ cd->id_name = (name != NULL) ? gdome_str_mkref_dup(name) : NULL;
+}
+
+void
+gtk_math_view_control_data_set_root_selected(GtkMathViewControlData* cd, GdomeElement* elem)
+{
+ g_return_if_fail(cd != NULL);
+ GdomeException exc = 0;
+
+ gtk_math_view_freeze(cd->math_view);
+
+ if (cd->root_selected != NULL)
+ {
+ gtk_math_view_unselect(cd->math_view, cd->root_selected);
+ gdome_el_unref(cd->root_selected, &exc);
+ g_assert(exc == 0);
+ }
+
+ cd->root_selected = elem;
+ if (cd->root_selected != NULL)
+ {
+ gdome_el_ref(cd->root_selected, &exc);
+ g_assert(exc == 0);
+ gtk_math_view_select(cd->math_view, cd->root_selected);
+ }
+
+ gtk_math_view_thaw(cd->math_view);
+}