#include "call-ui/model/ICallUI.h"
-#include "base/Page.h"
+#include "pages/base/Page.h"
namespace callui {
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "Page.h"
-
-#include "common.h"
-
-namespace callui { namespace { namespace impl {
-
- constexpr SmartEvent TOP_PAGE_CHANGED {"ucl,top,page,changed"};
-}}}
-
-namespace callui {
-
- using namespace ucl;
-
- Page::Page(IRefCountObj &rc, const NaviframeSRef &navi,
- const ExitRequestHandler &onExitRequest) :
- GuiPresenter(rc),
- m_navi(navi),
- m_onExitRequest(onExitRequest)
- {
- UCL_ASSERT(navi, "navi is NULL!");
- UCL_ASSERT(onExitRequest, "onExitRequest is NULL!");
-
- deactivateBy(m_navi.get());
- }
-
- Page::~Page()
- {
- }
-
- Result Page::preparePart2()
- {
- if (!m_item) {
- UCL_LOG_RETURN(ucl::RES_FAIL, "m_item is NULL");
- }
-
- Evas_Object *content = m_item.getContent();
- if (!content) {
- LOG_RETURN(RES_FAIL, "content is NULL");
- }
-
- m_navi->addEventHandler(NAVI_TRANSITION_STARTED,
- WEAK_DELEGATE_THIS(onTransitionStarted));
-
- m_navi->addEventHandler(NAVI_TRANSITION_FINISHED,
- WEAK_DELEGATE_THIS(onTransitionFinished));
-
- m_navi->addEventHandler(impl::TOP_PAGE_CHANGED,
- WEAK_DELEGATE_THIS(onTopPageChanged));
-
- eext_object_event_callback_add(content, EEXT_CALLBACK_BACK,
- CALLBACK_A(Page::onHWBackKey), this);
-
- m_item.setData(this);
- m_item.setDelCallback(CALLBACK_A(Page::onItemDel));
-
- m_selfRef = asShared(*this);
-
- if (!m_navi->isInTransition() && isAtTop()) {
- dispatchTopPageChanged();
- }
-
- return RES_OK;
- }
-
- void Page::dispatchTopPageChanged()
- {
- if (!m_navi->isInTransition()) {
- m_navi->callEvent(impl::TOP_PAGE_CHANGED, nullptr);
- } else {
- WLOG("Forcig Transition Finished!");
- m_navi->setInTransition(false);
- }
- }
-
- void Page::onItemDel(Evas_Object *obj, void *eventInfo)
- {
- m_item = nullptr;
- m_selfRef.reset();
- }
-
- void Page::exit()
- {
- if (isAtTop() && !isAtBottom() && !m_navi->isInTransition()) {
- m_navi->pop();
- m_item = nullptr;
- } else {
- dispose();
- }
- }
-
- void Page::dispose()
- {
- if (m_item) {
- if (isAtTop()) {
- m_item.del();
- dispatchTopPageChanged();
- } else {
- m_item.del();
- }
- }
- }
-
- bool Page::isDisposed() const
- {
- return m_item;
- }
-
- void Page::popTo()
- {
- if (m_item && !isAtTop()) {
- m_item.popTo();
- }
- }
-
- void Page::deleteTo()
- {
- if (m_item && !isAtTop()) {
- while (!isAtTop()) {
- m_navi->getTopItem().del();
- }
- dispatchTopPageChanged();
- }
- }
-
- void Page::promote()
- {
- if (m_item && !isAtTop()) {
- m_item.promote();
- }
- }
-
- NaviItem Page::getItem()
- {
- return m_item;
- }
-
- void Page::requestExit()
- {
- if (const auto handler = m_onExitRequest.lock()) {
- handler(*this);
- } else {
- WLOG("m_onExitRequest is NULL");
- exit();
- }
- }
-
- void Page::updateActiveState()
- {
- if (isAtTop()) {
- activateBy(m_navi.get());
- } else {
- deactivateBy(m_navi.get());
- }
- }
-
- void Page::onTransitionStarted(Widget &widget, void *eventInfo)
- {
- deactivateBy(m_navi.get());
- }
-
- void Page::onTransitionFinished(Widget &widget, void *eventInfo)
- {
- updateActiveState();
- }
-
- void Page::onTopPageChanged(Widget &widget, void *eventInfo)
- {
- updateActiveState();
- }
-
- void Page::onHWBackKey(Evas_Object *obj, void *eventInfo)
- {
- if (isActive()) {
- onBackKey();
- }
- }
-
- void Page::onBackKey()
- {
- requestExit();
- }
-}
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_BASE_PAGE_H__
-#define __CALL_UI_PRESENTERS_BASE_PAGE_H__
-
-#include "ucl/gui/Naviframe.h"
-
-#include "ucl/mvp/GuiPresenter.h"
-
-namespace callui {
-
- UCL_DECLARE_REF_ALIASES(Page);
-
- /**
- * @brief Base class for pages
- */
- class Page : public ucl::GuiPresenter,
- public ucl::IDisposable {
- public:
-
- /**
- * @brief Page exit request handler definition
- */
- using ExitRequestHandler = ucl::WeakDelegate<void(Page &page)>;
-
- public:
-
- /**
- * @brief Gets naviframe
- * @return Reference to Naviframe
- */
- ucl::Naviframe &getNaviframe();
-
- /**
- * @brief Checks whether page is top in page stack
- * @return true if page is top, false otherwise
- */
- bool isAtTop() const;
-
- /**
- * @brief Checks whether page is bottom in page stack
- * @return true if page is bottom, false otherwise
- */
- bool isAtBottom() const;
-
- /**
- * @brief Requests to remove page from stack
- * @remark If page is top in page stack it will be removed
- * with transition animation. Otherwise it will be removed
- * without animation
- */
- void exit();
-
- /**
- * @brief Pops other pages from stack above current page
- * @remark Upper pages will be removed with single transition animation
- */
- void popTo();
-
- /**
- * @brief Deletes other pages that are in stack above current page
- * @remark No transition animation will be provided
- */
- void deleteTo();
-
- /**
- * @brief Promotes page to the top of the page stack
- */
- void promote();
-
- /**
- * @brief Inserts page after some page that is already in stack
- * @param[in] args List of params @see ucl::Naviframe
- */
- template <class ...ARGS>
- ucl::NaviItem insertAfter(ARGS &&...args);
-
- /**
- * @brief Inserts page before some page that is already in stack
- * @param[in] args List of params @see ucl::Naviframe
- */
- template <class ...ARGS>
- ucl::NaviItem insertBefore(ARGS &&...args);
-
- // ucl::IDisposable //
-
- /**
- * @see ucl::IDisposable::dispose()
- */
- virtual void dispose() override;
-
- /**
- * @see ucl::IDisposable::isDisposed()
- */
- virtual bool isDisposed() const final override;
-
- protected:
-
- /**
- * @brief Constructor
- * @param[in] rc Reference count object
- * @param[in] navi Application naviframe
- * @param[in] onExitRequest Exit request handler
- */
- Page(ucl::IRefCountObj &rc, const ucl::NaviframeSRef &navi,
- const ExitRequestHandler &onExitRequest);
- /**
- * @brief Destructor
- */
- ~Page();
-
- /**
- * @brief Prepare method to initialize main Page components
- * @param[in] onPrepare Function callback that will be called
- * on user side for creation NaviItem and its content
- * @return RES_OK on success or another result otherwise
- */
- template <class ON_PREPARE>
- ucl::Result prepare(ON_PREPARE &&onPrepare);
-
- /**
- * @brief Gets naviframe item
- * @return Naviframe item
- */
- ucl::NaviItem getItem();
-
- /**
- * @brief Makes request on Page exit
- * @remark Set ExitRequestHandler will be called.
- */
- void requestExit();
-
- /**
- * @brief Called when Page gets Back key event
- * @remark By default it make Page exit request
- */
- virtual void onBackKey();
-
- private:
- ucl::Result preparePart2();
-
- void dispatchTopPageChanged();
-
- void updateActiveState();
-
- void onTransitionStarted(ucl::Widget &widget, void *eventInfo);
- void onTransitionFinished(ucl::Widget &widget, void *eventInfo);
- void onTopPageChanged(ucl::Widget &widget, void *eventInfo);
-
- void onHWBackKey(Evas_Object *obj, void *eventInfo);
- void onItemDel(Evas_Object *obj, void *eventInfo);
-
- private:
- const ucl::NaviframeSRef m_navi;
- const ExitRequestHandler m_onExitRequest;
- ucl::NaviItem m_item;
- PageSRef m_selfRef;
- };
-
- // Non-member functions //
-
- bool isLast(const Page &page);
-}
-
-#include "Page.hpp"
-
-#endif // __CALL_UI_PRESENTERS_BASE_PAGE_H__
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "ucl/util/logging.h"
-
-namespace callui {
-
- template <class ON_PREPARE>
- inline ucl::Result Page::prepare(ON_PREPARE &&onPrepare)
- {
- UCL_FAIL_RETURN(GuiPresenter::prepare(*m_navi),
- "GuiPresenter::prepare() failed!");
-
- UCL_FAIL_RETURN(onPrepare(m_item), "onPrepare() failed!");
-
- return preparePart2();
- }
-
- template <class ...ARGS>
- inline ucl::NaviItem Page::insertAfter(ARGS &&...args)
- {
- return m_navi->insertAfter(m_item, std::forward<ARGS>(args)...);
- }
-
- template <class ...ARGS>
- inline ucl::NaviItem Page::insertBefore(ARGS &&...args)
- {
- return m_navi->insertBefore(m_item, std::forward<ARGS>(args)...);
- }
-
- inline ucl::Naviframe &Page::getNaviframe()
- {
- UCL_ASSERT(m_navi, "m_navi is NULL");
- return *m_navi;
- }
-
- inline bool Page::isAtTop() const
- {
- return (m_navi->getTopItem() == m_item);
- }
-
- inline bool Page::isAtBottom() const
- {
- return (m_navi->getBottomItem() == m_item);
- }
-
- // Non-member functions //
-
- inline bool isLast(const Page &page)
- {
- return (page.isAtBottom() && page.isAtTop());
- }
-}
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_BASE_COMMON_H__
-#define __CALL_UI_PRESENTERS_BASE_COMMON_H__
-
-#include "call-ui/presenters/common.h"
-
-#endif // __CALL_UI_PRESENTERS_BASE_COMMON_H__
#include "call-ui/resources.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_DIALOGS_COMMON_H__
-#define __CALL_UI_PRESENTERS_DIALOGS_COMMON_H__
-
-#include "call-ui/presenters/common.h"
-
-#endif // __CALL_UI_PRESENTERS_DIALOGS_COMMON_H__
#include "AcceptRejectPresenter.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui {
#include "call-ui/presenters/dialogs/AcceptDialog.h"
#include "MotionSensorPresenter.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
private:
const IIncomingCallSRef m_call;
const ISoundManagerSRef m_sm;
+
AcceptRejectWidgetSRef m_widget;
AcceptDialogWRef m_popup;
MotionSensorPresenterSRef m_motionPrs;
#include "ucl/appfw/types.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/common.h"
#define CU_APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
#include "call-ui/model/ISoundManager.h"
#include "call-ui/model/ICallManager.h"
+
#include "call-ui/view/VolumeControl.h"
#include "call-ui/view/Slider.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
private:
const ISoundManagerSRef m_sm;
const NotiHandler m_exitHandler;
+
ucl::LayoutSRef m_widget;
ucl::StyledWidgetSRef m_volumeBtn;
ucl::StyledWidgetSRef m_muteBtn;
#include "AtspiHighlightHelper.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
#include "ucl/mvp/GuiPresenter.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include "ucl/gui/Window.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
#include "call-ui/model/ICallManager.h"
#include "CallStatusPresenter.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include "CallStatusPresenter.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
ICallInfoWCRef info,
bool isHeld):
GuiPresenter(rc),
+ m_info(std::move(info)),
m_ly(std::move(layout)),
m_mode(mode),
- m_info(std::move(info)),
m_isOnHold(isHeld),
m_timer(nullptr),
m_duration{0},
{
unsetLanguageChangeCallback();
- m_ly.reset();
if (m_timer) {
ecore_timer_del(m_timer);
m_timer = nullptr;
#include "call-ui/model/ICallInfo.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
ucl::Result createStatusTxtAo();
private:
- ucl::LayoutSRef m_ly;
+ const ICallInfoWCRef m_info;
+ const ucl::LayoutSRef m_ly;
+
CallMode m_mode;
- ICallInfoWCRef m_info;
bool m_isOnHold;
Ecore_Timer *m_timer;
struct tm m_duration;
#include <device/display.h>
#include <efl_util.h>
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui {
#include "ucl/gui/Window.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include <string>
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
using namespace ucl;
#include "call-ui/model/IIndicatorStateProvider.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include "call-ui/presenters/pages/KeypadPage.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
#include "call-ui/model/ICallManager.h"
#include "call-ui/model/ISoundManager.h"
-#include "call-ui/presenters/base/Page.h"
+
+#include "call-ui/presenters/pages/base/Page.h"
#include "AtspiHighlightHelper.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include "MotionSensorPresenter.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui {
#include <gesture_recognition.h>
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
private:
const NotiHandler m_handler;
+
gesture_h m_gesture;
friend class ucl::ReffedObj<MotionSensorPresenter>;
#include "RejectMsgPresenter.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
#include "call-ui/model/IRejectMsgProvider.h"
#include "AtspiHighlightHelper.h"
-#include "types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_MISC_COMMON_H__
-#define __CALL_UI_PRESENTERS_MISC_COMMON_H__
-
-#include "call-ui/presenters/common.h"
-
-#endif // __CALL_UI_PRESENTERS_MISC_COMMON_H__
#include "ucl/gui/Window.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace himpl {
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_MISC_TYPES_H__
-#define __CALL_UI_PRESENTERS_MISC_TYPES_H__
-
-#include "call-ui/model/types.h"
-
-#endif // __CALL_UI_PRESENTERS_MISC_TYPES_H__
#include "KeypadPage.h"
-#include "call-ui/presenters/types.h"
#include "call-ui/resources.h"
-#include "common.h"
+
+#include "call-ui/presenters/types.h"
+
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
using namespace ucl;
constexpr LayoutTheme LAYOUT_KEYPAD_WIDGET
- {"layout", "callui", "keypad"};
+ {"layout", "callui", "keypad"};
constexpr EdjePart PART_SWL_ENTRY {"swl.entry"};
#ifndef __CALL_UI_PRESENTERS_PAGES_KEYPAD_PAGE_H__
#define __CALL_UI_PRESENTERS_PAGES_KEYPAD_PAGE_H__
-#include "call-ui/presenters/base/Page.h"
+#include "base/Page.h"
#include "ucl/gui/Layout.h"
#include "call-ui/view/VolumeControl.h"
#include "call-ui/presenters/misc/AtspiHighlightHelper.h"
-#include "call-ui/presenters/misc/types.h"
+#include "call-ui/presenters/types.h"
namespace callui {
#include "ucl/gui/Widget.h"
#include "call-ui/resources.h"
+
#include "call-ui/presenters/types.h"
-#include "common.h"
+#include "call-ui/presenters/common.h"
namespace callui { namespace { namespace impl {
{"layout", "callui", "main"};
constexpr LayoutTheme LAYOUT_REJECT_MSG_WIDGET
- {"layout", "callui", "reject_msg"};
+ {"layout", "callui", "reject_msg"};
constexpr EdjePart PART_SWL_INDICATOR {"swl.indicator"};
constexpr EdjePart PART_SWL_ACCEPT_REJECT {"swl.accept_reject"};
#ifndef __CALL_UI_PRESENTERS_PAGES_MAIN_PAGE_H__
#define __CALL_UI_PRESENTERS_PAGES_MAIN_PAGE_H__
-#include "call-ui/presenters/base/Page.h"
+#include "base/Page.h"
#include "call-ui/model/ICallListener.h"
#include "ucl/gui/Layout.h"
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "Page.h"
+
+#include "call-ui/presenters/common.h"
+
+namespace callui { namespace { namespace impl {
+
+ constexpr SmartEvent TOP_PAGE_CHANGED {"ucl,top,page,changed"};
+}}}
+
+namespace callui {
+
+ using namespace ucl;
+
+ Page::Page(IRefCountObj &rc, const NaviframeSRef &navi,
+ const ExitRequestHandler &onExitRequest) :
+ GuiPresenter(rc),
+ m_navi(navi),
+ m_onExitRequest(onExitRequest)
+ {
+ UCL_ASSERT(navi, "navi is NULL!");
+ UCL_ASSERT(onExitRequest, "onExitRequest is NULL!");
+
+ deactivateBy(m_navi.get());
+ }
+
+ Page::~Page()
+ {
+ }
+
+ Result Page::preparePart2()
+ {
+ if (!m_item) {
+ UCL_LOG_RETURN(ucl::RES_FAIL, "m_item is NULL");
+ }
+
+ Evas_Object *content = m_item.getContent();
+ if (!content) {
+ LOG_RETURN(RES_FAIL, "content is NULL");
+ }
+
+ m_navi->addEventHandler(NAVI_TRANSITION_STARTED,
+ WEAK_DELEGATE_THIS(onTransitionStarted));
+
+ m_navi->addEventHandler(NAVI_TRANSITION_FINISHED,
+ WEAK_DELEGATE_THIS(onTransitionFinished));
+
+ m_navi->addEventHandler(impl::TOP_PAGE_CHANGED,
+ WEAK_DELEGATE_THIS(onTopPageChanged));
+
+ eext_object_event_callback_add(content, EEXT_CALLBACK_BACK,
+ CALLBACK_A(Page::onHWBackKey), this);
+
+ m_item.setData(this);
+ m_item.setDelCallback(CALLBACK_A(Page::onItemDel));
+
+ m_selfRef = asShared(*this);
+
+ if (!m_navi->isInTransition() && isAtTop()) {
+ dispatchTopPageChanged();
+ }
+
+ return RES_OK;
+ }
+
+ void Page::dispatchTopPageChanged()
+ {
+ if (!m_navi->isInTransition()) {
+ m_navi->callEvent(impl::TOP_PAGE_CHANGED, nullptr);
+ } else {
+ WLOG("Forcig Transition Finished!");
+ m_navi->setInTransition(false);
+ }
+ }
+
+ void Page::onItemDel(Evas_Object *obj, void *eventInfo)
+ {
+ m_item = nullptr;
+ m_selfRef.reset();
+ }
+
+ void Page::exit()
+ {
+ if (isAtTop() && !isAtBottom() && !m_navi->isInTransition()) {
+ m_navi->pop();
+ m_item = nullptr;
+ } else {
+ dispose();
+ }
+ }
+
+ void Page::dispose()
+ {
+ if (m_item) {
+ if (isAtTop()) {
+ m_item.del();
+ dispatchTopPageChanged();
+ } else {
+ m_item.del();
+ }
+ }
+ }
+
+ bool Page::isDisposed() const
+ {
+ return m_item;
+ }
+
+ void Page::popTo()
+ {
+ if (m_item && !isAtTop()) {
+ m_item.popTo();
+ }
+ }
+
+ void Page::deleteTo()
+ {
+ if (m_item && !isAtTop()) {
+ while (!isAtTop()) {
+ m_navi->getTopItem().del();
+ }
+ dispatchTopPageChanged();
+ }
+ }
+
+ void Page::promote()
+ {
+ if (m_item && !isAtTop()) {
+ m_item.promote();
+ }
+ }
+
+ NaviItem Page::getItem()
+ {
+ return m_item;
+ }
+
+ void Page::requestExit()
+ {
+ if (const auto handler = m_onExitRequest.lock()) {
+ handler(*this);
+ } else {
+ WLOG("m_onExitRequest is NULL");
+ exit();
+ }
+ }
+
+ void Page::updateActiveState()
+ {
+ if (isAtTop()) {
+ activateBy(m_navi.get());
+ } else {
+ deactivateBy(m_navi.get());
+ }
+ }
+
+ void Page::onTransitionStarted(Widget &widget, void *eventInfo)
+ {
+ deactivateBy(m_navi.get());
+ }
+
+ void Page::onTransitionFinished(Widget &widget, void *eventInfo)
+ {
+ updateActiveState();
+ }
+
+ void Page::onTopPageChanged(Widget &widget, void *eventInfo)
+ {
+ updateActiveState();
+ }
+
+ void Page::onHWBackKey(Evas_Object *obj, void *eventInfo)
+ {
+ if (isActive()) {
+ onBackKey();
+ }
+ }
+
+ void Page::onBackKey()
+ {
+ requestExit();
+ }
+}
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __CALL_UI_PRESENTERS_BASE_PAGE_H__
+#define __CALL_UI_PRESENTERS_BASE_PAGE_H__
+
+#include "ucl/gui/Naviframe.h"
+
+#include "ucl/mvp/GuiPresenter.h"
+
+namespace callui {
+
+ UCL_DECLARE_REF_ALIASES(Page);
+
+ /**
+ * @brief Base class for pages
+ */
+ class Page : public ucl::GuiPresenter,
+ public ucl::IDisposable {
+ public:
+
+ /**
+ * @brief Page exit request handler definition
+ */
+ using ExitRequestHandler = ucl::WeakDelegate<void(Page &page)>;
+
+ public:
+
+ /**
+ * @brief Gets naviframe
+ * @return Reference to Naviframe
+ */
+ ucl::Naviframe &getNaviframe();
+
+ /**
+ * @brief Checks whether page is top in page stack
+ * @return true if page is top, false otherwise
+ */
+ bool isAtTop() const;
+
+ /**
+ * @brief Checks whether page is bottom in page stack
+ * @return true if page is bottom, false otherwise
+ */
+ bool isAtBottom() const;
+
+ /**
+ * @brief Requests to remove page from stack
+ * @remark If page is top in page stack it will be removed
+ * with transition animation. Otherwise it will be removed
+ * without animation
+ */
+ void exit();
+
+ /**
+ * @brief Pops other pages from stack above current page
+ * @remark Upper pages will be removed with single transition animation
+ */
+ void popTo();
+
+ /**
+ * @brief Deletes other pages that are in stack above current page
+ * @remark No transition animation will be provided
+ */
+ void deleteTo();
+
+ /**
+ * @brief Promotes page to the top of the page stack
+ */
+ void promote();
+
+ /**
+ * @brief Inserts page after some page that is already in stack
+ * @param[in] args List of params @see ucl::Naviframe
+ */
+ template <class ...ARGS>
+ ucl::NaviItem insertAfter(ARGS &&...args);
+
+ /**
+ * @brief Inserts page before some page that is already in stack
+ * @param[in] args List of params @see ucl::Naviframe
+ */
+ template <class ...ARGS>
+ ucl::NaviItem insertBefore(ARGS &&...args);
+
+ // ucl::IDisposable //
+
+ /**
+ * @see ucl::IDisposable::dispose()
+ */
+ virtual void dispose() override;
+
+ /**
+ * @see ucl::IDisposable::isDisposed()
+ */
+ virtual bool isDisposed() const final override;
+
+ protected:
+
+ /**
+ * @brief Constructor
+ * @param[in] rc Reference count object
+ * @param[in] navi Application naviframe
+ * @param[in] onExitRequest Exit request handler
+ */
+ Page(ucl::IRefCountObj &rc, const ucl::NaviframeSRef &navi,
+ const ExitRequestHandler &onExitRequest);
+ /**
+ * @brief Destructor
+ */
+ ~Page();
+
+ /**
+ * @brief Prepare method to initialize main Page components
+ * @param[in] onPrepare Function callback that will be called
+ * on user side for creation NaviItem and its content
+ * @return RES_OK on success or another result otherwise
+ */
+ template <class ON_PREPARE>
+ ucl::Result prepare(ON_PREPARE &&onPrepare);
+
+ /**
+ * @brief Gets naviframe item
+ * @return Naviframe item
+ */
+ ucl::NaviItem getItem();
+
+ /**
+ * @brief Makes request on Page exit
+ * @remark Set ExitRequestHandler will be called.
+ */
+ void requestExit();
+
+ /**
+ * @brief Called when Page gets Back key event
+ * @remark By default it make Page exit request
+ */
+ virtual void onBackKey();
+
+ private:
+ ucl::Result preparePart2();
+
+ void dispatchTopPageChanged();
+
+ void updateActiveState();
+
+ void onTransitionStarted(ucl::Widget &widget, void *eventInfo);
+ void onTransitionFinished(ucl::Widget &widget, void *eventInfo);
+ void onTopPageChanged(ucl::Widget &widget, void *eventInfo);
+
+ void onHWBackKey(Evas_Object *obj, void *eventInfo);
+ void onItemDel(Evas_Object *obj, void *eventInfo);
+
+ private:
+ const ucl::NaviframeSRef m_navi;
+ const ExitRequestHandler m_onExitRequest;
+ ucl::NaviItem m_item;
+ PageSRef m_selfRef;
+ };
+
+ // Non-member functions //
+
+ bool isLast(const Page &page);
+}
+
+#include "Page.hpp"
+
+#endif // __CALL_UI_PRESENTERS_BASE_PAGE_H__
--- /dev/null
+/*
+ * Copyright 2017 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ucl/util/logging.h"
+
+namespace callui {
+
+ template <class ON_PREPARE>
+ inline ucl::Result Page::prepare(ON_PREPARE &&onPrepare)
+ {
+ UCL_FAIL_RETURN(GuiPresenter::prepare(*m_navi),
+ "GuiPresenter::prepare() failed!");
+
+ UCL_FAIL_RETURN(onPrepare(m_item), "onPrepare() failed!");
+
+ return preparePart2();
+ }
+
+ template <class ...ARGS>
+ inline ucl::NaviItem Page::insertAfter(ARGS &&...args)
+ {
+ return m_navi->insertAfter(m_item, std::forward<ARGS>(args)...);
+ }
+
+ template <class ...ARGS>
+ inline ucl::NaviItem Page::insertBefore(ARGS &&...args)
+ {
+ return m_navi->insertBefore(m_item, std::forward<ARGS>(args)...);
+ }
+
+ inline ucl::Naviframe &Page::getNaviframe()
+ {
+ UCL_ASSERT(m_navi, "m_navi is NULL");
+ return *m_navi;
+ }
+
+ inline bool Page::isAtTop() const
+ {
+ return (m_navi->getTopItem() == m_item);
+ }
+
+ inline bool Page::isAtBottom() const
+ {
+ return (m_navi->getBottomItem() == m_item);
+ }
+
+ // Non-member functions //
+
+ inline bool isLast(const Page &page)
+ {
+ return (page.isAtBottom() && page.isAtTop());
+ }
+}
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __CALL_UI_PRESENTERS_PAGES_COMMON_H__
-#define __CALL_UI_PRESENTERS_PAGES_COMMON_H__
-
-#include "call-ui/presenters/common.h"
-
-#endif // __CALL_UI_PRESENTERS_PAGES_COMMON_H__
profile = wearable-4.0
# C/CPP Sources
-USER_SRCS = call-ui/view/VolumeControl.cpp call-ui/model/impl/CallInfo.cpp call-ui/presenters/base/Page.cpp call-ui/model/impl/IncomingCall.cpp ucl/source/appfw/helpers.cpp ucl/source/mvp/ListItemPresenter.cpp call-ui/model/impl/RejectMsg.cpp ucl/source/gui/Genlist.cpp ucl/source/util/types/Result.cpp call-ui/model/impl/ConferenceCallInfo.cpp call-ui/model/impl/BluetoothManager.cpp ucl/source/gui/Layout.cpp call-ui/presenters/misc/MotionSensorPresenter.cpp call-ui/model/impl/RssiStateSource.cpp call-ui/presenters/Instance.cpp call-ui/model/impl/ActiveCall.cpp call-ui/model/impl/SimSlotStateSource.cpp call-ui/presenters/misc/AcceptRejectPresenter.cpp ucl/source/gui/WidgetItem.cpp call-ui/presenters/pages/MainPage.cpp ucl/source/gui/NaviItem.cpp call-ui/presenters/misc/DeviceStatePresenter.cpp call-ui/model/impl/ContactInfoProvider.cpp call-ui/model/impl/HdVoiceStateSource.cpp ucl/source/gui/Window.cpp call-ui/model/impl/ConnectionStateSource.cpp call-ui/presenters/misc/RejectMsgPresenter.cpp call-ui/presenters/pages/KeypadPage.cpp ucl/source/util/logging.cpp ucl/source/appfw/UIApp.cpp call-ui/presenters/misc/AccessoryPresenter.cpp call-ui/model/impl/ContactInfo.cpp call-ui/model/impl/EndCall.cpp call-ui/view/Slider.cpp call-ui/model/impl/RejectMsgProvider.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp call-ui/model/impl/BatteryStateSource.cpp ucl/source/gui/Widget.cpp call-ui/presenters/dialogs/AcceptDialog.cpp call-ui/types.cpp call-ui/presenters/misc/helpers.cpp call-ui/model/impl/IndicatorStateProvider.cpp call-ui/view/AcceptRejectWidget.cpp ucl/source/misc/Timeout.cpp call-ui/resources.cpp ucl/source/util/types/classTypes.cpp call-ui/model/CallUIBuilder.cpp call-ui/presenters/misc/CallStatusPresenter.cpp call-ui/model/impl/HeldCall.cpp call-ui/model/impl/SoundManager.cpp ucl/source/gui/EdjeWidget.cpp call-ui/model/impl/MsgClient.cpp call-ui/presenters/InstanceManager.cpp call-ui/presenters/misc/MoreOptionsPresenter.cpp call-ui/presenters/misc/IndicatorPresenter.cpp call-ui/presenters/misc/AtspiHighlightHelper.cpp ucl/source/gui/Naviframe.cpp call-ui/model/impl/CallUI.cpp ucl/source/gui/ElmWidget.cpp ucl/source/gui/RadioBox.cpp ucl/source/misc/Variant.cpp call-ui/view/helpers.cpp call-ui/main.cpp call-ui/model/impl/CallManager.cpp call-ui/presenters/misc/CallInfoPresenter.cpp ucl/source/appfw/SysEventProvider.cpp call-ui/model/impl/CallClient.cpp ucl/source/mvp/ListPresenter.cpp
+USER_SRCS = call-ui/view/VolumeControl.cpp call-ui/model/impl/CallInfo.cpp call-ui/model/impl/IncomingCall.cpp ucl/source/appfw/helpers.cpp ucl/source/mvp/ListItemPresenter.cpp call-ui/model/impl/RejectMsg.cpp ucl/source/gui/Genlist.cpp ucl/source/util/types/Result.cpp call-ui/model/impl/ConferenceCallInfo.cpp call-ui/model/impl/BluetoothManager.cpp ucl/source/gui/Layout.cpp call-ui/presenters/misc/MotionSensorPresenter.cpp call-ui/model/impl/RssiStateSource.cpp call-ui/presenters/Instance.cpp call-ui/model/impl/ActiveCall.cpp call-ui/model/impl/SimSlotStateSource.cpp call-ui/presenters/misc/AcceptRejectPresenter.cpp ucl/source/gui/WidgetItem.cpp call-ui/presenters/pages/MainPage.cpp ucl/source/gui/NaviItem.cpp call-ui/presenters/misc/DeviceStatePresenter.cpp call-ui/model/impl/ContactInfoProvider.cpp call-ui/model/impl/HdVoiceStateSource.cpp ucl/source/gui/Window.cpp call-ui/model/impl/ConnectionStateSource.cpp call-ui/presenters/misc/RejectMsgPresenter.cpp call-ui/presenters/pages/KeypadPage.cpp ucl/source/util/logging.cpp ucl/source/appfw/UIApp.cpp call-ui/presenters/misc/AccessoryPresenter.cpp call-ui/model/impl/ContactInfo.cpp call-ui/model/impl/EndCall.cpp call-ui/view/Slider.cpp call-ui/model/impl/RejectMsgProvider.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp call-ui/model/impl/BatteryStateSource.cpp ucl/source/gui/Widget.cpp call-ui/presenters/dialogs/AcceptDialog.cpp call-ui/types.cpp call-ui/presenters/misc/helpers.cpp call-ui/model/impl/IndicatorStateProvider.cpp call-ui/view/AcceptRejectWidget.cpp ucl/source/misc/Timeout.cpp call-ui/resources.cpp ucl/source/util/types/classTypes.cpp call-ui/model/CallUIBuilder.cpp call-ui/presenters/misc/CallStatusPresenter.cpp call-ui/model/impl/HeldCall.cpp call-ui/model/impl/SoundManager.cpp ucl/source/gui/EdjeWidget.cpp call-ui/model/impl/MsgClient.cpp call-ui/presenters/InstanceManager.cpp call-ui/presenters/pages/base/Page.cpp call-ui/presenters/misc/MoreOptionsPresenter.cpp call-ui/presenters/misc/IndicatorPresenter.cpp call-ui/presenters/misc/AtspiHighlightHelper.cpp ucl/source/gui/Naviframe.cpp call-ui/model/impl/CallUI.cpp ucl/source/gui/ElmWidget.cpp ucl/source/gui/RadioBox.cpp ucl/source/misc/Variant.cpp call-ui/view/helpers.cpp call-ui/main.cpp call-ui/model/impl/CallManager.cpp call-ui/presenters/misc/CallInfoPresenter.cpp ucl/source/appfw/SysEventProvider.cpp call-ui/model/impl/CallClient.cpp ucl/source/mvp/ListPresenter.cpp
# EDC Sources
USER_EDCS =
USER_C_INC_DIRS =
USER_INC_FILES =
## C++ Compiler
-USER_CPP_INC_DIRS = /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/libxml2 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/SDL2 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/appcore/ /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/appcore-agent /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/appcore-watch /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/appfw /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/asp/ /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/aul/ /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/badge /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/base /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/cairo /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/calendar-service2 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/call-manager /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/chromium-ewk /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ckm /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/contacts-svc /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/content /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/context-service /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/csr /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/dali /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/dali-toolkit /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/dbus-1.0 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/device /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/dlog /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-buffer-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-con-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-evas-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-file-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-imf-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-imf-evas-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-input-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-input-evas-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ecore-ipc-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ector-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/e_dbus-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/edje-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eet-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/efl-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/efl-extension /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/efreet-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eina-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eina-1/eina /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eio-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eldbus-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/elementary-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/embryo-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/emile-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eo-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/eom /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ethumb-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ethumb-client-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/evas-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/feedback /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/fontconfig /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/freetype2 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/gio-unix-2.0 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/glib-2.0 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/harfbuzz /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/iotcon /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/json-glib-1.0 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/location /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/maps /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/media /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/media-content /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/messaging /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/metadata-editor /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/minizip /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/msg-service /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/network /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/notification /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/nsd/ /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/phonenumber-utils /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/pkgmgr /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/rua/ /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/sensor /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/storage /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/system /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/telephony /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/telephony-client /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/tzsh /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ug-1 /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/ui /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/vconf /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/vulkan /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/widget_service /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/widget_viewer_dali /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/widget_viewer_evas /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/include/yaca /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/lib/dbus-1.0/include /home/igor/TizenStudio/tizen-studio/tools/smart-build-interface/../../platforms/tizen-4.0/wearable/rootstraps/wearable-4.0-emulator.core.private/usr/lib/glib-2.0/include . ucl/include
+USER_CPP_INC_DIRS = . ucl/include
USER_CPP_INC_FILES =
USER_INC_DIRS = $(USER_C_INC_DIRS) $(USER_CPP_INC_DIRS)