#include "Utils/TizenAppUtils.h"
#include "Utils/Log.h"
#include "Utils/ThemeExtension.h"
+#include "Utils/Translate.h"
+#include "Utils/Accessibility.h"
namespace view {
*second = set_time_.Sec;
}
-void TimerView::CreateSelectorsButton(const char *part, ButtonArrowDirection direction)
+Evas_Object *TimerView::CreateSelectorsButton(const char *part, ButtonArrowDirection direction, const char *description)
{
Evas_Object *button = elm_button_add(layout_);
elm_button_autorepeat_initial_timeout_set(button, 0.7);
elm_button_autorepeat_set(button, EINA_TRUE);
+ std::stringstream desc;
+ if (direction == ButtonArrowDirection::ARROW_UP)
+ desc << Translate::Sprintf("IDS_COM_BODY_INCREASE_BY");
+ else
+ desc << Translate::Sprintf("IDS_COM_BODY_DECREASE_BY");
+ desc << " " << Translate::Sprintf(description);
+ Accessibility::SetName(button, desc.str());
+
if (!elm_object_style_set(button, "arrow"))
ERR("Button style setting failed");
elm_object_signal_emit(button, "arrow.down", "timer");
evas_object_show(button);
+
+ return button;
}
void TimerView::CreateSelector()
if (!elm_layout_file_set(selector_, GetEdjeFilePath(), "Time_selector"))
return;
- CreateEntries(selector_);
-
ThemeExtension::AddTheme(GetEdjeFilePath());
- CreateSelectorsButton("sw.hour.inc", ButtonArrowDirection::ARROW_UP);
- CreateSelectorsButton("sw.minute.inc", ButtonArrowDirection::ARROW_UP);
- CreateSelectorsButton("sw.second.inc", ButtonArrowDirection::ARROW_UP);
- CreateSelectorsButton("sw.hour.dec", ButtonArrowDirection::ARROW_DOWN);
- CreateSelectorsButton("sw.minute.dec", ButtonArrowDirection::ARROW_DOWN);
- CreateSelectorsButton("sw.second.dec", ButtonArrowDirection::ARROW_DOWN);
+ Accessibility::SetReadingOrder(9,
+ CreateSelectorsButton("sw.hour.inc",
+ ButtonArrowDirection::ARROW_UP, "IDS_COM_BODY_HOUR"),
+ CreateEntry(selector_, "sw.entry.hour", "IDS_COM_BODY_HOURS"),
+ CreateSelectorsButton("sw.hour.dec",
+ ButtonArrowDirection::ARROW_DOWN, "IDS_COM_BODY_HOUR"),
-}
+ CreateSelectorsButton("sw.minute.inc",
+ ButtonArrowDirection::ARROW_UP, "IDS_COM_BODY_MINUTE"),
+ CreateEntry(selector_, "sw.entry.minute", "IDS_COM_BODY_MINUTES"),
+ CreateSelectorsButton("sw.minute.dec",
+ ButtonArrowDirection::ARROW_DOWN, "IDS_COM_BODY_MINUTE"),
-void TimerView::CreateEntries(Evas_Object *parent)
-{
- CreateEntry(parent, "sw.entry.hour");
- CreateEntry(parent, "sw.entry.minute");
- CreateEntry(parent, "sw.entry.second");
+ CreateSelectorsButton("sw.second.inc",
+ ButtonArrowDirection::ARROW_UP, "IDS_COM_BODY_SECOND"),
+ CreateEntry(selector_, "sw.entry.second", "IDS_COM_BODY_SECONDS"),
+ CreateSelectorsButton("sw.second.dec",
+ ButtonArrowDirection::ARROW_DOWN, "IDS_COM_BODY_SECOND")
+ );
}
-void TimerView::CreateEntry(Evas_Object *parent, const char *part)
+Evas_Object *TimerView::CreateEntry(Evas_Object *parent, const char *part, const char *description)
{
Evas_Object *entry = elm_entry_add(parent);
elm_entry_text_style_user_push(entry, "DEFAULT='font=Tizen:style=Thin color=#FAFAFA font_size=160 wrap=none align=center'");
elm_entry_entry_set(entry, "00");
+ elm_object_part_text_set(entry, "elm.guide", Translate::Sprintf(description).c_str());
+
evas_object_smart_callback_add(entry, "focused", EntryFocusedCb, this);
evas_object_smart_callback_add(entry, "unfocused", EntryUnfocusedCb, part);
evas_object_smart_callback_add(entry, "changed", EntryChangedCb, this);
elm_object_focus_custom_chain_append(parent, entry, NULL);
evas_object_show(entry);
+
+ return entry;
}
void TimerView::EntryFocusedCb(void *data, Evas_Object *obj, void *event_info)