aboutsummaryrefslogtreecommitdiffstats
path: root/a11y/widgets/ea-calendar-item.c
diff options
context:
space:
mode:
authorLi Yuan <li.yuan@sun.com>2004-09-30 15:32:36 +0800
committerHarry Lu <haip@src.gnome.org>2004-09-30 15:32:36 +0800
commit55e921af93354f13406657f4a5d68c5e426d9402 (patch)
treec3df07c23a7b26388ec7aa2ad510e06b39189c42 /a11y/widgets/ea-calendar-item.c
parenta575a7229795651453ffdc8809a2f642b5e4a00c (diff)
downloadgsoc2013-evolution-55e921af93354f13406657f4a5d68c5e426d9402.tar.gz
gsoc2013-evolution-55e921af93354f13406657f4a5d68c5e426d9402.tar.zst
gsoc2013-evolution-55e921af93354f13406657f4a5d68c5e426d9402.zip
Make accessibility name and description translatable.
2004-09-23 Li Yuan <li.yuan@sun.com> * 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
Diffstat (limited to 'a11y/widgets/ea-calendar-item.c')
-rw-r--r--a11y/widgets/ea-calendar-item.c56
1 files changed, 47 insertions, 9 deletions
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 <string.h>
#include <libgnomecanvas/gnome-canvas.h>
#include <glib/gdate.h>
+#include <gal/util/e-util.h>
+#include <libgnome/gnome-i18n.h>
#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);
}
}