Merge branch 'master' of ssh://review.tizen.org:29418/platform/core/uifw/ui-viewmgr
Change-Id: I8f256316b4dd3492a4dc4413e7f725eb01976398
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="0.1314792774">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.1314792774" moduleId="org.eclipse.cdt.core.settings" name="Default">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration buildProperties="" description="" id="0.1314792774" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg">
+ <folderInfo id="0.1314792774." name="/" resourcePath="">
+ <toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.237443428" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
+ <targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.237443428.1069267201" name=""/>
+ <builder id="org.eclipse.cdt.build.core.settings.default.builder.1943157003" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
+ <tool id="org.eclipse.cdt.build.core.settings.holder.libs.334507251" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
+ <tool id="org.eclipse.cdt.build.core.settings.holder.318945102" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
+ <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1949172250" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+ </tool>
+ <tool id="org.eclipse.cdt.build.core.settings.holder.1152033755" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
+ <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.529679317" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+ </tool>
+ <tool id="org.eclipse.cdt.build.core.settings.holder.2068815543" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
+ <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1375844046" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="viewmgr.null.1358010903" name="viewmgr"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="0.2035251924">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="0.1314792774">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+</cproject>
BuildRequires: cmake
BuildRequires: edje-bin
BuildRequires: gettext-tools
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
%description
UI VIEW MANAGER library
mkdir -p %{buildroot}/usr/share/license
cp %{_builddir}/%{buildsubdir}/LICENSE %{buildroot}/usr/share/license/%{name}
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
%files
%defattr(-,root,root,-)
%{_libdir}/libui-viewmgr.so.*
ui_app_lifecycle_callback_s lifecycle_callback = {0, };
//Initialize ui_app. ui_app initializes basic resources including ui_viewmgr internally.
- if (!(ret = ui_application_init(PACKAGE, LOCALE_DIR)))
+ if (!ui_application_init(PACKAGE, LOCALE_DIR))
{
- dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_init() is failed. err = %d", ret);
- return ret;
+ dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_init() is failed");
+ return 0;
}
//Register life cycle callback functions.
lifecycle_callback.app_control = app_control;
//Run ui_app. Now it requests to run an application mainloop.
- if ((ret = ui_application_run(argc, argv, &lifecycle_callback, NULL)))
+ if (!ui_application_run(argc, argv, &lifecycle_callback, NULL))
{
- dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_run() is failed. err = %d", ret);
- return ret;
+ dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_run() is failed");
+ return 0;
}
//Terminate ui_app. Remove all ui_app resources.
- if (!(ret = ui_application_term()))
+ if (!ui_application_term())
{
- dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_term() is failed. err = %d", ret);
- return ret;
+ dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_term() is failed");
+ return 0;
}
return 0;
// It looks toolbar bug.
elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_toolbar_item_append(toolbar, NULL, "Tab1", NULL, NULL);
- elm_toolbar_item_append(toolbar, NULL, "Tab2", NULL, NULL);
- elm_toolbar_item_append(toolbar, NULL, "Tab3", NULL, NULL);
- elm_toolbar_item_append(toolbar, NULL, "Tab4", NULL, NULL);
+ elm_toolbar_item_append(toolbar, nullptr, "Tab1", nullptr, nullptr);
+ elm_toolbar_item_append(toolbar, nullptr, "Tab2", nullptr, nullptr);
+ elm_toolbar_item_append(toolbar, nullptr, "Tab3", nullptr, nullptr);
+ elm_toolbar_item_append(toolbar, nullptr, "Tab4", nullptr, nullptr);
return toolbar;
}
/* Image */
image = elm_image_add(parent);
snprintf(buf, sizeof(buf), "%s/data/images/bg.png", BINDIR);
- elm_image_file_set(image, buf, NULL);
+ elm_image_file_set(image, buf, nullptr);
elm_image_resizable_set(image, EINA_FALSE, EINA_FALSE);
evas_object_show(image);
/* Image */
image = elm_image_add(grid);
snprintf(buf, sizeof(buf), "%s/data/images/tizen.png", BINDIR);
- elm_image_file_set(image, buf, NULL);
+ elm_image_file_set(image, buf, nullptr);
evas_object_show(image);
elm_grid_pack(grid, image, 50, 0, 50, 85);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Prev");
- evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Next");
- evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
/* NoContent Layout */
layout = elm_layout_add(grid);
elm_layout_theme_set(layout, "layout", "nocontents", "default");
- elm_object_part_text_set(layout, "elm.text", NULL);
+ elm_object_part_text_set(layout, "elm.text", nullptr);
evas_object_show(layout);
elm_grid_pack(grid, layout, 0, 0, 100, 100);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Prev");
- evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Next");
- evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Prev");
- evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _prevBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 1.0);
elm_object_text_set(btn, "Next");
- evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, NULL);
+ evas_object_smart_callback_add(btn, "clicked", _nextBtnClickedCb, nullptr);
evas_object_show(btn);
elm_box_pack_end(box, btn);
int main(int argc, char *argv[])
{
- SampleApp app;
- return app.run(argc, argv);
+ try {
+ SampleApp app;
+ app.run(argc, argv);
+ } catch (UiException& ex)
+ {
+ dlog_print(DLOG_ERROR, LOG_TAG, ex.getMessage());
+ }
+ return 0;
}
*/
static void _ctxpopupItemSelectCb(void *data, Evas_Object *obj, void *event_info)
{
- Elm_Object_Item *it = static_cast<Elm_Object_Item *>(event_info);
+ auto it = static_cast<Elm_Object_Item *>(event_info);
LOGE("Item (%s) is selected", elm_object_item_text_get(it));
elm_ctxpopup_dismiss(obj);
}
UiStandardView::onMenu(menu);
Elm_Ctxpopup *ctxpopup = elm_ctxpopup_add(menu->getBase());
- elm_ctxpopup_item_append(ctxpopup, "Phone calls", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Favorites", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Search", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Dialer", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Add contact", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Phone calls", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Favorites", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Search", NULL, _ctxpopupItemSelectCb, this);
- elm_ctxpopup_item_append(ctxpopup, "Dialer", NULL, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Phone calls", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Favorites", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Search", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Dialer", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Add contact", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Phone calls", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Favorites", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Search", nullptr, _ctxpopupItemSelectCb, this);
+ elm_ctxpopup_item_append(ctxpopup, "Dialer", nullptr, _ctxpopupItemSelectCb, this);
menu->setContent(ctxpopup);
}
static void _popupDismissedCb(void *data, Evas_Object *obj, void *event_info)
{
evas_object_smart_callback_del(obj, "dismissed", _popupDismissedCb);
- UiPopup *popup = static_cast<UiPopup *>(data);
+ auto popup = static_cast<UiPopup *>(data);
delete (popup);
}
evas_object_smart_callback_add(rightBtn, "clicked",
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- page12 *view = static_cast<page12 *>(data);
+ auto view = static_cast<page12 *>(data);
view->createPopup();
},
this);
{
elm_popup_dismiss(obj);
},
- NULL);
+ nullptr);
evas_object_smart_callback_add(obj, "timeout",
[](void *data, Evas_Object *obj, void *event_info) -> void
{
elm_popup_dismiss(obj);
},
- NULL);
+ nullptr);
popup->setContent(obj);
popup->activate();
//Title Show Button Callback
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->setTitleVisible(true, false);
},
//Title Hide Button Callback
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->setTitleVisible(false, false);
},
//Title Show Anim Button Callback
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->setTitleVisible(true, true);
},
//Title Hide Anim Button Callback
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->setTitleVisible(false, true);
}, this);
*
* @param name view name.
*/
- explicit UiBaseView(const char *name = NULL);
+ explicit UiBaseView(const char *name = nullptr);
///Destructor.
virtual ~UiBaseView();
/**
* @brief This is for replacing or setting a content of the view.
*
- * @param content a new content. It allows @c NULL for canceling the previous content.
+ * @param content a new content. It allows @c nullptr for canceling the previous content.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
virtual bool setContent(Evas_Object *content) override;
/**
* @brief This is for unsetting a content of the view.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
virtual Evas_Object *unsetContent() override;
#define UI_BASE_VIEWMGR dynamic_cast<efl_viewmanager::UiBaseViewmgr *>(ui_viewmanager::UiIfaceViewmgr::getInstance())
+using UiBaseException = ui_viewmanager::UiIfaceException;
+
#endif /* UI_BASE_VIEWMANAGER_H */
*
* @param view A view to insert in the viewmgr view list.
*
- * @return @p view, @c NULL when it fails to push a @p view.
+ * @return @p view, @c nullptr when it fails to push a @p view.
*
* @see activated()
* @see insertViewBefore()
* @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right before of the given view, @before.
*
* @param view A view to insert in the viewmgr view list.
- * @param before A view that will be just inserted after @p view. If you pass @c NULL, @p view will be inserted at the front of the view list.
+ * @param before A view that will be just inserted after @p view. If you pass @c nullptr, @p view will be inserted at the front of the view list.
*
* @return @c true on success or @c false otherwise.
*/
* @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right after of the given view, @after.
*
* @param view A view to insert in the viewmgr view list.
- * @param after A view that will be just inserted before the @p view. If you pass @c NULL, @p view will be inserted at the end of the view list.
+ * @param after A view that will be just inserted before the @p view. If you pass @c nullptr, @p view will be inserted at the end of the view list.
*
* @return @c true on success or @c false otherwise.
*/
* @param idx A index of the view which you are looking for.
*
* @return The view which index is matched with @p idx.
- * If there were no views with index @p idx, @c NULL will be returned.
+ * If there were no views with index @p idx, @c nullptr will be returned.
*
* @note You could use the index as the page numbers of the views.
* @warning the index number of views are variable since the view list is variable.
* @param name The name of the view which you are looking for.
*
* @return The view which name is matched with @p name.
- * If there were no views name matched, @c NULL will be returned.
+ * If there were no views name matched, @c nullptr will be returned.
*
* @see UiIfaceView::setName()
*/
class UiViewmgr;
/*
- * @class UiIfaceApp
+ * @class UiApp
*
* @ingroup ui_viewmanager
*
- * @brief UiIfaceApp is designed for wrapping the application instance. This class hides unnecessary application settings but expose only basic functions
+ * @brief UiApp is designed for wrapping the application instance. This class hides unnecessary application settings but expose only basic functions
* such as initialization and run. Basically, it works on the application life-cycle. It has application life-cycle event interfaces such as create(),
* pause(), resume(), terminate(), etc so that users can handle those events for the their application concept. Also, It provides system event
- * interfaces such as low_baterry(), low_meomory(), lang_changed(), region_changed() and so on. UiIfaceApp create an unique UiViewmgr instance
+ * interfaces such as low_baterry(), low_meomory(), lang_changed(), region_changed() and so on. UiApp create an unique UiViewmgr instance
* internally, and manage its life.
*/
class UiApp : public ui_viewmanager::UiIfaceApp
{
public:
/**
- * @brief This is a constructor for initializing UiPopup.
+ * @brief This is a constructor for initializing UiApp.
*
* @param pkg The name of package.
* @param loale_dir The path of locale directory.
/**
* @brief This is for replacing or setting a content of the menu.
*
- * @param ctxpopup ctxpopup object. It allows @c NULL for canceling the previous content.
+ * @param ctxpopup ctxpopup object. It allows @c nullptr for canceling the previous content.
*
* @return @c true if it succeeds, @c false otherwise.
*/
/**
* @brief This is for unsetting a content of the menu.
*
- * @return A previous content. If it wasn't, return value will be @c NULL.
+ * @return A previous content. If it wasn't, return value will be @c nullptr.
*/
virtual Elm_Ctxpopup *unsetContent() override;
#define UI_VIEWMGR (efl_viewmanager::UiApp::getInstance()->getViewmgr())
+using UiException = ui_viewmanager::UiIfaceException;
+
+
#endif /* UI_MOBILE_VIEWMANAGER_H */
/**
* @brief This is for replacing or setting a content of the popup.
*
- * @param popup popup object. It allows @c NULL for canceling the previous content.
+ * @param popup popup object. It allows @c nullptr for canceling the previous content.
*
* @return @c true if it succeeds, @c false otherwise.
*/
/**
* @brief This is for unsetting a content of the popup.
*
- * @return A previous content. If it wasn't, return value will be @c NULL.
+ * @return A previous content. If it wasn't, return value will be @c nullptr.
*/
virtual Elm_Popup *unsetContent() override;
*
* @param name view name.
*/
- explicit UiStandardView(const char *name = NULL);
+ explicit UiStandardView(const char *name = nullptr);
///Destructor.
virtual ~UiStandardView();
/**
* @brief Replace or set a content of the view.
*
- * @param content a new content. It allows @c NULL for canceling the previous content.
+ * @param content a new content. It allows @c nullptr for canceling the previous content.
* @param title title_label The label in the title area. The name of the title label part is "elm.text.title"
*
* @return @c true if it succeeds, @c false otherwise.
/**
* @brief Unset a content of the view.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
Evas_Object *unsetContent() override;
/**
* @brief Unset a title left button of title area.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
Elm_Button *unsetTitleLeftBtn();
/**
* @brief Unset a title right button of title area.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
Elm_Button *unsetTitleRightBtn();
/**
* @brief Unset a toolbar.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
Elm_Toolbar *unsetToolbar();
*
* @warning if you don't set a view name, you could not look up the view with its name. @see ui_viewmgr_view_get_by_name()
*/
- explicit UiView(const char *name = NULL);
+ explicit UiView(const char *name = nullptr);
///Destructor.
virtual ~UiView();
* @note It creates UiMenu instance, if there is no connected UiMenu instance of this view.
* It hides menu if there is already menu activated.
*
- * @return The menu instance of this view. NULL If the menu already activated.
+ * @return The menu instance of this view. nullptr If the menu already activated.
*/
virtual UiMenu *onMenuPre();
using namespace ui_viewmanager;
using namespace efl_viewmanager;
-typedef UiViewmgr ui_viewmgr;
-typedef UiView ui_view;
-typedef UiStandardView ui_standard_view;
-typedef UiMenu ui_menu;
-typedef UiPopup ui_popup;
+using ui_viewmgr = UiViewmgr;
+using ui_view = UiView;
+using ui_standard_view = UiStandardView;
+using ui_menu = UiMenu;
+using ui_popup = UiPopup;
#endif /* _UI_PRIVATE_H_ */
* @param lifecycle_callback The set of callback functions to handle application lifecycle events.
* @param user_data The user data to be passed to the gieven @p life_cycle_callback functions.
*
- * @return 0 on success, otherwise a negative error value
+ * @return @c true if it succeeds, @c false otherwise.
*/
-EAPI int ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data);
+EAPI bool ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data);
/**
* @brief This is ui_application destructor.
* create, terminate, pause, resume, app_control, APP_EVENT_LOW_BATTERY, APP_EVENT_LOW_MEMORY
* APP_EVENT_DEVICE_ORIENTATION_CHANGED, APP_EVENT_LANGUAGE_CHANGED, APP_EVENT_REGION_FORMAT_CHANGED.
* Application can add those events using wrapping functions by viewmgr supported.
+ *
+ * @return @c true if it succeeds, @c false otherwise.
*/
- virtual int run(int argc, char **argv);
+ virtual bool run(int argc, char **argv);
protected:
/**
--- /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_IFACE_EXCEPTION_H_
+#define _UI_IFACE_EXCEPTION_H_
+
+namespace ui_viewmanager {
+
+class UiIfaceException
+{
+public:
+ UiIfaceException(const char *msg);
+ virtual ~UiIfaceException();
+ const char *getMessage();
+
+private:
+ _UI_DECLARE_PRIVATE_IMPL(UiIfaceException);
+};
+
+}
+
+#endif /* _UI_IFACE_EXCEPTION_H_ */
* @note @p content is a logical object that represents a view in your framework. The actual type of the content could be translated to any certain types.
* For instance, the type could be Evas_Object * in EFL and Layer * in Dali.
*
- * @param content a new content. It allows @c NULL for canceling the previous content.
+ * @param content a new content. It allows @c nullptr for canceling the previous content.
*
* @return @c true if it succeeds, @c false otherwise.
*/
/**
* @brief This is for unsetting a content of the view.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
virtual T unsetContent();
*
* @warning if you don't set a view name, you could not look up the view with its name. @see ui_viewmgr_view_get_by_name()
*/
- explicit UiIfaceView(const char *name = NULL);
+ explicit UiIfaceView(const char *name = nullptr);
///Destructor.
virtual ~UiIfaceView();
* @brief Set transition style of a view.
*
* @note @p style is reserved for supporting various kinds of view transition effects.
- * The actual behaviors with this transition style is up to your frameworks. Default value of the style is NULL.
+ * The actual behaviors with this transition style is up to your frameworks. Default value of the style is nullptr.
* and "none" represents none transition. If you don't like give any transition effects to this view, you can pass "none" as @p style.
*
* @param style a transition style name.
* @return true if the given @c style is available, otherwise false.
*
* @warning When you override this member function, you should implement the logic to check the given style name is available or not.
- * If your framework doesn't support any styles then just allow a @c NULL argument and return true. Otherwise return false.
+ * If your framework doesn't support any styles then just allow a @c nullptr argument and return true. Otherwise return false.
*/
bool setTransitionStyle(const char *style);
/**
* @brief Return a content instance of this view.
*
- * @return content of view. If no contents set yet, @c NULL.
+ * @return content of view. If no contents set yet, @c nullptr.
*/
T getContent();
* @note @p content is a logical object that represents a view in your framework. The actual type of the content could be translated to any certain types.
* For instance, the type could be Evas_Object * in EFL and Layer * in Dali.
*
- * @param content a new content. It allows @c NULL for canceling the previous content.
+ * @param content a new content. It allows @c nullptr for canceling the previous content.
*
* @return @c true if it succeeds, @c false otherwise.
*/
/**
* @brief Unset the view content.
*
- * @return A previous content. If it wasn't, return @c NULL.
+ * @return A previous content. If it wasn't, return @c nullptr.
*/
virtual T unsetContent();
#if UI_EFL
#include <Elementary.h>
- typedef Evas_Object* T;
+ using T = Evas_Object*;
#elif UI_DALI
#endif
#endif
#include "UiIfaceTypes.h"
+#include "UiIfaceException.h"
#include "UiIfaceRotatable.h"
#include "UiIfaceOverlay.h"
#include "UiIfaceView.h"
*
* @param view A view to insert at the end of viewmgr view list.
*
- * @return @p view, @c NULL when it fails to push a @p view.
+ * @return @p view, @c nullptr when it fails to push a @p view.
*
* @see activated()
* @see insertViewBefore()
* @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right before of the given view, @before.
*
* @param view A view to insert in the viewmgr view list.
- * @param before A view that will be just inserted after @p view. If you pass @c NULL, @p view will be inserted at the front of the view list.
+ * @param before A view that will be just inserted after @p view. If you pass @c nullptr, @p view will be inserted at the front of the view list.
*
* @return @c true on success or @c false otherwise.
*/
* @brief Insert a view in this viewmgr view list. Specifically, insert a given @p view right after of the given view, @after.
*
* @param view A view to insert in the viewmgr view list.
- * @param after A view that will be just inserted before the @p view. If you pass @c NULL, @p view will be inserted at the end of the view list.
+ * @param after A view that will be just inserted before the @p view. If you pass @c nullptr, @p view will be inserted at the end of the view list.
*
* @return @c true on success or @c false otherwise.
*/
* @param idx A index of the view which you are looking for.
*
* @return The view which index is matched with @p idx.
- * If there were no views with index @p idx, @c NULL will be returned.
+ * If there were no views with index @p idx, @c nullptr will be returned.
*
* @note You could use the index as the page numbers of the views.
* @warning the index number of views are variable since the view list is variable.
* @param name The name of the view which you are looking for.
*
* @return The view which name is matched with @p name.
- * If there were no views name matched, @c NULL will be returned.
+ * If there were no views name matched, @c nullptr will be returned.
*
* @see UiIfaceView::getName().
*/
interface/UiIfaceView.cpp
interface/UiIfaceViewmgr.cpp
interface/UiIfaceApp.cpp
+ interface/UiIfaceException.cpp
efl/UiBaseView.cpp
efl/UiBaseViewmgr.cpp
efl/UiBaseKeyListener.cpp
interface/UiIfaceView.cpp
interface/UiIfaceViewmgr.cpp
interface/UiIfaceApp.cpp
+ interface/UiIfaceException.cpp
efl/UiBaseView.cpp
efl/UiBaseViewmgr.cpp
efl/UiBaseKeyListener.cpp
class UiBaseKeyListenerImpl
{
protected:
- UiBaseKeyListener *keyListener = NULL;
- UiBaseViewmgr *viewmgr = NULL;
- Evas_Object *keyGrabber = NULL;
+ UiBaseKeyListener *keyListener = nullptr;
+ UiBaseViewmgr *viewmgr = nullptr;
+ Evas_Object *keyGrabber = nullptr;
public:
UiBaseKeyListenerImpl(UiBaseKeyListener *key_listener, UiBaseViewmgr *viewmgr);
void UiBaseKeyListenerImpl::eventProc(Evas_Event_Key_Down *ev)
{
//Only if view manager is activated
- UiBaseViewmgr *viewmgr = this->keyListener->getViewmgr();
+ auto viewmgr = this->keyListener->getViewmgr();
if (!viewmgr->isActivated()) return;
//Get Top View
- UiBaseView *view = viewmgr->getLastView();
+ auto view = viewmgr->getLastView();
if (!view) return;
this->keyListener->extendEventProc(view, ev);
evas_object_event_callback_add(keyGrabRect, EVAS_CALLBACK_KEY_UP, [](void *data, Evas *e, Evas_Object *obj, void *event_info) -> void
{
- Evas_Event_Key_Down *ev = static_cast<Evas_Event_Key_Down *>(event_info);
- UiBaseKeyListenerImpl *keyListener = static_cast<UiBaseKeyListenerImpl *>(data);
+ auto ev = static_cast<Evas_Event_Key_Down *>(event_info);
+ auto keyListener = static_cast<UiBaseKeyListenerImpl *>(data);
_keyGrabRectKeyUpCb(keyListener, ev);
}, this);
static void _contentDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiBaseView *view = static_cast<UiBaseView *>(data);
+ auto view = static_cast<UiBaseView *>(data);
view->unsetContent();
}
Evas_Object *UiBaseView::getBase()
{
- UiBaseViewmgr *viewmgr = UI_BASE_VIEWMGR;
+ auto viewmgr = UI_BASE_VIEWMGR;
if (!viewmgr) {
- return NULL;
+ return nullptr;
}
return viewmgr->getBase();
Evas_Object *UiBaseView ::getParent()
{
- UiBaseViewmgr *viewmgr = UI_BASE_VIEWMGR;
+ auto viewmgr = UI_BASE_VIEWMGR;
if (!viewmgr) {
LOGE("Failed to get a viewmgr");
- return NULL;
+ return nullptr;
}
return viewmgr->getBase();
UiIfaceView::setIndicator(indicator);
- UiBaseViewmgr *viewmgr = UI_BASE_VIEWMGR;
+ auto viewmgr = UI_BASE_VIEWMGR;
if (!viewmgr) {
LOGE("Failed to get a viewmgr");
return false;
}
- UiBaseViewmgr *viewmgr = UI_BASE_VIEWMGR;
+ auto viewmgr = UI_BASE_VIEWMGR;
if (!viewmgr) {
LOGE("Failed to get a viewmgr");
int UiBaseView::getDegree()
{
- UiBaseViewmgr *viewmgr = UI_BASE_VIEWMGR;
+ auto viewmgr = UI_BASE_VIEWMGR;
if (!viewmgr) {
LOGE("Failed to get a viewmgr");
friend class UiBaseViewmgr;
private:
- UiBaseViewmgr *_viewmgr = NULL;
- Elm_Win *_win = NULL; //This is acting like a base object of viewmgr.
- Elm_Conformant *_conform = NULL; //Conformant for viewmgr.
- Elm_Scroller *_scroller = NULL; //Scroller for viewmgr.
- Elm_Layout *_layout = NULL; //Viewmgr's base layout.
- UiBaseKeyListener *_keyListener = NULL; //HW Key Handler such as "BACK" key...
+ UiBaseViewmgr *_viewmgr = nullptr;
+ Elm_Win *_win = nullptr; //This is acting like a base object of viewmgr.
+ Elm_Conformant *_conform = nullptr; //Conformant for viewmgr.
+ Elm_Scroller *_scroller = nullptr; //Scroller for viewmgr.
+ Elm_Layout *_layout = nullptr; //Viewmgr's base layout.
+ UiBaseKeyListener *_keyListener = nullptr; //HW Key Handler such as "BACK" key...
UiViewIndicator _indicator = UI_VIEW_INDICATOR_DEFAULT; //Mode of indicator.
string _transitionStyle = "default"; //Current transition effect style name
map<string, Elm_Layout *> _effectMap; //Map for effect layouts.
bool deactivate();
UiBaseView *pushView(UiBaseView *view);
bool popView();
- bool insertViewBefore(UiBaseView *view, UiBaseView *before);
- bool insertViewAfter(UiBaseView *view, UiBaseView *after);
Evas_Object *getBase() {
return this->_layout;
elm_layout_signal_callback_add(layout, "push,finished", "viewmgr",
[](void *data, Evas_Object *obj, const char *emission, const char *source) -> void
{
- UiBaseViewmgr *viewmgr = static_cast<UiBaseViewmgr *>(data);
+ auto viewmgr = static_cast<UiBaseViewmgr *>(data);
UiBaseView *pview = viewmgr->getView(viewmgr->getViewCount() - 2);
UiBaseView *view = viewmgr->getLastView();
if (pview) viewmgr->pushViewFinished(pview);
elm_layout_signal_callback_add(layout, "pop,finished", "viewmgr",
[](void *data, Evas_Object *obj, const char *emission, const char *source) -> void
{
- UiBaseViewmgr *viewmgr = static_cast<UiBaseViewmgr *>(data);
+ auto viewmgr = static_cast<UiBaseViewmgr *>(data);
UiBaseView *pview = viewmgr->getView(viewmgr->getViewCount() - 2);
UiBaseView *view = viewmgr->getLastView();
if (pview) viewmgr->popViewFinished(pview);
Elm_Layout *UiBaseViewmgrImpl::_setTransitionLayout(string transitionStyle)
{
- Elm_Layout *effectLayout = NULL;
+ Elm_Layout *effectLayout = nullptr;
Elm_Layout *pcontent;
pcontent = elm_object_part_content_unset(this->getBase(), "pcontent");
if (_effectMap.size()) effectLayout = _effectMap.find(transitionStyle)->second;
//Scroller content change to current effect layout and change to hide prev layout.
- Elm_Layout *playout = elm_object_part_content_unset(this->_scroller, NULL);
+ Elm_Layout *playout = elm_object_part_content_unset(this->_scroller, nullptr);
evas_object_hide(playout);
if (!effectLayout) {
Evas_Object *pcontent = elm_object_part_content_unset(this->getBase(), "content");
if (pcontent) evas_object_hide(pcontent);
- UiBaseView *view = this->_viewmgr->getLastView();
+ auto view = this->_viewmgr->getLastView();
//In case of UiBaseView, it doesn't have any base form. It uses viewmgr base instead.
Evas_Object *content;
void UiBaseViewmgrImpl::_setAvailableRotations(UiBaseView *view)
{
- const int *rotations = NULL;
+ const int *rotations = nullptr;
unsigned int count = 0;
rotations = view->getAvailableRotations(&count);
//Window
this->_win = elm_win_util_standard_add(pkg, pkg);
+ char buf[256];
+
if (!this->_win) {
- LOGE("Failed to create a window (%s)", pkg);
- return;
+ snprintf(buf, sizeof(buf), "Failed to create a window (%s)", pkg);
+ throw UiBaseException(buf);
}
//FIXME: Make a method? to set available rotation degree.
//Set window rotation
if (elm_win_wm_rotation_supported_get(this->_win)) {
- int rots[4] =
- { 0, 90, 180, 270 };
+ int rots[4] = { 0, 90, 180, 270 };
elm_win_wm_rotation_available_rotations_set(this->_win, (const int *) (&rots), 4);
}
evas_object_smart_callback_add(this->_win, "wm,rotation,changed",
{
int rot = elm_win_rotation_get(obj);
- UiBaseViewmgr *viewmgr = static_cast<UiBaseViewmgr *>(data);
+ auto viewmgr = static_cast<UiBaseViewmgr *>(data);
UiBaseView *view = viewmgr->getLastView();
view->onRotate(rot);
evas_object_smart_callback_add(this->_win, "delete,request",
[](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiBaseViewmgr *viewmgr = static_cast<UiBaseViewmgr*>(data);
+ auto viewmgr = static_cast<UiBaseViewmgr*>(data);
delete(viewmgr);
},
this->_viewmgr);
//FIXME: Make conformant configurable?
if (!this->_createConformant(this->_win)) {
- LOGE("Failed to create a conformant (%s)", pkg);
- return;
+ snprintf(buf, sizeof(buf), "Failed to create a conformant (%s)", pkg);
+ throw UiBaseException(buf);
}
if (!this->_createScroller(this->_conform)) {
- LOGE("Failed to create a scroller (%s)", pkg);
- return;
+ snprintf(buf, sizeof(buf), "Failed to create a scroller (%s)", pkg);
+ throw UiBaseException(buf);
}
if (!this->_createBaseLayout(this->_scroller, "default")) {
- LOGE("Failed to create a base layout (%s)", pkg);
- return;
+ snprintf(buf, sizeof(buf), "Failed to create a base layout (%s)", pkg);
+ throw UiBaseException(buf);
}
//Set Indicator properties
elm_win_indicator_mode_set(this->_win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(this->_win, ELM_WIN_INDICATOR_OPAQUE);
-
elm_win_autodel_set(this->_win, EINA_TRUE);
}
bool UiBaseViewmgrImpl::popView()
{
- UiBaseView *pview = this->_viewmgr->getView(this->_viewmgr->getViewCount() - 2);
- UiBaseView *view = this->_viewmgr->getLastView();
+ auto pview = this->_viewmgr->getView(this->_viewmgr->getViewCount() - 2);
+ auto view = this->_viewmgr->getLastView();
//In case, if view doesn't have any transition effects.
if (!strcmp(view->getTransitionStyle(), "none")) {
void UiKeyListener::extendEventProc(UiBaseView *view, Evas_Event_Key_Down *ev)
{
if (strcmp(ev->keyname, KEY_MENU) && strcmp(ev->keyname, KEY_MENU2)) return;
- UiView *v = dynamic_cast<UiView *>(view);
+ auto v = dynamic_cast<UiView *>(view);
UiMenu *menu = v->onMenuPre();
if (!menu) return;
static void _ctxpopupDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiMenu *menu = static_cast<UiMenu *>(data);
+ auto menu = static_cast<UiMenu *>(data);
menu->unsetContent();
}
/* We convince the top widget is a window */
Evas_Coord w, h;
- elm_win_screen_size_get(win, NULL, NULL, &w, &h);
+ elm_win_screen_size_get(win, nullptr, nullptr, &w, &h);
int rot = elm_win_rotation_get(win);
switch (rot) {
static void _winResizeCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiMenu *menu = static_cast<UiMenu *>(data);
+ auto menu = static_cast<UiMenu *>(data);
if (!menu->isActivated()) return;
_updateMenu(menu);
UiViewmgr *viewmgr = UI_VIEWMGR;
if (!viewmgr) {
LOGE("Viewmgr is null?? menu(%p)", this);
- return NULL;
+ return nullptr;
}
return viewmgr->getWindow();
elm_object_style_set(ctxpopup, "more/default");
elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE);
- evas_object_smart_callback_add(ctxpopup, "dismissed", _ctxpopupDismissedCb, NULL);
+ evas_object_smart_callback_add(ctxpopup, "dismissed", _ctxpopupDismissedCb, nullptr);
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, _ctxpopupDelCb, this);
UiBaseOverlay::setContent(ctxpopup);
Elm_Ctxpopup *UiMenu::unsetContent()
{
Elm_Ctxpopup *ctxpopup = UiBaseOverlay::unsetContent();
- if (!ctxpopup) return NULL;
+ if (!ctxpopup) return nullptr;
evas_object_smart_callback_del(ctxpopup, "dismissed", _ctxpopupDismissedCb);
evas_object_event_callback_del(ctxpopup, EVAS_CALLBACK_DEL, _ctxpopupDelCb);
static void _popupDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiPopup *popup = static_cast<UiPopup *>(data);
+ auto popup = static_cast<UiPopup *>(data);
popup->unsetContent();
}
UiViewmgr *viewmgr = UI_VIEWMGR;
if (!viewmgr) {
LOGE("Viewmgr is null?? menu(%p)", this);
- return NULL;
+ return nullptr;
}
return viewmgr->getWindow();
Elm_Popup *UiPopup::unsetContent()
{
Elm_Popup *popup = UiBaseOverlay::unsetContent();
- if (!popup) return NULL;
+ if (!popup) return nullptr;
evas_object_event_callback_del(popup, EVAS_CALLBACK_DEL, _popupDelCb);
evas_object_smart_callback_del(popup, "dismissed", _popupDismissedCb);
friend class UiStandardView;
private:
- UiStandardView *_view = NULL;
- Elm_Layout *_layout = NULL; //Base layout for view
- Elm_Toolbar *_toolbar = NULL; //Toolbar
- Elm_Button *_titleLeftBtn = NULL; //Title left button
- Elm_Button *_titleRightBtn = NULL; //Title right button
+ UiStandardView *_view = nullptr;
+ Elm_Layout *_layout = nullptr; //Base layout for view
+ Elm_Toolbar *_toolbar = nullptr; //Toolbar
+ Elm_Button *_titleLeftBtn = nullptr; //Title left button
+ Elm_Button *_titleRightBtn = nullptr; //Title right button
bool _titleVisible = true;
bool _createLayout();
static void _titleLeftBtnDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->unsetTitleLeftBtn();
}
static void _titleRightBtnDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->unsetTitleRightBtn();
}
static void _toolbarDelCb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
- UiStandardView *view = static_cast<UiStandardView *>(data);
+ auto view = static_cast<UiStandardView *>(data);
view->unsetToolbar();
}
if (!this->_layout) return false;
evas_object_del(this->_layout);
- this->_layout = NULL;
+ this->_layout = nullptr;
return true;
}
}
//Set software back key, if it's needed
- UiViewmgr *viewmgr = UI_VIEWMGR;
+ auto viewmgr = UI_VIEWMGR;
if (viewmgr && viewmgr->needSoftKey()) {
Elm_Button *prevBtn = elm_button_add(layout);
} else {
evas_object_smart_callback_add(prevBtn, "clicked", [](void *data, Evas_Object *obj, void *event_info) -> void
{
- UiViewmgr *viewmgr = static_cast<UiViewmgr *>(data);
+ auto viewmgr = static_cast<UiViewmgr *>(data);
viewmgr->popView();
}, viewmgr);
Elm_Button *UiStandardViewImpl::unsetTitleLeftBtn()
{
Elm_Button *btn = this->_titleLeftBtn;
- if (!btn) return NULL;
+ if (!btn) return nullptr;
Elm_Layout *layout = this->getBase();
if (!layout) {
elm_object_signal_emit(layout, "elm,state,title_left_btn,hide", "viewmgr");
evas_object_event_callback_del(btn, EVAS_CALLBACK_DEL, _titleLeftBtnDelCb);
evas_object_hide(btn);
- this->_titleLeftBtn = NULL;
+ this->_titleLeftBtn = nullptr;
return btn;
}
Elm_Button *UiStandardViewImpl::unsetTitleRightBtn()
{
Elm_Button *btn = this->_titleRightBtn;
- if (!btn) return NULL;
+ if (!btn) return nullptr;
Elm_Layout *layout = this->getBase();
if (!layout) {
elm_object_signal_emit(layout, "elm,state,title_right_btn,hide", "viewmgr");
evas_object_event_callback_del(btn, EVAS_CALLBACK_DEL, _titleRightBtnDelCb);
evas_object_hide(btn);
- this->_titleRightBtn = NULL;
+ this->_titleRightBtn = nullptr;
return btn;
}
Elm_Toolbar *UiStandardViewImpl::unsetToolbar()
{
Elm_Toolbar *toolbar = this->_toolbar;
- if (!toolbar) return NULL;
+ if (!toolbar) return nullptr;
Elm_Layout *layout = this->getBase();
if (!layout) {
elm_object_signal_emit(layout, "elm,state,toolbar,hide", "viewmgr");
evas_object_event_callback_del(toolbar, EVAS_CALLBACK_DEL, _toolbarDelCb);
evas_object_hide(toolbar);
- this->_toolbar = NULL;
+ this->_toolbar = nullptr;
return toolbar;
}
Evas_Object *UiStandardView::unsetContent()
{
Evas_Object *pcontent = UiView::unsetContent();
- if (!pcontent) return NULL;
+ if (!pcontent) return nullptr;
this->_impl->unsetContent();
friend class UiView;
private:
- UiView *_view = NULL;
- UiMenu *_menu = NULL;
+ UiView *_view = nullptr;
+ UiMenu *_menu = nullptr;
list<UiPopup *> _popupList;
void _connectPopup(UiPopup *popup);
}
-typedef list<UiPopup*>::reverse_iterator popupRitr;
-
void UiViewImpl::_connectPopup(UiPopup *popup)
{
this->_popupList.push_back(popup);
bool UiViewImpl::_deactivatePopup(bool topOne)
{
- for (popupRitr it = this->_popupList.rbegin(); it != this->_popupList.rend(); it++) {
- UiPopup *popup = *it;
+ for (auto it = this->_popupList.rbegin(); it != this->_popupList.rend(); it++) {
+ auto popup = *it;
if (!popup->isActivated()) continue;
popup->onBack();
//deactivate only one top one? or all popups?
}
UiViewImpl::UiViewImpl(UiView *view)
- : _view(view), _menu(NULL)
+ : _view(view), _menu(nullptr)
{
}
if (this->_menu->isActivated()) {
this->_menu->deactivate();
- return NULL;
+ return nullptr;
}
return this->_menu;
}
ui_app_capi(const char *pkg, const char *locale_dir)
- : UiApp(pkg, locale_dir), data(NULL)
+ : UiApp(pkg, locale_dir), data(nullptr)
{
}
{
}
- int run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data)
+ bool run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data)
{
if (lifecycle_callback)
{
}
};
-static ui_app_capi *g_app = NULL;
+static ui_app_capi *g_app = nullptr;
EAPI bool ui_application_init(const char *pkg, const char *locale_dir)
{
return true;
}
-EAPI int ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data)
+EAPI bool ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data)
{
ui_app_capi *app = g_app;
- if (!app) return -1;
+ if (!app)
+ {
+ LOGE("ui_application is not initialized yet.");
+ return false;
+ }
return app->run(argc, argv, lifecycle_callback, user_data);
}
{
ui_app_capi *app = g_app;
if (app) delete (app);
- else return false;
-
- g_app = NULL;
-
+ g_app = nullptr;
return true;
}
{
if (!menu)
{
- LOGE("Invalid ui_menu = NULL");
+ LOGE("Invalid ui_menu = nullptr");
return false;
}
return true;
EAPI Elm_Ctxpopup *ui_menu_get_content(ui_menu *menu)
{
- if (!validate_menu(menu)) return NULL;
+ if (!validate_menu(menu)) return nullptr;
return menu->getContent();
}
EAPI Elm_Ctxpopup *ui_menu_unset_content(ui_menu *menu)
{
- if (!validate_menu(menu)) return NULL;
+ if (!validate_menu(menu)) return nullptr;
return menu->unsetContent();
}
EAPI Evas_Object *ui_menu_get_base(ui_menu *menu)
{
- if (!validate_menu(menu)) return NULL;
+ if (!validate_menu(menu)) return nullptr;
return menu->getBase();
}
EAPI ui_view *ui_menu_get_view(ui_menu *menu)
{
- if (!validate_menu(menu)) return NULL;
+ if (!validate_menu(menu)) return nullptr;
return dynamic_cast<ui_view *>(menu->getView());
}
{
if (!popup)
{
- LOGE("Invalid ui_popup = NULL");
+ LOGE("Invalid ui_popup = nullptr");
return false;
}
return true;
EAPI Elm_Popup *ui_popup_get_content(ui_popup *popup)
{
- if (!validate_popup(popup)) return NULL;
+ if (!validate_popup(popup)) return nullptr;
return popup->getContent();
}
EAPI Elm_Popup *ui_popup_unset_content(ui_popup *popup)
{
- if (!validate_popup(popup)) return NULL;
+ if (!validate_popup(popup)) return nullptr;
return popup->unsetContent();
}
EAPI Evas_Object *ui_popup_get_base(ui_popup *popup)
{
- if (!validate_popup(popup)) return NULL;
+ if (!validate_popup(popup)) return nullptr;
return popup->getBase();
}
EAPI ui_view *ui_popup_get_view(ui_popup *popup)
{
- if (!validate_popup(popup)) return NULL;
+ if (!validate_popup(popup)) return nullptr;
return dynamic_cast<ui_view *>(popup->getView());
}
{
if (!view)
{
- LOGE("Invalid ui_standard_view = NULL");
- return NULL;
+ LOGE("Invalid ui_standard_view = nullptr");
+ return nullptr;
}
- ui_standard_view_capi *capi_view = dynamic_cast<ui_standard_view_capi *>(view);
+ auto capi_view = dynamic_cast<ui_standard_view_capi *>(view);
if (!capi_view)
{
LOGE("Invalid ui_standard_view = %p. Probably, you passed ui_view, not ui_standard_view.", view);
- return NULL;
+ return nullptr;
}
return capi_view;
EAPI Elm_Button *ui_standard_view_get_title_right_btn(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->getTitleRightBtn();
}
EAPI Elm_Button *ui_standard_view_unset_title_right_btn(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->unsetTitleRightBtn();
}
EAPI Elm_Button *ui_standard_view_get_title_left_btn(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->getTitleLeftBtn();
}
EAPI Elm_Button *ui_standard_view_unset_title_left_btn(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->unsetTitleRightBtn();
}
EAPI Elm_Toolbar *ui_standard_view_get_toolbar(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->getToolbar();
}
EAPI Elm_Toolbar *ui_standard_view_unset_toolbar(ui_standard_view *view)
{
ui_standard_view_capi *capi_view;
- if (!(capi_view = validate_view(view))) return NULL;
+ if (!(capi_view = validate_view(view))) return nullptr;
return capi_view->unsetToolbar();
}
{
if (!view)
{
- LOGE("Invalid ui_view = NULL");
+ LOGE("Invalid ui_view = nullptr");
return false;
}
return true;
{
if (!validate_view(view)) return false;
- ui_common_view_capi *event_attr = dynamic_cast<ui_common_view_capi *>(view);
+ auto event_attr = dynamic_cast<ui_common_view_capi *>(view);
if (!event_attr)
{
LOGE("This view(%p) doesn't allow lifecycle callback?!");
{
if (!validate_view(view)) return false;
- ui_common_view_capi *event_attr = dynamic_cast<ui_common_view_capi *>(view);
+ auto event_attr = dynamic_cast<ui_common_view_capi *>(view);
if (!event_attr)
{
LOGE("This view(%p) doesn't allow event callback?!");
EAPI Evas_Object* ui_view_get_base(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->getBase();
}
EAPI Evas_Object *ui_view_unset_content(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->unsetContent();
}
EAPI const char *ui_view_get_transition_style(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->getTransitionStyle();
}
EAPI const ui_menu *ui_view_get_menu(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->getMenu();
}
EAPI const char *ui_view_get_name(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->getName();
}
EAPI Evas_Object *ui_view_get_content(ui_view *view)
{
- if (!validate_view(view)) return NULL;
+ if (!validate_view(view)) return nullptr;
return view->getContent();
}
{
if (!viewmgr)
{
- LOGE("Invalid ui_viewmgr = NULL");
+ LOGE("Invalid ui_viewmgr = nullptr");
return false;
}
return true;
if (!viewmgr || !view)
{
LOGE("Invalid Parameter viewmgr = %p, view = %p", viewmgr, view);
- return NULL;
+ return nullptr;
}
return dynamic_cast<ui_view *>(viewmgr->pushView(view));
EAPI Elm_Win *ui_viewmgr_get_window(ui_viewmgr *viewmgr)
{
- if (!validate_viewmgr(viewmgr)) return NULL;
+ if (!validate_viewmgr(viewmgr)) return nullptr;
return viewmgr->getWindow();
}
EAPI ui_view *ui_viewmgr_get_last_view(ui_viewmgr *viewmgr)
{
- if (!validate_viewmgr(viewmgr)) return NULL;
+ if (!validate_viewmgr(viewmgr)) return nullptr;
return dynamic_cast<ui_view *>(viewmgr->getLastView());
}
EAPI ui_view *ui_viewmgr_get_view_by_idx(ui_viewmgr *viewmgr, int idx)
{
- if (!validate_viewmgr(viewmgr)) return NULL;
+ if (!validate_viewmgr(viewmgr)) return nullptr;
return dynamic_cast<ui_view *>(viewmgr->getView(idx));
}
EAPI ui_view *ui_viewmgr_get_view_by_name(ui_viewmgr *viewmgr, const char *name)
{
- if (!validate_viewmgr(viewmgr)) return NULL;
+ if (!validate_viewmgr(viewmgr)) return nullptr;
return dynamic_cast<ui_view *>(viewmgr->getView(name));
}
EAPI Evas_Object *ui_viewmgr_get_base(ui_viewmgr *viewmgr)
{
- if (!validate_viewmgr(viewmgr)) return NULL;
+ if (!validate_viewmgr(viewmgr)) return nullptr;
return viewmgr->getBase();
}
public:
friend class UiIfaceApp;
- UiIfaceApp *app = NULL;
- UiIfaceViewmgr *viewmgr = NULL;
- Eina_Stringshare *pkg = NULL;
- Eina_Stringshare *locale_dir = NULL;
+ UiIfaceApp *app = nullptr;
+ UiIfaceViewmgr *viewmgr = nullptr;
+ Eina_Stringshare *pkg = nullptr;
+ Eina_Stringshare *locale_dir = nullptr;
UiIfaceAppImpl(UiIfaceApp *app, const char *pkg, const char *locale_dir, UiIfaceViewmgr* viewmgr);
~UiIfaceAppImpl();
- int run(int argc, char **argv);
+ bool run(int argc, char **argv);
bool init();
bool onCreate();
static bool appCreate(void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
return app->onCreate();
}
static void appTerminate(void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onTerminate();
}
static void appPause(void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onPause();
}
static void appResume(void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onResume();
}
static void appControl(app_control_s *app_control, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onControl(app_control);
}
static void uiAppLangChanged(app_event_info_h event_info, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onLangChanged(event_info);
}
static void uiAppOrientChanged(app_event_info_h event_info, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onOrientChanged(event_info);
}
static void uiAppRegionChanged(app_event_info_h event_info, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onRegionChanged(event_info);
}
static void uiAppLowBattery(app_event_info_h event_info, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onLowBattery(event_info);
}
static void uiAppLowMemory(app_event_info_h event_info, void *data)
{
- UiIfaceAppImpl *app = static_cast<UiIfaceAppImpl *>(data);
+ auto app = static_cast<UiIfaceAppImpl *>(data);
app->onLowMemory(event_info);
}
this->locale_dir = eina_stringshare_add(locale_dir);
}
-int UiIfaceAppImpl::run(int argc, char **argv)
+bool UiIfaceAppImpl::run(int argc, char **argv)
{
ui_app_lifecycle_callback_s event_callback = { 0, };
- app_event_handler_h handlers[5] = { NULL, };
+ app_event_handler_h handlers[5] = { nullptr, };
event_callback.create = appCreate;
event_callback.terminate = appTerminate;
if (ret != APP_ERROR_NONE) {
LOGE("ui_app_main() is failed. err = %d", ret);
+ return false;
}
- return ret;
+ return true;
}
UiIfaceAppImpl::~UiIfaceAppImpl()
/* External class Implementation */
/***********************************************************************************************/
-static UiIfaceApp *_inst = NULL;
+static UiIfaceApp *_inst = nullptr;
void UiIfaceApp::onLangChanged(app_event_info_h event_info)
{
- char *language = NULL;
+ char *language = nullptr;
int ret = app_event_get_language(event_info, &language);
if (ret != APP_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "app_event_get_language() failed. Err = %d.", ret);
+ LOGE("app_event_get_language() failed. Err = %d", ret);
return;
}
- if (language != NULL) {
+ if (language != nullptr) {
elm_language_set(language);
UiIfaceView *view = this->_impl->viewmgr->getLastView();
view->onLanguageChanged(language);
void UiIfaceApp::onLowMemory(app_event_info_h event_info)
{
- UiIfaceView *view = this->_impl->viewmgr->getLastView();
+ auto view = this->_impl->viewmgr->getLastView();
view->onLowMemory();
}
void UiIfaceApp::onLowBattery(app_event_info_h event_info)
{
- UiIfaceView *view = this->_impl->viewmgr->getLastView();
+ auto view = this->_impl->viewmgr->getLastView();
view->onLowBattery();
}
void UiIfaceApp::onRegionChanged(app_event_info_h event_info)
{
- char *region = NULL;
+ char *region = nullptr;
int ret = app_event_get_region_format(event_info, ®ion);
if (ret != APP_ERROR_NONE) {
- dlog_print(DLOG_ERROR, LOG_TAG, "model_app_event_get_region_format() failed. Err = %d", ret);
+ LOGE("app_event_get_region_format() failed. Err = %d", ret);
return;
}
- UiIfaceView *view = this->_impl->viewmgr->getLastView();
+ auto view = this->_impl->viewmgr->getLastView();
view->onRegionChanged(region);
}
UiIfaceApp::UiIfaceApp(const char *pkg, const char *locale_dir, UiIfaceViewmgr *viewmgr)
{
if (_inst) {
- LOGE("You created UiIfaceApp multiple times!!");
+ throw UiIfaceException("Requested to create UiIfaceApp instance multiple times!!");
}
_inst = this;
this->_impl = new UiIfaceAppImpl(this, pkg, locale_dir, viewmgr);
}
-int UiIfaceApp::run(int argc, char **argv)
+bool UiIfaceApp::run(int argc, char **argv)
{
return this->_impl->run(argc, argv);
}
UiIfaceApp::~UiIfaceApp()
{
delete (this->_impl);
- _inst = NULL;
+ _inst = nullptr;
}
UiIfaceViewmgr *UiIfaceApp::getViewmgr()
--- /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 <string>
+#include "../../include/interface/UiIfaceViewManager.h"
+
+using namespace ui_viewmanager;
+using namespace std;
+
+/***********************************************************************************************/
+/* Internal class Implementation */
+/***********************************************************************************************/
+namespace ui_viewmanager
+{
+
+class UiIfaceExceptionImpl
+{
+public:
+ string msg;
+
+ UiIfaceExceptionImpl(const char *msg)
+ {
+ this->msg = string(msg);
+ }
+};
+
+}
+
+/***********************************************************************************************/
+/* External class Implementation */
+/***********************************************************************************************/
+
+UiIfaceException ::UiIfaceException(const char *msg)
+{
+ LOGE("%s", msg);
+ this->_impl = new UiIfaceExceptionImpl(msg);
+}
+
+UiIfaceException::~UiIfaceException()
+{
+ delete(this->_impl);
+}
+
+const char *UiIfaceException::getMessage()
+{
+ return this->_impl->msg.c_str();
+}
friend class UiIfaceOverlay;
private:
- UiIfaceOverlay *_overlay = NULL;
- UiIfaceView *_view = NULL;
- T _content = NULL;
+ UiIfaceOverlay *_overlay = nullptr;
+ UiIfaceView *_view = nullptr;
+ T _content = nullptr;
public:
bool setContent(T content);
T UiIfaceOverlayImpl::unsetContent()
{
T prev = this->_content;
- this->_content = NULL;
+ this->_content = nullptr;
return prev;
}
friend class UiIfaceView;
private:
- UiIfaceView *_view = NULL;
- T _content = NULL; ///< A content instance for a screen as a view.
+ UiIfaceView *_view = nullptr;
+ T _content = nullptr; ///< A content instance for a screen as a view.
string _name; ///< View name.
string _transitionStyle = "default"; ///< View transition style name.
- UiIfaceViewmgr *_viewmgr = NULL; ///< Viewmgr which this view belongs to.
+ UiIfaceViewmgr *_viewmgr = nullptr; ///< Viewmgr which this view belongs to.
UiViewState _state = UI_VIEW_STATE_UNLOAD; ///< View state.
UiViewIndicator _indicator = UI_VIEW_INDICATOR_DEFAULT; ///< View indicator mode.
- int *_rotations = NULL; ///< The pointer of rotation values.
+ int *_rotations = nullptr; ///< The pointer of rotation values.
unsigned int _rotationCount = 0; ///< The number of available rotations.
bool _eventBlock = false; ///< State of event block.
bool _removableContent = true; ///< When this value is true, view removes it's content internally on unload state.
{
this->_state = UI_VIEW_STATE_UNLOAD;
if (this->getRemovableContent()) {
- this->_view->setContent(NULL);
+ this->_view->setContent(nullptr);
return;
}
}
T UiIfaceViewImpl::unsetContent()
{
T prev = this->_content;
- this->_content = NULL;
+ this->_content = nullptr;
return prev;
}
this->_rotations = new int[count];
if (!this->_rotations) {
- LOGE("Allocation failed");
+ LOGE("Memory Allocation failed");
return false;
}
- for (unsigned int i = 0; i < count; i++) {
+ for (auto i = 0; i < count; i++) {
this->_rotations[i] = rotations[i];
}
void UiIfaceViewImpl::onBack()
{
- UiIfaceViewmgr *viewmgr = this->_viewmgr;
+ auto viewmgr = this->_viewmgr;
if (!viewmgr) {
LOGE("Failed to get a viewmgr, view =%p", this);
return;
}
-UiIfaceViewmgr* UiIfaceViewmgrImpl::_inst = NULL;
+UiIfaceViewmgr* UiIfaceViewmgrImpl::_inst = nullptr;
//FIXME: Read system profile to decide whether support software key or not.
bool UiIfaceViewmgrImpl::_softKey = true;
//FIXME: Read system profile to decide whether support event block or not.
bool UiIfaceViewmgrImpl::_eventBlock = true;
-#define VIEW_ITR list<UiIfaceView *>::iterator
-#define VIEW_RITR list<UiIfaceView *>::reverse_iterator
-
bool UiIfaceViewmgrImpl::insertViewAfter(UiIfaceView *view, UiIfaceView *after)
{
- VIEW_ITR it;
-
if (!view) {
- LOGE("invalid view argument. view(NULL)");
+ LOGE("invalid view argument. view(nullptr)");
return false;
}
}
if (this->_viewList.size() > 0) {
- for (it = this->_viewList.begin(); it != this->_viewList.end(); it++) {
+ for (auto it = this->_viewList.begin(); it != this->_viewList.end(); it++) {
if (after == *it) {
//If the after is a last item of list.
//view has to push now.
}
//If there is no matching after view with current list.
- //also in case of after is NULL.
+ //also in case of after is nullptr.
this->pushView(view);
return true;
int nameLen = strlen(view->getName());
const char *name = view->getName();
- for (UiIfaceView *v : this->_viewList) {
+ for (auto v : this->_viewList) {
const char *viewName = v->getName();
if (!viewName) continue;
int viewNameLen = strlen(viewName);
bool UiIfaceViewmgrImpl::disconnectView(UiIfaceView *view)
{
if (!view->_getViewmgr()) return false;
- view->_setViewmgr(NULL);
+ view->_setViewmgr(nullptr);
return true;
}
bool UiIfaceViewmgrImpl::pushViewFinished(UiIfaceView *view)
{
- UiIfaceView *last = this->_viewList.back();
+ auto last = this->_viewList.back();
//The previous view has been pushed. This should be unload.
if (last != view) {
bool UiIfaceViewmgrImpl::popViewFinished(UiIfaceView *view)
{
- UiIfaceView *last = this->_viewList.back();
+ auto last = this->_viewList.back();
//This view has been popped. It should be destroyed.
if (last == view) {
{
//Terminate views
this->_destroying = EINA_TRUE;
- for (VIEW_RITR ritr = this->_viewList.rbegin(); ritr != this->_viewList.rend(); ritr++) {
- UiIfaceView *view = *ritr;
+ for (auto ritr = this->_viewList.rbegin(); ritr != this->_viewList.rend(); ritr++) {
+ auto view = *ritr;
if ((view->getState() != UI_VIEW_STATE_DEACTIVATE) &&
(view->getState() != UI_VIEW_STATE_UNLOAD)) {
view->onDeactivate();
ui_app_exit();
- UiIfaceViewmgrImpl::_inst = NULL;
+ UiIfaceViewmgrImpl::_inst = nullptr;
}
UiIfaceView *UiIfaceViewmgrImpl::pushView(UiIfaceView *view)
{
if (!view) {
- LOGE("invalid view argument. view(NULL)");
- return NULL;
+ LOGE("invalid view argument. view(nullptr)");
+ return nullptr;
}
if (!this->connectView(view)) {
LOGE("connect view failed");
- return NULL;
+ return nullptr;
}
UiIfaceView *pview;
bool UiIfaceViewmgrImpl::popView()
{
//last page to be popped.
- UiIfaceView*view = this->_viewList.back();
+ auto view = this->_viewList.back();
if (view->getEventBlock()) {
return false;
//Make this getter method? or define instance?
//previous page is to be an active page.
auto nx = prev(this->_viewList.end(), 2);
- UiIfaceView*pview = *nx;
+ auto pview = *nx;
pview->onLoad();
pview->onDeactivate();
this->setEventBlock(pview, true);
bool UiIfaceViewmgrImpl::insertViewBefore(UiIfaceView *view, UiIfaceView *before)
{
- VIEW_ITR it;
-
if (!view) {
- LOGE("invalid view argument. view(NULL)");
+ LOGE("invalid view argument. view(nullptr)");
return false;
}
}
if (this->_viewList.size() > 0) {
- for (it = this->_viewList.begin(); it != this->_viewList.end(); it++) {
+ for (auto it = this->_viewList.begin(); it != this->_viewList.end(); it++) {
if (before == *it) {
this->_viewList.insert(it, view);
-
return true;
}
}
}
//If there is no matching before view with current list.
- //also in case of before is NULL.
+ //also in case of before is nullptr.
this->pushView(view);
return true;
{
if (idx < 0 || idx >= this->_viewList.size()) {
LOGE("Invalid idx(%d)! =? (idx range: %d ~ %d)", idx, 0, this->_viewList.size() - 1);
- return NULL;
+ return nullptr;
}
- VIEW_ITR it = this->_viewList.begin();
+ auto it = this->_viewList.begin();
advance(it, idx);
return *it;
}
{
int idx = 0;
- for (UiIfaceView *v : this->_viewList) {
+ for (auto v : this->_viewList) {
if (view == v) return idx;
++idx;
}
if (this->getViewCount() == 0) return false;
this->_activated = true;
- UiIfaceView *view = this->getLastView();
+ auto view = this->getLastView();
view->onLoad();
view->onDeactivate();
if (!this->_activated) return false;
this->_activated = false;
- UiIfaceView *view = this->getLastView();
+ auto view = this->getLastView();
if ((view->getState() != UI_VIEW_STATE_DEACTIVATE) &&
(view->getState() != UI_VIEW_STATE_UNLOAD)) {
UiIfaceView *UiIfaceViewmgrImpl::getView(const char *name)
{
- if (!name) return NULL;
+ if (!name) return nullptr;
int nameLen = strlen(name);
- for (UiIfaceView *v : this->_viewList) {
+ for (auto v : this->_viewList) {
const char *viewName = v->getName();
if (!viewName) continue;
int viewNameLen = strlen(viewName);
}
}
- return NULL;
+ return nullptr;
}
bool UiIfaceViewmgrImpl::isActivated()