+++ /dev/null
-
-#include <bonobo.h>
-#include <bonobo/bonobo-shlib-factory.h>
-
-#include <gtkmathview.h>
-
-#include "control-factory.h"
-
-enum {
- MATH_VIEW_WIDTH,
- MATH_VIEW_HEIGHT,
- MATH_VIEW_TOP_X,
- MATH_VIEW_TOP_Y,
- MATH_VIEW_FONT_SIZE,
- MATH_VIEW_ANTI_ALIASING,
- MATH_VIEW_TRANSPARENCY,
- MATH_VIEW_VERBOSITY,
- MATH_VIEW_FONT_MANAGER
-} math_args;
-
-
-/*static char *
-make_reg_id(const char *iid)
-{
- char *id;
- id = bonobo_activation_make_registration_id(iid,Display_String(gdk_display));
- return id;
-}*/
-
-static void
-get_prop(BonoboPropertyBag *bag,
- BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- GtkMathView *math_view;
-
- g_return_if_fail(GTK_IS_MATH_VIEW(user_data));
-
- math_view = GTK_MATH_VIEW(user_data);
-
- switch(arg_id)
- {
- case MATH_VIEW_WIDTH:
- {
- gint i = gtk_math_view_get_width(math_view);
- g_assert(arg->_type == BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_HEIGHT:
- {
- guint i = gtk_math_view_get_height(math_view);
-
- g_assert(arg->_type == BONOBO_ARG_INT);
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_TOP_X:
- {
- guint new_top_y,new_top_x;
-
- g_assert(arg->_type == BONOBO_ARG_INT);
- gtk_math_view_get_top(math_view,&new_top_x, &new_top_y);
- BONOBO_ARG_SET_INT(arg,new_top_x);
- }
- break;
- case MATH_VIEW_TOP_Y:
- {
- guint new_top_y,new_top_x;
-
- g_assert(arg->_type == BONOBO_ARG_INT);
- gtk_math_view_get_top(math_view,&new_top_x,&new_top_y);
- BONOBO_ARG_SET_INT(arg,new_top_y);
- }
- break;
- case MATH_VIEW_FONT_SIZE:
- {
- guint i = gtk_math_view_get_font_size(math_view);
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_ANTI_ALIASING:
- {
- gboolean i = gtk_math_view_get_anti_aliasing(math_view);
- g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
-
- BONOBO_ARG_SET_BOOLEAN(arg,i);
- }
- break;
- case MATH_VIEW_TRANSPARENCY:
- {
- gboolean i = gtk_math_view_get_transparency(math_view);
- g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
-
- BONOBO_ARG_SET_BOOLEAN(arg,i);
- }
- break;
- case MATH_VIEW_VERBOSITY:
- {
- gint i = gtk_math_view_get_log_verbosity(math_view);
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_FONT_MANAGER:
- {gint i = (gint) gtk_math_view_get_font_manager_type(math_view);
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- default:
- g_assert(FALSE);
- }
-}
-
-static void
-set_prop(BonoboPropertyBag *bag,
- const BonoboArg *arg,
- guint arg_id,
- CORBA_Environment *ev,
- gpointer user_data)
-{
- GtkMathView *math_view;
-
- g_return_if_fail(GTK_IS_MATH_VIEW(user_data));
-
- math_view = GTK_MATH_VIEW(user_data);
-
- switch(arg_id)
- {
- /*case MATH_VIEW_WIDTH:
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- guint i = gtk_math_view_set_width(math_view);
- BONOBO_ARG_SET_INT(arg,i);
- break;
- case MATH_VIEW_HEIGHT:
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- guint i = gtk_math_view_get_height(math_view);
- BONOBO_ARG_SET_INT(arg,i);
- break;*/
- case MATH_VIEW_TOP_X:
- {
- guint old_top_y;
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- gtk_math_view_get_top(math_view, NULL, &old_top_y);
- gtk_math_view_set_top(math_view, BONOBO_ARG_GET_INT(arg), old_top_y);
- }
- break;
- case MATH_VIEW_TOP_Y:
- {
- guint old_top_x;
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- gtk_math_view_get_top(math_view, &old_top_x, NULL);
- gtk_math_view_set_top(math_view, BONOBO_ARG_GET_INT(arg), old_top_x);
- }
- break;
- case MATH_VIEW_FONT_SIZE:
- {
- guint i = gtk_math_view_get_font_size(math_view);
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_ANTI_ALIASING:
- {
- gboolean i = gtk_math_view_get_anti_aliasing(math_view);
- g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
-
- BONOBO_ARG_SET_BOOLEAN(arg,i);
- }
- break;
- case MATH_VIEW_TRANSPARENCY:
- {
- gboolean i = gtk_math_view_get_transparency(math_view);
- g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
-
- BONOBO_ARG_SET_BOOLEAN(arg,i);
- }
- break;
- case MATH_VIEW_VERBOSITY:
- {
- gint i = gtk_math_view_get_log_verbosity(math_view);
- g_assert(arg->_type == BONOBO_ARG_INT);
-
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- case MATH_VIEW_FONT_MANAGER:
- {
- gint i = (gint) gtk_math_view_get_font_manager_type(math_view);
- BONOBO_ARG_SET_INT(arg,i);
- }
- break;
- default:
- g_assert(FALSE);
- }
-}
-
-static BonoboObject*
-gtk_math_view_control_factory(BonoboGenericFactory* factory, const gchar* component_id, gpointer closure)
-{
- BonoboControl *control;
- BonoboPropertyBag *prop_bag;
- GtkWidget *math_view;
- BonoboObject *persist_file;
-
- math_view = gtk_math_view_new(NULL,NULL);
- gtk_widget_show(math_view);
-
- control = bonobo_control_new(math_view);
-
- persist_file = gtk_math_view_persist_file_new(GTK_MATH_VIEW(math_view));
- bonobo_object_add_interface(BONOBO_OBJECT(control), persist_file);
-
- prop_bag = bonobo_property_bag_new(get_prop, set_prop, math_view);
- bonobo_control_set_properties(control, BONOBO_OBJREF(prop_bag), NULL);
-
- bonobo_property_bag_add(prop_bag,"width",MATH_VIEW_WIDTH,BONOBO_ARG_INT,
- NULL,"width",0);
- bonobo_property_bag_add(prop_bag,"height",MATH_VIEW_HEIGHT,BONOBO_ARG_INT,
- NULL,"height",0);
- bonobo_property_bag_add(prop_bag,"top_x",MATH_VIEW_TOP_X,BONOBO_ARG_INT,
- NULL,"top_x",0);
- bonobo_property_bag_add(prop_bag,"top_y",MATH_VIEW_TOP_Y,BONOBO_ARG_INT,
- NULL,"top_y",0);
- bonobo_property_bag_add(prop_bag,"font_size",MATH_VIEW_FONT_SIZE,BONOBO_ARG_INT,
- NULL,"font_size",0);
- bonobo_property_bag_add(prop_bag,"anti_aliasing",MATH_VIEW_ANTI_ALIASING,BONOBO_ARG_BOOLEAN,
- NULL,"anti_aliasing",0);
- bonobo_property_bag_add(prop_bag,"transparency",MATH_VIEW_TRANSPARENCY,BONOBO_ARG_BOOLEAN,
- NULL,"transparency",0);
- bonobo_property_bag_add(prop_bag,"verbosity",MATH_VIEW_VERBOSITY,BONOBO_ARG_INT,
- NULL,"verbosity",0);
- bonobo_property_bag_add(prop_bag,"font_manager",MATH_VIEW_FONT_MANAGER,BONOBO_ARG_NULL,
- NULL,"font_manager",0);
-
- bonobo_object_unref(BONOBO_OBJECT(prop_bag));
-
- return BONOBO_OBJECT(control);
-}
-
-BONOBO_ACTIVATION_SHLIB_FACTORY (CONTROL_FACTORY_ID, "GtkMathView Factory", gtk_math_view_control_factory, NULL);
-