diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-05-08 12:56:03 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-05-08 12:56:03 +0800 |
commit | 5d4895eb431adfbf2c7895d4257fa20a28f474f9 (patch) | |
tree | b9ffd215f0444ecd0349f459fa77aa1069f0a524 /widgets/misc/e-reflow.h | |
parent | c1a0dc0e04b739acc5c35aa3ea761dae11632f9d (diff) | |
download | gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar.gz gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar.bz2 gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar.lz gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar.xz gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.tar.zst gsoc2013-evolution-5d4895eb431adfbf2c7895d4257fa20a28f474f9.zip |
Added util/e-sorter-array.lo and widgets/e-reflow-model.lo. Removed
2001-05-07 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am (libgal_la_LIBADD): Added util/e-sorter-array.lo
and widgets/e-reflow-model.lo. Removed
widgets/e-reflow-sorted.lo.
* gal/util/Makefile.am (libutil_la_SOURCES): Added
e-sorter-array.c.
(libgalinclude_HEADERS): Added e-sorter-array.h.
* gal/util/e-sorter-array.c, gal/util/e-sorter-array.h: A sorter
for use with a single compare function to do sorting.
* gal/util/e-util.c, gal/util/e-util.h
(e_marshal_INT__OBJECT_POINTER): Added this marshaller.
* gal/widgets/Makefile.am (libwidgets_la_SOURCES): Added
e-reflow-model.c. Removed e-reflow-sorted.c.
(libwidgetsinclude_HEADERS): Added e-reflow-sorted.h. Removed
e-reflow-model.h.
* gal/widgets/e-reflow-model.c, gal/widgets/e-reflow-model.h:
Model for EReflow. Has a number of items and generates canvas
items on the fly.
* gal/widgets/e-reflow.c, gal/widgets/e-reflow.h: Major rewrite.
This now uses a model to generate its canvas items instead of
having canvas items added to it. It doesn't create the canvas
items now until they will be shown on screen.
svn path=/trunk/; revision=9710
Diffstat (limited to 'widgets/misc/e-reflow.h')
-rw-r--r-- | widgets/misc/e-reflow.h | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/widgets/misc/e-reflow.h b/widgets/misc/e-reflow.h index 641a4af0e5..9ecbb5c529 100644 --- a/widgets/misc/e-reflow.h +++ b/widgets/misc/e-reflow.h @@ -22,6 +22,9 @@ #define __E_REFLOW_H__ #include <libgnomeui/gnome-canvas.h> +#include <gal/widgets/e-reflow-model.h> +#include <gal/widgets/e-selection-model.h> +#include <gal/util/e-sorter-array.h> #ifdef __cplusplus extern "C" { @@ -46,6 +49,8 @@ extern "C" { #define E_IS_REFLOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_REFLOW_TYPE)) +typedef struct EReflowPriv EReflowPriv; + typedef struct _EReflow EReflow; typedef struct _EReflowClass EReflowClass; @@ -54,30 +59,50 @@ struct _EReflow GnomeCanvasGroup parent; /* item specific fields */ - GList *items; /* Of type GnomeCanvasItem */ - GList *columns; /* Of type GList of type GnomeCanvasItem (points into items) */ + EReflowModel *model; + guint model_changed_id; + guint model_items_inserted_id; + guint model_item_changed_id; + + ESelectionModel *selection; + guint selection_changed_id; + ESorterArray *sorter; + + GtkAdjustment *adjustment; + guint adjustment_changed_id; + guint adjustment_value_changed_id; + guint set_scroll_adjustments_id; + + int *heights; + GnomeCanvasItem **items; + int count; + int allocated_count; + + int *columns; gint column_count; /* Number of columnns */ GnomeCanvasItem *empty_text; gchar *empty_message; - + double minimum_width; double width; double height; - + double column_width; - int idle; + int incarnate_idle_id; /* These are all for when the column is being dragged. */ - gboolean column_drag; gdouble start_x; gint which_column_dragged; double temp_column_width; double previous_temp_column_width; + guint column_drag : 1; + guint need_height_update : 1; guint need_column_resize : 1; + guint need_reflow_columns : 1; guint default_cursor_shown : 1; GdkCursor *arrow_cursor; @@ -88,8 +113,7 @@ struct _EReflowClass { GnomeCanvasGroupClass parent_class; - /* Virtual methods. */ - void (* add_item) (EReflow *reflow, GnomeCanvasItem *item, gint *position); + int (*selection_event) (EReflow *reflow, GnomeCanvasItem *item, GdkEvent *event); }; /* @@ -98,18 +122,10 @@ struct _EReflowClass * should also do an ECanvas parent reflow request if its size * changes. */ -void e_reflow_add_item (EReflow *e_reflow, - GnomeCanvasItem *item, - gint *position); GtkType e_reflow_get_type (void); -/* Internal usage only: */ -void e_reflow_post_add_item (EReflow *e_reflow, - GnomeCanvasItem *item); - #ifdef __cplusplus } #endif /* __cplusplus */ - #endif /* __E_REFLOW_H__ */ |