From a58fa3deb8983040afa986af8917d2723ee3d980 Mon Sep 17 00:00:00 2001 From: Adrien Plazas Date: Wed, 6 Apr 2022 13:24:37 +0200 Subject: [PATCH] date-chooser-day: Use a template This makes the widget easier to maintain. --- .../event-editor/event-editor.gresource.xml | 1 + src/gui/event-editor/gcal-date-chooser-day.c | 23 +++++-------------- src/gui/event-editor/gcal-date-chooser-day.ui | 20 ++++++++++++++++ 3 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 src/gui/event-editor/gcal-date-chooser-day.ui diff --git a/src/gui/event-editor/event-editor.gresource.xml b/src/gui/event-editor/event-editor.gresource.xml index cec9f0ff..38165c51 100644 --- a/src/gui/event-editor/event-editor.gresource.xml +++ b/src/gui/event-editor/event-editor.gresource.xml @@ -3,6 +3,7 @@ gcal-alarm-row.ui gcal-date-chooser.ui + gcal-date-chooser-day.ui gcal-date-selector.ui gcal-event-editor-dialog.ui gcal-multi-choice.ui diff --git a/src/gui/event-editor/gcal-date-chooser-day.c b/src/gui/event-editor/gcal-date-chooser-day.c index e4f4dbb4..fd0b45f4 100644 --- a/src/gui/event-editor/gcal-date-chooser-day.c +++ b/src/gui/event-editor/gcal-date-chooser-day.c @@ -50,30 +50,19 @@ static void gcal_date_chooser_day_class_init (GcalDateChooserDayClass *class) { GObjectClass *object_class = G_OBJECT_CLASS (class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); object_class->dispose = gcal_date_chooser_day_dispose; + + gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/event-editor/gcal-date-chooser-day.ui"); + + gtk_widget_class_bind_template_child (widget_class, GcalDateChooserDay, label); } static void gcal_date_chooser_day_init (GcalDateChooserDay *self) { - GtkWidget *widget = GTK_WIDGET (self); - - gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); - gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); - - gtk_widget_set_can_focus (widget, TRUE); - gtk_widget_add_css_class (widget, "circular"); - gtk_widget_add_css_class (widget, "day"); - gtk_widget_add_css_class (widget, "flat"); - - self->label = gtk_label_new (""); - gtk_widget_set_halign (self->label, GTK_ALIGN_CENTER); - gtk_widget_set_valign (self->label, GTK_ALIGN_CENTER); - gtk_widget_set_hexpand (self->label, TRUE); - gtk_widget_set_vexpand (self->label, TRUE); - - gtk_button_set_child (GTK_BUTTON (self), self->label); + gtk_widget_init_template (GTK_WIDGET (self)); } GtkWidget* diff --git a/src/gui/event-editor/gcal-date-chooser-day.ui b/src/gui/event-editor/gcal-date-chooser-day.ui new file mode 100644 index 00000000..b18db55f --- /dev/null +++ b/src/gui/event-editor/gcal-date-chooser-day.ui @@ -0,0 +1,20 @@ + + + +