profile = wearable-4.0
# C/CPP Sources
-USER_SRCS = src/App/src/IndexView.cpp src/Common/src/PathUtils.cpp src/App/src/DelButton.cpp src/App/src/TaskMngrService.cpp src/main.cpp src/App/src/MainLayout.cpp src/Common/src/View.cpp src/Common/src/Logger.cpp src/Common/src/Window.cpp src/App/src/App.cpp src/App/src/TaskListView.cpp src/App/src/TaskListViewItem.cpp src/App/src/MainController.cpp
+USER_SRCS = src/App/src/IndexView.cpp src/Common/src/PathUtils.cpp src/App/src/DelButton.cpp src/App/src/TaskMngrService.cpp src/main.cpp src/App/src/CloseButton.cpp src/App/src/MainLayout.cpp src/Common/src/View.cpp src/Common/src/Logger.cpp src/Common/src/Window.cpp src/App/src/App.cpp src/App/src/TaskListView.cpp src/App/src/TaskListViewItem.cpp src/App/src/MainController.cpp
# EDC Sources
USER_EDCS =
state : "default" 0.0;
}
}
- part {
- name: "close_all_bg";
- type: IMAGE;
- scale: 1;
- mouse_events: 1;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.5 1.0; to: "bg"; }
- rel2 { relative: 0.5 1.0; to: "bg"; }
- image {
- normal: "tw_bottom_btn_bg.png";
- }
- align: 0.5 1.0;
- fixed : 1 1;
- min : 360 83;
- max : 360 83;
- color: 0 53 74 230;
- visible: 0;
- }
- description {
- state: "pressed" 0.0;
- inherit: "default" 0.0;
- color: 0 122 171 230;
- visible: 1;
- }
- description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- description {
- state: "disabled" 0.0;
- inherit: "default" 0.0;
- color: 33 33 33 255;
- visible: 1;
- }
- }
- part {
- name: "close_all_text";
- type: TEXTBLOCK;
+ part { name: "swl.bottom_button";
+ type: SWALLOW;
scale: 1;
- repeat_events: 1;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; to: "close_all_bg"; }
- rel2 { relative: 1.0 1.0; to: "close_all_bg"; }
- min : 160 37;
- max : 160 37;
- align: 0.5 0.5;
- fixed: 1 1;
- visible: 0;
- text {
- text_class: "AT013";
- style : style_no_apps;
- min : 0 1;
- align : 0.5 0.5;
- }
+ description { state: "default" 0.0;
+ visible: 0;
}
- description {
- state: "pressed" 0.0;
- inherit: "default" 0.0;
- visible: 1;
+ description { state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
}
- description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- visible: 1;
+ description { state: "hide" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
}
}
}
target : "swl.bg";
}
program {
- name : "close,clicked";
- signal : "mouse,clicked,1";
- source : "close_all_bg";
- action : SIGNAL_EMIT "close_button,clicked" "clicked";
- }
- program {
- name : "close,pressed";
- signal : "mouse,down,1";
- source : "close_all_bg";
- action : STATE_SET "pressed" 0.0;
- target : "close_all_text";
- target : "close_all_bg";
- }
- program {
- name : "close,unpressed";
- signal : "mouse,up,1";
- source : "close_all_bg";
- action : STATE_SET "show" 0.0;
- target : "close_all_text";
- target : "close_all_bg";
- transition : LINEAR 0.15;
- }
- program {
name : "show_close";
signal : "show_close";
source : "*";
action : STATE_SET "show" 0.0;
- target : "close_all_text";
- target : "close_all_bg";
+ target : "swl.bottom_button";
}
program {
name : "hide_close";
signal : "hide_close";
source : "*";
action : STATE_SET "default" 0.0;
- target : "close_all_text";
- target : "close_all_bg";
+ target : "swl.bottom_button";
}
program {
name : "closeall";
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APP_SRC_CLOSEBUTTON_H_
+#define APP_SRC_CLOSEBUTTON_H_
+
+#include <View.h>
+
+namespace TaskMngr {
+ class CloseButton
+ : public View {
+
+ public:
+ CloseButton(Evas_Object *parent);
+ Atspi getAtspi() const;
+ Evas_Object *getInnerButton() const;
+
+ private:
+ Atspi m_AoCloseAll;
+ Evas_Object *m_pButton;
+ };
+} /* namespace TaskMngr */
+
+#endif /* APP_SRC_CLOSEBUTTON_H_ */
#ifndef MainController_h_
#define MainController_h_
+#include <CloseButton.h>
#include "MainLayout.h"
#include "TaskListView.h"
#include "IndexView.h"
+
namespace TaskMngr {
class MainController
: public MainLayout
void resume();
protected:
- // MainLayout:
- void onCloseAllButtonClicked() override;
-
// ITaskListViewListener:
void onListChanged(TaskListView &obj, int itemsCount) override;
void onCurrentPageChanged(TaskListView &obj) override;
void onItemBeforeDelete(TaskListViewItem &item) override;
private:
+ void onCloseAllButtonClicked(Evas_Object *obj, void *event_info);
+
void update();
void updateIndex(int itemsCount);
void updateNoContents(int itemsCount);
* @param[in] show true to show, false otherwise
*/
void showCloseButton(bool show);
-
- protected:
- virtual void onCloseAllButtonClicked() {};
+ /**
+ * @brief Set given object as close button
+ * @param[in] pointer to evas obj
+ */
+ void setCloseButton(Evas_Object *obj);
private:
void prepareNoContents();
- Eina_Bool onScreenReaderCloseAllClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info);
private:
Evas_Object *m_pNoContent;
--- /dev/null
+#include <CloseButton.h>
+
+using namespace TaskMngr;
+
+CloseButton::CloseButton(Evas_Object *parent)
+ : m_pButton(nullptr)
+{
+ setEo(elm_layout_add(parent));
+ elm_layout_theme_set(getEo(), "layout", "bottom_button", "default");
+ m_pButton = elm_button_add(getEo());
+ elm_object_style_set(m_pButton, "bottom");
+ setContent(m_pButton, "elm.swallow.button");
+
+ m_AoCloseAll = Atspi(m_pButton);
+ m_AoCloseAll.setName(msg("WDS_ST_ACBUTTON_CLOSE_ALL_ABB"));
+ m_AoCloseAll.setDescription(msg("IDS_ACCS_BODY_BUTTON_TTS"));
+ m_AoCloseAll.setReadingInfo(ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
+ View::setText(m_pButton, msgt("WDS_ST_ACBUTTON_CLOSE_ALL_ABB"));
+}
+
+Atspi CloseButton::getAtspi() const
+{
+ return m_AoCloseAll;
+}
+
+Evas_Object *CloseButton::getInnerButton() const
+{
+ return m_pButton;
+}
+
+
#include "Logger.h"
#include "App.h"
+#include "Callback.h"
+
+
using namespace TaskMngr;
MainController::MainController(Evas_Object *parent)
m_pIndexView = new IndexView(getEo());
setIndex(*m_pIndexView);
+
+ auto closeButton = new CloseButton(getEo());
+ evas_object_smart_callback_add(closeButton->getInnerButton(), "clicked", makeCbFirst(&MainController::onCloseAllButtonClicked), this);
+ setCloseButton(*closeButton);
+
update();
}
LOG("");
}
-void MainController::onCloseAllButtonClicked()
+void MainController::onCloseAllButtonClicked(Evas_Object *obj, void *event_info)
{
LOG("");
m_pTaskListView->killAll();
: m_pNoContent(nullptr)
{
setEo(View::addLayout(parent, MAINT_LAYOUT_EDJ, "main_layout"));
- addSignalCb
- (
- "close_button,clicked",
- "clicked",
- [](void *data, Evas_Object *obj, const char *emission, const char *source)
- {
- static_cast<MainLayout*>(data)->onCloseAllButtonClicked();
- }, this);
- showCloseButton(true);
- setText(msg("WDS_ST_ACBUTTON_CLOSE_ALL_ABB"), "close_all_text");
-
- const Evas_Object *closeAll = edje_object_part_object_get(getEdje(), "close_all_text");
- Atspi aoCloseAll = elm_access_object_register((Evas_Object*)closeAll, getEo());
- aoCloseAll.setName(msg("WDS_ST_ACBUTTON_CLOSE_ALL_ABB"));
- aoCloseAll.setDescription(msg("IDS_ACCS_BODY_BUTTON_TTS"));
- aoCloseAll.setReadingInfo(ELM_ACCESSIBLE_READING_INFO_TYPE_NAME | ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
- aoCloseAll.setAccessActionCb(ELM_ACCESS_ACTION_ACTIVATE, makeCbFirst(&MainLayout::onScreenReaderCloseAllClicked), this);
}
MainLayout::~MainLayout()
setContent(obj, "swl.index");
}
+void MainLayout::setCloseButton(Evas_Object *obj)
+{
+ setContent(obj, "swl.bottom_button");
+}
+
void MainLayout::prepareNoContents()
{
if (m_pNoContent)
const char *sig = show ? "show_close" : "hide_close";
emitSignal(sig, "*");
}
-
-Eina_Bool MainLayout::onScreenReaderCloseAllClicked(Evas_Object *obj, Elm_Access_Action_Info *action_info)
-{
- onCloseAllButtonClicked();
- return true;
-}