aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/event-page.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-04-25 22:07:44 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-04-25 22:07:44 +0800
commit86fdd3a1cba7c156cfa127322e258f5636b45a99 (patch)
treee49802fd9008a59587fca1cafb1801b8b3bf0db6 /calendar/gui/dialogs/event-page.c
parentc2119e513bc7482fc0150287af8502a5ff67191a (diff)
parent23df769955ea54f756a579c19964df87ae6fd5c8 (diff)
downloadgsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar.gz
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar.bz2
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar.lz
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar.xz
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.tar.zst
gsoc2013-evolution-86fdd3a1cba7c156cfa127322e258f5636b45a99.zip
Merge branch 'master' into kill-bonobo
This was a particularly messy merge. Watch out for regressions! Conflicts: ChangeLog NEWS a11y/ChangeLog a11y/widgets/ea-combo-button.c a11y/widgets/ea-combo-button.h a11y/widgets/ea-widgets.c addressbook/ChangeLog addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in addressbook/gui/component/addressbook-component.c addressbook/gui/component/addressbook-component.h addressbook/gui/component/addressbook-config.c addressbook/gui/component/addressbook-migrate.h addressbook/gui/component/addressbook-view.c addressbook/gui/component/addressbook-view.h addressbook/gui/component/addressbook.h addressbook/gui/component/autocompletion-config.c addressbook/gui/component/autocompletion-config.h addressbook/gui/component/component-factory.c addressbook/gui/component/e-book-shell-module-migrate.c addressbook/gui/component/ldap-config.glade addressbook/gui/contact-editor/Makefile.am addressbook/gui/contact-editor/contact-editor.glade addressbook/gui/contact-editor/e-contact-editor-address.c addressbook/gui/contact-editor/e-contact-editor-address.h addressbook/gui/contact-editor/e-contact-editor-im.c addressbook/gui/contact-editor/e-contact-editor-im.h addressbook/gui/contact-editor/e-contact-editor.c addressbook/gui/contact-editor/e-contact-editor.h addressbook/gui/contact-editor/eab-editor.c addressbook/gui/contact-editor/eab-editor.h addressbook/gui/contact-editor/test-editor.c addressbook/gui/contact-list-editor/Makefile.am addressbook/gui/widgets/Makefile.am addressbook/gui/widgets/e-addressbook-model.c addressbook/gui/widgets/e-addressbook-model.h addressbook/gui/widgets/e-addressbook-reflow-adapter.c addressbook/gui/widgets/e-addressbook-view.c addressbook/gui/widgets/e-addressbook-view.h addressbook/gui/widgets/e-minicard-view.c addressbook/gui/widgets/eab-contact-display.c addressbook/gui/widgets/eab-gui-util.c addressbook/gui/widgets/eab-menu.c addressbook/gui/widgets/eab-menu.h addressbook/gui/widgets/eab-popup-control.c addressbook/gui/widgets/eab-popup-control.h addressbook/gui/widgets/eab-popup.c addressbook/gui/widgets/eab-popup.h addressbook/gui/widgets/eab-vcard-control.c addressbook/gui/widgets/eab-vcard-control.h addressbook/gui/widgets/gal-view-minicard.c addressbook/gui/widgets/gal-view-minicard.h addressbook/printing/e-contact-print-style-editor.c addressbook/printing/e-contact-print-style-editor.h addressbook/printing/e-contact-print.glade addressbook/printing/test-contact-print-style-editor.c addressbook/tools/evolution-addressbook-export.c addressbook/util/Makefile.am calendar/ChangeLog calendar/gui/Makefile.am calendar/gui/apps_evolution_calendar.schemas.in calendar/gui/calendar-component.c calendar/gui/calendar-component.h calendar/gui/calendar-config.c calendar/gui/comp-editor-factory.c calendar/gui/comp-editor-factory.h calendar/gui/comp-util.c calendar/gui/comp-util.h calendar/gui/control-factory.c calendar/gui/control-factory.h calendar/gui/dialogs/alarm-dialog.c calendar/gui/dialogs/cal-prefs-dialog.c calendar/gui/dialogs/cal-prefs-dialog.glade calendar/gui/dialogs/cal-prefs-dialog.h calendar/gui/dialogs/comp-editor.c calendar/gui/dialogs/comp-editor.h calendar/gui/dialogs/event-editor.c calendar/gui/dialogs/event-page.c calendar/gui/dialogs/memo-editor.c calendar/gui/dialogs/memo-page.c calendar/gui/dialogs/recurrence-page.c calendar/gui/dialogs/task-details-page.c calendar/gui/dialogs/task-details-page.glade calendar/gui/dialogs/task-editor.c calendar/gui/dialogs/task-page.c calendar/gui/e-cal-component-memo-preview.c calendar/gui/e-cal-component-memo-preview.h calendar/gui/e-cal-component-preview.c calendar/gui/e-cal-component-preview.h calendar/gui/e-cal-event.h calendar/gui/e-cal-model.c calendar/gui/e-cal-popup.c calendar/gui/e-calendar-table.c calendar/gui/e-calendar-view.c calendar/gui/e-day-view.c calendar/gui/e-itip-control.c calendar/gui/e-memo-table.c calendar/gui/e-memos.c calendar/gui/e-memos.h calendar/gui/e-tasks.c calendar/gui/e-tasks.h calendar/gui/e-week-view.c calendar/gui/gnome-cal.c calendar/gui/goto.c calendar/gui/itip-bonobo-control.c calendar/gui/itip-bonobo-control.h calendar/gui/itip-utils.c calendar/gui/itip-utils.h calendar/gui/main.c calendar/gui/memos-component.c calendar/gui/memos-control.c calendar/gui/memos-control.h calendar/gui/migration.c calendar/gui/migration.h calendar/gui/tasks-component.c calendar/gui/tasks-control.c calendar/importers/main.c composer/ChangeLog composer/e-composer-actions.c composer/e-composer-private.c composer/e-msg-composer.c composer/e-msg-composer.h composer/evolution-composer.ui configure.in doc/reference/shell/eshell-overrides.txt e-util/ChangeLog e-util/Makefile.am e-util/e-corba-utils.c e-util/e-corba-utils.h e-util/e-gui-utils.c e-util/e-gui-utils.h e-util/e-logger.c e-util/e-non-intrusive-error-dialog.c e-util/e-non-intrusive-error-dialog.h e-util/e-plugin-ui.c e-util/e-util-labels.c e-util/e-util-labels.h e-util/e-util.c e-util/e-util.h filter/ChangeLog filter/filter-option.c help/C/evolution.xml help/ChangeLog help/Makefile.am help/cs/cs.po help/de/de.po help/es/es.po help/eu/figures/Screenshot-Free-Busy.png help/eu/figures/evo_blink.png help/eu/figures/evo_dialog-info.png help/eu/figures/evo_dialog-warning.png help/eu/figures/evo_email_a.png help/eu/figures/evo_flag_follow_up_a.png help/eu/figures/evo_proxyadd_a.png help/eu/figures/evo_shd_memo_a.png help/eu/figures/exchange-delegation.png help/eu/figures/exchange-identity.png help/eu/figures/exchange-receive-options.png help/eu/figures/exchange-receive.png help/eu/figures/exchg-identity.png help/eu/figures/exchng-identity.png help/eu/figures/exchng-rec-mail.png help/eu/figures/exchng-rec-option.png help/eu/figures/exchng-rec-options.png help/eu/figures/free_busy.png help/eu/figures/full-1.png help/eu/figures/full-2.png help/eu/figures/full-3.png help/eu/figures/full-4.png help/eu/figures/full-5.png help/eu/figures/full-6.png help/eu/figures/full-7.png help/eu/figures/mail-druid-pic.png help/eu/figures/mail-inbox.png help/eu/figures/mail-threaded.png help/eu/figures/mainwindow-pic.png help/eu/figures/minus.png help/eu/figures/plus.png help/eu/figures/proxy-cal.png help/eu/figures/proxy-login.png help/eu/figures/schedule.png help/eu/figures/stock_search.png help/eu/figures/sub-others-folder.png help/eu/figures/sub-pub-fold.png help/eu/figures/vfolder-createrule-fig.png help/quickref/Makefile.am mail/ChangeLog mail/Makefile.am mail/default/Makefile.am mail/e-mail-shell-module-migrate.c mail/e-searching-tokenizer.c mail/em-account-editor.c mail/em-account-prefs.h mail/em-composer-prefs.c mail/em-composer-prefs.h mail/em-composer-utils.c mail/em-filter-folder-element.c mail/em-folder-browser.c mail/em-folder-selection-button.h mail/em-folder-selector.c mail/em-folder-tree-model.c mail/em-folder-tree-model.h mail/em-folder-tree.c mail/em-folder-tree.h mail/em-folder-utils.c mail/em-folder-utils.h mail/em-folder-view.c mail/em-format-html-display.c mail/em-format-html-print.c mail/em-format-html-print.h mail/em-format-html.c mail/em-format-quote.h mail/em-format.c mail/em-format.h mail/em-html-stream.h mail/em-mailer-prefs.c mail/em-mailer-prefs.h mail/em-message-browser.c mail/em-message-browser.h mail/em-migrate.h mail/em-network-prefs.h mail/em-popup.c mail/em-search-context.h mail/em-subscribe-editor.c mail/em-utils.c mail/em-utils.h mail/filtertypes.xml mail/mail-component-factory.c mail/mail-component.c mail/mail-config-factory.c mail/mail-config-factory.h mail/mail-config.c mail/mail-config.glade mail/mail-crypto.c mail/mail-crypto.h mail/mail-dialogs.glade mail/mail-folder-cache.c mail/mail-mt.c mail/mail-send-recv.c mail/mail-send-recv.h mail/mail-session.c mail/mail-session.h mail/mail-types.h mail/mail-vfolder.c mail/message-list.c mail/message-tag-followup.c mail/searchtypes.xml mail/vfoldertypes.xml plugins/attachment-reminder/Makefile.am plugins/audio-inline/org-gnome-audio-inline.eplug.xml plugins/caldav/ChangeLog plugins/caldav/caldav-source.c plugins/calendar-http/ChangeLog plugins/calendar-weather/ChangeLog plugins/calendar-weather/calendar-weather.c plugins/email-custom-header/ChangeLog plugins/email-custom-header/email-custom-header.c plugins/exchange-operations/ChangeLog plugins/google-account-setup/ChangeLog plugins/google-account-setup/Makefile.am plugins/google-account-setup/google-contacts-source.c plugins/google-account-setup/google-source.c plugins/import-ics-attachments/ChangeLog plugins/import-ics-attachments/Makefile.am plugins/import-ics-attachments/icsimporter.c plugins/itip-formatter/ChangeLog plugins/itip-formatter/itip-view.c plugins/mail-account-disable/ChangeLog plugins/mail-account-disable/mail-account-disable.c plugins/mail-notification/ChangeLog plugins/mail-notification/mail-notification.c plugins/mail-to-meeting/ChangeLog plugins/mail-to-task/ChangeLog plugins/mark-all-read/mark-all-read.c plugins/publish-calendar/ChangeLog plugins/publish-calendar/publish-format-fb.c plugins/publish-calendar/publish-format-ical.c plugins/save-attachments/ChangeLog plugins/save-attachments/Makefile.am plugins/save-attachments/save-attachments.c plugins/select-one-source/ChangeLog plugins/select-one-source/Makefile.am plugins/select-one-source/select-one-source.c plugins/startup-wizard/ChangeLog plugins/startup-wizard/startup-wizard.c plugins/webdav-account-setup/ChangeLog plugins/webdav-account-setup/Makefile.am plugins/webdav-account-setup/webdav-contacts-source.c po/ChangeLog po/POTFILES.in po/ar.po po/bg.po po/bn_IN.po po/ca.po po/cs.po po/da.po po/de.po po/el.po po/en_GB.po po/es.po po/et.po po/fr.po po/gl.po po/gu.po po/hi.po po/hu.po po/it.po po/ja.po po/kn.po po/ko.po po/lt.po po/ml.po po/mr.po po/nb.po po/nl.po po/pa.po po/pl.po po/pt.po po/ru.po po/sl.po po/sr.po po/sr@latin.po po/sv.po po/ta.po po/te.po po/th.po po/tr.po po/zh_HK.po po/zh_TW.po shell/ChangeLog shell/Evolution-Component.idl shell/Makefile.am shell/apps_evolution_shell.schemas.in shell/e-component-registry.c shell/e-component-registry.h shell/e-component-view.c shell/e-component-view.h shell/e-corba-config-page.c shell/e-corba-config-page.h shell/e-shell-constants.h shell/e-shell-importer.c shell/e-shell-importer.h shell/e-shell-nm.c shell/e-shell-settings-dialog.c shell/e-shell-settings-dialog.h shell/e-shell-view.c shell/e-shell-view.h shell/e-shell-window-commands.c shell/e-shell-window-commands.h shell/e-shell-window.c shell/e-shell-window.h shell/e-shell.c shell/e-shell.h shell/e-sidebar.c shell/e-sidebar.h shell/e-user-creatable-items-handler.c shell/e-user-creatable-items-handler.h shell/es-menu.c shell/es-menu.h shell/evolution-component.c shell/evolution-component.h shell/evolution-config-control.c shell/evolution-config-control.h shell/evolution-listener.c shell/evolution-listener.h shell/evolution-shell-component-utils.c shell/evolution-shell-component-utils.h shell/importer/evolution-importer-client.c shell/importer/evolution-importer-client.h shell/importer/evolution-importer-listener.c shell/importer/evolution-importer-listener.h shell/importer/evolution-importer.c shell/importer/evolution-importer.h shell/importer/evolution-intelligent-importer.c shell/importer/evolution-intelligent-importer.h shell/importer/import.glade shell/importer/intelligent.c shell/importer/intelligent.h shell/main.c shell/shell.error.xml shell/test/evolution-test-component.c shell/test/evolution-test-component.h smime/ChangeLog smime/lib/Makefile.am ui/Makefile.am ui/evolution-addressbook.xml ui/evolution-calendar.xml widgets/ChangeLog widgets/menus/gal-view-menus.c widgets/menus/gal-view-menus.h widgets/misc/ChangeLog widgets/misc/Makefile.am widgets/misc/e-activity-handler.c widgets/misc/e-activity-handler.h widgets/misc/e-attachment-bar.c widgets/misc/e-attachment-bar.h widgets/misc/e-attachment.c widgets/misc/e-attachment.h widgets/misc/e-calendar-item.c widgets/misc/e-charset-picker.c widgets/misc/e-combo-button.c widgets/misc/e-combo-button.h widgets/misc/e-config-page.c widgets/misc/e-config-page.h widgets/misc/e-dropdown-button.c widgets/misc/e-dropdown-button.h widgets/misc/e-filter-bar.h widgets/misc/e-info-label.c widgets/misc/e-info-label.h widgets/misc/e-multi-config-dialog.c widgets/misc/e-multi-config-dialog.h widgets/misc/e-online-button.c widgets/misc/e-search-bar.c widgets/misc/e-search-bar.h widgets/misc/e-signature-combo-box.c widgets/misc/e-signature-combo-box.h widgets/misc/e-signature-editor.c widgets/misc/e-signature-editor.h widgets/misc/e-task-bar.c widgets/misc/e-task-bar.h widgets/misc/e-task-widget.c widgets/misc/e-task-widget.h widgets/misc/test-dropdown-button.c widgets/misc/test-info-label.c widgets/misc/test-multi-config-dialog.c widgets/table/ChangeLog widgets/table/e-cell-date.c widgets/table/e-table-group-container.c widgets/table/e-table-group-leaf.c widgets/table/e-table-group.c widgets/table/e-table-group.h widgets/table/e-table.c widgets/table/e-table.h
Diffstat (limited to 'calendar/gui/dialogs/event-page.c')
-rw-r--r--calendar/gui/dialogs/event-page.c143
1 files changed, 70 insertions, 73 deletions
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 1f09663c53..b0fcdc4632 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -98,7 +98,7 @@ struct _EventPagePrivate {
GtkWidget *start_time;
GtkWidget *end_time;
- GtkWidget *end_time_selector;
+ GtkWidget *end_time_combo;
GtkWidget *time_hour;
GtkWidget *hour_selector;
GtkWidget *minute_selector;
@@ -115,7 +115,7 @@ struct _EventPagePrivate {
gboolean show_time_as_busy;
GtkWidget *alarm_dialog;
- GtkWidget *alarm_time;
+ GtkWidget *alarm_time_combo;
GtkWidget *alarm_warning;
GtkWidget *alarm_box;
@@ -174,7 +174,7 @@ static void set_attendees (ECalComponent *comp, const GPtrArray *attendees);
static void hour_sel_changed ( GtkSpinButton *widget, EventPage *epage);
static void minute_sel_changed ( GtkSpinButton *widget, EventPage *epage);
static void hour_minute_changed ( EventPage *epage);
-static void update_end_time_selector( EventPage *epage);
+static void update_end_time_combo ( EventPage *epage);
static void event_page_select_organizer (EventPage *epage, const char *backend_address);
static void set_subscriber_info_string (EventPage *epage, const char *backend_address);
@@ -354,8 +354,8 @@ set_all_day (EventPage *epage, gboolean all_day)
/* TODO implement for in end time selector */
if (all_day)
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 1);
- gtk_widget_set_sensitive (priv->end_time_selector, !all_day);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 1);
+ gtk_widget_set_sensitive (priv->end_time_combo, !all_day);
e_date_edit_set_show_time (E_DATE_EDIT (priv->start_time), !all_day);
e_date_edit_set_show_time (E_DATE_EDIT (priv->end_time), !all_day);
@@ -450,7 +450,7 @@ update_time (EventPage *epage, ECalComponentDateTime *start_date, ECalComponentD
priv->sync_timezones = TRUE;
- update_end_time_selector (epage);
+ update_end_time_combo (epage);
}
/* Fills the widgets with default values */
@@ -488,7 +488,7 @@ clear_widgets (EventPage *epage)
set_busy_time_menu (epage, TRUE);
/* Alarm */
- e_dialog_option_menu_set (priv->alarm_time, ALARM_NONE, alarm_map);
+ e_dialog_combo_box_set (priv->alarm_time_combo, ALARM_NONE, alarm_map);
/* Categories */
e_dialog_editable_set (priv->categories, NULL);
@@ -728,9 +728,9 @@ sensitize_widgets (EventPage *epage)
sensitize = !read_only && sens;
- alarm = e_dialog_option_menu_get (priv->alarm_time, alarm_map) != ALARM_NONE;
+ alarm = e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map) != ALARM_NONE;
custom = is_custom_alarm_store (priv->alarm_list_store, priv->old_summary, priv->alarm_units, priv->alarm_interval, NULL) ||
- e_dialog_option_menu_get (priv->alarm_time, alarm_map) == ALARM_CUSTOM ? TRUE:FALSE;
+ e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map) == ALARM_CUSTOM ? TRUE:FALSE;
if (alarm && !priv->alarm_icon) {
priv->alarm_icon = create_image_event_box ("stock_bell", _("This event has alarms"));
@@ -740,7 +740,7 @@ sensitize_widgets (EventPage *epage)
/* The list of organizers is set to be non-editable. Otherwise any
* change in the displayed list causes an 'Account not found' error.
*/
- gtk_editable_set_editable (GTK_EDITABLE (GTK_COMBO (priv->organizer)->entry), FALSE);
+ gtk_editable_set_editable (GTK_EDITABLE (gtk_bin_get_child (GTK_BIN (priv->organizer))), FALSE);
gtk_editable_set_editable (GTK_EDITABLE (priv->summary), !read_only);
gtk_editable_set_editable (GTK_EDITABLE (priv->location), sensitize);
@@ -750,16 +750,16 @@ sensitize_widgets (EventPage *epage)
gtk_widget_set_sensitive (priv->end_time, sensitize);
gtk_widget_set_sensitive (priv->end_timezone, sensitize);
gtk_text_view_set_editable (GTK_TEXT_VIEW (priv->description), !read_only);
- gtk_widget_set_sensitive (priv->alarm_time, !read_only);
+ gtk_widget_set_sensitive (priv->alarm_time_combo, !read_only);
gtk_widget_set_sensitive (priv->categories_btn, !read_only);
/*TODO implement the for portion of the end time selector */
if (flags & COMP_EDITOR_NEW_ITEM) {
if (priv->all_day_event)
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 1);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 1);
else
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 0);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 0);
} else
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 1);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 1);
gtk_widget_set_sensitive (priv->hour_selector, sensitize);
gtk_widget_set_sensitive (priv->minute_selector, sensitize);
@@ -856,7 +856,7 @@ get_current_account (EventPage *epage)
priv = epage->priv;
- str = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry));
+ str = gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->organizer))));
if (!str)
return NULL;
@@ -960,9 +960,8 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
if (organizer.value != NULL) {
const gchar *strip = itip_strip_mailto (organizer.value);
gchar *string;
- GList *list = NULL;
- if (itip_organizer_is_user (comp, client) || itip_sentby_is_user (comp)) {
+ if (itip_organizer_is_user (comp, client) || itip_sentby_is_user (comp, client)) {
if (e_cal_get_static_capability (
client,
CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS))
@@ -986,13 +985,15 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
string = g_strdup (strip);
if (!priv->user_org) {
- list = g_list_append (list, string);
- gtk_combo_set_popdown_strings (GTK_COMBO (priv->organizer), list);
- gtk_editable_set_editable (GTK_EDITABLE (GTK_COMBO (priv->organizer)->entry), FALSE);
+ gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (priv->organizer))));
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->organizer), string);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->organizer), 0);
+ gtk_editable_set_editable (GTK_EDITABLE (gtk_bin_get_child (GTK_BIN (priv->organizer))), FALSE);
+ } else {
+ gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->organizer))), string);
}
g_free (string);
- g_list_free (list);
priv->existing = TRUE;
}
} else {
@@ -1039,7 +1040,7 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
e_cal_component_free_datetime (&start_date);
e_cal_component_free_datetime (&end_date);
- update_end_time_selector (epage);
+ update_end_time_combo (epage);
/* Classification */
e_cal_component_get_classification (comp, &cl);
comp_editor_set_classification (editor, cl);
@@ -1064,7 +1065,7 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
enable_busy_time_menu (epage, TRUE);
/* Alarms */
- g_signal_handlers_block_matched (priv->alarm_time, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
+ g_signal_handlers_block_matched (priv->alarm_time_combo, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
g_signal_handlers_block_matched (priv->alarm_list_store, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
if (e_cal_component_has_alarms (comp)) {
@@ -1073,9 +1074,9 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
alarms = e_cal_component_get_alarm_uids (comp);
if (!is_custom_alarm_uid_list (comp, alarms, priv->old_summary, priv->alarm_units, priv->alarm_interval, &alarm_type))
- e_dialog_option_menu_set (priv->alarm_time, alarm_type, alarm_map);
+ e_dialog_combo_box_set (priv->alarm_time_combo, alarm_type, alarm_map);
else
- e_dialog_option_menu_set (priv->alarm_time, ALARM_CUSTOM, alarm_map);
+ e_dialog_combo_box_set (priv->alarm_time_combo, ALARM_CUSTOM, alarm_map);
for (list = alarms; list != NULL; list = list->next) {
ECalComponentAlarm *ca;
@@ -1087,9 +1088,9 @@ event_page_fill_widgets (CompEditorPage *page, ECalComponent *comp)
cal_obj_uid_list_free (alarms);
} else {
- e_dialog_option_menu_set (priv->alarm_time, ALARM_NONE, alarm_map);
+ e_dialog_combo_box_set (priv->alarm_time_combo, ALARM_NONE, alarm_map);
}
- g_signal_handlers_unblock_matched (priv->alarm_time, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
+ g_signal_handlers_unblock_matched (priv->alarm_time_combo, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
g_signal_handlers_unblock_matched (priv->alarm_list_store, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, epage);
/* Categories */
@@ -1281,8 +1282,8 @@ event_page_fill_component (CompEditorPage *page, ECalComponent *comp)
/* Alarm */
e_cal_component_remove_all_alarms (comp);
- if (e_dialog_option_menu_get (priv->alarm_time, alarm_map) != ALARM_NONE) {
- if (e_dialog_option_menu_get (priv->alarm_time, alarm_map) == ALARM_CUSTOM) {
+ if (e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map) != ALARM_NONE) {
+ if (e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map) == ALARM_CUSTOM) {
GtkTreeModel *model;
GtkTreeIter iter;
gboolean valid_iter;
@@ -1349,7 +1350,7 @@ event_page_fill_component (CompEditorPage *page, ECalComponent *comp)
trigger.type = E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START;
trigger.u.rel_duration.is_neg = 1;
- alarm_type = e_dialog_option_menu_get (priv->alarm_time, alarm_map);
+ alarm_type = e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map);
switch (alarm_type) {
case ALARM_15_MINUTES:
trigger.u.rel_duration.minutes = 15;
@@ -1512,10 +1513,10 @@ event_page_set_dates (CompEditorPage *page, CompEditorPageDates *dates)
static void
-time_sel_changed (GtkOptionMenu *widget, EventPage *epage)
+time_sel_changed (GtkComboBox *combo, EventPage *epage)
{
EventPagePrivate *priv;
- int selection = gtk_option_menu_get_history (widget);
+ int selection = gtk_combo_box_get_active (combo);
priv = epage->priv;
@@ -1528,12 +1529,12 @@ time_sel_changed (GtkOptionMenu *widget, EventPage *epage)
gtk_widget_show (priv->time_hour);
gtk_widget_hide (priv->end_time);
- update_end_time_selector ( epage);
+ update_end_time_combo ( epage);
}
}
static
-void update_end_time_selector (EventPage *epage)
+void update_end_time_combo (EventPage *epage)
{
EventPagePrivate *priv;
struct icaltimetype start_tt = icaltime_null_time();
@@ -2019,11 +2020,11 @@ event_page_set_all_day_event (EventPage *epage, gboolean all_day)
g_return_if_fail (date_set);
/* TODO implement the for portion in end time selector */
- gtk_widget_set_sensitive (priv->end_time_selector, !all_day);
+ gtk_widget_set_sensitive (priv->end_time_combo, !all_day);
if (all_day)
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 1);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 1);
else
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 0);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 0);
action = comp_editor_get_action (editor, "view-time-zone");
gtk_action_set_sensitive (action, !all_day);
@@ -2176,7 +2177,7 @@ get_widgets (EventPage *epage)
page->accel_group = g_object_ref (accel_groups->data);
priv->alarm_dialog = GW ("alarm-dialog");
priv->alarm_box = GW ("custom_box");
- priv->alarm_time = GW ("alarm-time");
+ priv->alarm_time_combo = GW ("alarm-time-combobox");
priv->timezone_label = GW ("timezone-label");
priv->start_timezone = GW ("start-timezone");
@@ -2199,7 +2200,10 @@ get_widgets (EventPage *epage)
priv->categories = GW ("categories");
priv->categories_btn = GW ("categories-button");
+
priv->organizer = GW ("organizer");
+ gtk_list_store_clear (GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (priv->organizer))));
+
priv->summary = GW ("summary");
priv->summary_label = GW ("summary-label");
priv->location = GW ("location");
@@ -2236,7 +2240,7 @@ get_widgets (EventPage *epage)
priv->time_hour = GW ("time-hour");
priv->hour_selector = GW ("hour_selector");
priv->minute_selector = GW ("minute_selector");
- priv->end_time_selector = GW ("end-time-selector");
+ priv->end_time_combo = GW ("end-time-combobox");
priv->end_time = GW ("end-time");
gtk_widget_show_all (priv->time_hour);
@@ -2634,7 +2638,7 @@ alarm_changed_cb (GtkWidget *widget,
{
EventPagePrivate *priv = epage->priv;
- if (e_dialog_option_menu_get (priv->alarm_time, alarm_map) != ALARM_NONE) {
+ if (e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map) != ALARM_NONE) {
ECalComponentAlarm *ca;
ECalComponentAlarmTrigger trigger;
icalcomponent *icalcomp;
@@ -2649,7 +2653,7 @@ alarm_changed_cb (GtkWidget *widget,
trigger.type = E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START;
trigger.u.rel_duration.is_neg = 1;
- alarm_type = e_dialog_option_menu_get (priv->alarm_time, alarm_map);
+ alarm_type = e_dialog_combo_box_get (priv->alarm_time_combo, alarm_map);
switch (alarm_type) {
case ALARM_15_MINUTES:
e_alarm_list_clear (priv->alarm_list_store);
@@ -2773,9 +2777,8 @@ init_widgets (EventPage *epage)
CompEditor *editor;
GtkTextBuffer *text_buffer;
icaltimezone *zone;
- char *menu_label = NULL;
+ char *combo_label = NULL;
GtkTreeSelection *selection;
- GtkWidget *cus_item, *menu;
ECal *client;
editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (epage));
@@ -2881,11 +2884,11 @@ init_widgets (EventPage *epage)
}
/* End time selector */
- gtk_option_menu_set_history (GTK_OPTION_MENU (priv->end_time_selector), 1);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->end_time_combo), 1);
gtk_widget_hide (priv->time_hour);
gtk_widget_show (priv->end_time);
- g_signal_connect (priv->end_time_selector, "changed", G_CALLBACK (time_sel_changed), epage);
- update_end_time_selector ( epage);
+ g_signal_connect (priv->end_time_combo, "changed", G_CALLBACK (time_sel_changed), epage);
+ update_end_time_combo ( epage);
/* Hour and Minute selector */
gtk_spin_button_set_range( (GtkSpinButton*) priv->hour_selector, 0, G_MAXINT);
@@ -2896,50 +2899,40 @@ init_widgets (EventPage *epage)
priv->alarm_units = calendar_config_get_default_reminder_units ();
priv->alarm_interval = calendar_config_get_default_reminder_interval ();
- menu_label = "";
+ combo_label = NULL;
switch (priv->alarm_units) {
case CAL_DAYS:
if (priv->alarm_interval != 1) {
- menu_label = g_strdup_printf (ngettext("%d day before appointment", "%d days before appointment", priv->alarm_interval), priv->alarm_interval);
+ combo_label = g_strdup_printf (ngettext("%d day before appointment", "%d days before appointment", priv->alarm_interval), priv->alarm_interval);
}
break;
case CAL_HOURS:
if (priv->alarm_interval != 1) {
- menu_label = g_strdup_printf (ngettext("%d hour before appointment", "%d hours before appointment", priv->alarm_interval), priv->alarm_interval);
+ combo_label = g_strdup_printf (ngettext("%d hour before appointment", "%d hours before appointment", priv->alarm_interval), priv->alarm_interval);
}
break;
case CAL_MINUTES:
if (priv->alarm_interval != 15) {
- menu_label = g_strdup_printf (ngettext("%d minute before appointment", "%d minutes before appointment", priv->alarm_interval), priv->alarm_interval);
+ combo_label = g_strdup_printf (ngettext("%d minute before appointment", "%d minutes before appointment", priv->alarm_interval), priv->alarm_interval);
}
break;
}
- cus_item = gtk_menu_item_new_with_label (menu_label);
- if(menu_label[0] != '\0') {
- gtk_widget_show (cus_item);
+ if (combo_label) {
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->alarm_time_combo), combo_label);
+ g_free (combo_label);
}
- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (priv->alarm_time));
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), cus_item);
-
- cus_item = gtk_menu_item_new_with_label (_("Customize"));
- gtk_widget_show (cus_item);
- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (priv->alarm_time));
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), cus_item);
-
- cus_item = gtk_menu_item_new_with_label (_("None"));
- gtk_widget_show (cus_item);
- menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (priv->alarm_time));
- gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), cus_item);
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->alarm_time_combo), _("Customize"));
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->alarm_time_combo), _("None"));
g_signal_connect_swapped (
- priv->alarm_time, "changed",
+ priv->alarm_time_combo, "changed",
G_CALLBACK (comp_editor_page_changed), epage);
g_signal_connect (
- priv->alarm_time, "changed",
+ priv->alarm_time_combo, "changed",
G_CALLBACK (alarm_changed_cb), epage);
/* Belongs to priv->description */
@@ -3024,9 +3017,8 @@ event_page_select_organizer (EventPage *epage, const char *backend_address)
if (default_address) {
if (!priv->comp || !e_cal_component_has_organizer (priv->comp)) {
- gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (priv->organizer)->entry), default_address);
- /* FIXME: Use accessor functions to access private members of a GtkCombo widget */
- gtk_widget_set_sensitive (GTK_WIDGET (GTK_COMBO (priv->organizer)->button), !subscribed_cal);
+ gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->organizer))), default_address);
+ gtk_widget_set_sensitive (priv->organizer, !subscribed_cal);
}
} else
g_warning ("No potential organizers!");
@@ -3092,9 +3084,14 @@ event_page_construct (EventPage *epage, EMeetingStore *model)
g_object_unref(it);
- if (priv->address_strings)
- gtk_combo_set_popdown_strings (GTK_COMBO (priv->organizer), priv->address_strings);
- else
+ if (priv->address_strings) {
+ GList *l;
+
+ for (l = priv->address_strings; l; l = l->next)
+ gtk_combo_box_append_text (GTK_COMBO_BOX (priv->organizer), l->data);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->organizer), 0);
+ } else
g_warning ("No potential organizers!");
if (!init_widgets (epage)) {