]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gtkmathview-bonobo/src/control-factory.c
** UNTESTED **
[helm.git] / helm / gtkmathview-bonobo / src / control-factory.c
index c0bda201bcefd77b14edeb89f87cff614d71f83f..5039e34ac2a374c8e8c671b2ba948b5d74d59dd8 100644 (file)
@@ -1,16 +1,16 @@
 
 #include <bonobo.h>
+#include <bonobo/bonobo-shlib-factory.h>
 
-#if 1
 #include <gtkmathview.h>
-#endif
+
+#include "control-factory.h"
 
 enum {
   MATH_VIEW_WIDTH,
   MATH_VIEW_HEIGHT,
   MATH_VIEW_TOP_X,
   MATH_VIEW_TOP_Y,
-  MATH_VIEW_TOP,
   MATH_VIEW_FONT_SIZE,
   MATH_VIEW_ANTI_ALIASING,
   MATH_VIEW_TRANSPARENCY,
@@ -205,127 +205,48 @@ set_prop(BonoboPropertyBag       *bag,
     }
 }
 
-static BonoboControl*
-instantiate_func(void)
+static BonoboObject*
+gtk_math_view_control_factory(BonoboGenericFactory* factory, const gchar* component_id, gpointer closure)
 {
   BonoboControl *control;
-  GtkWidget *math_view;
   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);
 
-  prop_bag = bonobo_property_bag_new(get_prop, set_prop, math_view);
+  persist_file = gtk_math_view_persist_file_new(GTK_MATH_VIEW(math_view));
+  bonobo_object_add_interface(BONOBO_OBJECT(control), persist_file);
 
-  bonobo_control_set_properties(control,BONOBO_OBJREF(prop_bag), NULL);
+  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);
-  return control;
-}
 
-static void 
-notify_property_bag(GtkMathView *math_view,gpointer data)
-{
-  BonoboPropertyBag *prop_bag;
-  BonoboArg    *arg;
+  bonobo_object_unref(BONOBO_OBJECT(prop_bag));
 
-  g_return_if_fail(BONOBO_IS_PROPERTY_BAG(data));
-  prop_bag = BONOBO_PROPERTY_BAG(data);
-
-  //we use arg to notify the container that somthing has changed
-       
-  arg = bonobo_arg_new(BONOBO_ARG_INT);
-  BONOBO_ARG_SET_INT(arg,0);
-
-  //bonobo_property_bag_notify_listeners(prop_bag,);
-}
-
-/*
-GtkMathViewPresistFile *
-gtk_math_view_bonobo_data_construct(gchar *data_file)
-{
-       BonoboObject *retval;
-       BonoboPersistFile *file;
-
-       file = bonobo_persist_file_new(gtk_math_view_load_from_file,
-                       gtk_math_view_save_to_file,
-                       "OAFIID:GNOME_MATH_VIEW_FILE_Control",
-                       data_file);
-
-       if(file == NULL)
-       {
-               bonobo_object_unref(BONOBO_OBJECT (data_file));
-               g_warning("gtk_math_view_bonobo_data_construct:unable to create a new file");
-               return NULL;
-       }
-
-       bonobo_object_add_interface(BONOBO_OBJECT(data_file),
-                                       BONOBO_OBJECT(file));
-       return data_file;
-}
-
-static gint
-gtk_math_view_bonobo_load_from_file(BonoboPresistFile  *pf,
-               const CORBA_char        *filename,
-               CORBA_Environment       *ev,
-               void                    *closure)
-{
-       Bonobo_PersistStream ps = closure;
-       BonoboStream *stream;
-
-       g_return_val_if_fail (data != NULL, -1);
-       //FIXME: controllo del tipo di dato in input
-       
-       stram = bonobo_stream_open(
-                       BONOBO_IO_DRIVER_FS,
-                       filename,Bonobo_STORAGE_READ,
-                       0);
-       if(!stream)
-               return 0;
-
-       //FIXME:I have to extract content type from file
-               
-       
-       Bonobo_PersistStream_load(ps, type, ev);
-       
-       return 1;  //return 1 on success
+  return BONOBO_OBJECT(control);
 }
 
-static gint 
-gtk_math_view_bonobo_save_to_file(BonoboPresistFile            *pf,
-               const CORBA_char        *filename,
-               CORBA_Environment       *ev,
-               void                    *closure)
-{
-       return 1;   //return 1 on success
-}*/
-
+BONOBO_ACTIVATION_SHLIB_FACTORY (CONTROL_FACTORY_ID, "GtkMathView Factory", gtk_math_view_control_factory, NULL);