aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-cal-model-calendar.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-06-18 23:54:15 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-06-19 08:32:06 +0800
commit78c9f356f97f0b40cbd3ad730b8931f75d0649a2 (patch)
treec2cef75d392b1deae3cfc44c3d6bb7b43c417d70 /calendar/gui/e-cal-model-calendar.c
parentc6ccd45a0ef07b12a0313deb3abee032d89eec0a (diff)
downloadgsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar.gz
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar.bz2
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar.lz
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar.xz
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.tar.zst
gsoc2013-evolution-78c9f356f97f0b40cbd3ad730b8931f75d0649a2.zip
Convert ETableModel to an interface.
Similar to what was recently done to ETreeModel.
Diffstat (limited to 'calendar/gui/e-cal-model-calendar.c')
-rw-r--r--calendar/gui/e-cal-model-calendar.c56
1 files changed, 35 insertions, 21 deletions
diff --git a/calendar/gui/e-cal-model-calendar.c b/calendar/gui/e-cal-model-calendar.c
index 114ffd4a7e..cc1e5a46e0 100644
--- a/calendar/gui/e-cal-model-calendar.c
+++ b/calendar/gui/e-cal-model-calendar.c
@@ -35,10 +35,19 @@
#include "dialogs/recur-comp.h"
#include "dialogs/send-comp.h"
-G_DEFINE_TYPE (
+/* Forward Declarations */
+static void e_cal_model_calendar_table_model_init
+ (ETableModelInterface *interface);
+
+static ETableModelInterface *table_model_parent_interface;
+
+G_DEFINE_TYPE_WITH_CODE (
ECalModelCalendar,
e_cal_model_calendar,
- E_TYPE_CAL_MODEL)
+ E_TYPE_CAL_MODEL,
+ G_IMPLEMENT_INTERFACE (
+ E_TYPE_TABLE_MODEL,
+ e_cal_model_calendar_table_model_init))
static ECellDateEditValue *
get_dtend (ECalModelCalendar *model,
@@ -232,7 +241,7 @@ cal_model_calendar_value_at (ETableModel *etm,
g_return_val_if_fail (row >= 0 && row < e_table_model_row_count (etm), NULL);
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->value_at (etm, col, row);
+ return table_model_parent_interface->value_at (etm, col, row);
comp_data = e_cal_model_get_component_at (E_CAL_MODEL (model), row);
if (!comp_data)
@@ -270,7 +279,7 @@ cal_model_calendar_set_value_at (ETableModel *etm,
registry = e_cal_model_get_registry (E_CAL_MODEL (model));
if (col < E_CAL_MODEL_FIELD_LAST) {
- E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->set_value_at (etm, col, row, value);
+ table_model_parent_interface->set_value_at (etm, col, row, value);
return;
}
@@ -362,7 +371,7 @@ cal_model_calendar_is_cell_editable (ETableModel *etm,
g_return_val_if_fail (row >= -1 || (row >= 0 && row < e_table_model_row_count (etm)), FALSE);
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->is_cell_editable (etm, col, row);
+ return table_model_parent_interface->is_cell_editable (etm, col, row);
if (!e_cal_model_test_row_editable (E_CAL_MODEL (etm), row))
return FALSE;
@@ -385,7 +394,7 @@ cal_model_calendar_duplicate_value (ETableModel *etm,
g_return_val_if_fail (col >= 0 && col < E_CAL_MODEL_CALENDAR_FIELD_LAST, NULL);
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->duplicate_value (etm, col, value);
+ return table_model_parent_interface->duplicate_value (etm, col, value);
switch (col) {
case E_CAL_MODEL_CALENDAR_FIELD_DTEND :
@@ -415,7 +424,7 @@ cal_model_calendar_free_value (ETableModel *etm,
g_return_if_fail (col >= 0 && col < E_CAL_MODEL_CALENDAR_FIELD_LAST);
if (col < E_CAL_MODEL_FIELD_LAST) {
- E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->free_value (etm, col, value);
+ table_model_parent_interface->free_value (etm, col, value);
return;
}
@@ -436,7 +445,7 @@ cal_model_calendar_initialize_value (ETableModel *etm,
g_return_val_if_fail (col >= 0 && col < E_CAL_MODEL_CALENDAR_FIELD_LAST, NULL);
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->initialize_value (etm, col);
+ return table_model_parent_interface->initialize_value (etm, col);
switch (col) {
case E_CAL_MODEL_CALENDAR_FIELD_DTEND :
@@ -457,7 +466,7 @@ cal_model_calendar_value_is_empty (ETableModel *etm,
g_return_val_if_fail (col >= 0 && col < E_CAL_MODEL_CALENDAR_FIELD_LAST, TRUE);
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->value_is_empty (etm, col, value);
+ return table_model_parent_interface->value_is_empty (etm, col, value);
switch (col) {
case E_CAL_MODEL_CALENDAR_FIELD_DTEND :
@@ -478,7 +487,7 @@ cal_model_calendar_value_to_string (ETableModel *etm,
g_return_val_if_fail (col >= 0 && col < E_CAL_MODEL_CALENDAR_FIELD_LAST, g_strdup (""));
if (col < E_CAL_MODEL_FIELD_LAST)
- return E_TABLE_MODEL_CLASS (e_cal_model_calendar_parent_class)->value_to_string (etm, col, value);
+ return table_model_parent_interface->value_to_string (etm, col, value);
switch (col) {
case E_CAL_MODEL_CALENDAR_FIELD_DTEND :
@@ -495,21 +504,26 @@ static void
e_cal_model_calendar_class_init (ECalModelCalendarClass *class)
{
ECalModelClass *model_class;
- ETableModelClass *etm_class;
model_class = E_CAL_MODEL_CLASS (class);
model_class->fill_component_from_model = cal_model_calendar_fill_component_from_model;
+}
- etm_class = E_TABLE_MODEL_CLASS (class);
- etm_class->column_count = cal_model_calendar_column_count;
- etm_class->value_at = cal_model_calendar_value_at;
- etm_class->set_value_at = cal_model_calendar_set_value_at;
- etm_class->is_cell_editable = cal_model_calendar_is_cell_editable;
- etm_class->duplicate_value = cal_model_calendar_duplicate_value;
- etm_class->free_value = cal_model_calendar_free_value;
- etm_class->initialize_value = cal_model_calendar_initialize_value;
- etm_class->value_is_empty = cal_model_calendar_value_is_empty;
- etm_class->value_to_string = cal_model_calendar_value_to_string;
+static void
+e_cal_model_calendar_table_model_init (ETableModelInterface *interface)
+{
+ table_model_parent_interface =
+ g_type_interface_peek_parent (interface);
+
+ interface->column_count = cal_model_calendar_column_count;
+ interface->value_at = cal_model_calendar_value_at;
+ interface->set_value_at = cal_model_calendar_set_value_at;
+ interface->is_cell_editable = cal_model_calendar_is_cell_editable;
+ interface->duplicate_value = cal_model_calendar_duplicate_value;
+ interface->free_value = cal_model_calendar_free_value;
+ interface->initialize_value = cal_model_calendar_initialize_value;
+ interface->value_is_empty = cal_model_calendar_value_is_empty;
+ interface->value_to_string = cal_model_calendar_value_to_string;
}
static void