[gnome-calendar/wip/gbsneto/gcal-event: 10/12] time-selector: use GDateTime
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/wip/gbsneto/gcal-event: 10/12] time-selector: use GDateTime
- Date: Sun, 14 Feb 2016 08:18:11 +0000 (UTC)
commit 85d778886ad32661486ed7e157c46c1664a202cb
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sat Feb 13 21:06:50 2016 -0200
time-selector: use GDateTime
Pretty much like the previous commit, but porting the
GcalTimeSelector class.
data/ui/edit-dialog.ui | 8 +-
data/ui/time-selector.ui | 6 +-
src/gcal-edit-dialog.c | 109 +++++++------------
src/gcal-time-selector.c | 267 ++++++++++++++++++++++++++-------------------
src/gcal-time-selector.h | 9 +-
5 files changed, 204 insertions(+), 195 deletions(-)
---
diff --git a/data/ui/edit-dialog.ui b/data/ui/edit-dialog.ui
index 8d539fd..88e85de 100644
--- a/data/ui/edit-dialog.ui
+++ b/data/ui/edit-dialog.ui
@@ -239,8 +239,8 @@
<object class="GcalTimeSelector" id="start_time_selector">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="sensitive" bind-source="all_day_check" bind-property="active"
bind-flags="invert-boolean|default" />
- <signal name="modified" handler="update_time" object="GcalEditDialog" swapped="no"/>
+ <property name="sensitive" bind-source="GcalEditDialog" bind-property="writable"
bind-flags="default" />
+ <signal name="notify::time" handler="update_time" object="GcalEditDialog" swapped="yes"/>
</object>
<packing>
<property name="position">2</property>
@@ -275,8 +275,8 @@
<object class="GcalTimeSelector" id="end_time_selector">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="sensitive" bind-source="all_day_check" bind-property="active"
bind-flags="invert-boolean|default" />
- <signal name="modified" handler="update_time" object="GcalEditDialog" swapped="no"/>
+ <property name="sensitive" bind-source="GcalEditDialog" bind-property="writable"
bind-flags="default" />
+ <signal name="notify::time" handler="update_time" object="GcalEditDialog" swapped="yes"/>
</object>
<packing>
<property name="position">2</property>
diff --git a/data/ui/time-selector.ui b/data/ui/time-selector.ui
index de3d5b9..f595d0c 100644
--- a/data/ui/time-selector.ui
+++ b/data/ui/time-selector.ui
@@ -14,13 +14,13 @@
<property name="upper">23</property>
<property name="step_increment">1</property>
<property name="page_increment">5</property>
- <signal name="value-changed" handler="time_changed" object="GcalTimeSelector" swapped="no"/>
+ <signal name="value-changed" handler="update_time" object="GcalTimeSelector" swapped="yes"/>
</object>
<object class="GtkAdjustment" id="minute_adjustment">
<property name="upper">59</property>
<property name="step_increment">1</property>
<property name="page_increment">10</property>
- <signal name="value-changed" handler="time_changed" object="GcalTimeSelector" swapped="no"/>
+ <signal name="value-changed" handler="update_time" object="GcalTimeSelector" swapped="yes"/>
</object>
<object class="GtkPopover" id="time_selector_popover">
<property name="position">bottom</property>
@@ -73,7 +73,7 @@
<object class="GtkComboBoxText" id="period_combo">
<property name="valign">center</property>
<property name="active">0</property>
- <signal name="changed" handler="period_changed" object="GcalTimeSelector" swapped="no"/>
+ <signal name="changed" handler="update_time" object="GcalTimeSelector" swapped="yes"/>
<items>
<item translatable="yes">AM</item>
<item translatable="yes">PM</item>
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index cc6c889..bfc0924 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -87,8 +87,7 @@ static void update_summary (GtkEntry *en
GParamSpec *pspec,
gpointer user_data);
-static void update_time (GtkEntry *entry,
- gpointer user_data);
+static void update_time (GcalEditDialog *dialog);
static void gcal_edit_dialog_constructed (GObject *object);
@@ -279,15 +278,11 @@ update_summary (GtkEntry *entry,
}
static void
-update_time (GtkEntry *entry,
- gpointer user_data)
+update_time (GcalEditDialog *dialog)
{
- GcalEditDialog *dialog;
GDateTime *start_date;
GDateTime *end_date;
- dialog = GCAL_EDIT_DIALOG (user_data);
-
if (dialog->setting_event)
return;
@@ -521,17 +516,6 @@ gcal_edit_dialog_set_writable (GcalEditDialog *dialog,
gtk_button_set_label (GTK_BUTTON (dialog->done_button), writable ? _("Save") : _("Done"));
g_object_notify (G_OBJECT (dialog), "writable");
-
- if (!writable || (writable && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(dialog->all_day_check))))
- {
- gtk_widget_set_sensitive (dialog->start_time_selector, FALSE);
- gtk_widget_set_sensitive (dialog->end_time_selector, FALSE);
- }
- else
- {
- gtk_widget_set_sensitive (dialog->start_time_selector, TRUE);
- gtk_widget_set_sensitive (dialog->end_time_selector, TRUE);
- }
}
}
@@ -547,10 +531,6 @@ gcal_edit_dialog_clear_data (GcalEditDialog *dialog)
update_summary,
dialog);
- /* date and time */
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->start_time_selector), 0, 0);
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->end_time_selector), 0, 0);
-
/* location */
g_signal_handlers_block_by_func (dialog->location_entry,
update_location,
@@ -601,14 +581,13 @@ gcal_edit_dialog_all_day_changed (GtkWidget *widget,
gpointer user_data)
{
GcalEditDialog *dialog;
+ gboolean active;
dialog = GCAL_EDIT_DIALOG (user_data);
+ active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->all_day_check));
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->all_day_check)))
- {
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->start_time_selector), 0, 0);
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->end_time_selector), 0, 0);
- }
+ gtk_widget_set_sensitive (dialog->start_time_selector, active);
+ gtk_widget_set_sensitive (dialog->end_time_selector, active);
}
/* Public API */
@@ -705,16 +684,8 @@ gcal_edit_dialog_set_event (GcalEditDialog *dialog,
gcal_date_selector_set_date (GCAL_DATE_SELECTOR (dialog->end_date_selector), date_end);
/* time */
- if (!gcal_event_get_all_day (event))
- {
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->start_time_selector),
- g_date_time_get_hour (date_start),
- g_date_time_get_minute (date_start));
-
- gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->end_time_selector),
- g_date_time_get_hour (date_end),
- g_date_time_get_minute (date_end));
- }
+ gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->start_time_selector), date_start);
+ gcal_time_selector_set_time (GCAL_TIME_SELECTOR (dialog->end_time_selector), date_end);
/* all_day */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->all_day_check), gcal_event_get_all_day
(event));
@@ -750,41 +721,41 @@ gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
GDateTime*
gcal_edit_dialog_get_date_start (GcalEditDialog *dialog)
{
- GDateTime *date, *aux;
- gint hour, minute;
-
- gcal_time_selector_get_time (GCAL_TIME_SELECTOR (dialog->start_time_selector),
- &hour,
- &minute);
-
- aux = gcal_date_selector_get_date (GCAL_DATE_SELECTOR (dialog->start_date_selector));
-
- date = g_date_time_new (gcal_event_get_timezone (dialog->event),
- g_date_time_get_year (aux),
- g_date_time_get_month (aux),
- g_date_time_get_day_of_month (aux),
- hour, minute, 0);
-
- return date;
+ GDateTime *date;
+ GDateTime *time;
+ GDateTime *retval;
+
+ date = gcal_date_selector_get_date (GCAL_DATE_SELECTOR (dialog->start_date_selector));
+ time = gcal_time_selector_get_time (GCAL_TIME_SELECTOR (dialog->start_time_selector));
+
+ retval = g_date_time_new (gcal_event_get_timezone (dialog->event),
+ g_date_time_get_year (date),
+ g_date_time_get_month (date),
+ g_date_time_get_day_of_month (date),
+ g_date_time_get_hour (time),
+ g_date_time_get_minute (time),
+ 0);
+
+ return retval;
}
GDateTime*
gcal_edit_dialog_get_date_end (GcalEditDialog *dialog)
{
- GDateTime *date, *aux;
- gint hour, minute;
-
- gcal_time_selector_get_time (GCAL_TIME_SELECTOR (dialog->end_time_selector),
- &hour,
- &minute);
-
- aux = gcal_date_selector_get_date (GCAL_DATE_SELECTOR (dialog->end_date_selector));
-
- date = g_date_time_new (gcal_event_get_timezone (dialog->event),
- g_date_time_get_year (aux),
- g_date_time_get_month (aux),
- g_date_time_get_day_of_month (aux),
- hour, minute, 0);
-
- return date;
+ GDateTime *date;
+ GDateTime *time;
+ GDateTime *retval;
+
+ date = gcal_date_selector_get_date (GCAL_DATE_SELECTOR (dialog->end_date_selector));
+ time = gcal_time_selector_get_time (GCAL_TIME_SELECTOR (dialog->end_time_selector));
+
+ retval = g_date_time_new (gcal_event_get_timezone (dialog->event),
+ g_date_time_get_year (date),
+ g_date_time_get_month (date),
+ g_date_time_get_day_of_month (date),
+ g_date_time_get_hour (time),
+ g_date_time_get_minute (time),
+ 0);
+
+ return retval;
}
diff --git a/src/gcal-time-selector.c b/src/gcal-time-selector.c
index 40731b1..7eb9bfc 100644
--- a/src/gcal-time-selector.c
+++ b/src/gcal-time-selector.c
@@ -26,19 +26,25 @@ struct _GcalTimeSelector
{
GtkMenuButton parent;
+ GtkAdjustment *hour_adjustment;
+ GtkAdjustment *minute_adjustment;
+
GtkWidget *time_label;
GtkWidget *hour_spin;
GtkWidget *minute_spin;
GtkWidget *period_combo;
GtkWidget *grid;
+ GDateTime *time;
+
gboolean format_24h;
};
enum
{
- MODIFIED,
- NUM_SIGNALS
+ PROP_0,
+ PROP_TIME,
+ LAST_PROP
};
enum
@@ -47,71 +53,89 @@ enum
PM
};
-static guint signals[NUM_SIGNALS] = { 0, };
-
-static void format_date_label (GcalTimeSelector *selector);
-
-static gboolean on_output (GtkSpinButton *button,
- gpointer user_data);
-
-static void period_changed (GtkComboBox *combo,
- gpointer user_data);
-
-static void time_changed (GtkAdjustment *adjustment,
- gpointer user_data);
-
static void gcal_time_selector_constructed (GObject *object);
G_DEFINE_TYPE (GcalTimeSelector, gcal_time_selector, GTK_TYPE_MENU_BUTTON);
static void
-format_date_label (GcalTimeSelector *selector)
+update_label (GcalTimeSelector *selector)
{
- GtkAdjustment *hour_adj;
- GtkAdjustment *minute_adj;
- gchar *new_time;
- gint hour, minute;
-
- hour_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->hour_spin));
- minute_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->minute_spin));
+ gchar *new_label;
- /* get current time */
- hour = (gint) gtk_adjustment_get_value (hour_adj);
- minute = (gint) gtk_adjustment_get_value (minute_adj);
-
- /* format time according to the system 12h/24h setting */
if (selector->format_24h)
{
- new_time = g_strdup_printf ("%.2d:%.2d", hour, minute);
+ new_label = g_date_time_format (selector->time, "%H:%M");
}
else
{
- gint period;
+ gchar *time_str;
+ gint hour, minute, period;
+
+ hour = (gint) gtk_adjustment_get_value (selector->hour_adjustment);
+ minute = (gint) gtk_adjustment_get_value (selector->minute_adjustment);
+
period = gtk_combo_box_get_active (GTK_COMBO_BOX (selector->period_combo));
+ time_str = g_strdup_printf ("%.2d:%.2d", hour, minute);
- /* FIXME: we shouldn't expose print formatting code to translators */
if (period == AM)
- new_time = g_strdup_printf (_("%.2d:%.2d AM"), hour, minute);
+ new_label = g_strdup_printf (_("%s AM"), time_str);
else
- new_time = g_strdup_printf (_("%.2d:%.2d PM"), hour, minute);
+ new_label = g_strdup_printf (_("%s PM"), time_str);
+
+ g_free (time_str);
}
- gtk_label_set_label (GTK_LABEL (selector->time_label), new_time);
+ gtk_label_set_label (GTK_LABEL (selector->time_label), new_label);
- g_free (new_time);
+ g_clear_pointer (&new_label, g_free);
+}
+
+static void
+update_time (GcalTimeSelector *selector)
+{
+ GDateTime *now, *new_time;
+ gint hour, minute;
+
+ /* Retrieve current time */
+ hour = (gint) gtk_adjustment_get_value (selector->hour_adjustment);
+ minute = (gint) gtk_adjustment_get_value (selector->minute_adjustment);
+
+ if (!selector->format_24h && gtk_combo_box_get_active (GTK_COMBO_BOX (selector->period_combo)) == PM)
+ {
+ g_signal_handlers_block_by_func (selector->period_combo, update_time, selector);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (selector->period_combo), hour > 12);
+ hour *= 2;
+
+ g_signal_handlers_unblock_by_func (selector->period_combo, update_time, selector);
+ }
+
+ now = g_date_time_new_now_local ();
+ new_time = g_date_time_new_local (g_date_time_get_year (now),
+ g_date_time_get_month (now),
+ g_date_time_get_day_of_month (now),
+ hour, minute, 0);
+
+ /* Set the new time */
+ gcal_time_selector_set_time (selector, new_time);
+
+ g_clear_pointer (&new_time, g_date_time_unref);
+ g_clear_pointer (&now, g_date_time_unref);
}
static gboolean
-on_output (GtkSpinButton *button,
- gpointer user_data)
+on_output (GtkWidget *widget,
+ GcalTimeSelector *selector)
{
+ GtkAdjustment *adjustment;
gchar *text;
gint value;
- value = (gint) gtk_adjustment_get_value (gtk_spin_button_get_adjustment (button));
+ adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+ value = (gint) gtk_adjustment_get_value (adjustment);
text = g_strdup_printf ("%02d", value);
- gtk_entry_set_text (GTK_ENTRY (button), text);
+ gtk_entry_set_text (GTK_ENTRY (widget), text);
g_free (text);
@@ -119,18 +143,49 @@ on_output (GtkSpinButton *button,
}
static void
-period_changed (GtkComboBox *combo,
- gpointer user_data)
+gcal_time_selector_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GcalTimeSelector *self = (GcalTimeSelector*) object;
+
+ switch (prop_id)
+ {
+ case PROP_TIME:
+ g_value_set_boxed (value, self->time);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+static void
+gcal_time_selector_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
- format_date_label (GCAL_TIME_SELECTOR (user_data));
+ GcalTimeSelector *self = (GcalTimeSelector*) object;
- g_signal_emit (user_data, signals[MODIFIED], 0);
+ switch (prop_id)
+ {
+ case PROP_TIME:
+ gcal_time_selector_set_time (self, g_value_get_boxed (value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
}
void
gcal_time_selector_set_time_format (GcalTimeSelector *selector,
gboolean format_24h)
{
+ g_return_if_fail (GCAL_IS_TIME_SELECTOR (selector));
+
selector->format_24h = format_24h;
gtk_widget_set_visible (selector->period_combo, !format_24h);
@@ -141,47 +196,48 @@ gcal_time_selector_set_time_format (GcalTimeSelector *selector,
}
static void
-time_changed (GtkAdjustment *adjustment,
- gpointer user_data)
-{
- format_date_label (GCAL_TIME_SELECTOR (user_data));
-
- g_signal_emit (user_data, signals[MODIFIED], 0);
-}
-
-static void
gcal_time_selector_class_init (GcalTimeSelectorClass *klass)
{
GObjectClass *object_class;
object_class = G_OBJECT_CLASS (klass);
object_class->constructed = gcal_time_selector_constructed;
-
- signals[MODIFIED] = g_signal_new ("modified",
- GCAL_TYPE_TIME_SELECTOR,
- G_SIGNAL_RUN_LAST,
- 0,
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ object_class->get_property = gcal_time_selector_get_property;
+ object_class->set_property = gcal_time_selector_set_property;
+
+ /**
+ * GcalTimeSelector::time:
+ *
+ * The current time of the selector.
+ */
+ g_object_class_install_property (object_class,
+ PROP_TIME,
+ g_param_spec_boxed ("time",
+ "Time of the selector",
+ "The current time of the selector",
+ G_TYPE_DATE_TIME,
+ G_PARAM_READWRITE));
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass),
"/org/gnome/calendar/time-selector.ui");
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, time_label);
+ gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, hour_adjustment);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, hour_spin);
+ gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, minute_adjustment);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, minute_spin);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, period_combo);
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), GcalTimeSelector, grid);
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), on_output);
- gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), period_changed);
- gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), time_changed);
+ gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), update_time);
}
static void
gcal_time_selector_init (GcalTimeSelector *self)
{
+ self->format_24h = TRUE;
+ self->time = g_date_time_new_now_local ();
+
gtk_widget_init_template (GTK_WIDGET (self));
}
@@ -205,70 +261,55 @@ gcal_time_selector_new (void)
void
gcal_time_selector_set_time (GcalTimeSelector *selector,
- gint hours,
- gint minutes)
+ GDateTime *time)
{
- GtkAdjustment *hour_adj;
- GtkAdjustment *minute_adj;
-
g_return_if_fail (GCAL_IS_TIME_SELECTOR (selector));
- hour_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->hour_spin));
- minute_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->minute_spin));
- g_warn_if_fail (hours < 24);
- g_warn_if_fail (minutes < 60);
-
- /* setup spin buttons according to the format */
- if (selector->format_24h)
+ if (selector->time != time)
{
- gtk_adjustment_set_value (hour_adj, hours < 24 ? hours : 0);
- }
- else
- {
- gint period;
+ gint hour, minute;
- period = hours < 12? AM : PM;
- hours = hours % 12;
+ g_clear_pointer (&selector->time, g_date_time_unref);
+ selector->time = g_date_time_new_local (g_date_time_get_year (time),
+ g_date_time_get_month (time),
+ g_date_time_get_day_of_month (time),
+ g_date_time_get_hour (time),
+ g_date_time_get_minute (time),
+ 0);
- gtk_combo_box_set_active (GTK_COMBO_BOX (selector->period_combo), period);
- gtk_adjustment_set_value (hour_adj, hours);
- }
+ /* Update the spinners */
+ g_signal_handlers_block_by_func (selector->hour_adjustment, update_time, selector);
+ g_signal_handlers_block_by_func (selector->minute_adjustment, update_time, selector);
- gtk_adjustment_set_value (minute_adj, minutes < 60 ? minutes : 0);
+ hour = g_date_time_get_hour (time);
+ minute = g_date_time_get_minute (time);
- /* format time label accordingly */
- format_date_label (selector);
-}
+ if (!selector->format_24h)
+ {
+ g_signal_handlers_block_by_func (selector->period_combo, update_time, selector);
-void
-gcal_time_selector_get_time (GcalTimeSelector *selector,
- gint *hours,
- gint *minutes)
-{
- GtkAdjustment *hour_adj;
- GtkAdjustment *minute_adj;
+ gtk_combo_box_set_active (GTK_COMBO_BOX (selector->period_combo), hour >= 12);
+ hour = hour % 12;
- g_return_if_fail (GCAL_IS_TIME_SELECTOR (selector));
+ g_signal_handlers_unblock_by_func (selector->period_combo, update_time, selector);
+ }
- hour_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->hour_spin));
- minute_adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (selector->minute_spin));
+ gtk_adjustment_set_value (selector->hour_adjustment, hour);
+ gtk_adjustment_set_value (selector->minute_adjustment, minute);
- /* 24h, the easy one*/
- if (selector->format_24h)
- {
- *hours = (gint) gtk_adjustment_get_value (hour_adj);
- }
+ update_label (selector);
- /* 12h format must calculate the time
- * according to the AM/PM combo box */
- else
- {
- gint am_pm;
+ g_signal_handlers_unblock_by_func (selector->hour_adjustment, update_time, selector);
+ g_signal_handlers_unblock_by_func (selector->minute_adjustment, update_time, selector);
- am_pm = gtk_combo_box_get_active (GTK_COMBO_BOX (selector->period_combo));
- *hours = (gint) gtk_adjustment_get_value (hour_adj) + 12 * am_pm;
+ g_object_notify (G_OBJECT (selector), "time");
}
+}
+
+GDateTime*
+gcal_time_selector_get_time (GcalTimeSelector *selector)
+{
+ g_return_val_if_fail (GCAL_IS_TIME_SELECTOR (selector), NULL);
- /* minute field isn't dependant on 12h/24h format */
- *minutes = (gint) gtk_adjustment_get_value (minute_adj);
+ return selector->time;
}
diff --git a/src/gcal-time-selector.h b/src/gcal-time-selector.h
index 4eb7bff..1f8ae5e 100644
--- a/src/gcal-time-selector.h
+++ b/src/gcal-time-selector.h
@@ -33,13 +33,10 @@ GtkWidget* gcal_time_selector_new (void);
void gcal_time_selector_set_time_format (GcalTimeSelector *selector,
gboolean format_24h);
-void gcal_time_selector_set_time (GcalTimeSelector *selector,
- gint hours,
- gint minutes);
+GDateTime* gcal_time_selector_get_time (GcalTimeSelector *selector);
-void gcal_time_selector_get_time (GcalTimeSelector *selector,
- gint *hours,
- gint *minutes);
+void gcal_time_selector_set_time (GcalTimeSelector *selector,
+ GDateTime *time);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]