week-view: implement get_left/right_header methods
Add macro to include private instance data into GcalWeekView objects
This commit is contained in:
+58
-1
@@ -149,6 +149,10 @@ static icaltimetype* gcal_week_view_get_initial_date (GcalView *view
|
|||||||
|
|
||||||
static icaltimetype* gcal_week_view_get_final_date (GcalView *view);
|
static icaltimetype* gcal_week_view_get_final_date (GcalView *view);
|
||||||
|
|
||||||
|
static gchar* gcal_week_view_get_left_header (GcalView *view);
|
||||||
|
|
||||||
|
static gchar* gcal_week_view_get_right_header (GcalView *view);
|
||||||
|
|
||||||
static gboolean gcal_week_view_draw_event (GcalView *view,
|
static gboolean gcal_week_view_draw_event (GcalView *view,
|
||||||
icaltimetype *start_date,
|
icaltimetype *start_date,
|
||||||
icaltimetype *end_date);
|
icaltimetype *end_date);
|
||||||
@@ -159,6 +163,7 @@ static GtkWidget* gcal_week_view_get_by_uuid (GcalView *view
|
|||||||
G_DEFINE_TYPE_WITH_CODE (GcalWeekView,
|
G_DEFINE_TYPE_WITH_CODE (GcalWeekView,
|
||||||
gcal_week_view,
|
gcal_week_view,
|
||||||
GTK_TYPE_CONTAINER,
|
GTK_TYPE_CONTAINER,
|
||||||
|
G_ADD_PRIVATE (GcalWeekView)
|
||||||
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW,
|
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW,
|
||||||
gcal_view_interface_init));
|
gcal_view_interface_init));
|
||||||
|
|
||||||
@@ -235,9 +240,15 @@ gcal_view_interface_init (GcalViewIface *iface)
|
|||||||
iface->get_initial_date = gcal_week_view_get_initial_date;
|
iface->get_initial_date = gcal_week_view_get_initial_date;
|
||||||
iface->get_final_date = gcal_week_view_get_final_date;
|
iface->get_final_date = gcal_week_view_get_final_date;
|
||||||
|
|
||||||
iface->draw_event = gcal_week_view_draw_event;
|
/* iface->mark_current_unit = gcal_week_view_mark_current_unit; */
|
||||||
|
/* iface->clear_marks = gcal_week_view_clear_marks; */
|
||||||
|
|
||||||
|
iface->get_left_header = gcal_week_view_get_left_header;
|
||||||
|
iface->get_right_header = gcal_week_view_get_right_header;
|
||||||
|
|
||||||
|
iface->draw_event = gcal_week_view_draw_event;
|
||||||
iface->get_by_uuid = gcal_week_view_get_by_uuid;
|
iface->get_by_uuid = gcal_week_view_get_by_uuid;
|
||||||
|
/* iface->clear = gcal_week_view_clear; */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1499,6 +1510,52 @@ gcal_week_view_get_final_date (GcalView *view)
|
|||||||
return new_date;
|
return new_date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gchar*
|
||||||
|
gcal_week_view_get_left_header (GcalView *view)
|
||||||
|
{
|
||||||
|
icaltimetype *start_of_week;
|
||||||
|
icaltimetype *end_of_week;
|
||||||
|
gchar start_date[64];
|
||||||
|
gchar end_date[64];
|
||||||
|
struct tm tm_date;
|
||||||
|
gchar *header;
|
||||||
|
|
||||||
|
start_of_week = gcal_week_view_get_initial_date (view);
|
||||||
|
tm_date = icaltimetype_to_tm (start_of_week);
|
||||||
|
e_utf8_strftime_fix_am_pm (start_date, 64, "%b %d", &tm_date);
|
||||||
|
|
||||||
|
end_of_week = gcal_week_view_get_final_date (view);
|
||||||
|
tm_date = icaltimetype_to_tm (end_of_week);
|
||||||
|
e_utf8_strftime_fix_am_pm (end_date, 64, "%b %d", &tm_date);
|
||||||
|
|
||||||
|
header = g_strdup_printf ("%s - %s", start_date, end_date);
|
||||||
|
|
||||||
|
g_free (start_of_week);
|
||||||
|
g_free (end_of_week);
|
||||||
|
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gchar*
|
||||||
|
gcal_week_view_get_right_header (GcalView *view)
|
||||||
|
{
|
||||||
|
GcalWeekViewPrivate *priv;
|
||||||
|
|
||||||
|
icaltimetype *start_of_week;
|
||||||
|
gchar *header;
|
||||||
|
|
||||||
|
priv = gcal_week_view_get_instance_private (GCAL_WEEK_VIEW (view));
|
||||||
|
start_of_week = gcal_week_view_get_initial_date (view);
|
||||||
|
header = g_strdup_printf ("%s %d, %d",
|
||||||
|
_("Week"),
|
||||||
|
icaltime_week_number (*start_of_week) + 1,
|
||||||
|
priv->date->year);
|
||||||
|
|
||||||
|
g_free (start_of_week);
|
||||||
|
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gcal_week_view_draw_event (GcalView *view,
|
gcal_week_view_draw_event (GcalView *view,
|
||||||
icaltimetype *start_date,
|
icaltimetype *start_date,
|
||||||
|
|||||||
Reference in New Issue
Block a user