![]() |
![]() |
![]() |
Hildon Reference Manual | ![]() |
---|
Date WidgetsDate Bar — How to migrate Date widgets |
Being deprecated since Hildon 2.2, the calendar popup and date editor can be substituded by a HildonDateButton.
Examples of a typical calendar popup and a date editor are presented bellow.
Example 34. A Typical Calendar Popup
guint y = 2009, m = 4, d = 25; GtkWidget *parent, *popup; popup = hildon_calendar_popup_new (GTK_WINDOW (parent), y, m, d); gtk_dialog_run (GTK_DIALOG (popup)); hildon_calendar_popup_get_date (HILDON_CALENDAR_POPUP (popup), &y, &m, &d);
Example 35. A Typical Date Editor
gboolean on_error (GtkWidget *widget, HildonDateTimeError error_type); gboolean on_error (GtkWidget *widget, HildonDateTimeError error_type) { g_debug ("Error: %d", error_type); return FALSE; } GtkDialog *dialog = GTK_DIALOG (gtk_dialog_new ()); HildonDateEditor *date_editor = HILDON_DATE_EDITOR (hildon_date_editor_new ()); gtk_box_pack_start (GTK_BOX (dialog->vbox), gtk_label_new ("Choose a date"), FALSE, FALSE, 10); gtk_box_pack_start (GTK_BOX (dialog->vbox), GTK_WIDGET (date_editor), FALSE, FALSE, 10); gtk_dialog_add_button (dialog, "Close", GTK_RESPONSE_CANCEL); g_signal_connect (G_OBJECT (date_editor), "date_error", G_CALLBACK (on_error), NULL); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_dialog_run (dialog); hildon_date_editor_get_date (date_editor, &y, &m, &d);
The following example accomplishes equivalent functionality using a HildonDateButton.
Example 36. A Replacement for the Calendar Popup
GtkDialog *dialog = GTK_DIALOG (gtk_dialog_new ()); guint y = 2009, m = 3, d = 25; HildonDateButton *date_button = HILDON_DATE_BUTTON (hildon_date_button_new ( HILDON_SIZE_THUMB_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL)); hildon_date_button_set_date (date_button, y, m, d); gtk_box_pack_end (GTK_BOX (dialog->vbox), GTK_WIDGET (date_button), FALSE, FALSE, 0); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_dialog_run (dialog); hildon_date_button_get_date (date_button, &y, &m, &d);
A weekday picker (deprecated since Hildon 2.2) can be easily replaced by a HildonPickerButton.
The following example presents the deprecated weekday picker in a dialog.
Example 37. A Typical Weekday Picker
GtkDialog *dialog = GTK_DIALOG (gtk_dialog_new ()); GtkWidget *picker = hildon_weekday_picker_new (); gtk_box_pack_start (GTK_BOX (dialog->vbox), picker, TRUE, TRUE, 0); gtk_dialog_add_button (dialog, "Close", GTK_RESPONSE_CLOSE); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_dialog_run (dialog);
With a HildonPickerButton it is easy to add the weekdays to its TouchSelector and thus having the same functionality.
Example 38. A Replacement for the Weekday Picker
GtkDialog *dialog = GTK_DIALOG (gtk_dialog_new ()); GtkWidget *picker = hildon_picker_button_new (HILDON_SIZE_THUMB_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL); hildon_button_set_title (HILDON_BUTTON (picker), "Weekday:"); HildonTouchSelector *selector = HILDON_TOUCH_SELECTOR ( hildon_touch_selector_new_text ()); hildon_touch_selector_append_text (selector, "Sunday"); hildon_touch_selector_append_text (selector, "Monday"); hildon_touch_selector_append_text (selector, "Tuesday"); hildon_touch_selector_append_text (selector, "Thursday"); hildon_touch_selector_append_text (selector, "Friday"); hildon_touch_selector_append_text (selector, "Saturday"); hildon_touch_selector_set_column_selection_mode (selector, HILDON_TOUCH_SELECTOR_SELECTION_MODE_MULTIPLE); hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (picker), selector); hildon_picker_button_set_active (HILDON_PICKER_BUTTON (picker), 0); gtk_box_pack_start (GTK_BOX (dialog->vbox), picker, TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET (dialog)); gtk_dialog_run (dialog);