window: Rework property creation

This commit is contained in:
Georges Basile Stavracas Neto
2018-01-27 14:28:55 -02:00
parent 333fa79437
commit 5a6fabddc8
+36 -43
View File
@@ -186,11 +186,12 @@ struct _GcalWindow
enum enum
{ {
PROP_0, PROP_0,
PROP_ACTIVE_DATE,
PROP_ACTIVE_VIEW, PROP_ACTIVE_VIEW,
PROP_MANAGER, PROP_MANAGER,
PROP_NEW_EVENT_MODE,
PROP_WEATHER_SERVICE, PROP_WEATHER_SERVICE,
PROP_ACTIVE_DATE, N_PROPS
PROP_NEW_EVENT_MODE
}; };
#define SAVE_GEOMETRY_ID_TIMEOUT 100 /* ms */ #define SAVE_GEOMETRY_ID_TIMEOUT 100 /* ms */
@@ -238,6 +239,9 @@ static const GActionEntry actions[] = {
{"toggle-search-bar", on_toggle_search_bar_activated } {"toggle-search-bar", on_toggle_search_bar_activated }
}; };
static GParamSpec* properties[N_PROPS] = { NULL, };
/* /*
* Auxiliary methods * Auxiliary methods
*/ */
@@ -1601,6 +1605,7 @@ gcal_window_class_init (GcalWindowClass *klass)
GtkWidgetClass *widget_class; GtkWidgetClass *widget_class;
g_type_ensure (GCAL_TYPE_EDIT_DIALOG); g_type_ensure (GCAL_TYPE_EDIT_DIALOG);
g_type_ensure (GCAL_TYPE_MANAGER);
g_type_ensure (GCAL_TYPE_MONTH_VIEW); g_type_ensure (GCAL_TYPE_MONTH_VIEW);
g_type_ensure (GCAL_TYPE_QUICK_ADD_POPOVER); g_type_ensure (GCAL_TYPE_QUICK_ADD_POPOVER);
g_type_ensure (GCAL_TYPE_SEARCH_VIEW); g_type_ensure (GCAL_TYPE_SEARCH_VIEW);
@@ -1616,51 +1621,39 @@ gcal_window_class_init (GcalWindowClass *klass)
widget_class = GTK_WIDGET_CLASS (klass); widget_class = GTK_WIDGET_CLASS (klass);
widget_class->configure_event = gcal_window_configure_event; widget_class->configure_event = gcal_window_configure_event;
g_object_class_install_property (
object_class,
PROP_ACTIVE_VIEW,
g_param_spec_enum ("active-view",
"Active View",
"The active view, eg: month, week, etc.",
GCAL_WINDOW_VIEW_TYPE,
GCAL_WINDOW_VIEW_MONTH,
G_PARAM_READWRITE));
g_object_class_install_property ( properties[PROP_ACTIVE_DATE] = g_param_spec_boxed ("active-date",
object_class, "Date",
PROP_MANAGER, "The active/selected date",
g_param_spec_object ("manager", ICAL_TIME_TYPE,
"The manager object", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
"The manager object",
GCAL_TYPE_MANAGER,
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
g_object_class_install_property ( properties[PROP_ACTIVE_VIEW] = g_param_spec_enum ("active-view",
object_class, "Active View",
PROP_WEATHER_SERVICE, "The active view, eg: month, week, etc.",
g_param_spec_object ("weather-service", GCAL_WINDOW_VIEW_TYPE,
"The weather service object", GCAL_WINDOW_VIEW_MONTH,
"The weather service object", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
GCAL_TYPE_WEATHER_SERVICE,
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
g_object_class_install_property ( properties[PROP_MANAGER] = g_param_spec_object ("manager",
object_class, "The manager object",
PROP_ACTIVE_DATE, "The manager object",
g_param_spec_boxed ("active-date", GCAL_TYPE_MANAGER,
"Date", G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
"The active/selected date",
ICAL_TIME_TYPE,
G_PARAM_READWRITE));
g_object_class_install_property ( properties[PROP_NEW_EVENT_MODE] = g_param_spec_boolean ("new-event-mode",
object_class, "New Event mode",
PROP_NEW_EVENT_MODE, "Whether the window is in new-event-mode or not",
g_param_spec_boolean ("new-event-mode", FALSE,
"New Event mode", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
"Whether the window is in new-event-mode or not",
FALSE, properties[PROP_WEATHER_SERVICE] = g_param_spec_object ("weather-service",
G_PARAM_READWRITE)); "The weather service object",
"The weather service object",
GCAL_TYPE_WEATHER_SERVICE,
G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, N_PROPS, properties);
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/window.ui"); gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/window.ui");