date-chooser-day: Use a template

This makes the widget easier to maintain.
This commit is contained in:
Adrien Plazas
2022-06-16 09:29:16 +02:00
parent f9c4501d6c
commit a58fa3deb8
3 changed files with 27 additions and 17 deletions
@@ -3,6 +3,7 @@
<gresource prefix="/org/gnome/calendar/ui/event-editor">
<file compressed="true">gcal-alarm-row.ui</file>
<file compressed="true">gcal-date-chooser.ui</file>
<file compressed="true">gcal-date-chooser-day.ui</file>
<file compressed="true">gcal-date-selector.ui</file>
<file compressed="true">gcal-event-editor-dialog.ui</file>
<file compressed="true">gcal-multi-choice.ui</file>
+6 -17
View File
@@ -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*
@@ -0,0 +1,20 @@
<?xml version="1.0"?>
<interface>
<template class="GcalDateChooserDay" parent="GtkButton">
<property name="halign">center</property>
<property name="valign">center</property>
<style>
<class name="circular"/>
<class name="day"/>
<class name="flat"/>
</style>
<child>
<object class="GtkLabel" id="label">
<property name="halign">center</property>
<property name="hexpand">True</property>
<property name="valign">center</property>
<property name="vexpand">True</property>
</object>
</child>
</template>
</interface>