diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-01-17 02:24:31 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-01-17 07:52:52 +0800 |
commit | 992c8b7d58025cf4d04ed3665210f191c8048339 (patch) | |
tree | ed04bd47c142c1a35820b03c6df8e8455d86f15c /widgets/table/e-table.h | |
parent | 2c476af581cc64bb3de8edc726149a7d8e9677b8 (diff) | |
download | gsoc2013-evolution-992c8b7d58025cf4d04ed3665210f191c8048339.tar.gz gsoc2013-evolution-992c8b7d58025cf4d04ed3665210f191c8048339.tar.zst gsoc2013-evolution-992c8b7d58025cf4d04ed3665210f191c8048339.zip |
libetable cleanups.
Diffstat (limited to 'widgets/table/e-table.h')
-rw-r--r-- | widgets/table/e-table.h | 391 |
1 files changed, 216 insertions, 175 deletions
diff --git a/widgets/table/e-table.h b/widgets/table/e-table.h index 1da89f9e2f..b95444d118 100644 --- a/widgets/table/e-table.h +++ b/widgets/table/e-table.h @@ -6,7 +6,7 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public @@ -40,13 +40,29 @@ #include <table/e-table-sorter.h> #include <table/e-table-search.h> +/* Standard GObject macros */ +#define E_TYPE_TABLE \ + (e_table_get_type ()) +#define E_TABLE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_TABLE, ETable)) +#define E_TABLE_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_TABLE, ETableClass)) +#define E_IS_TABLE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_TABLE)) +#define E_IS_TABLE_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_TABLE)) +#define E_TABLE_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_TABLE, ETableClass)) + G_BEGIN_DECLS -#define E_TABLE_TYPE (e_table_get_type ()) -#define E_TABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_TABLE_TYPE, ETable)) -#define E_TABLE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_TABLE_TYPE, ETableClass)) -#define E_IS_TABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_TABLE_TYPE)) -#define E_IS_TABLE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_TABLE_TYPE)) +typedef struct _ETable ETable; +typedef struct _ETableClass ETableClass; typedef struct _ETableDragSourceSite ETableDragSourceSite; @@ -56,7 +72,7 @@ typedef enum { E_TABLE_CURSOR_LOC_TABLE = 1 << 1 } ETableCursorLoc; -typedef struct { +struct _ETable { GtkTable parent; ETableModel *model; @@ -64,21 +80,21 @@ typedef struct { ETableHeader *full_header, *header; GnomeCanvasItem *canvas_vbox; - ETableGroup *group; + ETableGroup *group; ETableSortInfo *sort_info; - ETableSorter *sorter; + ETableSorter *sorter; ETableSelectionModel *selection; ETableCursorLoc cursor_loc; ETableSpecification *spec; - ETableSearch *search; + ETableSearch *search; - ETableCol *current_search_col; + ETableCol *current_search_col; - guint search_search_id; - guint search_accept_id; + guint search_search_id; + guint search_accept_id; gint table_model_change_id; gint table_row_change_id; @@ -154,201 +170,226 @@ typedef struct { gint header_width; gchar *domain; -} ETable; +}; -typedef struct { +struct _ETableClass { GtkTableClass parent_class; - void (*cursor_change) (ETable *et, gint row); - void (*cursor_activated) (ETable *et, gint row); - void (*selection_change) (ETable *et); - void (*double_click) (ETable *et, gint row, gint col, GdkEvent *event); - gboolean (*right_click) (ETable *et, gint row, gint col, GdkEvent *event); - gboolean (*click) (ETable *et, gint row, gint col, GdkEvent *event); - gboolean (*key_press) (ETable *et, gint row, gint col, GdkEvent *event); - gboolean (*start_drag) (ETable *et, gint row, gint col, GdkEvent *event); - void (*state_change) (ETable *et); - gboolean (*white_space_event) (ETable *et, GdkEvent *event); - - void (*set_scroll_adjustments) (ETable *table, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); + void (*cursor_change) (ETable *et, + gint row); + void (*cursor_activated) (ETable *et, + gint row); + void (*selection_change) (ETable *et); + void (*double_click) (ETable *et, + gint row, + gint col, + GdkEvent *event); + gboolean (*right_click) (ETable *et, + gint row, + gint col, + GdkEvent *event); + gboolean (*click) (ETable *et, + gint row, + gint col, + GdkEvent *event); + gboolean (*key_press) (ETable *et, + gint row, + gint col, + GdkEvent *event); + gboolean (*start_drag) (ETable *et, + gint row, + gint col, + GdkEvent *event); + void (*state_change) (ETable *et); + gboolean (*white_space_event) (ETable *et, + GdkEvent *event); + + void (*set_scroll_adjustments) + (ETable *table, + GtkAdjustment *hadjustment, + GtkAdjustment *vadjustment); /* Source side drag signals */ - void (* table_drag_begin) (ETable *table, - gint row, - gint col, - GdkDragContext *context); - void (* table_drag_end) (ETable *table, - gint row, - gint col, - GdkDragContext *context); - void (* table_drag_data_get) (ETable *table, - gint row, - gint col, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint time); - void (* table_drag_data_delete) (ETable *table, - gint row, - gint col, - GdkDragContext *context); + void (*table_drag_begin) (ETable *table, + gint row, + gint col, + GdkDragContext *context); + void (*table_drag_end) (ETable *table, + gint row, + gint col, + GdkDragContext *context); + void (*table_drag_data_get) (ETable *table, + gint row, + gint col, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time); + void (*table_drag_data_delete) + (ETable *table, + gint row, + gint col, + GdkDragContext *context); /* Target side drag signals */ - void (* table_drag_leave) (ETable *table, - gint row, - gint col, - GdkDragContext *context, - guint time); - gboolean (* table_drag_motion) (ETable *table, - gint row, - gint col, - GdkDragContext *context, - gint x, - gint y, - guint time); - gboolean (* table_drag_drop) (ETable *table, - gint row, - gint col, - GdkDragContext *context, - gint x, - gint y, - guint time); - void (* table_drag_data_received) (ETable *table, - gint row, - gint col, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint time); -} ETableClass; -GType e_table_get_type (void); -ETable *e_table_construct (ETable *e_table, - ETableModel *etm, - ETableExtras *ete, - const gchar *spec, - const gchar *state); -GtkWidget *e_table_new (ETableModel *etm, - ETableExtras *ete, - const gchar *spec, - const gchar *state); + void (*table_drag_leave) (ETable *table, + gint row, + gint col, + GdkDragContext *context, + guint time); + gboolean (*table_drag_motion) (ETable *table, + gint row, + gint col, + GdkDragContext *context, + gint x, + gint y, + guint time); + gboolean (*table_drag_drop) (ETable *table, + gint row, + gint col, + GdkDragContext *context, + gint x, + gint y, + guint time); + void (*table_drag_data_received) + (ETable *table, + gint row, + gint col, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time); +}; + +GType e_table_get_type (void) G_GNUC_CONST; +ETable * e_table_construct (ETable *e_table, + ETableModel *etm, + ETableExtras *ete, + const gchar *spec, + const gchar *state); +GtkWidget * e_table_new (ETableModel *etm, + ETableExtras *ete, + const gchar *spec, + const gchar *state); /* Create an ETable using files. */ -ETable *e_table_construct_from_spec_file (ETable *e_table, - ETableModel *etm, - ETableExtras *ete, - const gchar *spec_fn, - const gchar *state_fn); -GtkWidget *e_table_new_from_spec_file (ETableModel *etm, - ETableExtras *ete, - const gchar *spec_fn, - const gchar *state_fn); +ETable * e_table_construct_from_spec_file + (ETable *e_table, + ETableModel *etm, + ETableExtras *ete, + const gchar *spec_fn, + const gchar *state_fn); +GtkWidget * e_table_new_from_spec_file (ETableModel *etm, + ETableExtras *ete, + const gchar *spec_fn, + const gchar *state_fn); /* To save the state */ -gchar *e_table_get_state (ETable *e_table); -void e_table_save_state (ETable *e_table, - const gchar *filename); -ETableState *e_table_get_state_object (ETable *e_table); +gchar * e_table_get_state (ETable *e_table); +void e_table_save_state (ETable *e_table, + const gchar *filename); +ETableState *e_table_get_state_object (ETable *e_table); /* note that it is more efficient to provide the state at creation time */ -void e_table_set_state (ETable *e_table, - const gchar *state); -void e_table_set_state_object (ETable *e_table, - ETableState *state); -void e_table_load_state (ETable *e_table, - const gchar *filename); -void e_table_set_cursor_row (ETable *e_table, - gint row); - -/* -1 means we don't have the cursor. This is in model rows. */ -gint e_table_get_cursor_row (ETable *e_table); -void e_table_selected_row_foreach (ETable *e_table, - EForeachFunc callback, - gpointer closure); -gint e_table_selected_count (ETable *e_table); -EPrintable *e_table_get_printable (ETable *e_table); -gint e_table_get_next_row (ETable *e_table, - gint model_row); -gint e_table_get_prev_row (ETable *e_table, - gint model_row); -gint e_table_model_to_view_row (ETable *e_table, - gint model_row); -gint e_table_view_to_model_row (ETable *e_table, - gint view_row); -void e_table_get_cell_at (ETable *table, - gint x, - gint y, - gint *row_return, - gint *col_return); -void e_table_get_mouse_over_cell (ETable *table, gint *row, gint *col); -void e_table_get_cell_geometry (ETable *table, - gint row, - gint col, - gint *x_return, - gint *y_return, - gint *width_return, - gint *height_return); +void e_table_set_state (ETable *e_table, + const gchar *state); +void e_table_set_state_object (ETable *e_table, + ETableState *state); +void e_table_load_state (ETable *e_table, + const gchar *filename); +void e_table_set_cursor_row (ETable *e_table, + gint row); + +/* -1 means we don't have the cursor. This is in model rows. */ +gint e_table_get_cursor_row (ETable *e_table); +void e_table_selected_row_foreach (ETable *e_table, + EForeachFunc callback, + gpointer closure); +gint e_table_selected_count (ETable *e_table); +EPrintable * e_table_get_printable (ETable *e_table); +gint e_table_get_next_row (ETable *e_table, + gint model_row); +gint e_table_get_prev_row (ETable *e_table, + gint model_row); +gint e_table_model_to_view_row (ETable *e_table, + gint model_row); +gint e_table_view_to_model_row (ETable *e_table, + gint view_row); +void e_table_get_cell_at (ETable *table, + gint x, + gint y, + gint *row_return, + gint *col_return); +void e_table_get_mouse_over_cell (ETable *table, + gint *row, + gint *col); +void e_table_get_cell_geometry (ETable *table, + gint row, + gint col, + gint *x_return, + gint *y_return, + gint *width_return, + gint *height_return); /* Useful accessor functions. */ -ESelectionModel *e_table_get_selection_model (ETable *table); +ESelectionModel *e_table_get_selection_model (ETable *table); /* Drag & drop stuff. */ /* Target */ -void e_table_drag_get_data (ETable *table, - gint row, - gint col, - GdkDragContext *context, - GdkAtom target, - guint32 time); -void e_table_drag_highlight (ETable *table, - gint row, - gint col); /* col == -1 to highlight entire row. */ -void e_table_drag_unhighlight (ETable *table); -void e_table_drag_dest_set (ETable *table, - GtkDestDefaults flags, - const GtkTargetEntry *targets, - gint n_targets, - GdkDragAction actions); -void e_table_drag_dest_set_proxy (ETable *table, - GdkWindow *proxy_window, - GdkDragProtocol protocol, - gboolean use_coordinates); +void e_table_drag_get_data (ETable *table, + gint row, + gint col, + GdkDragContext *context, + GdkAtom target, + guint32 time); +void e_table_drag_highlight (ETable *table, + gint row, + gint col); /* col == -1 to highlight entire row. */ +void e_table_drag_unhighlight (ETable *table); +void e_table_drag_dest_set (ETable *table, + GtkDestDefaults flags, + const GtkTargetEntry *targets, + gint n_targets, + GdkDragAction actions); +void e_table_drag_dest_set_proxy (ETable *table, + GdkWindow *proxy_window, + GdkDragProtocol protocol, + gboolean use_coordinates); /* There probably should be functions for setting the targets * as a GtkTargetList */ -void e_table_drag_dest_unset (GtkWidget *widget); +void e_table_drag_dest_unset (GtkWidget *widget); /* Source side */ -void e_table_drag_source_set (ETable *table, - GdkModifierType start_button_mask, - const GtkTargetEntry *targets, - gint n_targets, - GdkDragAction actions); -void e_table_drag_source_unset (ETable *table); +void e_table_drag_source_set (ETable *table, + GdkModifierType start_button_mask, + const GtkTargetEntry *targets, + gint n_targets, + GdkDragAction actions); +void e_table_drag_source_unset (ETable *table); /* There probably should be functions for setting the targets * as a GtkTargetList */ -GdkDragContext *e_table_drag_begin (ETable *table, - gint row, - gint col, - GtkTargetList *targets, - GdkDragAction actions, - gint button, - GdkEvent *event); +GdkDragContext *e_table_drag_begin (ETable *table, + gint row, + gint col, + GtkTargetList *targets, + GdkDragAction actions, + gint button, + GdkEvent *event); /* selection stuff */ -void e_table_select_all (ETable *table); -void e_table_invert_selection (ETable *table); +void e_table_select_all (ETable *table); +void e_table_invert_selection (ETable *table); /* This function is only needed in single_selection_mode. */ -void e_table_right_click_up (ETable *table); +void e_table_right_click_up (ETable *table); -void e_table_commit_click_to_add (ETable *table); +void e_table_commit_click_to_add (ETable *table); G_END_DECLS |