
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
57 lines
1.7 KiB
C
57 lines
1.7 KiB
C
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
|
#ifndef _E_SORTER_ARRAY_H_
|
|
#define _E_SORTER_ARRAY_H_
|
|
|
|
#include <gtk/gtkobject.h>
|
|
#include <gal/util/e-sorter.h>
|
|
#include <glib.h>
|
|
#include <libgnome/gnome-defs.h>
|
|
|
|
BEGIN_GNOME_DECLS
|
|
|
|
#define E_SORTER_ARRAY_TYPE (e_sorter_array_get_type ())
|
|
#define E_SORTER_ARRAY(o) (GTK_CHECK_CAST ((o), E_SORTER_ARRAY_TYPE, ESorterArray))
|
|
#define E_SORTER_ARRAY_CLASS(k) (GTK_CHECK_CLASS_CAST((k), E_SORTER_ARRAY_TYPE, ESorterArrayClass))
|
|
#define E_IS_SORTER_ARRAY(o) (GTK_CHECK_TYPE ((o), E_SORTER_ARRAY_TYPE))
|
|
#define E_IS_SORTER_ARRAY_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), E_SORTER_ARRAY_TYPE))
|
|
|
|
#ifndef _E_COMPARE_ROWS_FUNC_H_
|
|
#define _E_COMPARE_ROWS_FUNC_H_
|
|
typedef int (*ECompareRowsFunc) (int row1,
|
|
int row2,
|
|
gpointer closure);
|
|
#endif
|
|
|
|
typedef struct {
|
|
ESorter base;
|
|
|
|
ECompareRowsFunc compare;
|
|
gpointer closure;
|
|
|
|
/* If needs_sorting is 0, then model_to_sorted and sorted_to_model are no-ops. */
|
|
int *sorted;
|
|
int *backsorted;
|
|
|
|
int rows;
|
|
} ESorterArray;
|
|
|
|
typedef struct {
|
|
ESorterClass parent_class;
|
|
} ESorterArrayClass;
|
|
|
|
GtkType e_sorter_array_get_type (void);
|
|
ESorterArray *e_sorter_array_construct (ESorterArray *sorter,
|
|
ECompareRowsFunc compare,
|
|
gpointer closure);
|
|
ESorterArray *e_sorter_array_new (ECompareRowsFunc compare,
|
|
gpointer closure);
|
|
void e_sorter_array_clean (ESorterArray *esa);
|
|
void e_sorter_array_set_count (ESorterArray *esa,
|
|
int count);
|
|
void e_sorter_array_append (ESorterArray *esa,
|
|
int count);
|
|
|
|
END_GNOME_DECLS
|
|
|
|
#endif /* _E_SORTER_ARRAY_H_ */
|