summaryrefslogtreecommitdiff
path: root/prev/gtkdtp/dtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'prev/gtkdtp/dtp.c')
-rw-r--r--prev/gtkdtp/dtp.c140
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);
-}