diff options
author | JP Rosevear <jpr@ximian.com> | 2001-08-10 23:47:18 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2001-08-10 23:47:18 +0800 |
commit | 2f81032abc0e68f1a2cdbc88c23b0febd2524bb1 (patch) | |
tree | feb1e579c759fdf9e84a46ce8d8f28eb0a0daca5 /widgets/misc | |
parent | 8a2a58927497c4e88482d509f99b689dabe33a24 (diff) | |
download | gsoc2013-evolution-2f81032abc0e68f1a2cdbc88c23b0febd2524bb1.tar.gz gsoc2013-evolution-2f81032abc0e68f1a2cdbc88c23b0febd2524bb1.tar.zst gsoc2013-evolution-2f81032abc0e68f1a2cdbc88c23b0febd2524bb1.zip |
new proto and virtual method
2001-08-10 JP Rosevear <jpr@ximian.com>
* gal/widgets/e-canvas-vbox.h: new proto and virtual method
* gal/widgets/e-canvas-vbox.c (e_canvas_vbox_real_add_item_start):
adds the the item to the beginning
(e_canvas_vbox_add_item_start): call the virtual method
2001-08-10 JP Rosevear <jpr@ximian.com>
* e-table.c (et_build_groups): add the items to the start or end
based on where the click to add should be
(e_table_setup_table): ditto
(et_real_construct): read additional spec flag
* e-table.h: new flag
* e-table-specification.c (etsp_init): init new flag
(e_table_specification_load_from_node): set click to add end flag
(e_table_specification_save_to_node): write out flag
* e-table-specification.h: new flag
svn path=/trunk/; revision=11880
Diffstat (limited to 'widgets/misc')
-rw-r--r-- | widgets/misc/e-canvas-vbox.c | 25 | ||||
-rw-r--r-- | widgets/misc/e-canvas-vbox.h | 2 |
2 files changed, 27 insertions, 0 deletions
diff --git a/widgets/misc/e-canvas-vbox.c b/widgets/misc/e-canvas-vbox.c index 5879d4f672..465548b885 100644 --- a/widgets/misc/e-canvas-vbox.c +++ b/widgets/misc/e-canvas-vbox.c @@ -41,6 +41,7 @@ static void e_canvas_vbox_realize (GnomeCanvasItem *item); static void e_canvas_vbox_reflow (GnomeCanvasItem *item, int flags); static void e_canvas_vbox_real_add_item(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item); +static void e_canvas_vbox_real_add_item_start(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item); static void e_canvas_vbox_resize_children (GnomeCanvasItem *item); static GnomeCanvasGroupClass *parent_class = NULL; @@ -100,6 +101,7 @@ e_canvas_vbox_class_init (ECanvasVboxClass *klass) GTK_ARG_READWRITE, ARG_SPACING); klass->add_item = e_canvas_vbox_real_add_item; + klass->add_item_start = e_canvas_vbox_real_add_item_start; object_class->set_arg = e_canvas_vbox_set_arg; object_class->get_arg = e_canvas_vbox_get_arg; @@ -265,6 +267,21 @@ e_canvas_vbox_real_add_item(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item) } } + +static void +e_canvas_vbox_real_add_item_start(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item) +{ + e_canvas_vbox->items = g_list_prepend(e_canvas_vbox->items, item); + gtk_signal_connect(GTK_OBJECT(item), "destroy", + GTK_SIGNAL_FUNC(e_canvas_vbox_remove_item), e_canvas_vbox); + if ( GTK_OBJECT_FLAGS( e_canvas_vbox ) & GNOME_CANVAS_ITEM_REALIZED ) { + gnome_canvas_item_set(item, + "width", (double) e_canvas_vbox->minimum_width, + NULL); + e_canvas_item_request_reflow(item); + } +} + static void e_canvas_vbox_resize_children (GnomeCanvasItem *item) { @@ -348,3 +365,11 @@ e_canvas_vbox_add_item(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item) if (E_CANVAS_VBOX_CLASS(GTK_OBJECT(e_canvas_vbox)->klass)->add_item) (E_CANVAS_VBOX_CLASS(GTK_OBJECT(e_canvas_vbox)->klass)->add_item) (e_canvas_vbox, item); } + +void +e_canvas_vbox_add_item_start(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item) +{ + if (E_CANVAS_VBOX_CLASS(GTK_OBJECT(e_canvas_vbox)->klass)->add_item_start) + (E_CANVAS_VBOX_CLASS(GTK_OBJECT(e_canvas_vbox)->klass)->add_item_start) (e_canvas_vbox, item); +} + diff --git a/widgets/misc/e-canvas-vbox.h b/widgets/misc/e-canvas-vbox.h index 1dfaf7a726..3a98264cd1 100644 --- a/widgets/misc/e-canvas-vbox.h +++ b/widgets/misc/e-canvas-vbox.h @@ -69,6 +69,7 @@ struct _ECanvasVboxClass /* Virtual methods. */ void (* add_item) (ECanvasVbox *CanvasVbox, GnomeCanvasItem *item); + void (* add_item_start) (ECanvasVbox *CanvasVbox, GnomeCanvasItem *item); }; /* @@ -78,6 +79,7 @@ struct _ECanvasVboxClass * changes. */ void e_canvas_vbox_add_item(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item); +void e_canvas_vbox_add_item_start(ECanvasVbox *e_canvas_vbox, GnomeCanvasItem *item); GtkType e_canvas_vbox_get_type (void); #ifdef __cplusplus |