From: Hermet Park Date: Tue, 5 Apr 2016 11:50:40 +0000 (+0900) Subject: performed refactoring. X-Git-Tag: submit/tizen/20160617.075742~64 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F05%2F64805%2F2;p=platform%2Fcore%2Fuifw%2Fui-viewmgr.git performed refactoring. 1. move the single to iface 2. introduce ui_base_overlay class Change-Id: Idbc376e7145224666f7009f79098b6739e8bf3f8 --- diff --git a/src/include/efl/mobile/ui_menu.h b/src/include/efl/mobile/ui_menu.h index 437ed29..1f47be2 100644 --- a/src/include/efl/mobile/ui_menu.h +++ b/src/include/efl/mobile/ui_menu.h @@ -17,13 +17,13 @@ #ifndef UI_MENU_H #define UI_MENU_H -#include "../../interface/ui_iface_viewmanager.h" +#include "../ui_base_viewmanager.h" namespace efl_viewmgr { class ui_view; -class ui_menu: public viewmgr::ui_iface_overlay +class ui_menu: public ui_base_overlay { friend class ui_view; private: diff --git a/src/include/efl/mobile/ui_popup.h b/src/include/efl/mobile/ui_popup.h index 6eb6374..93fee0d 100644 --- a/src/include/efl/mobile/ui_popup.h +++ b/src/include/efl/mobile/ui_popup.h @@ -17,11 +17,11 @@ #ifndef UI_POPUP_H #define UI_POPUP_H -#include "../../interface/ui_iface_viewmanager.h" +#include "../ui_base_viewmanager.h" namespace efl_viewmgr { -class ui_popup : public viewmgr::ui_iface_overlay +class ui_popup : public ui_base_overlay { private: Elm_Win *get_window(); diff --git a/src/include/efl/ui_base_overlay.h b/src/include/efl/ui_base_overlay.h new file mode 100644 index 0000000..84d3bf2 --- /dev/null +++ b/src/include/efl/ui_base_overlay.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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 UI_BASE_OVERLAY_H +#define UI_BASE_OVERLAY_H + +#include +#include "../interface/ui_iface_viewmanager.h" + +namespace efl_viewmgr +{ + +class ui_base_viewmgr; +class ui_base_view; + +class ui_base_overlay: public viewmgr::ui_iface_overlay +{ +protected: + ui_base_overlay(ui_base_view *view); + virtual ~ui_base_overlay(); +}; + +} + +#endif /* UI_BASE_OVERLAY_H */ diff --git a/src/include/efl/ui_base_singleton.h b/src/include/efl/ui_base_singleton.h deleted file mode 100644 index 7b1473c..0000000 --- a/src/include/efl/ui_base_singleton.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef UI_SINGLETON_UTIL_H -#define UI_SINGLETON_UTIL_H - -#include - -using namespace std; - -namespace efl_viewmgr -{ - -template -class singleton -{ -private: - static T* inst; - -public: - singleton(); - virtual ~singleton(); - inline static T* get_instance(); -}; - -template T* singleton::inst = NULL; - -template -singleton::singleton() -{ - assert(!singleton::inst); - - T* pT = reinterpret_cast(1); - - //Derived Class - Singleton class - int offset = reinterpret_cast(pT) - reinterpret_cast(reinterpret_cast*>(pT)); - singleton::inst = reinterpret_cast((reinterpret_cast(this) + offset)); -} - -template -singleton::~singleton() -{ - assert(singleton::inst); - singleton::inst = NULL; -} - -template -T* singleton::get_instance() -{ - assert(singleton::inst); - return singleton::inst; -} - -} - -#endif /* UI_SINGLETON_UTIL_H_ */ diff --git a/src/include/efl/ui_base_view.h b/src/include/efl/ui_base_view.h index 6aa75e4..3978941 100644 --- a/src/include/efl/ui_base_view.h +++ b/src/include/efl/ui_base_view.h @@ -35,7 +35,7 @@ namespace efl_viewmgr * @warning When the transitions are finished, the view must to call ui_iface_viewmgr :: _push_finished(), ui_iface_viewmgr :: _pop_finished() in order that * The ui_iface_viewmgr keeps the view states exactly. */ -class ui_base_view: public viewmgr::ui_iface_view +class ui_base_view: public viewmgr::ui_iface_view { friend class ui_base_viewmgr; diff --git a/src/include/efl/ui_base_viewmanager.h b/src/include/efl/ui_base_viewmanager.h index 0bca5f5..e71d6be 100644 --- a/src/include/efl/ui_base_viewmanager.h +++ b/src/include/efl/ui_base_viewmanager.h @@ -23,7 +23,7 @@ #define UI_BASE_VIEWMGR efl_viewmgr::ui_base_viewmgr::get_instance() -#include "ui_base_singleton.h" +#include "ui_base_overlay.h" #include "ui_base_viewmgr.h" #include "ui_base_view.h" #include "ui_base_key_listener.h" diff --git a/src/include/efl/ui_base_viewmgr.h b/src/include/efl/ui_base_viewmgr.h index f59916d..06e67a6 100644 --- a/src/include/efl/ui_base_viewmgr.h +++ b/src/include/efl/ui_base_viewmgr.h @@ -17,10 +17,10 @@ #ifndef UI_BASE_VIEWMGR_H #define UI_BASE_VIEWMGR_H +#include #include #include "../interface/ui_iface_viewmanager.h" #include "ui_base_key_listener.h" -#include //FIXME: ?? @@ -44,7 +44,7 @@ class ui_base_view; * * @warning viewmgr will remove all containing views when it's destroyed. */ -class ui_base_viewmgr: public singleton, public viewmgr::ui_iface_viewmgr +class ui_base_viewmgr: public viewmgr::ui_iface_viewmgr { friend class ui_base_view; diff --git a/src/include/interface/ui_iface_overlay.h b/src/include/interface/ui_iface_overlay.h index 234200c..bb9ac53 100644 --- a/src/include/interface/ui_iface_overlay.h +++ b/src/include/interface/ui_iface_overlay.h @@ -20,24 +20,24 @@ namespace viewmgr { -template +template class ui_iface_view; -template +template class ui_iface_overlay: public ui_iface_rotatable { private: - ui_iface_view *view; + ui_iface_view *view; T content; protected: - ui_iface_overlay(ui_iface_view *view); + ui_iface_overlay(ui_iface_view *view); virtual ~ui_iface_overlay(); public: virtual bool set_content(T content); virtual T unset_content(); - ui_iface_view *get_view(); + ui_iface_view *get_view(); virtual T get_content(); virtual void on_back(); virtual bool activate() = 0; @@ -46,46 +46,46 @@ public: }; -template -ui_iface_overlay::ui_iface_overlay(ui_iface_view *view) +template +ui_iface_overlay::ui_iface_overlay(ui_iface_view *view) : view(view), content(NULL) { } -template -ui_iface_overlay::~ui_iface_overlay() +template +ui_iface_overlay::~ui_iface_overlay() { } -template -bool ui_iface_overlay::set_content(T content) +template +bool ui_iface_overlay::set_content(T content) { this->content = content; return true; } -template -T ui_iface_overlay::unset_content() +template +T ui_iface_overlay::unset_content() { T prev = this->content; this->content = NULL; return prev; } -template -T ui_iface_overlay::get_content() +template +T ui_iface_overlay::get_content() { return this->content; } -template -ui_iface_view *ui_iface_overlay::get_view() +template +ui_iface_view *ui_iface_overlay::get_view() { return this->view; } -template -void ui_iface_overlay::on_back() +template +void ui_iface_overlay::on_back() { this->deactivate(); } diff --git a/src/include/interface/ui_iface_singleton.h b/src/include/interface/ui_iface_singleton.h new file mode 100644 index 0000000..f906d11 --- /dev/null +++ b/src/include/interface/ui_iface_singleton.h @@ -0,0 +1,53 @@ +#ifndef UI_IFACE_SINGLETON_H +#define UI_IFACE_SINGLETON_H + +#include + +using namespace std; + +namespace viewmgr +{ + +template +class singleton +{ +private: + static T* inst; + +public: + singleton(); + virtual ~singleton(); + inline static T* get_instance(); +}; + +template T* singleton::inst = NULL; + +template +singleton::singleton() +{ + assert(!singleton::inst); + + T* pT = reinterpret_cast(1); + + //Derived Class - Singleton class + int offset = reinterpret_cast(pT) - reinterpret_cast(reinterpret_cast*>(pT)); + singleton::inst = reinterpret_cast((reinterpret_cast(this) + offset)); +} + +template +singleton::~singleton() +{ + assert(singleton::inst); + singleton::inst = NULL; +} + +template +T* singleton::get_instance() +{ + assert(singleton::inst); + return singleton::inst; +} + +} + +#endif /* UI_IFACE_SINGLETON_H_ */ diff --git a/src/include/interface/ui_iface_view.h b/src/include/interface/ui_iface_view.h index 3e3f18c..7853e70 100644 --- a/src/include/interface/ui_iface_view.h +++ b/src/include/interface/ui_iface_view.h @@ -24,7 +24,7 @@ using namespace std; namespace viewmgr { -template +template class ui_iface_viewmgr; /** @@ -40,16 +40,16 @@ class ui_iface_viewmgr; * @warning When the transitions are finished, the view must to call ui_iface_viewmgr :: _push_finished(), ui_iface_viewmgr :: _pop_finished() in order that * The ui_iface_viewmgr keeps the view states exactly. */ -template +template class ui_iface_view : public ui_iface_rotatable { - friend class ui_iface_viewmgr; + friend class ui_iface_viewmgr; private: T content; ///< A content instance for a screen as a view. string name; ///< View name. string transition_style; ///< View transition style name. - ui_iface_viewmgr *viewmgr; ///< Viewmgr which this view belongs to. + ui_iface_viewmgr *viewmgr; ///< Viewmgr which this view belongs to. ui_view_state state; ///< View state. ui_view_indicator indicator; ///< View indicator mode. bool event_block; ///< State of event block. @@ -124,7 +124,7 @@ protected: /** @brief Return a viewmgr which this view is belonging to. */ //FIXME: Is it necessary? - ui_iface_viewmgr *get_viewmgr(); + ui_iface_viewmgr *get_viewmgr(); /** @brief This is for replacing or setting a content of the view. * @@ -234,32 +234,32 @@ public: }; -template -bool ui_iface_view::get_event_block() +template +bool ui_iface_view::get_event_block() { return this->event_block; } -template -ui_iface_viewmgr *ui_iface_view::get_viewmgr() +template +ui_iface_viewmgr *ui_iface_view::get_viewmgr() { return this->viewmgr; } -template -void ui_iface_view::set_event_block(bool block) +template +void ui_iface_view::set_event_block(bool block) { this->event_block = block; } -template -void ui_iface_view::on_load() +template +void ui_iface_view::on_load() { this->state = UI_VIEW_STATE_LOAD; } -template -void ui_iface_view::on_unload() +template +void ui_iface_view::on_unload() { this->state = UI_VIEW_STATE_UNLOAD; if (this->get_removable_content()) @@ -269,132 +269,132 @@ void ui_iface_view::on_unload() } } -template -void ui_iface_view::on_activate() +template +void ui_iface_view::on_activate() { this->state = UI_VIEW_STATE_ACTIVATE; } -template -void ui_iface_view::on_deactivate() +template +void ui_iface_view::on_deactivate() { this->state = UI_VIEW_STATE_DEACTIVATE; } -template -void ui_iface_view::on_pause() +template +void ui_iface_view::on_pause() { this->state = UI_VIEW_STATE_PAUSE; } -template -void ui_iface_view::on_resume() +template +void ui_iface_view::on_resume() { this->state = UI_VIEW_STATE_ACTIVATE; } -template -void ui_iface_view::on_destroy() +template +void ui_iface_view::on_destroy() { } -template -ui_iface_view::ui_iface_view(const char *name) +template +ui_iface_view::ui_iface_view(const char *name) : content(NULL), name(string(name ? name : "")), transition_style(string("default")), viewmgr(NULL), state(UI_VIEW_STATE_LOAD), indicator(UI_VIEW_INDICATOR_DEFAULT), event_block(false), removable_content(true) { this->state = UI_VIEW_STATE_UNLOAD; } -template -ui_iface_view::~ui_iface_view() +template +ui_iface_view::~ui_iface_view() { this->viewmgr->remove_view(this); } -template -bool ui_iface_view::set_content(T content) +template +bool ui_iface_view::set_content(T content) { this->content = content; return true; } -template -T ui_iface_view::unset_content() +template +T ui_iface_view::unset_content() { T prev = this->content; this->content = NULL; return prev; } -template -bool ui_iface_view::set_transition_style(const char *style) +template +bool ui_iface_view::set_transition_style(const char *style) { this->transition_style.assign(style); return true; } -template -bool ui_iface_view::set_name(const char *name) +template +bool ui_iface_view::set_name(const char *name) { this->name.assign(name); return true; } -template -void ui_iface_view::set_removable_content(bool removable) +template +void ui_iface_view::set_removable_content(bool removable) { this->removable_content = removable; //FIXME: If this api is called on unload state? should we remove content right now? } -template -void ui_iface_view::set_indicator(ui_view_indicator indicator) +template +void ui_iface_view::set_indicator(ui_view_indicator indicator) { this->indicator = indicator; } -template -const char *ui_iface_view::get_transition_style() +template +const char *ui_iface_view::get_transition_style() { return this->transition_style.c_str(); } -template -const char *ui_iface_view::get_name() +template +const char *ui_iface_view::get_name() { return this->name.c_str(); } -template -T ui_iface_view::get_content() +template +T ui_iface_view::get_content() { return this->content; } -template -ui_view_state ui_iface_view::get_state() +template +ui_view_state ui_iface_view::get_state() { return this->state; } -template -bool ui_iface_view::get_removable_content() +template +bool ui_iface_view::get_removable_content() { return this->removable_content; } -template -ui_view_indicator ui_iface_view::get_indicator() +template +ui_view_indicator ui_iface_view::get_indicator() { return this->indicator; } -template -void ui_iface_view::on_back() +template +void ui_iface_view::on_back() { - ui_iface_viewmgr *viewmgr = this->get_viewmgr(); + ui_iface_viewmgr *viewmgr = this->get_viewmgr(); if (!viewmgr) { LOGE("Failed to get a viewmgr, view =%p", this); diff --git a/src/include/interface/ui_iface_viewmanager.h b/src/include/interface/ui_iface_viewmanager.h index d301de5..3b54dc6 100644 --- a/src/include/interface/ui_iface_viewmanager.h +++ b/src/include/interface/ui_iface_viewmanager.h @@ -45,6 +45,7 @@ enum ui_view_state UI_VIEW_STATE_LAST }; +#include "ui_iface_singleton.h" #include "ui_iface_rotatable.h" #include "ui_iface_overlay.h" #include "ui_iface_view.h" diff --git a/src/include/interface/ui_iface_viewmgr.h b/src/include/interface/ui_iface_viewmgr.h index f8ec866..8a995f8 100644 --- a/src/include/interface/ui_iface_viewmgr.h +++ b/src/include/interface/ui_iface_viewmgr.h @@ -23,7 +23,7 @@ using namespace std; namespace viewmgr { -template +template class ui_iface_view; /** @@ -38,15 +38,15 @@ class ui_iface_view; * * @warning viewmgr will remove all containing views when it's destroyed. */ -template -class ui_iface_viewmgr +template +class ui_iface_viewmgr: public singleton { - friend class ui_iface_view; + friend class ui_iface_view; private: static bool soft_key; //If system doesn't support HW back key, then this value is @c true. static bool event_block; //Event block on view transition. This value should be configurable by system. - list *> view_list; //View list. + list *> view_list; //View list. bool activated; //Activated status of this viewmgr. /** @@ -59,7 +59,7 @@ private: * @warning If the given view is already connected to a viewmgr, this call will be failed. * @see disconnect_view() */ - bool connect_view(ui_iface_view *view); + bool connect_view(ui_iface_view *view); /** * @brief Disconnect a given view from this viewmgr. @@ -70,7 +70,7 @@ private: * * @see connect_view() */ - bool disconnect_view(ui_iface_view *view); + bool disconnect_view(ui_iface_view *view); /** * @brief Toggle event blocking to the given view. @@ -82,7 +82,7 @@ private: * @param view A view to toggle event blocking. * @param block @c true is blocking event, otherwise @c false. */ - void set_event_block(ui_iface_view *view, bool block); + void set_event_block(ui_iface_view *view, bool block); protected: /** @@ -94,7 +94,7 @@ protected: * * @warning This function must be called when push transition is finished. */ - bool push_view_finished(ui_iface_view *view); + bool push_view_finished(ui_iface_view *view); /** * @brief This function is designed for finishing process for pop transition. @@ -107,7 +107,7 @@ protected: * * @warning This function must be called when push transition is finished. */ - bool pop_view_finished(ui_iface_view *view); + bool pop_view_finished(ui_iface_view *view); //FIXME: Necessary? #if 0 @@ -118,7 +118,7 @@ protected: * * @warning Don't modify this view list. */ - const list*>* const get_view_list() + const list*>* const get_view_list() { return &this->view_list; } @@ -141,7 +141,7 @@ protected: * @see insert_view_after() * @see pop_view() */ - ui_iface_view *push_view(ui_iface_view *view); + ui_iface_view *push_view(ui_iface_view *view); /** * @brief Pop the top(last) view from this viewmgr view list. @@ -166,7 +166,7 @@ protected: * * @return @c true on success or @c false otherwise. */ - bool insert_view_before(ui_iface_view *view, ui_iface_view *before); + bool insert_view_before(ui_iface_view *view, ui_iface_view *before); /** * @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right after of the given view, @after. @@ -176,7 +176,7 @@ protected: * * @return @c true on success or @c false otherwise. */ - bool insert_view_after(ui_iface_view *view, ui_iface_view *after); + bool insert_view_after(ui_iface_view *view, ui_iface_view *after); /** * @brief Remove the given view from this viewmgr view list. @@ -189,7 +189,7 @@ protected: * @see insert_view_after() * @see push_view() */ - bool remove_view(ui_iface_view *view); + bool remove_view(ui_iface_view *view); /** * @brief Return a view which is matched with the index @p idx. @@ -205,7 +205,7 @@ protected: * @see get_view_index() * @see get_view_count() */ - ui_iface_view* get_view(unsigned int idx); + ui_iface_view* get_view(unsigned int idx); /** * @brief Return a view which is matched with the @p name. @@ -219,14 +219,14 @@ protected: * * @see ui_iface_view::set_name() */ - ui_iface_view *get_view(const char *name); + ui_iface_view *get_view(const char *name); /** * @brief Return a last(top) view. * * @return The view which is last view of the viewmgr view list. */ - ui_iface_view *get_last_view(); + ui_iface_view *get_last_view(); /** * @brief Return a view index(page) number of the given view. @@ -238,7 +238,7 @@ protected: * * @warning The index number of views are variable since the view list is variable. */ - int get_view_index(const ui_iface_view *view); + int get_view_index(const ui_iface_view *view); public: ///Constructor. @@ -302,17 +302,17 @@ public: }; -#define VIEW_ITR typename list *>::iterator -#define VIEW_RITR typename list *>::reverse_iterator +#define VIEW_ITR typename list *>::iterator +#define VIEW_RITR typename list *>::reverse_iterator //FIXME: Read system profile to decide whether support software key or not. -template bool ui_iface_viewmgr::soft_key = true; +template bool ui_iface_viewmgr::soft_key = true; //FIXME: Read system profile to decide whether support event block or not. -template bool ui_iface_viewmgr::event_block = true; +template bool ui_iface_viewmgr::event_block = true; -template -bool ui_iface_viewmgr::insert_view_after(ui_iface_view *view, ui_iface_view *after) +template +bool ui_iface_viewmgr::insert_view_after(ui_iface_view *view, ui_iface_view *after) { VIEW_ITR it; @@ -353,14 +353,14 @@ bool ui_iface_viewmgr::insert_view_after(ui_iface_view *view, ui_iface_vie return true; } -template -bool ui_iface_viewmgr::need_soft_key() +template +bool ui_iface_viewmgr::need_soft_key() { - return ui_iface_viewmgr::soft_key; + return ui_iface_viewmgr::soft_key; } -template -bool ui_iface_viewmgr::connect_view(ui_iface_view *view) +template +bool ui_iface_viewmgr::connect_view(ui_iface_view *view) { //FIXME: If user call a set_viewmgr() before, It should not return false. /* @@ -375,25 +375,25 @@ bool ui_iface_viewmgr::connect_view(ui_iface_view *view) return true; } -template -bool ui_iface_viewmgr::disconnect_view(ui_iface_view *view) +template +bool ui_iface_viewmgr::disconnect_view(ui_iface_view *view) { if (!view->viewmgr) return false; view->viewmgr = NULL; return true; } -template -void ui_iface_viewmgr::set_event_block(ui_iface_view *view, bool block) +template +void ui_iface_viewmgr::set_event_block(ui_iface_view *view, bool block) { if (!ui_iface_viewmgr::event_block) return; view->set_event_block(block); } -template -bool ui_iface_viewmgr::push_view_finished(ui_iface_view *view) +template +bool ui_iface_viewmgr::push_view_finished(ui_iface_view *view) { - ui_iface_view *last = this->view_list.back(); + ui_iface_view *last = this->view_list.back(); //The previous view has been pushed. This should be unload. if (last != view) @@ -409,10 +409,10 @@ bool ui_iface_viewmgr::push_view_finished(ui_iface_view *view) return true; } -template -bool ui_iface_viewmgr::pop_view_finished(ui_iface_view *view) +template +bool ui_iface_viewmgr::pop_view_finished(ui_iface_view *view) { - ui_iface_view *last = this->view_list.back(); + ui_iface_view *last = this->view_list.back(); //This view has been popped. It should be destroyed. if (last == view) @@ -430,19 +430,19 @@ bool ui_iface_viewmgr::pop_view_finished(ui_iface_view *view) return true; } -template -ui_iface_viewmgr::ui_iface_viewmgr() - : activated(false) +template +ui_iface_viewmgr::ui_iface_viewmgr() + : singleton(), activated(false) { } -template -ui_iface_viewmgr::~ui_iface_viewmgr() +template +ui_iface_viewmgr::~ui_iface_viewmgr() { //Terminate views for (VIEW_RITR it = this->view_list.rbegin(); it != this->view_list.rend(); it++) { - ui_iface_view *view = *it; + ui_iface_view *view = *it; view->on_deactivate(); view->on_unload(); view->on_destroy(); @@ -453,8 +453,8 @@ ui_iface_viewmgr::~ui_iface_viewmgr() ui_app_exit(); } -template -ui_iface_view *ui_iface_viewmgr::push_view(ui_iface_view *view) +template +ui_iface_view *ui_iface_viewmgr::push_view(ui_iface_view *view) { if (!view) { @@ -468,7 +468,7 @@ ui_iface_view *ui_iface_viewmgr::push_view(ui_iface_view *view) return NULL; } - ui_iface_view *pview; + ui_iface_view *pview; //Previous view if (this->view_list.size() > 0) @@ -495,8 +495,8 @@ ui_iface_view *ui_iface_viewmgr::push_view(ui_iface_view *view) return view; } -template -bool ui_iface_viewmgr::pop_view() +template +bool ui_iface_viewmgr::pop_view() { //FIXME: No more view? if (this->get_view_count() == 0) @@ -509,7 +509,7 @@ bool ui_iface_viewmgr::pop_view() if (this->get_view_count() == 1) { //destroy viewmgr? - ui_iface_view*view = this->view_list.back(); + ui_iface_view*view = this->view_list.back(); view->on_deactivate(); view->on_unload(); view->on_destroy(); @@ -519,7 +519,7 @@ bool ui_iface_viewmgr::pop_view() } //last page to be popped. - ui_iface_view*view = this->view_list.back(); + ui_iface_view*view = this->view_list.back(); view->on_deactivate(); this->set_event_block(view, true); @@ -527,7 +527,7 @@ bool ui_iface_viewmgr::pop_view() //Make this getter method? or define instance? //previous page is to be an active page. auto nx = prev(this->view_list.end(), 2); - ui_iface_view*pview = *nx; + ui_iface_view*pview = *nx; pview->on_load(); pview->on_deactivate(); this->set_event_block(pview, true); @@ -535,8 +535,8 @@ bool ui_iface_viewmgr::pop_view() return true; } -template -bool ui_iface_viewmgr::insert_view_before(ui_iface_view *view, ui_iface_view *before) +template +bool ui_iface_viewmgr::insert_view_before(ui_iface_view *view, ui_iface_view *before) { VIEW_ITR it; @@ -572,8 +572,8 @@ bool ui_iface_viewmgr::insert_view_before(ui_iface_view *view, ui_iface_vi return true; } -template -bool ui_iface_viewmgr::remove_view(ui_iface_view *view) +template +bool ui_iface_viewmgr::remove_view(ui_iface_view *view) { this->view_list.remove(view); this->disconnect_view(view); @@ -582,8 +582,8 @@ bool ui_iface_viewmgr::remove_view(ui_iface_view *view) return true; } -template -ui_iface_view *ui_iface_viewmgr::get_view(unsigned int idx) +template +ui_iface_view *ui_iface_viewmgr::get_view(unsigned int idx) { if (idx < 0 || idx >= this->view_list.size()) { @@ -595,8 +595,8 @@ ui_iface_view *ui_iface_viewmgr::get_view(unsigned int idx) return *it; } -template -int ui_iface_viewmgr::get_view_index(const ui_iface_view *view) +template +int ui_iface_viewmgr::get_view_index(const ui_iface_view *view) { int idx = 0; @@ -609,15 +609,15 @@ int ui_iface_viewmgr::get_view_index(const ui_iface_view *view) return -1; } -template -ui_iface_view *ui_iface_viewmgr::get_last_view() +template +ui_iface_view *ui_iface_viewmgr::get_last_view() { int cnt = this->get_view_count(); return this->get_view(cnt - 1); } -template -bool ui_iface_viewmgr::activate() +template +bool ui_iface_viewmgr::activate() { if (this->activated) return false; if (this->get_view_count() == 0) return false; @@ -625,29 +625,29 @@ bool ui_iface_viewmgr::activate() return true; } -template -bool ui_iface_viewmgr::deactivate() +template +bool ui_iface_viewmgr::deactivate() { if (!this->activated) return false; this->activated = false; return true; } -template -ui_iface_view *ui_iface_viewmgr::get_view(const char *name) +template +ui_iface_view *ui_iface_viewmgr::get_view(const char *name) { //FIXME: ... return NULL; } -template -bool ui_iface_viewmgr::is_activated() +template +bool ui_iface_viewmgr::is_activated() { return this->activated; } -template -unsigned int ui_iface_viewmgr::get_view_count() +template +unsigned int ui_iface_viewmgr::get_view_count() { return this->view_list.size(); } diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 0580f9d..c860c72 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -2,6 +2,7 @@ SET(SRCS efl/ui_base_view.cpp efl/ui_base_viewmgr.cpp efl/ui_base_key_listener.cpp + efl/ui_base_overlay.cpp efl/mobile/ui_menu.cpp efl/mobile/ui_popup.cpp efl/mobile/ui_view.cpp diff --git a/src/lib/efl/mobile/ui_menu.cpp b/src/lib/efl/mobile/ui_menu.cpp index 426ac2d..9529b25 100644 --- a/src/lib/efl/mobile/ui_menu.cpp +++ b/src/lib/efl/mobile/ui_menu.cpp @@ -67,7 +67,7 @@ static void win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_inf } ui_menu::ui_menu(ui_view *view) - : ui_iface_overlay(view) + : ui_base_overlay(view) { Elm_Win *win = this->get_window(); evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, win_resize_cb, this); @@ -136,7 +136,7 @@ bool ui_menu::set_content(Elm_Ctxpopup *ctxpopup) evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismissed_cb, NULL); evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, ctxpopup_del_cb, this); - ui_iface_overlay::set_content(ctxpopup); + ui_base_overlay::set_content(ctxpopup); return true; } @@ -150,7 +150,7 @@ bool ui_menu::is_activated() Elm_Ctxpopup *ui_menu::unset_content() { - Elm_Ctxpopup *ctxpopup = ui_iface_overlay::unset_content(); + Elm_Ctxpopup *ctxpopup = ui_base_overlay::unset_content(); if (!ctxpopup) return NULL; evas_object_smart_callback_del(ctxpopup, "dismissed", ctxpopup_dismissed_cb); diff --git a/src/lib/efl/mobile/ui_popup.cpp b/src/lib/efl/mobile/ui_popup.cpp index 15b55a3..d3e6150 100644 --- a/src/lib/efl/mobile/ui_popup.cpp +++ b/src/lib/efl/mobile/ui_popup.cpp @@ -43,7 +43,7 @@ static void popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info } ui_popup::ui_popup(ui_view *view) - : ui_iface_overlay(view) + : ui_base_overlay(view) { view->connect_popup(this); } @@ -109,7 +109,7 @@ bool ui_popup::set_content(Elm_Popup *popup) evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, popup_del_cb, this); evas_object_smart_callback_add(popup, "dismissed", popup_dismissed_cb, this); - ui_iface_overlay::set_content(popup); + ui_base_overlay::set_content(popup); return true; } @@ -123,7 +123,7 @@ bool ui_popup::is_activated() Elm_Popup *ui_popup::unset_content() { - Elm_Popup *popup = ui_iface_overlay::unset_content(); + Elm_Popup *popup = ui_base_overlay::unset_content(); if (!popup) return NULL; evas_object_event_callback_del(popup, EVAS_CALLBACK_DEL, popup_del_cb); diff --git a/src/lib/efl/ui_base_overlay.cpp b/src/lib/efl/ui_base_overlay.cpp new file mode 100644 index 0000000..7669fe1 --- /dev/null +++ b/src/lib/efl/ui_base_overlay.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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. + * + */ +#include "../../include/efl/ui_base_viewmanager.h" + +using namespace efl_viewmgr; +using namespace viewmgr; + +ui_base_overlay::ui_base_overlay(ui_base_view *view) + : ui_iface_overlay(view) +{ +} + +ui_base_overlay::~ui_base_overlay() +{ +} diff --git a/src/lib/efl/ui_base_viewmgr.cpp b/src/lib/efl/ui_base_viewmgr.cpp index 20f65d5..f50289f 100644 --- a/src/lib/efl/ui_base_viewmgr.cpp +++ b/src/lib/efl/ui_base_viewmgr.cpp @@ -169,7 +169,7 @@ bool ui_base_viewmgr::create_conformant(Elm_Win *win) } ui_base_viewmgr::ui_base_viewmgr(const char *pkg, ui_base_key_listener *key_listener) - : singleton(), ui_iface_viewmgr(), key_listener(key_listener), transition_style("default") + : ui_iface_viewmgr(), key_listener(key_listener), transition_style("default") { if (!pkg) {