aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/misc/e-reflow.h
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-05-08 12:56:03 +0800
committerChris Lahey <clahey@src.gnome.org>2001-05-08 12:56:03 +0800
commit5d4895eb431adfbf2c7895d4257fa20a28f474f9 (patch)
treeb9ffd215f0444ecd0349f459fa77aa1069f0a524 /widgets/misc/e-reflow.h
parentc1a0dc0e04b739acc5c35aa3ea761dae11632f9d (diff)
downloadgsoc2013-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.h48
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__ */