#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<Elm_Ctxpopup *>
+class ui_menu: public ui_base_overlay
{
friend class ui_view;
private:
#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<Elm_Popup *>
+class ui_popup : public ui_base_overlay
{
private:
Elm_Win *get_window();
--- /dev/null
+/*
+ * 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 <Elementary.h>
+#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<Evas_Object *, ui_base_viewmgr>
+{
+protected:
+ ui_base_overlay(ui_base_view *view);
+ virtual ~ui_base_overlay();
+};
+
+}
+
+#endif /* UI_BASE_OVERLAY_H */
+++ /dev/null
-#ifndef UI_SINGLETON_UTIL_H
-#define UI_SINGLETON_UTIL_H
-
-#include <cassert>
-
-using namespace std;
-
-namespace efl_viewmgr
-{
-
-template<typename T>
-class singleton
-{
-private:
- static T* inst;
-
-public:
- singleton();
- virtual ~singleton();
- inline static T* get_instance();
-};
-
-template<typename T> T* singleton<T>::inst = NULL;
-
-template<typename T>
-singleton<T>::singleton()
-{
- assert(!singleton::inst);
-
- T* pT = reinterpret_cast<T*>(1);
-
- //Derived Class - Singleton class
- int offset = reinterpret_cast<int>(pT) - reinterpret_cast<int>(reinterpret_cast<singleton<T>*>(pT));
- singleton::inst = reinterpret_cast<T*>((reinterpret_cast<int>(this) + offset));
-}
-
-template<typename T>
-singleton<T>::~singleton()
-{
- assert(singleton::inst);
- singleton::inst = NULL;
-}
-
-template<typename T>
-T* singleton<T>::get_instance()
-{
- assert(singleton::inst);
- return singleton::inst;
-}
-
-}
-
-#endif /* UI_SINGLETON_UTIL_H_ */
* @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<Evas_Object *>
+class ui_base_view: public viewmgr::ui_iface_view<Evas_Object *, ui_base_viewmgr>
{
friend class ui_base_viewmgr;
#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"
#ifndef UI_BASE_VIEWMGR_H
#define UI_BASE_VIEWMGR_H
+#include <map>
#include <Elementary.h>
#include "../interface/ui_iface_viewmanager.h"
#include "ui_base_key_listener.h"
-#include <map>
//FIXME: ??
*
* @warning viewmgr will remove all containing views when it's destroyed.
*/
-class ui_base_viewmgr: public singleton<ui_base_viewmgr>, public viewmgr::ui_iface_viewmgr<Evas_Object *>
+class ui_base_viewmgr: public viewmgr::ui_iface_viewmgr<Evas_Object *, ui_base_viewmgr>
{
friend class ui_base_view;
namespace viewmgr
{
-template<typename T>
+template<typename T, typename T2>
class ui_iface_view;
-template<typename T>
+template<typename T, typename T2>
class ui_iface_overlay: public ui_iface_rotatable
{
private:
- ui_iface_view<T> *view;
+ ui_iface_view<T, T2> *view;
T content;
protected:
- ui_iface_overlay(ui_iface_view<T> *view);
+ ui_iface_overlay(ui_iface_view<T, T2> *view);
virtual ~ui_iface_overlay();
public:
virtual bool set_content(T content);
virtual T unset_content();
- ui_iface_view<T> *get_view();
+ ui_iface_view<T, T2> *get_view();
virtual T get_content();
virtual void on_back();
virtual bool activate() = 0;
};
-template<typename T>
-ui_iface_overlay<T>::ui_iface_overlay(ui_iface_view<T> *view)
+template<typename T, typename T2>
+ui_iface_overlay<T, T2>::ui_iface_overlay(ui_iface_view<T, T2> *view)
: view(view), content(NULL)
{
}
-template<typename T>
-ui_iface_overlay<T>::~ui_iface_overlay()
+template<typename T, typename T2>
+ui_iface_overlay<T, T2>::~ui_iface_overlay()
{
}
-template<typename T>
-bool ui_iface_overlay<T>::set_content(T content)
+template<typename T, typename T2>
+bool ui_iface_overlay<T, T2>::set_content(T content)
{
this->content = content;
return true;
}
-template<typename T>
-T ui_iface_overlay<T>::unset_content()
+template<typename T, typename T2>
+T ui_iface_overlay<T, T2>::unset_content()
{
T prev = this->content;
this->content = NULL;
return prev;
}
-template<typename T>
-T ui_iface_overlay<T>::get_content()
+template<typename T, typename T2>
+T ui_iface_overlay<T, T2>::get_content()
{
return this->content;
}
-template<typename T>
-ui_iface_view<T> *ui_iface_overlay<T>::get_view()
+template<typename T, typename T2>
+ui_iface_view<T, T2> *ui_iface_overlay<T, T2>::get_view()
{
return this->view;
}
-template<typename T>
-void ui_iface_overlay<T>::on_back()
+template<typename T, typename T2>
+void ui_iface_overlay<T, T2>::on_back()
{
this->deactivate();
}
--- /dev/null
+#ifndef UI_IFACE_SINGLETON_H
+#define UI_IFACE_SINGLETON_H
+
+#include <cassert>
+
+using namespace std;
+
+namespace viewmgr
+{
+
+template<typename T>
+class singleton
+{
+private:
+ static T* inst;
+
+public:
+ singleton();
+ virtual ~singleton();
+ inline static T* get_instance();
+};
+
+template<typename T> T* singleton<T>::inst = NULL;
+
+template<typename T>
+singleton<T>::singleton()
+{
+ assert(!singleton::inst);
+
+ T* pT = reinterpret_cast<T*>(1);
+
+ //Derived Class - Singleton class
+ int offset = reinterpret_cast<int>(pT) - reinterpret_cast<int>(reinterpret_cast<singleton<T>*>(pT));
+ singleton::inst = reinterpret_cast<T*>((reinterpret_cast<int>(this) + offset));
+}
+
+template<typename T>
+singleton<T>::~singleton()
+{
+ assert(singleton::inst);
+ singleton::inst = NULL;
+}
+
+template<typename T>
+T* singleton<T>::get_instance()
+{
+ assert(singleton::inst);
+ return singleton::inst;
+}
+
+}
+
+#endif /* UI_IFACE_SINGLETON_H_ */
namespace viewmgr {
-template<typename T>
+template<typename T, typename T2>
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<typename T>
+template<typename T, typename T2>
class ui_iface_view : public ui_iface_rotatable
{
- friend class ui_iface_viewmgr<T>;
+ friend class ui_iface_viewmgr<T, T2>;
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<T> *viewmgr; ///< Viewmgr which this view belongs to.
+ ui_iface_viewmgr<T, T2> *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.
/** @brief Return a viewmgr which this view is belonging to.
*/
//FIXME: Is it necessary?
- ui_iface_viewmgr<T> *get_viewmgr();
+ ui_iface_viewmgr<T, T2> *get_viewmgr();
/** @brief This is for replacing or setting a content of the view.
*
};
-template<typename T>
-bool ui_iface_view<T>::get_event_block()
+template<typename T, typename T2>
+bool ui_iface_view<T, T2>::get_event_block()
{
return this->event_block;
}
-template<typename T>
-ui_iface_viewmgr<T> *ui_iface_view<T>::get_viewmgr()
+template<typename T, typename T2>
+ui_iface_viewmgr<T, T2> *ui_iface_view<T, T2>::get_viewmgr()
{
return this->viewmgr;
}
-template<typename T>
-void ui_iface_view<T>::set_event_block(bool block)
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::set_event_block(bool block)
{
this->event_block = block;
}
-template<typename T>
-void ui_iface_view<T>::on_load()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_load()
{
this->state = UI_VIEW_STATE_LOAD;
}
-template<typename T>
-void ui_iface_view<T>::on_unload()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_unload()
{
this->state = UI_VIEW_STATE_UNLOAD;
if (this->get_removable_content())
}
}
-template<typename T>
-void ui_iface_view<T>::on_activate()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_activate()
{
this->state = UI_VIEW_STATE_ACTIVATE;
}
-template<typename T>
-void ui_iface_view<T>::on_deactivate()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_deactivate()
{
this->state = UI_VIEW_STATE_DEACTIVATE;
}
-template<typename T>
-void ui_iface_view<T>::on_pause()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_pause()
{
this->state = UI_VIEW_STATE_PAUSE;
}
-template<typename T>
-void ui_iface_view<T>::on_resume()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_resume()
{
this->state = UI_VIEW_STATE_ACTIVATE;
}
-template<typename T>
-void ui_iface_view<T>::on_destroy()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_destroy()
{
}
-template<typename T>
-ui_iface_view<T>::ui_iface_view(const char *name)
+template<typename T, typename T2>
+ui_iface_view<T, T2>::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<typename T>
-ui_iface_view<T>::~ui_iface_view()
+template<typename T, typename T2>
+ui_iface_view<T, T2>::~ui_iface_view()
{
this->viewmgr->remove_view(this);
}
-template<typename T>
-bool ui_iface_view<T>::set_content(T content)
+template<typename T, typename T2>
+bool ui_iface_view<T, T2>::set_content(T content)
{
this->content = content;
return true;
}
-template<typename T>
-T ui_iface_view<T>::unset_content()
+template<typename T, typename T2>
+T ui_iface_view<T, T2>::unset_content()
{
T prev = this->content;
this->content = NULL;
return prev;
}
-template<typename T>
-bool ui_iface_view<T>::set_transition_style(const char *style)
+template<typename T, typename T2>
+bool ui_iface_view<T, T2>::set_transition_style(const char *style)
{
this->transition_style.assign(style);
return true;
}
-template<typename T>
-bool ui_iface_view<T>::set_name(const char *name)
+template<typename T, typename T2>
+bool ui_iface_view<T, T2>::set_name(const char *name)
{
this->name.assign(name);
return true;
}
-template<typename T>
-void ui_iface_view<T>::set_removable_content(bool removable)
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::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<typename T>
-void ui_iface_view<T>::set_indicator(ui_view_indicator indicator)
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::set_indicator(ui_view_indicator indicator)
{
this->indicator = indicator;
}
-template<typename T>
-const char *ui_iface_view<T>::get_transition_style()
+template<typename T, typename T2>
+const char *ui_iface_view<T, T2>::get_transition_style()
{
return this->transition_style.c_str();
}
-template<typename T>
-const char *ui_iface_view<T>::get_name()
+template<typename T, typename T2>
+const char *ui_iface_view<T, T2>::get_name()
{
return this->name.c_str();
}
-template<typename T>
-T ui_iface_view<T>::get_content()
+template<typename T, typename T2>
+T ui_iface_view<T, T2>::get_content()
{
return this->content;
}
-template<typename T>
-ui_view_state ui_iface_view<T>::get_state()
+template<typename T, typename T2>
+ui_view_state ui_iface_view<T, T2>::get_state()
{
return this->state;
}
-template<typename T>
-bool ui_iface_view<T>::get_removable_content()
+template<typename T, typename T2>
+bool ui_iface_view<T, T2>::get_removable_content()
{
return this->removable_content;
}
-template<typename T>
-ui_view_indicator ui_iface_view<T>::get_indicator()
+template<typename T, typename T2>
+ui_view_indicator ui_iface_view<T, T2>::get_indicator()
{
return this->indicator;
}
-template<typename T>
-void ui_iface_view<T>::on_back()
+template<typename T, typename T2>
+void ui_iface_view<T, T2>::on_back()
{
- ui_iface_viewmgr<T> *viewmgr = this->get_viewmgr();
+ ui_iface_viewmgr<T, T2> *viewmgr = this->get_viewmgr();
if (!viewmgr)
{
LOGE("Failed to get a viewmgr, view =%p", this);
UI_VIEW_STATE_LAST
};
+#include "ui_iface_singleton.h"
#include "ui_iface_rotatable.h"
#include "ui_iface_overlay.h"
#include "ui_iface_view.h"
namespace viewmgr {
-template<typename T>
+template<typename T, typename T2>
class ui_iface_view;
/**
*
* @warning viewmgr will remove all containing views when it's destroyed.
*/
-template<typename T>
-class ui_iface_viewmgr
+template<typename T, typename T2>
+class ui_iface_viewmgr: public singleton<T2>
{
- friend class ui_iface_view<T>;
+ friend class ui_iface_view<T, T2>;
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<ui_iface_view<T> *> view_list; //View list.
+ list<ui_iface_view<T, T2> *> view_list; //View list.
bool activated; //Activated status of this viewmgr.
/**
* @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<T> *view);
+ bool connect_view(ui_iface_view<T, T2> *view);
/**
* @brief Disconnect a given view from this viewmgr.
*
* @see connect_view()
*/
- bool disconnect_view(ui_iface_view<T> *view);
+ bool disconnect_view(ui_iface_view<T, T2> *view);
/**
* @brief Toggle event blocking to the given view.
* @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<T> *view, bool block);
+ void set_event_block(ui_iface_view<T, T2> *view, bool block);
protected:
/**
*
* @warning This function must be called when push transition is finished.
*/
- bool push_view_finished(ui_iface_view<T> *view);
+ bool push_view_finished(ui_iface_view<T, T2> *view);
/**
* @brief This function is designed for finishing process for pop transition.
*
* @warning This function must be called when push transition is finished.
*/
- bool pop_view_finished(ui_iface_view<T> *view);
+ bool pop_view_finished(ui_iface_view<T, T2> *view);
//FIXME: Necessary?
#if 0
*
* @warning Don't modify this view list.
*/
- const list<ui_iface_view<T>*>* const get_view_list()
+ const list<ui_iface_view<T, T2>*>* const get_view_list()
{
return &this->view_list;
}
* @see insert_view_after()
* @see pop_view()
*/
- ui_iface_view<T> *push_view(ui_iface_view<T> *view);
+ ui_iface_view<T, T2> *push_view(ui_iface_view<T, T2> *view);
/**
* @brief Pop the top(last) view from this viewmgr view list.
*
* @return @c true on success or @c false otherwise.
*/
- bool insert_view_before(ui_iface_view<T> *view, ui_iface_view<T> *before);
+ bool insert_view_before(ui_iface_view<T, T2> *view, ui_iface_view<T, T2> *before);
/**
* @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right after of the given view, @after.
*
* @return @c true on success or @c false otherwise.
*/
- bool insert_view_after(ui_iface_view<T> *view, ui_iface_view<T> *after);
+ bool insert_view_after(ui_iface_view<T, T2> *view, ui_iface_view<T, T2> *after);
/**
* @brief Remove the given view from this viewmgr view list.
* @see insert_view_after()
* @see push_view()
*/
- bool remove_view(ui_iface_view<T> *view);
+ bool remove_view(ui_iface_view<T, T2> *view);
/**
* @brief Return a view which is matched with the index @p idx.
* @see get_view_index()
* @see get_view_count()
*/
- ui_iface_view<T>* get_view(unsigned int idx);
+ ui_iface_view<T, T2>* get_view(unsigned int idx);
/**
* @brief Return a view which is matched with the @p name.
*
* @see ui_iface_view::set_name()
*/
- ui_iface_view<T> *get_view(const char *name);
+ ui_iface_view<T, T2> *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<T> *get_last_view();
+ ui_iface_view<T, T2> *get_last_view();
/**
* @brief Return a view index(page) number of the given view.
*
* @warning The index number of views are variable since the view list is variable.
*/
- int get_view_index(const ui_iface_view<T> *view);
+ int get_view_index(const ui_iface_view<T, T2> *view);
public:
///Constructor.
};
-#define VIEW_ITR typename list<ui_iface_view<T> *>::iterator
-#define VIEW_RITR typename list<ui_iface_view<T> *>::reverse_iterator
+#define VIEW_ITR typename list<ui_iface_view<T, T2> *>::iterator
+#define VIEW_RITR typename list<ui_iface_view<T, T2> *>::reverse_iterator
//FIXME: Read system profile to decide whether support software key or not.
-template<typename T> bool ui_iface_viewmgr<T>::soft_key = true;
+template<typename T, typename T2> bool ui_iface_viewmgr<T, T2>::soft_key = true;
//FIXME: Read system profile to decide whether support event block or not.
-template<typename T> bool ui_iface_viewmgr<T>::event_block = true;
+template<typename T, typename T2> bool ui_iface_viewmgr<T, T2>::event_block = true;
-template<typename T>
-bool ui_iface_viewmgr<T>::insert_view_after(ui_iface_view<T> *view, ui_iface_view<T> *after)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::insert_view_after(ui_iface_view<T, T2> *view, ui_iface_view<T, T2> *after)
{
VIEW_ITR it;
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::need_soft_key()
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::need_soft_key()
{
- return ui_iface_viewmgr<T>::soft_key;
+ return ui_iface_viewmgr<T, T2>::soft_key;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::connect_view(ui_iface_view<T> *view)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::connect_view(ui_iface_view<T, T2> *view)
{
//FIXME: If user call a set_viewmgr() before, It should not return false.
/*
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::disconnect_view(ui_iface_view<T> *view)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::disconnect_view(ui_iface_view<T, T2> *view)
{
if (!view->viewmgr) return false;
view->viewmgr = NULL;
return true;
}
-template<typename T>
-void ui_iface_viewmgr<T>::set_event_block(ui_iface_view<T> *view, bool block)
+template<typename T, typename T2>
+void ui_iface_viewmgr<T, T2>::set_event_block(ui_iface_view<T, T2> *view, bool block)
{
if (!ui_iface_viewmgr::event_block) return;
view->set_event_block(block);
}
-template<typename T>
-bool ui_iface_viewmgr<T>::push_view_finished(ui_iface_view<T> *view)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::push_view_finished(ui_iface_view<T, T2> *view)
{
- ui_iface_view<T> *last = this->view_list.back();
+ ui_iface_view<T, T2> *last = this->view_list.back();
//The previous view has been pushed. This should be unload.
if (last != view)
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::pop_view_finished(ui_iface_view<T> *view)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::pop_view_finished(ui_iface_view<T, T2> *view)
{
- ui_iface_view<T> *last = this->view_list.back();
+ ui_iface_view<T, T2> *last = this->view_list.back();
//This view has been popped. It should be destroyed.
if (last == view)
return true;
}
-template<typename T>
-ui_iface_viewmgr<T>::ui_iface_viewmgr()
- : activated(false)
+template<typename T, typename T2>
+ui_iface_viewmgr<T, T2>::ui_iface_viewmgr()
+ : singleton<T2>(), activated(false)
{
}
-template<typename T>
-ui_iface_viewmgr<T>::~ui_iface_viewmgr()
+template<typename T, typename T2>
+ui_iface_viewmgr<T, T2>::~ui_iface_viewmgr()
{
//Terminate views
for (VIEW_RITR it = this->view_list.rbegin(); it != this->view_list.rend(); it++)
{
- ui_iface_view<T> *view = *it;
+ ui_iface_view<T, T2> *view = *it;
view->on_deactivate();
view->on_unload();
view->on_destroy();
ui_app_exit();
}
-template<typename T>
-ui_iface_view<T> *ui_iface_viewmgr<T>::push_view(ui_iface_view<T> *view)
+template<typename T, typename T2>
+ui_iface_view<T, T2> *ui_iface_viewmgr<T, T2>::push_view(ui_iface_view<T, T2> *view)
{
if (!view)
{
return NULL;
}
- ui_iface_view<T> *pview;
+ ui_iface_view<T, T2> *pview;
//Previous view
if (this->view_list.size() > 0)
return view;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::pop_view()
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::pop_view()
{
//FIXME: No more view?
if (this->get_view_count() == 0)
if (this->get_view_count() == 1)
{
//destroy viewmgr?
- ui_iface_view<T>*view = this->view_list.back();
+ ui_iface_view<T, T2>*view = this->view_list.back();
view->on_deactivate();
view->on_unload();
view->on_destroy();
}
//last page to be popped.
- ui_iface_view<T>*view = this->view_list.back();
+ ui_iface_view<T, T2>*view = this->view_list.back();
view->on_deactivate();
this->set_event_block(view, true);
//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<T>*pview = *nx;
+ ui_iface_view<T, T2>*pview = *nx;
pview->on_load();
pview->on_deactivate();
this->set_event_block(pview, true);
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::insert_view_before(ui_iface_view<T> *view, ui_iface_view<T> *before)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::insert_view_before(ui_iface_view<T, T2> *view, ui_iface_view<T, T2> *before)
{
VIEW_ITR it;
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::remove_view(ui_iface_view<T> *view)
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::remove_view(ui_iface_view<T, T2> *view)
{
this->view_list.remove(view);
this->disconnect_view(view);
return true;
}
-template<typename T>
-ui_iface_view<T> *ui_iface_viewmgr<T>::get_view(unsigned int idx)
+template<typename T, typename T2>
+ui_iface_view<T, T2> *ui_iface_viewmgr<T, T2>::get_view(unsigned int idx)
{
if (idx < 0 || idx >= this->view_list.size())
{
return *it;
}
-template<typename T>
-int ui_iface_viewmgr<T>::get_view_index(const ui_iface_view<T> *view)
+template<typename T, typename T2>
+int ui_iface_viewmgr<T, T2>::get_view_index(const ui_iface_view<T, T2> *view)
{
int idx = 0;
return -1;
}
-template<typename T>
-ui_iface_view<T> *ui_iface_viewmgr<T>::get_last_view()
+template<typename T, typename T2>
+ui_iface_view<T, T2> *ui_iface_viewmgr<T, T2>::get_last_view()
{
int cnt = this->get_view_count();
return this->get_view(cnt - 1);
}
-template<typename T>
-bool ui_iface_viewmgr<T>::activate()
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::activate()
{
if (this->activated) return false;
if (this->get_view_count() == 0) return false;
return true;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::deactivate()
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::deactivate()
{
if (!this->activated) return false;
this->activated = false;
return true;
}
-template<typename T>
-ui_iface_view<T> *ui_iface_viewmgr<T>::get_view(const char *name)
+template<typename T, typename T2>
+ui_iface_view<T, T2> *ui_iface_viewmgr<T, T2>::get_view(const char *name)
{
//FIXME: ...
return NULL;
}
-template<typename T>
-bool ui_iface_viewmgr<T>::is_activated()
+template<typename T, typename T2>
+bool ui_iface_viewmgr<T, T2>::is_activated()
{
return this->activated;
}
-template<typename T>
-unsigned int ui_iface_viewmgr<T>::get_view_count()
+template<typename T, typename T2>
+unsigned int ui_iface_viewmgr<T, T2>::get_view_count()
{
return this->view_list.size();
}
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
}
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);
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;
}
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);
}
ui_popup::ui_popup(ui_view *view)
- : ui_iface_overlay(view)
+ : ui_base_overlay(view)
{
view->connect_popup(this);
}
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;
}
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);
--- /dev/null
+/*
+ * 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()
+{
+}
}
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)
{