diff options
author | Sergei Kobec <s.kobec@samsung.com> | 2017-03-07 12:57:05 +0200 |
---|---|---|
committer | Sergei Kobec <s.kobec@samsung.com> | 2017-03-10 10:06:00 +0200 |
commit | f4948e9d67e8bb101a1e2d2d98e6d7a3de90c829 (patch) | |
tree | a14f9e72c54b5e9325752afa2cae3940af9ee4bc /lib-apps-common/src/Ux/MultiSelector.cpp | |
parent | b0c0f64cb4f9aa6afb31436478f92b078bad02b5 (diff) | |
download | alarm-f4948e9d67e8bb101a1e2d2d98e6d7a3de90c829.tar.gz alarm-f4948e9d67e8bb101a1e2d2d98e6d7a3de90c829.tar.bz2 alarm-f4948e9d67e8bb101a1e2d2d98e6d7a3de90c829.zip |
TizenRefApp-8111 Refactor SelectView to make it suitable for Mobile and Wearable applications
Change-Id: I3525f7a772fc62ed993e986980d8f103e0a8b818
Signed-off-by: Sergei Kobec <s.kobec@samsung.com>
Diffstat (limited to 'lib-apps-common/src/Ux/MultiSelector.cpp')
-rw-r--r-- | lib-apps-common/src/Ux/MultiSelector.cpp | 57 |
1 files changed, 19 insertions, 38 deletions
diff --git a/lib-apps-common/src/Ux/MultiSelector.cpp b/lib-apps-common/src/Ux/MultiSelector.cpp index 91fba0e..ea64ce4 100644 --- a/lib-apps-common/src/Ux/MultiSelector.cpp +++ b/lib-apps-common/src/Ux/MultiSelector.cpp @@ -15,25 +15,24 @@ */ #include "Ux/MultiSelector.h" -#include "Ui/CircleMenu.h" -#include "Utils/Callback.h" -#include "Ux/SelectView.h" - -#define BUF_SIZE 8 using namespace Ux; -MultiSelector::MultiSelector(SelectView *selectView) - : m_Strings { }, - m_SelectView(selectView) +MultiSelector::MultiSelector() + : m_State(SelectedNone), + m_Strings{ nullptr } +{ +} + +void MultiSelector::setChangeCallback(ChangeCallback callback) { + m_OnChanged = std::move(callback); } -void MultiSelector::setCount(size_t count) +void MultiSelector::setState(State state) { - char buf[BUF_SIZE]; - snprintf(buf, sizeof(buf), "%zu", count); - elm_object_text_set(getEvasObject(), buf); + m_State = state; + onStateChanged(m_State); } void MultiSelector::setStrings(const Strings &strings) @@ -41,35 +40,17 @@ void MultiSelector::setStrings(const Strings &strings) m_Strings = strings; } -Evas_Object *MultiSelector::onCreate(Evas_Object *parent) +MultiSelector::State MultiSelector::getState() const { - auto button = elm_button_add(parent); - elm_object_style_set(button, "select_mode"); - elm_object_text_set(button, "0"); - evas_object_smart_callback_add(button, "clicked", - makeCallback(&MultiSelector::onButtonClicked), this); - - return button; + return m_State; } -void MultiSelector::onButtonClicked(Evas_Object *button, void *eventInfo) +const MultiSelector::Strings &MultiSelector::getStrings() const { - if (!m_SelectView) { - return; - } - - auto menu = new Ui::CircleMenu(); - menu->create(button); + return m_Strings; +} - if (!m_SelectView->isMaxSelected()) { - menu->addItem(m_Strings.selectAll, [this] { - m_SelectView->setAllSelected(true); - }); - } - if (m_SelectView->getSelectCount() > 0) { - menu->addItem(m_Strings.deselectAll, [this] { - m_SelectView->setAllSelected(false); - }); - } - menu->show(); +bool MultiSelector::notifyChanged(State state) +{ + return !m_OnChanged || m_OnChanged(state); } |