1 #include "CameraSwitchesPage.hpp"
3 #include "setting-accessibility.h"
7 CameraSwitchesPage::CameraSwitchesPage(SettingAccessibility *ad)
9 retm_if(ad == NULL, "Input parameter is NULL");
10 Evas_Object *genlist = elm_genlist_add(ad->md.getNaviframe());
11 retm_if(genlist == NULL, "Cannot set genlist object as content of layout");
13 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
14 elm_object_style_set(genlist, "dialogue");
15 elm_genlist_clear(genlist);
17 universal_switch_camera_comment = setting_create_Gendial_field_def(
18 genlist, &ad->itc_multiline_sub,
19 NULL, ad, SwallowType::INVALID, NULL,
22 _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_COMMENT),
25 elm_genlist_item_select_mode_set(universal_switch_camera_comment->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
26 setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD, NULL);
28 auto switches = setting_accessibility_universal_switch_dbus_config_get_switches(&ad->config, ACCESSIBILITY_UNIVERSAL_SWITCH_CAMERA_SWITCH_PROVIDER);
29 for (auto &it : switches) {
30 auto item = setting_create_Gendial_field_def(genlist, &ad->itc_multiline_sub, addSwitchCb, it,
31 SwallowType::INVALID, NULL, NULL, 0, it->name.c_str(), it->description.c_str(), NULL);
35 AddSwitchPage::disableAlreadyMappedSwitch(ad->config.configuration_items, it->id, item->item);
39 Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->md.getNaviframe(), _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_TITLE), NULL, NULL, genlist, NULL);
40 elm_object_item_domain_text_translatable_set(navi_it, PACKAGE, EINA_TRUE);
42 Evas_Object *back_btn = setting_create_button(ad->md.getNaviframe(), NULL, NAVI_BACK_ARROW_BUTTON_STYLE, backCb, ad);
43 elm_layout_content_set(ad->md.getNaviframe(), "prev_btn", back_btn);
46 void CameraSwitchesPage::attachActionCallback(SettingAccessibility *ad, UniversalSwitchUpdateCb cb)
48 retm_if(ad == NULL, "Input parameter is NULL");
50 ad->us_configuration.camera_switch_added_cb = cb;
53 void CameraSwitchesPage::addSwitchCb(void *data, Evas_Object *obj, void *event_info)
55 Elm_Object_Item *item = (Elm_Object_Item *)event_info;
56 elm_genlist_item_selected_set(item, EINA_FALSE);
57 GenGroupItemData *settings_item = (GenGroupItemData *)elm_object_item_data_get(item);
58 SettingAccessibility *ad = (SettingAccessibility *)settings_item->userdata;
59 retm_if(ad == NULL, "Input argument is NULL");
60 UniversalSwitchInfoType * camera_switch = (UniversalSwitchInfoType *)data;
62 createActionPage(ad, camera_switch);
65 void CameraSwitchesPage::createActionPage(SettingAccessibility *ad, UniversalSwitchInfoType * camera_switch)
67 retm_if(ad == NULL, "Data argument is NULL");
69 SETTING_TRACE_DEBUG("Camera switch, id: %s, name: %s", camera_switch->id, camera_switch->name);
71 ad->actionPage_ = std::make_unique<ActionPage>(ad);
72 ActionPage::attachCallback(ad, switchActionCb, camera_switch);
75 void CameraSwitchesPage::switchActionCb(SettingAccessibility *ad, const std::string& action, void *user_data)
77 retm_if(user_data == NULL, "User data parameter is NULL");
78 UniversalSwitchInfoType * camera_switch = (UniversalSwitchInfoType *)user_data;
80 if (ad->us_configuration.camera_switch_added_cb)
81 ad->us_configuration.camera_switch_added_cb(ad, camera_switch->id, action, camera_switch->name);
84 void CameraSwitchesPage::backCb(void *data, Evas_Object *obj, void *event_info)
86 retm_if(data == NULL, "Data argument is NULL");
87 SettingAccessibility *ad = (SettingAccessibility *)data;
89 elm_naviframe_item_pop(ad->md.getNaviframe());