+++ /dev/null
-/* This file is part of GtkMathView-Bonobo, a Bonobo wrapper for GtkMathView.
- * Copyright (C) 2003 Luca Padovani <lpadovan@cs.unibo.it>
- * Pouria Masoudi <pmasoudi@cs.unibo.it>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * For more information, please visit the project's home page
- * http://helm.cs.unibo.it/gtkmathview-bonobo
- * or send an email to <lpadovan@cs.unibo.it>
- */
-
-#include <config.h>
-
-#define HAVE_GMETADOM
-#include <gtkmathview.h>
-
-#include "aux.h"
-#include "view.h"
-
-static GObjectClass* view_parent_class;
-
-static void
-view_object_finalize(GObject* object)
-{
- View* view = VIEW(object);
- /* free resources */
- view_parent_class->finalize(object);
- return;
-}
-
-static void
-impl_view_freeze(PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_freeze(view->control_data->math_view);
- return;
-}
-
-static void
-impl_view_thaw(PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_thaw(view->control_data->math_view);
- return;
-}
-
-static CORBA_boolean
-impl_view_load(PortableServer_Servant servant,
- const CORBA_char *uri,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- return gtk_math_view_load_uri(view->control_data->math_view, uri);
-}
-
-static void
-impl_view_unload(PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_unload(view->control_data->math_view);
-}
-
-static void
-impl_view_setIdAttribute (PortableServer_Servant servant,
- const CORBA_char *ns,
- const CORBA_char *name,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_control_data_set_id_attribute(view->control_data, ns, name);
-}
-
-static void
-impl_view_getIdAttribute (PortableServer_Servant servant,
- CORBA_string *ns,
- CORBA_string *name,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- if (view->control_data->id_ns_uri != NULL)
- *ns = CORBA_string_dup(view->control_data->id_ns_uri->str);
- else
- *ns = NULL;
-
- if (view->control_data->id_name != NULL)
- *name = CORBA_string_dup(view->control_data->id_name);
- else
- *name = NULL;
-}
-
-static void
-impl_view_select(PortableServer_Servant servant,
- const CORBA_char *id,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- GdomeElement* root = gtk_math_view_get_root_element(view->control_data->math_view);
- if (root != NULL)
- {
- GdomeException exc = 0;
- GdomeElement* el = find_element_by_id(root,
- view->control_data->id_ns_uri,
- view->control_data->id_name,
- id);
- if (el != NULL)
- {
- gtk_math_view_select(view->control_data->math_view, el);
- gdome_el_unref(el, &exc);
- g_assert(exc == 0);
- }
- gdome_el_unref(root, &exc);
- g_assert(exc == 0);
- }
-}
-
-static void
-impl_view_unselect(PortableServer_Servant servant,
- const CORBA_char *id,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- GdomeElement* root = gtk_math_view_get_root_element(view->control_data->math_view);
- if (root != NULL)
- {
- GdomeException exc = 0;
- GdomeElement* el = find_element_by_id(root,
- view->control_data->id_ns_uri,
- view->control_data->id_name,
- id);
- if (el != NULL)
- {
- gtk_math_view_unselect(view->control_data->math_view, el);
- gdome_el_unref(el, &exc);
- g_assert(exc == 0);
- }
- gdome_el_unref(root, &exc);
- g_assert(exc == 0);
- }
-}
-
-static CORBA_boolean
-impl_view_isSelected(PortableServer_Servant servant,
- const CORBA_char *id,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- GdomeElement* root = gtk_math_view_get_root_element(view->control_data->math_view);
- CORBA_boolean res = CORBA_FALSE;
- if (root != NULL)
- {
- GdomeException exc = 0;
- GdomeElement* el = find_element_by_id(root,
- view->control_data->id_ns_uri,
- view->control_data->id_name,
- id);
- if (el != NULL)
- {
- res = gtk_math_view_is_selected(view->control_data->math_view, el) ? CORBA_TRUE : CORBA_FALSE;
- gdome_el_unref(el, &exc);
- g_assert(exc == 0);
- }
- gdome_el_unref(root, &exc);
- g_assert(exc == 0);
- }
- return res;
-}
-
-static CORBA_boolean
-impl_view_elementCoords(PortableServer_Servant servant,
- const CORBA_char *id,
- CORBA_short *x, CORBA_short *y,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- GdomeElement* root = gtk_math_view_get_root_element(view->control_data->math_view);
- CORBA_boolean res = CORBA_FALSE;
- if (root != NULL)
- {
- GdomeException exc = 0;
- GdomeElement* el = find_element_by_id(root,
- view->control_data->id_ns_uri,
- view->control_data->id_name,
- id);
- if (el != NULL)
- {
- gint xx;
- gint yy;
- res = gtk_math_view_get_element_coords(view->control_data->math_view, el, &xx, &yy) ? CORBA_TRUE : CORBA_FALSE;
- gdome_el_unref(el, &exc);
- g_assert(exc == 0);
- *x = xx;
- *y = yy;
- }
- gdome_el_unref(root, &exc);
- g_assert(exc == 0);
- }
- return res;
-}
-
-static CORBA_boolean
-impl_view_elementBoundingBox(PortableServer_Servant servant,
- const CORBA_char *id,
- CORBA_short *width, CORBA_short *height, CORBA_short *depth,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- GdomeElement* root = gtk_math_view_get_root_element(view->control_data->math_view);
- CORBA_boolean res = CORBA_FALSE;
- if (root != NULL)
- {
- GdomeException exc = 0;
- GdomeElement* el = find_element_by_id(root,
- view->control_data->id_ns_uri,
- view->control_data->id_name,
- id);
- if (el != NULL)
- {
- gint w;
- gint h;
- gint d;
- 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;
- *height = h;
- *depth = d;
- }
- gdome_el_unref(root, &exc);
- g_assert(exc == 0);
- }
- return res;
-}
-
-static void
-impl_view_getSize(PortableServer_Servant servant,
- CORBA_short *width, CORBA_short *height,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- *width = gtk_math_view_get_width(view->control_data->math_view);
- *height = gtk_math_view_get_height(view->control_data->math_view);
-}
-
-static void
-impl_view_getTop(PortableServer_Servant servant,
- CORBA_short *x, CORBA_short *y,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gint xx;
- gint yy;
- gtk_math_view_get_top(view->control_data->math_view, &xx, &yy);
- *x = xx;
- *y = yy;
-}
-
-static void
-impl_view_setTop (PortableServer_Servant servant,
- CORBA_short x, CORBA_short y,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_set_top(view->control_data->math_view, x, y);
-}
-
-static void
-impl_view_setDefaultFontSize(PortableServer_Servant servant,
- CORBA_short size,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_set_font_size(view->control_data->math_view, size);
-}
-
-static short
-impl_view_getDefaultFontSize(PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- return gtk_math_view_get_font_size(view->control_data->math_view);
-}
-
-static void
-impl_view_setVerbosity(PortableServer_Servant servant,
- const CORBA_short level,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- gtk_math_view_set_log_verbosity(view->control_data->math_view, level);
-}
-
-static short
-impl_view_getVerbosity(PortableServer_Servant servant,
- CORBA_Environment *ev)
-{
- View* view = VIEW (bonobo_object (servant));
- return gtk_math_view_get_log_verbosity(view->control_data->math_view);
-}
-
-static void
-view_class_init(ViewClass* klass)
-{
- GObjectClass* object_class = (GObjectClass *) klass;
- POA_GNOME_GtkMathView_View__epv* epv = &klass->epv;
-
- view_parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = view_object_finalize;
-
- epv->freeze = impl_view_freeze;
- epv->thaw = impl_view_thaw;
- epv->load = impl_view_load;
- epv->unload = impl_view_unload;
- epv->setIdAttribute = impl_view_setIdAttribute;
- epv->getIdAttribute = impl_view_getIdAttribute;
- epv->select = impl_view_select;
- epv->unselect = impl_view_unselect;
- epv->isSelected = impl_view_isSelected;
- epv->elementCoords = impl_view_elementCoords;
- epv->elementBoundingBox = impl_view_elementBoundingBox;
- epv->getSize = impl_view_getSize;
- epv->getTop = impl_view_getTop;
- epv->setTop = impl_view_setTop;
- epv->setDefaultFontSize = impl_view_setDefaultFontSize;
- epv->getDefaultFontSize = impl_view_getDefaultFontSize;
- epv->setVerbosity = impl_view_setVerbosity;
- epv->getVerbosity = impl_view_getVerbosity;
-}
-
-static void
-view_init(View* view)
-{
- /* do some initialization */
-}
-
-View*
-view_new(GtkMathViewControlData* control_data)
-{
- View* view;
- g_return_val_if_fail(control_data != NULL, NULL);
- view = g_object_new(VIEW_TYPE, NULL);
- view->control_data = control_data;
- return view;
-}
-
-BONOBO_TYPE_FUNC_FULL (View, GNOME_GtkMathView_View, BONOBO_TYPE_OBJECT, view)
-