diff options
Diffstat (limited to 'widgets/menus/gal-view-etable.c')
-rw-r--r-- | widgets/menus/gal-view-etable.c | 56 |
1 files changed, 51 insertions, 5 deletions
diff --git a/widgets/menus/gal-view-etable.c b/widgets/menus/gal-view-etable.c index d990e29ff9..b748f66952 100644 --- a/widgets/menus/gal-view-etable.c +++ b/widgets/menus/gal-view-etable.c @@ -9,6 +9,7 @@ */ #include <config.h> #include "gal-view-etable.h" +#include <gal/e-table/e-table-config.h> #define PARENT_TYPE gal_view_get_type () @@ -17,7 +18,10 @@ static GalViewClass *gal_view_etable_parent_class; static void gal_view_etable_edit (GalView *view) { - + GalViewEtable *etable_view = GAL_VIEW_ETABLE(view); + e_table_config_new(etable_view->title, + etable_view->spec, + etable_view->state); } static void @@ -40,6 +44,23 @@ gal_view_etable_get_title (GalView *view) return GAL_VIEW_ETABLE(view)->title; } +static GalView * +gal_view_etable_clone (GalView *view) +{ + GalViewEtable *gve, *new; + + gve = GAL_VIEW_ETABLE(view); + + new = gtk_type_new (gal_view_etable_get_type ()); + new->spec = gve->spec; + new->title = g_strdup (gve->title); + new->state = e_table_state_duplicate(gve->state); + + gtk_object_ref(GTK_OBJECT(new->spec)); + + return GAL_VIEW(new); +} + static void gal_view_etable_destroy (GtkObject *object) { @@ -61,6 +82,7 @@ gal_view_etable_class_init (GtkObjectClass *object_class) gal_view_class->load_from_node = gal_view_etable_load_from_node; gal_view_class->save_to_node = gal_view_etable_save_to_node ; gal_view_class->get_title = gal_view_etable_get_title ; + gal_view_class->clone = gal_view_etable_clone ; object_class->destroy = gal_view_etable_destroy ; } @@ -69,23 +91,47 @@ static void gal_view_etable_init (GalViewEtable *gve) { gve->spec = NULL; - gve->state = NULL; + gve->state = e_table_state_new(); gve->title = NULL; } +/** + * gal_view_etable_new + * @spec: The ETableSpecification that this view will be based upon. + * @title: The name of the new view. + * + * Returns a new GalViewEtable. This is primarily for use by + * GalViewFactoryEtable. + * + * Returns: The new GalViewEtable. + */ GalView * -gal_view_etable_new (ETableSpecification *spec) +gal_view_etable_new (ETableSpecification *spec, + const gchar *title) { - return gal_view_etable_construct (gtk_type_new (gal_view_etable_get_type ()), spec); + return gal_view_etable_construct (gtk_type_new (gal_view_etable_get_type ()), spec, title); } +/** + * gal_view_etable_construct + * @view: The view to construct. + * @spec: The ETableSpecification that this view will be based upon. + * @title: The name of the new view. + * + * constructs the GalViewEtable. To be used by subclasses and + * language bindings. + * + * Returns: The GalViewEtable. + */ GalView * gal_view_etable_construct (GalViewEtable *view, - ETableSpecification *spec) + ETableSpecification *spec, + const gchar *title) { if (spec) gtk_object_ref(GTK_OBJECT(spec)); view->spec = spec; + view->title = g_strdup(title); return GAL_VIEW(view); } |