views/week: Turn GcalWeekHeader into a GtkWidget
No functional changes so far.
This commit is contained in:
@@ -69,7 +69,7 @@ typedef struct
|
|||||||
|
|
||||||
struct _GcalWeekHeader
|
struct _GcalWeekHeader
|
||||||
{
|
{
|
||||||
GtkBox parent;
|
GtkWidget parent;
|
||||||
|
|
||||||
GtkGrid *grid;
|
GtkGrid *grid;
|
||||||
GtkWidget *month_label;
|
GtkWidget *month_label;
|
||||||
@@ -81,6 +81,7 @@ struct _GcalWeekHeader
|
|||||||
GtkWidget *header_labels_box;
|
GtkWidget *header_labels_box;
|
||||||
GtkEventController *motion_controller;
|
GtkEventController *motion_controller;
|
||||||
GtkBox *weekdays_box;
|
GtkBox *weekdays_box;
|
||||||
|
GtkWidget *main_box;
|
||||||
|
|
||||||
GcalContext *context;
|
GcalContext *context;
|
||||||
|
|
||||||
@@ -127,7 +128,7 @@ enum
|
|||||||
|
|
||||||
static guint signals[LAST_SIGNAL] = { 0, };
|
static guint signals[LAST_SIGNAL] = { 0, };
|
||||||
|
|
||||||
G_DEFINE_TYPE (GcalWeekHeader, gcal_week_header, GTK_TYPE_BOX);
|
G_DEFINE_TYPE (GcalWeekHeader, gcal_week_header, GTK_TYPE_WIDGET);
|
||||||
|
|
||||||
|
|
||||||
/* WeatherInfoDay methods */
|
/* WeatherInfoDay methods */
|
||||||
@@ -1317,6 +1318,40 @@ on_drop_target_motion_cb (GtkDropTarget *drop_target,
|
|||||||
|
|
||||||
/* Drawing area content and size */
|
/* Drawing area content and size */
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_week_header_measure (GtkWidget *widget,
|
||||||
|
GtkOrientation orientation,
|
||||||
|
gint for_size,
|
||||||
|
gint *minimum,
|
||||||
|
gint *natural,
|
||||||
|
gint *minimum_baseline,
|
||||||
|
gint *natural_baseline)
|
||||||
|
{
|
||||||
|
GcalWeekHeader *self = (GcalWeekHeader *) widget;
|
||||||
|
|
||||||
|
g_assert (GCAL_IS_WEEK_HEADER (self));
|
||||||
|
|
||||||
|
gtk_widget_measure (self->main_box,
|
||||||
|
orientation,
|
||||||
|
for_size,
|
||||||
|
minimum, natural,
|
||||||
|
minimum_baseline,
|
||||||
|
natural_baseline);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_week_header_size_allocate (GtkWidget *widget,
|
||||||
|
gint width,
|
||||||
|
gint height,
|
||||||
|
gint baseline)
|
||||||
|
{
|
||||||
|
GcalWeekHeader *self = (GcalWeekHeader *) widget;
|
||||||
|
|
||||||
|
g_assert (GCAL_IS_WEEK_HEADER (self));
|
||||||
|
|
||||||
|
gtk_widget_allocate (self->main_box, width, height, baseline, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_week_header_snapshot (GtkWidget *widget,
|
gcal_week_header_snapshot (GtkWidget *widget,
|
||||||
GtkSnapshot *snapshot)
|
GtkSnapshot *snapshot)
|
||||||
@@ -1436,6 +1471,18 @@ gcal_week_header_snapshot (GtkWidget *widget,
|
|||||||
* GObject overrides
|
* GObject overrides
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_week_header_dispose (GObject *object)
|
||||||
|
{
|
||||||
|
GcalWeekHeader *self = (GcalWeekHeader *) object;
|
||||||
|
|
||||||
|
g_assert (GCAL_IS_WEEK_HEADER (self));
|
||||||
|
|
||||||
|
gtk_widget_dispose_template (GTK_WIDGET (self), GCAL_TYPE_WEEK_HEADER);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (gcal_week_header_parent_class)->dispose (object);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_week_header_finalize (GObject *object)
|
gcal_week_header_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@@ -1459,8 +1506,11 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
|||||||
GObjectClass *object_class = G_OBJECT_CLASS (kclass);
|
GObjectClass *object_class = G_OBJECT_CLASS (kclass);
|
||||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (kclass);
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (kclass);
|
||||||
|
|
||||||
|
object_class->dispose = gcal_week_header_dispose;
|
||||||
object_class->finalize = gcal_week_header_finalize;
|
object_class->finalize = gcal_week_header_finalize;
|
||||||
|
|
||||||
|
widget_class->measure = gcal_week_header_measure;
|
||||||
|
widget_class->size_allocate = gcal_week_header_size_allocate;
|
||||||
widget_class->snapshot = gcal_week_header_snapshot;
|
widget_class->snapshot = gcal_week_header_snapshot;
|
||||||
|
|
||||||
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||||
@@ -1477,6 +1527,7 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
|||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, expand_button_box);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, expand_button_box);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, grid);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, grid);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, header_labels_box);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, header_labels_box);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, main_box);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, month_label);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, month_label);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, motion_controller);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, motion_controller);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, scrolledwindow);
|
gtk_widget_class_bind_template_child (widget_class, GcalWeekHeader, scrolledwindow);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
#define GCAL_TYPE_WEEK_HEADER (gcal_week_header_get_type())
|
#define GCAL_TYPE_WEEK_HEADER (gcal_week_header_get_type())
|
||||||
|
|
||||||
G_DECLARE_FINAL_TYPE (GcalWeekHeader, gcal_week_header, GCAL, WEEK_HEADER, GtkBox)
|
G_DECLARE_FINAL_TYPE (GcalWeekHeader, gcal_week_header, GCAL, WEEK_HEADER, GtkWidget)
|
||||||
|
|
||||||
void gcal_week_header_set_context (GcalWeekHeader *self,
|
void gcal_week_header_set_context (GcalWeekHeader *self,
|
||||||
GcalContext *context);
|
GcalContext *context);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<interface>
|
<interface>
|
||||||
<template class="GcalWeekHeader" parent="GtkBox">
|
<template class="GcalWeekHeader" parent="GtkWidget">
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox" id="main_box">
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<property name="vexpand">False</property>
|
<property name="vexpand">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
|||||||
Reference in New Issue
Block a user