virtual Elm_Gen_Item_Class *getItemClass() const override;
virtual char *getText(Evas_Object *parent, const char *part) override;
virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
+ char *getAccessibleName(Evas_Object *obj);
+
+ virtual void onInserted() override;
virtual void onSelected() override;
void onAlarmEnabled(Evas_Object *check, void *eventInfo);
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "الأحد"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "تبديل"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "الخميس"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Bazar"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Keçir"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Cümə axşamı"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Неделя"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Превключване"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Четвъртък"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Diumenge"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Canviar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Dijous"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Neděle"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Přepnout"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Čtvrtek"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Søndag"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Skift"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Torsdag"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sonntag"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Wechseln"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Donnerstag"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Κυριακή"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Εναλλαγή"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Πέμπτη"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sunday"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Switch"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Thursday"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sunday"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Switch"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Thursday"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sunday"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Switch"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Thursday"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domingo"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Cambiar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Jueves"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domingo"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Cambiar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Jueves"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Pühapäev"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Lüliti"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Neljapäev"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Igandea"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Aldatu"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Osteguna"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sunnuntai"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Vaihda"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Torstai"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Dimanche"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Activer ou désactiver"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Jeudi"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Dimanche"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Activer ou désactiver"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Jeudi"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domhnach"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Lasc"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Déardaoin"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domingo"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Cambiar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Xoves"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Nedjelja"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Promijeni"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Četvrtak"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Vasárnap"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Váltás"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Csütörtök"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Կիրակի"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Փոխել"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Հինգշաբթի"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sunnudagur"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Skipta"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Fimmtudagur"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domenica"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Attiva/disattiva"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Giovedì"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "日曜日"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "切替"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "木曜日"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "კვირადღე"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "გადართვა"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "ხუთშაბათი"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Жексенбі"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Ауыстыру"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Бейсенбі"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "일요일"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "스위치"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "목요일"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Sekmadienis"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Perjungti"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Ketvirtadienis"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Svētdiena"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Pārslēgt"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Ceturtdiena"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Недела"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Префрли"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Четврток"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Søndag"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Bytt"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Torsdag"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Zondag"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Overschakelen"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Donderdag"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Niedziela"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Przełącz"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Czwartek"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domingo"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Alternar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Terça"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Domingo"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Mudar"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Quinta"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Duminică"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Comutare"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Joi"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Воскресенье"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Переключить"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Четверг"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Nedeľa"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Prepnúť"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Štvrtok"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Nedelja"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Stikalo"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Četrtek"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Nedelja"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Prekidač"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Četvrtak"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Söndag"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Växla"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Torsdag"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Pazar"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Değiştir"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Perşembe"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Неділя"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Перемкнути"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Четвер"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "Yakshanba"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "Almashtirish"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "Payshanba"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "星期日"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "切换"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "星期四"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "星期日"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "切換"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "星期四"
msgid "WDS_ALM_TBOPT_SUNDAY"
msgstr "星期日"
+msgid "WDS_ALM_TBOPT_SWITCH"
+msgstr "切換"
+
msgid "WDS_ALM_TBOPT_THURSDAY"
msgstr "星期四"
Evas_Object *button = elm_object_item_part_content_get(getObjectItem(), "elm.swallow.content");
elm_object_disabled_set(button, !isEnabled);
elm_object_item_disabled_set(getObjectItem(), !isEnabled);
+ elm_atspi_accessible_can_highlight_set(getObjectItem(), isEnabled);
}
Elm_Gen_Item_Class *AddAlarmItem::getItemClass() const
elm_object_style_set(button, STYLE_BUTTON_ADD_ALARM);
elm_object_translatable_text_set(button, "WDS_ALM_BUTTON_ADD_ABB");
elm_object_disabled_set(button, elm_object_item_disabled_get(getObjectItem()));
+
+ elm_atspi_accessible_relationship_append(button, ELM_ATSPI_RELATION_CONTROLLED_BY, getObjectItem());
+ elm_atspi_accessible_relationship_append(getObjectItem(), ELM_ATSPI_RELATION_DESCRIBED_BY, button);
+ elm_atspi_accessible_relationship_append(getObjectItem(), ELM_ATSPI_RELATION_LABELLED_BY, button);
+
return button;
}
evas_object_smart_callback_add(check, "changed",
makeCallback(&AlarmItem::onAlarmEnabled), this);
+ elm_atspi_accessible_role_set(check, ELM_ATSPI_ROLE_TOGGLE_BUTTON);
+ elm_atspi_accessible_translation_domain_set(check, TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(check, "WDS_ALM_TBOPT_SWITCH");
+
return check;
} else if (strcmp(part, "elm.swallow.center_check") == 0) {
Evas_Object *check = SelectItem::getContent(parent, part);
return nullptr;
}
+char *AlarmItem::getAccessibleName(Evas_Object *obj)
+{
+ std::string name;
+ name.append(Common::formatTime(m_Alarm.getDate()));
+ name.append(", ");
+
+ if (m_Alarm.getRepeat()) {
+ name.append(Common::formatVerbalRepeat(m_Alarm.getRepeat()));
+ } else {
+ name.append(Common::formatVerbalDate(m_Alarm.getDate()));
+ }
+ return strdup(name.c_str());
+}
+
+void AlarmItem::onInserted()
+{
+ elm_atspi_accessible_name_cb_set(getObjectItem(),
+ makeCallback(&AlarmItem::getAccessibleName), this);
+}
+
void AlarmItem::onSelected()
{
if (getSelectMode() != Ux::SelectNone) {
class EXPORT_API PaddingItem : public GenItem
{
private:
- virtual Elm_Gen_Item_Class *getItemClass() const override
- {
- static Elm_Gen_Item_Class itc = createItemClass("padding");
- return &itc;
- }
+ virtual Elm_Gen_Item_Class *getItemClass() const override;
+ virtual void onInserted() override;
};
}
evas_object_smart_callback_add(check, "changed",
makeCallback(&CheckItem::onCheckChanged), this);
+ elm_atspi_accessible_relationship_append(check, ELM_ATSPI_RELATION_CONTROLLED_BY, getObjectItem());
+ elm_atspi_accessible_relationship_append(getObjectItem(), ELM_ATSPI_RELATION_CONTROLLER_FOR, check);
+ elm_atspi_accessible_relationship_append(getObjectItem(), ELM_ATSPI_RELATION_DESCRIBED_BY, check);
+
return check;
}
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Ui/PaddingItem.h"
+
+using namespace Ui;
+
+Elm_Gen_Item_Class *PaddingItem::getItemClass() const
+{
+ static Elm_Gen_Item_Class itc = createItemClass("padding");
+ return &itc;
+}
+
+void PaddingItem::onInserted()
+{
+ elm_atspi_accessible_role_set(getObjectItem(), ELM_ATSPI_ROLE_REDUNDANT_OBJECT);
+}
*/
EXPORT_API const char *formatDate(const tm &date);
+ /**
+ * @brief Create string representation for given date for Screen Reader.
+ * @param[in] date Time to format
+ * @return Formatted date.
+ */
+ EXPORT_API const char *formatVerbalDate(const tm &date);
+
/**
* @brief Create string representation for weekly repeat mask.
* @param[in] repeat Repeat mask to format
*/
EXPORT_API const char *formatRepeat(int repeat);
+ /**
+ * @brief Create string representation for weekly repeat mask for Screen Reader.
+ * @param[in] repeat Repeat mask to format
+ * @return Weekday names corresponding to repeat.
+ */
+ EXPORT_API const char *formatVerbalRepeat(int repeat);
+
/**
* @brief Create "Alarm set for ... from now" message.
* @param[in] date Alarm date
return buffer;
}
+const char *Common::formatVerbalDate(const tm &date)
+{
+ static char buffer[DATE_BUFFER_SIZE];
+ /* TODO: Use i18n for locale-dependent pattern generation */
+ strftime(buffer, sizeof(buffer), "%A, %d %B", &date);
+ return buffer;
+}
+
const char *Common::formatRepeat(int repeat)
{
static std::string buffer;
return buffer.c_str();
}
+const char *Common::formatVerbalRepeat(int repeat)
+{
+ static std::string buffer;
+ auto days = getWeekdayNames();
+
+ buffer.clear();
+ for (int i = 0; i < DAY_COUNT; ++i) {
+ if (repeat & (1 << i)) {
+ if (!buffer.empty()) {
+ buffer += " ";
+ }
+ buffer += _(days[i]);
+ }
+ }
+
+ return buffer.c_str();
+}
+
/*
* The function selects a translatable string such as:
* WDS_ALM_TPOP_ALARM_SET_FOR_1_HR_PD_MINS_FROM_NOW_ABB