}
extern "C" GdomeElement*
-find_xref_element(GdomeElement* elem)
+find_element_with_id(GdomeElement* elem, GdomeDOMString* ns_uri, GdomeDOMString* name)
{
- DOM::Element el = findElementWithAttribute(DOM::Element(elem), "xref");
+ assert(name != NULL);
+ DOM::Element el;
+ if (ns_uri != NULL)
+ el = findElementWithAttributeNS(DOM::Element(elem), DOM::GdomeString(ns_uri), DOM::GdomeString(name));
+ else
+ el = findElementWithAttribute(DOM::Element(elem), DOM::GdomeString(name));
return gdome_cast_el(el.gdome_object());
}
extern "C" {
#endif
- GdomeElement* find_xref_element(GdomeElement*);
+ void action_toggle(GdomeElement*);
+ GdomeElement* find_element_with_id(GdomeElement*, GdomeDOMString*, GdomeDOMString*);
GdomeDOMString* find_hyperlink(GdomeElement*);
GdomeElement* find_element_by_id(GdomeElement*, GdomeDOMString*, GdomeDOMString*,
const char*);
{
GtkMathViewControlData *cd = g_new(GtkMathViewControlData,1);
cd->math_view = math_view;
- cd->semantic_selection = FALSE;
cd->first_selected = NULL;
cd->root_selected = NULL;
cd->id_ns_uri = NULL;
typedef struct _GtkMathViewControlData
{
GtkMathView* math_view;
- gboolean semantic_selection;
GdomeElement* first_selected;
GdomeElement* root_selected;
GdomeDOMString* id_ns_uri;
control_data->root_selected = NULL;
}
- if (control_data->semantic_selection)
+ if (control_data->id_ns_uri != NULL || control_data->id_name != NULL)
{
- GdomeElement* new_elem = find_xref_element(elem);
+ GdomeElement* new_elem = find_element_with_id(elem, control_data->id_ns_uri, control_data->id_name);
if (new_elem != NULL)
{
gdome_el_ref(new_elem, &exc);
control_data->root_selected = NULL;
}
- if (control_data->semantic_selection)
+ if (control_data->id_ns_uri != NULL || control_data->id_name != NULL)
{
GdomeElement* new_root = find_common_ancestor(control_data->first_selected, elem);
if (new_root != NULL)
{
- control_data->root_selected = find_xref_element(new_root);
+ control_data->root_selected = find_element_with_id(new_root, control_data->id_ns_uri, control_data->id_name);
gdome_el_unref(new_root, &exc);
g_assert(exc == 0);
}
#include <config.h>
+#define HAVE_GMETADOM
#include <gtkmathview.h>
#include "aux.h"
gint w;
gint h;
gint d;
- res = gtk_math_view_get_element_coords(view->control_data->math_view, el, &w, &h, &d) ? CORBA_TRUE : CORBA_FALSE;
+ res = gtk_math_view_get_element_bounding_box(view->control_data->math_view, el, &w, &h, &d) ? CORBA_TRUE : CORBA_FALSE;
gdome_el_unref(el, &exc);
g_assert(exc == 0);
*width = w;