From 55e921af93354f13406657f4a5d68c5e426d9402 Mon Sep 17 00:00:00 2001 From: Li Yuan Date: Thu, 30 Sep 2004 07:32:36 +0000 Subject: Make accessibility name and description translatable. 2004-09-23 Li Yuan * calendar/ea-cal-view-event.c: (ea_cal_view_event_get_type), (ea_cal_view_event_get_name), (ea_cal_view_event_get_description): Make accessibility name and description translatable. (atk_action_interface_init), (ea_cal_view_event_do_action), (ea_cal_view_event_get_n_actions), (ea_cal_view_event_action_get_name): Add action interface to ea-cal-view-event so that it can be UI grabbed by GOK. * calendar/ea-cal-view.c: Make accessibility name and description translatable. * calendar/ea-day-view-cell.c: (ea_day_view_cell_new): Change atk role of ea-day-view-cell from ATK_ROLE_TABLE_CELL to ATK_ROLE_UNKNOWN so that it can be UI grabbed by GOK. (atk_component_interface_init), (component_interface_grab_focus): Add a component interface function : grab_focus. When grab focus, present the Evolution GUI to the front. * calendar/ea-day-view-main-item.c: (ea_day_view_main_item_get_description): Make accessibility name and description translatable. (ea_day_view_main_item_time_change_cb): Notify the item_cell is selected. * calendar/ea-day-view.c: (ea_day_view_get_name), (ea_day_view_get_description): Make accessibility name and description translatable. * calendar/ea-gnome-calendar.c: (ea_gnome_calendar_get_name), (ea_gnome_calendar_get_description), (ea_gnome_calendar_ref_child): Make accessibility name and description translatable. * calendar/ea-jump-button.c: (ea_jump_button_get_name), (ea_jump_button_get_description): Make accessibility name and description translatable. * calendar/ea-week-view-cell.c: (ea_week_view_cell_get_name), (atk_component_interface_init), (component_interface_get_extents), (component_interface_grab_focus): Add a component interface function : grab_focus. Add support for different week start days. When grab focus, present the Evolutioon GUI to the front. * calendar/ea-week-view-main-item.c: (ea_week_view_main_item_new): Set the atk role to ATK_ROLE_TABLE. (ea_week_view_main_item_get_description): Make accessibility name and description translatable. (ea_week_view_main_item_time_change_cb): Notify the item_cell is selected. * calendar/ea-week-view.c: (ea_week_view_get_name), (ea_week_view_get_description): Make accessibility name and description translatable. * widgets/ea-calendar-cell.c: (ea_calendar_cell_new): Change atk role of ea-calendar-cell from ATK_ROLE_TABLE_CELL to ATK_ROLE_UNKNOWN so that it can be UI grabbed by GOK. * widgets/ea-calendar-item.c: (ea_calendar_item_class_init), (ea_calendar_item_get_name), (ea_calendar_item_get_description): Make accessibility name and description translatable. (ea_calendar_item_ref_state_set),: Implement ref_state_set so that ea-calendar-item can be UI grabbed by GOK. (ea_calendar_item_destory_cell_data): Fix a crash here. svn path=/trunk/; revision=27434 --- a11y/widgets/ea-calendar-item.c | 56 ++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 9 deletions(-) (limited to 'a11y/widgets/ea-calendar-item.c') diff --git a/a11y/widgets/ea-calendar-item.c b/a11y/widgets/ea-calendar-item.c index 50cbafa08c..ac5eb1ff41 100644 --- a/a11y/widgets/ea-calendar-item.c +++ b/a11y/widgets/ea-calendar-item.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include "ea-calendar-item.h" #include "ea-calendar-cell.h" #include "ea-cell-table.h" @@ -42,6 +44,7 @@ static G_CONST_RETURN gchar* ea_calendar_item_get_name (AtkObject *accessible); static G_CONST_RETURN gchar* ea_calendar_item_get_description (AtkObject *accessible); static gint ea_calendar_item_get_n_children (AtkObject *accessible); static AtkObject *ea_calendar_item_ref_child (AtkObject *accessible, gint index); +static AtkStateSet* ea_calendar_item_ref_state_set (AtkObject *accessible); /* atk table interface */ static void atk_table_interface_init (AtkTableIface *iface); @@ -201,6 +204,7 @@ ea_calendar_item_class_init (EaCalendarItemClass *klass) class->get_name = ea_calendar_item_get_name; class->get_description = ea_calendar_item_get_description; + class->ref_state_set = ea_calendar_item_ref_state_set; class->get_n_children = ea_calendar_item_get_n_children; class->ref_child = ea_calendar_item_ref_child; @@ -264,6 +268,10 @@ ea_calendar_item_get_name (AtkObject *accessible) gint start_year, start_month, start_day; gint end_year, end_month, end_day; static gchar new_name[256] = ""; + gchar buffer_start[128] = ""; + gchar buffer_end[128] = ""; + struct tm day_start = { 0 }; + struct tm day_end = { 0 }; g_return_val_if_fail (EA_IS_CALENDAR_ITEM (accessible), NULL); @@ -276,13 +284,26 @@ ea_calendar_item_get_name (AtkObject *accessible) calitem = E_CALENDAR_ITEM (g_obj); if (e_calendar_item_get_date_range (calitem, &start_year, &start_month, &start_day, - &end_year, &end_month, &end_day)) { - ++start_month; - ++end_month; - sprintf (new_name, "calendar (from %d-%d-%d to %d-%d-%d)", - start_year, start_month, start_day, - end_year, end_month, end_day); - } + &end_year, &end_month, &end_day)) { + + day_start.tm_year = start_year - 1900; + day_start.tm_mon = start_month; + day_start.tm_mday = start_day; + day_start.tm_isdst = -1; + e_utf8_strftime (buffer_start, sizeof (buffer_start), _(" %d %B %Y"), &day_start); + + day_end.tm_year = end_year - 1900; + day_end.tm_mon = end_month; + day_end.tm_mday = end_day; + day_end.tm_isdst = -1; + e_utf8_strftime (buffer_end, sizeof (buffer_end), _(" %d %B %Y"), &day_end); + + strcat (new_name, _("calendar (from ")); + strcat (new_name, buffer_start); + strcat (new_name, _(" to ")); + strcat (new_name, buffer_end); + strcat (new_name, _(")")); + } #if 0 if (e_calendar_item_get_selection (calitem, &select_start, &select_end)) { @@ -313,7 +334,24 @@ ea_calendar_item_get_description (AtkObject *accessible) if (accessible->description) return accessible->description; - return "evolution calendar item"; + return _("evolution calendar item"); +} + +static AtkStateSet* +ea_calendar_item_ref_state_set (AtkObject *accessible) +{ + AtkStateSet *state_set; + GObject *g_obj; + + state_set = ATK_OBJECT_CLASS (parent_class)->ref_state_set (accessible); + g_obj = atk_gobject_accessible_get_object (ATK_GOBJECT_ACCESSIBLE(accessible)); + if (!g_obj) + return state_set; + + atk_state_set_add_state (state_set, ATK_STATE_ENABLED); + atk_state_set_add_state (state_set, ATK_STATE_SENSITIVE); + + return state_set; } static gint @@ -1039,9 +1077,9 @@ ea_calendar_item_destory_cell_data (EaCalendarItem *ea_calitem) cell_data = g_object_get_data (G_OBJECT(ea_calitem), "ea-calendar-cell-table"); if (cell_data) { - ea_cell_table_destroy (cell_data); g_object_set_data (G_OBJECT(ea_calitem), "ea-calendar-cell-table", NULL); + ea_cell_table_destroy (cell_data); } } -- cgit v1.2.3