*/
#include "AlarmWidget.h"
-#include "App/AppControl.h"
-#include "App/AppControlUtils.h"
-#include "App/Path.h"
#include "Common/Format.h"
#include "Common/Model/Alarm.h"
#include "Common/Model/AlarmConsumer.h"
+
+#include "App/AppControl.h"
+#include "App/AppControlUtils.h"
+#include "App/Path.h"
+#include "Ui/Accessibility.h"
#include "Ui/Window.h"
#include "Utils/Bundle.h"
#include "Utils/Callback.h"
{
Evas_Object *layout = elm_layout_add(parent);
elm_layout_file_set(layout, App::getResourcePath(PATH_WIDGET_LAYOUT).c_str(), LAYOUT_ALARM);
- elm_layout_signal_callback_add(layout, "mouse,clicked,*", "rect.event",
+ elm_layout_signal_callback_add(layout, "mouse,clicked,*", PART_EVENT,
(Edje_Signal_Cb) makeCallback(&AlarmWidget::onContentPressed), this);
+ Evas_Object *accessObject = Ui::createPartAccessObject(layout, PART_ACCESS);
+ elm_atspi_accessible_reading_info_type_set(accessObject, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
+ elm_atspi_accessible_name_cb_set(accessObject,
+ [](void *data, Evas_Object *) {
+ auto alarm = (Alarm *) data;
+ return strdup(formatVerbalDescription(alarm->getDate(), alarm->getRepeat()).c_str());
+ }, m_Alarm);
+ elm_atspi_accessible_gesture_cb_set(accessObject,
+ ACCESS_CALLBACK(ELM_ATSPI_GESTURE_ONE_FINGER_DOUBLE_TAP,
+ auto widget = (AlarmWidget *) data;
+ widget->onContentPressed();
+ ), this);
+
Evas_Object *check = elm_check_add(layout);
evas_object_propagate_events_set(check, EINA_FALSE);
elm_object_style_set(check, STYLE_CHECK_ALARM_ON_OFF);
elm_object_part_content_set(layout, PART_ON_OFF, check);
evas_object_smart_callback_add(check, "changed", makeCallback(&AlarmWidget::onCheckedPressed), 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 layout;
}
(Edje_Signal_Cb) makeCallback(&AlarmWidget::onCreatePressed), this);
elm_object_translatable_part_text_set(layout, PART_NO_ALARM_TEXT, "WDS_ALM_OPT_ADD_ALARM_ABB");
+ elm_atspi_accessible_role_set(layout, ELM_ATSPI_ROLE_PUSH_BUTTON);
+ elm_atspi_accessible_translation_domain_set(layout, TEXT_DOMAIN);
+ elm_atspi_accessible_name_set(layout, "WDS_ALM_OPT_ADD_ALARM_ABB");
+ elm_atspi_accessible_gesture_cb_set(layout,
+ ACCESS_CALLBACK(ELM_ATSPI_GESTURE_ONE_FINGER_DOUBLE_TAP,
+ auto widget = (AlarmWidget *) data;
+ widget->onCreatePressed();
+ ), this);
return layout;
}
elm_layout_signal_emit(m_Layout, m_Alarm->isEnabled() ? SIGNAL_ALARM_ENABLE : SIGNAL_ALARM_DISABLE, "");
}
-void AlarmWidget::onCreatePressed(Evas_Object *obj, void *eventInfo)
+void AlarmWidget::onCreatePressed()
{
AlarmConsumer::getInstance().getDataItems([this](AlarmConsumer::DataList dataList) {
if (dataList.empty()) {
});
}
-void AlarmWidget::onContentPressed(Evas_Object *obj, void *eventInfo)
+void AlarmWidget::onContentPressed()
{
App::AppControl request(APP_CONTROL_OPERATION_EDIT, APP_CONTROL_MIME_ALARM);
request.addExtra(APP_CONTROL_DATA_ID, std::to_string(m_Alarm->getId()).c_str());