aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/menus/gal-view-etable.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2001-01-18 06:15:52 +0800
committerChris Lahey <clahey@src.gnome.org>2001-01-18 06:15:52 +0800
commit1a6bb41b0df656a29274da049e5fff924859d76f (patch)
tree768e491c5a17aee242471035d65121cf1f0c5ee1 /widgets/menus/gal-view-etable.c
parentf3cd904e2b40296fd78a1837257778002387ca53 (diff)
downloadgsoc2013-evolution-1a6bb41b0df656a29274da049e5fff924859d76f.tar.gz
gsoc2013-evolution-1a6bb41b0df656a29274da049e5fff924859d76f.tar.zst
gsoc2013-evolution-1a6bb41b0df656a29274da049e5fff924859d76f.zip
Added a collection argument to this to set the GalViewCollection.
2001-01-17 Christopher James Lahey <clahey@helixcode.com> * gal-define-views-dialog.c, gal-define-views-dialog.h: Added a collection argument to this to set the GalViewCollection. Connected up the modify, delete, and copy buttons. Documented. * gal-define-views-model.c, gal-define-views-model.h: Added gal_define_views_model_get_view, gal_define_views_model_delete_view, and gal_define_views_model_copy_view methods. Documented. * gal-view-collection.c: Documented. * gal-view-etable.c, gal-view-etable.h: Documented. Implemented edit and clone methods of GalView. Initialized state to a non-NULL value. Added a name parameter to gal_view_etable_new. * gal-view-factory-etable.c: Documented. Added the name argument to gal_view_etable_new. * gal-view-factory.c: Fixed the g_return_val_if_fails to check for GalViewFactory as the type instead of GalView. * gal-view.c, gal-view.h: Added the clone method. svn path=/trunk/; revision=7599
Diffstat (limited to 'widgets/menus/gal-view-etable.c')
-rw-r--r--widgets/menus/gal-view-etable.c56
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);
}