diff options
author | Christopher James Lahey <clahey@ximian.com> | 2002-02-07 18:22:59 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2002-02-07 18:22:59 +0800 |
commit | 9f1ac34671b0446c8eb8855e0aca62d5b69840b0 (patch) | |
tree | ca6f4d720aa6642ddd43c348adb92cb1e5ba0327 /widgets/menus/gal-view-etable.c | |
parent | 6190f4f6879d8533bdb97a7baba33773a6d71d6c (diff) | |
download | gsoc2013-evolution-9f1ac34671b0446c8eb8855e0aca62d5b69840b0.tar.gz gsoc2013-evolution-9f1ac34671b0446c8eb8855e0aca62d5b69840b0.tar.zst gsoc2013-evolution-9f1ac34671b0446c8eb8855e0aca62d5b69840b0.zip |
Bumped the version number to 0.19.99.5.
2002-02-07 Christopher James Lahey <clahey@ximian.com>
* configure.in: Bumped the version number to 0.19.99.5.
* gal/Makefile.am (libgal_la_LIBADD): Added
menus/gal-view-instance-save-as-dialog.lo.
* gal/e-text/e-text.c (next_word): Contains refactored code from
the E_TEP_FORWARD_WORD case of e_text_command.
(e_text_command): Implemented E_TEP_CAPS.
From gal/menus/ChangeLog:
2002-02-07 Christopher James Lahey <clahey@ximian.com>
* Makefile.am (glade_DATA): Added
gal-view-instance-save-as-dialog.glade.
(libgalmenus_la_SOURCES): Added
gal-view-instance-save-as-dialog.c.
(libgalmenusinclude_HEADERS): Added
gal-view-instance-save-as-dialog.h.
* gal-view-collection.c, gal-view-collection.h
(gal_view_collection_append_with_title): Added this new version of
the append function that sets the title and returns the new id as
well.
(gal_view_collection_set_nth_view): Added this function to save
over another view.
(gal_view_collection_get_default_view,
gal_view_collection_set_default_view): Added the concept of a
default view for GalViewCollections.
* gal-view-etable.c, gal-view-etable.h
(gal_view_etable_attach_table, gal_view_etable_attach_tree,
gal_view_etable_detach): Added functions to set the state of a
table or tree and then send GalView "changed" signals whenever
that state changes.
(gal_view_etable_set_state): New function to set the ETableState
of a GalViewETable.
* gal-view-instance-save-as-dialog.c,
gal-view-instance-save-as-dialog.glade,
gal-view-instance-save-as-dialog.h: New dialog to save the current
custom view as a named view.
* gal-view-instance.c, gal-view-instance.h
(gal_view_instance_set_custom_view): New function to set the state
of an instance to custom view and set the custom view to a
particular GalView.
(gal_view_instance_exists): New function to check if this
particular instance has ever been opened before. Use before
gal_view_instance_load.
(gal_view_instance_save_as): New function to open a save as
dialog.
(gal_view_instance_load): Added this function which used to be
part of _construct. This function can be called multiple times,
and those extra times will be ignored. This is so you can set a
default view before loading.
(gal_view_instance_get_default_view,
gal_view_instance_set_default_view): Set the default view for this
instance. If unset, this falls back to the default view for the
corresponding GalViewCollection.
svn path=/trunk/; revision=15590
Diffstat (limited to 'widgets/menus/gal-view-etable.c')
-rw-r--r-- | widgets/menus/gal-view-etable.c | 145 |
1 files changed, 122 insertions, 23 deletions
diff --git a/widgets/menus/gal-view-etable.c b/widgets/menus/gal-view-etable.c index 24d9815034..87351866bd 100644 --- a/widgets/menus/gal-view-etable.c +++ b/widgets/menus/gal-view-etable.c @@ -30,6 +30,31 @@ static GalViewClass *gal_view_etable_parent_class; +static void +detach_table (GalViewEtable *view) +{ + if (view->table == NULL) + return; + if (view->table_state_changed_id) { + gtk_signal_disconnect (GTK_OBJECT (view->table), + view->table_state_changed_id); + } + gtk_object_unref (GTK_OBJECT (view->table)); + view->table = NULL; +} + +static void +detach_tree (GalViewEtable *view) +{ + if (view->tree == NULL) + return; + if (view->tree_state_changed_id) { + gtk_signal_disconnect (GTK_OBJECT (view->tree), + view->tree_state_changed_id); + } + gtk_object_unref (GTK_OBJECT (view->tree)); + view->tree = NULL; +} static void config_changed (ETableConfig *config, GalViewEtable *view) @@ -79,8 +104,8 @@ gal_view_etable_get_title (GalView *view) } static void -gal_view_etable_set_title (GalView *view, - const char *title) +gal_view_etable_set_title (GalView *view, + const char *title) { g_free(GAL_VIEW_ETABLE(view)->title); GAL_VIEW_ETABLE(view)->title = g_strdup(title); @@ -113,6 +138,9 @@ static void gal_view_etable_destroy (GtkObject *object) { GalViewEtable *view = GAL_VIEW_ETABLE(object); + + gal_view_etable_detach (view); + g_free(view->title); if (view->spec) gtk_object_unref(GTK_OBJECT(view->spec)); @@ -148,6 +176,31 @@ gal_view_etable_init (GalViewEtable *gve) gve->title = NULL; } +GtkType +gal_view_etable_get_type (void) +{ + static guint type = 0; + + if (!type) + { + GtkTypeInfo info = + { + "GalViewEtable", + sizeof (GalViewEtable), + sizeof (GalViewEtableClass), + (GtkClassInitFunc) gal_view_etable_class_init, + (GtkObjectInitFunc) gal_view_etable_init, + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL, + }; + + type = gtk_type_unique (PARENT_TYPE, &info); + } + + return type; +} + /** * gal_view_etable_new * @spec: The ETableSpecification that this view will be based upon. @@ -194,27 +247,73 @@ gal_view_etable_construct (GalViewEtable *view, return GAL_VIEW(view); } -GtkType -gal_view_etable_get_type (void) +void +gal_view_etable_set_state (GalViewEtable *view, ETableState *state) { - static guint type = 0; - - if (!type) - { - GtkTypeInfo info = - { - "GalViewEtable", - sizeof (GalViewEtable), - sizeof (GalViewEtableClass), - (GtkClassInitFunc) gal_view_etable_class_init, - (GtkObjectInitFunc) gal_view_etable_init, - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, - }; - - type = gtk_type_unique (PARENT_TYPE, &info); - } + if (view->state) + gtk_object_unref(GTK_OBJECT(view->state)); + view->state = e_table_state_duplicate(state); - return type; + gal_view_changed(GAL_VIEW(view)); +} + +static void +table_state_changed (ETable *table, GalViewEtable *view) +{ + ETableState *state; + + state = e_table_get_state_object (table); + gtk_object_unref (GTK_OBJECT (view->state)); + view->state = state; + + gal_view_changed(GAL_VIEW(view)); +} + +static void +tree_state_changed (ETree *tree, GalViewEtable *view) +{ + ETableState *state; + + state = e_tree_get_state_object (tree); + gtk_object_unref (GTK_OBJECT (view->state)); + view->state = state; + + gal_view_changed(GAL_VIEW(view)); +} + +void +gal_view_etable_attach_table (GalViewEtable *view, ETable *table) +{ + gal_view_etable_detach (view); + + view->table = table; + + e_table_set_state_object(view->table, view->state); + gtk_object_ref (GTK_OBJECT (view->table)); + view->table_state_changed_id = + gtk_signal_connect(GTK_OBJECT(view->table), "state_change", + GTK_SIGNAL_FUNC (table_state_changed), view); +} + +void +gal_view_etable_attach_tree (GalViewEtable *view, ETree *tree) +{ + gal_view_etable_detach (view); + + view->tree = tree; + + e_tree_set_state_object(view->tree, view->state); + gtk_object_ref (GTK_OBJECT (view->tree)); + view->tree_state_changed_id = + gtk_signal_connect(GTK_OBJECT(view->tree), "state_change", + GTK_SIGNAL_FUNC (tree_state_changed), view); +} + +void +gal_view_etable_detach (GalViewEtable *view) +{ + if (view->table != NULL) + detach_table (view); + if (view->tree != NULL) + detach_tree (view); } |