window: propagate manager using properties
This commit is contained in:
+24
-15
@@ -104,7 +104,9 @@ G_DEFINE_TYPE_WITH_CODE (GcalMonthView, gcal_month_view, GCAL_TYPE_SUBSCRIBER_VI
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_DATE, /* active-date inherited property */
|
||||
PROP_DATE,
|
||||
PROP_MANAGER,
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
static inline gint
|
||||
@@ -1006,12 +1008,25 @@ gcal_month_view_set_property (GObject *object,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GcalMonthView *self = (GcalMonthView *) object;
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_DATE:
|
||||
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
self->manager = g_value_dup_object (value);
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (self->manager),
|
||||
"day-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
self);
|
||||
|
||||
g_object_notify (object, "manager");
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
@@ -1031,6 +1046,11 @@ gcal_month_view_get_property (GObject *object,
|
||||
case PROP_DATE:
|
||||
g_value_set_boxed (value, self->date);
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
g_value_set_object (value, self->manager);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
@@ -1044,6 +1064,8 @@ gcal_month_view_finalize (GObject *object)
|
||||
|
||||
g_clear_pointer (&self->date, g_free);
|
||||
|
||||
g_clear_object (&self->manager);
|
||||
|
||||
/* Chain up to parent's finalize() method. */
|
||||
G_OBJECT_CLASS (gcal_month_view_parent_class)->finalize (object);
|
||||
}
|
||||
@@ -2285,6 +2307,7 @@ gcal_month_view_class_init (GcalMonthViewClass *klass)
|
||||
subscriber_view_class->clear_state = gcal_month_view_clear_state;
|
||||
|
||||
g_object_class_override_property (object_class, PROP_DATE, "active-date");
|
||||
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
|
||||
|
||||
gtk_widget_class_set_css_name (widget_class, "calendar-view");
|
||||
}
|
||||
@@ -2388,17 +2411,3 @@ gcal_month_view_set_use_24h_format (GcalMonthView *self,
|
||||
{
|
||||
self->use_24h_format = use_24h;
|
||||
}
|
||||
|
||||
void
|
||||
gcal_month_view_set_manager (GcalMonthView *self,
|
||||
GcalManager *manager)
|
||||
{
|
||||
g_return_if_fail (GCAL_IS_MONTH_VIEW (self));
|
||||
|
||||
self->manager = manager;
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (manager),
|
||||
"day-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
self);
|
||||
}
|
||||
|
||||
@@ -35,9 +35,6 @@ void gcal_month_view_set_first_weekday (GcalMonthView
|
||||
void gcal_month_view_set_use_24h_format (GcalMonthView *self,
|
||||
gboolean use_24h);
|
||||
|
||||
void gcal_month_view_set_manager (GcalMonthView *self ,
|
||||
GcalManager *manager);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GCAL_MONTH_VIEW_H__ */
|
||||
|
||||
+19
-12
@@ -85,6 +85,7 @@ enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_DATE,
|
||||
PROP_MANAGER,
|
||||
NUM_PROPS
|
||||
};
|
||||
|
||||
@@ -519,6 +520,8 @@ gcal_week_view_finalize (GObject *object)
|
||||
|
||||
g_clear_pointer (&self->date, g_free);
|
||||
|
||||
g_clear_object (&self->manager);
|
||||
|
||||
/* Chain up to parent's finalize() method. */
|
||||
G_OBJECT_CLASS (gcal_week_view_parent_class)->finalize (object);
|
||||
}
|
||||
@@ -529,12 +532,23 @@ gcal_week_view_set_property (GObject *object,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GcalWeekView *self = (GcalWeekView *) object;
|
||||
|
||||
switch (property_id)
|
||||
{
|
||||
case PROP_DATE:
|
||||
gcal_view_set_date (GCAL_VIEW (object), g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
self->manager = g_value_dup_object (value);
|
||||
|
||||
gcal_week_grid_set_manager (GCAL_WEEK_GRID (self->week_grid), self->manager);
|
||||
gcal_week_header_set_manager (GCAL_WEEK_HEADER (self->header), self->manager);
|
||||
|
||||
g_object_notify (object, "manager");
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
@@ -558,6 +572,10 @@ gcal_week_view_get_property (GObject *object,
|
||||
g_value_set_boxed (value, self->date);
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
g_value_set_object (value, self->manager);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
break;
|
||||
@@ -575,6 +593,7 @@ gcal_week_view_class_init (GcalWeekViewClass *klass)
|
||||
object_class->get_property = gcal_week_view_get_property;
|
||||
|
||||
g_object_class_override_property (object_class, PROP_DATE, "active-date");
|
||||
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
|
||||
|
||||
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||
GCAL_TYPE_WEEK_VIEW,
|
||||
@@ -619,18 +638,6 @@ gcal_week_view_new (void)
|
||||
return g_object_new (GCAL_TYPE_WEEK_VIEW, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
gcal_week_view_set_manager (GcalWeekView *self,
|
||||
GcalManager *manager)
|
||||
{
|
||||
g_return_if_fail (GCAL_IS_WEEK_VIEW (self));
|
||||
|
||||
self->manager = manager;
|
||||
|
||||
gcal_week_grid_set_manager (GCAL_WEEK_GRID (self->week_grid), manager);
|
||||
gcal_week_header_set_manager (GCAL_WEEK_HEADER (self->header), manager);
|
||||
}
|
||||
|
||||
/**
|
||||
* gcal_week_view_set_first_weekday:
|
||||
* @view:
|
||||
|
||||
@@ -31,9 +31,6 @@ G_DECLARE_FINAL_TYPE (GcalWeekView, gcal_week_view, GCAL, WEEK_VIEW, GtkBox)
|
||||
|
||||
GtkWidget* gcal_week_view_new (void);
|
||||
|
||||
void gcal_week_view_set_manager (GcalWeekView *self,
|
||||
GcalManager *manager);
|
||||
|
||||
void gcal_week_view_set_first_weekday (GcalWeekView *self,
|
||||
gint day_nr);
|
||||
|
||||
|
||||
+24
-16
@@ -120,6 +120,7 @@ struct _GcalYearView
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_DATE,
|
||||
PROP_MANAGER,
|
||||
PROP_SHOW_WEEK_NUMBERS,
|
||||
LAST_PROP
|
||||
};
|
||||
@@ -1651,6 +1652,10 @@ gcal_year_view_get_property (GObject *object,
|
||||
g_value_set_boxed (value, self->date);
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
g_value_set_object (value, self->manager);
|
||||
break;
|
||||
|
||||
case PROP_SHOW_WEEK_NUMBERS:
|
||||
g_value_set_boolean (value, self->show_week_numbers);
|
||||
break;
|
||||
@@ -1674,6 +1679,17 @@ gcal_year_view_set_property (GObject *object,
|
||||
gcal_view_set_date (GCAL_VIEW (self), g_value_get_boxed (value));
|
||||
break;
|
||||
|
||||
case PROP_MANAGER:
|
||||
self->manager = g_value_dup_object (value);
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (self->manager),
|
||||
"day-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
self->navigator);
|
||||
|
||||
g_object_notify (object, "manager");
|
||||
break;
|
||||
|
||||
case PROP_SHOW_WEEK_NUMBERS:
|
||||
if (self->show_week_numbers != g_value_get_boolean (value))
|
||||
{
|
||||
@@ -1948,6 +1964,7 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
|
||||
widget_class->direction_changed = gcal_year_view_direction_changed;
|
||||
|
||||
g_object_class_override_property (object_class, PROP_DATE, "active-date");
|
||||
g_object_class_override_property (object_class, PROP_MANAGER, "manager");
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_SHOW_WEEK_NUMBERS,
|
||||
@@ -1958,10 +1975,13 @@ gcal_year_view_class_init (GcalYearViewClass *klass)
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
/* FIXME: it will problably go back to GcalView */
|
||||
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated", GCAL_TYPE_YEAR_VIEW, G_SIGNAL_RUN_LAST,
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 1, GCAL_TYPE_EVENT_WIDGET);
|
||||
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||
GCAL_TYPE_YEAR_VIEW,
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE,
|
||||
1,
|
||||
GCAL_TYPE_EVENT_WIDGET);
|
||||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/year-view.ui");
|
||||
|
||||
@@ -2043,18 +2063,6 @@ gcal_data_model_subscriber_interface_init (ECalDataModelSubscriberInterface *ifa
|
||||
}
|
||||
|
||||
/* Public API */
|
||||
void
|
||||
gcal_year_view_set_manager (GcalYearView *year_view,
|
||||
GcalManager *manager)
|
||||
{
|
||||
year_view->manager = manager;
|
||||
|
||||
g_signal_connect_swapped (gcal_manager_get_clock (manager),
|
||||
"day-changed",
|
||||
G_CALLBACK (gtk_widget_queue_draw),
|
||||
year_view->navigator);
|
||||
}
|
||||
|
||||
void
|
||||
gcal_year_view_set_first_weekday (GcalYearView *year_view,
|
||||
gint nr_day)
|
||||
|
||||
@@ -30,8 +30,6 @@ G_BEGIN_DECLS
|
||||
|
||||
G_DECLARE_FINAL_TYPE (GcalYearView, gcal_year_view, GCAL, YEAR_VIEW, GtkBox)
|
||||
|
||||
void gcal_year_view_set_manager (GcalYearView *year_view,
|
||||
GcalManager *manager);
|
||||
void gcal_year_view_set_first_weekday (GcalYearView *year_view,
|
||||
gint nr_day);
|
||||
void gcal_year_view_set_use_24h_format (GcalYearView *year_view,
|
||||
|
||||
Reference in New Issue
Block a user