views/week: Add 'expanded' property
This commit is contained in:
@@ -124,6 +124,13 @@ typedef enum
|
|||||||
DOWN
|
DOWN
|
||||||
} MoveDirection;
|
} MoveDirection;
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
PROP_0,
|
||||||
|
PROP_EXPANDED,
|
||||||
|
N_PROPS,
|
||||||
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
EVENT_ACTIVATED,
|
EVENT_ACTIVATED,
|
||||||
@@ -131,6 +138,7 @@ enum
|
|||||||
};
|
};
|
||||||
|
|
||||||
static guint signals[LAST_SIGNAL] = { 0, };
|
static guint signals[LAST_SIGNAL] = { 0, };
|
||||||
|
static GParamSpec *properties [N_PROPS];
|
||||||
|
|
||||||
G_DEFINE_TYPE (GcalWeekHeader, gcal_week_header, GTK_TYPE_WIDGET);
|
G_DEFINE_TYPE (GcalWeekHeader, gcal_week_header, GTK_TYPE_WIDGET);
|
||||||
|
|
||||||
@@ -1467,6 +1475,44 @@ gcal_week_header_finalize (GObject *object)
|
|||||||
G_OBJECT_CLASS (gcal_week_header_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gcal_week_header_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_week_header_get_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GcalWeekHeader *self = GCAL_WEEK_HEADER (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_EXPANDED:
|
||||||
|
g_value_set_boolean (value, self->expanded);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gcal_week_header_set_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GcalWeekHeader *self = GCAL_WEEK_HEADER (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_EXPANDED:
|
||||||
|
gcal_week_header_set_expanded (self, g_value_get_boolean (value));
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
||||||
{
|
{
|
||||||
@@ -1475,11 +1521,19 @@ gcal_week_header_class_init (GcalWeekHeaderClass *kclass)
|
|||||||
|
|
||||||
object_class->dispose = gcal_week_header_dispose;
|
object_class->dispose = gcal_week_header_dispose;
|
||||||
object_class->finalize = gcal_week_header_finalize;
|
object_class->finalize = gcal_week_header_finalize;
|
||||||
|
object_class->get_property = gcal_week_header_get_property;
|
||||||
|
object_class->set_property = gcal_week_header_set_property;
|
||||||
|
|
||||||
widget_class->measure = gcal_week_header_measure;
|
widget_class->measure = gcal_week_header_measure;
|
||||||
widget_class->size_allocate = gcal_week_header_size_allocate;
|
widget_class->size_allocate = gcal_week_header_size_allocate;
|
||||||
widget_class->snapshot = gcal_week_header_snapshot;
|
widget_class->snapshot = gcal_week_header_snapshot;
|
||||||
|
|
||||||
|
properties[PROP_EXPANDED] = g_param_spec_boolean ("expanded", NULL, NULL,
|
||||||
|
FALSE,
|
||||||
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
|
g_object_class_install_properties (object_class, N_PROPS, properties);
|
||||||
|
|
||||||
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
signals[EVENT_ACTIVATED] = g_signal_new ("event-activated",
|
||||||
GCAL_TYPE_WEEK_HEADER,
|
GCAL_TYPE_WEEK_HEADER,
|
||||||
G_SIGNAL_RUN_FIRST,
|
G_SIGNAL_RUN_FIRST,
|
||||||
@@ -1795,3 +1849,27 @@ gcal_week_header_set_date (GcalWeekHeader *self,
|
|||||||
update_weather_infos (self);
|
update_weather_infos (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gcal_week_header_get_expanded (GcalWeekHeader *self)
|
||||||
|
{
|
||||||
|
g_assert (GCAL_IS_WEEK_HEADER (self));
|
||||||
|
|
||||||
|
return self->expanded;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gcal_week_header_set_expanded (GcalWeekHeader *self,
|
||||||
|
gboolean expanded)
|
||||||
|
{
|
||||||
|
g_assert (GCAL_IS_WEEK_HEADER (self));
|
||||||
|
|
||||||
|
if (self->expanded == expanded)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (expanded)
|
||||||
|
header_expand (self);
|
||||||
|
else
|
||||||
|
header_collapse (self);
|
||||||
|
|
||||||
|
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_EXPANDED]);
|
||||||
|
}
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ void gcal_week_header_clear_marks (GcalWeekHeader
|
|||||||
void gcal_week_header_set_date (GcalWeekHeader *self,
|
void gcal_week_header_set_date (GcalWeekHeader *self,
|
||||||
GDateTime *date);
|
GDateTime *date);
|
||||||
|
|
||||||
|
gboolean gcal_week_header_get_expanded (GcalWeekHeader *self);
|
||||||
|
void gcal_week_header_set_expanded (GcalWeekHeader *self,
|
||||||
|
gboolean expanded);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* GCAL_WEEK_HEADER_H */
|
#endif /* GCAL_WEEK_HEADER_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user