2 #include <bonobo/bonobo-shlib-factory.h>
3 #include <gtkmathview.h>
4 #include "control-factory.h"
12 MATH_VIEW_ANTI_ALIASING,
13 MATH_VIEW_TRANSPARENCY,
15 MATH_VIEW_FONT_MANAGER
20 make_reg_id(const char *iid)
23 id = bonobo_activation_make_registration_id(iid,Display_String(gdk_display));
28 get_prop(BonoboPropertyBag *bag,
31 CORBA_Environment *ev,
34 GtkMathView *math_view;
36 g_return_if_fail(GTK_IS_MATH_VIEW(user_data));
38 math_view = GTK_MATH_VIEW(user_data);
44 gint i = gtk_math_view_get_width(math_view);
45 g_assert(arg->_type == BONOBO_ARG_INT);
46 BONOBO_ARG_SET_INT(arg,i);
49 case MATH_VIEW_HEIGHT:
51 guint i = gtk_math_view_get_height(math_view);
53 g_assert(arg->_type == BONOBO_ARG_INT);
54 BONOBO_ARG_SET_INT(arg,i);
59 guint new_top_y,new_top_x;
61 g_assert(arg->_type == BONOBO_ARG_INT);
62 gtk_math_view_get_top(math_view,&new_top_x, &new_top_y);
63 BONOBO_ARG_SET_INT(arg,new_top_x);
68 guint new_top_y,new_top_x;
70 g_assert(arg->_type == BONOBO_ARG_INT);
71 gtk_math_view_get_top(math_view,&new_top_x,&new_top_y);
72 BONOBO_ARG_SET_INT(arg,new_top_y);
75 case MATH_VIEW_FONT_SIZE:
77 guint i = gtk_math_view_get_font_size(math_view);
78 g_assert(arg->_type == BONOBO_ARG_INT);
80 BONOBO_ARG_SET_INT(arg,i);
83 case MATH_VIEW_ANTI_ALIASING:
85 gboolean i = gtk_math_view_get_anti_aliasing(math_view);
86 g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
88 BONOBO_ARG_SET_BOOLEAN(arg,i);
91 case MATH_VIEW_TRANSPARENCY:
93 gboolean i = gtk_math_view_get_transparency(math_view);
94 g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
96 BONOBO_ARG_SET_BOOLEAN(arg,i);
99 case MATH_VIEW_VERBOSITY:
101 gint i = gtk_math_view_get_log_verbosity(math_view);
102 g_assert(arg->_type == BONOBO_ARG_INT);
104 BONOBO_ARG_SET_INT(arg,i);
107 case MATH_VIEW_FONT_MANAGER:
109 gint i = (gint) gtk_math_view_get_font_manager_type(math_view);
110 BONOBO_ARG_SET_INT(arg,i);
119 set_prop(BonoboPropertyBag *bag,
120 const BonoboArg *arg,
122 CORBA_Environment *ev,
125 GtkMathView *math_view;
127 g_return_if_fail(GTK_IS_MATH_VIEW(user_data));
129 math_view = GTK_MATH_VIEW(user_data);
133 /*case MATH_VIEW_WIDTH:
134 g_assert(arg->_type == BONOBO_ARG_INT);
136 guint i = gtk_math_view_set_width(math_view);
137 BONOBO_ARG_SET_INT(arg,i);
139 case MATH_VIEW_HEIGHT:
140 g_assert(arg->_type == BONOBO_ARG_INT);
142 guint i = gtk_math_view_get_height(math_view);
143 BONOBO_ARG_SET_INT(arg,i);
145 case MATH_VIEW_TOP_X:
148 g_assert(arg->_type == BONOBO_ARG_INT);
150 gtk_math_view_get_top(math_view, NULL, &old_top_y);
151 gtk_math_view_set_top(math_view, BONOBO_ARG_GET_INT(arg), old_top_y);
154 case MATH_VIEW_TOP_Y:
157 g_assert(arg->_type == BONOBO_ARG_INT);
159 gtk_math_view_get_top(math_view, &old_top_x, NULL);
160 gtk_math_view_set_top(math_view, BONOBO_ARG_GET_INT(arg), old_top_x);
163 case MATH_VIEW_FONT_SIZE:
165 guint i = gtk_math_view_get_font_size(math_view);
166 g_assert(arg->_type == BONOBO_ARG_INT);
168 BONOBO_ARG_SET_INT(arg,i);
171 case MATH_VIEW_ANTI_ALIASING:
173 gboolean i = gtk_math_view_get_anti_aliasing(math_view);
174 g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
176 BONOBO_ARG_SET_BOOLEAN(arg,i);
179 case MATH_VIEW_TRANSPARENCY:
181 gboolean i = gtk_math_view_get_transparency(math_view);
182 g_assert(arg->_type == BONOBO_ARG_BOOLEAN);
184 BONOBO_ARG_SET_BOOLEAN(arg,i);
187 case MATH_VIEW_VERBOSITY:
189 gint i = gtk_math_view_get_log_verbosity(math_view);
190 g_assert(arg->_type == BONOBO_ARG_INT);
192 BONOBO_ARG_SET_INT(arg,i);
195 case MATH_VIEW_FONT_MANAGER:
197 gint i = (gint) gtk_math_view_get_font_manager_type(math_view);
198 BONOBO_ARG_SET_INT(arg,i);
202 bonobo_exception_set (ev, ex_Bonobo_PropertyBag_NotFound);
208 gtk_math_view_control_factory(BonoboGenericFactory* factory, const gchar* component_id, gpointer closure)
210 BonoboControl *control;
211 BonoboPropertyBag *prop_bag;
212 GtkWidget *math_view;
213 BonoboObject *persist_file;
214 BonoboObject *persist_stream;
216 math_view = gtk_math_view_new(NULL,NULL);
217 gtk_widget_show(math_view);
219 control = bonobo_control_new(math_view);
221 persist_file = gtk_math_view_persist_file_new(GTK_MATH_VIEW(math_view));
222 bonobo_object_add_interface(BONOBO_OBJECT(control), persist_file);
224 persist_stream = gtk_math_view_persist_stream_new(GTK_MATH_VIEW(math_view));
225 bonobo_object_add_interface(BONOBO_OBJECT(control), persist_stream);
227 prop_bag = bonobo_property_bag_new(get_prop, set_prop, math_view);
228 bonobo_control_set_properties(control, BONOBO_OBJREF(prop_bag), NULL);
230 bonobo_property_bag_add(prop_bag,"width",MATH_VIEW_WIDTH,BONOBO_ARG_INT,
232 bonobo_property_bag_add(prop_bag,"height",MATH_VIEW_HEIGHT,BONOBO_ARG_INT,
234 bonobo_property_bag_add(prop_bag,"top_x",MATH_VIEW_TOP_X,BONOBO_ARG_INT,
236 bonobo_property_bag_add(prop_bag,"top_y",MATH_VIEW_TOP_Y,BONOBO_ARG_INT,
238 bonobo_property_bag_add(prop_bag,"font_size",MATH_VIEW_FONT_SIZE,BONOBO_ARG_INT,
240 bonobo_property_bag_add(prop_bag,"anti_aliasing",MATH_VIEW_ANTI_ALIASING,BONOBO_ARG_BOOLEAN,
241 NULL,"anti_aliasing",0);
242 bonobo_property_bag_add(prop_bag,"transparency",MATH_VIEW_TRANSPARENCY,BONOBO_ARG_BOOLEAN,
243 NULL,"transparency",0);
244 bonobo_property_bag_add(prop_bag,"verbosity",MATH_VIEW_VERBOSITY,BONOBO_ARG_INT,
246 bonobo_property_bag_add(prop_bag,"font_manager",MATH_VIEW_FONT_MANAGER,BONOBO_ARG_INT,
247 NULL,"font_manager",0);
249 bonobo_object_unref(BONOBO_OBJECT(prop_bag));
250 //bonobo_object_unref(BONOBO_OBJECT(persist_file));
251 //bonobo_object_unref(BONOBO_OBJECT(persist_stream));
253 return BONOBO_OBJECT(control);
256 BONOBO_ACTIVATION_SHLIB_FACTORY (CONTROL_FACTORY_ID, "GtkMathView Factory", gtk_math_view_control_factory, NULL);