date-chooser: Add the show-events property

This allows showing events from the timeline via a dot.
This commit is contained in:
Adrien Plazas
2022-06-16 08:19:49 -03:00
committed by Georges Basile Stavracas Neto
parent b5d8575445
commit 6cb57b0ad5
3 changed files with 49 additions and 0 deletions
+43
View File
@@ -57,6 +57,7 @@ struct _GcalDateChooser
gboolean show_day_names;
gboolean show_week_numbers;
gboolean show_selected_week;
gboolean show_events;
GcalRangeTree *events;
@@ -84,6 +85,7 @@ enum
PROP_SHOW_DAY_NAMES,
PROP_SHOW_WEEK_NUMBERS,
PROP_SHOW_SELECTED_WEEK,
PROP_SHOW_EVENTS,
NUM_PROPERTIES
};
@@ -477,6 +479,10 @@ calendar_set_property (GObject *obj,
gcal_date_chooser_set_show_selected_week (self, g_value_get_boolean (value));
break;
case PROP_SHOW_EVENTS:
gcal_date_chooser_set_show_events (self, g_value_get_boolean (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
break;
@@ -513,6 +519,10 @@ calendar_get_property (GObject *obj,
g_value_set_boolean (value, self->show_selected_week);
break;
case PROP_SHOW_EVENTS:
g_value_set_boolean (value, self->show_events);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
break;
@@ -637,6 +647,12 @@ gcal_date_chooser_class_init (GcalDateChooserClass *class)
TRUE,
G_PARAM_READWRITE);
properties[PROP_SHOW_EVENTS] = g_param_spec_boolean ("show-events",
"Show Events",
"If TRUE, events are displayed",
TRUE,
G_PARAM_READWRITE);
g_object_class_install_properties (object_class, NUM_PROPERTIES, properties);
signals[DAY_SELECTED] = g_signal_new ("day-selected",
@@ -694,6 +710,7 @@ gcal_date_chooser_init (GcalDateChooser *self)
self->show_day_names = TRUE;
self->show_week_numbers = TRUE;
self->show_selected_week = TRUE;
self->show_events = TRUE;
self->date = g_date_time_new_now_local ();
g_date_time_get_ymd (self->date, &self->this_year, NULL, NULL);
@@ -793,6 +810,12 @@ gcal_date_chooser_init (GcalDateChooser *self)
{
self->days[row][col] = gcal_date_chooser_day_new ();
g_object_bind_property (self,
"show-events",
self->days[row][col],
"has-dot",
G_BINDING_SYNC_CREATE);
g_signal_connect_object (self->days[row][col],
"clicked",
G_CALLBACK (day_selected_cb),
@@ -915,6 +938,26 @@ gcal_date_chooser_get_show_selected_week (GcalDateChooser *self)
return self->show_selected_week;
}
void
gcal_date_chooser_set_show_events (GcalDateChooser *self,
gboolean setting)
{
if (self->show_events == setting)
return;
self->show_events = setting;
calendar_update_selected_day_display (self);
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SHOW_EVENTS]);
}
gboolean
gcal_date_chooser_get_show_events (GcalDateChooser *self)
{
return self->show_events;
}
void
gcal_date_chooser_set_date (GcalDateChooser *self,
GDateTime *date)
+5
View File
@@ -53,6 +53,11 @@ gboolean gcal_date_chooser_get_show_selected_week (GcalDateChoose
void gcal_date_chooser_set_show_selected_week (GcalDateChooser *self,
gboolean setting);
gboolean gcal_date_chooser_get_show_events (GcalDateChooser *self);
void gcal_date_chooser_set_show_events (GcalDateChooser *self,
gboolean setting);
G_END_DECLS
#endif /* __GCAL_DATE_CHOOSER_H__ */
@@ -22,6 +22,7 @@
<property name="margin-end">12</property>
<child>
<object class="GcalDateChooser" id="date_chooser">
<property name="show_events">False</property>
<property name="show_selected_week">False</property>
<property name="show_week_numbers">True</property>
<signal name="day-selected" handler="calendar_day_selected" object="GcalDateSelector" swapped="yes"/>