From c9e20b967bb7e1b679f10cb9d388c94a95c3bf06 Mon Sep 17 00:00:00 2001 From: Li Yuan Date: Tue, 12 Oct 2004 06:58:11 +0000 Subject: When the start year and the end year are the same, the num should be 2004-10-12 Li Yuan * gui/calendar-commands.c: (calendar_get_text_for_folder_bar_label): When the start year and the end year are the same, the num should be displayed in start time. * gui/dialogs/alarm-dialog.glade: Add names to comboxes in alarm-dialog page. * gui/dialogs/cal-prefs-dialog.glade: Add labbled_by relation for e_date_edit. Add names to comboxes in general tab and display tab. Add shortcut keys to start_of_day_label and end_of_day_label. * gui/dialogs/event-page.c: (init_widgets): Use the default text_buffer of gtk_text_view instead of creating one. * gui/dialogs/event-page.glade: Add labbled_by relation for e_date_edit. * gui/dialogs/meeting-page.glade: Set an atk name for organizer widget. * gui/dialogs/task-page.c: (init_widgets): Use the default text_buffer of gtk_text_view instead of creating one. * gui/dialogs/task-page.glade: Add labbled_by relation for e_date_edit. Add a11y names to task description and categories. * gui/e-alarm-list.c: (e_alarm_list_iter_n_children): Remove the iter checker. The iter can't have a valid value at this time. * gui/e-date-time-list.c: (e_date_time_list_iter_n_children): Remove the iter checker. The iter can't have a valid value at this time. * gui/e-meeting-time-sel.c: (e_meeting_time_selector_construct): Add labbled_by relation for e_date_edit. * gui/e-timezone-entry.c: (e_timezone_entry_class_init), (e_timezone_entry_init), (e_timezone_entry_mnemonic_activate), (e_timezone_entry_focus): Add a focus handler for e-timezone-entry. Set an atk name for the button. * gui/e-week-view.c: (e_week_view_do_cursor_key_up), (e_week_view_do_cursor_key_down), (e_week_view_do_cursor_key_left), (e_week_view_do_cursor_key_right), (e_month_view_do_cursor_key_up), (e_month_view_do_cursor_key_down), (e_month_view_do_cursor_key_left), (e_month_view_do_cursor_key_right): Emit the selected_time_changed signal after the selection day changed. svn path=/trunk/; revision=27550 --- calendar/gui/e-timezone-entry.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'calendar/gui/e-timezone-entry.c') diff --git a/calendar/gui/e-timezone-entry.c b/calendar/gui/e-timezone-entry.c index fc95d83a74..0c2c795bf3 100644 --- a/calendar/gui/e-timezone-entry.c +++ b/calendar/gui/e-timezone-entry.c @@ -36,6 +36,7 @@ #include #include #include +#include #include "e-timezone-entry.h" #include @@ -68,6 +69,8 @@ static void e_timezone_entry_destroy (GtkObject *object); static gboolean e_timezone_entry_mnemonic_activate (GtkWidget *widget, gboolean group_cycling); +static gboolean e_timezone_entry_focus (GtkWidget *widget, + GtkDirectionType direction); static void on_entry_changed (GtkEntry *entry, ETimezoneEntry *tentry); static void on_button_clicked (GtkWidget *widget, @@ -93,6 +96,7 @@ e_timezone_entry_class_init (ETimezoneEntryClass *class) parent_class = g_type_class_peek_parent (class); widget_class->mnemonic_activate = e_timezone_entry_mnemonic_activate; + widget_class->focus = e_timezone_entry_focus; timezone_entry_signals[CHANGED] = gtk_signal_new ("changed", GTK_RUN_LAST, @@ -115,6 +119,7 @@ e_timezone_entry_init (ETimezoneEntry *tentry) ETimezoneEntryPrivate *priv; GtkWidget *gtk_image; GdkPixbuf *gdk_pixbuf; + AtkObject *a11y; tentry->priv = priv = g_new0 (ETimezoneEntryPrivate, 1); @@ -132,6 +137,10 @@ e_timezone_entry_init (ETimezoneEntry *tentry) g_signal_connect (priv->button, "clicked", G_CALLBACK (on_button_clicked), tentry); gtk_box_pack_start (GTK_BOX (tentry), priv->button, FALSE, FALSE, 6); gtk_widget_show (priv->button); + a11y = gtk_widget_get_accessible (priv->button); + if (a11y != NULL) { + atk_object_set_name (a11y, _("Timezone Button")); + } gdk_pixbuf = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_BUTTON); gtk_image = gtk_image_new_from_pixbuf (gdk_pixbuf); @@ -314,3 +323,34 @@ e_timezone_entry_mnemonic_activate (GtkWidget *widget, return TRUE; } +static gboolean +e_timezone_entry_focus (GtkWidget *widget, GtkDirectionType direction) +{ + ETimezoneEntry *tentry; + + tentry = E_TIMEZONE_ENTRY (widget); + + if (direction == GTK_DIR_TAB_FORWARD) { + if (GTK_WIDGET_HAS_FOCUS (tentry->priv->entry)) + gtk_widget_grab_focus (tentry->priv->button); + else if (GTK_WIDGET_HAS_FOCUS (tentry->priv->button)) + return FALSE; + else if (GTK_WIDGET_VISIBLE (tentry->priv->entry)) + gtk_widget_grab_focus (tentry->priv->entry); + else + gtk_widget_grab_focus (tentry->priv->button); + } else if (direction == GTK_DIR_TAB_BACKWARD) { + if (GTK_WIDGET_HAS_FOCUS (tentry->priv->entry)) + return FALSE; + else if (GTK_WIDGET_HAS_FOCUS (tentry->priv->button)) { + if (GTK_WIDGET_VISIBLE (tentry->priv->entry)) + gtk_widget_grab_focus (tentry->priv->entry); + else + return FALSE; + } else + gtk_widget_grab_focus (tentry->priv->button); + } else + return FALSE; + return TRUE; +} + -- cgit v1.2.3