views/dazzling-month-view: Sketch timeline subscription
Right now it does nothing beyond reporting a range, but eventually we'll populate this code.
This commit is contained in:
@@ -233,6 +233,7 @@ maybe_add_subscribers_to_timeline (GcalWindow *self)
|
|||||||
|
|
||||||
timeline = gcal_manager_get_timeline (gcal_context_get_manager (self->context));
|
timeline = gcal_manager_get_timeline (gcal_context_get_manager (self->context));
|
||||||
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->week_view));
|
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->week_view));
|
||||||
|
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->dazzling_month_view));
|
||||||
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->month_view));
|
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->month_view));
|
||||||
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->agenda_view));
|
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->agenda_view));
|
||||||
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->date_chooser));
|
gcal_timeline_add_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->date_chooser));
|
||||||
@@ -833,6 +834,7 @@ gcal_window_dispose (GObject *object)
|
|||||||
|
|
||||||
timeline = gcal_manager_get_timeline (gcal_context_get_manager (self->context));
|
timeline = gcal_manager_get_timeline (gcal_context_get_manager (self->context));
|
||||||
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->week_view));
|
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->week_view));
|
||||||
|
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->dazzling_month_view));
|
||||||
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->month_view));
|
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->month_view));
|
||||||
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->agenda_view));
|
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->agenda_view));
|
||||||
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->date_chooser));
|
gcal_timeline_remove_subscriber (timeline, GCAL_TIMELINE_SUBSCRIBER (self->date_chooser));
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
#include "gcal-dazzling-month-view.h"
|
#include "gcal-dazzling-month-view.h"
|
||||||
#include "gcal-debug.h"
|
#include "gcal-debug.h"
|
||||||
#include "gcal-month-view-row.h"
|
#include "gcal-month-view-row.h"
|
||||||
|
#include "gcal-timeline-subscriber.h"
|
||||||
#include "gcal-utils.h"
|
#include "gcal-utils.h"
|
||||||
#include "gcal-view-private.h"
|
#include "gcal-view-private.h"
|
||||||
|
|
||||||
@@ -65,7 +66,11 @@ static void gcal_view_interface_init (GcalViewInterf
|
|||||||
|
|
||||||
static void gtk_buildable_interface_init (GtkBuildableIface *iface);
|
static void gtk_buildable_interface_init (GtkBuildableIface *iface);
|
||||||
|
|
||||||
|
static void gcal_timeline_subscriber_interface_init (GcalTimelineSubscriberInterface *iface);
|
||||||
|
|
||||||
|
|
||||||
G_DEFINE_FINAL_TYPE_WITH_CODE (GcalDazzlingMonthView, gcal_dazzling_month_view, GTK_TYPE_WIDGET,
|
G_DEFINE_FINAL_TYPE_WITH_CODE (GcalDazzlingMonthView, gcal_dazzling_month_view, GTK_TYPE_WIDGET,
|
||||||
|
G_IMPLEMENT_INTERFACE (GCAL_TYPE_TIMELINE_SUBSCRIBER, gcal_timeline_subscriber_interface_init)
|
||||||
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init)
|
G_IMPLEMENT_INTERFACE (GCAL_TYPE_VIEW, gcal_view_interface_init)
|
||||||
G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, gtk_buildable_interface_init))
|
G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, gtk_buildable_interface_init))
|
||||||
|
|
||||||
@@ -482,6 +487,54 @@ on_scroll_controller_decelerate_cb (GtkEventControllerScroll *scroll_controller,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* GcalTimelineSubscriber iface
|
||||||
|
*/
|
||||||
|
|
||||||
|
static GcalRange*
|
||||||
|
gcal_dazzling_month_view_get_range (GcalTimelineSubscriber *subscriber)
|
||||||
|
{
|
||||||
|
g_autoptr (GcalRange) first_row_range = NULL;
|
||||||
|
g_autoptr (GcalRange) last_row_range = NULL;
|
||||||
|
GcalDazzlingMonthView *self;
|
||||||
|
|
||||||
|
self = GCAL_DAZZLING_MONTH_VIEW (subscriber);
|
||||||
|
|
||||||
|
first_row_range = gcal_month_view_row_get_range (g_ptr_array_index (self->week_rows, 0));
|
||||||
|
last_row_range = gcal_month_view_row_get_range (g_ptr_array_index (self->week_rows,
|
||||||
|
self->week_rows->len - 1));
|
||||||
|
|
||||||
|
return gcal_range_union (first_row_range, last_row_range);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_dazzling_month_view_add_event (GcalTimelineSubscriber *subscriber,
|
||||||
|
GcalEvent *event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_dazzling_month_view_update_event (GcalTimelineSubscriber *subscriber,
|
||||||
|
GcalEvent *event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_dazzling_month_view_remove_event (GcalTimelineSubscriber *subscriber,
|
||||||
|
GcalEvent *event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_timeline_subscriber_interface_init (GcalTimelineSubscriberInterface *iface)
|
||||||
|
{
|
||||||
|
iface->get_range = gcal_dazzling_month_view_get_range;
|
||||||
|
iface->add_event = gcal_dazzling_month_view_add_event;
|
||||||
|
iface->update_event = gcal_dazzling_month_view_update_event;
|
||||||
|
iface->remove_event = gcal_dazzling_month_view_remove_event;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GcalView interface
|
* GcalView interface
|
||||||
*/
|
*/
|
||||||
@@ -525,6 +578,8 @@ gcal_dazzling_month_view_set_date (GcalView *view,
|
|||||||
update_header_labels (self);
|
update_header_labels (self);
|
||||||
update_week_ranges (self);
|
update_week_ranges (self);
|
||||||
|
|
||||||
|
gcal_timeline_subscriber_range_changed (GCAL_TIMELINE_SUBSCRIBER (view));
|
||||||
|
|
||||||
GCAL_EXIT;
|
GCAL_EXIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user