diff options
Diffstat (limited to 'prev/gtkdtp/dtp.c')
| -rw-r--r-- | prev/gtkdtp/dtp.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/prev/gtkdtp/dtp.c b/prev/gtkdtp/dtp.c deleted file mode 100644 index 70876bd..0000000 --- a/prev/gtkdtp/dtp.c +++ /dev/null @@ -1,140 +0,0 @@ -// 9 january 2015 -#include "dtp.h" - -/* notes: -https://git.gnome.org/browse/gtk+/tree/gtk/gtkcombobox.c?h=gtk-3-4 -*/ - -#define GDTP(x) ((goDateTimePicker *) x) -#define PRIV(x) (GDTP(x)->priv) -#define GDTPC(x) ((goDateTimePickerClass *) x) - -struct goDateTimePickerPrivate { - gint year; - gint month; - gint day; -}; - -G_DEFINE_TYPE_WITH_CODE(goDateTimePicker, goDateTimePicker, GTK_TYPE_BOX, - ;) - -// TODO figure out how to share these between C and Go -enum { - gtkMargin = 12, - gtkXPadding = 12, - gtkYPadding = 6, -}; - -static void goDateTimePicker_init(goDateTimePicker *dtp) -{ - dtp->priv = G_TYPE_INSTANCE_GET_PRIVATE(dtp, goDateTimePicker_get_type(), goDateTimePickerPrivate); -} - -static void goDateTimePicker_dispose(GObject *obj) -{ - goDateTimePickerPrivate *d = PRIV(obj); - - // TODO really with g_clear_object()? - G_OBJECT_CLASS(goDateTimePicker_parent_class)->dispose(obj); -} - -static void goDateTimePicker_finalize(GObject *obj) -{ - G_OBJECT_CLASS(goDateTimePicker_parent_class)->finalize(obj); -} - -enum { - pYear = 1, - pMonth, - pDay, - nParams, -}; - -static GParamSpec *gdtpParams[] = { - NULL, // always null - NULL, // year - NULL, // month - NULL, // day -}; - -static void goDateTimePicker_set_property(GObject *obj, guint prop, const GValue *value, GParamSpec *spec) -{ - goDateTimePickerPrivate *d = PRIV(obj); - - switch (prop) { - case pYear: - d->year = g_value_get_int(value); - break; - case pMonth: - d->month = g_value_get_int(value); - break; - case pDay: - d->day = g_value_get_int(value); - // see note on GtkCalendar comaptibility below - if (d->day == 0) - ; // TODO - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, prop, spec); - return; - } - // TODO refresh everything here -} - -static void goDateTimePicker_get_property(GObject *obj, guint prop, GValue *value, GParamSpec *spec) -{ - goDateTimePickerPrivate *d = PRIV(obj); - - switch (prop) { - case pYear: - g_value_set_int(value, d->year); - break; - case pMonth: - g_value_set_int(value, d->month); - break; - case pDay: - g_value_set_int(value, d->day); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, prop, spec); - return; - } -} - -static void goDateTimePicker_class_init(goDateTimePickerClass *class) -{ - g_type_class_add_private(class, sizeof (goDateTimePickerPrivate)); - - G_OBJECT_CLASS(class)->dispose = goDateTimePicker_dispose; - G_OBJECT_CLASS(class)->finalize = goDateTimePicker_finalize; - G_OBJECT_CLASS(class)->set_property = goDateTimePicker_set_property; - G_OBJECT_CLASS(class)->get_property = goDateTimePicker_get_property; - - // types and values are to be compatible with the 3.4 GtkCalendar parameters - gdtpParams[pYear] = g_param_spec_int("year", - "current year", - "Current year", - 0, - G_MAXINT >> 9, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - gdtpParams[pMonth] = g_param_spec_uint("month", - "current month", - "Current month", - 0, - 11, - 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - // because of the requirement to be compatible with GtkCalendar, we have to follow its rules about dates - // values are 1..31 with 0 meaning no date selected - // we will not allow no date to be selected, so we will set the default to 1 instead of 0 - // TODO is this an issue for binding? - gdtpParams[pDay] = g_param_spec_uint("day", - "current day", - "Current day", - 0, - 31, - 1, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); - g_object_class_install_properties(G_OBJECT_CLASS(class), nParams, gdtpParams); -} |
