aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-calendar-table.h
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-calendar-table.h')
-rw-r--r--calendar/gui/e-calendar-table.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/calendar/gui/e-calendar-table.h b/calendar/gui/e-calendar-table.h
index 1265a80a72..6ca8a32515 100644
--- a/calendar/gui/e-calendar-table.h
+++ b/calendar/gui/e-calendar-table.h
@@ -53,16 +53,30 @@ typedef enum
typedef struct _ECalendarTable ECalendarTable;
typedef struct _ECalendarTableClass ECalendarTableClass;
+
+typedef gboolean (*ECalendarTableFilterFunc) (ECalendarTable *cal_table,
+ CalComponent *comp,
+ gpointer data);
+
struct _ECalendarTable
{
GtkTable table;
+ /* This is the underlying model which contains all the tasks/events. */
CalendarModel *model;
+
+ /* This is the model that we use when filtering the tasks/events. */
+ ETableModel *subset_model;
GtkWidget *etable;
/* Colors for drawing. */
GdkColor colors[E_CALENDAR_TABLE_COLOR_LAST];
+
+ /* Data for filtering the Tasks. */
+ ECalendarTableFilterFunc filter_func;
+ gpointer filter_data;
+ GDestroyNotify filter_data_destroy;
};
struct _ECalendarTableClass
@@ -85,6 +99,15 @@ void e_calendar_table_load_state (ECalendarTable *cal_table,
void e_calendar_table_save_state (ECalendarTable *cal_table,
gchar *filename);
+void e_calendar_table_set_filter_func (ECalendarTable *cal_table,
+ ECalendarTableFilterFunc filter_func,
+ gpointer filter_data,
+ GDestroyNotify filter_data_destroy);
+gboolean e_calendar_table_filter_by_category (ECalendarTable *cal_table,
+ CalComponent *comp,
+ gpointer filter_data);
+
+
#ifdef __cplusplus
}
#endif /* __cplusplus */