+++ /dev/null
-#include <bonobo.h>
-#include <gtkmathview.h>
-#include <glib.h>
-#include "persist-file.h"
-#include "control-factory.h"
-
-static BonoboObjectClass *gtk_math_view_persist_file_parent_class;
-
-static void load_implementation(PortableServer_Servant servant,const gchar *path,
- CORBA_Environment *ev);
-
-static void save_implementation(PortableServer_Servant servant,const gchar *path,
- CORBA_Environment *ev);
-
-static void finalize(GObject *object)
-{
- GtkMathViewPersistFile *file = GTK_MATH_VIEW_PERSIST_FILE(object);
-
- if(file->math_view){
- g_object_unref(file->math_view);
- file->math_view = NULL;
- }
-
- G_OBJECT_CLASS(gtk_math_view_persist_file_parent_class)->finalize (object);
-}
-
-static Bonobo_Persist_ContentTypeList *
-get_content_types(BonoboPersist *persist,CORBA_Environment *ev)
-{
- //FIXME: il tipo di dato non e` noto
- return bonobo_persist_generate_content_types(0);
-}
-
-
-static void
-gtk_math_view_persist_file_class_init(GtkMathViewPersistFileClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS(klass);
- BonoboPersistClass *persist_class = BONOBO_PERSIST_CLASS(klass);
- POA_Bonobo_PersistFile__epv *epv = &klass->epv;
-
- printf("persist file class init\n");
- gtk_math_view_persist_file_parent_class = g_type_class_peek_parent(klass);
-
- epv->load = load_implementation;
- epv->save = save_implementation;
-
- object_class->finalize = finalize;
- persist_class->get_content_types = get_content_types;
-}
-
-GType
-gtk_math_view_persist_file_get_type(void)
-{
- static GType type = 0;
- printf("persist file get type\n");
- if(!type){
- GTypeInfo info = {
- sizeof(GtkMathViewPersistFileClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) gtk_math_view_persist_file_class_init,
- NULL, /* class finalize */
- NULL, /* class_data */
- sizeof(GtkMathViewPersistFile),
- 0, /* n_preallocs */
- (GInstanceInitFunc) NULL
- };
-
- type = bonobo_type_unique(
- BONOBO_TYPE_PERSIST,
- POA_Bonobo_PersistFile__init,POA_Bonobo_PersistFile__fini,
- G_STRUCT_OFFSET(GtkMathViewPersistFileClass, epv),
- &info,"GtkMathViewPresistFile");
- }
- return type;
-}
-
-BonoboObject *
-gtk_math_view_persist_file_new(GtkMathView *math_view)
-{
- BonoboObject *file;
-
- printf("persist file new\n");
- file = g_object_new(gtk_math_view_persist_file_get_type(),NULL);
- bonobo_persist_construct(BONOBO_PERSIST(file),CONTROL_FACTORY_ID);
-
- g_object_ref(math_view);
- GTK_MATH_VIEW_PERSIST_FILE(file)->math_view = math_view;
-
- return file;
-}
-
-static void
-load_implementation(PortableServer_Servant servant,const gchar *path,CORBA_Environment *ev)
-{
- gboolean result;
- GtkMathViewPersistFile* file = GTK_MATH_VIEW_PERSIST_FILE(bonobo_object_from_servant(servant));
- //fd = open(path, O_RDONLY);
-
- result = gtk_math_view_load_uri(file->math_view,path);
- if(!result)
- {
- CORBA_exception_set(ev,CORBA_USER_EXCEPTION,ex_Bonobo_Persist_WrongDataType,NULL);
- }
- return ;
-}
-
-static void
-save_implementation(PortableServer_Servant servant,const gchar *path,CORBA_Environment *ev)
-{
- bonobo_exception_set(ev,"save_exception");
- bonobo_exception_add_handler_str("save_exception",
- "Save option is not valid");
- return;
-}