summaryrefslogtreecommitdiff
path: root/lib-apps-common/src/Ux/MultiSelector.cpp
diff options
context:
space:
mode:
authorSergei Kobec <s.kobec@samsung.com>2017-03-07 12:57:05 +0200
committerSergei Kobec <s.kobec@samsung.com>2017-03-10 10:06:00 +0200
commitf4948e9d67e8bb101a1e2d2d98e6d7a3de90c829 (patch)
treea14f9e72c54b5e9325752afa2cae3940af9ee4bc /lib-apps-common/src/Ux/MultiSelector.cpp
parentb0c0f64cb4f9aa6afb31436478f92b078bad02b5 (diff)
downloadalarm-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.cpp57
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);
}