setting_accessibility_universal_switch_dbus_config_captureSwitch(&context_->config, ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER, -1, captureSwitchCb, this);
}
-void AccessoriesSwitchesPage::attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData)
+void AccessoriesSwitchesPage::attachActionCallback(UniversalSwitchCb cb, void *cbData)
{
accessories_switch_added_cb = cb;
accessories_switch_added_cb_data = cbData;
{
public:
AccessoriesSwitchesPage(SettingAccessibility *ad);
- void attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData);
+ void attachActionCallback(UniversalSwitchCb cb, void *cbData);
private:
static Evas_Object *createEntry(Evas_Object *parent, const char *part_name);
static void backCb(void *data, Evas_Object *obj, void *event_info);
SettingAccessibility *context_ = nullptr;
- UniversalSwitchUpdateCb accessories_switch_added_cb = nullptr;
+ UniversalSwitchCb accessories_switch_added_cb = nullptr;
void *accessories_switch_added_cb_data = nullptr;
std::string switchName_; //TODO remove when lambda expression would be added
Evas_Object *entry;
elm_layout_content_set(context_->md.getNaviframe()->getObject(), "prev_btn", back_btn);
}
-void AddSwitchPage::attachCallbackOnSwitchAttach(UniversalSwitchUpdateCb cb, void *cbData)
+void AddSwitchPage::attachCallbackOnSwitchAttach(UniversalSwitchCb cb, void *cbData)
{
switch_added_cb = cb;
switch_added_cb_data = cbData;
{
public:
AddSwitchPage(SettingAccessibility *ad);
- void attachCallbackOnSwitchAttach(UniversalSwitchUpdateCb cb, void *cbData); //TODO: rename
+ void attachCallbackOnSwitchAttach(UniversalSwitchCb cb, void *cbData); //TODO: rename
static void disableAlreadyMappedSwitch(const std::vector<UniversalSwitchConfigurationItem *> &configuration_items, const std::string &switch_id, Elm_Object_Item *item); //TODO: probably move to another class
std::unique_ptr<AccessoriesSwitchesPage> accessoriesSwitchesPage_;
//TODO: These callbacks are only cached here and should be removed later
- UniversalSwitchUpdateCb switch_added_cb = nullptr;
+ UniversalSwitchCb switch_added_cb = nullptr;
void *switch_added_cb_data = nullptr;
};
elm_layout_content_set(context_->md.getNaviframe()->getObject(), "prev_btn", back_btn);
}
-void CameraSwitchesPage::attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData)
+void CameraSwitchesPage::attachActionCallback(UniversalSwitchCb cb, void *cbData)
{
camera_switch_added_cb = cb;
camera_switch_added_cb_data = cbData;
{
public:
CameraSwitchesPage(SettingAccessibility *ad);
- void attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData);
+ void attachActionCallback(UniversalSwitchCb cb, void *cbData);
private:
static void addSwitchCb(void *data, Evas_Object *obj, void *event_info);
SettingAccessibility *context_ = nullptr;
GenGroupItemData *universal_switch_camera_comment = nullptr;
- UniversalSwitchUpdateCb camera_switch_added_cb = nullptr;
+ UniversalSwitchCb camera_switch_added_cb = nullptr;
void *camera_switch_added_cb_data = nullptr;
UniversalSwitchInfoType *chosenSwitch_ = nullptr;
std::unique_ptr<ActionPage> actionPage_;
#include "setting-accessibility.h"
#include "WidgetFactory.hpp"
+#include "Popup.hpp"
+#include "Button.hpp"
#include <app.h>
#include <efl_extension.h>
}
}
-void RemoveSwitchPage::attachCallback(UniversalSwitchUpdateCb cb, void *cbData)
+void RemoveSwitchPage::attachCallback(UniversalSwitchCb cb, void *cbData)
{
switch_removed_cb = cb;
switch_removed_cb_data = cbData;
void RemoveSwitchPage::createPopupForSwitchesRemoving()
{
- popup_ = Widget::make<Popup>(context_->md.getNaviframe());
+ auto popup = Widget::make<Popup>(context_->md.getNaviframe());
- popup_->setOrientation(ELM_POPUP_ORIENT_CENTER);
- popup_->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ popup->setOrientation(ELM_POPUP_ORIENT_CENTER);
+ popup->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
int vconf_val;
int vconf_ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, &vconf_val);
retm_if(vconf_ret != 0,
"Failed to get vconf bool value VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE. Error: %d", vconf_ret);
- popup_->setPartText("title,text", TranslatedString{"IDS_ACCS_UNIVERSAL_SWITCH_DELETE_SWITCHES"});
+ popup->setPartText("title,text", TranslatedString{"IDS_ACCS_UNIVERSAL_SWITCH_DELETE_SWITCHES"});
if (vconf_val && context_->switches_to_remove_counter == (int)elm_genlist_items_count(context_->set_value_layout.getGenlist())) {
- popup_->setText(TranslatedString{"IDS_ACCS_UNIVERSAL_SWITCH_DELETE_ALL_SWITCHES_DESC"});
+ popup->setText("IDS_ACCS_UNIVERSAL_SWITCH_DELETE_ALL_SWITCHES_DESC");
} else {
auto s = std::to_string(context_->switches_to_remove_counter) + " " + TranslatedString{"IDS_ACCS_UNIVERSAL_SWITCH_DELETE_SWITCHES_DESC"} .str();
- popup_->setText(s);
+ popup->setText(s);
}
- auto removeCb = [p = popup_, nf = context_->md.getNaviframe()]() {
+ auto removeCb = [p = popup, nf = context_->md.getNaviframe()]() {
nf->removeChild(p);
};
- popup_->setEextEventCallback(EEXT_CALLBACK_BACK, removeCb);
- popup_->setEvasSmartCallback("dismissed", removeCb);
- popup_->setEvasSmartCallback("block,clicked", removeCb);
+ popup->setEextEventCallback(EEXT_CALLBACK_BACK, removeCb);
+ popup->setEvasSmartCallback("dismissed", removeCb);
+ popup->setEvasSmartCallback("block,clicked", removeCb);
- auto btn = WidgetFactory::createButton(popup_->getObject(), "IDS_ST_BUTTON_CANCEL", "bottom", onCancelPopupButtonClicked, this);
- elm_object_part_content_set(popup_->getObject(), "button1", btn);
+ auto cancelBtn = Widget::make<Button>(popup);
+ cancelBtn->setText("IDS_ST_BUTTON_CANCEL");
+ cancelBtn->setStyle("bottom");
+ cancelBtn->setEvasSmartCallback("clicked", removeCb);
+ popup->setPartContent("button1", cancelBtn);
+ auto deleteSwitchBtn = Widget::make<Button>(popup);
+ deleteSwitchBtn->setText("IDS_ACCS_DELETE");
+ deleteSwitchBtn->setStyle("bottom");
- btn = WidgetFactory::createButton(popup_->getObject(), "IDS_ACCS_DELETE", "bottom", onRemoveSelectedSwitches, this);
+ auto removeSwitchCb = [removeCb, this]() {
- elm_object_part_content_set(popup_->getObject(), "button2", btn);
- popup_->show();
-}
+ Elm_Object_Item *item = elm_genlist_last_item_get(context_->set_value_layout.getGenlist());
+ while (item != NULL) {
+ auto list_item = static_cast<GenGroupItemData *>(elm_object_item_data_get(item));
+ item = elm_genlist_item_prev_get(item);
+ if (list_item->chk_status)
+ removeSwitch(list_item->chk_id);
+ }
-void RemoveSwitchPage::onRemoveSelectedSwitches(void *data, Evas_Object *obj, void *event_info)
-{
- auto self = static_cast<RemoveSwitchPage *>(data);
- bool disable_universal_switch = (self->context_->switches_to_remove_counter == (int)elm_genlist_items_count(self->context_->set_value_layout.getGenlist()));
+ removeCb();
+ context_->md.getNaviframe()->popBack();
- Elm_Object_Item *item = elm_genlist_last_item_get(self->context_->set_value_layout.getGenlist());
- while (item != NULL) {
- auto list_item = static_cast<GenGroupItemData *>(elm_object_item_data_get(item));
- item = elm_genlist_item_prev_get(item);
- if (list_item->chk_status)
- removeSwitch(self, list_item->chk_id);
- }
+ bool disable_universal_switch = (context_->switches_to_remove_counter == (int)elm_genlist_items_count(context_->set_value_layout.getGenlist()));
+ if (disable_universal_switch && vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, 0))
+ LOGE("Failed to set vconf key %s.", VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE);
- auto nf = self->context_->md.getNaviframe();
- nf->removeChild(self->popup_);
- elm_naviframe_item_pop(self->context_->md.getNaviframe()->getObject());
-
- if (disable_universal_switch && vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE, 0))
- LOGE("Failed to set vconf key %s.", VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_INTERACTION_SERVICE);
-}
+ };
+ deleteSwitchBtn->setEvasSmartCallback("clicked", removeSwitchCb);
+ popup->setPartContent("button2", deleteSwitchBtn);
-void RemoveSwitchPage::onCancelPopupButtonClicked(void *data, Evas_Object *obj, void *event_info)
-{
- auto self = static_cast<RemoveSwitchPage *>(data);
- auto nf = self->context_->md.getNaviframe();
- nf->removeChild(self->popup_);
+ popup->show();
}
-void RemoveSwitchPage::removeSwitch(RemoveSwitchPage *self, size_t item_id)
+void RemoveSwitchPage::removeSwitch(size_t item_id)
{
- retm_if(self->switch_removed_cb == NULL, "Remove callback not set");
- if (item_id >= self->context_->config.configuration_items.size()) {
+ if (item_id >= context_->config.configuration_items.size()) {
SETTING_TRACE_END;
return;
}
- auto config_item = self->context_->config.configuration_items[item_id];
+ auto config_item = context_->config.configuration_items[item_id];
SETTING_TRACE_DEBUG("Removing switch, switch_id: %s", config_item->switch_id.c_str());
- self->switch_removed_cb(self->switch_removed_cb_data, config_item->switch_id, config_item->activity_type, config_item->user_name);
+ switch_removed_cb(switch_removed_cb_data, config_item->switch_id, config_item->activity_type, config_item->user_name); //TODO try to do this without callback
}
{
public:
RemoveSwitchPage(SettingAccessibility *ad);
- void attachCallback(UniversalSwitchUpdateCb cb, void *cbData);
+ void attachCallback(UniversalSwitchCb cb, void *cbData);
static void useNaviframeTitleAsCounter(RemoveSwitchPage *self);
private:
static void onAllButtonsClicked(void *data, Evas_Object *obj, void *event_info);
void createPopupForSwitchesRemoving();
static void onRemoveSelectedSwitches(void *data, Evas_Object *obj, void *event_info);
- static void onCancelPopupButtonClicked(void *data, Evas_Object *obj, void *event_info);
static void onRemovePopup(void *data, Evas_Object *obj, void *event_info);
- static void removeSwitch(RemoveSwitchPage *self, size_t item_id);
+ void removeSwitch(size_t item_id);
SettingAccessibility *context_ = nullptr;
std::unique_ptr<SetValuePage> setValuePage_;
- UniversalSwitchUpdateCb switch_removed_cb;
+ UniversalSwitchCb switch_removed_cb;
void *switch_removed_cb_data = nullptr;
Evas_Object *remove_switches_popup_button = nullptr;
Evas_Object *all_checkbox = nullptr;
- Popup *popup_ = nullptr;
};
actionPage_->attachCallback(actionCb, this);
}
-void ScreenSwitchPage::attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData)
+void ScreenSwitchPage::attachActionCallback(UniversalSwitchCb cb, void *cbData)
{
switch_added_cb = cb;
switch_added_cb_data = cbData;
{
public:
ScreenSwitchPage(SettingAccessibility *ad);
- void attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData);
+ void attachActionCallback(UniversalSwitchCb cb, void *cbData);
private:
static void actionCb(SettingAccessibility *ad, const std::string &action, void *user_data);
SettingAccessibility *context_ = nullptr;
std::unique_ptr<ActionPage> actionPage_;
- UniversalSwitchUpdateCb switch_added_cb = nullptr;
+ UniversalSwitchCb switch_added_cb = nullptr;
void *switch_added_cb_data = nullptr;
};
#include "TranslatedString.hpp"
#include "setting-common-draw-widget.h"
-#include "WidgetFactory.hpp"
+#include "Button.hpp"
#include <efl_extension.h>
#include <app.h>
popup_->setAlignment(ELM_NOTIFY_ALIGN_FILL, 1.0);
popup_->setWeightHint(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- popup_->setText(TranslatedString{text});
- popup_->setPartText("title,text", TranslatedString{title});
+ popup_->setText(text);
+ popup_->setPartText("title,text", title);
popup_->setEextEventCallback(EEXT_CALLBACK_BACK, []() {});
if (buttons.size() <= 3) {
- std::vector<TranslatedString> buttons_parts = {"button1", "button2", "button3"};
+ std::vector<std::string> buttons_parts = {"button1", "button2", "button3"};
for (auto i = 0u; i < buttons.size(); ++i) {
- Evas_Object *btn = WidgetFactory::createButton(popup_->getObject(), buttons[i], {}, response_cb, data);
- elm_object_style_set(btn, "popup");
- elm_object_part_content_set(popup_->getObject(), buttons_parts[i].c_str(), btn);
- evas_object_data_set(popup_->getObject(), buttons_parts[i].c_str(), TranslatedString{buttons[i]} .c_str());
+ auto btn = Widget::make<Button>(popup_);
+ btn->setText(buttons[i]);
+ btn->setStyle("popup");
+ evas_object_smart_callback_add(btn->getObject(), "clicked", response_cb, data); //TODO change to cpp callback
+ popup_->setPartContent(buttons_parts[i], btn);
}
} else {
SETTING_TRACE_ERROR("incorrect button number for popup");
private:
- static void ignoreBackKeyCb(void *data, Evas_Object *obj, void *event_info);
-
- Popup *popup_;
+ Popup *popup_ = nullptr;
};
#endif
};
class SettingAccessibility;
-using UniversalSwitchUpdateCb = std::function<void(void *, const std::string &, const std::string &, const std::string &)>;
+using UniversalSwitchCb = std::function<void(void *, const std::string &, const std::string &, const std::string &)>;
/**
* Class containing cached parameteres required by Universal Switch
int feedback_voice_speech_volume = 0;
bool manage_options_state[MANAGE_OPTIONS_COUNT] = {false};
- UniversalSwitchUpdateCb switch_updated_cb;
- void *switch_updated_cb_data = nullptr;
private:
};
}
}
-void UpdateSwitchPage::attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData)
+void UpdateSwitchPage::attachActionCallback(UniversalSwitchCb cb, void *cbData)
{
switch_updated_cb = cb;
switch_updated_cb_data = cbData;
{
public:
UpdateSwitchPage(SettingAccessibility *ad, UniversalSwitchConfigurationItem *config_item);
- void attachActionCallback(UniversalSwitchUpdateCb cb, void *cbData);
+ void attachActionCallback(UniversalSwitchCb cb, void *cbData);
private:
static void onActionUpdate(SettingAccessibility *ad, const std::string &action, void *user_data);
static void updateSwitchChooseAction(SettingAccessibility *ad, const std::string &action, void *user_data);
SettingAccessibility *context_ = nullptr;
- UniversalSwitchUpdateCb switch_updated_cb = nullptr;
+ UniversalSwitchCb switch_updated_cb = nullptr;
void *switch_updated_cb_data = nullptr;
UniversalSwitchConfigurationItem config_item_to_update_;
std::unique_ptr<ActionPage> actionPage_;