From a8396cca2f36764f841bf140978e614615319f45 Mon Sep 17 00:00:00 2001 From: miomin Date: Thu, 7 Jun 2018 17:35:04 +0800 Subject: [PATCH 1/9] [WEEX-442][Core] Use explicit --- .../Source/core/render/action/render_action_add_element.h | 2 +- weex_core/Source/core/render/action/render_action_add_event.h | 2 +- .../core/render/action/render_action_appendtree_createfinish.h | 2 +- weex_core/Source/core/render/action/render_action_createbody.h | 2 +- .../Source/core/render/action/render_action_createfinish.h | 2 +- weex_core/Source/core/render/action/render_action_layout.h | 2 +- .../Source/core/render/action/render_action_move_element.h | 2 +- .../Source/core/render/action/render_action_remove_element.h | 2 +- .../Source/core/render/action/render_action_remove_event.h | 2 +- .../Source/core/render/action/render_action_update_attr.h | 2 +- .../Source/core/render/action/render_action_update_style.h | 2 +- weex_core/Source/core/render/manager/render_manager.h | 2 +- weex_core/Source/core/render/node/factory/render_creator.h | 2 +- weex_core/Source/core/render/node/render_object.h | 2 +- weex_core/Source/core/render/page/render_page.h | 3 ++- 15 files changed, 16 insertions(+), 15 deletions(-) diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index 25cc8eac3f..07968fcd15 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionAddElement : public render_action { public: - RenderActionAddElement(const std::string &pageId, const RenderObject *render, const RenderObject *parent, + explicit RenderActionAddElement(const std::string &pageId, const RenderObject *render, const RenderObject *parent, int index, bool willLayout= true); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 12006d429a..0de206b5b6 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionAddEvent : public render_action { public: - RenderActionAddEvent(const std::string &pageId, const std::string &ref, const std::string &event); + explicit RenderActionAddEvent(const std::string &pageId, const std::string &ref, const std::string &event); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index 0f871e3ee7..cdc968c84c 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionAppendTreeCreateFinish : public render_action { public: - RenderActionAppendTreeCreateFinish(const std::string &pageId, const std::string &ref); + explicit RenderActionAppendTreeCreateFinish(const std::string &pageId, const std::string &ref); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 96557344e0..90b9827e07 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -25,7 +25,7 @@ namespace WeexCore { class RenderActionCreateBody : public render_action { public: - RenderActionCreateBody(const std::string &pageId, const RenderObject *render); + explicit RenderActionCreateBody(const std::string &pageId, const RenderObject *render); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 19d59748fe..0b3407eb42 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionCreateFinish : public render_action { public: - RenderActionCreateFinish(const std::string &pageId); + explicit RenderActionCreateFinish(const std::string &pageId); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index f9e1c90adb..868e4765bb 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionLayout : public render_action { public: - RenderActionLayout(const std::string &pageId, const RenderObject *render, const int index); + explicit RenderActionLayout(const std::string &pageId, const RenderObject *render, const int index); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index aae2633a3d..56db80b49f 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionMoveElement : public render_action { public: - RenderActionMoveElement(const std::string &pageId, const std::string &ref, + explicit RenderActionMoveElement(const std::string &pageId, const std::string &ref, const std::string &parentRef, int index); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index 1e3ad59a6a..d4342f1f77 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -25,7 +25,7 @@ namespace WeexCore { class RenderActionRemoveElement : public render_action { public: - RenderActionRemoveElement(const std::string &pageId, const std::string &ref); + explicit RenderActionRemoveElement(const std::string &pageId, const std::string &ref); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index 846f3c0938..47ffe78141 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionRemoveEvent : public render_action { public: - RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, const std::string &event); + explicit RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, const std::string &event); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index 3131632446..c9eeec16f2 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -26,7 +26,7 @@ namespace WeexCore { class RenderActionUpdateAttr : public render_action { public: - RenderActionUpdateAttr(const std::string &pageId, const std::string &ref, + explicit RenderActionUpdateAttr(const std::string &pageId, const std::string &ref, std::vector> *mAttrs); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index 85c73d2be9..e9d9f5319a 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -27,7 +27,7 @@ namespace WeexCore { public: - RenderActionUpdateStyle(const std::string &pageId, const std::string &ref, + explicit RenderActionUpdateStyle(const std::string &pageId, const std::string &ref, std::vector> *style, std::vector> *margin, std::vector> *padding, diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h index 78206e99ce..446001b142 100644 --- a/weex_core/Source/core/render/manager/render_manager.h +++ b/weex_core/Source/core/render/manager/render_manager.h @@ -31,7 +31,7 @@ namespace WeexCore { class RenderManager { private: - RenderManager() {} + explicit RenderManager() {} ~RenderManager() {} diff --git a/weex_core/Source/core/render/node/factory/render_creator.h b/weex_core/Source/core/render/node/factory/render_creator.h index a10b5f4609..593eb5703f 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.h +++ b/weex_core/Source/core/render/node/factory/render_creator.h @@ -28,7 +28,7 @@ namespace WeexCore { class RenderCreator { private: - RenderCreator() {} + explicit RenderCreator() {} ~RenderCreator() {} diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 758c3f12ad..062a4c37f1 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -136,7 +136,7 @@ namespace WeexCore { public: - RenderObject(); + explicit RenderObject(); ~RenderObject(); diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h index fce095fda9..369d0578a3 100644 --- a/weex_core/Source/core/render/page/render_page.h +++ b/weex_core/Source/core/render/page/render_page.h @@ -74,7 +74,8 @@ namespace WeexCore { static constexpr bool useVSync = true; std::atomic_bool needLayout{false}; std::atomic_bool hasForeLayoutAction{false}; - RenderPage(std::string pageId); + + explicit RenderPage(std::string pageId); ~RenderPage(); From 9659e3c2dc9f94d6fa07fe2769c7e3933451de13 Mon Sep 17 00:00:00 2001 From: miomin Date: Fri, 8 Jun 2018 11:47:46 +0800 Subject: [PATCH 2/9] [WEEX-442][Core] Remove unless include --- weex_core/Source/CMakeLists.txt | 7 + ...ative_render_object_utils_impl_android.cpp | 1 + .../Source/core/render/action/render_action.h | 9 +- .../action/render_action_add_element.cpp | 24 +- .../render/action/render_action_add_element.h | 22 +- .../render/action/render_action_add_event.cpp | 11 +- .../render/action/render_action_add_event.h | 9 +- .../render_action_appendtree_createfinish.cpp | 11 +- .../render_action_appendtree_createfinish.h | 6 +- .../action/render_action_createbody.cpp | 19 +- .../render/action/render_action_createbody.h | 17 +- .../action/render_action_createfinish.cpp | 7 +- .../action/render_action_createfinish.h | 6 +- .../render/action/render_action_layout.cpp | 15 +- .../core/render/action/render_action_layout.h | 16 +- .../action/render_action_move_element.cpp | 13 +- .../action/render_action_move_element.h | 8 +- .../action/render_action_remove_element.cpp | 11 +- .../action/render_action_remove_element.h | 6 +- .../action/render_action_remove_event.cpp | 15 +- .../action/render_action_remove_event.h | 9 +- .../action/render_action_update_attr.cpp | 8 +- .../render/action/render_action_update_attr.h | 9 +- .../action/render_action_update_style.cpp | 14 +- .../action/render_action_update_style.h | 15 +- .../core/render/manager/render_manager.cpp | 23 +- .../core/render/manager/render_manager.h | 12 +- .../render/node/factory/i_render_factory.h | 2 +- .../render/node/factory/i_render_object.h | 13 +- .../node/factory/render_appbar_factory.h | 4 +- .../render/node/factory/render_cell_factory.h | 4 +- .../render/node/factory/render_creator.cpp | 37 +- .../node/factory/render_input_factory.h | 36 -- .../render/node/factory/render_list_factory.h | 4 +- .../render/node/factory/render_mask_factory.h | 4 +- .../node/factory/render_scroller_factory.h | 4 +- .../node/factory/render_switch_factory.h | 36 -- .../render/node/factory/render_text_factory.h | 4 +- .../node/factory/render_textarea_factory.h | 36 -- .../core/render/node/factory/render_type.h | 4 - .../node/factory/simple_render_factory.h | 4 +- .../Source/core/render/node/render_appbar.cpp | 85 +++++ .../Source/core/render/node/render_appbar.h | 62 +--- .../Source/core/render/node/render_cell.h | 2 +- .../core/render/node/render_indicator.h | 30 -- .../Source/core/render/node/render_input.h | 30 -- .../Source/core/render/node/render_list.cpp | 319 ++++++++++++++++ .../Source/core/render/node/render_list.h | 319 ++-------------- .../Source/core/render/node/render_mask.cpp | 54 +++ .../Source/core/render/node/render_mask.h | 28 +- .../Source/core/render/node/render_object.cpp | 323 +++++++++++++++- .../Source/core/render/node/render_object.h | 348 ++---------------- .../core/render/node/render_scroller.cpp | 51 +++ .../Source/core/render/node/render_scroller.h | 34 +- .../Source/core/render/node/render_switch.h | 30 -- ...er_indicator_factory.h => render_text.cpp} | 24 +- .../Source/core/render/node/render_text.h | 16 +- .../Source/core/render/node/render_textarea.h | 30 -- .../Source/core/render/page/render_page.cpp | 124 ++++--- .../Source/core/render/page/render_page.h | 58 ++- 60 files changed, 1255 insertions(+), 1227 deletions(-) delete mode 100644 weex_core/Source/core/render/node/factory/render_input_factory.h delete mode 100644 weex_core/Source/core/render/node/factory/render_switch_factory.h delete mode 100644 weex_core/Source/core/render/node/factory/render_textarea_factory.h create mode 100644 weex_core/Source/core/render/node/render_appbar.cpp delete mode 100644 weex_core/Source/core/render/node/render_indicator.h delete mode 100644 weex_core/Source/core/render/node/render_input.h create mode 100644 weex_core/Source/core/render/node/render_list.cpp create mode 100644 weex_core/Source/core/render/node/render_mask.cpp create mode 100644 weex_core/Source/core/render/node/render_scroller.cpp delete mode 100644 weex_core/Source/core/render/node/render_switch.h rename weex_core/Source/core/render/node/{factory/render_indicator_factory.h => render_text.cpp} (67%) delete mode 100644 weex_core/Source/core/render/node/render_textarea.h diff --git a/weex_core/Source/CMakeLists.txt b/weex_core/Source/CMakeLists.txt index d0ef00cd88..6cb9c182a5 100644 --- a/weex_core/Source/CMakeLists.txt +++ b/weex_core/Source/CMakeLists.txt @@ -19,8 +19,15 @@ set(COMMON_SRCS ./core/render/manager/render_manager.cpp ./core/render/page/render_page.cpp + ./core/render/node/render_object.cpp ./core/render/node/factory/render_creator.cpp + ./core/render/node/render_appbar.cpp + ./core/render/node/render_list.cpp + ./core/render/node/render_mask.cpp + ./core/render/node/render_scroller.cpp + ./core/render/node/render_text.cpp + ./core/render/action/render_action_add_event.cpp ./core/render/action/render_action_remove_event.cpp ./core/render/action/render_action_add_element.cpp diff --git a/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp b/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp index dbf28a816b..9fc1a39b94 100644 --- a/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp +++ b/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp @@ -29,6 +29,7 @@ #include #include #include +#include using namespace WeexCore; diff --git a/weex_core/Source/core/render/action/render_action.h b/weex_core/Source/core/render/action/render_action.h index 4cee8287c0..e5e3cbc84b 100644 --- a/weex_core/Source/core/render/action/render_action.h +++ b/weex_core/Source/core/render/action/render_action.h @@ -19,16 +19,9 @@ #ifndef WEEXV8_RENDERACTION_H #define WEEXV8_RENDERACTION_H -#include -#include -#include -#include -#include -#include - namespace WeexCore { - class render_action { + class RenderAction { public: virtual void ExecuteAction() = 0; }; diff --git a/weex_core/Source/core/render/action/render_action_add_element.cpp b/weex_core/Source/core/render/action/render_action_add_element.cpp index 8a69fe5579..66dcbfb723 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.cpp +++ b/weex_core/Source/core/render/action/render_action_add_element.cpp @@ -16,13 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_add_element.h" + +#include "core/render/node/render_object.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_add_element.h" namespace WeexCore { - RenderActionAddElement::RenderActionAddElement(const std::string &pageId, const RenderObject *render, - const RenderObject *parent, int index, bool willLayout) { + RenderActionAddElement::RenderActionAddElement(const std::string &pageId, + const RenderObject *render, + const RenderObject *parent, int index, + bool willLayout) { this->mAttributes = render->Attributes(); this->mStyles = render->Styles(); this->mEvents = render->Events(); @@ -38,8 +42,14 @@ namespace WeexCore { } void RenderActionAddElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), - mIndex, mParentRef.c_str(), mStyles, mAttributes, - mEvents, mMargins, mPaddings, mBorders, mWillLayout); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(mPageId.c_str(), + mComponentType.c_str(), + mRef.c_str(), + mIndex, mParentRef.c_str(), + mStyles, + mAttributes, + mEvents, mMargins, + mPaddings, mBorders, + mWillLayout); } } diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index 07968fcd15..2b9f553d28 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -19,22 +19,30 @@ #ifndef WEEX_PROJECT_ADDELEMENTACTION_H #define WEEX_PROJECT_ADDELEMENTACTION_H -#include "render_action.h" +#include +#include +#include + +#include "core/render/action/render_action.h" +#include "core/layout/style.h" namespace WeexCore { - class RenderActionAddElement : public render_action { + class RenderObject; + + class RenderActionAddElement : public RenderAction { public: - explicit RenderActionAddElement(const std::string &pageId, const RenderObject *render, const RenderObject *parent, - int index, bool willLayout= true); + explicit RenderActionAddElement(const std::string &pageId, const RenderObject *render, + const RenderObject *parent, + int index, bool willLayout = true); void ExecuteAction(); public: - StylesMap *mStyles; - AttributesMap *mAttributes; - EventsSet *mEvents; + std::map *mStyles; + std::map *mAttributes; + std::set *mEvents; WXCoreMargin mMargins; WXCorePadding mPaddings; WXCoreBorderWidth mBorders; diff --git a/weex_core/Source/core/render/action/render_action_add_event.cpp b/weex_core/Source/core/render/action/render_action_add_event.cpp index 0d210d017b..8005daa208 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.cpp +++ b/weex_core/Source/core/render/action/render_action_add_event.cpp @@ -16,19 +16,22 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_add_event.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_add_event.h" namespace WeexCore { - RenderActionAddEvent::RenderActionAddEvent(const std::string &pageId, const std::string &ref, const std::string &event) { + RenderActionAddEvent::RenderActionAddEvent(const std::string &pageId, const std::string &ref, + const std::string &event) { this->mPageId = pageId; this->mRef = ref; this->mEvent = event; } void RenderActionAddEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(mPageId.c_str(), mRef.c_str(), + mEvent.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 0de206b5b6..88ad40fdc4 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -19,14 +19,17 @@ #ifndef WEEX_PROJECT_ADDEVENTACTION_H #define WEEX_PROJECT_ADDEVENTACTION_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionAddEvent : public render_action { + class RenderActionAddEvent : public RenderAction { public: - explicit RenderActionAddEvent(const std::string &pageId, const std::string &ref, const std::string &event); + explicit RenderActionAddEvent(const std::string &pageId, const std::string &ref, + const std::string &event); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp index e7b399954d..045f0b6872 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp @@ -16,17 +16,20 @@ * specific language governing permissions and limitations * under the License. */ -#include "render_action_appendtree_createfinish.h" -#include + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_appendtree_createfinish.h" namespace WeexCore { - RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &pageId, const std::string &ref) { + RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &pageId, + const std::string &ref) { this->mPageId = pageId; this->mRef = ref; } void RenderActionAppendTreeCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish(mPageId.c_str(), mRef.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish(mPageId.c_str(), + mRef.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index cdc968c84c..04cae2635b 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -19,11 +19,13 @@ #ifndef WEEX_CORE_RENDER_ACTION_APPENDTREE_CREATEFINISH_H #define WEEX_CORE_RENDER_ACTION_APPENDTREE_CREATEFINISH_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionAppendTreeCreateFinish : public render_action { + class RenderActionAppendTreeCreateFinish : public RenderAction { public: explicit RenderActionAppendTreeCreateFinish(const std::string &pageId, const std::string &ref); diff --git a/weex_core/Source/core/render/action/render_action_createbody.cpp b/weex_core/Source/core/render/action/render_action_createbody.cpp index 289cb31500..2efd6f06bc 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.cpp +++ b/weex_core/Source/core/render/action/render_action_createbody.cpp @@ -16,12 +16,15 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_createbody.h" + +#include "core/render/node/render_object.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_createbody.h" namespace WeexCore { - RenderActionCreateBody::RenderActionCreateBody(const std::string &pageId, const RenderObject *render) { + RenderActionCreateBody::RenderActionCreateBody(const std::string &pageId, + const RenderObject *render) { this->mAttributes = render->Attributes(); this->mStyles = render->Styles(); this->mEvents = render->Events(); @@ -34,8 +37,12 @@ namespace WeexCore { } void RenderActionCreateBody::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(mPageId.c_str(), mComponentType.c_str(), mRef.c_str(), - mStyles, mAttributes, mEvents, - mMargins, mPaddings, mBorders); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(mPageId.c_str(), + mComponentType.c_str(), + mRef.c_str(), + mStyles, mAttributes, + mEvents, + mMargins, mPaddings, + mBorders); } } diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 90b9827e07..623b5a0bd7 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -19,10 +19,17 @@ #ifndef WEEX_PROJECT_CREATEBODYACTION_H #define WEEX_PROJECT_CREATEBODYACTION_H -#include "render_action.h" +#include +#include +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionCreateBody : public render_action { + + class RenderObject; + + class RenderActionCreateBody : public RenderAction { public: explicit RenderActionCreateBody(const std::string &pageId, const RenderObject *render); @@ -30,9 +37,9 @@ namespace WeexCore { void ExecuteAction(); public: - StylesMap *mStyles; - AttributesMap *mAttributes; - EventsSet *mEvents; + std::map *mStyles; + std::map *mAttributes; + std::set *mEvents; WXCoreMargin mMargins; WXCorePadding mPaddings; WXCoreBorderWidth mBorders; diff --git a/weex_core/Source/core/render/action/render_action_createfinish.cpp b/weex_core/Source/core/render/action/render_action_createfinish.cpp index 9c2b9fe32a..13559c1183 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_createfinish.cpp @@ -16,8 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_createfinish.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_createfinish.h" namespace WeexCore { @@ -26,6 +27,6 @@ namespace WeexCore { } void RenderActionCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(mPageId.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(mPageId.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 0b3407eb42..9beb99a37d 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -19,11 +19,13 @@ #ifndef WEEX_PROJECT_CREATEFINISHACTION_H #define WEEX_PROJECT_CREATEFINISHACTION_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionCreateFinish : public render_action { + class RenderActionCreateFinish : public RenderAction { public: explicit RenderActionCreateFinish(const std::string &pageId); diff --git a/weex_core/Source/core/render/action/render_action_layout.cpp b/weex_core/Source/core/render/action/render_action_layout.cpp index 67b34b9921..366c6ba5c6 100644 --- a/weex_core/Source/core/render/action/render_action_layout.cpp +++ b/weex_core/Source/core/render/action/render_action_layout.cpp @@ -16,12 +16,15 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_layout.h" + +#include "core/render/node/render_object.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_layout.h" namespace WeexCore { - RenderActionLayout::RenderActionLayout(const std::string &pageId, const RenderObject *render,int index) { + RenderActionLayout::RenderActionLayout(const std::string &pageId, const RenderObject *render, + int index) { this->mPageId = pageId; this->mRef = render->Ref(); this->index = index; @@ -29,9 +32,9 @@ namespace WeexCore { } void RenderActionLayout::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(mPageId.c_str(), mRef.c_str(), - mTop, mBottom, mLeft, mRight, - mHeight, mWidth, index); + WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(mPageId.c_str(), mRef.c_str(), + mTop, mBottom, mLeft, mRight, + mHeight, mWidth, index); } void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index 868e4765bb..18eeb5bb76 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -19,21 +19,29 @@ #ifndef WEEX_PROJECT_RELAYOUTRENDERACTION_H #define WEEX_PROJECT_RELAYOUTRENDERACTION_H -#include "render_action.h" +#include +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionLayout : public render_action { + class RenderObject; + + class WXCoreLayoutNode; + + class RenderActionLayout : public RenderAction { public: - explicit RenderActionLayout(const std::string &pageId, const RenderObject *render, const int index); + explicit RenderActionLayout(const std::string &pageId, const RenderObject *render, + const int index); void ExecuteAction(); void GetLayoutInfo(const WXCoreLayoutNode *node); public: - EventsSet *mEvents; + std::set *mEvents; std::string mPageId; std::string mRef; float mWidth; diff --git a/weex_core/Source/core/render/action/render_action_move_element.cpp b/weex_core/Source/core/render/action/render_action_move_element.cpp index 5c80218fb8..ca2b88e876 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.cpp +++ b/weex_core/Source/core/render/action/render_action_move_element.cpp @@ -16,12 +16,14 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_move_element.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_move_element.h" namespace WeexCore { - RenderActionMoveElement::RenderActionMoveElement(const std::string &pageId, const std::string &ref, + RenderActionMoveElement::RenderActionMoveElement(const std::string &pageId, + const std::string &ref, const std::string &parentRef, int index) { this->mPageId = pageId; this->mRef = ref; @@ -30,6 +32,9 @@ namespace WeexCore { } void RenderActionMoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(mPageId.c_str(), mRef.c_str(), mParentRef.c_str(), mIndex); + WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(mPageId.c_str(), + mRef.c_str(), + mParentRef.c_str(), + mIndex); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index 56db80b49f..cc0fced12f 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -19,15 +19,17 @@ #ifndef WEEX_PROJECT_RENDERACTIONMOVEELEMENT_H #define WEEX_PROJECT_RENDERACTIONMOVEELEMENT_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionMoveElement : public render_action { + class RenderActionMoveElement : public RenderAction { public: explicit RenderActionMoveElement(const std::string &pageId, const std::string &ref, - const std::string &parentRef, int index); + const std::string &parentRef, int index); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_remove_element.cpp b/weex_core/Source/core/render/action/render_action_remove_element.cpp index 3557438728..ba17af55dc 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_element.cpp @@ -16,17 +16,20 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_remove_element.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_remove_element.h" namespace WeexCore { - RenderActionRemoveElement::RenderActionRemoveElement(const std::string &pageId, const std::string &ref) { + RenderActionRemoveElement::RenderActionRemoveElement(const std::string &pageId, + const std::string &ref) { this->mPageId = pageId; this->mRef = ref; } void RenderActionRemoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(mPageId.c_str(), mRef.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(mPageId.c_str(), + mRef.c_str()); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index d4342f1f77..b8d50b3317 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -19,11 +19,13 @@ #ifndef WEEX_PROJECT_RENDERACTIONREMOVEELEMENT_H #define WEEX_PROJECT_RENDERACTIONREMOVEELEMENT_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionRemoveElement : public render_action { + class RenderActionRemoveElement : public RenderAction { public: explicit RenderActionRemoveElement(const std::string &pageId, const std::string &ref); diff --git a/weex_core/Source/core/render/action/render_action_remove_event.cpp b/weex_core/Source/core/render/action/render_action_remove_event.cpp index 55881127ba..06e21d4216 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_event.cpp @@ -16,20 +16,23 @@ * specific language governing permissions and limitations * under the License. */ -#include "render_action_remove_event.h" -#include + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_remove_event.h" namespace WeexCore { - RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, const std::string &event) { + RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &pageId, + const std::string &ref, + const std::string &event) { this->mPageId = pageId; this->mRef = ref; this->mEvent = event; } void RenderActionRemoveEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); - //Bridge_Impl_Android::getInstance()->callRemoveEvent(mPageId.c_str(), mRef.c_str(), mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(mPageId.c_str(), + mRef.c_str(), + mEvent.c_str()); } - } diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index 47ffe78141..a772a6a6e0 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -19,14 +19,17 @@ #ifndef WEEX_PROJECT_REMOVEEVENTACTION_H #define WEEX_PROJECT_REMOVEEVENTACTION_H -#include "render_action.h" +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionRemoveEvent : public render_action { + class RenderActionRemoveEvent : public RenderAction { public: - explicit RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, const std::string &event); + explicit RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, + const std::string &event); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_update_attr.cpp b/weex_core/Source/core/render/action/render_action_update_attr.cpp index c662c1d5b3..7aa6d3ff84 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.cpp +++ b/weex_core/Source/core/render/action/render_action_update_attr.cpp @@ -16,8 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_update_attr.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_update_attr.h" namespace WeexCore { @@ -29,6 +30,7 @@ namespace WeexCore { } void RenderActionUpdateAttr::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(mPageId.c_str(), mRef.c_str(), mAttrs); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(mPageId.c_str(), + mRef.c_str(), mAttrs); } } diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index c9eeec16f2..3e74c0171d 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -19,15 +19,18 @@ #ifndef WEEX_PROJECT_UPDATEATTRACTION_H #define WEEX_PROJECT_UPDATEATTRACTION_H -#include "render_action.h" +#include +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionUpdateAttr : public render_action { + class RenderActionUpdateAttr : public RenderAction { public: explicit RenderActionUpdateAttr(const std::string &pageId, const std::string &ref, - std::vector> *mAttrs); + std::vector> *mAttrs); void ExecuteAction(); diff --git a/weex_core/Source/core/render/action/render_action_update_style.cpp b/weex_core/Source/core/render/action/render_action_update_style.cpp index e694db511c..9b2f6a200c 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.cpp +++ b/weex_core/Source/core/render/action/render_action_update_style.cpp @@ -16,12 +16,14 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include "render_action_update_style.h" + +#include "core/manager/weex_core_manager.h" +#include "core/render/action/render_action_update_style.h" namespace WeexCore { - RenderActionUpdateStyle::RenderActionUpdateStyle(const std::string &pageId, const std::string &ref, + RenderActionUpdateStyle::RenderActionUpdateStyle(const std::string &pageId, + const std::string &ref, std::vector> *style, std::vector> *margin, std::vector> *padding, @@ -35,7 +37,9 @@ namespace WeexCore { } void RenderActionUpdateStyle::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(mPageId.c_str(), mRef.c_str(), mStyle, mMargin, - mPadding, mBorder); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(mPageId.c_str(), + mRef.c_str(), mStyle, + mMargin, + mPadding, mBorder); } } diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index e9d9f5319a..e2d6aa409e 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -19,19 +19,22 @@ #ifndef WEEX_PROJECT_UPDATESTYLEACTION_H #define WEEX_PROJECT_UPDATESTYLEACTION_H -#include "render_action.h" +#include +#include + +#include "core/render/action/render_action.h" namespace WeexCore { - class RenderActionUpdateStyle : public render_action { + class RenderActionUpdateStyle : public RenderAction { public: explicit RenderActionUpdateStyle(const std::string &pageId, const std::string &ref, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border); + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border); void ExecuteAction(); diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp index d271b147a2..c25987df5f 100644 --- a/weex_core/Source/core/render/manager/render_manager.cpp +++ b/weex_core/Source/core/render/manager/render_manager.cpp @@ -16,17 +16,18 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include -#include -#include -#include +#include "core/render/manager/render_manager.h" +#include "core/render/page/render_page.h" +#include "core/render/node/render_object.h" +#include "base/TimeUtils.h" +#include "core/parser/dom_wson.h" +#include "core/layout/measure_func_adapter.h" namespace WeexCore { RenderManager *RenderManager::m_pInstance = nullptr; - bool RenderManager::CreatePage(std::string pageId, const char* data) { + bool RenderManager::CreatePage(std::string pageId, const char *data) { #if RENDER_LOG wson_parser parser(data); @@ -45,7 +46,7 @@ namespace WeexCore { } bool RenderManager::AddRenderObject(const std::string &pageId, const std::string &parentRef, - int index, const char* data) { + int index, const char *data) { RenderPage *page = GetPage(pageId); if (page == nullptr) @@ -99,7 +100,7 @@ namespace WeexCore { } bool RenderManager::UpdateAttr(const std::string &pageId, const std::string &ref, - const char* data) { + const char *data) { RenderPage *page = this->GetPage(pageId); if (page == nullptr) return false; @@ -111,7 +112,7 @@ namespace WeexCore { #endif long long startTime = getCurrentTime(); - std::vector> *attrs = Wson2Pairs(data); + std::vector > *attrs = Wson2Pairs(data); page->ParseJsonTime(getCurrentTime() - startTime); page->updateDirty(true); @@ -119,7 +120,7 @@ namespace WeexCore { } bool RenderManager::UpdateStyle(const std::string &pageId, const std::string &ref, - const char* data) { + const char *data) { RenderPage *page = this->GetPage(pageId); if (page == nullptr) return false; @@ -131,7 +132,7 @@ namespace WeexCore { #endif long long startTime = getCurrentTime(); - std::vector> *styles = Wson2Pairs(data); + std::vector > *styles = Wson2Pairs(data); page->ParseJsonTime(getCurrentTime() - startTime); page->updateDirty(true); diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h index 446001b142..3ff94639f8 100644 --- a/weex_core/Source/core/render/manager/render_manager.h +++ b/weex_core/Source/core/render/manager/render_manager.h @@ -21,8 +21,6 @@ #include #include -#include -#include namespace WeexCore { @@ -52,20 +50,20 @@ namespace WeexCore { void Batch(const std::string &pageId); // create root node - bool CreatePage(std::string pageId, const char* data); + bool CreatePage(std::string pageId, const char *data); /** use auto constructor is bad idea, it cann't transfer binary, use char* is better */ bool AddRenderObject(const std::string &pageId, const std::string &parentRef, int index, - const char* data); + const char *data); bool RemoveRenderObject(const std::string &pageId, const std::string &ref); bool MoveRenderObject(const std::string &pageId, const std::string &ref, - const std::string &parentRef, int index); + const std::string &parentRef, int index); - bool UpdateAttr(const std::string &pageId, const std::string &ref, const char* data); + bool UpdateAttr(const std::string &pageId, const std::string &ref, const char *data); - bool UpdateStyle(const std::string &pageId, const std::string &ref, const char* data); + bool UpdateStyle(const std::string &pageId, const std::string &ref, const char *data); bool AddEvent(const std::string &pageId, const std::string &ref, const std::string &event); diff --git a/weex_core/Source/core/render/node/factory/i_render_factory.h b/weex_core/Source/core/render/node/factory/i_render_factory.h index ea8cda6a43..f0e44516db 100644 --- a/weex_core/Source/core/render/node/factory/i_render_factory.h +++ b/weex_core/Source/core/render/node/factory/i_render_factory.h @@ -19,7 +19,7 @@ #ifndef WEEX_PROJECT_IRENDERFACTORY_H #define WEEX_PROJECT_IRENDERFACTORY_H -#include "i_render_object.h" +#include "core/render/node/factory/i_render_object.h" namespace WeexCore { class IRenderFactory { diff --git a/weex_core/Source/core/render/node/factory/i_render_object.h b/weex_core/Source/core/render/node/factory/i_render_object.h index 6d13569cb9..da2df7f9eb 100644 --- a/weex_core/Source/core/render/node/factory/i_render_object.h +++ b/weex_core/Source/core/render/node/factory/i_render_object.h @@ -20,7 +20,8 @@ #define WEEX_PROJECT_IRENDEROBJECT_H #include -#include + +#include "core/layout/layout.h" namespace WeexCore { @@ -50,11 +51,11 @@ namespace WeexCore { return mType; } - void copyFrom(IRenderObject* src){ - WXCoreLayoutNode::copyFrom(src); - SetRef(src->Ref()); - SetPageId(src->PageId()); - SetType(src->Type()); + inline void copyFrom(IRenderObject *src) { + WXCoreLayoutNode::copyFrom(src); + SetRef(src->Ref()); + SetPageId(src->PageId()); + SetType(src->Type()); } private: diff --git a/weex_core/Source/core/render/node/factory/render_appbar_factory.h b/weex_core/Source/core/render/node/factory/render_appbar_factory.h index ab88c693c9..f8308d2443 100644 --- a/weex_core/Source/core/render/node/factory/render_appbar_factory.h +++ b/weex_core/Source/core/render/node/factory/render_appbar_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERAPPBARFACTORY_H #define WEEX_PROJECT_RENDERAPPBARFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_appbar.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_cell_factory.h b/weex_core/Source/core/render/node/factory/render_cell_factory.h index 516df0bad9..7873cd35cd 100644 --- a/weex_core/Source/core/render/node/factory/render_cell_factory.h +++ b/weex_core/Source/core/render/node/factory/render_cell_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERCELLFACTORY_H #define WEEX_PROJECT_RENDERCELLFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_cell.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_creator.cpp b/weex_core/Source/core/render/node/factory/render_creator.cpp index 7318d40fbd..5c3acfbcd3 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.cpp +++ b/weex_core/Source/core/render/node/factory/render_creator.cpp @@ -16,21 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -#include "render_creator.h" -#include "i_render_object.h" -#include "i_render_factory.h" -#include "render_text_factory.h" -#include "simple_render_factory.h" -#include "render_cell_factory.h" -#include "render_type.h" -#include "render_indicator_factory.h" -#include "render_input_factory.h" -#include "render_list_factory.h" -#include "render_mask_factory.h" -#include "render_scroller_factory.h" -#include "render_switch_factory.h" -#include "render_textarea_factory.h" -#include "render_appbar_factory.h" +#include "core/render/node/factory/render_creator.h" +#include "core/render/node/factory/i_render_object.h" +#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_text_factory.h" +#include "core/render/node/factory/simple_render_factory.h" +#include "core/render/node/factory/render_list_factory.h" +#include "core/render/node/factory/render_mask_factory.h" +#include "core/render/node/factory/render_scroller_factory.h" +#include "core/render/node/factory/render_appbar_factory.h" +#include "core/render/node/factory/render_type.h" namespace WeexCore { @@ -40,24 +35,12 @@ namespace WeexCore { IRenderFactory *factory; if (type == kRenderText) { factory = new RenderTextFactory(); - } else if (type == kRenderCell - || type == kRenderHeader - || type == kRenderCellSlot) { - factory = new RenderCellFactory(); - } else if (type == kRenderIndicator) { - factory = new RenderIndicatorFactory(); - } else if (type == kRenderInput) { - factory = new RenderInputFactory(); } else if (type == kRenderList || type == kRenderWaterfall || type == kRenderRecycleList) { factory = new RenderListFactory(); } else if (type == kRenderMask) { factory = new RenderMaskFactory(); } else if (type == kRenderScroller) { factory = new RenderScrollerFactory(); - } else if (type == kRenderSwitch) { - factory = new RenderSwitchFactory(); - } else if (type == kRenderTextArea) { - factory = new RenderTextAreaFactory(); } else if (type == kRenderAppBar) { factory = new RenderAppBarFactory(); } else { diff --git a/weex_core/Source/core/render/node/factory/render_input_factory.h b/weex_core/Source/core/render/node/factory/render_input_factory.h deleted file mode 100644 index 7e4fe6e58b..0000000000 --- a/weex_core/Source/core/render/node/factory/render_input_factory.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERINPUTFACTORY_H -#define WEEX_PROJECT_RENDERINPUTFACTORY_H - -#include -#include "i_render_factory.h" - -namespace WeexCore { - - class RenderInputFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderInput(); - } - }; - -} - -#endif //WEEX_PROJECT_RENDERINPUTFACTORY_H diff --git a/weex_core/Source/core/render/node/factory/render_list_factory.h b/weex_core/Source/core/render/node/factory/render_list_factory.h index a1d0254008..3964e6a2cd 100644 --- a/weex_core/Source/core/render/node/factory/render_list_factory.h +++ b/weex_core/Source/core/render/node/factory/render_list_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERLISTFACTORY_H #define WEEX_PROJECT_RENDERLISTFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_list.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_mask_factory.h b/weex_core/Source/core/render/node/factory/render_mask_factory.h index c250b869c6..92a210e4c8 100644 --- a/weex_core/Source/core/render/node/factory/render_mask_factory.h +++ b/weex_core/Source/core/render/node/factory/render_mask_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERMASKFACTORY_H #define WEEX_PROJECT_RENDERMASKFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_mask.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_scroller_factory.h b/weex_core/Source/core/render/node/factory/render_scroller_factory.h index 0f0f46a76e..7795bed0ee 100644 --- a/weex_core/Source/core/render/node/factory/render_scroller_factory.h +++ b/weex_core/Source/core/render/node/factory/render_scroller_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERSCROLLERFACTORY_H #define WEEX_PROJECT_RENDERSCROLLERFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_scroller.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_switch_factory.h b/weex_core/Source/core/render/node/factory/render_switch_factory.h deleted file mode 100644 index 558c87d709..0000000000 --- a/weex_core/Source/core/render/node/factory/render_switch_factory.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERSWITCHFACTORY_H -#define WEEX_PROJECT_RENDERSWITCHFACTORY_H - -#include -#include "i_render_factory.h" - -namespace WeexCore { - - class RenderSwitchFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderSwitch(); - } - }; - -} - -#endif //WEEX_PROJECT_RENDERSWITCHFACTORY_H diff --git a/weex_core/Source/core/render/node/factory/render_text_factory.h b/weex_core/Source/core/render/node/factory/render_text_factory.h index edf8ab9dd8..025de7696e 100644 --- a/weex_core/Source/core/render/node/factory/render_text_factory.h +++ b/weex_core/Source/core/render/node/factory/render_text_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERTEXTFACTORY_H #define WEEX_PROJECT_RENDERTEXTFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_text.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_textarea_factory.h b/weex_core/Source/core/render/node/factory/render_textarea_factory.h deleted file mode 100644 index 4d42975dd3..0000000000 --- a/weex_core/Source/core/render/node/factory/render_textarea_factory.h +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERTEXTAREAFACTORY_H -#define WEEX_PROJECT_RENDERTEXTAREAFACTORY_H - -#include -#include "i_render_factory.h" - -namespace WeexCore { - - class RenderTextAreaFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderTextArea(); - } - }; - -} - -#endif //WEEX_PROJECT_RENDERTEXTAREAFACTORY_H diff --git a/weex_core/Source/core/render/node/factory/render_type.h b/weex_core/Source/core/render/node/factory/render_type.h index aab8245bab..46c98aec1b 100644 --- a/weex_core/Source/core/render/node/factory/render_type.h +++ b/weex_core/Source/core/render/node/factory/render_type.h @@ -24,16 +24,12 @@ namespace WeexCore { constexpr char kRenderCell[] = "cell"; constexpr char kRenderCellSlot[] = "cell-slot"; - constexpr char kRenderIndicator[] = "indicator"; - constexpr char kRenderInput[] = "input"; constexpr char kRenderList[] = "list"; constexpr char kHList[] = "hlist"; constexpr char kRenderRecycleList[] = "recycle-list"; constexpr char kRenderMask[] = "mask"; constexpr char kRenderScroller[] = "scroller"; - constexpr char kRenderSwitch[] = "switch"; constexpr char kRenderText[] = "text"; - constexpr char kRenderTextArea[] = "textarea"; constexpr char kRenderHeader[] = "header"; constexpr char kRenderFooter[] = "footer"; constexpr char kRenderWaterfall[] = "waterfall"; diff --git a/weex_core/Source/core/render/node/factory/simple_render_factory.h b/weex_core/Source/core/render/node/factory/simple_render_factory.h index 3adef52c2a..ee1ffca0c8 100644 --- a/weex_core/Source/core/render/node/factory/simple_render_factory.h +++ b/weex_core/Source/core/render/node/factory/simple_render_factory.h @@ -19,8 +19,8 @@ #ifndef WEEX_PROJECT_RENDERCOMMONFACTORY_H #define WEEX_PROJECT_RENDERCOMMONFACTORY_H -#include -#include "i_render_factory.h" +#include "core/render/node/render_object.h" +#include "core/render/node/factory/i_render_factory.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/render_appbar.cpp b/weex_core/Source/core/render/node/render_appbar.cpp new file mode 100644 index 0000000000..9a6a766a76 --- /dev/null +++ b/weex_core/Source/core/render/node/render_appbar.cpp @@ -0,0 +1,85 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 "core/config/core_environment.h" +#include "base/ViewUtils.h" +#include "core/css/constants_name.h" +#include "core/render/node/render_appbar.h" + +namespace WeexCore { + + std::map *RenderAppBar::GetDefaultStyle() { + defaultNavWidth = getFloat( + WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); + + defaultOverflowWidth = getFloat( + WXCoreEnvironment::getInstance()->GetOption("defaultOverflowWidth").c_str()); + + std::string appbar_color = WXCoreEnvironment::getInstance()->GetOption("appbar_color"); + std::string appbar_background_color = WXCoreEnvironment::getInstance()->GetOption( + "appbar_background_color"); + + std::map *style = new std::map(); + style->insert(std::pair(PADDING_LEFT, "0")); + style->insert(std::pair(PADDING_RIGHT, "0")); + + if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR)) + style->insert(std::pair(COLOR, appbar_color)); + if (!appbar_background_color.empty() && appbar_background_color != "" && + !StyleExist(BACKGROUND_COLOR)) + style->insert(std::pair(BACKGROUND_COLOR, appbar_background_color)); + return style; + } + + bool RenderAppBar::StyleExist(const std::string &key) { + std::string value = GetStyle(key); + return !value.empty() && value != ""; + } + + StyleType RenderAppBar::ApplyStyle(const std::string &key, const std::string &value, + const bool updating) { + if (key == PADDING) { + UpdateStyleInternal(key, + value, + 0, + [=](float foo) { + setPadding(kPaddingLeft, foo + defaultNavWidth), + setPadding(kPaddingRight, foo + defaultOverflowWidth), + setPadding(kPaddingTop, foo), + setPadding(kPaddingBottom, foo); + }); + return kTypePadding; + } else if (key == PADDING_LEFT) { + UpdateStyleInternal(key, + value, + 0, + [=](float foo) { setPadding(kPaddingLeft, foo + defaultNavWidth); }); + return kTypePadding; + } else if (key == PADDING_RIGHT) { + UpdateStyleInternal(key, + value, + 0, + [=](float foo) { + setPadding(kPaddingRight, foo + defaultOverflowWidth); + }); + return kTypePadding; + } else { + return RenderObject::ApplyStyle(key, value, updating); + } + } +} diff --git a/weex_core/Source/core/render/node/render_appbar.h b/weex_core/Source/core/render/node/render_appbar.h index d0c85d369f..7259bbb134 100644 --- a/weex_core/Source/core/render/node/render_appbar.h +++ b/weex_core/Source/core/render/node/render_appbar.h @@ -19,72 +19,28 @@ #ifndef WEEX_PROJECT_RENDERAPPBAR_H #define WEEX_PROJECT_RENDERAPPBAR_H -#include #include -//#include + +#include "core/render/node/render_object.h" namespace WeexCore { class RenderAppBar : public RenderObject { private: - float defaultNavWidth; - float defaultOverflowWidth; - std::map *GetDefaultStyle() { - defaultNavWidth = getFloat(WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); + std::map *GetDefaultStyle(); - defaultOverflowWidth = getFloat(WXCoreEnvironment::getInstance()->GetOption("defaultOverflowWidth").c_str()); + bool StyleExist(const std::string &key); - std::string appbar_color = WXCoreEnvironment::getInstance()->GetOption("appbar_color"); - std::string appbar_background_color = WXCoreEnvironment::getInstance()->GetOption( - "appbar_background_color"); - - std::map *style = new std::map(); - style->insert(std::pair(PADDING_LEFT, "0")); - style->insert(std::pair(PADDING_RIGHT, "0")); + public: - if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR)) - style->insert(std::pair(COLOR, appbar_color)); - if (!appbar_background_color.empty() && appbar_background_color != "" && !StyleExist(BACKGROUND_COLOR)) - style->insert(std::pair(BACKGROUND_COLOR, appbar_background_color)); - return style; - } + StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating); - inline bool StyleExist(const std::string &key) { - std::string value = GetStyle(key); - return !value.empty() && value != ""; - } + private: - public: + float defaultNavWidth; + float defaultOverflowWidth; - StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating) { - if (key == PADDING) { - UpdateStyle(key, - value, - 0, - [=](float foo) { - setPadding(kPaddingLeft, foo + defaultNavWidth), - setPadding(kPaddingRight, foo + defaultOverflowWidth), - setPadding(kPaddingTop, foo), - setPadding(kPaddingBottom, foo); - }); - return kTypePadding; - } else if (key == PADDING_LEFT) { - UpdateStyle(key, - value, - 0, - [=](float foo) { setPadding(kPaddingLeft, foo + defaultNavWidth); }); - return kTypePadding; - } else if (key == PADDING_RIGHT) { - UpdateStyle(key, - value, - 0, - [=](float foo) { setPadding(kPaddingRight, foo + defaultOverflowWidth); }); - return kTypePadding; - } else { - return RenderObject::ApplyStyle(key, value, updating); - } - } }; } diff --git a/weex_core/Source/core/render/node/render_cell.h b/weex_core/Source/core/render/node/render_cell.h index d7e9adc27a..9a2ced6e20 100644 --- a/weex_core/Source/core/render/node/render_cell.h +++ b/weex_core/Source/core/render/node/render_cell.h @@ -19,7 +19,7 @@ #ifndef WEEX_PROJECT_RENDERCELL_H #define WEEX_PROJECT_RENDERCELL_H -#include +#include "core/render/node/render_object.h" namespace WeexCore { class RenderCell : public RenderObject { diff --git a/weex_core/Source/core/render/node/render_indicator.h b/weex_core/Source/core/render/node/render_indicator.h deleted file mode 100644 index 9c3bd00250..0000000000 --- a/weex_core/Source/core/render/node/render_indicator.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERINDICATOR_H -#define WEEX_PROJECT_RENDERINDICATOR_H - -#include - -namespace WeexCore { - class RenderIndicator : public RenderObject { - - }; -} - -#endif //WEEX_PROJECT_RENDERINDICATOR_H diff --git a/weex_core/Source/core/render/node/render_input.h b/weex_core/Source/core/render/node/render_input.h deleted file mode 100644 index ce4a0079ee..0000000000 --- a/weex_core/Source/core/render/node/render_input.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_BASICRENDEREDITTEXT_H -#define WEEX_PROJECT_BASICRENDEREDITTEXT_H - -#include - -namespace WeexCore { - class RenderInput : public RenderObject { - - }; -} - -#endif //WEEX_PROJECT_BASICRENDEREDITTEXT_H diff --git a/weex_core/Source/core/render/node/render_list.cpp b/weex_core/Source/core/render/node/render_list.cpp new file mode 100644 index 0000000000..8c5042ca98 --- /dev/null +++ b/weex_core/Source/core/render/node/render_list.cpp @@ -0,0 +1,319 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#include + +#include "core/render/node/render_list.h" +#include "core/css/constants_name.h" +#include "base/ViewUtils.h" +#include "core/render/node/factory/render_type.h" +#include "core/render/node/render_object.h" +#include "core/render/page/render_page.h" + +namespace WeexCore { + + RenderList::~RenderList() { + if (cellSlotsCopys.size() > 0) { + for (auto it = cellSlotsCopys.begin(); it != cellSlotsCopys.end(); ++it) { + RenderObject *child = *it; + if (child) { + delete child; + child = nullptr; + } + } + cellSlotsCopys.clear(); + } + + if (cellSlots.size() > 0) { + for (auto it = cellSlots.begin(); it != cellSlots.end(); ++it) { + RenderObject *child = *it; + if (child) { + delete child; + child = nullptr; + } + } + cellSlots.clear(); + } + } + + void RenderList::addCellSlotCopyTrack(RenderObject *cellSlot) { + cellSlot->setParent(this, cellSlot); + cellSlotsCopys.push_back(cellSlot); + } + + std::map *RenderList::GetDefaultStyle() { + std::map *style = new std::map(); + + bool isVertical = true; + RenderObject *parent = (RenderObject *) getParent(); + + if (parent != nullptr && !parent->Type().empty()) { + if (parent->Type() == kHList) { + isVertical = false; + } else if (getOrientation() == HORIZONTAL_VALUE) { + isVertical = false; + } + } + + std::string prop = isVertical ? HEIGHT : WIDTH; + + if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { + mIsSetFlex = true; + style->insert(std::pair(FLEX, "1")); + } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { + mIsSetFlex = true; + style->insert(std::pair(FLEX, "1")); + } + + return style; + } + + void RenderList::setFlex(const float flex) { + mIsSetFlex = true; + WXCoreLayoutNode::setFlex(flex); + } + + std::map *RenderList::GetDefaultAttr() { + if (!mIsPreCalculateCellWidth) { + preCalculateCellWidth(); + } + return nullptr; + } + + void RenderList::preCalculateCellWidth() { + std::map *attrs = new std::map(); + if (Attributes() != nullptr) { + mColumnCount = getColumnCount(); + mColumnWidth = getColumnWidth(); + mColumnGap = getColumnGap(); + + mLeftGap = getLeftGap(); + mRightGap = getRightGap(); + + mAvailableWidth = + getStyleWidth() - getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - + getWebPxByWidth(getPaddingRight(), GetRenderPage()->ViewPortWidth()); + + if (AUTO_VALUE == mColumnCount && AUTO_VALUE == mColumnWidth) { + mColumnCount = COLUMN_COUNT_NORMAL; + mColumnWidth = (mAvailableWidth - ((mColumnCount - 1) * mColumnGap)) / mColumnCount; + mColumnWidth = mColumnWidth > 0 ? mColumnWidth : 0; + } else if (AUTO_VALUE == mColumnWidth && AUTO_VALUE != mColumnCount) { + mColumnWidth = + (mAvailableWidth - mLeftGap - mRightGap - ((mColumnCount - 1) * mColumnGap)) / + mColumnCount; + mColumnWidth = mColumnWidth > 0 ? mColumnWidth : 0; + } else if (AUTO_VALUE != mColumnWidth && AUTO_VALUE == mColumnCount) { + mColumnCount = (int) round( + (mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap) - 0.5f); + mColumnCount = mColumnCount > 0 ? mColumnCount : 1; + if (mColumnCount <= 0) { + mColumnCount = COLUMN_COUNT_NORMAL; + } + mColumnWidth = + ((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; + + } else if (AUTO_VALUE != mColumnWidth && AUTO_VALUE != mColumnCount) { + int columnCount = (int) round( + (mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / (mColumnWidth + mColumnGap) - + 0.5f); + mColumnCount = columnCount > mColumnCount ? mColumnCount : columnCount; + if (mColumnCount <= 0) { + mColumnCount = COLUMN_COUNT_NORMAL; + } + mColumnWidth = + ((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; + } + + std::string spanOffsets = calcSpanOffset(); + + mIsPreCalculateCellWidth = true; + if (getColumnCount() > 0 || getColumnWidth() > 0 || mColumnCount > COLUMN_COUNT_NORMAL) { + attrs->insert(std::pair(COLUMN_COUNT, to_string(mColumnCount))); + attrs->insert(std::pair(COLUMN_GAP, to_string(mColumnGap))); + attrs->insert(std::pair(COLUMN_WIDTH, to_string(mColumnWidth))); + } + if (spanOffsets.length() > 0) { + attrs->insert(std::pair(SPAN_OFFSETS, to_string(spanOffsets))); + } + + for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { + RenderObject::UpdateAttr(iter->first, iter->second); + } + } + + RenderPage *page = GetRenderPage(); + + if (page != nullptr) + page->SendUpdateAttrAction(this, attrs); + + if (attrs != nullptr) { + attrs->clear(); + delete attrs; + attrs = nullptr; + } + } + + std::string RenderList::calcSpanOffset() { + std::string spanOffsets; + if (mLeftGap > 0 || mRightGap > 0) { + spanOffsets.append("["); + for (int i = 0; i < mColumnCount; i++) { + float spanOffset = mLeftGap + i * ((mColumnWidth + mColumnGap) - + (mAvailableWidth + mColumnGap) / mColumnCount); + spanOffsets.append(to_string(spanOffset)); + if (i != mColumnCount - 1) { + spanOffsets.append(","); + } + } + spanOffsets.append("]"); + } + return spanOffsets; + } + + float RenderList::getStyleWidth() { + float width = getWebPxByWidth(getLayoutWidth(), GetRenderPage()->ViewPortWidth()); + if (isnan(width) || width <= 0) { + if (getParent() != nullptr) { + width = getWebPxByWidth(getParent()->getLayoutWidth(), GetRenderPage()->ViewPortWidth()); + } + if (isnan(width) || width <= 0) { + width = getWebPxByWidth(RenderObject::getStyleWidth(), GetRenderPage()->ViewPortWidth()); + } + } + if (isnan(width) || width <= 0) { + width = GetViewPortWidth(); + } + return width; + } + + int RenderList::AddRenderObject(int index, RenderObject *child) { + if (Type() == kRenderRecycleList + && (child->Type() == kRenderCellSlot || child->Type() == kRenderCell || + child->Type() == kRenderHeader)) { + child->setParent(this, child); + cellSlots.insert(cellSlots.end(), child); + index = -1; + } else { + index = RenderObject::AddRenderObject(index, child); + } + + if (!mIsPreCalculateCellWidth) { + preCalculateCellWidth(); + } + + if (mColumnWidth != 0 && !isnan(mColumnWidth)) { + AddRenderObjectWidth(child, false); + } + return index; + } + + void RenderList::AddRenderObjectWidth(RenderObject *child, const bool updating) { + if (Type() == kRenderWaterfall || Type() == kRenderRecycleList) { + if (child->Type() == kRenderHeader || child->Type() == kRenderFooter) { + child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); + } else if (child->IsSticky()) { + child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); + } else if (child->Type() == kRenderCell || child->Type() == kRenderCellSlot) { + child->ApplyStyle(WIDTH, to_string(mColumnWidth), updating); + } + } + } + + void RenderList::UpdateAttr(std::string key, std::string value) { + RenderObject::UpdateAttr(key, value); + + if (!GetAttr(COLUMN_COUNT).empty() || !GetAttr(COLUMN_GAP).empty() || + !GetAttr(COLUMN_WIDTH).empty()) { + preCalculateCellWidth(); + + if (mColumnWidth == 0 && isnan(mColumnWidth)) { + return; + } + + int count = getChildCount(); + for (Index i = 0; i < count; i++) { + RenderObject *child = GetChild(i); + AddRenderObjectWidth(this, true); + } + } + } + + float RenderList::getColumnCount() { + std::string columnCount = GetAttr(COLUMN_COUNT); + + if (columnCount.empty() || columnCount == AUTO) { + return AUTO_VALUE; + } + + float columnCountValue = getFloat(columnCount.c_str()); + return (columnCountValue > 0 && !isnan(columnCountValue)) ? columnCountValue : AUTO_VALUE; + } + + float RenderList::getColumnGap() { + std::string columnGap = GetAttr(COLUMN_GAP); + + if (columnGap.empty() || columnGap == NORMAL) { + return COLUMN_GAP_NORMAL; + } + + float columnGapValue = getFloat(columnGap.c_str()); + return (columnGapValue > 0 && !isnan(columnGapValue)) ? columnGapValue : AUTO_VALUE; + } + + float RenderList::getColumnWidth() { + std::string columnWidth = GetAttr(COLUMN_WIDTH); + + if (columnWidth.empty() || columnWidth == AUTO) { + return AUTO_VALUE; + } + + float columnWidthValue = getFloat(columnWidth.c_str()); + return (columnWidthValue > 0 && !isnan(columnWidthValue)) ? columnWidthValue : 0; + } + + float RenderList::getLeftGap() { + std::string leftGap = GetAttr(LEFT_GAP); + + if (leftGap.empty() || leftGap == AUTO) { + return 0; + } + + float leftGapValue = getFloat(leftGap.c_str()); + return (leftGapValue > 0 && !isnan(leftGapValue)) ? leftGapValue : 0; + } + + float RenderList::getRightGap() { + std::string rightGap = GetAttr(RIGHT_GAP); + + if (rightGap.empty() || rightGap == AUTO) { + return 0; + } + + float rightGapValue = getFloat(rightGap.c_str()); + return (rightGapValue > 0 && !isnan(rightGapValue)) ? rightGapValue : 0; + } + + int RenderList::getOrientation() { + std::string direction = GetAttr(SCROLL_DIRECTION); + if (HORIZONTAL == direction) { + return HORIZONTAL_VALUE; + } + return VERTICAL_VALUE; + } +} diff --git a/weex_core/Source/core/render/node/render_list.h b/weex_core/Source/core/render/node/render_list.h index 738e4ea34b..16d09dc4c8 100644 --- a/weex_core/Source/core/render/node/render_list.h +++ b/weex_core/Source/core/render/node/render_list.h @@ -19,320 +19,69 @@ #ifndef WEEX_PROJECT_RENDERLIST_H #define WEEX_PROJECT_RENDERLIST_H -#include -#include -#include -#include -#include -#include -#include "render_object.h" +#include "core/render/node/render_object.h" +#include "core/css/constants_value.h" namespace WeexCore { class RenderList : public RenderObject { - bool mIsPreCalculateCellWidth = false; - int mColumnCount = COLUMN_COUNT_NORMAL; - float mColumnWidth = AUTO_VALUE; - float mAvailableWidth = 0; - float mColumnGap = COLUMN_GAP_NORMAL; - bool mIsSetFlex = false; - std::vector cellSlots; - std::vector cellSlotsCopys; - float mLeftGap = 0; - float mRightGap = 0; - public: - ~RenderList(){ - - if(cellSlotsCopys.size() > 0){ - for(auto it = cellSlotsCopys.begin(); it != cellSlotsCopys.end(); ++it){ - RenderObject* child = *it; - if(child){ - delete child; - child = nullptr; - } - } - cellSlotsCopys.clear(); - } - if(cellSlots.size() > 0){ - for(auto it = cellSlots.begin(); it != cellSlots.end(); ++it){ - RenderObject* child = *it; - if(child){ - delete child; - child = nullptr; - } - } - cellSlots.clear(); - } - } - - public: - void addCellSlotCopyTrack(RenderObject* cellSlot){ - cellSlot->setParent(this, cellSlot); - cellSlotsCopys.push_back(cellSlot); - } - - std::vector &CellSlots(){ - return cellSlots; - } - - std::map *GetDefaultStyle() { - std::map *style = new std::map(); + ~RenderList(); - bool isVertical = true; - RenderObject *parent = (RenderObject *) getParent(); + void addCellSlotCopyTrack(RenderObject *cellSlot); - if (parent != nullptr && !parent->Type().empty()) { - if (parent->Type() == kHList) { - isVertical = false; - } else if (getOrientation() == HORIZONTAL_VALUE) { - isVertical = false; - } - } + void setFlex(const float flex); - std::string prop = isVertical ? HEIGHT : WIDTH; + std::map *GetDefaultStyle(); - if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { - mIsSetFlex = true; - style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { - mIsSetFlex = true; - style->insert(std::pair(FLEX, "1")); - } + std::map *GetDefaultAttr(); - return style; - } + void preCalculateCellWidth(); - inline void setFlex(const float flex) { - mIsSetFlex = true; - WXCoreLayoutNode::setFlex(flex); - } + std::string calcSpanOffset(); - float calcFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤tLength) const override { - return NAN; - } + float getStyleWidth(); - std::map *GetDefaultAttr() { - if (!mIsPreCalculateCellWidth) { - preCalculateCellWidth(); - } - return nullptr; - } + int AddRenderObject(int index, RenderObject *child); + void AddRenderObjectWidth(RenderObject *child, const bool updating); - inline void preCalculateCellWidth() { - std::map *attrs = new std::map(); - if (Attributes() != nullptr) { - mColumnCount = getColumnCount(); - mColumnWidth = getColumnWidth(); - mColumnGap = getColumnGap(); + void UpdateAttr(std::string key, std::string value); - mLeftGap = getLeftGap(); - mRightGap = getRightGap(); + float getColumnCount(); - mAvailableWidth = getStyleWidth()- getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - getWebPxByWidth(getPaddingRight(), GetRenderPage()->ViewPortWidth()); + float getColumnGap(); - if (AUTO_VALUE == mColumnCount && AUTO_VALUE == mColumnWidth) { - mColumnCount = COLUMN_COUNT_NORMAL; - mColumnWidth = (mAvailableWidth - ((mColumnCount - 1) * mColumnGap)) / mColumnCount; - mColumnWidth = mColumnWidth > 0 ? mColumnWidth :0; - } else if (AUTO_VALUE == mColumnWidth && AUTO_VALUE != mColumnCount) { - mColumnWidth = (mAvailableWidth - mLeftGap - mRightGap - ((mColumnCount - 1) * mColumnGap)) / mColumnCount; - mColumnWidth = mColumnWidth > 0 ? mColumnWidth :0; - } else if (AUTO_VALUE != mColumnWidth && AUTO_VALUE == mColumnCount) { - mColumnCount = (int)round((mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap)-0.5f); - mColumnCount = mColumnCount > 0 ? mColumnCount :1; - if (mColumnCount <= 0) { - mColumnCount = COLUMN_COUNT_NORMAL; - } - mColumnWidth =((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; + float getColumnWidth(); - } else if(AUTO_VALUE != mColumnWidth && AUTO_VALUE != mColumnCount) { - int columnCount = (int)round((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / (mColumnWidth + mColumnGap)-0.5f); - mColumnCount = columnCount > mColumnCount ? mColumnCount :columnCount; - if (mColumnCount <= 0) { - mColumnCount = COLUMN_COUNT_NORMAL; - } - mColumnWidth= ((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; - } + float getLeftGap(); - std::string spanOffsets = calcSpanOffset(); + float getRightGap(); - mIsPreCalculateCellWidth = true; - if (getColumnCount() > 0 || getColumnWidth() > 0 || mColumnCount > COLUMN_COUNT_NORMAL) { - attrs->insert(std::pair(COLUMN_COUNT, to_string(mColumnCount))); - attrs->insert(std::pair(COLUMN_GAP, to_string(mColumnGap))); - attrs->insert(std::pair(COLUMN_WIDTH, to_string(mColumnWidth))); - } - if (spanOffsets.length() > 0) { - attrs->insert(std::pair(SPAN_OFFSETS, to_string(spanOffsets))); - } + int getOrientation(); - for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - RenderObject::UpdateAttr(iter->first, iter->second); - } - } - - RenderPage *page = GetRenderPage(); - - if (page != nullptr) - page->SendUpdateAttrAction(this, attrs); - - if (attrs != nullptr) { - attrs->clear(); - delete attrs; - attrs = nullptr; - } - } - - std::string calcSpanOffset() { - std::string spanOffsets; - if (mLeftGap > 0 || mRightGap > 0) { - spanOffsets.append("["); - for (int i = 0; i < mColumnCount; i++) { - float spanOffset = mLeftGap + i * ((mColumnWidth + mColumnGap) - (mAvailableWidth + mColumnGap) / mColumnCount); - spanOffsets.append(to_string(spanOffset)); - if(i != mColumnCount - 1) { - spanOffsets.append(","); - } - } - spanOffsets.append("]"); - } - return spanOffsets; - } - - float getStyleWidth() { - float width = getWebPxByWidth(getLayoutWidth(), GetRenderPage()->ViewPortWidth()); - if (isnan(width) || width <= 0){ - if(getParent() != nullptr){ - width = getWebPxByWidth(getParent()->getLayoutWidth(), GetRenderPage()->ViewPortWidth()); - } - if (isnan(width) || width <= 0){ - width = getWebPxByWidth(RenderObject::getStyleWidth(), GetRenderPage()->ViewPortWidth()); - } - } - if (isnan(width) || width <= 0){ - width = GetViewPortWidth(); - } - return width; - } - - - int AddRenderObject(int index, RenderObject *child) { - if(Type() == kRenderRecycleList - && (child->Type() == kRenderCellSlot || child->Type() == kRenderCell || child->Type() == kRenderHeader)){ - child->setParent(this, child); - cellSlots.insert(cellSlots.end(), child); - index = -1; - }else{ - index = RenderObject::AddRenderObject(index, child); - } - - if (!mIsPreCalculateCellWidth) { - preCalculateCellWidth(); - } - - if(mColumnWidth != 0 && !isnan(mColumnWidth)) { - AddRenderObjectWidth(child, false); - } - return index; - } - - void AddRenderObjectWidth(RenderObject *child, const bool updating) { - if (Type() == kRenderWaterfall || Type() == kRenderRecycleList) { - if(child->Type() == kRenderHeader || child->Type() == kRenderFooter) { - child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); - } else if (child->IsSticky()) { - child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); - } else if (child->Type() == kRenderCell || child->Type() == kRenderCellSlot){ - child->ApplyStyle(WIDTH, to_string(mColumnWidth), updating); - } - } - } - - void UpdateAttr(std::string key, std::string value) { - RenderObject::UpdateAttr(key, value); - - if(!GetAttr(COLUMN_COUNT).empty() || !GetAttr(COLUMN_GAP).empty() || !GetAttr(COLUMN_WIDTH).empty()){ - preCalculateCellWidth(); - - if(mColumnWidth == 0 && isnan(mColumnWidth)) { - return; - } - - int count = getChildCount(); - for (Index i = 0; i < count; i++) { - RenderObject *child = GetChild(i); - AddRenderObjectWidth(this, true); - } - } - } - - float getColumnCount() { - std::string columnCount = GetAttr(COLUMN_COUNT); - - if (columnCount.empty() || columnCount == AUTO) { - return AUTO_VALUE; - } - - float columnCountValue = getFloat(columnCount.c_str()); - return (columnCountValue > 0 && !isnan(columnCountValue)) ? columnCountValue : AUTO_VALUE; - } - - float getColumnGap() { - std::string columnGap = GetAttr(COLUMN_GAP); - - if (columnGap.empty() || columnGap == NORMAL) { - return COLUMN_GAP_NORMAL; - } - - float columnGapValue = getFloat(columnGap.c_str()); - return (columnGapValue > 0 && !isnan(columnGapValue)) ? columnGapValue : AUTO_VALUE; + inline float calcFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤tLength) const override { + return NAN; } - float getColumnWidth() { - std::string columnWidth = GetAttr(COLUMN_WIDTH); - - if (columnWidth.empty() || columnWidth == AUTO) { - return AUTO_VALUE; - } - - float columnWidthValue = getFloat(columnWidth.c_str()); - return (columnWidthValue > 0 && !isnan(columnWidthValue)) ? columnWidthValue : 0; + inline std::vector &CellSlots() { + return cellSlots; } - float getLeftGap() { - std::string leftGap = GetAttr(LEFT_GAP); - - if (leftGap.empty() || leftGap == AUTO) { - return 0; - } - - float leftGapValue = getFloat(leftGap.c_str()); - return (leftGapValue > 0 && !isnan(leftGapValue)) ? leftGapValue : 0; - } - - float getRightGap() { - std::string rightGap = GetAttr(RIGHT_GAP); - - if (rightGap.empty() || rightGap == AUTO) { - return 0; - } - - float rightGapValue = getFloat(rightGap.c_str()); - return (rightGapValue > 0 && !isnan(rightGapValue)) ? rightGapValue : 0; - } - - int getOrientation(){ - std::string direction = GetAttr(SCROLL_DIRECTION); - if(HORIZONTAL == direction){ - return HORIZONTAL_VALUE; - } - return VERTICAL_VALUE; - } + private: + bool mIsPreCalculateCellWidth = false; + int mColumnCount = COLUMN_COUNT_NORMAL; + float mColumnWidth = AUTO_VALUE; + float mAvailableWidth = 0; + float mColumnGap = COLUMN_GAP_NORMAL; + bool mIsSetFlex = false; + std::vector cellSlots; + std::vector cellSlotsCopys; + float mLeftGap = 0; + float mRightGap = 0; }; } diff --git a/weex_core/Source/core/render/node/render_mask.cpp b/weex_core/Source/core/render/node/render_mask.cpp new file mode 100644 index 0000000000..76965a4f60 --- /dev/null +++ b/weex_core/Source/core/render/node/render_mask.cpp @@ -0,0 +1,54 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +#include + +#include "core/render/node/render_mask.h" +#include "core/config/core_environment.h" +#include "core/css/constants_name.h" +#include "base/ViewUtils.h" + +namespace WeexCore { + + std::map *RenderMask::GetDefaultStyle() { + std::map *style = new std::map(); + + int width = WXCoreEnvironment::getInstance()->DeviceWidth(); + int height = WXCoreEnvironment::getInstance()->DeviceHeight(); + + if (WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels") != "" && + WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels") != "") { + width = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels").c_str()); + height = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels").c_str()); + } + + if (WXCoreEnvironment::getInstance()->GetOption("status_bar_height") != "") { + int statusBarHeight = atoi( + WXCoreEnvironment::getInstance()->GetOption("status_bar_height").c_str()); + height -= statusBarHeight; + } + + style->insert(std::pair(POSITION, "absolute")); + style->insert(std::pair(WIDTH, to_string( + getWebPxByWidth(width, GetViewPortWidth())))); + style->insert(std::pair(HEIGHT, to_string( + getWebPxByWidth(height, GetViewPortWidth())))); + style->insert(std::pair(TOP, "0")); + return style; + } +} diff --git a/weex_core/Source/core/render/node/render_mask.h b/weex_core/Source/core/render/node/render_mask.h index 568e7596e8..eb6d4a6923 100644 --- a/weex_core/Source/core/render/node/render_mask.h +++ b/weex_core/Source/core/render/node/render_mask.h @@ -19,36 +19,16 @@ #ifndef WEEX_PROJECT_RENDERMASK_H #define WEEX_PROJECT_RENDERMASK_H -#include -#include -#include -#include +#include "core/render/node/render_object.h" namespace WeexCore { - class RenderMask : public RenderObject { - std::map *GetDefaultStyle() { - std::map *style = new std::map(); - int width = WXCoreEnvironment::getInstance()->DeviceWidth(); - int height = WXCoreEnvironment::getInstance()->DeviceHeight(); + class RenderMask : public RenderObject { - if (WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels") != "" && - WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels") != "") { - width = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels").c_str()); - height = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels").c_str()); - } + public: - if (WXCoreEnvironment::getInstance()->GetOption("status_bar_height") != "") { - int statusBarHeight = atoi(WXCoreEnvironment::getInstance()->GetOption("status_bar_height").c_str()); - height -= statusBarHeight; - } + std::map *GetDefaultStyle(); - style->insert(std::pair(POSITION, "absolute")); - style->insert(std::pair(WIDTH, to_string(getWebPxByWidth(width, GetViewPortWidth())))); - style->insert(std::pair(HEIGHT, to_string(getWebPxByWidth(height, GetViewPortWidth())))); - style->insert(std::pair(TOP, "0")); - return style; - } }; } #endif //WEEX_PROJECT_RENDERMASK_H diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp index 4811ebceff..04cc24a86d 100644 --- a/weex_core/Source/core/render/node/render_object.cpp +++ b/weex_core/Source/core/render/node/render_object.cpp @@ -16,16 +16,22 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include +#include "core/render/node/render_object.h" +#include "core/manager/weex_core_manager.h" +#include "core/css/constants_name.h" +#include "core/css/constants_value.h" +#include "core/css/css_value_getter.h" +#include "core/layout/layout.h" +#include "core/render/manager/render_manager.h" +#include "core/render/page/render_page.h" +#include "base/ViewUtils.h" -using namespace std; namespace WeexCore { RenderObject::RenderObject() { - mStyles = new StylesMap(); - mAttributes = new AttributesMap(); - mEvents = new EventsSet(); + mStyles = new std::map(); + mAttributes = new std::map(); + mEvents = new std::set(); mIsRootRender = false; } @@ -37,17 +43,19 @@ namespace WeexCore { delete mStyles; mStyles = nullptr; } + if (mAttributes != nullptr) { delete mAttributes; mAttributes = nullptr; } + if (mEvents != nullptr) { delete mEvents; mEvents = nullptr; } - for(auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); if (child != nullptr) { delete child; child = nullptr; @@ -77,7 +85,7 @@ namespace WeexCore { return; for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - UpdateAttr(iter->first, iter->second); + UpdateAttr(iter->first, iter->second); } if (attrs != nullptr) { @@ -95,11 +103,14 @@ namespace WeexCore { if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) return size; - return WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->Measure(node, width, widthMeasureMode, height, heightMeasureMode); + return WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->Measure(node, width, + widthMeasureMode, + height, + heightMeasureMode); } void RenderObject::BindMeasureFunc() { - setMeasureFunc(measureFunc_Impl); + setMeasureFunc(measureFunc_Impl); } void RenderObject::onLayoutBefore() { @@ -113,4 +124,294 @@ namespace WeexCore { return; WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutAfter(this, width, height); } + + StyleType + RenderObject::ApplyStyle(const std::string &key, const std::string &value, const bool updating) { + bool insert = false; + if (value.length() > 0 && + (value.at(0) == JSON_OBJECT_MARK_CHAR || value.at(0) == JSON_ARRAY_MARK_CHAR)) { + mapInsertOrAssign(mStyles, key, value); + insert = true; + } + + if (key == ALIGN_ITEMS) { + setAlignItems(GetWXCoreAlignItem(value)); + return kTypeLayout; + } else if (key == ALIGN_SELF) { + setAlignSelf(GetWXCoreAlignSelf(value)); + return kTypeLayout; + } else if (key == FLEX) { + if (value.empty()) { + setFlex(0); + } else { + float ret = getFloat(value.c_str()); + if (!isnan(ret)) { + setFlex(ret); + } + } + return kTypeLayout; + } else if (key == FLEX_DIRECTION) { + setFlexDirection(GetWXCoreFlexDirection(value), updating); + return kTypeLayout; + } else if (key == JUSTIFY_CONTENT) { + setJustifyContent(GetWXCoreJustifyContent(value)); + return kTypeLayout; + } else if (key == FLEX_WRAP) { + setFlexWrap(GetWXCoreFlexWrap(value)); + return kTypeLayout; + } else if (key == MIN_WIDTH) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMinWidth(foo, updating); }); + return kTypeLayout; + } else if (key == MIN_HEIGHT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMinHeight(foo); }); + return kTypeLayout; + } else if (key == MAX_WIDTH) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMaxWidth(foo, updating); }); + return kTypeLayout; + } else if (key == MAX_HEIGHT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMaxHeight(foo); }); + return kTypeLayout; + } else if (key == HEIGHT) { + if (UpdateStyleInternal(key, value, NAN, [=](float foo) { setStyleHeight(foo); })) { + setStyleHeightLevel(CSS_STYLE); + } + return kTypeLayout; + } else if (key == WIDTH) { + if (UpdateStyleInternal(key, value, NAN, [=](float foo) { setStyleWidth(foo, updating); })) { + setStyleWidthLevel(CSS_STYLE); + } + return kTypeLayout; + } else if (key == POSITION) { + setStylePositionType(GetWXCorePositionType(value)); + if (value == STICKY) { + mIsSticky = true; + } + mapInsertOrAssign(mStyles, key, value); + return kTypeStyle; + } else if (key == LEFT) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStylePosition(kPositionEdgeLeft, foo); }); + return kTypeLayout; + } else if (key == TOP) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStylePosition(kPositionEdgeTop, foo); }); + return kTypeLayout; + } else if (key == RIGHT) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStylePosition(kPositionEdgeRight, foo); }); + return kTypeLayout; + } else if (key == BOTTOM) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStylePosition(kPositionEdgeBottom, foo); }); + return kTypeLayout; + } else if (key == MARGIN) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginALL, foo); }); + return kTypeMargin; + } else if (key == MARGIN_LEFT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginLeft, foo); }); + return kTypeMargin; + } else if (key == MARGIN_TOP) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginTop, foo); }); + return kTypeMargin; + } else if (key == MARGIN_RIGHT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginRight, foo); }); + return kTypeMargin; + } else if (key == MARGIN_BOTTOM) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginBottom, foo); }); + return kTypeMargin; + } else if (key == BORDER_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthALL, foo); }); + return kTypeBorder; + } else if (key == BORDER_TOP_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthTop, foo); }); + return kTypeBorder; + } else if (key == BORDER_RIGHT_WIDTH) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setBorderWidth(kBorderWidthRight, foo); }); + return kTypeBorder; + } else if (key == BORDER_BOTTOM_WIDTH) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setBorderWidth(kBorderWidthBottom, foo); }); + return kTypeBorder; + } else if (key == BORDER_LEFT_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthLeft, foo); }); + return kTypeBorder; + } else if (key == PADDING) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingALL, foo); }); + return kTypePadding; + } else if (key == PADDING_LEFT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingLeft, foo); }); + return kTypePadding; + } else if (key == PADDING_TOP) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingTop, foo); }); + return kTypePadding; + } else if (key == PADDING_RIGHT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingRight, foo); }); + return kTypePadding; + } else if (key == PADDING_BOTTOM) { + UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingBottom, foo); }); + return kTypePadding; + } else { + if (!insert) { + mapInsertOrAssign(mStyles, key, value); + } + return kTypeStyle; + } + } + + const std::string RenderObject::GetStyle(const std::string &key) { + if (mStyles == nullptr) + return ""; + + std::map::iterator iter = mStyles->find(key); + if (iter != mStyles->end()) { + return iter->second; + } else { + return ""; + } + } + + const std::string RenderObject::GetAttr(const std::string &key) { + if (mAttributes == nullptr) + return ""; + + std::map::iterator iter = mAttributes->find(key); + if (iter != mAttributes->end()) { + return iter->second; + } else { + return ""; + } + } + + float RenderObject::GetViewPortWidth() { + if (mViewPortWidth >= 0) + return mViewPortWidth; + + RenderPage *page = GetRenderPage(); + if (page == nullptr) + return kDefaultViewPortWidth; + + return page->ViewPortWidth(); + } + + int RenderObject::AddRenderObject(int index, RenderObject *child) { + if (child == nullptr || index < -1) { + return index; + } + + Index count = getChildCount(); + index = index >= count ? -1 : index; + if (index == -1) { + addChildAt(child, getChildCount()); + } else { + addChildAt(child, index); + } + + child->SetParentRender(this); + + return index; + } + + Index RenderObject::IndexOf(const RenderObject *render) { + if (render == nullptr) { + return -1; + } else { + int i = 0; + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + if (render->Ref() == child->Ref()) + return i; + } + ++i; + } + } + return -1; + } + + bool RenderObject::UpdateStyleInternal(const std::string key, const std::string value, + float fallback, + std::function functor) { + bool ret = false; + if (value.empty()) { + functor(fallback); + ret = true; + } else { + float fvalue = getFloatByViewport(value, GetViewPortWidth()); + if (!isnan(fvalue)) { + functor(fvalue); + ret = true; + } + } + return ret; + } + + void RenderObject::LayoutBefore() { + if (isDirty()) { + onLayoutBefore(); + } + + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + child->LayoutBefore(); + } + } + } + + void RenderObject::LayoutAfter() { + if (hasNewLayout()) { + onLayoutAfter(getLayoutWidth(), getLayoutHeight()); + } + + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + child->LayoutAfter(); + } + } + } + + void RenderObject::copyFrom(RenderObject *src) { + IRenderObject::copyFrom(src); + this->mStyles->insert(src->mStyles->begin(), src->mStyles->end()); + this->mAttributes->insert(src->mAttributes->begin(), src->mAttributes->end()); + this->mEvents->insert(src->mEvents->begin(), src->mEvents->end()); + } + + void RenderObject::mapInsertOrAssign(std::map *targetMap, + const std::string &key, const std::string &value) { + std::map::iterator it = targetMap->find(key); + if (it != targetMap->end()) { + it->second = value; + } else { + targetMap->insert({key, value}); + } + } + + bool RenderObject::ViewInit() { + return (!isnan(getStyleWidth()) && getStyleWidth() > 0) || + (IsRootRender() && GetRenderPage() != nullptr && + GetRenderPage()->GetRenderContainerWidthWrapContent()); + } + + RenderPage *RenderObject::GetRenderPage() { + return RenderManager::GetInstance()->GetPage(PageId()); + } + + bool RenderObject::IsAppendTree() { + std::string append = GetAttr(APPEND); + if (append == "tree") { + return true; + } + return false; + } + + void RenderObject::UpdateAttr(std::string key, std::string value) { + mapInsertOrAssign(mAttributes, key, value); + } + + StyleType RenderObject::UpdateStyle(std::string key, std::string value) { + return ApplyStyle(key, value, true); + } } //end WeexCore diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 062a4c37f1..ea943c3a04 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -22,16 +22,9 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include "core/render/node/factory/i_render_object.h" #define JSON_OBJECT_MARK_CHAR '{' #define JSON_ARRAY_MARK_CHAR '[' @@ -50,48 +43,21 @@ namespace WeexCore { kTypeStyle, kTypeLayout, kTypeMargin, kTypePadding, kTypeBorder } StyleType; - typedef std::map::const_iterator StylesIterator; - typedef std::map::const_iterator AttributesIterator; - typedef std::set::const_iterator EventsIterator; - typedef std::map StylesMap; - typedef std::map AttributesMap; - typedef std::set EventsSet; - class RenderObject : public IRenderObject { friend class RenderPage; public: - inline void LayoutBefore() { - if (isDirty()) { - onLayoutBefore(); - } - for(auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - child->LayoutBefore(); - } - } - } + void LayoutBefore(); - inline void LayoutAfter() { - if (hasNewLayout()) { - onLayoutAfter(getLayoutWidth(), getLayoutHeight()); - } + void LayoutAfter(); - for(auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - child->LayoutAfter(); - } - } - } + void copyFrom(RenderObject* src); - inline bool ViewInit() { - return (!isnan(getStyleWidth()) && getStyleWidth() > 0) || - (IsRootRender() && GetRenderPage() != nullptr && GetRenderPage()->GetRenderContainerWidthWrapContent()); - } + void mapInsertOrAssign(std::map *targetMap, const std::string& key, const std::string& value); + + bool ViewInit(); virtual std::map *GetDefaultStyle() { return nullptr; @@ -101,38 +67,10 @@ namespace WeexCore { return nullptr; } - void copyFrom(RenderObject* src){ - IRenderObject::copyFrom(src); - this->mStyles->insert(src->mStyles->begin(), src->mStyles->end()); - this->mAttributes->insert(src->mAttributes->begin(), src->mAttributes->end()); - this->mEvents->insert(src->mEvents->begin(), src->mEvents->end()); - } - - inline void mapInsertOrAssign(std::map *targetMap, const std::string& key, const std::string& value) { - std::map::iterator it = targetMap->find(key); - if(it != targetMap->end()){ - it->second = value; - }else{ - targetMap->insert({key, value}); - } - } + protected: - protected: - bool UpdateStyle(const std::string key, const std::string value, - float fallback, std::function functor){ - bool ret = false; - if (value.empty()) { - functor(fallback); - ret = true; - } else { - float fvalue = getFloatByViewport(value, GetViewPortWidth()); - if (!isnan(fvalue)) { - functor(fvalue); - ret = true; - } - } - return ret; - } + bool UpdateStyleInternal(const std::string key, const std::string value, float fallback, + std::function functor); public: @@ -146,174 +84,32 @@ namespace WeexCore { void onLayoutAfter(float width, float height); - virtual StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating) { - bool insert = false; - if(value.length() > 0 && (value.at(0) == JSON_OBJECT_MARK_CHAR || value.at(0) == JSON_ARRAY_MARK_CHAR)){ - mapInsertOrAssign(mStyles, key, value); - insert = true; - } - - if (key == ALIGN_ITEMS) { - setAlignItems(GetWXCoreAlignItem(value)); - return kTypeLayout; - } else if (key == ALIGN_SELF) { - setAlignSelf(GetWXCoreAlignSelf(value)); - return kTypeLayout; - } else if (key == FLEX) { - if (value.empty()) { - setFlex(0); - } else { - float ret = getFloat(value.c_str()); - if (!isnan(ret)) { - setFlex(ret); - } - } - return kTypeLayout; - } else if (key == FLEX_DIRECTION) { - setFlexDirection(GetWXCoreFlexDirection(value), updating); - return kTypeLayout; - } else if (key == JUSTIFY_CONTENT) { - setJustifyContent(GetWXCoreJustifyContent(value)); - return kTypeLayout; - } else if (key == FLEX_WRAP) { - setFlexWrap(GetWXCoreFlexWrap(value)); - return kTypeLayout; - } else if (key == MIN_WIDTH) { - UpdateStyle(key, value, NAN, [=](float foo){setMinWidth(foo, updating);}); - return kTypeLayout; - } else if (key == MIN_HEIGHT) { - UpdateStyle(key, value, NAN, [=](float foo){setMinHeight(foo);}); - return kTypeLayout; - } else if (key == MAX_WIDTH) { - UpdateStyle(key, value, NAN, [=](float foo){setMaxWidth(foo, updating);}); - return kTypeLayout; - } else if (key == MAX_HEIGHT) { - UpdateStyle(key, value, NAN, [=](float foo){setMaxHeight(foo);}); - return kTypeLayout; - } else if (key == HEIGHT) { - if(UpdateStyle(key, value, NAN, [=](float foo){setStyleHeight(foo);})){ - setStyleHeightLevel(CSS_STYLE); - } - return kTypeLayout; - } else if (key == WIDTH) { - if(UpdateStyle(key, value, NAN, [=](float foo){setStyleWidth(foo, updating);})){ - setStyleWidthLevel(CSS_STYLE); - } - return kTypeLayout; - } else if (key == POSITION) { - setStylePositionType(GetWXCorePositionType(value)); - if (value == STICKY) { - mIsSticky = true; - } - mapInsertOrAssign(mStyles, key, value); - return kTypeStyle; - } else if (key == LEFT) { - UpdateStyle(key, value, NAN, [=](float foo){setStylePosition(kPositionEdgeLeft, foo);}); - return kTypeLayout; - } else if (key == TOP) { - UpdateStyle(key, value, NAN, [=](float foo){setStylePosition(kPositionEdgeTop, foo);}); - return kTypeLayout; - } else if (key == RIGHT) { - UpdateStyle(key, value, NAN, [=](float foo){setStylePosition(kPositionEdgeRight, foo);}); - return kTypeLayout; - } else if (key == BOTTOM) { - UpdateStyle(key, value, NAN, [=](float foo){setStylePosition(kPositionEdgeBottom, foo);}); - return kTypeLayout; - } else if (key == MARGIN) { - UpdateStyle(key, value, 0, [=](float foo){setMargin(kMarginALL, foo);}); - return kTypeMargin; - } else if (key == MARGIN_LEFT) { - UpdateStyle(key, value, 0, [=](float foo){setMargin(kMarginLeft, foo);}); - return kTypeMargin; - } else if (key == MARGIN_TOP) { - UpdateStyle(key, value, 0, [=](float foo){setMargin(kMarginTop, foo);}); - return kTypeMargin; - } else if (key == MARGIN_RIGHT) { - UpdateStyle(key, value, 0, [=](float foo){setMargin(kMarginRight, foo);}); - return kTypeMargin; - } else if (key == MARGIN_BOTTOM) { - UpdateStyle(key, value, 0, [=](float foo){setMargin(kMarginBottom, foo);}); - return kTypeMargin; - } else if (key == BORDER_WIDTH) { - UpdateStyle(key, value, 0, [=](float foo){setBorderWidth(kBorderWidthALL, foo);}); - return kTypeBorder; - } else if (key == BORDER_TOP_WIDTH) { - UpdateStyle(key, value, 0, [=](float foo){setBorderWidth(kBorderWidthTop, foo);}); - return kTypeBorder; - } else if (key == BORDER_RIGHT_WIDTH) { - UpdateStyle(key, value, 0, [=](float foo){setBorderWidth(kBorderWidthRight, foo);}); - return kTypeBorder; - } else if (key == BORDER_BOTTOM_WIDTH) { - UpdateStyle(key, value, 0, [=](float foo){setBorderWidth(kBorderWidthBottom, foo);}); - return kTypeBorder; - } else if (key == BORDER_LEFT_WIDTH) { - UpdateStyle(key, value, 0, [=](float foo){setBorderWidth(kBorderWidthLeft, foo);}); - return kTypeBorder; - } else if (key == PADDING) { - UpdateStyle(key, value, 0, [=](float foo){setPadding(kPaddingALL, foo);}); - return kTypePadding; - } else if (key == PADDING_LEFT) { - UpdateStyle(key, value, 0, [=](float foo){setPadding(kPaddingLeft, foo);}); - return kTypePadding; - } else if (key == PADDING_TOP) { - UpdateStyle(key, value, 0, [=](float foo){setPadding(kPaddingTop, foo);}); - return kTypePadding; - } else if (key == PADDING_RIGHT) { - UpdateStyle(key, value, 0, [=](float foo){setPadding(kPaddingRight, foo);}); - return kTypePadding; - } else if (key == PADDING_BOTTOM) { - UpdateStyle(key, value, 0, [=](float foo){setPadding(kPaddingBottom, foo);}); - return kTypePadding; - } else { - if(!insert){ - mapInsertOrAssign(mStyles, key, value); - } - return kTypeStyle; - } - } + virtual StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating); void ApplyDefaultStyle(); void ApplyDefaultAttr(); - inline RenderObject *GetChild(const Index &index) { - return static_cast(getChildAt(index)); - } + Index IndexOf(const RenderObject *render); - inline Index IndexOf(const RenderObject *render) { - if (render == nullptr) { - return -1; - } else { - int i = 0; - for(auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - if (render->Ref() == child->Ref()) - return i; - } - ++i; - } - } - return -1; - } + virtual int AddRenderObject(int index, RenderObject *child); - virtual int AddRenderObject(int index, RenderObject *child) { + float GetViewPortWidth(); - if (child == nullptr || index < -1) { - return index; - } + const std::string GetAttr(const std::string &key); - Index count = getChildCount(); - index = index >= count ? -1 : index; - if (index == -1) { - addChildAt(child, getChildCount()); - } else { - addChildAt(child, index); - } + const std::string GetStyle(const std::string &key); + + RenderPage *GetRenderPage(); + + virtual void UpdateAttr(std::string key, std::string value); + + virtual StyleType UpdateStyle(std::string key, std::string value); - child->SetParentRender(this); + bool IsAppendTree(); - return index; + inline RenderObject *GetChild(const Index &index) { + return static_cast(getChildAt(index)); } inline void RemoveRenderObject(RenderObject *child) { @@ -324,21 +120,13 @@ namespace WeexCore { mapInsertOrAssign(mAttributes, key, value); } - virtual void UpdateAttr(std::string key, std::string value) { - mapInsertOrAssign(mAttributes, key, value); - } - - virtual StyleType UpdateStyle(std::string key, std::string value) { - return ApplyStyle(key, value, true); - } - inline StyleType AddStyle(std::string key, std::string value) { return ApplyStyle(key, value, false); } inline void AddEvent(std::string event) { if (mEvents == nullptr || mEvents->empty()) { - mEvents = new EventsSet(); + mEvents = new std::set(); } mEvents->insert(event); } @@ -347,21 +135,6 @@ namespace WeexCore { mEvents->erase(event); } - inline RenderPage *GetRenderPage() { - return RenderManager::GetInstance()->GetPage(PageId()); - } - - inline float GetViewPortWidth() { - if (mViewPortWidth >= 0) - return mViewPortWidth; - - RenderPage *page = GetRenderPage(); - if (page == nullptr) - return kDefaultViewPortWidth; - - return page->ViewPortWidth(); - } - inline void SetParentRender(RenderObject *render) { mParentRender = render; } @@ -370,66 +143,18 @@ namespace WeexCore { return mParentRender; } - inline StylesMap *Styles() const { + inline std::map *Styles() const { return mStyles; } - inline AttributesMap * Attributes() const { + inline std::map * Attributes() const { return mAttributes; } - inline EventsSet *Events() const { + inline std::set *Events() const { return mEvents; } - inline StylesIterator StyleItBegin() { - return mStyles->begin(); - } - - inline StylesIterator StyleItEnd() { - return mStyles->end(); - } - - inline AttributesIterator AttrItBegin() { - return mAttributes->begin(); - } - - inline AttributesIterator AttrItEnd() { - return mAttributes->end(); - } - - inline EventsIterator EventItBegin() { - return mEvents->begin(); - } - - inline EventsIterator EventItEnd() { - return mEvents->end(); - } - - inline const std::string GetAttr(const std::string &key) { - if (mAttributes == nullptr) - return ""; - - std::map::iterator iter = mAttributes->find(key); - if (iter != mAttributes->end()) { - return iter->second; - } else { - return ""; - } - } - - inline const std::string GetStyle(const std::string &key) { - if (mStyles == nullptr) - return ""; - - std::map::iterator iter = mStyles->find(key); - if (iter != mStyles->end()) { - return iter->second; - } else { - return ""; - } - } - inline void MarkRootRender() { mIsRootRender = true; } @@ -438,23 +163,16 @@ namespace WeexCore { return mIsRootRender; } - inline bool IsAppendTree() { - std::string append = GetAttr(APPEND); - if(append == "tree") { - return true; - } - return false; - } - inline bool IsSticky() { return mIsSticky; } private: + RenderObject *mParentRender; - StylesMap *mStyles; - AttributesMap *mAttributes; - EventsSet *mEvents; + std::map *mStyles; + std::map *mAttributes; + std::set *mEvents; float mViewPortWidth = -1; bool mIsRootRender; bool mIsSticky = false; diff --git a/weex_core/Source/core/render/node/render_scroller.cpp b/weex_core/Source/core/render/node/render_scroller.cpp new file mode 100644 index 0000000000..563f7dbe2f --- /dev/null +++ b/weex_core/Source/core/render/node/render_scroller.cpp @@ -0,0 +1,51 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 "core/render/node/render_scroller.h" +#include "core/css/constants_name.h" + +namespace WeexCore { + + std::map *RenderScroller::GetDefaultStyle() { + std::map *style = new std::map(); + + bool isVertical = true; + RenderObject *parent = (RenderObject *) getParent(); + + if (parent != nullptr) { + if (parent->GetAttr(SCROLL_DIRECTION) == HORIZONTAL) { + isVertical = false; + } + } + + std::string prop = isVertical ? HEIGHT : WIDTH; + + if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { + style->insert(std::pair(FLEX, "1")); + } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { + style->insert(std::pair(FLEX, "1")); + } + + return style; + } + + void RenderScroller::setFlex(const float flex) { + mIsSetFlex = true; + WXCoreLayoutNode::setFlex(flex); + } +} diff --git a/weex_core/Source/core/render/node/render_scroller.h b/weex_core/Source/core/render/node/render_scroller.h index 38e804a822..cb4e1f0918 100644 --- a/weex_core/Source/core/render/node/render_scroller.h +++ b/weex_core/Source/core/render/node/render_scroller.h @@ -19,43 +19,19 @@ #ifndef WEEX_PROJECT_RENDERSCROLLER_H #define WEEX_PROJECT_RENDERSCROLLER_H -#include +#include "core/render/node/render_object.h" namespace WeexCore { class RenderScroller : public RenderObject { bool mIsSetFlex = false; - std::map *GetDefaultStyle() { - std::map *style = new std::map(); + std::map *GetDefaultStyle(); - bool isVertical = true; - RenderObject *parent = (RenderObject *) getParent(); + void setFlex(const float flex); - if (parent != nullptr) { - if (parent->GetAttr(SCROLL_DIRECTION) == HORIZONTAL) { - isVertical = false; - } - } - - std::string prop = isVertical ? HEIGHT : WIDTH; - - if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { - style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { - style->insert(std::pair(FLEX, "1")); - } - - return style; - } - - inline void setFlex(const float flex) { - mIsSetFlex = true; - WXCoreLayoutNode::setFlex(flex); - } - - - float calcFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤tLength) const override { + inline float calcFreeSpaceAlongMainAxis(const float &width, const float &height, + const float ¤tLength) const override { return NAN; } diff --git a/weex_core/Source/core/render/node/render_switch.h b/weex_core/Source/core/render/node/render_switch.h deleted file mode 100644 index f52ede7809..0000000000 --- a/weex_core/Source/core/render/node/render_switch.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERSWITCH_H -#define WEEX_PROJECT_RENDERSWITCH_H - -#include - -namespace WeexCore { - class RenderSwitch : public RenderObject { - - }; -} - -#endif //WEEX_PROJECT_RENDERSWITCH_H diff --git a/weex_core/Source/core/render/node/factory/render_indicator_factory.h b/weex_core/Source/core/render/node/render_text.cpp similarity index 67% rename from weex_core/Source/core/render/node/factory/render_indicator_factory.h rename to weex_core/Source/core/render/node/render_text.cpp index 7688acff77..4aa349075c 100644 --- a/weex_core/Source/core/render/node/factory/render_indicator_factory.h +++ b/weex_core/Source/core/render/node/render_text.cpp @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERINDICATORFACTORY_H -#define WEEX_PROJECT_RENDERINDICATORFACTORY_H - -#include -#include "i_render_factory.h" +#include "core/render/node/render_text.h" +#include "core/render/page/render_page.h" namespace WeexCore { - class RenderIndicatorFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderIndicator(); - } - }; + void RenderText::UpdateAttr(std::string key, std::string value) { + RenderObject::UpdateAttr(key, value); + markDirty(); + } + StyleType RenderText::UpdateStyle(std::string key, std::string value) { + StyleType resultType = RenderObject::ApplyStyle(key, value, true); + markDirty(); + return resultType; + } } - -#endif //WEEX_PROJECT_RENDERINDICATORFACTORY_H diff --git a/weex_core/Source/core/render/node/render_text.h b/weex_core/Source/core/render/node/render_text.h index 165e8a7c59..804b29834d 100644 --- a/weex_core/Source/core/render/node/render_text.h +++ b/weex_core/Source/core/render/node/render_text.h @@ -19,22 +19,16 @@ #ifndef WEEX_PROJECT_RENDERTEXT_H #define WEEX_PROJECT_RENDERTEXT_H -#include -#include +#include "core/render/node/render_object.h" namespace WeexCore { class RenderText : public RenderObject { + private: - inline void UpdateAttr(std::string key, std::string value) { - RenderObject::UpdateAttr(key, value); - markDirty(); - } - inline StyleType UpdateStyle(std::string key, std::string value) { - StyleType resultType = RenderObject::ApplyStyle(key, value, true); - markDirty(); - return resultType; - } + void UpdateAttr(std::string key, std::string value); + + StyleType UpdateStyle(std::string key, std::string value); }; } diff --git a/weex_core/Source/core/render/node/render_textarea.h b/weex_core/Source/core/render/node/render_textarea.h deleted file mode 100644 index f15569d389..0000000000 --- a/weex_core/Source/core/render/node/render_textarea.h +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 WEEX_PROJECT_RENDERTEXTAREA_H -#define WEEX_PROJECT_RENDERTEXTAREA_H - -#include - -namespace WeexCore { - class RenderTextArea : public RenderInput { - - }; -} - -#endif //WEEX_PROJECT_RENDERTEXTAREA_H diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index cc2b4c93b8..82e14d73bf 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -16,26 +16,27 @@ * specific language governing permissions and limitations * under the License. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "render_page.h" +#include "core/render/action/render_action_add_element.h" +#include "core/render/action/render_action_remove_element.h" +#include "core/render/action/render_action_move_element.h" +#include "core/render/action/render_action_createbody.h" +#include "core/render/action/render_action_update_style.h" +#include "core/render/action/render_action_update_attr.h" +#include "core/render/action/render_action_layout.h" +#include "core/render/action/render_action_createfinish.h" +#include "core/render/action/render_action_appendtree_createfinish.h" +#include "core/layout/layout.h" +#include "core/moniter/render_performance.h" +#include "core/config/core_environment.h" +#include "base/ViewUtils.h" +#include "core/render/action/render_action_add_event.h" +#include "core/render/action/render_action_remove_event.h" +#include "core/css/constants_value.h" +#include "core/render/node/factory/render_type.h" +#include "core/render/node/render_list.h" +#include "core/manager/weex_core_manager.h" +#include "base/TimeUtils.h" +#include "core/render/page/render_page.h" #include "core/render/manager/render_manager.h" #include "core/render/node/render_object.h" @@ -259,40 +260,40 @@ namespace WeexCore { if (margin == nullptr) { margin = new std::vector>(); } - render->UpdateStyle((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - margin->insert(margin->end(), (*iter)), - flag = true; - }); + render->UpdateStyleInternal((*iter).first, + (*iter).second, + 0, + [=, &flag](float foo) { + (*iter).second = to_string(foo), + margin->insert(margin->end(), (*iter)), + flag = true; + }); break; case kTypePadding: if (padding == nullptr) { padding = new std::vector>(); } - render->UpdateStyle((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - padding->insert(padding->end(), (*iter)), - flag = true; - }); + render->UpdateStyleInternal((*iter).first, + (*iter).second, + 0, + [=, &flag](float foo) { + (*iter).second = to_string(foo), + padding->insert(padding->end(), (*iter)), + flag = true; + }); break; case kTypeBorder: if (border == nullptr) { border = new std::vector>(); } - render->UpdateStyle((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - border->insert(border->end(), (*iter)), - flag = true; - }); + render->UpdateStyleInternal((*iter).first, + (*iter).second, + 0, + [=, &flag](float foo) { + (*iter).second = to_string(foo), + border->insert(border->end(), (*iter)), + flag = true; + }); break; } } @@ -397,7 +398,7 @@ namespace WeexCore { render->AddEvent(event); - render_action *action = new RenderActionAddEvent(mPageId, ref, event); + RenderAction *action = new RenderActionAddEvent(mPageId, ref, event); PostRenderAction(action); return true; } @@ -409,7 +410,7 @@ namespace WeexCore { render->RemoveEvent(event); - render_action *action = new RenderActionRemoveEvent(mPageId, ref, event); + RenderAction *action = new RenderActionRemoveEvent(mPageId, ref, event); PostRenderAction(action); return true; } @@ -432,7 +433,7 @@ namespace WeexCore { } } - void RenderPage::PostRenderAction(render_action *action) { + void RenderPage::PostRenderAction(RenderAction *action) { if (action != nullptr) { action->ExecuteAction(); } @@ -471,7 +472,7 @@ namespace WeexCore { if (render == nullptr) return; - render_action *action = new RenderActionCreateBody(PageId(), render); + RenderAction *action = new RenderActionCreateBody(PageId(), render); PostRenderAction(action); Index i = 0; @@ -495,7 +496,7 @@ namespace WeexCore { willLayout = false; } - render_action *action = new RenderActionAddElement(PageId(), child, parent, index, willLayout); + RenderAction *action = new RenderActionAddElement(PageId(), child, parent, index, willLayout); PostRenderAction(action); Index i = 0; @@ -525,12 +526,12 @@ namespace WeexCore { } void RenderPage::SendRemoveElementAction(const std::string &ref) { - render_action *action = new RenderActionRemoveElement(PageId(), ref); + RenderAction *action = new RenderActionRemoveElement(PageId(), ref); PostRenderAction(action); } void RenderPage::SendMoveElementAction(const std::string &ref, const std::string &parentRef, int index) { - render_action *action = new RenderActionMoveElement(PageId(), ref, parentRef, index); + RenderAction *action = new RenderActionMoveElement(PageId(), ref, parentRef, index); PostRenderAction(action); } @@ -538,7 +539,7 @@ namespace WeexCore { if (render == nullptr) return; - render_action *action = new RenderActionLayout(PageId(), render, index); + RenderAction *action = new RenderActionLayout(PageId(), render, index); PostRenderAction(action); } @@ -547,13 +548,13 @@ namespace WeexCore { std::vector> *margin, std::vector> *padding, std::vector> *border) { - render_action *action = new RenderActionUpdateStyle(PageId(), render->Ref(), style, margin, padding, border); + RenderAction *action = new RenderActionUpdateStyle(PageId(), render->Ref(), style, margin, padding, border); PostRenderAction(action); } void RenderPage::SendUpdateAttrAction(RenderObject *render, std::vector> *attrs) { - render_action *action = new RenderActionUpdateAttr(PageId(), render->Ref(), attrs); + RenderAction *action = new RenderActionUpdateAttr(PageId(), render->Ref(), attrs); PostRenderAction(action); } @@ -564,7 +565,7 @@ namespace WeexCore { vAttrs->insert(vAttrs->begin(), std::pair(iter->first, iter->second)); } - render_action *action = new RenderActionUpdateAttr(PageId(), render->Ref(), vAttrs); + RenderAction *action = new RenderActionUpdateAttr(PageId(), render->Ref(), vAttrs); PostRenderAction(action); if (vAttrs != nullptr) { @@ -575,12 +576,12 @@ namespace WeexCore { } void RenderPage::SendCreateFinishAction() { - render_action *action = new RenderActionCreateFinish(PageId()); + RenderAction *action = new RenderActionCreateFinish(PageId()); PostRenderAction(action); } void RenderPage::SendAppendTreeCreateFinish(const std::string &ref) { - render_action *action = new RenderActionAppendTreeCreateFinish(PageId(), ref); + RenderAction *action = new RenderActionAppendTreeCreateFinish(PageId(), ref); PostRenderAction(action); } @@ -621,6 +622,15 @@ namespace WeexCore { } } + RenderObject* RenderPage::GetRenderObject(const std::string &ref) { + std::map::iterator iter = mRenderObjectRegisterMap.find(ref); + if (iter != mRenderObjectRegisterMap.end()) { + return iter->second; + } else { + return nullptr; + } + } + void RenderPage::OnRenderPageInit() { } diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h index 369d0578a3..36bc583270 100644 --- a/weex_core/Source/core/render/page/render_page.h +++ b/weex_core/Source/core/render/page/render_page.h @@ -29,7 +29,7 @@ namespace WeexCore { constexpr float kLayoutFirstScreenOverflowRadio = 1.2f; - class render_action; + class RenderAction; class RenderObject; @@ -55,12 +55,11 @@ namespace WeexCore { void SendLayoutAction(RenderObject *render, int index); - void - SendUpdateStyleAction(RenderObject *render, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border); + void SendUpdateStyleAction(RenderObject *render, + std::vector > *style, + std::vector > *margin, + std::vector > *padding, + std::vector > *border); void SendUpdateAttrAction(RenderObject *render, std::vector> *attrs); @@ -68,12 +67,9 @@ namespace WeexCore { void SendAppendTreeCreateFinish(const std::string &ref); - void PostRenderAction(render_action *action); + void PostRenderAction(RenderAction *action); public: - static constexpr bool useVSync = true; - std::atomic_bool needLayout{false}; - std::atomic_bool hasForeLayoutAction{false}; explicit RenderPage(std::string pageId); @@ -93,7 +89,8 @@ namespace WeexCore { bool UpdateAttr(const std::string &ref, std::vector> *attrs); - void SetDefaultHeightAndWidthIntoRootRender(const float defaultWidth, const float defaultHeight, const bool isWidthWrapContent, const bool isHeightWrapContent); + void SetDefaultHeightAndWidthIntoRootRender(const float defaultWidth, const float defaultHeight, + const bool isWidthWrapContent, const bool isHeightWrapContent); bool AddEvent(const std::string &ref, const std::string &event); @@ -117,17 +114,23 @@ namespace WeexCore { void SendUpdateAttrAction(RenderObject *render, std::map *attrs); - inline RenderObject *GetRenderObject(const std::string &ref) { - std::map::iterator iter = mRenderObjectRegisterMap.find(ref); - if (iter != mRenderObjectRegisterMap.end()) { - return iter->second; - } else { - return nullptr; - } - } + RenderObject *GetRenderObject(const std::string &ref); void SetRootRenderObject(RenderObject *root); + // ****** Life Cycle ****** // + + void OnRenderPageInit(); + + void OnRenderProcessStart(); + + void OnRenderProcessExited(); + + void OnRenderProcessGone(); + + void OnRenderPageClose(); + + inline std::string PageId() { return mPageId; } @@ -156,19 +159,14 @@ namespace WeexCore { return isRenderContainerWidthWrapContent.load(); } - // ****** Life Cycle ****** // - - void OnRenderPageInit(); - - void OnRenderProcessStart(); - - void OnRenderProcessExited(); - - void OnRenderProcessGone(); + public: - void OnRenderPageClose(); + static constexpr bool useVSync = true; + std::atomic_bool needLayout{false}; + std::atomic_bool hasForeLayoutAction{false}; private: + bool mAlreadyCreateFinish = false; float mViewPortWidth; RenderObject *render_root = nullptr; From 2c0279113b9749a3362ca0e2b8f82afd98d2994f Mon Sep 17 00:00:00 2001 From: miomin Date: Fri, 8 Jun 2018 11:53:09 +0800 Subject: [PATCH 3/9] [WEEX-442][Core] Rename interface file. --- .../Source/core/render/action/render_action_add_element.h | 2 +- weex_core/Source/core/render/action/render_action_add_event.h | 2 +- .../render/action/render_action_appendtree_createfinish.h | 2 +- .../Source/core/render/action/render_action_createbody.h | 2 +- .../Source/core/render/action/render_action_createfinish.h | 2 +- .../action/{render_action.h => render_action_interface.h} | 0 weex_core/Source/core/render/action/render_action_layout.h | 2 +- .../Source/core/render/action/render_action_move_element.h | 2 +- .../Source/core/render/action/render_action_remove_element.h | 2 +- .../Source/core/render/action/render_action_remove_event.h | 2 +- .../Source/core/render/action/render_action_update_attr.h | 2 +- .../Source/core/render/action/render_action_update_style.h | 2 +- .../Source/core/render/node/factory/render_appbar_factory.h | 2 +- .../Source/core/render/node/factory/render_cell_factory.h | 2 +- weex_core/Source/core/render/node/factory/render_creator.cpp | 4 ++-- .../{i_render_factory.h => render_factory_interface.h} | 2 +- .../Source/core/render/node/factory/render_list_factory.h | 2 +- .../Source/core/render/node/factory/render_mask_factory.h | 2 +- .../factory/{i_render_object.h => render_object_interface.h} | 3 +++ .../Source/core/render/node/factory/render_scroller_factory.h | 2 +- .../Source/core/render/node/factory/render_text_factory.h | 2 +- .../Source/core/render/node/factory/simple_render_factory.h | 2 +- weex_core/Source/core/render/node/render_object.h | 2 +- 23 files changed, 25 insertions(+), 22 deletions(-) rename weex_core/Source/core/render/action/{render_action.h => render_action_interface.h} (100%) rename weex_core/Source/core/render/node/factory/{i_render_factory.h => render_factory_interface.h} (94%) rename weex_core/Source/core/render/node/factory/{i_render_object.h => render_object_interface.h} (99%) diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index 2b9f553d28..3c9175420e 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -23,7 +23,7 @@ #include #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" #include "core/layout/style.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 88ad40fdc4..680f87e30d 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index 04cae2635b..321073dae5 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 623b5a0bd7..5d4c25fbd4 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -23,7 +23,7 @@ #include #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 9beb99a37d..1ab0c0e19b 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action.h b/weex_core/Source/core/render/action/render_action_interface.h similarity index 100% rename from weex_core/Source/core/render/action/render_action.h rename to weex_core/Source/core/render/action/render_action_interface.h diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index 18eeb5bb76..231b3f9383 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -22,7 +22,7 @@ #include #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index cc0fced12f..6735903fc6 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index b8d50b3317..58ebbe9cf5 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index a772a6a6e0..d72f31f78a 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -21,7 +21,7 @@ #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index 3e74c0171d..bb0e49c6ce 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -22,7 +22,7 @@ #include #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index e2d6aa409e..65a31a0f7b 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -22,7 +22,7 @@ #include #include -#include "core/render/action/render_action.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_appbar_factory.h b/weex_core/Source/core/render/node/factory/render_appbar_factory.h index f8308d2443..874cdda002 100644 --- a/weex_core/Source/core/render/node/factory/render_appbar_factory.h +++ b/weex_core/Source/core/render/node/factory/render_appbar_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERAPPBARFACTORY_H #include "core/render/node/render_appbar.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_cell_factory.h b/weex_core/Source/core/render/node/factory/render_cell_factory.h index 7873cd35cd..2d4ae5bd0a 100644 --- a/weex_core/Source/core/render/node/factory/render_cell_factory.h +++ b/weex_core/Source/core/render/node/factory/render_cell_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERCELLFACTORY_H #include "core/render/node/render_cell.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_creator.cpp b/weex_core/Source/core/render/node/factory/render_creator.cpp index 5c3acfbcd3..471e31212a 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.cpp +++ b/weex_core/Source/core/render/node/factory/render_creator.cpp @@ -17,8 +17,8 @@ * under the License. */ #include "core/render/node/factory/render_creator.h" -#include "core/render/node/factory/i_render_object.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_object_interface.h" +#include "core/render/node/factory/render_factory_interface.h" #include "core/render/node/factory/render_text_factory.h" #include "core/render/node/factory/simple_render_factory.h" #include "core/render/node/factory/render_list_factory.h" diff --git a/weex_core/Source/core/render/node/factory/i_render_factory.h b/weex_core/Source/core/render/node/factory/render_factory_interface.h similarity index 94% rename from weex_core/Source/core/render/node/factory/i_render_factory.h rename to weex_core/Source/core/render/node/factory/render_factory_interface.h index f0e44516db..02d936c70c 100644 --- a/weex_core/Source/core/render/node/factory/i_render_factory.h +++ b/weex_core/Source/core/render/node/factory/render_factory_interface.h @@ -19,7 +19,7 @@ #ifndef WEEX_PROJECT_IRENDERFACTORY_H #define WEEX_PROJECT_IRENDERFACTORY_H -#include "core/render/node/factory/i_render_object.h" +#include "core/render/node/factory/render_object_interface.h" namespace WeexCore { class IRenderFactory { diff --git a/weex_core/Source/core/render/node/factory/render_list_factory.h b/weex_core/Source/core/render/node/factory/render_list_factory.h index 3964e6a2cd..e15c94a0e4 100644 --- a/weex_core/Source/core/render/node/factory/render_list_factory.h +++ b/weex_core/Source/core/render/node/factory/render_list_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERLISTFACTORY_H #include "core/render/node/render_list.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_mask_factory.h b/weex_core/Source/core/render/node/factory/render_mask_factory.h index 92a210e4c8..7f865e408d 100644 --- a/weex_core/Source/core/render/node/factory/render_mask_factory.h +++ b/weex_core/Source/core/render/node/factory/render_mask_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERMASKFACTORY_H #include "core/render/node/render_mask.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/i_render_object.h b/weex_core/Source/core/render/node/factory/render_object_interface.h similarity index 99% rename from weex_core/Source/core/render/node/factory/i_render_object.h rename to weex_core/Source/core/render/node/factory/render_object_interface.h index da2df7f9eb..79e6e479fe 100644 --- a/weex_core/Source/core/render/node/factory/i_render_object.h +++ b/weex_core/Source/core/render/node/factory/render_object_interface.h @@ -26,7 +26,9 @@ namespace WeexCore { class IRenderObject : public WXCoreLayoutNode { + public: + inline void SetRef(std::string ref) { mRef = ref; } @@ -59,6 +61,7 @@ namespace WeexCore { } private: + std::string mPageId = ""; std::string mRef = ""; std::string mType = ""; diff --git a/weex_core/Source/core/render/node/factory/render_scroller_factory.h b/weex_core/Source/core/render/node/factory/render_scroller_factory.h index 7795bed0ee..062af888dd 100644 --- a/weex_core/Source/core/render/node/factory/render_scroller_factory.h +++ b/weex_core/Source/core/render/node/factory/render_scroller_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERSCROLLERFACTORY_H #include "core/render/node/render_scroller.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/render_text_factory.h b/weex_core/Source/core/render/node/factory/render_text_factory.h index 025de7696e..967412a6e2 100644 --- a/weex_core/Source/core/render/node/factory/render_text_factory.h +++ b/weex_core/Source/core/render/node/factory/render_text_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERTEXTFACTORY_H #include "core/render/node/render_text.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/factory/simple_render_factory.h b/weex_core/Source/core/render/node/factory/simple_render_factory.h index ee1ffca0c8..eb55d41d70 100644 --- a/weex_core/Source/core/render/node/factory/simple_render_factory.h +++ b/weex_core/Source/core/render/node/factory/simple_render_factory.h @@ -20,7 +20,7 @@ #define WEEX_PROJECT_RENDERCOMMONFACTORY_H #include "core/render/node/render_object.h" -#include "core/render/node/factory/i_render_factory.h" +#include "core/render/node/factory/render_factory_interface.h" namespace WeexCore { diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index ea943c3a04..9445243447 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -24,7 +24,7 @@ #include #include -#include "core/render/node/factory/i_render_object.h" +#include "core/render/node/factory/render_object_interface.h" #define JSON_OBJECT_MARK_CHAR '{' #define JSON_ARRAY_MARK_CHAR '[' From 03189a8053f13f02e22b74ae96ba499179c7adaa Mon Sep 17 00:00:00 2001 From: miomin Date: Mon, 11 Jun 2018 15:45:00 +0800 Subject: [PATCH 4/9] [WEEX-442][Core] C++ style format : variable declaration --- android/playground/app/build.gradle | 2 +- .../java/com/alibaba/weex/WXApplication.java | 4 +- .../bridge/impl/weexcore_impl_android.cpp | 10 +- .../action/render_action_add_element.cpp | 48 ++--- .../render/action/render_action_add_element.h | 28 +-- .../render/action/render_action_add_event.cpp | 13 +- .../render/action/render_action_add_event.h | 8 +- .../render_action_appendtree_createfinish.cpp | 11 +- .../render_action_appendtree_createfinish.h | 6 +- .../action/render_action_createbody.cpp | 36 ++-- .../render/action/render_action_createbody.h | 20 +- .../action/render_action_createfinish.cpp | 6 +- .../action/render_action_createfinish.h | 4 +- .../render/action/render_action_layout.cpp | 27 +-- .../core/render/action/render_action_layout.h | 19 +- .../action/render_action_move_element.cpp | 20 +- .../action/render_action_move_element.h | 12 +- .../action/render_action_remove_element.cpp | 10 +- .../action/render_action_remove_element.h | 6 +- .../action/render_action_remove_event.cpp | 14 +- .../action/render_action_remove_event.h | 8 +- .../action/render_action_update_attr.cpp | 15 +- .../render/action/render_action_update_attr.h | 10 +- .../action/render_action_update_style.cpp | 24 +-- .../action/render_action_update_style.h | 14 +- .../core/render/manager/render_manager.cpp | 66 +++---- .../core/render/manager/render_manager.h | 40 ++-- .../render/node/factory/render_creator.cpp | 2 +- .../core/render/node/factory/render_creator.h | 12 +- .../node/factory/render_object_interface.h | 20 +- .../Source/core/render/node/render_appbar.cpp | 12 +- .../Source/core/render/node/render_appbar.h | 4 +- .../Source/core/render/node/render_list.cpp | 131 ++++++------ .../Source/core/render/node/render_list.h | 22 +-- .../Source/core/render/node/render_object.cpp | 60 +++--- .../Source/core/render/node/render_object.h | 40 ++-- .../core/render/node/render_scroller.cpp | 6 +- .../Source/core/render/node/render_scroller.h | 4 +- .../Source/core/render/page/render_page.cpp | 186 ++++++++---------- .../Source/core/render/page/render_page.h | 76 +++---- 40 files changed, 527 insertions(+), 529 deletions(-) diff --git a/android/playground/app/build.gradle b/android/playground/app/build.gradle index 5b93f0c3df..3e4954d115 100755 --- a/android/playground/app/build.gradle +++ b/android/playground/app/build.gradle @@ -117,7 +117,7 @@ dependencies { compile 'com.jakewharton.scalpel:scalpel:1.1.2' compile 'com.taobao.android.weex_inspection:urlconnection_interceptor:1.0.0' compile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2' - compile 'com.taobao.android:weex_inspector:0.11.0' + compile 'com.taobao.android:weex_inspector:0.16.7' //compile project(":weex_inspector") } diff --git a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java index e7499f2809..35fd36a0bd 100644 --- a/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java +++ b/android/playground/app/src/main/java/com/alibaba/weex/WXApplication.java @@ -63,8 +63,8 @@ public void onCreate() { **/ // initDebugEnvironment(true, false, "DEBUG_SERVER_HOST"); WXBridgeManager.updateGlobalConfig("wson_on"); - WXEnvironment.setOpenDebugLog(false); - WXEnvironment.setApkDebugable(false); + WXEnvironment.setOpenDebugLog(true); + WXEnvironment.setApkDebugable(true); WXSDKEngine.addCustomOptions("appName", "WXSample"); WXSDKEngine.addCustomOptions("appGroup", "WXApp"); WXSDKEngine.initialize(this, diff --git a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp index 0e5b44ecb4..4138530d9b 100644 --- a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp +++ b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp @@ -214,13 +214,13 @@ static jboolean NotifyLayout(JNIEnv* env, jobject jcaller, jstring instanceId) { RenderPage *page = RenderManager::GetInstance()->GetPage(jString2StrFast(env, instanceId)); if (page != nullptr) { - if (!page->needLayout.load()) { - page->needLayout.store(true); + if (!page->need_layout.load()) { + page->need_layout.store(true); } - bool ret = !page->hasForeLayoutAction.load() && page->isDirty(); + bool ret = !page->has_fore_layout_action.load() && page->isDirty(); if (ret) { - page->hasForeLayoutAction.store(true); + page->has_fore_layout_action.store(true); } return ret ? JNI_TRUE : JNI_FALSE; } @@ -236,7 +236,7 @@ static void ForceLayout(JNIEnv *env, jobject jcaller, jstring instanceId) { #endif page->LayoutImmediately(); - page->hasForeLayoutAction.store(false); + page->has_fore_layout_action.store(false); } } diff --git a/weex_core/Source/core/render/action/render_action_add_element.cpp b/weex_core/Source/core/render/action/render_action_add_element.cpp index 66dcbfb723..46cff055b4 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.cpp +++ b/weex_core/Source/core/render/action/render_action_add_element.cpp @@ -23,33 +23,35 @@ namespace WeexCore { - RenderActionAddElement::RenderActionAddElement(const std::string &pageId, + RenderActionAddElement::RenderActionAddElement(const std::string &page_id, const RenderObject *render, const RenderObject *parent, int index, - bool willLayout) { - this->mAttributes = render->Attributes(); - this->mStyles = render->Styles(); - this->mEvents = render->Events(); - this->mMargins = render->GetMargins(); - this->mPaddings = render->GetPaddings(); - this->mBorders = render->GetBorders(); - this->mPageId = pageId; - this->mComponentType = render->Type(); - this->mRef = render->Ref(); - this->mParentRef = parent->Ref(); - this->mIndex = index; - this->mWillLayout = willLayout; + bool will_layout) { + this->attributes = render->Attributes(); + this->styles = render->Styles(); + this->events = render->Events(); + this->margins = render->GetMargins(); + this->paddings = render->GetPaddings(); + this->borders = render->GetBorders(); + this->page_id = page_id; + this->component_type = render->Type(); + this->ref = render->Ref(); + this->parent_ref = parent->Ref(); + this->index = index; + this->will_layout = will_layout; } void RenderActionAddElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(mPageId.c_str(), - mComponentType.c_str(), - mRef.c_str(), - mIndex, mParentRef.c_str(), - mStyles, - mAttributes, - mEvents, mMargins, - mPaddings, mBorders, - mWillLayout); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(this->page_id.c_str(), + this->component_type.c_str(), + this->ref.c_str(), + this->index, + this->parent_ref.c_str(), + this->styles, + this->attributes, + this->events, this->margins, + this->paddings, + this->borders, + this->will_layout); } } diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index 3c9175420e..69b9d06063 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -33,25 +33,25 @@ namespace WeexCore { class RenderActionAddElement : public RenderAction { public: - explicit RenderActionAddElement(const std::string &pageId, const RenderObject *render, + explicit RenderActionAddElement(const std::string &page_id, const RenderObject *render, const RenderObject *parent, - int index, bool willLayout = true); + int index, bool will_layout = true); void ExecuteAction(); public: - std::map *mStyles; - std::map *mAttributes; - std::set *mEvents; - WXCoreMargin mMargins; - WXCorePadding mPaddings; - WXCoreBorderWidth mBorders; - std::string mPageId; - std::string mComponentType; - std::string mParentRef; - std::string mRef; - int mIndex; - bool mWillLayout; + std::map *styles; + std::map *attributes; + std::set *events; + WXCoreMargin margins; + WXCorePadding paddings; + WXCoreBorderWidth borders; + std::string page_id; + std::string component_type; + std::string parent_ref; + std::string ref; + int index; + bool will_layout; }; } diff --git a/weex_core/Source/core/render/action/render_action_add_event.cpp b/weex_core/Source/core/render/action/render_action_add_event.cpp index 8005daa208..98bb6c8cf2 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.cpp +++ b/weex_core/Source/core/render/action/render_action_add_event.cpp @@ -22,16 +22,17 @@ namespace WeexCore { - RenderActionAddEvent::RenderActionAddEvent(const std::string &pageId, const std::string &ref, + RenderActionAddEvent::RenderActionAddEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - this->mPageId = pageId; - this->mRef = ref; - this->mEvent = event; + this->page_id = page_id; + this->ref = ref; + this->event = event; } void RenderActionAddEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(mPageId.c_str(), mRef.c_str(), - mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(this->page_id.c_str(), + this->ref.c_str(), + this->event.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 680f87e30d..852549c89b 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -28,15 +28,15 @@ namespace WeexCore { class RenderActionAddEvent : public RenderAction { public: - explicit RenderActionAddEvent(const std::string &pageId, const std::string &ref, + explicit RenderActionAddEvent(const std::string &page_id, const std::string &ref, const std::string &event); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; - std::string mEvent; + std::string page_id; + std::string ref; + std::string event; }; } diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp index 045f0b6872..25cdb12370 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp @@ -22,14 +22,15 @@ namespace WeexCore { - RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &pageId, + RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &page_id, const std::string &ref) { - this->mPageId = pageId; - this->mRef = ref; + this->page_id = page_id; + this->ref = ref; } void RenderActionAppendTreeCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish(mPageId.c_str(), - mRef.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish( + this->page_id.c_str(), + this->ref.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index 321073dae5..beb601c100 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -28,13 +28,13 @@ namespace WeexCore { class RenderActionAppendTreeCreateFinish : public RenderAction { public: - explicit RenderActionAppendTreeCreateFinish(const std::string &pageId, const std::string &ref); + explicit RenderActionAppendTreeCreateFinish(const std::string &page_id, const std::string &ref); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; + std::string page_id; + std::string ref; }; } diff --git a/weex_core/Source/core/render/action/render_action_createbody.cpp b/weex_core/Source/core/render/action/render_action_createbody.cpp index 2efd6f06bc..9247a48a50 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.cpp +++ b/weex_core/Source/core/render/action/render_action_createbody.cpp @@ -23,26 +23,28 @@ namespace WeexCore { - RenderActionCreateBody::RenderActionCreateBody(const std::string &pageId, + RenderActionCreateBody::RenderActionCreateBody(const std::string &page_id, const RenderObject *render) { - this->mAttributes = render->Attributes(); - this->mStyles = render->Styles(); - this->mEvents = render->Events(); - this->mMargins = render->GetMargins(); - this->mPaddings = render->GetPaddings(); - this->mBorders = render->GetBorders(); - this->mPageId = pageId; - this->mComponentType = render->Type(); - this->mRef = render->Ref(); + this->attributes = render->Attributes(); + this->styles = render->Styles(); + this->events = render->Events(); + this->margins = render->GetMargins(); + this->paddings = render->GetPaddings(); + this->borders = render->GetBorders(); + this->page_id = page_id; + this->component_type = render->Type(); + this->ref = render->Ref(); } void RenderActionCreateBody::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(mPageId.c_str(), - mComponentType.c_str(), - mRef.c_str(), - mStyles, mAttributes, - mEvents, - mMargins, mPaddings, - mBorders); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(this->page_id.c_str(), + this->component_type.c_str(), + this->ref.c_str(), + this->styles, + this->attributes, + this->events, + this->margins, + this->paddings, + this->borders); } } diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 5d4c25fbd4..8929138a6d 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -32,20 +32,20 @@ namespace WeexCore { class RenderActionCreateBody : public RenderAction { public: - explicit RenderActionCreateBody(const std::string &pageId, const RenderObject *render); + explicit RenderActionCreateBody(const std::string &page_id, const RenderObject *render); void ExecuteAction(); public: - std::map *mStyles; - std::map *mAttributes; - std::set *mEvents; - WXCoreMargin mMargins; - WXCorePadding mPaddings; - WXCoreBorderWidth mBorders; - std::string mPageId; - std::string mComponentType; - std::string mRef; + std::map *styles; + std::map *attributes; + std::set *events; + WXCoreMargin margins; + WXCorePadding paddings; + WXCoreBorderWidth borders; + std::string page_id; + std::string component_type; + std::string ref; }; } diff --git a/weex_core/Source/core/render/action/render_action_createfinish.cpp b/weex_core/Source/core/render/action/render_action_createfinish.cpp index 13559c1183..cb1b15a842 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_createfinish.cpp @@ -22,11 +22,11 @@ namespace WeexCore { - RenderActionCreateFinish::RenderActionCreateFinish(const std::string &pageId) { - this->mPageId = pageId; + RenderActionCreateFinish::RenderActionCreateFinish(const std::string &page_id) { + this->page_id = page_id; } void RenderActionCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(mPageId.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(this->page_id.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 1ab0c0e19b..8590edb00e 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -28,12 +28,12 @@ namespace WeexCore { class RenderActionCreateFinish : public RenderAction { public: - explicit RenderActionCreateFinish(const std::string &pageId); + explicit RenderActionCreateFinish(const std::string &page_id); void ExecuteAction(); public: - std::string mPageId; + std::string page_id; }; } diff --git a/weex_core/Source/core/render/action/render_action_layout.cpp b/weex_core/Source/core/render/action/render_action_layout.cpp index 366c6ba5c6..b37a2ef1d0 100644 --- a/weex_core/Source/core/render/action/render_action_layout.cpp +++ b/weex_core/Source/core/render/action/render_action_layout.cpp @@ -23,26 +23,29 @@ namespace WeexCore { - RenderActionLayout::RenderActionLayout(const std::string &pageId, const RenderObject *render, + RenderActionLayout::RenderActionLayout(const std::string &page_id, const RenderObject *render, int index) { - this->mPageId = pageId; - this->mRef = render->Ref(); + this->page_id = page_id; + this->ref = render->Ref(); this->index = index; GetLayoutInfo(render); } void RenderActionLayout::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(mPageId.c_str(), mRef.c_str(), - mTop, mBottom, mLeft, mRight, - mHeight, mWidth, index); + WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(this->page_id.c_str(), + this->ref.c_str(), + this->top, this->bottom, + this->left, this->right, + this->height, this->width, + this->index); } void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { - mTop = node->getLayoutPositionTop(); - mBottom = node->getLayoutPositionBottom(); - mRight = node->getLayoutPositionRight(); - mLeft = node->getLayoutPositionLeft(); - mHeight = node->getLayoutHeight(); - mWidth = node->getLayoutWidth(); + this->top = node->getLayoutPositionTop(); + this->bottom = node->getLayoutPositionBottom(); + this->right = node->getLayoutPositionRight(); + this->left = node->getLayoutPositionLeft(); + this->height = node->getLayoutHeight(); + this->width = node->getLayoutWidth(); } } diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index 231b3f9383..5a21f08569 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -33,7 +33,7 @@ namespace WeexCore { class RenderActionLayout : public RenderAction { public: - explicit RenderActionLayout(const std::string &pageId, const RenderObject *render, + explicit RenderActionLayout(const std::string &page_id, const RenderObject *render, const int index); void ExecuteAction(); @@ -41,15 +41,14 @@ namespace WeexCore { void GetLayoutInfo(const WXCoreLayoutNode *node); public: - std::set *mEvents; - std::string mPageId; - std::string mRef; - float mWidth; - float mHeight; - float mTop; - float mLeft; - float mBottom; - float mRight; + std::string page_id; + std::string ref; + float width; + float height; + float top; + float left; + float bottom; + float right; int index; }; } diff --git a/weex_core/Source/core/render/action/render_action_move_element.cpp b/weex_core/Source/core/render/action/render_action_move_element.cpp index ca2b88e876..356c0df3d5 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.cpp +++ b/weex_core/Source/core/render/action/render_action_move_element.cpp @@ -22,19 +22,19 @@ namespace WeexCore { - RenderActionMoveElement::RenderActionMoveElement(const std::string &pageId, + RenderActionMoveElement::RenderActionMoveElement(const std::string &page_id, const std::string &ref, - const std::string &parentRef, int index) { - this->mPageId = pageId; - this->mRef = ref; - this->mParentRef = parentRef; - this->mIndex = index; + const std::string &parent_ref, int index) { + this->page_id = page_id; + this->ref = ref; + this->parent_ref = parent_ref; + this->index = index; } void RenderActionMoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(mPageId.c_str(), - mRef.c_str(), - mParentRef.c_str(), - mIndex); + WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(this->page_id.c_str(), + this->ref.c_str(), + this->parent_ref.c_str(), + this->index); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index 6735903fc6..264406617a 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -28,16 +28,16 @@ namespace WeexCore { class RenderActionMoveElement : public RenderAction { public: - explicit RenderActionMoveElement(const std::string &pageId, const std::string &ref, - const std::string &parentRef, int index); + explicit RenderActionMoveElement(const std::string &page_id, const std::string &ref, + const std::string &parent_ref, int index); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; - std::string mParentRef; - int mIndex; + std::string page_id; + std::string ref; + std::string parent_ref; + int index; }; } diff --git a/weex_core/Source/core/render/action/render_action_remove_element.cpp b/weex_core/Source/core/render/action/render_action_remove_element.cpp index ba17af55dc..b5f12065bd 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_element.cpp @@ -22,14 +22,14 @@ namespace WeexCore { - RenderActionRemoveElement::RenderActionRemoveElement(const std::string &pageId, + RenderActionRemoveElement::RenderActionRemoveElement(const std::string &page_id, const std::string &ref) { - this->mPageId = pageId; - this->mRef = ref; + this->page_id = page_id; + this->ref = ref; } void RenderActionRemoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(mPageId.c_str(), - mRef.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(this->page_id.c_str(), + this->ref.c_str()); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index 58ebbe9cf5..425c3e464e 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -27,13 +27,13 @@ namespace WeexCore { class RenderActionRemoveElement : public RenderAction { public: - explicit RenderActionRemoveElement(const std::string &pageId, const std::string &ref); + explicit RenderActionRemoveElement(const std::string &page_id, const std::string &ref); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; + std::string page_id; + std::string ref; }; } diff --git a/weex_core/Source/core/render/action/render_action_remove_event.cpp b/weex_core/Source/core/render/action/render_action_remove_event.cpp index 06e21d4216..fc4e953b96 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_event.cpp @@ -22,17 +22,17 @@ namespace WeexCore { - RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &pageId, + RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - this->mPageId = pageId; - this->mRef = ref; - this->mEvent = event; + this->page_id = page_id; + this->ref = ref; + this->event = event; } void RenderActionRemoveEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(mPageId.c_str(), - mRef.c_str(), - mEvent.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(this->page_id.c_str(), + this->ref.c_str(), + this->event.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index d72f31f78a..e331dd02d4 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -28,15 +28,15 @@ namespace WeexCore { class RenderActionRemoveEvent : public RenderAction { public: - explicit RenderActionRemoveEvent(const std::string &pageId, const std::string &ref, + explicit RenderActionRemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; - std::string mEvent; + std::string page_id; + std::string ref; + std::string event; }; } diff --git a/weex_core/Source/core/render/action/render_action_update_attr.cpp b/weex_core/Source/core/render/action/render_action_update_attr.cpp index 7aa6d3ff84..91e75ddd2b 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.cpp +++ b/weex_core/Source/core/render/action/render_action_update_attr.cpp @@ -22,15 +22,16 @@ namespace WeexCore { - RenderActionUpdateAttr::RenderActionUpdateAttr(const std::string &pageId, const std::string &ref, - std::vector> *mAttrs) { - this->mPageId = pageId; - this->mRef = ref; - this->mAttrs = mAttrs; + RenderActionUpdateAttr::RenderActionUpdateAttr(const std::string &page_id, const std::string &ref, + std::vector> *attrs) { + this->page_id = page_id; + this->ref = ref; + this->attrs = attrs; } void RenderActionUpdateAttr::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(mPageId.c_str(), - mRef.c_str(), mAttrs); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(this->page_id.c_str(), + this->ref.c_str(), + this->attrs); } } diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index bb0e49c6ce..b666f4111f 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -29,15 +29,15 @@ namespace WeexCore { class RenderActionUpdateAttr : public RenderAction { public: - explicit RenderActionUpdateAttr(const std::string &pageId, const std::string &ref, - std::vector> *mAttrs); + explicit RenderActionUpdateAttr(const std::string &page_id, const std::string &ref, + std::vector> *attrs); void ExecuteAction(); public: - std::string mPageId; - std::string mRef; - std::vector> *mAttrs; + std::string page_id; + std::string ref; + std::vector> *attrs; }; } diff --git a/weex_core/Source/core/render/action/render_action_update_style.cpp b/weex_core/Source/core/render/action/render_action_update_style.cpp index 9b2f6a200c..21df42712c 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.cpp +++ b/weex_core/Source/core/render/action/render_action_update_style.cpp @@ -22,24 +22,26 @@ namespace WeexCore { - RenderActionUpdateStyle::RenderActionUpdateStyle(const std::string &pageId, + RenderActionUpdateStyle::RenderActionUpdateStyle(const std::string &page_id, const std::string &ref, std::vector> *style, std::vector> *margin, std::vector> *padding, std::vector> *border) { - this->mPageId = pageId; - this->mRef = ref; - this->mStyle = style; - this->mMargin = margin; - this->mPadding = padding; - this->mBorder = border; + this->page_id = page_id; + this->ref = ref; + this->style = style; + this->margin = margin; + this->padding = padding; + this->border = border; } void RenderActionUpdateStyle::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(mPageId.c_str(), - mRef.c_str(), mStyle, - mMargin, - mPadding, mBorder); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(this->page_id.c_str(), + this->ref.c_str(), + this->style, + this->margin, + this->padding, + this->border); } } diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index 65a31a0f7b..bef6806b2e 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -30,7 +30,7 @@ namespace WeexCore { public: - explicit RenderActionUpdateStyle(const std::string &pageId, const std::string &ref, + explicit RenderActionUpdateStyle(const std::string &page_id, const std::string &ref, std::vector> *style, std::vector> *margin, std::vector> *padding, @@ -39,12 +39,12 @@ namespace WeexCore { void ExecuteAction(); public: - std::string mPageId; - std::string mRef; - std::vector> *mStyle; - std::vector> *mMargin; - std::vector> *mPadding; - std::vector> *mBorder; + std::string page_id; + std::string ref; + std::vector> *style; + std::vector> *margin; + std::vector> *padding; + std::vector> *border; }; } diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp index c25987df5f..8b299a92d9 100644 --- a/weex_core/Source/core/render/manager/render_manager.cpp +++ b/weex_core/Source/core/render/manager/render_manager.cpp @@ -25,30 +25,30 @@ namespace WeexCore { - RenderManager *RenderManager::m_pInstance = nullptr; + RenderManager *RenderManager::g_pInstance = nullptr; - bool RenderManager::CreatePage(std::string pageId, const char *data) { + bool RenderManager::CreatePage(std::string page_id, const char *data) { #if RENDER_LOG wson_parser parser(data); LOGD("[RenderManager] CreatePage >>>> pageId: %s, dom data: %s", pageId.c_str(), parser.toStringUTF8().c_str()); #endif - RenderPage *page = new RenderPage(pageId); - mPages.insert(std::pair(pageId, page)); + RenderPage *page = new RenderPage(page_id); + this->pages.insert(std::pair(page_id, page)); long long startTime = getCurrentTime(); - RenderObject *root = Wson2RenderObject(data, pageId); + RenderObject *root = Wson2RenderObject(data, page_id); page->ParseJsonTime(getCurrentTime() - startTime); page->updateDirty(true); return page->CreateRootRender(root); } - bool RenderManager::AddRenderObject(const std::string &pageId, const std::string &parentRef, + bool RenderManager::AddRenderObject(const std::string &page_id, const std::string &parent_ref, int index, const char *data) { - RenderPage *page = GetPage(pageId); + RenderPage *page = GetPage(page_id); if (page == nullptr) return false; @@ -59,19 +59,19 @@ namespace WeexCore { #endif long long startTime = getCurrentTime(); - RenderObject *child = Wson2RenderObject(data, pageId); + RenderObject *child = Wson2RenderObject(data, page_id); page->ParseJsonTime(getCurrentTime() - startTime); if (child == nullptr) return false; page->updateDirty(true); - return page->AddRenderObject(parentRef, index, child); + return page->AddRenderObject(parent_ref, index, child); } - bool RenderManager::RemoveRenderObject(const std::string &pageId, const std::string &ref) { + bool RenderManager::RemoveRenderObject(const std::string &page_id, const std::string &ref) { - RenderPage *page = this->GetPage(pageId); + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -84,9 +84,9 @@ namespace WeexCore { return page->RemoveRenderObject(ref); } - bool RenderManager::MoveRenderObject(const std::string &pageId, const std::string &ref, - const std::string &parentRef, int index) { - RenderPage *page = this->GetPage(pageId); + bool RenderManager::MoveRenderObject(const std::string &page_id, const std::string &ref, + const std::string &parent_ref, int index) { + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -96,12 +96,12 @@ namespace WeexCore { #endif page->updateDirty(true); - return page->MoveRenderObject(ref, parentRef, index); + return page->MoveRenderObject(ref, parent_ref, index); } - bool RenderManager::UpdateAttr(const std::string &pageId, const std::string &ref, + bool RenderManager::UpdateAttr(const std::string &page_id, const std::string &ref, const char *data) { - RenderPage *page = this->GetPage(pageId); + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -119,9 +119,9 @@ namespace WeexCore { return page->UpdateAttr(ref, attrs); } - bool RenderManager::UpdateStyle(const std::string &pageId, const std::string &ref, + bool RenderManager::UpdateStyle(const std::string &page_id, const std::string &ref, const char *data) { - RenderPage *page = this->GetPage(pageId); + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -139,9 +139,9 @@ namespace WeexCore { return page->UpdateStyle(ref, styles); } - bool RenderManager::AddEvent(const std::string &pageId, const std::string &ref, + bool RenderManager::AddEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - RenderPage *page = this->GetPage(pageId); + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -154,9 +154,9 @@ namespace WeexCore { return page->AddEvent(ref, event); } - bool RenderManager::RemoveEvent(const std::string &pageId, const std::string &ref, + bool RenderManager::RemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - RenderPage *page = this->GetPage(pageId); + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return false; @@ -169,8 +169,8 @@ namespace WeexCore { return page->RemoveEvent(ref, event); } - bool RenderManager::CreateFinish(const std::string &pageId) { - RenderPage *page = GetPage(pageId); + bool RenderManager::CreateFinish(const std::string &page_id) { + RenderPage *page = GetPage(page_id); if (page == nullptr) return false; @@ -182,17 +182,17 @@ namespace WeexCore { return page->CreateFinish(); } - RenderPage *RenderManager::GetPage(const std::string &id) { - std::map::iterator iter = mPages.find(id); - if (iter != mPages.end()) { + RenderPage *RenderManager::GetPage(const std::string &page_id) { + std::map::iterator iter = this->pages.find(page_id); + if (iter != this->pages.end()) { return iter->second; } else { return nullptr; } } - bool RenderManager::ClosePage(const std::string &pageId) { - RenderPage *page = GetPage(pageId); + bool RenderManager::ClosePage(const std::string &page_id) { + RenderPage *page = GetPage(page_id); if (page == nullptr) return false; @@ -200,13 +200,13 @@ namespace WeexCore { LOGD("[RenderManager] ClosePage >>>> pageId: %s", pageId.c_str()); #endif page->OnRenderPageClose(); - mPages.erase(pageId); + this->pages.erase(page_id); delete page; page = nullptr; } - void RenderManager::Batch(const std::string &pageId) { - RenderPage *page = this->GetPage(pageId); + void RenderManager::Batch(const std::string &page_id) { + RenderPage *page = this->GetPage(page_id); if (page == nullptr) return; diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h index 3ff94639f8..33573ff8bc 100644 --- a/weex_core/Source/core/render/manager/render_manager.h +++ b/weex_core/Source/core/render/manager/render_manager.h @@ -37,8 +37,8 @@ namespace WeexCore { class Garbo { public: ~Garbo() { - if (RenderManager::m_pInstance) { - delete RenderManager::m_pInstance; + if (RenderManager::g_pInstance) { + delete RenderManager::g_pInstance; } } }; @@ -47,44 +47,44 @@ namespace WeexCore { public: - void Batch(const std::string &pageId); + void Batch(const std::string &page_id); // create root node - bool CreatePage(std::string pageId, const char *data); + bool CreatePage(std::string page_id, const char *data); /** use auto constructor is bad idea, it cann't transfer binary, use char* is better */ - bool AddRenderObject(const std::string &pageId, const std::string &parentRef, int index, + bool AddRenderObject(const std::string &page_id, const std::string &parent_ref, int index, const char *data); - bool RemoveRenderObject(const std::string &pageId, const std::string &ref); + bool RemoveRenderObject(const std::string &page_id, const std::string &ref); - bool MoveRenderObject(const std::string &pageId, const std::string &ref, - const std::string &parentRef, int index); + bool MoveRenderObject(const std::string &page_id, const std::string &ref, + const std::string &parent_ref, int index); - bool UpdateAttr(const std::string &pageId, const std::string &ref, const char *data); + bool UpdateAttr(const std::string &page_id, const std::string &ref, const char *data); - bool UpdateStyle(const std::string &pageId, const std::string &ref, const char *data); + bool UpdateStyle(const std::string &page_id, const std::string &ref, const char *data); - bool AddEvent(const std::string &pageId, const std::string &ref, const std::string &event); + bool AddEvent(const std::string &page_id, const std::string &ref, const std::string &event); - bool RemoveEvent(const std::string &pageId, const std::string &ref, const std::string &event); + bool RemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event); - bool CreateFinish(const std::string &pageId); + bool CreateFinish(const std::string &page_id); - RenderPage *GetPage(const std::string &id); + RenderPage *GetPage(const std::string &page_id); - bool ClosePage(const std::string &pageId); + bool ClosePage(const std::string &page_id); static RenderManager *GetInstance() { - if (!m_pInstance) { - m_pInstance = new RenderManager(); + if (!g_pInstance) { + g_pInstance = new RenderManager(); } - return m_pInstance; + return g_pInstance; } private: - static RenderManager *m_pInstance; - std::map mPages; + static RenderManager *g_pInstance; + std::map pages; }; } diff --git a/weex_core/Source/core/render/node/factory/render_creator.cpp b/weex_core/Source/core/render/node/factory/render_creator.cpp index 471e31212a..f3ecdad911 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.cpp +++ b/weex_core/Source/core/render/node/factory/render_creator.cpp @@ -29,7 +29,7 @@ namespace WeexCore { - RenderCreator *RenderCreator::m_pInstance = nullptr; + RenderCreator *RenderCreator::g_pInstance = nullptr; IRenderObject *RenderCreator::CreateRender(const std::string &type, const std::string &ref) { IRenderFactory *factory; diff --git a/weex_core/Source/core/render/node/factory/render_creator.h b/weex_core/Source/core/render/node/factory/render_creator.h index 593eb5703f..b78a48743d 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.h +++ b/weex_core/Source/core/render/node/factory/render_creator.h @@ -36,8 +36,8 @@ namespace WeexCore { class Garbo { public: ~Garbo() { - if (RenderCreator::m_pInstance) { - delete RenderCreator::m_pInstance; + if (RenderCreator::g_pInstance) { + delete RenderCreator::g_pInstance; } } }; @@ -47,16 +47,16 @@ namespace WeexCore { public: static RenderCreator *GetInstance() { - if (!m_pInstance) { - m_pInstance = new RenderCreator(); + if (!g_pInstance) { + g_pInstance = new RenderCreator(); } - return m_pInstance; + return g_pInstance; } IRenderObject *CreateRender(const std::string &type, const std::string &ref); private: - static RenderCreator *m_pInstance; + static RenderCreator *g_pInstance; }; } diff --git a/weex_core/Source/core/render/node/factory/render_object_interface.h b/weex_core/Source/core/render/node/factory/render_object_interface.h index 79e6e479fe..13d2aaf5b9 100644 --- a/weex_core/Source/core/render/node/factory/render_object_interface.h +++ b/weex_core/Source/core/render/node/factory/render_object_interface.h @@ -30,27 +30,27 @@ namespace WeexCore { public: inline void SetRef(std::string ref) { - mRef = ref; + this->ref = ref; } inline const std::string &Ref() const { - return mRef; + return this->ref; } - inline void SetPageId(std::string pageId) { - this->mPageId = pageId; + inline void SetPageId(std::string page_id) { + this->page_id = page_id; } inline const std::string &PageId() const { - return mPageId; + return this->page_id; } inline void SetType(std::string type) { - mType = type; + this->tyle = type; } inline const std::string &Type() const { - return mType; + return this->tyle; } inline void copyFrom(IRenderObject *src) { @@ -62,9 +62,9 @@ namespace WeexCore { private: - std::string mPageId = ""; - std::string mRef = ""; - std::string mType = ""; + std::string page_id = ""; + std::string ref = ""; + std::string tyle = ""; }; } diff --git a/weex_core/Source/core/render/node/render_appbar.cpp b/weex_core/Source/core/render/node/render_appbar.cpp index 9a6a766a76..d97c0d4815 100644 --- a/weex_core/Source/core/render/node/render_appbar.cpp +++ b/weex_core/Source/core/render/node/render_appbar.cpp @@ -24,10 +24,10 @@ namespace WeexCore { std::map *RenderAppBar::GetDefaultStyle() { - defaultNavWidth = getFloat( + this->default_nav_width = getFloat( WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); - defaultOverflowWidth = getFloat( + this->default_overflow_width = getFloat( WXCoreEnvironment::getInstance()->GetOption("defaultOverflowWidth").c_str()); std::string appbar_color = WXCoreEnvironment::getInstance()->GetOption("appbar_color"); @@ -58,8 +58,8 @@ namespace WeexCore { value, 0, [=](float foo) { - setPadding(kPaddingLeft, foo + defaultNavWidth), - setPadding(kPaddingRight, foo + defaultOverflowWidth), + setPadding(kPaddingLeft, foo + this->default_nav_width), + setPadding(kPaddingRight, foo + this->default_overflow_width), setPadding(kPaddingTop, foo), setPadding(kPaddingBottom, foo); }); @@ -68,14 +68,14 @@ namespace WeexCore { UpdateStyleInternal(key, value, 0, - [=](float foo) { setPadding(kPaddingLeft, foo + defaultNavWidth); }); + [=](float foo) { setPadding(kPaddingLeft, foo + this->default_nav_width); }); return kTypePadding; } else if (key == PADDING_RIGHT) { UpdateStyleInternal(key, value, 0, [=](float foo) { - setPadding(kPaddingRight, foo + defaultOverflowWidth); + setPadding(kPaddingRight, foo + this->default_overflow_width); }); return kTypePadding; } else { diff --git a/weex_core/Source/core/render/node/render_appbar.h b/weex_core/Source/core/render/node/render_appbar.h index 7259bbb134..4772b10d3a 100644 --- a/weex_core/Source/core/render/node/render_appbar.h +++ b/weex_core/Source/core/render/node/render_appbar.h @@ -38,8 +38,8 @@ namespace WeexCore { private: - float defaultNavWidth; - float defaultOverflowWidth; + float default_nav_width; + float default_overflow_width; }; } diff --git a/weex_core/Source/core/render/node/render_list.cpp b/weex_core/Source/core/render/node/render_list.cpp index 8c5042ca98..89ac63cae8 100644 --- a/weex_core/Source/core/render/node/render_list.cpp +++ b/weex_core/Source/core/render/node/render_list.cpp @@ -28,32 +28,32 @@ namespace WeexCore { RenderList::~RenderList() { - if (cellSlotsCopys.size() > 0) { - for (auto it = cellSlotsCopys.begin(); it != cellSlotsCopys.end(); ++it) { + if (this->cell_slots_copys.size() > 0) { + for (auto it = this->cell_slots_copys.begin(); it != this->cell_slots_copys.end(); ++it) { RenderObject *child = *it; if (child) { delete child; child = nullptr; } } - cellSlotsCopys.clear(); + this->cell_slots_copys.clear(); } - if (cellSlots.size() > 0) { - for (auto it = cellSlots.begin(); it != cellSlots.end(); ++it) { + if (this->cell_slots.size() > 0) { + for (auto it = this->cell_slots.begin(); it != this->cell_slots.end(); ++it) { RenderObject *child = *it; if (child) { delete child; child = nullptr; } } - cellSlots.clear(); + this->cell_slots.clear(); } } void RenderList::addCellSlotCopyTrack(RenderObject *cellSlot) { cellSlot->setParent(this, cellSlot); - cellSlotsCopys.push_back(cellSlot); + this->cell_slots_copys.push_back(cellSlot); } std::map *RenderList::GetDefaultStyle() { @@ -72,11 +72,11 @@ namespace WeexCore { std::string prop = isVertical ? HEIGHT : WIDTH; - if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { - mIsSetFlex = true; + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex) { + this->is_set_flex = true; style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { - mIsSetFlex = true; + } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex) { + this->is_set_flex = true; style->insert(std::pair(FLEX, "1")); } @@ -84,12 +84,12 @@ namespace WeexCore { } void RenderList::setFlex(const float flex) { - mIsSetFlex = true; + this->is_set_flex = true; WXCoreLayoutNode::setFlex(flex); } std::map *RenderList::GetDefaultAttr() { - if (!mIsPreCalculateCellWidth) { + if (!this->is_pre_calculate_cell_width) { preCalculateCellWidth(); } return nullptr; @@ -98,55 +98,65 @@ namespace WeexCore { void RenderList::preCalculateCellWidth() { std::map *attrs = new std::map(); if (Attributes() != nullptr) { - mColumnCount = getColumnCount(); - mColumnWidth = getColumnWidth(); - mColumnGap = getColumnGap(); + this->column_count = getColumnCount(); + this->column_width = getColumnWidth(); + this->column_gap = getColumnGap(); - mLeftGap = getLeftGap(); - mRightGap = getRightGap(); + this->left_gap = getLeftGap(); + this->right_gap = getRightGap(); - mAvailableWidth = + this->available_width = getStyleWidth() - getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - getWebPxByWidth(getPaddingRight(), GetRenderPage()->ViewPortWidth()); - if (AUTO_VALUE == mColumnCount && AUTO_VALUE == mColumnWidth) { - mColumnCount = COLUMN_COUNT_NORMAL; - mColumnWidth = (mAvailableWidth - ((mColumnCount - 1) * mColumnGap)) / mColumnCount; - mColumnWidth = mColumnWidth > 0 ? mColumnWidth : 0; - } else if (AUTO_VALUE == mColumnWidth && AUTO_VALUE != mColumnCount) { - mColumnWidth = - (mAvailableWidth - mLeftGap - mRightGap - ((mColumnCount - 1) * mColumnGap)) / - mColumnCount; - mColumnWidth = mColumnWidth > 0 ? mColumnWidth : 0; - } else if (AUTO_VALUE != mColumnWidth && AUTO_VALUE == mColumnCount) { - mColumnCount = (int) round( - (mAvailableWidth + mColumnGap) / (mColumnWidth + mColumnGap) - 0.5f); - mColumnCount = mColumnCount > 0 ? mColumnCount : 1; - if (mColumnCount <= 0) { - mColumnCount = COLUMN_COUNT_NORMAL; + if (AUTO_VALUE == this->column_count && AUTO_VALUE == this->column_width) { + this->column_count = COLUMN_COUNT_NORMAL; + this->column_width = + (this->available_width - ((this->column_count - 1) * this->column_gap)) / + this->column_count; + this->column_width = this->column_width > 0 ? this->column_width : 0; + } else if (AUTO_VALUE == this->column_width && AUTO_VALUE != this->column_count) { + this->column_width = + (this->available_width - this->left_gap - this->right_gap - + ((this->column_count - 1) * this->column_gap)) / + this->column_count; + this->column_width = this->column_width > 0 ? this->column_width : 0; + } else if (AUTO_VALUE != this->column_width && AUTO_VALUE == this->column_count) { + this->column_count = (int) round( + (this->available_width + this->column_gap) / (this->column_width + this->column_gap) - + 0.5f); + this->column_count = this->column_count > 0 ? this->column_count : 1; + if (this->column_count <= 0) { + this->column_count = COLUMN_COUNT_NORMAL; } - mColumnWidth = - ((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; + this->column_width = + ((this->available_width + this->column_gap - this->left_gap - this->right_gap) / + this->column_count) - this->column_gap; - } else if (AUTO_VALUE != mColumnWidth && AUTO_VALUE != mColumnCount) { + } else if (AUTO_VALUE != this->column_width && AUTO_VALUE != this->column_count) { int columnCount = (int) round( - (mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / (mColumnWidth + mColumnGap) - + (this->available_width + this->column_gap - this->left_gap - this->right_gap) / + (this->column_width + this->column_gap) - 0.5f); - mColumnCount = columnCount > mColumnCount ? mColumnCount : columnCount; - if (mColumnCount <= 0) { - mColumnCount = COLUMN_COUNT_NORMAL; + this->column_count = columnCount > this->column_count ? this->column_count : columnCount; + if (this->column_count <= 0) { + this->column_count = COLUMN_COUNT_NORMAL; } - mColumnWidth = - ((mAvailableWidth + mColumnGap - mLeftGap - mRightGap) / mColumnCount) - mColumnGap; + this->column_width = + ((this->available_width + this->column_gap - this->left_gap - this->right_gap) / + this->column_count) - this->column_gap; } std::string spanOffsets = calcSpanOffset(); - mIsPreCalculateCellWidth = true; - if (getColumnCount() > 0 || getColumnWidth() > 0 || mColumnCount > COLUMN_COUNT_NORMAL) { - attrs->insert(std::pair(COLUMN_COUNT, to_string(mColumnCount))); - attrs->insert(std::pair(COLUMN_GAP, to_string(mColumnGap))); - attrs->insert(std::pair(COLUMN_WIDTH, to_string(mColumnWidth))); + this->is_pre_calculate_cell_width = true; + if (getColumnCount() > 0 || getColumnWidth() > 0 || + this->column_count > COLUMN_COUNT_NORMAL) { + attrs->insert( + std::pair(COLUMN_COUNT, to_string(this->column_count))); + attrs->insert(std::pair(COLUMN_GAP, to_string(this->column_gap))); + attrs->insert( + std::pair(COLUMN_WIDTH, to_string(this->column_width))); } if (spanOffsets.length() > 0) { attrs->insert(std::pair(SPAN_OFFSETS, to_string(spanOffsets))); @@ -171,13 +181,14 @@ namespace WeexCore { std::string RenderList::calcSpanOffset() { std::string spanOffsets; - if (mLeftGap > 0 || mRightGap > 0) { + if (this->left_gap > 0 || this->right_gap > 0) { spanOffsets.append("["); - for (int i = 0; i < mColumnCount; i++) { - float spanOffset = mLeftGap + i * ((mColumnWidth + mColumnGap) - - (mAvailableWidth + mColumnGap) / mColumnCount); + for (int i = 0; i < this->column_count; i++) { + float spanOffset = this->left_gap + i * ((this->column_width + this->column_gap) - + (this->available_width + this->column_gap) / + this->column_count); spanOffsets.append(to_string(spanOffset)); - if (i != mColumnCount - 1) { + if (i != this->column_count - 1) { spanOffsets.append(","); } } @@ -207,17 +218,17 @@ namespace WeexCore { && (child->Type() == kRenderCellSlot || child->Type() == kRenderCell || child->Type() == kRenderHeader)) { child->setParent(this, child); - cellSlots.insert(cellSlots.end(), child); + this->cell_slots.insert(this->cell_slots.end(), child); index = -1; } else { index = RenderObject::AddRenderObject(index, child); } - if (!mIsPreCalculateCellWidth) { + if (!this->is_pre_calculate_cell_width) { preCalculateCellWidth(); } - if (mColumnWidth != 0 && !isnan(mColumnWidth)) { + if (this->column_width != 0 && !isnan(this->column_width)) { AddRenderObjectWidth(child, false); } return index; @@ -226,11 +237,11 @@ namespace WeexCore { void RenderList::AddRenderObjectWidth(RenderObject *child, const bool updating) { if (Type() == kRenderWaterfall || Type() == kRenderRecycleList) { if (child->Type() == kRenderHeader || child->Type() == kRenderFooter) { - child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); + child->ApplyStyle(WIDTH, to_string(this->available_width), updating); } else if (child->IsSticky()) { - child->ApplyStyle(WIDTH, to_string(mAvailableWidth), updating); + child->ApplyStyle(WIDTH, to_string(this->available_width), updating); } else if (child->Type() == kRenderCell || child->Type() == kRenderCellSlot) { - child->ApplyStyle(WIDTH, to_string(mColumnWidth), updating); + child->ApplyStyle(WIDTH, to_string(this->column_width), updating); } } } @@ -242,7 +253,7 @@ namespace WeexCore { !GetAttr(COLUMN_WIDTH).empty()) { preCalculateCellWidth(); - if (mColumnWidth == 0 && isnan(mColumnWidth)) { + if (this->column_width == 0 && isnan(this->column_width)) { return; } diff --git a/weex_core/Source/core/render/node/render_list.h b/weex_core/Source/core/render/node/render_list.h index 16d09dc4c8..ad0417c533 100644 --- a/weex_core/Source/core/render/node/render_list.h +++ b/weex_core/Source/core/render/node/render_list.h @@ -67,21 +67,21 @@ namespace WeexCore { } inline std::vector &CellSlots() { - return cellSlots; + return cell_slots; } private: - bool mIsPreCalculateCellWidth = false; - int mColumnCount = COLUMN_COUNT_NORMAL; - float mColumnWidth = AUTO_VALUE; - float mAvailableWidth = 0; - float mColumnGap = COLUMN_GAP_NORMAL; - bool mIsSetFlex = false; - std::vector cellSlots; - std::vector cellSlotsCopys; - float mLeftGap = 0; - float mRightGap = 0; + bool is_pre_calculate_cell_width = false; + int column_count = COLUMN_COUNT_NORMAL; + float column_width = AUTO_VALUE; + float available_width = 0; + float column_gap = COLUMN_GAP_NORMAL; + bool is_set_flex = false; + std::vector cell_slots; + std::vector cell_slots_copys; + float left_gap = 0; + float right_gap = 0; }; } diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp index 04cc24a86d..a13d6d1a52 100644 --- a/weex_core/Source/core/render/node/render_object.cpp +++ b/weex_core/Source/core/render/node/render_object.cpp @@ -29,29 +29,29 @@ namespace WeexCore { RenderObject::RenderObject() { - mStyles = new std::map(); - mAttributes = new std::map(); - mEvents = new std::set(); - mIsRootRender = false; + this->styles = new std::map(); + this->attributes = new std::map(); + this->events = new std::set(); + this->is_root_render = false; } RenderObject::~RenderObject() { - mParentRender = nullptr; + this->parent_render = nullptr; - if (mStyles != nullptr) { - delete mStyles; - mStyles = nullptr; + if (this->styles != nullptr) { + delete this->styles; + this->styles = nullptr; } - if (mAttributes != nullptr) { - delete mAttributes; - mAttributes = nullptr; + if (this->attributes != nullptr) { + delete this->attributes; + this->attributes = nullptr; } - if (mEvents != nullptr) { - delete mEvents; - mEvents = nullptr; + if (this->events != nullptr) { + delete this->events; + this->events = nullptr; } for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { @@ -130,7 +130,7 @@ namespace WeexCore { bool insert = false; if (value.length() > 0 && (value.at(0) == JSON_OBJECT_MARK_CHAR || value.at(0) == JSON_ARRAY_MARK_CHAR)) { - mapInsertOrAssign(mStyles, key, value); + mapInsertOrAssign(this->styles, key, value); insert = true; } @@ -184,9 +184,9 @@ namespace WeexCore { } else if (key == POSITION) { setStylePositionType(GetWXCorePositionType(value)); if (value == STICKY) { - mIsSticky = true; + this->is_sticky = true; } - mapInsertOrAssign(mStyles, key, value); + mapInsertOrAssign(this->styles, key, value); return kTypeStyle; } else if (key == LEFT) { UpdateStyleInternal(key, value, NAN, @@ -253,18 +253,18 @@ namespace WeexCore { return kTypePadding; } else { if (!insert) { - mapInsertOrAssign(mStyles, key, value); + mapInsertOrAssign(this->styles, key, value); } return kTypeStyle; } } const std::string RenderObject::GetStyle(const std::string &key) { - if (mStyles == nullptr) + if (this->styles == nullptr) return ""; - std::map::iterator iter = mStyles->find(key); - if (iter != mStyles->end()) { + std::map::iterator iter = this->styles->find(key); + if (iter != this->styles->end()) { return iter->second; } else { return ""; @@ -272,11 +272,11 @@ namespace WeexCore { } const std::string RenderObject::GetAttr(const std::string &key) { - if (mAttributes == nullptr) + if (this->attributes == nullptr) return ""; - std::map::iterator iter = mAttributes->find(key); - if (iter != mAttributes->end()) { + std::map::iterator iter = this->attributes->find(key); + if (iter != this->attributes->end()) { return iter->second; } else { return ""; @@ -284,8 +284,8 @@ namespace WeexCore { } float RenderObject::GetViewPortWidth() { - if (mViewPortWidth >= 0) - return mViewPortWidth; + if (this->viewport_width >= 0) + return this->viewport_width; RenderPage *page = GetRenderPage(); if (page == nullptr) @@ -374,9 +374,9 @@ namespace WeexCore { void RenderObject::copyFrom(RenderObject *src) { IRenderObject::copyFrom(src); - this->mStyles->insert(src->mStyles->begin(), src->mStyles->end()); - this->mAttributes->insert(src->mAttributes->begin(), src->mAttributes->end()); - this->mEvents->insert(src->mEvents->begin(), src->mEvents->end()); + this->styles->insert(src->styles->begin(), src->styles->end()); + this->attributes->insert(src->attributes->begin(), src->attributes->end()); + this->events->insert(src->events->begin(), src->events->end()); } void RenderObject::mapInsertOrAssign(std::map *targetMap, @@ -408,7 +408,7 @@ namespace WeexCore { } void RenderObject::UpdateAttr(std::string key, std::string value) { - mapInsertOrAssign(mAttributes, key, value); + mapInsertOrAssign(this->attributes, key, value); } StyleType RenderObject::UpdateStyle(std::string key, std::string value) { diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 9445243447..1e519aff48 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -117,7 +117,7 @@ namespace WeexCore { } inline void AddAttr(std::string key, std::string value) { - mapInsertOrAssign(mAttributes, key, value); + mapInsertOrAssign(this->attributes, key, value); } inline StyleType AddStyle(std::string key, std::string value) { @@ -125,57 +125,57 @@ namespace WeexCore { } inline void AddEvent(std::string event) { - if (mEvents == nullptr || mEvents->empty()) { - mEvents = new std::set(); + if (this->events == nullptr || this->events->empty()) { + this->events = new std::set(); } - mEvents->insert(event); + this->events->insert(event); } inline void RemoveEvent(const std::string &event) { - mEvents->erase(event); + this->events->erase(event); } inline void SetParentRender(RenderObject *render) { - mParentRender = render; + this->parent_render = render; } inline RenderObject *GetParentRender() { - return mParentRender; + return this->parent_render; } inline std::map *Styles() const { - return mStyles; + return this->styles; } inline std::map * Attributes() const { - return mAttributes; + return this->attributes; } inline std::set *Events() const { - return mEvents; + return this->events; } inline void MarkRootRender() { - mIsRootRender = true; + this->is_root_render = true; } inline bool IsRootRender() { - return mIsRootRender; + return this->is_root_render; } inline bool IsSticky() { - return mIsSticky; + return this->is_sticky; } private: - RenderObject *mParentRender; - std::map *mStyles; - std::map *mAttributes; - std::set *mEvents; - float mViewPortWidth = -1; - bool mIsRootRender; - bool mIsSticky = false; + RenderObject *parent_render; + std::map *styles; + std::map *attributes; + std::set *events; + float viewport_width = -1; + bool is_root_render; + bool is_sticky = false; }; } //end WeexCore #endif //RenderObject_h diff --git a/weex_core/Source/core/render/node/render_scroller.cpp b/weex_core/Source/core/render/node/render_scroller.cpp index 563f7dbe2f..4844383ff4 100644 --- a/weex_core/Source/core/render/node/render_scroller.cpp +++ b/weex_core/Source/core/render/node/render_scroller.cpp @@ -35,9 +35,9 @@ namespace WeexCore { std::string prop = isVertical ? HEIGHT : WIDTH; - if (prop == HEIGHT && isnan(getStyleHeight()) && !mIsSetFlex) { + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex) { style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) { + } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex) { style->insert(std::pair(FLEX, "1")); } @@ -45,7 +45,7 @@ namespace WeexCore { } void RenderScroller::setFlex(const float flex) { - mIsSetFlex = true; + this->is_set_flex = true; WXCoreLayoutNode::setFlex(flex); } } diff --git a/weex_core/Source/core/render/node/render_scroller.h b/weex_core/Source/core/render/node/render_scroller.h index cb4e1f0918..2868d8bbbb 100644 --- a/weex_core/Source/core/render/node/render_scroller.h +++ b/weex_core/Source/core/render/node/render_scroller.h @@ -24,14 +24,14 @@ namespace WeexCore { class RenderScroller : public RenderObject { - bool mIsSetFlex = false; + bool is_set_flex = false; std::map *GetDefaultStyle(); void setFlex(const float flex); inline float calcFreeSpaceAlongMainAxis(const float &width, const float &height, - const float ¤tLength) const override { + const float ¤t_length) const override { return NAN; } diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index 82e14d73bf..a3f078f181 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -42,19 +42,17 @@ namespace WeexCore { - static bool splitScreenRendering = false; - - RenderPage::RenderPage(std::string pageId) { + RenderPage::RenderPage(std::string page_id) { #if RENDER_LOG LOGD("[RenderPage] new RenderPage >>>> pageId: %s", pageId.c_str()); #endif - mPageId = pageId; - mWXCorePerformance = new RenderPerformance(); - mViewPortWidth = kDefaultViewPortWidth; - renderPageSize.first = WXCoreEnvironment::getInstance()->DeviceWidth(); - renderPageSize.second = NAN; + this->page_id = page_id; + this->render_performance = new RenderPerformance(); + this->viewport_width = kDefaultViewPortWidth; + this->render_page_size.first = WXCoreEnvironment::getInstance()->DeviceWidth(); + this->render_page_size.second = NAN; } RenderPage::~RenderPage() { @@ -63,21 +61,21 @@ namespace WeexCore { LOGD("[RenderPage] Delete RenderPage >>>> pageId: %s", mPageId.c_str()); #endif - mRenderObjectRegisterMap.clear(); + this->render_object_registers.clear(); - if (render_root != nullptr) { - delete render_root; - render_root = nullptr; + if (this->render_root != nullptr) { + delete this->render_root; + this->render_root = nullptr; } - if (mWXCorePerformance != nullptr) { - delete mWXCorePerformance; - mWXCorePerformance = nullptr; + if (this->render_performance != nullptr) { + delete this->render_performance; + this->render_performance = nullptr; } } void RenderPage::CalculateLayout() { - if (render_root == nullptr || !render_root->ViewInit()) + if (this->render_root == nullptr || !this->render_root->ViewInit()) return; #if RENDER_LOG @@ -85,38 +83,11 @@ namespace WeexCore { #endif long long startTime = getCurrentTime(); - render_root->LayoutBefore(); - render_root->calculateLayout(renderPageSize); - render_root->LayoutAfter(); + this->render_root->LayoutBefore(); + this->render_root->calculateLayout(this->render_page_size); + this->render_root->LayoutAfter(); CssLayoutTime(getCurrentTime() - startTime); - - if (splitScreenRendering) { - if (mAlreadyCreateFinish) { - TraverseTree(render_root, 0); - } else { - float deviceHeight = WXCoreEnvironment::getInstance()->DeviceHeight(); - float deviceWidth = WXCoreEnvironment::getInstance()->DeviceWidth(); - float radio = deviceWidth / (mViewPortWidth * kLayoutFirstScreenOverflowRadio); - - switch (render_root->getFlexDirection()) { - case kFlexDirectionColumn: - case kFlexDirectionColumnReverse: - if (render_root->getLargestMainSize() * radio > deviceHeight / 3) { - TraverseTree(render_root, 0); - } - break; - case kFlexDirectionRow: - case kFlexDirectionRowReverse: - default: - if (render_root->getLargestMainSize() * radio > deviceWidth / 3) { - TraverseTree(render_root, 0); - } - break; - } - } - } else { - TraverseTree(render_root, 0); - } + TraverseTree(this->render_root, 0); } void RenderPage::TraverseTree(RenderObject *render,int index) { @@ -144,14 +115,14 @@ namespace WeexCore { SetRootRenderObject(root); - if (isnan(render_root->getStyleWidth())) { - render_root->setStyleWidthLevel(FALLBACK_STYLE); + if (isnan(this->render_root->getStyleWidth())) { + this->render_root->setStyleWidthLevel(FALLBACK_STYLE); if (GetRenderContainerWidthWrapContent()) - render_root->setStyleWidthToNAN(); + this->render_root->setStyleWidthToNAN(); else - render_root->setStyleWidth(WXCoreEnvironment::getInstance()->DeviceWidth(), false); + this->render_root->setStyleWidth(WXCoreEnvironment::getInstance()->DeviceWidth(), false); } else { - render_root->setStyleWidthLevel(CSS_STYLE); + this->render_root->setStyleWidthLevel(CSS_STYLE); } PushRenderToRegisterMap(root); @@ -161,25 +132,25 @@ namespace WeexCore { void RenderPage::SetRootRenderObject(RenderObject *root) { if (root != nullptr) { - render_root = root; - render_root->MarkRootRender(); + this->render_root = root; + this->render_root->MarkRootRender(); } } - bool RenderPage::AddRenderObject(const std::string &parentRef, int insertPosition, RenderObject *child) { - RenderObject *parent = GetRenderObject(parentRef); + bool RenderPage::AddRenderObject(const std::string &parent_ref, int insert_posiotn, RenderObject *child) { + RenderObject *parent = GetRenderObject(parent_ref); if (parent == nullptr || child == nullptr) { return false; } // add child to Render Tree - insertPosition = parent->AddRenderObject(insertPosition, child); - if (insertPosition < -1) { + insert_posiotn = parent->AddRenderObject(insert_posiotn, child); + if (insert_posiotn < -1) { return false; } PushRenderToRegisterMap(child); - SendAddElementAction(child, parent, insertPosition, false); + SendAddElementAction(child, parent, insert_posiotn, false); Batch(); return true; @@ -203,13 +174,13 @@ namespace WeexCore { return true; } - bool RenderPage::MoveRenderObject(const std::string &ref, const std::string &parentRef, int index) { + bool RenderPage::MoveRenderObject(const std::string &ref, const std::string &parent_ref, int index) { RenderObject *child = GetRenderObject(ref); if (child == nullptr) return false; RenderObject *oldParent = child->GetParentRender(); - RenderObject *newParent = GetRenderObject(parentRef); + RenderObject *newParent = GetRenderObject(parent_ref); if (oldParent == nullptr || newParent == nullptr) return false; @@ -226,7 +197,7 @@ namespace WeexCore { child->getParent()->removeChild(child); newParent->addChildAt(child, index); - SendMoveElementAction(ref, parentRef, index); + SendMoveElementAction(ref, parent_ref, index); return true; } @@ -241,7 +212,7 @@ namespace WeexCore { std::vector> *border = nullptr; bool flag = false; - int result = WeexCoreManager::getInstance()->getPlatformBridge()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); + int result = WeexCoreManager::getInstance()->getPlatformBridge()->callHasTransitionPros(this->page_id.c_str(), ref.c_str(), src); //int result = Bridge_Impl_Android::getInstance()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); if (result == 1) { @@ -363,27 +334,27 @@ namespace WeexCore { return true; } - void RenderPage::SetDefaultHeightAndWidthIntoRootRender(const float defaultWidth, - const float defaultHeight, - const bool isWidthWrapContent, const bool isHeightWrapContent) { - renderPageSize.first = defaultWidth; - renderPageSize.second = defaultHeight; - if (render_root->getStyleWidthLevel() >= INSTANCE_STYLE) { - render_root->setStyleWidthLevel(INSTANCE_STYLE); - if (isWidthWrapContent) { + void RenderPage::SetDefaultHeightAndWidthIntoRootRender(const float default_width, + const float default_height, + const bool is_width_wrap_content, const bool is_height_wrap_content) { + this->render_page_size.first = default_width; + this->render_page_size.second = default_height; + if (this->render_root->getStyleWidthLevel() >= INSTANCE_STYLE) { + this->render_root->setStyleWidthLevel(INSTANCE_STYLE); + if (is_width_wrap_content) { SetRenderContainerWidthWrapContent(true); - render_root->setStyleWidthToNAN(); - renderPageSize.first = NAN; + this->render_root->setStyleWidthToNAN(); + this->render_page_size.first = NAN; } else { - render_root->setStyleWidth(defaultWidth, true); + this->render_root->setStyleWidth(default_width, true); } updateDirty(true); } - if (render_root->getStyleHeightLevel() >= INSTANCE_STYLE) { - if(!isHeightWrapContent) { - render_root->setStyleHeightLevel(INSTANCE_STYLE); - render_root->setStyleHeight(defaultHeight); + if (this->render_root->getStyleHeightLevel() >= INSTANCE_STYLE) { + if(!is_height_wrap_content) { + this->render_root->setStyleHeightLevel(INSTANCE_STYLE); + this->render_root->setStyleHeight(default_height); updateDirty(true); } } @@ -398,7 +369,7 @@ namespace WeexCore { render->AddEvent(event); - RenderAction *action = new RenderActionAddEvent(mPageId, ref, event); + RenderAction *action = new RenderActionAddEvent(this->page_id, ref, event); PostRenderAction(action); return true; } @@ -410,25 +381,24 @@ namespace WeexCore { render->RemoveEvent(event); - RenderAction *action = new RenderActionRemoveEvent(mPageId, ref, event); + RenderAction *action = new RenderActionRemoveEvent(this->page_id, ref, event); PostRenderAction(action); return true; } bool RenderPage::CreateFinish() { - if (render_root == nullptr) { + if (this->render_root == nullptr) { return false; } - mAlreadyCreateFinish = true; Batch(); SendCreateFinishAction(); return true; } void RenderPage::LayoutImmediately() { - if(isDirty() && useVSync){ + if(isDirty() && kUseVSync){ CalculateLayout(); - needLayout.store(false); + this->need_layout.store(false); updateDirty(false); } } @@ -444,7 +414,7 @@ namespace WeexCore { return; std::string ref = render->Ref(); - mRenderObjectRegisterMap.insert(std::pair(ref, render)); + this->render_object_registers.insert(std::pair(ref, render)); for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { RenderObject* child = static_cast(*it); @@ -458,7 +428,7 @@ namespace WeexCore { if (render == nullptr) return; - mRenderObjectRegisterMap.erase(render->Ref()); + this->render_object_registers.erase(render->Ref()); for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { RenderObject* child = static_cast(*it); @@ -489,21 +459,21 @@ namespace WeexCore { } } - void RenderPage::SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, bool willLayout) { + void RenderPage::SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, bool will_layout) { if (child == nullptr || parent == nullptr) return; if(parent != nullptr && parent->Type() == WeexCore::kRenderRecycleList){ - willLayout = false; + will_layout = false; } - RenderAction *action = new RenderActionAddElement(PageId(), child, parent, index, willLayout); + RenderAction *action = new RenderActionAddElement(PageId(), child, parent, index, will_layout); PostRenderAction(action); Index i = 0; for(auto it = child->ChildListIterBegin(); it != child->ChildListIterEnd(); it++) { RenderObject* grandson = static_cast(*it); if (grandson != nullptr) { - SendAddElementAction(grandson, child, i, true, willLayout); + SendAddElementAction(grandson, child, i, true, will_layout); } ++i; } @@ -514,7 +484,7 @@ namespace WeexCore { for(auto it = cellSlots.begin(); it != cellSlots.end(); it++) { RenderObject* grandson = static_cast(*it); if (grandson != nullptr) { - SendAddElementAction(grandson, child, -1, true, willLayout); + SendAddElementAction(grandson, child, -1, true, will_layout); } ++i; } @@ -530,8 +500,8 @@ namespace WeexCore { PostRenderAction(action); } - void RenderPage::SendMoveElementAction(const std::string &ref, const std::string &parentRef, int index) { - RenderAction *action = new RenderActionMoveElement(PageId(), ref, parentRef, index); + void RenderPage::SendMoveElementAction(const std::string &ref, const std::string &parent_ref, int index) { + RenderAction *action = new RenderActionMoveElement(PageId(), ref, parent_ref, index); PostRenderAction(action); } @@ -586,45 +556,45 @@ namespace WeexCore { } void RenderPage::CssLayoutTime(const long long &time) { - if (mWXCorePerformance != nullptr) - mWXCorePerformance->cssLayoutTime += time; + if (this->render_performance != nullptr) + this->render_performance->cssLayoutTime += time; } void RenderPage::ParseJsonTime(const long long &time) { - if (mWXCorePerformance != nullptr) - mWXCorePerformance->parseJsonTime += time; + if (this->render_performance != nullptr) + this->render_performance->parseJsonTime += time; } void RenderPage::CallBridgeTime(const long long &time) { - if (mWXCorePerformance != nullptr) - mWXCorePerformance->callBridgeTime += time; + if (this->render_performance != nullptr) + this->render_performance->callBridgeTime += time; } std::vector RenderPage::PrintFirstScreenLog() { std::vector ret; - if (mWXCorePerformance != nullptr) - ret = mWXCorePerformance->PrintPerformanceLog(onFirstScreen); + if (this->render_performance != nullptr) + ret = this->render_performance->PrintPerformanceLog(onFirstScreen); return ret; } std::vector RenderPage::PrintRenderSuccessLog() { std::vector ret; - if (mWXCorePerformance != nullptr) - ret = mWXCorePerformance->PrintPerformanceLog(onRenderSuccess); + if (this->render_performance != nullptr) + ret = this->render_performance->PrintPerformanceLog(onRenderSuccess); return ret; } void RenderPage::Batch() { - if ((useVSync && needLayout.load()) || !useVSync) { + if ((kUseVSync && this->need_layout.load()) || !kUseVSync) { CalculateLayout(); - needLayout.store(false); + this->need_layout.store(false); updateDirty(false); } } RenderObject* RenderPage::GetRenderObject(const std::string &ref) { - std::map::iterator iter = mRenderObjectRegisterMap.find(ref); - if (iter != mRenderObjectRegisterMap.end()) { + std::map::iterator iter = this->render_object_registers.find(ref); + if (iter != this->render_object_registers.end()) { return iter->second; } else { return nullptr; @@ -632,6 +602,7 @@ namespace WeexCore { } void RenderPage::OnRenderPageInit() { + } void RenderPage::OnRenderProcessStart() { @@ -647,5 +618,6 @@ namespace WeexCore { } void RenderPage::OnRenderPageClose() { + } } //namespace WeexCore diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h index 36bc583270..f179bdc5c1 100644 --- a/weex_core/Source/core/render/page/render_page.h +++ b/weex_core/Source/core/render/page/render_page.h @@ -27,8 +27,6 @@ namespace WeexCore { - constexpr float kLayoutFirstScreenOverflowRadio = 1.2f; - class RenderAction; class RenderObject; @@ -47,21 +45,24 @@ namespace WeexCore { void SendCreateBodyAction(RenderObject *render); - void SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, bool willLayout= true); + void + SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, + bool will_layout = true); void SendRemoveElementAction(const std::string &ref); - void SendMoveElementAction(const std::string &ref, const std::string &parentRef, int index); + void SendMoveElementAction(const std::string &ref, const std::string &parent_ref, int index); void SendLayoutAction(RenderObject *render, int index); void SendUpdateStyleAction(RenderObject *render, - std::vector > *style, - std::vector > *margin, - std::vector > *padding, - std::vector > *border); + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border); - void SendUpdateAttrAction(RenderObject *render, std::vector> *attrs); + void SendUpdateAttrAction(RenderObject *render, + std::vector> *attrs); void SendCreateFinishAction(); @@ -71,7 +72,7 @@ namespace WeexCore { public: - explicit RenderPage(std::string pageId); + explicit RenderPage(std::string page_id); ~RenderPage(); @@ -79,18 +80,22 @@ namespace WeexCore { bool CreateRootRender(RenderObject *root); - bool AddRenderObject(const std::string &parentRef, int insertPosiotn, RenderObject *child); + bool AddRenderObject(const std::string &parent_ref, int insert_posiotn, RenderObject *child); bool RemoveRenderObject(const std::string &ref); - bool MoveRenderObject(const std::string &ref, const std::string &parentRef, int index); + bool MoveRenderObject(const std::string &ref, const std::string &parent_ref, int index); - bool UpdateStyle(const std::string &ref, std::vector> *styles); + bool + UpdateStyle(const std::string &ref, std::vector> *styles); - bool UpdateAttr(const std::string &ref, std::vector> *attrs); + bool + UpdateAttr(const std::string &ref, std::vector> *attrs); - void SetDefaultHeightAndWidthIntoRootRender(const float defaultWidth, const float defaultHeight, - const bool isWidthWrapContent, const bool isHeightWrapContent); + void + SetDefaultHeightAndWidthIntoRootRender(const float default_width, const float default_height, + const bool is_width_wrap_content, + const bool is_height_wrap_content); bool AddEvent(const std::string &ref, const std::string &event); @@ -132,51 +137,50 @@ namespace WeexCore { inline std::string PageId() { - return mPageId; + return this->page_id; } inline float ViewPortWidth() const { - return mViewPortWidth; + return this->viewport_width; } - inline void SetViewPortWidth(float viewPortWidth) { - this->mViewPortWidth = viewPortWidth; + inline void SetViewPortWidth(float viewport_width) { + this->viewport_width = viewport_width; } - inline bool isDirty(){ - return dirty.load(); + inline bool isDirty() { + return this->dirty.load(); } - inline void updateDirty(bool dirty){ + inline void updateDirty(bool dirty) { this->dirty.store(dirty); } inline void SetRenderContainerWidthWrapContent(bool wrap) { - this->isRenderContainerWidthWrapContent.store(wrap); + this->is_render_container_width_wrap_content.store(wrap); } inline bool GetRenderContainerWidthWrapContent() { - return isRenderContainerWidthWrapContent.load(); + return this->is_render_container_width_wrap_content.load(); } public: - static constexpr bool useVSync = true; - std::atomic_bool needLayout{false}; - std::atomic_bool hasForeLayoutAction{false}; + static constexpr bool kUseVSync = true; + std::atomic_bool need_layout{false}; + std::atomic_bool has_fore_layout_action{false}; private: - bool mAlreadyCreateFinish = false; - float mViewPortWidth; + float viewport_width; RenderObject *render_root = nullptr; - std::string mPageId; - std::pair renderPageSize; - std::map mRenderObjectRegisterMap; - RenderPerformance *mWXCorePerformance; + std::string page_id; + std::pair render_page_size; + std::map render_object_registers; + RenderPerformance *render_performance; std::atomic_bool dirty{true}; - std::atomic_bool isRenderContainerWidthWrapContent{false}; - std::atomic_bool isRenderContainerHeightWrapContent{false}; + std::atomic_bool is_render_container_width_wrap_content{false}; + std::atomic_bool is_render_container_height_wrap_content{false}; }; } From 1ea9eece497471e019dfba6f6e8cc5661bc3aa68 Mon Sep 17 00:00:00 2001 From: miomin Date: Mon, 11 Jun 2018 15:46:11 +0800 Subject: [PATCH 5/9] [WEEX-42][Core] Fix RenderAction memory leak. --- weex_core/Source/core/render/page/render_page.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index a3f078f181..24d7dd98c4 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -406,6 +406,8 @@ namespace WeexCore { void RenderPage::PostRenderAction(RenderAction *action) { if (action != nullptr) { action->ExecuteAction(); + delete action; + action = nullptr; } } From 4796cf3a0631426640f86200c8d7e26e04517ba3 Mon Sep 17 00:00:00 2001 From: miomin Date: Mon, 11 Jun 2018 17:30:50 +0800 Subject: [PATCH 6/9] [WEEX-442][Core] C++ code style : function name --- ...ative_render_object_utils_impl_android.cpp | 21 +- weex_core/Source/core/layout/layout.h | 11 +- .../measure_func_adapter_impl_android.h | 2 +- weex_core/Source/core/parser/dom_wson.cpp | 2 +- .../action/render_action_add_element.cpp | 46 ++--- .../render/action/render_action_add_element.h | 24 +-- .../render/action/render_action_add_event.cpp | 12 +- .../render/action/render_action_add_event.h | 6 +- .../render_action_appendtree_createfinish.cpp | 8 +- .../render_action_appendtree_createfinish.h | 4 +- .../action/render_action_createbody.cpp | 36 ++-- .../render/action/render_action_createbody.h | 18 +- .../action/render_action_createfinish.cpp | 4 +- .../action/render_action_createfinish.h | 2 +- .../render/action/render_action_layout.cpp | 30 +-- .../core/render/action/render_action_layout.h | 18 +- .../action/render_action_move_element.cpp | 16 +- .../action/render_action_move_element.h | 8 +- .../action/render_action_remove_element.cpp | 8 +- .../action/render_action_remove_element.h | 4 +- .../action/render_action_remove_event.cpp | 12 +- .../action/render_action_remove_event.h | 6 +- .../action/render_action_update_attr.cpp | 12 +- .../render/action/render_action_update_attr.h | 6 +- .../action/render_action_update_style.cpp | 24 +-- .../action/render_action_update_style.h | 12 +- .../core/render/manager/render_manager.cpp | 8 +- .../core/render/manager/render_manager.h | 2 +- .../render/node/factory/render_creator.cpp | 4 +- .../node/factory/render_object_interface.h | 38 ++-- .../Source/core/render/node/render_appbar.cpp | 12 +- .../Source/core/render/node/render_appbar.h | 4 +- .../Source/core/render/node/render_list.cpp | 192 +++++++++--------- .../Source/core/render/node/render_list.h | 51 ++--- .../Source/core/render/node/render_object.cpp | 121 ++++++----- .../Source/core/render/node/render_object.h | 88 ++++---- .../core/render/node/render_scroller.cpp | 10 +- .../Source/core/render/node/render_scroller.h | 6 +- .../Source/core/render/page/render_page.cpp | 30 +-- 39 files changed, 468 insertions(+), 450 deletions(-) diff --git a/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp b/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp index 9fc1a39b94..dcee3376f8 100644 --- a/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp +++ b/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.cpp @@ -80,12 +80,13 @@ static void UpdateRenderObjectAttr(JNIEnv* env, jclass jcaller, static jlong CopyRenderObject(JNIEnv* env, jclass jcaller, jlong ptr){ RenderObject *render = convert_long_to_render_object(ptr); - RenderObject *copy = (RenderObject*)RenderCreator::GetInstance()->CreateRender(render->Type(), render->Ref()); - copy->copyFrom(render); - if(render->Type() == WeexCore::kRenderCellSlot || render->Type() == WeexCore::kRenderCell){ + RenderObject *copy = (RenderObject*)RenderCreator::GetInstance()->CreateRender(render->type(), + render->ref()); + copy->CopyFrom(render); + if(render->type() == WeexCore::kRenderCellSlot || render->type() == WeexCore::kRenderCell){ RenderList* renderList = static_cast(render->getParent()); if(renderList != nullptr){ - renderList->addCellSlotCopyTrack(copy); + renderList->AddCellSlotCopyTrack(copy); }else{ __android_log_print(ANDROID_LOG_ERROR, " LayoutRenderObject","copy error parent null"); } @@ -94,7 +95,7 @@ static jlong CopyRenderObject(JNIEnv* env, jclass jcaller, jlong ptr){ } static void showRenderObjectLayout(RenderObject *renderObject, int level){ - LOGE("RenderObject layout %s %d %p %f %f %f %f ", renderObject->Type().c_str(), + LOGE("RenderObject layout %s %d %p %f %f %f %f ", renderObject->type().c_str(), renderObject->getStypePositionType(), renderObject, renderObject->getLayoutHeight(), renderObject->getLayoutWidth(), renderObject->getLayoutPositionLeft(), renderObject->getLayoutPositionRight()); @@ -123,11 +124,11 @@ static jint LayoutRenderObject(JNIEnv* env, jclass jcaller, } RenderObject *render = convert_long_to_render_object(ptr); - if(render->Type() == WeexCore::kRenderCell || render->Type() == WeexCore::kRenderCellSlot){ + if(render->type() == WeexCore::kRenderCell || render->type() == WeexCore::kRenderCellSlot){ RenderList* renderList = static_cast(render->getParent()); if(renderList != nullptr){ - if(renderList->getColumnCount() > 1 && renderList->getColumnWidth() > 0){ - renderPageSize.first = renderList->getColumnWidth(); + if(renderList->TakeColumnCount() > 1 && renderList->TakeColumnWidth() > 0){ + renderPageSize.first = renderList->TakeColumnWidth(); } } } @@ -137,9 +138,9 @@ static jint LayoutRenderObject(JNIEnv* env, jclass jcaller, render->setStyleWidthLevel(CSS_STYLE); } - render->LayoutBefore(); + render->LayoutBeforeImpl(); render->calculateLayout(renderPageSize); - render->LayoutAfter(); + render->LayoutAfterImpl(); return (jint)render->getLayoutHeight(); } diff --git a/weex_core/Source/core/layout/layout.h b/weex_core/Source/core/layout/layout.h index 7bd32dc549..aaf013e125 100644 --- a/weex_core/Source/core/layout/layout.h +++ b/weex_core/Source/core/layout/layout.h @@ -375,12 +375,13 @@ namespace WeexCore { inline bool isWrapRequired(const float &width, const float &height, const float ¤tLength, const float &childLength) const { - float freeMainSize = calcFreeSpaceAlongMainAxis(width, height, currentLength); + float freeMainSize = CalculateFreeSpaceAlongMainAxis(width, height, currentLength); return !isSingleFlexLine(freeMainSize) && freeMainSize < childLength; } //If width/height is NAN, ret is NAN, which property we use on purpose. - virtual float calcFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤tLength) const{ + virtual float CalculateFreeSpaceAlongMainAxis(const float &width, const float &height, + const float ¤tLength) const{ float ret; if(isMainAxisHorizontal(this)){ ret = width - sumPaddingBorderAlongAxis(this, true) - currentLength; @@ -641,11 +642,11 @@ namespace WeexCore { std::tuple calculateBFCDimension(const std::pair&); - virtual void onLayoutBefore() { + virtual void OnLayoutBefore() { } - virtual void onLayoutAfter(float width, float height) { + virtual void OnLayoutAfter(float width, float height) { } @@ -1017,7 +1018,7 @@ namespace WeexCore { return mCssStyle->mAlignSelf; } - virtual void setFlex(const float flex) { + virtual void set_flex(const float flex) { if (mCssStyle->mFlexGrow != flex) { mCssStyle->mFlexGrow = flex; markDirty(); diff --git a/weex_core/Source/core/layout/measure_func_adapter_impl_android.h b/weex_core/Source/core/layout/measure_func_adapter_impl_android.h index 1795c78aa0..38af8301a5 100644 --- a/weex_core/Source/core/layout/measure_func_adapter_impl_android.h +++ b/weex_core/Source/core/layout/measure_func_adapter_impl_android.h @@ -89,7 +89,7 @@ namespace WeexCore { if (!node->haveMeasureFunc()) { return nullptr; } - return Bridge_Impl_Android::getInstance()->getMeasureFunc(((RenderObject *) node)->PageId().c_str(), convert_render_object_to_long(node)); + return Bridge_Impl_Android::getInstance()->getMeasureFunc(((RenderObject *) node)->page_id().c_str(), convert_render_object_to_long(node)); } }; } diff --git a/weex_core/Source/core/parser/dom_wson.cpp b/weex_core/Source/core/parser/dom_wson.cpp index 46adcd9023..1e636676ab 100644 --- a/weex_core/Source/core/parser/dom_wson.cpp +++ b/weex_core/Source/core/parser/dom_wson.cpp @@ -63,7 +63,7 @@ namespace WeexCore { }else if (0 == strcmp(objectKey.c_str(), "type")) { renderType = parser.nextStringUTF8(parser.nextType()); render = (RenderObject *) RenderCreator::GetInstance()->CreateRender(renderType, ref); - render->SetPageId(pageId); + render->set_page_id(pageId); if (parent != nullptr){ parent->AddRenderObject(index, render); } diff --git a/weex_core/Source/core/render/action/render_action_add_element.cpp b/weex_core/Source/core/render/action/render_action_add_element.cpp index 46cff055b4..aa4fa67773 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.cpp +++ b/weex_core/Source/core/render/action/render_action_add_element.cpp @@ -27,31 +27,31 @@ namespace WeexCore { const RenderObject *render, const RenderObject *parent, int index, bool will_layout) { - this->attributes = render->Attributes(); - this->styles = render->Styles(); - this->events = render->Events(); - this->margins = render->GetMargins(); - this->paddings = render->GetPaddings(); - this->borders = render->GetBorders(); - this->page_id = page_id; - this->component_type = render->Type(); - this->ref = render->Ref(); - this->parent_ref = parent->Ref(); - this->index = index; - this->will_layout = will_layout; + this->attributes_ = render->attributes(); + this->styles_ = render->styles(); + this->events_ = render->events(); + this->margins_ = render->GetMargins(); + this->paddings_ = render->GetPaddings(); + this->borders_ = render->GetBorders(); + this->page_id_ = page_id; + this->component_type_ = render->type(); + this->ref_ = render->ref(); + this->parent_ref_ = parent->ref(); + this->index_ = index; + this->will_layout_ = will_layout; } void RenderActionAddElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(this->page_id.c_str(), - this->component_type.c_str(), - this->ref.c_str(), - this->index, - this->parent_ref.c_str(), - this->styles, - this->attributes, - this->events, this->margins, - this->paddings, - this->borders, - this->will_layout); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(this->page_id_.c_str(), + this->component_type_.c_str(), + this->ref_.c_str(), + this->index_, + this->parent_ref_.c_str(), + this->styles_, + this->attributes_, + this->events_, this->margins_, + this->paddings_, + this->borders_, + this->will_layout_); } } diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index 69b9d06063..be7c6d7db0 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -40,18 +40,18 @@ namespace WeexCore { void ExecuteAction(); public: - std::map *styles; - std::map *attributes; - std::set *events; - WXCoreMargin margins; - WXCorePadding paddings; - WXCoreBorderWidth borders; - std::string page_id; - std::string component_type; - std::string parent_ref; - std::string ref; - int index; - bool will_layout; + std::map *styles_; + std::map *attributes_; + std::set *events_; + WXCoreMargin margins_; + WXCorePadding paddings_; + WXCoreBorderWidth borders_; + std::string page_id_; + std::string component_type_; + std::string parent_ref_; + std::string ref_; + int index_; + bool will_layout_; }; } diff --git a/weex_core/Source/core/render/action/render_action_add_event.cpp b/weex_core/Source/core/render/action/render_action_add_event.cpp index 98bb6c8cf2..bcd4aa5186 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.cpp +++ b/weex_core/Source/core/render/action/render_action_add_event.cpp @@ -24,15 +24,15 @@ namespace WeexCore { RenderActionAddEvent::RenderActionAddEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - this->page_id = page_id; - this->ref = ref; - this->event = event; + this->page_id_ = page_id; + this->ref_ = ref; + this->event_ = event; } void RenderActionAddEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(this->page_id.c_str(), - this->ref.c_str(), - this->event.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(this->page_id_.c_str(), + this->ref_.c_str(), + this->event_.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 852549c89b..6347177c0a 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -34,9 +34,9 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; - std::string event; + std::string page_id_; + std::string ref_; + std::string event_; }; } diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp index 25cdb12370..7f8b620b90 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp @@ -24,13 +24,13 @@ namespace WeexCore { RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &page_id, const std::string &ref) { - this->page_id = page_id; - this->ref = ref; + this->page_id_ = page_id; + this->ref_ = ref; } void RenderActionAppendTreeCreateFinish::ExecuteAction() { WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish( - this->page_id.c_str(), - this->ref.c_str()); + this->page_id_.c_str(), + this->ref_.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index beb601c100..32700fc554 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -33,8 +33,8 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; + std::string page_id_; + std::string ref_; }; } diff --git a/weex_core/Source/core/render/action/render_action_createbody.cpp b/weex_core/Source/core/render/action/render_action_createbody.cpp index 9247a48a50..75c5bdfc34 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.cpp +++ b/weex_core/Source/core/render/action/render_action_createbody.cpp @@ -25,26 +25,26 @@ namespace WeexCore { RenderActionCreateBody::RenderActionCreateBody(const std::string &page_id, const RenderObject *render) { - this->attributes = render->Attributes(); - this->styles = render->Styles(); - this->events = render->Events(); - this->margins = render->GetMargins(); - this->paddings = render->GetPaddings(); - this->borders = render->GetBorders(); - this->page_id = page_id; - this->component_type = render->Type(); - this->ref = render->Ref(); + this->attributes_ = render->attributes(); + this->styles_ = render->styles(); + this->events_ = render->events(); + this->margins_ = render->GetMargins(); + this->paddings_ = render->GetPaddings(); + this->borders_ = render->GetBorders(); + this->page_id_ = page_id; + this->component_type_ = render->type(); + this->ref_ = render->ref(); } void RenderActionCreateBody::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(this->page_id.c_str(), - this->component_type.c_str(), - this->ref.c_str(), - this->styles, - this->attributes, - this->events, - this->margins, - this->paddings, - this->borders); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(this->page_id_.c_str(), + this->component_type_.c_str(), + this->ref_.c_str(), + this->styles_, + this->attributes_, + this->events_, + this->margins_, + this->paddings_, + this->borders_); } } diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 8929138a6d..9de047de9d 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -37,15 +37,15 @@ namespace WeexCore { void ExecuteAction(); public: - std::map *styles; - std::map *attributes; - std::set *events; - WXCoreMargin margins; - WXCorePadding paddings; - WXCoreBorderWidth borders; - std::string page_id; - std::string component_type; - std::string ref; + std::map *styles_; + std::map *attributes_; + std::set *events_; + WXCoreMargin margins_; + WXCorePadding paddings_; + WXCoreBorderWidth borders_; + std::string page_id_; + std::string component_type_; + std::string ref_; }; } diff --git a/weex_core/Source/core/render/action/render_action_createfinish.cpp b/weex_core/Source/core/render/action/render_action_createfinish.cpp index cb1b15a842..a9a4b73d6f 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_createfinish.cpp @@ -23,10 +23,10 @@ namespace WeexCore { RenderActionCreateFinish::RenderActionCreateFinish(const std::string &page_id) { - this->page_id = page_id; + this->page_id_ = page_id; } void RenderActionCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(this->page_id.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(this->page_id_.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 8590edb00e..449ea7d649 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -33,7 +33,7 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; + std::string page_id_; }; } diff --git a/weex_core/Source/core/render/action/render_action_layout.cpp b/weex_core/Source/core/render/action/render_action_layout.cpp index b37a2ef1d0..1edd9cb5de 100644 --- a/weex_core/Source/core/render/action/render_action_layout.cpp +++ b/weex_core/Source/core/render/action/render_action_layout.cpp @@ -25,27 +25,27 @@ namespace WeexCore { RenderActionLayout::RenderActionLayout(const std::string &page_id, const RenderObject *render, int index) { - this->page_id = page_id; - this->ref = render->Ref(); - this->index = index; + this->page_id_ = page_id; + this->ref_ = render->ref(); + this->index_ = index; GetLayoutInfo(render); } void RenderActionLayout::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(this->page_id.c_str(), - this->ref.c_str(), - this->top, this->bottom, - this->left, this->right, - this->height, this->width, - this->index); + WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(this->page_id_.c_str(), + this->ref_.c_str(), + this->top_, this->bottom_, + this->left_, this->right_, + this->height_, this->width_, + this->index_); } void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { - this->top = node->getLayoutPositionTop(); - this->bottom = node->getLayoutPositionBottom(); - this->right = node->getLayoutPositionRight(); - this->left = node->getLayoutPositionLeft(); - this->height = node->getLayoutHeight(); - this->width = node->getLayoutWidth(); + this->top_ = node->getLayoutPositionTop(); + this->bottom_ = node->getLayoutPositionBottom(); + this->right_ = node->getLayoutPositionRight(); + this->left_ = node->getLayoutPositionLeft(); + this->height_ = node->getLayoutHeight(); + this->width_ = node->getLayoutWidth(); } } diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index 5a21f08569..38b98e9c6d 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -41,15 +41,15 @@ namespace WeexCore { void GetLayoutInfo(const WXCoreLayoutNode *node); public: - std::string page_id; - std::string ref; - float width; - float height; - float top; - float left; - float bottom; - float right; - int index; + std::string page_id_; + std::string ref_; + float width_; + float height_; + float top_; + float left_; + float bottom_; + float right_; + int index_; }; } diff --git a/weex_core/Source/core/render/action/render_action_move_element.cpp b/weex_core/Source/core/render/action/render_action_move_element.cpp index 356c0df3d5..ac328bab07 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.cpp +++ b/weex_core/Source/core/render/action/render_action_move_element.cpp @@ -25,16 +25,16 @@ namespace WeexCore { RenderActionMoveElement::RenderActionMoveElement(const std::string &page_id, const std::string &ref, const std::string &parent_ref, int index) { - this->page_id = page_id; - this->ref = ref; - this->parent_ref = parent_ref; - this->index = index; + this->page_id_ = page_id; + this->ref_ = ref; + this->parent_ref_ = parent_ref; + this->index_ = index; } void RenderActionMoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(this->page_id.c_str(), - this->ref.c_str(), - this->parent_ref.c_str(), - this->index); + WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(this->page_id_.c_str(), + this->ref_.c_str(), + this->parent_ref_.c_str(), + this->index_); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index 264406617a..fcc6509967 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -34,10 +34,10 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; - std::string parent_ref; - int index; + std::string page_id_; + std::string ref_; + std::string parent_ref_; + int index_; }; } diff --git a/weex_core/Source/core/render/action/render_action_remove_element.cpp b/weex_core/Source/core/render/action/render_action_remove_element.cpp index b5f12065bd..8995c40c55 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_element.cpp @@ -24,12 +24,12 @@ namespace WeexCore { RenderActionRemoveElement::RenderActionRemoveElement(const std::string &page_id, const std::string &ref) { - this->page_id = page_id; - this->ref = ref; + this->page_id_ = page_id; + this->ref_ = ref; } void RenderActionRemoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(this->page_id.c_str(), - this->ref.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(this->page_id_.c_str(), + this->ref_.c_str()); } } \ No newline at end of file diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index 425c3e464e..6699d0df7e 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -32,8 +32,8 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; + std::string page_id_; + std::string ref_; }; } diff --git a/weex_core/Source/core/render/action/render_action_remove_event.cpp b/weex_core/Source/core/render/action/render_action_remove_event.cpp index fc4e953b96..732f7b7174 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_event.cpp @@ -25,14 +25,14 @@ namespace WeexCore { RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event) { - this->page_id = page_id; - this->ref = ref; - this->event = event; + this->page_id_ = page_id; + this->ref_ = ref; + this->event_ = event; } void RenderActionRemoveEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(this->page_id.c_str(), - this->ref.c_str(), - this->event.c_str()); + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(this->page_id_.c_str(), + this->ref_.c_str(), + this->event_.c_str()); } } diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index e331dd02d4..5d6d0fec6a 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -34,9 +34,9 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; - std::string event; + std::string page_id_; + std::string ref_; + std::string event_; }; } diff --git a/weex_core/Source/core/render/action/render_action_update_attr.cpp b/weex_core/Source/core/render/action/render_action_update_attr.cpp index 91e75ddd2b..35500b2024 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.cpp +++ b/weex_core/Source/core/render/action/render_action_update_attr.cpp @@ -24,14 +24,14 @@ namespace WeexCore { RenderActionUpdateAttr::RenderActionUpdateAttr(const std::string &page_id, const std::string &ref, std::vector> *attrs) { - this->page_id = page_id; - this->ref = ref; - this->attrs = attrs; + this->page_id_ = page_id; + this->ref_ = ref; + this->attrs_ = attrs; } void RenderActionUpdateAttr::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(this->page_id.c_str(), - this->ref.c_str(), - this->attrs); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(this->page_id_.c_str(), + this->ref_.c_str(), + this->attrs_); } } diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index b666f4111f..81b48b5ae3 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -35,9 +35,9 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; - std::vector> *attrs; + std::string page_id_; + std::string ref_; + std::vector> *attrs_; }; } diff --git a/weex_core/Source/core/render/action/render_action_update_style.cpp b/weex_core/Source/core/render/action/render_action_update_style.cpp index 21df42712c..1bc9342603 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.cpp +++ b/weex_core/Source/core/render/action/render_action_update_style.cpp @@ -28,20 +28,20 @@ namespace WeexCore { std::vector> *margin, std::vector> *padding, std::vector> *border) { - this->page_id = page_id; - this->ref = ref; - this->style = style; - this->margin = margin; - this->padding = padding; - this->border = border; + this->page_id_ = page_id; + this->ref_ = ref; + this->style_ = style; + this->margin_ = margin; + this->padding_ = padding; + this->border_ = border; } void RenderActionUpdateStyle::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(this->page_id.c_str(), - this->ref.c_str(), - this->style, - this->margin, - this->padding, - this->border); + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(this->page_id_.c_str(), + this->ref_.c_str(), + this->style_, + this->margin_, + this->padding_, + this->border_); } } diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index bef6806b2e..ae914f5621 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -39,12 +39,12 @@ namespace WeexCore { void ExecuteAction(); public: - std::string page_id; - std::string ref; - std::vector> *style; - std::vector> *margin; - std::vector> *padding; - std::vector> *border; + std::string page_id_; + std::string ref_; + std::vector> *style_; + std::vector> *margin_; + std::vector> *padding_; + std::vector> *border_; }; } diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp index 8b299a92d9..64e179c642 100644 --- a/weex_core/Source/core/render/manager/render_manager.cpp +++ b/weex_core/Source/core/render/manager/render_manager.cpp @@ -35,7 +35,7 @@ namespace WeexCore { #endif RenderPage *page = new RenderPage(page_id); - this->pages.insert(std::pair(page_id, page)); + this->pages_.insert(std::pair(page_id, page)); long long startTime = getCurrentTime(); RenderObject *root = Wson2RenderObject(data, page_id); @@ -183,8 +183,8 @@ namespace WeexCore { } RenderPage *RenderManager::GetPage(const std::string &page_id) { - std::map::iterator iter = this->pages.find(page_id); - if (iter != this->pages.end()) { + std::map::iterator iter = this->pages_.find(page_id); + if (iter != this->pages_.end()) { return iter->second; } else { return nullptr; @@ -200,7 +200,7 @@ namespace WeexCore { LOGD("[RenderManager] ClosePage >>>> pageId: %s", pageId.c_str()); #endif page->OnRenderPageClose(); - this->pages.erase(page_id); + this->pages_.erase(page_id); delete page; page = nullptr; } diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h index 33573ff8bc..b87c48613c 100644 --- a/weex_core/Source/core/render/manager/render_manager.h +++ b/weex_core/Source/core/render/manager/render_manager.h @@ -84,7 +84,7 @@ namespace WeexCore { private: static RenderManager *g_pInstance; - std::map pages; + std::map pages_; }; } diff --git a/weex_core/Source/core/render/node/factory/render_creator.cpp b/weex_core/Source/core/render/node/factory/render_creator.cpp index f3ecdad911..92f8c3bef8 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.cpp +++ b/weex_core/Source/core/render/node/factory/render_creator.cpp @@ -48,8 +48,8 @@ namespace WeexCore { } IRenderObject *render = factory->CreateRender(); - render->SetRef(ref); - render->SetType(type); + render->set_ref(ref); + render->set_type(type); delete factory; return render; } diff --git a/weex_core/Source/core/render/node/factory/render_object_interface.h b/weex_core/Source/core/render/node/factory/render_object_interface.h index 13d2aaf5b9..9e3922ff5d 100644 --- a/weex_core/Source/core/render/node/factory/render_object_interface.h +++ b/weex_core/Source/core/render/node/factory/render_object_interface.h @@ -29,42 +29,42 @@ namespace WeexCore { public: - inline void SetRef(std::string ref) { - this->ref = ref; + inline void set_ref(std::string ref) { + this->ref_ = ref; } - inline const std::string &Ref() const { - return this->ref; + inline const std::string &ref() const { + return this->ref_; } - inline void SetPageId(std::string page_id) { - this->page_id = page_id; + inline void set_page_id(std::string page_id) { + this->page_id_ = page_id; } - inline const std::string &PageId() const { - return this->page_id; + inline const std::string &page_id() const { + return this->page_id_; } - inline void SetType(std::string type) { - this->tyle = type; + inline void set_type(std::string type) { + this->tyle_ = type; } - inline const std::string &Type() const { - return this->tyle; + inline const std::string &type() const { + return this->tyle_; } - inline void copyFrom(IRenderObject *src) { + inline void CopyFrom(IRenderObject *src) { WXCoreLayoutNode::copyFrom(src); - SetRef(src->Ref()); - SetPageId(src->PageId()); - SetType(src->Type()); + set_ref(src->ref()); + set_page_id(src->page_id()); + set_type(src->type()); } private: - std::string page_id = ""; - std::string ref = ""; - std::string tyle = ""; + std::string page_id_ = ""; + std::string ref_ = ""; + std::string tyle_ = ""; }; } diff --git a/weex_core/Source/core/render/node/render_appbar.cpp b/weex_core/Source/core/render/node/render_appbar.cpp index d97c0d4815..8c05f41a8a 100644 --- a/weex_core/Source/core/render/node/render_appbar.cpp +++ b/weex_core/Source/core/render/node/render_appbar.cpp @@ -24,10 +24,10 @@ namespace WeexCore { std::map *RenderAppBar::GetDefaultStyle() { - this->default_nav_width = getFloat( + this->default_nav_width_ = getFloat( WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); - this->default_overflow_width = getFloat( + this->default_overflow_width_ = getFloat( WXCoreEnvironment::getInstance()->GetOption("defaultOverflowWidth").c_str()); std::string appbar_color = WXCoreEnvironment::getInstance()->GetOption("appbar_color"); @@ -58,8 +58,8 @@ namespace WeexCore { value, 0, [=](float foo) { - setPadding(kPaddingLeft, foo + this->default_nav_width), - setPadding(kPaddingRight, foo + this->default_overflow_width), + setPadding(kPaddingLeft, foo + this->default_nav_width_), + setPadding(kPaddingRight, foo + this->default_overflow_width_), setPadding(kPaddingTop, foo), setPadding(kPaddingBottom, foo); }); @@ -68,14 +68,14 @@ namespace WeexCore { UpdateStyleInternal(key, value, 0, - [=](float foo) { setPadding(kPaddingLeft, foo + this->default_nav_width); }); + [=](float foo) { setPadding(kPaddingLeft, foo + this->default_nav_width_); }); return kTypePadding; } else if (key == PADDING_RIGHT) { UpdateStyleInternal(key, value, 0, [=](float foo) { - setPadding(kPaddingRight, foo + this->default_overflow_width); + setPadding(kPaddingRight, foo + this->default_overflow_width_); }); return kTypePadding; } else { diff --git a/weex_core/Source/core/render/node/render_appbar.h b/weex_core/Source/core/render/node/render_appbar.h index 4772b10d3a..3247c7c5af 100644 --- a/weex_core/Source/core/render/node/render_appbar.h +++ b/weex_core/Source/core/render/node/render_appbar.h @@ -38,8 +38,8 @@ namespace WeexCore { private: - float default_nav_width; - float default_overflow_width; + float default_nav_width_; + float default_overflow_width_; }; } diff --git a/weex_core/Source/core/render/node/render_list.cpp b/weex_core/Source/core/render/node/render_list.cpp index 89ac63cae8..1854d5e57c 100644 --- a/weex_core/Source/core/render/node/render_list.cpp +++ b/weex_core/Source/core/render/node/render_list.cpp @@ -28,32 +28,32 @@ namespace WeexCore { RenderList::~RenderList() { - if (this->cell_slots_copys.size() > 0) { - for (auto it = this->cell_slots_copys.begin(); it != this->cell_slots_copys.end(); ++it) { + if (this->cell_slots_copys_.size() > 0) { + for (auto it = this->cell_slots_copys_.begin(); it != this->cell_slots_copys_.end(); ++it) { RenderObject *child = *it; if (child) { delete child; child = nullptr; } } - this->cell_slots_copys.clear(); + this->cell_slots_copys_.clear(); } - if (this->cell_slots.size() > 0) { - for (auto it = this->cell_slots.begin(); it != this->cell_slots.end(); ++it) { + if (this->cell_slots_.size() > 0) { + for (auto it = this->cell_slots_.begin(); it != this->cell_slots_.end(); ++it) { RenderObject *child = *it; if (child) { delete child; child = nullptr; } } - this->cell_slots.clear(); + this->cell_slots_.clear(); } } - void RenderList::addCellSlotCopyTrack(RenderObject *cellSlot) { + void RenderList::AddCellSlotCopyTrack(RenderObject *cellSlot) { cellSlot->setParent(this, cellSlot); - this->cell_slots_copys.push_back(cellSlot); + this->cell_slots_copys_.push_back(cellSlot); } std::map *RenderList::GetDefaultStyle() { @@ -62,101 +62,101 @@ namespace WeexCore { bool isVertical = true; RenderObject *parent = (RenderObject *) getParent(); - if (parent != nullptr && !parent->Type().empty()) { - if (parent->Type() == kHList) { + if (parent != nullptr && !parent->type().empty()) { + if (parent->type() == kHList) { isVertical = false; - } else if (getOrientation() == HORIZONTAL_VALUE) { + } else if (TakeOrientation() == HORIZONTAL_VALUE) { isVertical = false; } } std::string prop = isVertical ? HEIGHT : WIDTH; - if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex) { - this->is_set_flex = true; + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { + this->is_set_flex_ = true; style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex) { - this->is_set_flex = true; + } else if (prop == WIDTH && isnan(TakeStyleWidth()) && !this->is_set_flex_) { + this->is_set_flex_ = true; style->insert(std::pair(FLEX, "1")); } return style; } - void RenderList::setFlex(const float flex) { - this->is_set_flex = true; - WXCoreLayoutNode::setFlex(flex); + void RenderList::set_flex(const float flex) { + this->is_set_flex_ = true; + WXCoreLayoutNode::set_flex(flex); } std::map *RenderList::GetDefaultAttr() { - if (!this->is_pre_calculate_cell_width) { - preCalculateCellWidth(); + if (!this->is_pre_calculate_cell_width_) { + PreCalculateCellWidth(); } return nullptr; } - void RenderList::preCalculateCellWidth() { + void RenderList::PreCalculateCellWidth() { std::map *attrs = new std::map(); - if (Attributes() != nullptr) { - this->column_count = getColumnCount(); - this->column_width = getColumnWidth(); - this->column_gap = getColumnGap(); + if (attributes() != nullptr) { + this->column_count_ = TakeColumnCount(); + this->column_width_ = TakeColumnWidth(); + this->column_gap_ = TakeColumnGap(); - this->left_gap = getLeftGap(); - this->right_gap = getRightGap(); + this->left_gap_ = TakeLeftGap(); + this->right_gap_ = TakeRightGap(); - this->available_width = - getStyleWidth() - getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - + this->available_width_ = + TakeStyleWidth() - getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - getWebPxByWidth(getPaddingRight(), GetRenderPage()->ViewPortWidth()); - if (AUTO_VALUE == this->column_count && AUTO_VALUE == this->column_width) { - this->column_count = COLUMN_COUNT_NORMAL; - this->column_width = - (this->available_width - ((this->column_count - 1) * this->column_gap)) / - this->column_count; - this->column_width = this->column_width > 0 ? this->column_width : 0; - } else if (AUTO_VALUE == this->column_width && AUTO_VALUE != this->column_count) { - this->column_width = - (this->available_width - this->left_gap - this->right_gap - - ((this->column_count - 1) * this->column_gap)) / - this->column_count; - this->column_width = this->column_width > 0 ? this->column_width : 0; - } else if (AUTO_VALUE != this->column_width && AUTO_VALUE == this->column_count) { - this->column_count = (int) round( - (this->available_width + this->column_gap) / (this->column_width + this->column_gap) - + if (AUTO_VALUE == this->column_count_ && AUTO_VALUE == this->column_width_) { + this->column_count_ = COLUMN_COUNT_NORMAL; + this->column_width_ = + (this->available_width_ - ((this->column_count_ - 1) * this->column_gap_)) / + this->column_count_; + this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; + } else if (AUTO_VALUE == this->column_width_ && AUTO_VALUE != this->column_count_) { + this->column_width_ = + (this->available_width_ - this->left_gap_ - this->right_gap_ - + ((this->column_count_ - 1) * this->column_gap_)) / + this->column_count_; + this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; + } else if (AUTO_VALUE != this->column_width_ && AUTO_VALUE == this->column_count_) { + this->column_count_ = (int) round( + (this->available_width_ + this->column_gap_) / (this->column_width_ + this->column_gap_) - 0.5f); - this->column_count = this->column_count > 0 ? this->column_count : 1; - if (this->column_count <= 0) { - this->column_count = COLUMN_COUNT_NORMAL; + this->column_count_ = this->column_count_ > 0 ? this->column_count_ : 1; + if (this->column_count_ <= 0) { + this->column_count_ = COLUMN_COUNT_NORMAL; } - this->column_width = - ((this->available_width + this->column_gap - this->left_gap - this->right_gap) / - this->column_count) - this->column_gap; + this->column_width_ = + ((this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / + this->column_count_) - this->column_gap_; - } else if (AUTO_VALUE != this->column_width && AUTO_VALUE != this->column_count) { + } else if (AUTO_VALUE != this->column_width_ && AUTO_VALUE != this->column_count_) { int columnCount = (int) round( - (this->available_width + this->column_gap - this->left_gap - this->right_gap) / - (this->column_width + this->column_gap) - + (this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / + (this->column_width_ + this->column_gap_) - 0.5f); - this->column_count = columnCount > this->column_count ? this->column_count : columnCount; - if (this->column_count <= 0) { - this->column_count = COLUMN_COUNT_NORMAL; + this->column_count_ = columnCount > this->column_count_ ? this->column_count_ : columnCount; + if (this->column_count_ <= 0) { + this->column_count_ = COLUMN_COUNT_NORMAL; } - this->column_width = - ((this->available_width + this->column_gap - this->left_gap - this->right_gap) / - this->column_count) - this->column_gap; + this->column_width_ = + ((this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / + this->column_count_) - this->column_gap_; } - std::string spanOffsets = calcSpanOffset(); + std::string spanOffsets = CalculateSpanOffset(); - this->is_pre_calculate_cell_width = true; - if (getColumnCount() > 0 || getColumnWidth() > 0 || - this->column_count > COLUMN_COUNT_NORMAL) { + this->is_pre_calculate_cell_width_ = true; + if (TakeColumnCount() > 0 || TakeColumnWidth() > 0 || + this->column_count_ > COLUMN_COUNT_NORMAL) { attrs->insert( - std::pair(COLUMN_COUNT, to_string(this->column_count))); - attrs->insert(std::pair(COLUMN_GAP, to_string(this->column_gap))); + std::pair(COLUMN_COUNT, to_string(this->column_count_))); + attrs->insert(std::pair(COLUMN_GAP, to_string(this->column_gap_))); attrs->insert( - std::pair(COLUMN_WIDTH, to_string(this->column_width))); + std::pair(COLUMN_WIDTH, to_string(this->column_width_))); } if (spanOffsets.length() > 0) { attrs->insert(std::pair(SPAN_OFFSETS, to_string(spanOffsets))); @@ -179,16 +179,16 @@ namespace WeexCore { } } - std::string RenderList::calcSpanOffset() { + std::string RenderList::CalculateSpanOffset() { std::string spanOffsets; - if (this->left_gap > 0 || this->right_gap > 0) { + if (this->left_gap_ > 0 || this->right_gap_ > 0) { spanOffsets.append("["); - for (int i = 0; i < this->column_count; i++) { - float spanOffset = this->left_gap + i * ((this->column_width + this->column_gap) - - (this->available_width + this->column_gap) / - this->column_count); + for (int i = 0; i < this->column_count_; i++) { + float spanOffset = this->left_gap_ + i * ((this->column_width_ + this->column_gap_) - + (this->available_width_ + this->column_gap_) / + this->column_count_); spanOffsets.append(to_string(spanOffset)); - if (i != this->column_count - 1) { + if (i != this->column_count_ - 1) { spanOffsets.append(","); } } @@ -197,7 +197,7 @@ namespace WeexCore { return spanOffsets; } - float RenderList::getStyleWidth() { + float RenderList::TakeStyleWidth() { float width = getWebPxByWidth(getLayoutWidth(), GetRenderPage()->ViewPortWidth()); if (isnan(width) || width <= 0) { if (getParent() != nullptr) { @@ -214,34 +214,34 @@ namespace WeexCore { } int RenderList::AddRenderObject(int index, RenderObject *child) { - if (Type() == kRenderRecycleList - && (child->Type() == kRenderCellSlot || child->Type() == kRenderCell || - child->Type() == kRenderHeader)) { + if (type() == kRenderRecycleList + && (child->type() == kRenderCellSlot || child->type() == kRenderCell || + child->type() == kRenderHeader)) { child->setParent(this, child); - this->cell_slots.insert(this->cell_slots.end(), child); + this->cell_slots_.insert(this->cell_slots_.end(), child); index = -1; } else { index = RenderObject::AddRenderObject(index, child); } - if (!this->is_pre_calculate_cell_width) { - preCalculateCellWidth(); + if (!this->is_pre_calculate_cell_width_) { + PreCalculateCellWidth(); } - if (this->column_width != 0 && !isnan(this->column_width)) { + if (this->column_width_ != 0 && !isnan(this->column_width_)) { AddRenderObjectWidth(child, false); } return index; } void RenderList::AddRenderObjectWidth(RenderObject *child, const bool updating) { - if (Type() == kRenderWaterfall || Type() == kRenderRecycleList) { - if (child->Type() == kRenderHeader || child->Type() == kRenderFooter) { - child->ApplyStyle(WIDTH, to_string(this->available_width), updating); - } else if (child->IsSticky()) { - child->ApplyStyle(WIDTH, to_string(this->available_width), updating); - } else if (child->Type() == kRenderCell || child->Type() == kRenderCellSlot) { - child->ApplyStyle(WIDTH, to_string(this->column_width), updating); + if (type() == kRenderWaterfall || type() == kRenderRecycleList) { + if (child->type() == kRenderHeader || child->type() == kRenderFooter) { + child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); + } else if (child->is_sticky()) { + child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); + } else if (child->type() == kRenderCell || child->type() == kRenderCellSlot) { + child->ApplyStyle(WIDTH, to_string(this->column_width_), updating); } } } @@ -251,9 +251,9 @@ namespace WeexCore { if (!GetAttr(COLUMN_COUNT).empty() || !GetAttr(COLUMN_GAP).empty() || !GetAttr(COLUMN_WIDTH).empty()) { - preCalculateCellWidth(); + PreCalculateCellWidth(); - if (this->column_width == 0 && isnan(this->column_width)) { + if (this->column_width_ == 0 && isnan(this->column_width_)) { return; } @@ -265,7 +265,7 @@ namespace WeexCore { } } - float RenderList::getColumnCount() { + float RenderList::TakeColumnCount() { std::string columnCount = GetAttr(COLUMN_COUNT); if (columnCount.empty() || columnCount == AUTO) { @@ -276,7 +276,7 @@ namespace WeexCore { return (columnCountValue > 0 && !isnan(columnCountValue)) ? columnCountValue : AUTO_VALUE; } - float RenderList::getColumnGap() { + float RenderList::TakeColumnGap() { std::string columnGap = GetAttr(COLUMN_GAP); if (columnGap.empty() || columnGap == NORMAL) { @@ -287,7 +287,7 @@ namespace WeexCore { return (columnGapValue > 0 && !isnan(columnGapValue)) ? columnGapValue : AUTO_VALUE; } - float RenderList::getColumnWidth() { + float RenderList::TakeColumnWidth() { std::string columnWidth = GetAttr(COLUMN_WIDTH); if (columnWidth.empty() || columnWidth == AUTO) { @@ -298,7 +298,7 @@ namespace WeexCore { return (columnWidthValue > 0 && !isnan(columnWidthValue)) ? columnWidthValue : 0; } - float RenderList::getLeftGap() { + float RenderList::TakeLeftGap() { std::string leftGap = GetAttr(LEFT_GAP); if (leftGap.empty() || leftGap == AUTO) { @@ -309,7 +309,7 @@ namespace WeexCore { return (leftGapValue > 0 && !isnan(leftGapValue)) ? leftGapValue : 0; } - float RenderList::getRightGap() { + float RenderList::TakeRightGap() { std::string rightGap = GetAttr(RIGHT_GAP); if (rightGap.empty() || rightGap == AUTO) { @@ -320,7 +320,7 @@ namespace WeexCore { return (rightGapValue > 0 && !isnan(rightGapValue)) ? rightGapValue : 0; } - int RenderList::getOrientation() { + int RenderList::TakeOrientation() { std::string direction = GetAttr(SCROLL_DIRECTION); if (HORIZONTAL == direction) { return HORIZONTAL_VALUE; diff --git a/weex_core/Source/core/render/node/render_list.h b/weex_core/Source/core/render/node/render_list.h index ad0417c533..39453e0769 100644 --- a/weex_core/Source/core/render/node/render_list.h +++ b/weex_core/Source/core/render/node/render_list.h @@ -30,19 +30,19 @@ namespace WeexCore { ~RenderList(); - void addCellSlotCopyTrack(RenderObject *cellSlot); + void set_flex(const float flex); - void setFlex(const float flex); + void AddCellSlotCopyTrack(RenderObject *cellSlot); - std::map *GetDefaultStyle(); + std::map *GetDefaultStyle(); - std::map *GetDefaultAttr(); + std::map *GetDefaultAttr(); - void preCalculateCellWidth(); + void PreCalculateCellWidth(); - std::string calcSpanOffset(); + std::string CalculateSpanOffset(); - float getStyleWidth(); + float TakeStyleWidth(); int AddRenderObject(int index, RenderObject *child); @@ -50,38 +50,39 @@ namespace WeexCore { void UpdateAttr(std::string key, std::string value); - float getColumnCount(); + float TakeColumnCount(); - float getColumnGap(); + float TakeColumnGap(); - float getColumnWidth(); + float TakeColumnWidth(); - float getLeftGap(); + float TakeLeftGap(); - float getRightGap(); + float TakeRightGap(); - int getOrientation(); + int TakeOrientation(); - inline float calcFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤tLength) const override { + inline float CalculateFreeSpaceAlongMainAxis(const float &width, const float &height, + const float ¤tLength) const override { return NAN; } inline std::vector &CellSlots() { - return cell_slots; + return cell_slots_; } private: - bool is_pre_calculate_cell_width = false; - int column_count = COLUMN_COUNT_NORMAL; - float column_width = AUTO_VALUE; - float available_width = 0; - float column_gap = COLUMN_GAP_NORMAL; - bool is_set_flex = false; - std::vector cell_slots; - std::vector cell_slots_copys; - float left_gap = 0; - float right_gap = 0; + bool is_pre_calculate_cell_width_ = false; + int column_count_ = COLUMN_COUNT_NORMAL; + float column_width_ = AUTO_VALUE; + float available_width_ = 0; + float column_gap_ = COLUMN_GAP_NORMAL; + bool is_set_flex_ = false; + std::vector cell_slots_; + std::vector cell_slots_copys_; + float left_gap_ = 0; + float right_gap_ = 0; }; } diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp index a13d6d1a52..6818cffcef 100644 --- a/weex_core/Source/core/render/node/render_object.cpp +++ b/weex_core/Source/core/render/node/render_object.cpp @@ -29,29 +29,29 @@ namespace WeexCore { RenderObject::RenderObject() { - this->styles = new std::map(); - this->attributes = new std::map(); - this->events = new std::set(); - this->is_root_render = false; + this->styles_ = new std::map(); + this->attributes_ = new std::map(); + this->events_ = new std::set(); + this->is_root_render_ = false; } RenderObject::~RenderObject() { - this->parent_render = nullptr; + this->parent_render_ = nullptr; - if (this->styles != nullptr) { - delete this->styles; - this->styles = nullptr; + if (this->styles_ != nullptr) { + delete this->styles_; + this->styles_ = nullptr; } - if (this->attributes != nullptr) { - delete this->attributes; - this->attributes = nullptr; + if (this->attributes_ != nullptr) { + delete this->attributes_; + this->attributes_ = nullptr; } - if (this->events != nullptr) { - delete this->events; - this->events = nullptr; + if (this->events_ != nullptr) { + delete this->events_; + this->events_ = nullptr; } for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { @@ -113,13 +113,13 @@ namespace WeexCore { setMeasureFunc(measureFunc_Impl); } - void RenderObject::onLayoutBefore() { + void RenderObject::OnLayoutBefore() { if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) return; WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutBefore(this); } - void RenderObject::onLayoutAfter(float width, float height) { + void RenderObject::OnLayoutAfter(float width, float height) { if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) return; WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutAfter(this, width, height); @@ -130,7 +130,7 @@ namespace WeexCore { bool insert = false; if (value.length() > 0 && (value.at(0) == JSON_OBJECT_MARK_CHAR || value.at(0) == JSON_ARRAY_MARK_CHAR)) { - mapInsertOrAssign(this->styles, key, value); + MapInsertOrAssign(this->styles_, key, value); insert = true; } @@ -142,11 +142,11 @@ namespace WeexCore { return kTypeLayout; } else if (key == FLEX) { if (value.empty()) { - setFlex(0); + set_flex(0); } else { float ret = getFloat(value.c_str()); if (!isnan(ret)) { - setFlex(ret); + set_flex(ret); } } return kTypeLayout; @@ -184,9 +184,9 @@ namespace WeexCore { } else if (key == POSITION) { setStylePositionType(GetWXCorePositionType(value)); if (value == STICKY) { - this->is_sticky = true; + this->is_sticky_ = true; } - mapInsertOrAssign(this->styles, key, value); + MapInsertOrAssign(this->styles_, key, value); return kTypeStyle; } else if (key == LEFT) { UpdateStyleInternal(key, value, NAN, @@ -253,18 +253,18 @@ namespace WeexCore { return kTypePadding; } else { if (!insert) { - mapInsertOrAssign(this->styles, key, value); + MapInsertOrAssign(this->styles_, key, value); } return kTypeStyle; } } const std::string RenderObject::GetStyle(const std::string &key) { - if (this->styles == nullptr) + if (this->styles_ == nullptr) return ""; - std::map::iterator iter = this->styles->find(key); - if (iter != this->styles->end()) { + std::map::iterator iter = this->styles_->find(key); + if (iter != this->styles_->end()) { return iter->second; } else { return ""; @@ -272,11 +272,11 @@ namespace WeexCore { } const std::string RenderObject::GetAttr(const std::string &key) { - if (this->attributes == nullptr) + if (this->attributes_ == nullptr) return ""; - std::map::iterator iter = this->attributes->find(key); - if (iter != this->attributes->end()) { + std::map::iterator iter = this->attributes_->find(key); + if (iter != this->attributes_->end()) { return iter->second; } else { return ""; @@ -284,8 +284,8 @@ namespace WeexCore { } float RenderObject::GetViewPortWidth() { - if (this->viewport_width >= 0) - return this->viewport_width; + if (this->viewport_width_ >= 0) + return this->viewport_width_; RenderPage *page = GetRenderPage(); if (page == nullptr) @@ -307,7 +307,7 @@ namespace WeexCore { addChildAt(child, index); } - child->SetParentRender(this); + child->set_parent_render(this); return index; } @@ -320,7 +320,7 @@ namespace WeexCore { for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { RenderObject *child = static_cast(*it); if (child != nullptr) { - if (render->Ref() == child->Ref()) + if (render->ref() == child->ref()) return i; } ++i; @@ -346,40 +346,40 @@ namespace WeexCore { return ret; } - void RenderObject::LayoutBefore() { + void RenderObject::LayoutBeforeImpl() { if (isDirty()) { - onLayoutBefore(); + OnLayoutBefore(); } for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { RenderObject *child = static_cast(*it); if (child != nullptr) { - child->LayoutBefore(); + child->LayoutBeforeImpl(); } } } - void RenderObject::LayoutAfter() { + void RenderObject::LayoutAfterImpl() { if (hasNewLayout()) { - onLayoutAfter(getLayoutWidth(), getLayoutHeight()); + OnLayoutAfter(getLayoutWidth(), getLayoutHeight()); } for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { RenderObject *child = static_cast(*it); if (child != nullptr) { - child->LayoutAfter(); + child->LayoutAfterImpl(); } } } - void RenderObject::copyFrom(RenderObject *src) { - IRenderObject::copyFrom(src); - this->styles->insert(src->styles->begin(), src->styles->end()); - this->attributes->insert(src->attributes->begin(), src->attributes->end()); - this->events->insert(src->events->begin(), src->events->end()); + void RenderObject::CopyFrom(RenderObject *src) { + IRenderObject::CopyFrom(src); + this->styles_->insert(src->styles_->begin(), src->styles_->end()); + this->attributes_->insert(src->attributes_->begin(), src->attributes_->end()); + this->events_->insert(src->events_->begin(), src->events_->end()); } - void RenderObject::mapInsertOrAssign(std::map *targetMap, + void RenderObject::MapInsertOrAssign(std::map *targetMap, const std::string &key, const std::string &value) { std::map::iterator it = targetMap->find(key); if (it != targetMap->end()) { @@ -391,12 +391,12 @@ namespace WeexCore { bool RenderObject::ViewInit() { return (!isnan(getStyleWidth()) && getStyleWidth() > 0) || - (IsRootRender() && GetRenderPage() != nullptr && + (is_root_render() && GetRenderPage() != nullptr && GetRenderPage()->GetRenderContainerWidthWrapContent()); } RenderPage *RenderObject::GetRenderPage() { - return RenderManager::GetInstance()->GetPage(PageId()); + return RenderManager::GetInstance()->GetPage(page_id()); } bool RenderObject::IsAppendTree() { @@ -408,10 +408,37 @@ namespace WeexCore { } void RenderObject::UpdateAttr(std::string key, std::string value) { - mapInsertOrAssign(this->attributes, key, value); + MapInsertOrAssign(this->attributes_, key, value); } StyleType RenderObject::UpdateStyle(std::string key, std::string value) { return ApplyStyle(key, value, true); } + + RenderObject* RenderObject::GetChild(const Index &index) { + return static_cast(getChildAt(index)); + } + + void RenderObject::RemoveRenderObject(RenderObject *child) { + removeChild(child); + } + + void RenderObject::AddAttr(std::string key, std::string value) { + MapInsertOrAssign(this->attributes_, key, value); + } + + StyleType RenderObject::AddStyle(std::string key, std::string value) { + return ApplyStyle(key, value, false); + } + + void RenderObject::AddEvent(std::string event) { + if (this->events_ == nullptr || this->events_->empty()) { + this->events_ = new std::set(); + } + this->events_->insert(event); + } + + void RenderObject::RemoveEvent(const std::string &event) { + this->events_->erase(event); + } } //end WeexCore diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 1e519aff48..91c9a16263 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -49,13 +49,14 @@ namespace WeexCore { public: - void LayoutBefore(); + void LayoutBeforeImpl(); - void LayoutAfter(); + void LayoutAfterImpl(); - void copyFrom(RenderObject* src); + void CopyFrom(RenderObject *src); - void mapInsertOrAssign(std::map *targetMap, const std::string& key, const std::string& value); + void MapInsertOrAssign(std::map *targetMap, const std::string &key, + const std::string &value); bool ViewInit(); @@ -80,9 +81,9 @@ namespace WeexCore { void BindMeasureFunc(); - void onLayoutBefore(); + void OnLayoutBefore(); - void onLayoutAfter(float width, float height); + void OnLayoutAfter(float width, float height); virtual StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating); @@ -108,74 +109,61 @@ namespace WeexCore { bool IsAppendTree(); - inline RenderObject *GetChild(const Index &index) { - return static_cast(getChildAt(index)); - } + RenderObject *GetChild(const Index &index); - inline void RemoveRenderObject(RenderObject *child) { - removeChild(child); - } + void RemoveRenderObject(RenderObject *child); - inline void AddAttr(std::string key, std::string value) { - mapInsertOrAssign(this->attributes, key, value); - } + void AddAttr(std::string key, std::string value); - inline StyleType AddStyle(std::string key, std::string value) { - return ApplyStyle(key, value, false); - } + StyleType AddStyle(std::string key, std::string value); - inline void AddEvent(std::string event) { - if (this->events == nullptr || this->events->empty()) { - this->events = new std::set(); - } - this->events->insert(event); - } + void AddEvent(std::string event); - inline void RemoveEvent(const std::string &event) { - this->events->erase(event); - } + void RemoveEvent(const std::string &event); + + public: - inline void SetParentRender(RenderObject *render) { - this->parent_render = render; + inline void set_parent_render(RenderObject *render) { + this->parent_render_ = render; } - inline RenderObject *GetParentRender() { - return this->parent_render; + inline RenderObject *parent_render() { + return this->parent_render_; } - inline std::map *Styles() const { - return this->styles; + inline std::map *styles() const { + return this->styles_; } - inline std::map * Attributes() const { - return this->attributes; + inline std::map * attributes() const { + return this->attributes_; } - inline std::set *Events() const { - return this->events; + inline std::set *events() const { + return this->events_; } - inline void MarkRootRender() { - this->is_root_render = true; + inline void set_is_root_render() { + this->is_root_render_ = true; } - inline bool IsRootRender() { - return this->is_root_render; + inline bool is_root_render() { + return this->is_root_render_; } - inline bool IsSticky() { - return this->is_sticky; + inline bool is_sticky() { + return this->is_sticky_; } private: - RenderObject *parent_render; - std::map *styles; - std::map *attributes; - std::set *events; - float viewport_width = -1; - bool is_root_render; - bool is_sticky = false; + RenderObject *parent_render_; + std::map *styles_; + std::map *attributes_; + std::set *events_; + float viewport_width_ = -1; + bool is_root_render_; + bool is_sticky_ = false; }; } //end WeexCore #endif //RenderObject_h diff --git a/weex_core/Source/core/render/node/render_scroller.cpp b/weex_core/Source/core/render/node/render_scroller.cpp index 4844383ff4..139af5e970 100644 --- a/weex_core/Source/core/render/node/render_scroller.cpp +++ b/weex_core/Source/core/render/node/render_scroller.cpp @@ -35,17 +35,17 @@ namespace WeexCore { std::string prop = isVertical ? HEIGHT : WIDTH; - if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex) { + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex) { + } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex_) { style->insert(std::pair(FLEX, "1")); } return style; } - void RenderScroller::setFlex(const float flex) { - this->is_set_flex = true; - WXCoreLayoutNode::setFlex(flex); + void RenderScroller::set_flex(const float flex) { + this->is_set_flex_ = true; + WXCoreLayoutNode::set_flex(flex); } } diff --git a/weex_core/Source/core/render/node/render_scroller.h b/weex_core/Source/core/render/node/render_scroller.h index 2868d8bbbb..fed8f0bd82 100644 --- a/weex_core/Source/core/render/node/render_scroller.h +++ b/weex_core/Source/core/render/node/render_scroller.h @@ -24,13 +24,13 @@ namespace WeexCore { class RenderScroller : public RenderObject { - bool is_set_flex = false; + bool is_set_flex_ = false; std::map *GetDefaultStyle(); - void setFlex(const float flex); + void set_flex(const float flex); - inline float calcFreeSpaceAlongMainAxis(const float &width, const float &height, + inline float CalculateFreeSpaceAlongMainAxis(const float &width, const float &height, const float ¤t_length) const override { return NAN; } diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index 24d7dd98c4..78ad8cd0e9 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -83,9 +83,9 @@ namespace WeexCore { #endif long long startTime = getCurrentTime(); - this->render_root->LayoutBefore(); + this->render_root->LayoutBeforeImpl(); this->render_root->calculateLayout(this->render_page_size); - this->render_root->LayoutAfter(); + this->render_root->LayoutAfterImpl(); CssLayoutTime(getCurrentTime() - startTime); TraverseTree(this->render_root, 0); } @@ -133,7 +133,7 @@ namespace WeexCore { void RenderPage::SetRootRenderObject(RenderObject *root) { if (root != nullptr) { this->render_root = root; - this->render_root->MarkRootRender(); + this->render_root->set_is_root_render(); } } @@ -161,7 +161,7 @@ namespace WeexCore { if (child == nullptr) return false; - RenderObject *parent = child->GetParentRender(); + RenderObject *parent = child->parent_render(); if (parent == nullptr) return false; @@ -179,12 +179,12 @@ namespace WeexCore { if (child == nullptr) return false; - RenderObject *oldParent = child->GetParentRender(); + RenderObject *oldParent = child->parent_render(); RenderObject *newParent = GetRenderObject(parent_ref); if (oldParent == nullptr || newParent == nullptr) return false; - if (oldParent->Ref() == newParent->Ref()) { + if (oldParent->ref() == newParent->ref()) { if (oldParent->IndexOf(child) < 0) { return false; } else if (oldParent->IndexOf(child) == index) { @@ -415,7 +415,7 @@ namespace WeexCore { if (render == nullptr) return; - std::string ref = render->Ref(); + std::string ref = render->ref(); this->render_object_registers.insert(std::pair(ref, render)); for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { @@ -430,7 +430,7 @@ namespace WeexCore { if (render == nullptr) return; - this->render_object_registers.erase(render->Ref()); + this->render_object_registers.erase(render->ref()); for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { RenderObject* child = static_cast(*it); @@ -457,14 +457,14 @@ namespace WeexCore { } if (i > 0 && render->IsAppendTree()) { - SendAppendTreeCreateFinish(render->Ref()); + SendAppendTreeCreateFinish(render->ref()); } } void RenderPage::SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, bool will_layout) { if (child == nullptr || parent == nullptr) return; - if(parent != nullptr && parent->Type() == WeexCore::kRenderRecycleList){ + if(parent != nullptr && parent->type() == WeexCore::kRenderRecycleList){ will_layout = false; } @@ -480,7 +480,7 @@ namespace WeexCore { ++i; } - if(child->Type() == WeexCore::kRenderRecycleList){ + if(child->type() == WeexCore::kRenderRecycleList){ RenderList* renderList = (RenderList*)child; std::vector& cellSlots = renderList->CellSlots(); for(auto it = cellSlots.begin(); it != cellSlots.end(); it++) { @@ -493,7 +493,7 @@ namespace WeexCore { } if (!is_recursion && i > 0 && child->IsAppendTree()) { - SendAppendTreeCreateFinish(child->Ref()); + SendAppendTreeCreateFinish(child->ref()); } } @@ -520,13 +520,13 @@ namespace WeexCore { std::vector> *margin, std::vector> *padding, std::vector> *border) { - RenderAction *action = new RenderActionUpdateStyle(PageId(), render->Ref(), style, margin, padding, border); + RenderAction *action = new RenderActionUpdateStyle(PageId(), render->ref(), style, margin, padding, border); PostRenderAction(action); } void RenderPage::SendUpdateAttrAction(RenderObject *render, std::vector> *attrs) { - RenderAction *action = new RenderActionUpdateAttr(PageId(), render->Ref(), attrs); + RenderAction *action = new RenderActionUpdateAttr(PageId(), render->ref(), attrs); PostRenderAction(action); } @@ -537,7 +537,7 @@ namespace WeexCore { vAttrs->insert(vAttrs->begin(), std::pair(iter->first, iter->second)); } - RenderAction *action = new RenderActionUpdateAttr(PageId(), render->Ref(), vAttrs); + RenderAction *action = new RenderActionUpdateAttr(PageId(), render->ref(), vAttrs); PostRenderAction(action); if (vAttrs != nullptr) { From edb9af4047ff133be016a3cae034cbe152036e57 Mon Sep 17 00:00:00 2001 From: miomin Date: Tue, 12 Jun 2018 11:45:19 +0800 Subject: [PATCH 7/9] [WEEX-442][Core] Using clang-format --- .../bridge/impl/bridge_impl_android.cpp | 34 +- .../bridge/impl/weexcore_impl_android.cpp | 28 +- .../core/moniter/render_performance.cpp | 5 +- .../Source/core/moniter/render_performance.h | 20 +- .../action/render_action_add_element.cpp | 58 +- .../render/action/render_action_add_element.h | 64 +- .../render/action/render_action_add_event.cpp | 26 +- .../render/action/render_action_add_event.h | 30 +- .../render_action_appendtree_createfinish.cpp | 22 +- .../render_action_appendtree_createfinish.h | 26 +- .../action/render_action_createbody.cpp | 45 +- .../render/action/render_action_createbody.h | 53 +- .../action/render_action_createfinish.cpp | 15 +- .../action/render_action_createfinish.h | 23 +- .../render/action/render_action_interface.h | 16 +- .../render/action/render_action_layout.cpp | 47 +- .../core/render/action/render_action_layout.h | 49 +- .../action/render_action_move_element.cpp | 32 +- .../action/render_action_move_element.h | 32 +- .../action/render_action_remove_element.cpp | 22 +- .../action/render_action_remove_element.h | 25 +- .../action/render_action_remove_event.cpp | 25 +- .../action/render_action_remove_event.h | 30 +- .../action/render_action_update_attr.cpp | 24 +- .../render/action/render_action_update_attr.h | 31 +- .../action/render_action_update_style.cpp | 41 +- .../action/render_action_update_style.h | 50 +- .../core/render/manager/render_manager.cpp | 270 ++--- .../core/render/manager/render_manager.h | 96 +- .../node/factory/render_appbar_factory.h | 20 +- .../render/node/factory/render_cell_factory.h | 20 +- .../render/node/factory/render_creator.cpp | 54 +- .../core/render/node/factory/render_creator.h | 58 +- .../node/factory/render_factory_interface.h | 16 +- .../render/node/factory/render_list_factory.h | 20 +- .../render/node/factory/render_mask_factory.h | 20 +- .../node/factory/render_object_interface.h | 61 +- .../node/factory/render_scroller_factory.h | 20 +- .../render/node/factory/render_text_factory.h | 20 +- .../core/render/node/factory/render_type.h | 32 +- .../node/factory/simple_render_factory.h | 21 +- .../Source/core/render/node/render_appbar.cpp | 106 +- .../Source/core/render/node/render_appbar.h | 35 +- .../Source/core/render/node/render_cell.h | 12 +- .../Source/core/render/node/render_list.cpp | 487 ++++----- .../Source/core/render/node/render_list.h | 92 +- .../Source/core/render/node/render_mask.cpp | 57 +- .../Source/core/render/node/render_mask.h | 22 +- .../Source/core/render/node/render_object.cpp | 712 ++++++------- .../Source/core/render/node/render_object.h | 184 ++-- .../core/render/node/render_scroller.cpp | 46 +- .../Source/core/render/node/render_scroller.h | 32 +- .../Source/core/render/node/render_text.cpp | 20 +- .../Source/core/render/node/render_text.h | 22 +- .../Source/core/render/page/render_page.cpp | 979 +++++++++--------- .../Source/core/render/page/render_page.h | 211 ++-- 56 files changed, 2307 insertions(+), 2311 deletions(-) diff --git a/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp b/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp index 439d5b1b72..4d2c1f54bc 100644 --- a/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp +++ b/weex_core/Source/android/bridge/impl/bridge_impl_android.cpp @@ -152,7 +152,7 @@ namespace WeexCore { void Bridge_Impl_Android::reportException(const char* pageId, const char *func, const char *exception_string) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jstring jFunc = env->NewStringUTF(func); @@ -178,7 +178,7 @@ namespace WeexCore { int Bridge_Impl_Android::callNative(const char* pageId, const char *task, const char *callback) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jbyteArray jTask = newJByteArray(env, task); @@ -214,7 +214,7 @@ namespace WeexCore { void* Bridge_Impl_Android::callNativeModule(const char* pageId, const char *module, const char *method, const char *arguments, int argumentsLen, const char *options, int optionsLen) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jstring jModule = env->NewStringUTF(module); @@ -251,7 +251,7 @@ namespace WeexCore { void Bridge_Impl_Android::callNativeComponent(const char* pageId, const char* ref, const char *method, const char *arguments, int argumentsLength, const char *options, int optionsLength) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jstring jMethod = env->NewStringUTF(method); @@ -322,7 +322,7 @@ namespace WeexCore { int Bridge_Impl_Android::callUpdateFinish(const char* pageId, const char *task, const char *callback) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jbyteArray jTask = newJByteArray(env, task); @@ -354,7 +354,7 @@ namespace WeexCore { int Bridge_Impl_Android::callRefreshFinish(const char* pageId, const char *task, const char *callback) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jbyteArray jTask = newJByteArray(env, task); @@ -390,7 +390,7 @@ namespace WeexCore { const WXCorePadding &paddings, const WXCoreBorderWidth &borders) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -536,7 +536,7 @@ namespace WeexCore { int Bridge_Impl_Android::callRemoveElement(const char* pageId, const char* ref) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -562,7 +562,7 @@ namespace WeexCore { int Bridge_Impl_Android::callMoveElement(const char* pageId, const char* ref, const char* parentRef, int index) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -589,7 +589,7 @@ namespace WeexCore { int Bridge_Impl_Android::callAddEvent(const char* pageId, const char* ref, const char *event) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); jstring jPageId = getKeyFromCache(env, pageId); @@ -616,7 +616,7 @@ namespace WeexCore { int Bridge_Impl_Android::callRemoveEvent(const char* pageId, const char* ref, const char *event) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -647,7 +647,7 @@ namespace WeexCore { std::vector> *padding, std::vector> *border) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -700,7 +700,7 @@ namespace WeexCore { int Bridge_Impl_Android::callUpdateAttr(const char* pageId, const char* ref, std::vector> *attrs) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -738,7 +738,7 @@ namespace WeexCore { int height, int width, int index) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -766,7 +766,7 @@ namespace WeexCore { int Bridge_Impl_Android::callCreateFinish(const char* pageId) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -791,7 +791,7 @@ namespace WeexCore { int Bridge_Impl_Android::callAppendTreeCreateFinish(const char *pageId, const char *ref) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); @@ -818,7 +818,7 @@ namespace WeexCore { int Bridge_Impl_Android::callHasTransitionPros(const char* pageId, const char* ref, std::vector> *style) { RenderPage *page = RenderManager::GetInstance()->GetPage(pageId); - long long startTime = getCurrentTime(); + int64_t startTime = getCurrentTime(); JNIEnv *env = getJNIEnv(); diff --git a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp index 4138530d9b..3febd5b6ef 100644 --- a/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp +++ b/weex_core/Source/android/bridge/impl/weexcore_impl_android.cpp @@ -142,7 +142,7 @@ static void SetRenderContainerWrapContent(JNIEnv* env, jobject jcaller, jboolean if (page == nullptr) return; - page->SetRenderContainerWidthWrapContent(wrap); + page->set_is_render_container_width_wrap_content(wrap); } static jlongArray GetFirstScreenRenderTime(JNIEnv *env, jobject jcaller, jstring instanceId) { @@ -158,7 +158,7 @@ static jlongArray GetFirstScreenRenderTime(JNIEnv *env, jobject jcaller, jstring return jFirstScreenRenderTime; } - std::vector temp = page->PrintFirstScreenLog(); + std::vector temp = page->PrintFirstScreenLog(); jlong ret[3]; @@ -190,7 +190,7 @@ static jlongArray GetRenderFinishTime(JNIEnv *env, jobject jcaller, jstring inst return jRenderFinishTime; } - std::vector temp = page->PrintRenderSuccessLog(); + std::vector temp = page->PrintRenderSuccessLog(); jlong ret[3]; @@ -214,13 +214,13 @@ static jboolean NotifyLayout(JNIEnv* env, jobject jcaller, jstring instanceId) { RenderPage *page = RenderManager::GetInstance()->GetPage(jString2StrFast(env, instanceId)); if (page != nullptr) { - if (!page->need_layout.load()) { - page->need_layout.store(true); + if (!page->need_layout_.load()) { + page->need_layout_.store(true); } - bool ret = !page->has_fore_layout_action.load() && page->isDirty(); + bool ret = !page->has_fore_layout_action_.load() && page->is_dirty(); if (ret) { - page->has_fore_layout_action.store(true); + page->has_fore_layout_action_.store(true); } return ret ? JNI_TRUE : JNI_FALSE; } @@ -236,7 +236,7 @@ static void ForceLayout(JNIEnv *env, jobject jcaller, jstring instanceId) { #endif page->LayoutImmediately(); - page->has_fore_layout_action.store(false); + page->has_fore_layout_action_.store(false); } } @@ -253,7 +253,7 @@ static void SetStyleWidth(JNIEnv *env, jobject jcaller, render->setStyleWidthLevel(CSS_STYLE); render->setStyleWidth(value, true); - page->updateDirty(true); + page->set_is_dirty(true); } static void SetStyleHeight(JNIEnv *env, jobject jcaller, @@ -269,7 +269,7 @@ static void SetStyleHeight(JNIEnv *env, jobject jcaller, render->setStyleHeightLevel(CSS_STYLE); render->setStyleHeight(value); - page->updateDirty(true); + page->set_is_dirty(true); } static void SetMargin(JNIEnv *env, jobject jcaller, @@ -293,7 +293,7 @@ static void SetMargin(JNIEnv *env, jobject jcaller, } else if (edge == 4) { render->setMargin(kMarginALL, value); } - page->updateDirty(true); + page->set_is_dirty(true); } static void SetPadding(JNIEnv *env, jobject jcaller, @@ -318,7 +318,7 @@ static void SetPadding(JNIEnv *env, jobject jcaller, } else if (edge == 4) { render->setPadding(kPaddingALL, value); } - page->updateDirty(true); + page->set_is_dirty(true); } @@ -342,7 +342,7 @@ static void SetPosition(JNIEnv *env, jobject jcaller, } else if (edge == 3) { render->setStylePosition(kPositionEdgeRight, value); } - page->updateDirty(true); + page->set_is_dirty(true); } static void MarkDirty(JNIEnv *env, jobject jcaller, @@ -371,7 +371,7 @@ static void SetViewPortWidth(JNIEnv *env, jobject jcaller, jstring instanceId, j if (page == nullptr) return; - page->SetViewPortWidth(value); + page->set_viewport_width(value); } diff --git a/weex_core/Source/core/moniter/render_performance.cpp b/weex_core/Source/core/moniter/render_performance.cpp index 4fe594bef4..a35eeb40fe 100644 --- a/weex_core/Source/core/moniter/render_performance.cpp +++ b/weex_core/Source/core/moniter/render_performance.cpp @@ -16,13 +16,14 @@ * specific language governing permissions and limitations * under the License. */ +#include #include "render_performance.h" namespace WeexCore { - std::vector RenderPerformance::PrintPerformanceLog(PerformanceStage performanceStage) { + std::vector RenderPerformance::PrintPerformanceLog(PerformanceStage performanceStage) { - std::vector ret(3); + std::vector ret(3); if (performanceStage == onFirstScreen) { firstScreenCallBridgeTime = callBridgeTime; diff --git a/weex_core/Source/core/moniter/render_performance.h b/weex_core/Source/core/moniter/render_performance.h index f6c24ee22c..1eff88fe6a 100644 --- a/weex_core/Source/core/moniter/render_performance.h +++ b/weex_core/Source/core/moniter/render_performance.h @@ -31,30 +31,30 @@ namespace WeexCore { public: - long long callBridgeTime; + int64_t callBridgeTime; - long long cssLayoutTime; + int64_t cssLayoutTime; - long long parseJsonTime; + int64_t parseJsonTime; - long long firstScreenCallBridgeTime; + int64_t firstScreenCallBridgeTime; - long long firstScreenCssLayoutTime; + int64_t firstScreenCssLayoutTime; - long long firstScreenParseJsonTime; + int64_t firstScreenParseJsonTime; - long long onRenderSuccessCallBridgeTime; + int64_t onRenderSuccessCallBridgeTime; - long long onRenderSuccessCssLayoutTime; + int64_t onRenderSuccessCssLayoutTime; - long long onRenderSuccessParseJsonTime; + int64_t onRenderSuccessParseJsonTime; RenderPerformance() : callBridgeTime(0), cssLayoutTime(0), parseJsonTime(0), firstScreenCallBridgeTime(0), firstScreenCssLayoutTime(0), firstScreenParseJsonTime(0), onRenderSuccessCallBridgeTime(0), onRenderSuccessCssLayoutTime(0), onRenderSuccessParseJsonTime(0) {} - std::vector PrintPerformanceLog(PerformanceStage performanceStage); + std::vector PrintPerformanceLog(PerformanceStage performanceStage); }; } diff --git a/weex_core/Source/core/render/action/render_action_add_element.cpp b/weex_core/Source/core/render/action/render_action_add_element.cpp index aa4fa67773..564d7b6f68 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.cpp +++ b/weex_core/Source/core/render/action/render_action_add_element.cpp @@ -17,41 +17,35 @@ * under the License. */ -#include "core/render/node/render_object.h" -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_add_element.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/node/render_object.h" namespace WeexCore { - RenderActionAddElement::RenderActionAddElement(const std::string &page_id, - const RenderObject *render, - const RenderObject *parent, int index, - bool will_layout) { - this->attributes_ = render->attributes(); - this->styles_ = render->styles(); - this->events_ = render->events(); - this->margins_ = render->GetMargins(); - this->paddings_ = render->GetPaddings(); - this->borders_ = render->GetBorders(); - this->page_id_ = page_id; - this->component_type_ = render->type(); - this->ref_ = render->ref(); - this->parent_ref_ = parent->ref(); - this->index_ = index; - this->will_layout_ = will_layout; - } +RenderActionAddElement::RenderActionAddElement(const std::string &page_id, + const RenderObject *render, + const RenderObject *parent, + int index, bool will_layout) { + this->attributes_ = render->attributes(); + this->styles_ = render->styles(); + this->events_ = render->events(); + this->margins_ = render->GetMargins(); + this->paddings_ = render->GetPaddings(); + this->borders_ = render->GetBorders(); + this->page_id_ = page_id; + this->component_type_ = render->type(); + this->ref_ = render->ref(); + this->parent_ref_ = parent->ref(); + this->index_ = index; + this->will_layout_ = will_layout; +} - void RenderActionAddElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement(this->page_id_.c_str(), - this->component_type_.c_str(), - this->ref_.c_str(), - this->index_, - this->parent_ref_.c_str(), - this->styles_, - this->attributes_, - this->events_, this->margins_, - this->paddings_, - this->borders_, - this->will_layout_); - } +void RenderActionAddElement::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callAddElement( + this->page_id_.c_str(), this->component_type_.c_str(), this->ref_.c_str(), + this->index_, this->parent_ref_.c_str(), this->styles_, this->attributes_, + this->events_, this->margins_, this->paddings_, this->borders_, + this->will_layout_); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_add_element.h b/weex_core/Source/core/render/action/render_action_add_element.h index be7c6d7db0..ed828b0fb3 100644 --- a/weex_core/Source/core/render/action/render_action_add_element.h +++ b/weex_core/Source/core/render/action/render_action_add_element.h @@ -16,43 +16,43 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_ADDELEMENTACTION_H -#define WEEX_PROJECT_ADDELEMENTACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_ADD_ELEMENT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_ADD_ELEMENT_H_ -#include #include #include +#include -#include "core/render/action/render_action_interface.h" #include "core/layout/style.h" +#include "core/render/action/render_action_interface.h" namespace WeexCore { - class RenderObject; - - class RenderActionAddElement : public RenderAction { - - public: - explicit RenderActionAddElement(const std::string &page_id, const RenderObject *render, - const RenderObject *parent, - int index, bool will_layout = true); - - void ExecuteAction(); - - public: - std::map *styles_; - std::map *attributes_; - std::set *events_; - WXCoreMargin margins_; - WXCorePadding paddings_; - WXCoreBorderWidth borders_; - std::string page_id_; - std::string component_type_; - std::string parent_ref_; - std::string ref_; - int index_; - bool will_layout_; - }; -} - -#endif //WEEX_PROJECT_ADDELEMENTACTION_H +class RenderObject; + +class RenderActionAddElement : public RenderAction { + public: + explicit RenderActionAddElement(const std::string &page_id, + const RenderObject *render, + const RenderObject *parent, int index, + bool will_layout = true); + + void ExecuteAction(); + + public: + std::map *styles_; + std::map *attributes_; + std::set *events_; + WXCoreMargin margins_; + WXCorePadding paddings_; + WXCoreBorderWidth borders_; + std::string page_id_; + std::string component_type_; + std::string parent_ref_; + std::string ref_; + int index_; + bool will_layout_; +}; +} // namespace WeexCore + +#endif // CORE_RENDER_ACTION_RENDER_ACTION_ADD_ELEMENT_H_ diff --git a/weex_core/Source/core/render/action/render_action_add_event.cpp b/weex_core/Source/core/render/action/render_action_add_event.cpp index bcd4aa5186..c64ba1946c 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.cpp +++ b/weex_core/Source/core/render/action/render_action_add_event.cpp @@ -17,22 +17,22 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_add_event.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionAddEvent::RenderActionAddEvent(const std::string &page_id, const std::string &ref, - const std::string &event) { - this->page_id_ = page_id; - this->ref_ = ref; - this->event_ = event; - } - - void RenderActionAddEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent(this->page_id_.c_str(), - this->ref_.c_str(), - this->event_.c_str()); - } +RenderActionAddEvent::RenderActionAddEvent(const std::string &page_id, + const std::string &ref, + const std::string &event) { + this->page_id_ = page_id; + this->ref_ = ref; + this->event_ = event; +} +void RenderActionAddEvent::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callAddEvent( + this->page_id_.c_str(), this->ref_.c_str(), this->event_.c_str()); } + +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_add_event.h b/weex_core/Source/core/render/action/render_action_add_event.h index 6347177c0a..b27f981573 100644 --- a/weex_core/Source/core/render/action/render_action_add_event.h +++ b/weex_core/Source/core/render/action/render_action_add_event.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_ADDEVENTACTION_H -#define WEEX_PROJECT_ADDEVENTACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_ADD_EVENT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_ADD_EVENT_H_ #include @@ -25,19 +25,19 @@ namespace WeexCore { - class RenderActionAddEvent : public RenderAction { +class RenderActionAddEvent : public RenderAction { + public: + explicit RenderActionAddEvent(const std::string &page_id, + const std::string &ref, + const std::string &event); - public: - explicit RenderActionAddEvent(const std::string &page_id, const std::string &ref, - const std::string &event); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; + std::string ref_; + std::string event_; +}; +} // namespace WeexCore - public: - std::string page_id_; - std::string ref_; - std::string event_; - }; -} - -#endif //WEEX_PROJECT_ADDEVENTACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_ADD_EVENT_H_ diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp index 7f8b620b90..cafe48c07a 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp @@ -17,20 +17,20 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_appendtree_createfinish.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish(const std::string &page_id, - const std::string &ref) { - this->page_id_ = page_id; - this->ref_ = ref; - } +RenderActionAppendTreeCreateFinish::RenderActionAppendTreeCreateFinish( + const std::string &page_id, const std::string &ref) { + this->page_id_ = page_id; + this->ref_ = ref; +} - void RenderActionAppendTreeCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callAppendTreeCreateFinish( - this->page_id_.c_str(), - this->ref_.c_str()); - } +void RenderActionAppendTreeCreateFinish::ExecuteAction() { + WeexCoreManager::getInstance() + ->getPlatformBridge() + ->callAppendTreeCreateFinish(this->page_id_.c_str(), this->ref_.c_str()); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h index 32700fc554..4ea40e8a9c 100644 --- a/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_CORE_RENDER_ACTION_APPENDTREE_CREATEFINISH_H -#define WEEX_CORE_RENDER_ACTION_APPENDTREE_CREATEFINISH_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_APPENDTREE_CREATEFINISH_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_APPENDTREE_CREATEFINISH_H_ #include @@ -25,17 +25,17 @@ namespace WeexCore { - class RenderActionAppendTreeCreateFinish : public RenderAction { +class RenderActionAppendTreeCreateFinish : public RenderAction { + public: + explicit RenderActionAppendTreeCreateFinish(const std::string &page_id, + const std::string &ref); - public: - explicit RenderActionAppendTreeCreateFinish(const std::string &page_id, const std::string &ref); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; + std::string ref_; +}; +} // namespace WeexCore - public: - std::string page_id_; - std::string ref_; - }; -} - -#endif //WEEX_CORE_RENDER_ACTION_APPENDTREE_CREATEFINISH_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_APPENDTREE_CREATEFINISH_H_ diff --git a/weex_core/Source/core/render/action/render_action_createbody.cpp b/weex_core/Source/core/render/action/render_action_createbody.cpp index 75c5bdfc34..9f91ce657e 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.cpp +++ b/weex_core/Source/core/render/action/render_action_createbody.cpp @@ -17,34 +17,29 @@ * under the License. */ -#include "core/render/node/render_object.h" -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_createbody.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/node/render_object.h" namespace WeexCore { - RenderActionCreateBody::RenderActionCreateBody(const std::string &page_id, - const RenderObject *render) { - this->attributes_ = render->attributes(); - this->styles_ = render->styles(); - this->events_ = render->events(); - this->margins_ = render->GetMargins(); - this->paddings_ = render->GetPaddings(); - this->borders_ = render->GetBorders(); - this->page_id_ = page_id; - this->component_type_ = render->type(); - this->ref_ = render->ref(); - } +RenderActionCreateBody::RenderActionCreateBody(const std::string &page_id, + const RenderObject *render) { + this->attributes_ = render->attributes(); + this->styles_ = render->styles(); + this->events_ = render->events(); + this->margins_ = render->GetMargins(); + this->paddings_ = render->GetPaddings(); + this->borders_ = render->GetBorders(); + this->page_id_ = page_id; + this->component_type_ = render->type(); + this->ref_ = render->ref(); +} - void RenderActionCreateBody::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody(this->page_id_.c_str(), - this->component_type_.c_str(), - this->ref_.c_str(), - this->styles_, - this->attributes_, - this->events_, - this->margins_, - this->paddings_, - this->borders_); - } +void RenderActionCreateBody::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateBody( + this->page_id_.c_str(), this->component_type_.c_str(), this->ref_.c_str(), + this->styles_, this->attributes_, this->events_, this->margins_, + this->paddings_, this->borders_); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_createbody.h b/weex_core/Source/core/render/action/render_action_createbody.h index 9de047de9d..23d713c034 100644 --- a/weex_core/Source/core/render/action/render_action_createbody.h +++ b/weex_core/Source/core/render/action/render_action_createbody.h @@ -16,37 +16,38 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_CREATEBODYACTION_H -#define WEEX_PROJECT_CREATEBODYACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_CREATEBODY_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_CREATEBODY_H_ -#include #include #include +#include +#include "core/layout/style.h" #include "core/render/action/render_action_interface.h" namespace WeexCore { - class RenderObject; - - class RenderActionCreateBody : public RenderAction { - - public: - explicit RenderActionCreateBody(const std::string &page_id, const RenderObject *render); - - void ExecuteAction(); - - public: - std::map *styles_; - std::map *attributes_; - std::set *events_; - WXCoreMargin margins_; - WXCorePadding paddings_; - WXCoreBorderWidth borders_; - std::string page_id_; - std::string component_type_; - std::string ref_; - }; -} - -#endif //WEEX_PROJECT_CREATEBODYACTION_H +class RenderObject; + +class RenderActionCreateBody : public RenderAction { + public: + explicit RenderActionCreateBody(const std::string &page_id, + const RenderObject *render); + + void ExecuteAction(); + + public: + std::map *styles_; + std::map *attributes_; + std::set *events_; + WXCoreMargin margins_; + WXCorePadding paddings_; + WXCoreBorderWidth borders_; + std::string page_id_; + std::string component_type_; + std::string ref_; +}; +} // namespace WeexCore + +#endif // CORE_RENDER_ACTION_RENDER_ACTION_CREATEBODY_H_ diff --git a/weex_core/Source/core/render/action/render_action_createfinish.cpp b/weex_core/Source/core/render/action/render_action_createfinish.cpp index a9a4b73d6f..786981eaa5 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.cpp +++ b/weex_core/Source/core/render/action/render_action_createfinish.cpp @@ -17,16 +17,17 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_createfinish.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionCreateFinish::RenderActionCreateFinish(const std::string &page_id) { - this->page_id_ = page_id; - } +RenderActionCreateFinish::RenderActionCreateFinish(const std::string &page_id) { + this->page_id_ = page_id; +} - void RenderActionCreateFinish::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish(this->page_id_.c_str()); - } +void RenderActionCreateFinish::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callCreateFinish( + this->page_id_.c_str()); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_createfinish.h b/weex_core/Source/core/render/action/render_action_createfinish.h index 449ea7d649..4da25cfb28 100644 --- a/weex_core/Source/core/render/action/render_action_createfinish.h +++ b/weex_core/Source/core/render/action/render_action_createfinish.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_CREATEFINISHACTION_H -#define WEEX_PROJECT_CREATEFINISHACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_CREATEFINISH_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_CREATEFINISH_H_ #include @@ -25,16 +25,15 @@ namespace WeexCore { - class RenderActionCreateFinish : public RenderAction { +class RenderActionCreateFinish : public RenderAction { + public: + explicit RenderActionCreateFinish(const std::string &page_id); - public: - explicit RenderActionCreateFinish(const std::string &page_id); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; +}; +} // namespace WeexCore - public: - std::string page_id_; - }; -} - -#endif //WEEX_PROJECT_CREATEFINISHACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_CREATEFINISH_H_ diff --git a/weex_core/Source/core/render/action/render_action_interface.h b/weex_core/Source/core/render/action/render_action_interface.h index e5e3cbc84b..73f488820d 100644 --- a/weex_core/Source/core/render/action/render_action_interface.h +++ b/weex_core/Source/core/render/action/render_action_interface.h @@ -16,15 +16,15 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEXV8_RENDERACTION_H -#define WEEXV8_RENDERACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_INTERFACE_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_INTERFACE_H_ namespace WeexCore { - class RenderAction { - public: - virtual void ExecuteAction() = 0; - }; -} +class RenderAction { + public: + virtual void ExecuteAction() = 0; +}; +} // namespace WeexCore -#endif //WEEXV8_RENDERACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_INTERFACE_H_ diff --git a/weex_core/Source/core/render/action/render_action_layout.cpp b/weex_core/Source/core/render/action/render_action_layout.cpp index 1edd9cb5de..e041511e9e 100644 --- a/weex_core/Source/core/render/action/render_action_layout.cpp +++ b/weex_core/Source/core/render/action/render_action_layout.cpp @@ -17,35 +17,32 @@ * under the License. */ -#include "core/render/node/render_object.h" -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_layout.h" +#include "core/manager/weex_core_manager.h" +#include "core/render/node/render_object.h" namespace WeexCore { - RenderActionLayout::RenderActionLayout(const std::string &page_id, const RenderObject *render, - int index) { - this->page_id_ = page_id; - this->ref_ = render->ref(); - this->index_ = index; - GetLayoutInfo(render); - } +RenderActionLayout::RenderActionLayout(const std::string &page_id, + const RenderObject *render, int index) { + this->page_id_ = page_id; + this->ref_ = render->ref(); + this->index_ = index; + GetLayoutInfo(render); +} - void RenderActionLayout::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callLayout(this->page_id_.c_str(), - this->ref_.c_str(), - this->top_, this->bottom_, - this->left_, this->right_, - this->height_, this->width_, - this->index_); - } +void RenderActionLayout::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callLayout( + this->page_id_.c_str(), this->ref_.c_str(), this->top_, this->bottom_, + this->left_, this->right_, this->height_, this->width_, this->index_); +} - void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { - this->top_ = node->getLayoutPositionTop(); - this->bottom_ = node->getLayoutPositionBottom(); - this->right_ = node->getLayoutPositionRight(); - this->left_ = node->getLayoutPositionLeft(); - this->height_ = node->getLayoutHeight(); - this->width_ = node->getLayoutWidth(); - } +void RenderActionLayout::GetLayoutInfo(const WXCoreLayoutNode *node) { + this->top_ = node->getLayoutPositionTop(); + this->bottom_ = node->getLayoutPositionBottom(); + this->right_ = node->getLayoutPositionRight(); + this->left_ = node->getLayoutPositionLeft(); + this->height_ = node->getLayoutHeight(); + this->width_ = node->getLayoutWidth(); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_layout.h b/weex_core/Source/core/render/action/render_action_layout.h index 38b98e9c6d..ef367003df 100644 --- a/weex_core/Source/core/render/action/render_action_layout.h +++ b/weex_core/Source/core/render/action/render_action_layout.h @@ -16,41 +16,40 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RELAYOUTRENDERACTION_H -#define WEEX_PROJECT_RELAYOUTRENDERACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_LAYOUT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_LAYOUT_H_ -#include #include +#include #include "core/render/action/render_action_interface.h" namespace WeexCore { - class RenderObject; - - class WXCoreLayoutNode; +class RenderObject; - class RenderActionLayout : public RenderAction { +class WXCoreLayoutNode; - public: - explicit RenderActionLayout(const std::string &page_id, const RenderObject *render, - const int index); +class RenderActionLayout : public RenderAction { + public: + explicit RenderActionLayout(const std::string &page_id, + const RenderObject *render, const int index); - void ExecuteAction(); + void ExecuteAction(); - void GetLayoutInfo(const WXCoreLayoutNode *node); + void GetLayoutInfo(const WXCoreLayoutNode *node); - public: - std::string page_id_; - std::string ref_; - float width_; - float height_; - float top_; - float left_; - float bottom_; - float right_; - int index_; - }; -} + public: + std::string page_id_; + std::string ref_; + float width_; + float height_; + float top_; + float left_; + float bottom_; + float right_; + int index_; +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RELAYOUTRENDERACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_LAYOUT_H_ diff --git a/weex_core/Source/core/render/action/render_action_move_element.cpp b/weex_core/Source/core/render/action/render_action_move_element.cpp index ac328bab07..fab00cb2a0 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.cpp +++ b/weex_core/Source/core/render/action/render_action_move_element.cpp @@ -17,24 +17,24 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_move_element.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionMoveElement::RenderActionMoveElement(const std::string &page_id, - const std::string &ref, - const std::string &parent_ref, int index) { - this->page_id_ = page_id; - this->ref_ = ref; - this->parent_ref_ = parent_ref; - this->index_ = index; - } +RenderActionMoveElement::RenderActionMoveElement(const std::string &page_id, + const std::string &ref, + const std::string &parent_ref, + int index) { + this->page_id_ = page_id; + this->ref_ = ref; + this->parent_ref_ = parent_ref; + this->index_ = index; +} - void RenderActionMoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement(this->page_id_.c_str(), - this->ref_.c_str(), - this->parent_ref_.c_str(), - this->index_); - } -} \ No newline at end of file +void RenderActionMoveElement::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callMoveElement( + this->page_id_.c_str(), this->ref_.c_str(), this->parent_ref_.c_str(), + this->index_); +} +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_move_element.h b/weex_core/Source/core/render/action/render_action_move_element.h index fcc6509967..88d9044813 100644 --- a/weex_core/Source/core/render/action/render_action_move_element.h +++ b/weex_core/Source/core/render/action/render_action_move_element.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERACTIONMOVEELEMENT_H -#define WEEX_PROJECT_RENDERACTIONMOVEELEMENT_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_MOVE_ELEMENT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_MOVE_ELEMENT_H_ #include @@ -25,20 +25,20 @@ namespace WeexCore { - class RenderActionMoveElement : public RenderAction { +class RenderActionMoveElement : public RenderAction { + public: + explicit RenderActionMoveElement(const std::string &page_id, + const std::string &ref, + const std::string &parent_ref, int index); - public: - explicit RenderActionMoveElement(const std::string &page_id, const std::string &ref, - const std::string &parent_ref, int index); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; + std::string ref_; + std::string parent_ref_; + int index_; +}; +} // namespace WeexCore - public: - std::string page_id_; - std::string ref_; - std::string parent_ref_; - int index_; - }; -} - -#endif //WEEX_PROJECT_RENDERACTIONMOVEELEMENT_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_MOVE_ELEMENT_H_ diff --git a/weex_core/Source/core/render/action/render_action_remove_element.cpp b/weex_core/Source/core/render/action/render_action_remove_element.cpp index 8995c40c55..ac004353d3 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_element.cpp @@ -17,19 +17,19 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_remove_element.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionRemoveElement::RenderActionRemoveElement(const std::string &page_id, - const std::string &ref) { - this->page_id_ = page_id; - this->ref_ = ref; - } +RenderActionRemoveElement::RenderActionRemoveElement(const std::string &page_id, + const std::string &ref) { + this->page_id_ = page_id; + this->ref_ = ref; +} - void RenderActionRemoveElement::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement(this->page_id_.c_str(), - this->ref_.c_str()); - } -} \ No newline at end of file +void RenderActionRemoveElement::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveElement( + this->page_id_.c_str(), this->ref_.c_str()); +} +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_remove_element.h b/weex_core/Source/core/render/action/render_action_remove_element.h index 6699d0df7e..ff042d352a 100644 --- a/weex_core/Source/core/render/action/render_action_remove_element.h +++ b/weex_core/Source/core/render/action/render_action_remove_element.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERACTIONREMOVEELEMENT_H -#define WEEX_PROJECT_RENDERACTIONREMOVEELEMENT_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_ELEMENT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_ELEMENT_H_ #include @@ -25,16 +25,17 @@ namespace WeexCore { - class RenderActionRemoveElement : public RenderAction { - public: - explicit RenderActionRemoveElement(const std::string &page_id, const std::string &ref); +class RenderActionRemoveElement : public RenderAction { + public: + explicit RenderActionRemoveElement(const std::string &page_id, + const std::string &ref); - void ExecuteAction(); + void ExecuteAction(); - public: - std::string page_id_; - std::string ref_; - }; -} + public: + std::string page_id_; + std::string ref_; +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERACTIONREMOVEELEMENT_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_ELEMENT_H_ diff --git a/weex_core/Source/core/render/action/render_action_remove_event.cpp b/weex_core/Source/core/render/action/render_action_remove_event.cpp index 732f7b7174..f4ae667681 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.cpp +++ b/weex_core/Source/core/render/action/render_action_remove_event.cpp @@ -17,22 +17,21 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_remove_event.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &page_id, - const std::string &ref, - const std::string &event) { - this->page_id_ = page_id; - this->ref_ = ref; - this->event_ = event; - } +RenderActionRemoveEvent::RenderActionRemoveEvent(const std::string &page_id, + const std::string &ref, + const std::string &event) { + this->page_id_ = page_id; + this->ref_ = ref; + this->event_ = event; +} - void RenderActionRemoveEvent::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent(this->page_id_.c_str(), - this->ref_.c_str(), - this->event_.c_str()); - } +void RenderActionRemoveEvent::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callRemoveEvent( + this->page_id_.c_str(), this->ref_.c_str(), this->event_.c_str()); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_remove_event.h b/weex_core/Source/core/render/action/render_action_remove_event.h index 5d6d0fec6a..f44803299f 100644 --- a/weex_core/Source/core/render/action/render_action_remove_event.h +++ b/weex_core/Source/core/render/action/render_action_remove_event.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_REMOVEEVENTACTION_H -#define WEEX_PROJECT_REMOVEEVENTACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_EVENT_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_EVENT_H_ #include @@ -25,19 +25,19 @@ namespace WeexCore { - class RenderActionRemoveEvent : public RenderAction { +class RenderActionRemoveEvent : public RenderAction { + public: + explicit RenderActionRemoveEvent(const std::string &page_id, + const std::string &ref, + const std::string &event); - public: - explicit RenderActionRemoveEvent(const std::string &page_id, const std::string &ref, - const std::string &event); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; + std::string ref_; + std::string event_; +}; +} // namespace WeexCore - public: - std::string page_id_; - std::string ref_; - std::string event_; - }; -} - -#endif //WEEX_PROJECT_REMOVEEVENTACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_REMOVE_EVENT_H_ diff --git a/weex_core/Source/core/render/action/render_action_update_attr.cpp b/weex_core/Source/core/render/action/render_action_update_attr.cpp index 35500b2024..43f05e015f 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.cpp +++ b/weex_core/Source/core/render/action/render_action_update_attr.cpp @@ -17,21 +17,21 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_update_attr.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionUpdateAttr::RenderActionUpdateAttr(const std::string &page_id, const std::string &ref, - std::vector> *attrs) { - this->page_id_ = page_id; - this->ref_ = ref; - this->attrs_ = attrs; - } +RenderActionUpdateAttr::RenderActionUpdateAttr( + const std::string &page_id, const std::string &ref, + std::vector> *attrs) { + this->page_id_ = page_id; + this->ref_ = ref; + this->attrs_ = attrs; +} - void RenderActionUpdateAttr::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr(this->page_id_.c_str(), - this->ref_.c_str(), - this->attrs_); - } +void RenderActionUpdateAttr::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateAttr( + this->page_id_.c_str(), this->ref_.c_str(), this->attrs_); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_update_attr.h b/weex_core/Source/core/render/action/render_action_update_attr.h index 81b48b5ae3..56ebe905e2 100644 --- a/weex_core/Source/core/render/action/render_action_update_attr.h +++ b/weex_core/Source/core/render/action/render_action_update_attr.h @@ -16,29 +16,30 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_UPDATEATTRACTION_H -#define WEEX_PROJECT_UPDATEATTRACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_ATTR_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_ATTR_H_ #include +#include #include #include "core/render/action/render_action_interface.h" namespace WeexCore { - class RenderActionUpdateAttr : public RenderAction { +class RenderActionUpdateAttr : public RenderAction { + public: + explicit RenderActionUpdateAttr( + const std::string &page_id, const std::string &ref, + std::vector> *attrs); - public: - explicit RenderActionUpdateAttr(const std::string &page_id, const std::string &ref, - std::vector> *attrs); + void ExecuteAction(); - void ExecuteAction(); + public: + std::string page_id_; + std::string ref_; + std::vector> *attrs_; +}; +} // namespace WeexCore - public: - std::string page_id_; - std::string ref_; - std::vector> *attrs_; - }; -} - -#endif //WEEX_PROJECT_UPDATEATTRACTION_H +#endif // CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_ATTR_H_ diff --git a/weex_core/Source/core/render/action/render_action_update_style.cpp b/weex_core/Source/core/render/action/render_action_update_style.cpp index 1bc9342603..7ec19b87ca 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.cpp +++ b/weex_core/Source/core/render/action/render_action_update_style.cpp @@ -17,31 +17,28 @@ * under the License. */ -#include "core/manager/weex_core_manager.h" #include "core/render/action/render_action_update_style.h" +#include "core/manager/weex_core_manager.h" namespace WeexCore { - RenderActionUpdateStyle::RenderActionUpdateStyle(const std::string &page_id, - const std::string &ref, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border) { - this->page_id_ = page_id; - this->ref_ = ref; - this->style_ = style; - this->margin_ = margin; - this->padding_ = padding; - this->border_ = border; - } +RenderActionUpdateStyle::RenderActionUpdateStyle( + const std::string &page_id, const std::string &ref, + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border) { + this->page_id_ = page_id; + this->ref_ = ref; + this->style_ = style; + this->margin_ = margin; + this->padding_ = padding; + this->border_ = border; +} - void RenderActionUpdateStyle::ExecuteAction() { - WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle(this->page_id_.c_str(), - this->ref_.c_str(), - this->style_, - this->margin_, - this->padding_, - this->border_); - } +void RenderActionUpdateStyle::ExecuteAction() { + WeexCoreManager::getInstance()->getPlatformBridge()->callUpdateStyle( + this->page_id_.c_str(), this->ref_.c_str(), this->style_, this->margin_, + this->padding_, this->border_); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/action/render_action_update_style.h b/weex_core/Source/core/render/action/render_action_update_style.h index ae914f5621..e60d500c70 100644 --- a/weex_core/Source/core/render/action/render_action_update_style.h +++ b/weex_core/Source/core/render/action/render_action_update_style.h @@ -16,36 +16,36 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_UPDATESTYLEACTION_H -#define WEEX_PROJECT_UPDATESTYLEACTION_H +#ifndef CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_STYLE_H_ +#define CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_STYLE_H_ #include +#include #include #include "core/render/action/render_action_interface.h" namespace WeexCore { - class RenderActionUpdateStyle : public RenderAction { - - public: - - explicit RenderActionUpdateStyle(const std::string &page_id, const std::string &ref, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border); - - void ExecuteAction(); - - public: - std::string page_id_; - std::string ref_; - std::vector> *style_; - std::vector> *margin_; - std::vector> *padding_; - std::vector> *border_; - }; -} - -#endif //WEEX_PROJECT_UPDATESTYLEACTION_H +class RenderActionUpdateStyle : public RenderAction { + public: + explicit RenderActionUpdateStyle( + const std::string &page_id, const std::string &ref, + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border); + + void ExecuteAction(); + + public: + std::string page_id_; + std::string ref_; + std::vector> *style_; + std::vector> *margin_; + std::vector> *padding_; + std::vector> *border_; +}; +} // namespace WeexCore + +#endif // CORE_RENDER_ACTION_RENDER_ACTION_UPDATE_STYLE_H_ diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp index 64e179c642..0eebc82001 100644 --- a/weex_core/Source/core/render/manager/render_manager.cpp +++ b/weex_core/Source/core/render/manager/render_manager.cpp @@ -16,201 +16,201 @@ * specific language governing permissions and limitations * under the License. */ -#include "core/render/manager/render_manager.h" -#include "core/render/page/render_page.h" -#include "core/render/node/render_object.h" + +#include +#include + #include "base/TimeUtils.h" -#include "core/parser/dom_wson.h" #include "core/layout/measure_func_adapter.h" +#include "core/parser/dom_wson.h" +#include "core/render/manager/render_manager.h" +#include "core/render/node/render_object.h" +#include "core/render/page/render_page.h" namespace WeexCore { - RenderManager *RenderManager::g_pInstance = nullptr; - - bool RenderManager::CreatePage(std::string page_id, const char *data) { +RenderManager *RenderManager::g_pInstance = nullptr; +bool RenderManager::CreatePage(std::string page_id, const char *data) { #if RENDER_LOG - wson_parser parser(data); - LOGD("[RenderManager] CreatePage >>>> pageId: %s, dom data: %s", pageId.c_str(), parser.toStringUTF8().c_str()); + wson_parser parser(data); + LOGD("[RenderManager] CreatePage >>>> pageId: %s, dom data: %s", + pageId.c_str(), parser.toStringUTF8().c_str()); #endif - RenderPage *page = new RenderPage(page_id); - this->pages_.insert(std::pair(page_id, page)); - - long long startTime = getCurrentTime(); - RenderObject *root = Wson2RenderObject(data, page_id); - page->ParseJsonTime(getCurrentTime() - startTime); + RenderPage *page = new RenderPage(page_id); + this->pages_.insert(std::pair(page_id, page)); - page->updateDirty(true); - return page->CreateRootRender(root); - } + int64_t start_time = getCurrentTime(); + RenderObject *root = Wson2RenderObject(data, page_id); + page->ParseJsonTime(getCurrentTime() - start_time); - bool RenderManager::AddRenderObject(const std::string &page_id, const std::string &parent_ref, - int index, const char *data) { + page->set_is_dirty(true); + return page->CreateRootRender(root); +} - RenderPage *page = GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::AddRenderObject(const std::string &page_id, + const std::string &parent_ref, int index, + const char *data) { + RenderPage *page = GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - wson_parser parser(data); - LOGD("[RenderManager] AddRenderObject >>>> pageId: %s, parentRef: %s, index: %d, dom data: %s", - pageId.c_str(), parentRef.c_str(), index, parser.toStringUTF8().c_str()); + wson_parser parser(data); + LOGD( + "[RenderManager] AddRenderObject >>>> pageId: %s, parentRef: %s, index: " + "%d, dom data: %s", + pageId.c_str(), parentRef.c_str(), index, parser.toStringUTF8().c_str()); #endif - long long startTime = getCurrentTime(); - RenderObject *child = Wson2RenderObject(data, page_id); - page->ParseJsonTime(getCurrentTime() - startTime); + int64_t start_time = getCurrentTime(); + RenderObject *child = Wson2RenderObject(data, page_id); + page->ParseJsonTime(getCurrentTime() - start_time); - if (child == nullptr) - return false; + if (child == nullptr) return false; - page->updateDirty(true); - return page->AddRenderObject(parent_ref, index, child); - } - - bool RenderManager::RemoveRenderObject(const std::string &page_id, const std::string &ref) { + page->set_is_dirty(true); + return page->AddRenderObject(parent_ref, index, child); +} - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::RemoveRenderObject(const std::string &page_id, + const std::string &ref) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] RemoveRenderObject >>>> pageId: %s, ref: %s", pageId.c_str(), - ref.c_str()); + LOGD("[RenderManager] RemoveRenderObject >>>> pageId: %s, ref: %s", + pageId.c_str(), ref.c_str()); #endif - page->updateDirty(true); - return page->RemoveRenderObject(ref); - } + page->set_is_dirty(true); + return page->RemoveRenderObject(ref); +} - bool RenderManager::MoveRenderObject(const std::string &page_id, const std::string &ref, - const std::string &parent_ref, int index) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::MoveRenderObject(const std::string &page_id, + const std::string &ref, + const std::string &parent_ref, int index) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] MoveRenderObject >>>> pageId: %s, ref: %s, parentRef: %s, index: %d", - pageId.c_str(), ref.c_str(), parentRef.c_str(), index); + LOGD( + "[RenderManager] MoveRenderObject >>>> pageId: %s, ref: %s, parentRef: " + "%s, index: %d", + pageId.c_str(), ref.c_str(), parentRef.c_str(), index); #endif - page->updateDirty(true); - return page->MoveRenderObject(ref, parent_ref, index); - } + page->set_is_dirty(true); + return page->MoveRenderObject(ref, parent_ref, index); +} - bool RenderManager::UpdateAttr(const std::string &page_id, const std::string &ref, - const char *data) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::UpdateAttr(const std::string &page_id, + const std::string &ref, const char *data) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - wson_parser parser(data); - LOGD("[RenderManager] UpdateAttr >>>> pageId: %s, ref: %s, data: %s", - pageId.c_str(), ref.c_str(), parser.toStringUTF8().c_str()); + wson_parser parser(data); + LOGD("[RenderManager] UpdateAttr >>>> pageId: %s, ref: %s, data: %s", + pageId.c_str(), ref.c_str(), parser.toStringUTF8().c_str()); #endif - long long startTime = getCurrentTime(); - std::vector > *attrs = Wson2Pairs(data); - page->ParseJsonTime(getCurrentTime() - startTime); + int64_t start_time = getCurrentTime(); + std::vector> *attrs = Wson2Pairs(data); + page->ParseJsonTime(getCurrentTime() - start_time); - page->updateDirty(true); - return page->UpdateAttr(ref, attrs); - } + page->set_is_dirty(true); + return page->UpdateAttr(ref, attrs); +} - bool RenderManager::UpdateStyle(const std::string &page_id, const std::string &ref, - const char *data) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::UpdateStyle(const std::string &page_id, + const std::string &ref, const char *data) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - wson_parser parser(data); - LOGD("[RenderManager] UpdateStyle >>>> pageId: %s, ref: %s, data: %s", - pageId.c_str(), ref.c_str(), parser.toStringUTF8().c_str()); + wson_parser parser(data); + LOGD("[RenderManager] UpdateStyle >>>> pageId: %s, ref: %s, data: %s", + pageId.c_str(), ref.c_str(), parser.toStringUTF8().c_str()); #endif - long long startTime = getCurrentTime(); - std::vector > *styles = Wson2Pairs(data); - page->ParseJsonTime(getCurrentTime() - startTime); + int64_t start_time = getCurrentTime(); + std::vector> *styles = Wson2Pairs(data); + page->ParseJsonTime(getCurrentTime() - start_time); - page->updateDirty(true); - return page->UpdateStyle(ref, styles); - } + page->set_is_dirty(true); + return page->UpdateStyle(ref, styles); +} - bool RenderManager::AddEvent(const std::string &page_id, const std::string &ref, - const std::string &event) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::AddEvent(const std::string &page_id, const std::string &ref, + const std::string &event) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] AddEvent >>>> pageId: %s, ref: %s, event: %s", - pageId.c_str(), ref.c_str(), event.c_str()); + LOGD("[RenderManager] AddEvent >>>> pageId: %s, ref: %s, event: %s", + pageId.c_str(), ref.c_str(), event.c_str()); #endif - page->updateDirty(true); - return page->AddEvent(ref, event); - } + page->set_is_dirty(true); + return page->AddEvent(ref, event); +} - bool RenderManager::RemoveEvent(const std::string &page_id, const std::string &ref, - const std::string &event) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::RemoveEvent(const std::string &page_id, + const std::string &ref, + const std::string &event) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] RemoveEvent >>>> pageId: %s, ref: %s, event: %s", - pageId.c_str(), ref.c_str(), event.c_str()); + LOGD("[RenderManager] RemoveEvent >>>> pageId: %s, ref: %s, event: %s", + pageId.c_str(), ref.c_str(), event.c_str()); #endif - page->updateDirty(true); - return page->RemoveEvent(ref, event); - } + page->set_is_dirty(true); + return page->RemoveEvent(ref, event); +} - bool RenderManager::CreateFinish(const std::string &page_id) { - RenderPage *page = GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::CreateFinish(const std::string &page_id) { + RenderPage *page = GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] CreateFinish >>>> pageId: %s", pageId.c_str()); + LOGD("[RenderManager] CreateFinish >>>> pageId: %s", pageId.c_str()); #endif - page->updateDirty(true); - return page->CreateFinish(); - } - - RenderPage *RenderManager::GetPage(const std::string &page_id) { - std::map::iterator iter = this->pages_.find(page_id); - if (iter != this->pages_.end()) { - return iter->second; - } else { - return nullptr; - } + page->set_is_dirty(true); + return page->CreateFinish(); +} + +RenderPage *RenderManager::GetPage(const std::string &page_id) { + std::map::iterator iter = + this->pages_.find(page_id); + if (iter != this->pages_.end()) { + return iter->second; + } else { + return nullptr; } +} - bool RenderManager::ClosePage(const std::string &page_id) { - RenderPage *page = GetPage(page_id); - if (page == nullptr) - return false; +bool RenderManager::ClosePage(const std::string &page_id) { + RenderPage *page = GetPage(page_id); + if (page == nullptr) return false; #if RENDER_LOG - LOGD("[RenderManager] ClosePage >>>> pageId: %s", pageId.c_str()); + LOGD("[RenderManager] ClosePage >>>> pageId: %s", pageId.c_str()); #endif - page->OnRenderPageClose(); - this->pages_.erase(page_id); - delete page; - page = nullptr; - } + page->OnRenderPageClose(); + this->pages_.erase(page_id); + delete page; + page = nullptr; +} - void RenderManager::Batch(const std::string &page_id) { - RenderPage *page = this->GetPage(page_id); - if (page == nullptr) - return; +void RenderManager::Batch(const std::string &page_id) { + RenderPage *page = this->GetPage(page_id); + if (page == nullptr) return; - page->Batch(); - } + page->Batch(); +} -} //namespace WeexCore +} // namespace WeexCore diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h index b87c48613c..9abe2daf89 100644 --- a/weex_core/Source/core/render/manager/render_manager.h +++ b/weex_core/Source/core/render/manager/render_manager.h @@ -16,76 +16,80 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef RenderManager_h -#define RenderManager_h +#ifndef CORE_RENDER_MANAGER_RENDER_MANAGER_H_ +#define CORE_RENDER_MANAGER_RENDER_MANAGER_H_ #include #include namespace WeexCore { - class RenderPage; +class RenderPage; - class RenderManager { +class RenderManager { + private: + RenderManager() {} - private: - explicit RenderManager() {} + ~RenderManager() {} - ~RenderManager() {} - - //just to release singleton object - class Garbo { - public: - ~Garbo() { - if (RenderManager::g_pInstance) { - delete RenderManager::g_pInstance; - } + // just to release singleton object + class Garbo { + public: + ~Garbo() { + if (RenderManager::g_pInstance) { + delete RenderManager::g_pInstance; } - }; - - static Garbo garbo; + } + }; - public: + static Garbo garbo; - void Batch(const std::string &page_id); + public: + void Batch(const std::string &page_id); - // create root node - bool CreatePage(std::string page_id, const char *data); + // create root node + bool CreatePage(std::string page_id, const char *data); - /** use auto constructor is bad idea, it cann't transfer binary, use char* is better */ - bool AddRenderObject(const std::string &page_id, const std::string &parent_ref, int index, - const char *data); + /** use auto constructor is bad idea, it cann't transfer binary, use char* is + * better */ + bool AddRenderObject(const std::string &page_id, + const std::string &parent_ref, int index, + const char *data); - bool RemoveRenderObject(const std::string &page_id, const std::string &ref); + bool RemoveRenderObject(const std::string &page_id, const std::string &ref); - bool MoveRenderObject(const std::string &page_id, const std::string &ref, - const std::string &parent_ref, int index); + bool MoveRenderObject(const std::string &page_id, const std::string &ref, + const std::string &parent_ref, int index); - bool UpdateAttr(const std::string &page_id, const std::string &ref, const char *data); + bool UpdateAttr(const std::string &page_id, const std::string &ref, + const char *data); - bool UpdateStyle(const std::string &page_id, const std::string &ref, const char *data); + bool UpdateStyle(const std::string &page_id, const std::string &ref, + const char *data); - bool AddEvent(const std::string &page_id, const std::string &ref, const std::string &event); + bool AddEvent(const std::string &page_id, const std::string &ref, + const std::string &event); - bool RemoveEvent(const std::string &page_id, const std::string &ref, const std::string &event); + bool RemoveEvent(const std::string &page_id, const std::string &ref, + const std::string &event); - bool CreateFinish(const std::string &page_id); + bool CreateFinish(const std::string &page_id); - RenderPage *GetPage(const std::string &page_id); + RenderPage *GetPage(const std::string &page_id); - bool ClosePage(const std::string &page_id); + bool ClosePage(const std::string &page_id); - static RenderManager *GetInstance() { - if (!g_pInstance) { - g_pInstance = new RenderManager(); - } - return g_pInstance; + static RenderManager *GetInstance() { + if (!g_pInstance) { + g_pInstance = new RenderManager(); } + return g_pInstance; + } - private: - static RenderManager *g_pInstance; - std::map pages_; - }; -} + private: + static RenderManager *g_pInstance; + std::map pages_; +}; +} // namespace WeexCore -#endif //RenderManager_h \ No newline at end of file +#endif // CORE_RENDER_MANAGER_RENDER_MANAGER_H_ diff --git a/weex_core/Source/core/render/node/factory/render_appbar_factory.h b/weex_core/Source/core/render/node/factory/render_appbar_factory.h index 874cdda002..803666fc16 100644 --- a/weex_core/Source/core/render/node/factory/render_appbar_factory.h +++ b/weex_core/Source/core/render/node/factory/render_appbar_factory.h @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERAPPBARFACTORY_H -#define WEEX_PROJECT_RENDERAPPBARFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_APPBAR_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_APPBAR_FACTORY_H_ -#include "core/render/node/render_appbar.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_appbar.h" namespace WeexCore { - class RenderAppBarFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderAppBar(); - } - }; +class RenderAppBarFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderAppBar(); } +}; -} +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERAPPBARFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_APPBAR_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_cell_factory.h b/weex_core/Source/core/render/node/factory/render_cell_factory.h index 2d4ae5bd0a..d6d439a1a9 100644 --- a/weex_core/Source/core/render/node/factory/render_cell_factory.h +++ b/weex_core/Source/core/render/node/factory/render_cell_factory.h @@ -16,20 +16,18 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERCELLFACTORY_H -#define WEEX_PROJECT_RENDERCELLFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_CELL_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_CELL_FACTORY_H_ -#include "core/render/node/render_cell.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_cell.h" namespace WeexCore { - class RenderCellFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderCell(); - } - }; +class RenderCellFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderCell(); } +}; -} -#endif //WEEX_PROJECT_RENDERCELLFACTORY_H +} // namespace WeexCore +#endif // CORE_RENDER_NODE_FACTORY_RENDER_CELL_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_creator.cpp b/weex_core/Source/core/render/node/factory/render_creator.cpp index 92f8c3bef8..8632110cd3 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.cpp +++ b/weex_core/Source/core/render/node/factory/render_creator.cpp @@ -17,40 +17,42 @@ * under the License. */ #include "core/render/node/factory/render_creator.h" -#include "core/render/node/factory/render_object_interface.h" +#include "core/render/node/factory/render_appbar_factory.h" #include "core/render/node/factory/render_factory_interface.h" -#include "core/render/node/factory/render_text_factory.h" -#include "core/render/node/factory/simple_render_factory.h" #include "core/render/node/factory/render_list_factory.h" #include "core/render/node/factory/render_mask_factory.h" +#include "core/render/node/factory/render_object_interface.h" #include "core/render/node/factory/render_scroller_factory.h" -#include "core/render/node/factory/render_appbar_factory.h" +#include "core/render/node/factory/render_text_factory.h" #include "core/render/node/factory/render_type.h" +#include "core/render/node/factory/simple_render_factory.h" namespace WeexCore { - RenderCreator *RenderCreator::g_pInstance = nullptr; +RenderCreator *RenderCreator::g_pInstance = nullptr; - IRenderObject *RenderCreator::CreateRender(const std::string &type, const std::string &ref) { - IRenderFactory *factory; - if (type == kRenderText) { - factory = new RenderTextFactory(); - } else if (type == kRenderList || type == kRenderWaterfall || type == kRenderRecycleList) { - factory = new RenderListFactory(); - } else if (type == kRenderMask) { - factory = new RenderMaskFactory(); - } else if (type == kRenderScroller) { - factory = new RenderScrollerFactory(); - } else if (type == kRenderAppBar) { - factory = new RenderAppBarFactory(); - } else { - factory = new RenderCommonFactory(); - } - - IRenderObject *render = factory->CreateRender(); - render->set_ref(ref); - render->set_type(type); - delete factory; - return render; +IRenderObject *RenderCreator::CreateRender(const std::string &type, + const std::string &ref) { + IRenderFactory *factory; + if (type == kRenderText) { + factory = new RenderTextFactory(); + } else if (type == kRenderList || type == kRenderWaterfall || + type == kRenderRecycleList) { + factory = new RenderListFactory(); + } else if (type == kRenderMask) { + factory = new RenderMaskFactory(); + } else if (type == kRenderScroller) { + factory = new RenderScrollerFactory(); + } else if (type == kRenderAppBar) { + factory = new RenderAppBarFactory(); + } else { + factory = new RenderCommonFactory(); } + + IRenderObject *render = factory->CreateRender(); + render->set_ref(ref); + render->set_type(type); + delete factory; + return render; } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/factory/render_creator.h b/weex_core/Source/core/render/node/factory/render_creator.h index b78a48743d..f5dddfccee 100644 --- a/weex_core/Source/core/render/node/factory/render_creator.h +++ b/weex_core/Source/core/render/node/factory/render_creator.h @@ -16,48 +16,46 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERCREATOR_H -#define WEEX_PROJECT_RENDERCREATOR_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_CREATOR_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_CREATOR_H_ #include namespace WeexCore { - class IRenderObject; +class IRenderObject; - class RenderCreator { +class RenderCreator { + private: + RenderCreator() {} - private: - explicit RenderCreator() {} + ~RenderCreator() {} - ~RenderCreator() {} - - //just to release singleton object - class Garbo { - public: - ~Garbo() { - if (RenderCreator::g_pInstance) { - delete RenderCreator::g_pInstance; - } + // just to release singleton object + class Garbo { + public: + ~Garbo() { + if (RenderCreator::g_pInstance) { + delete RenderCreator::g_pInstance; } - }; - - static Garbo garbo; + } + }; - public: + static Garbo garbo; - static RenderCreator *GetInstance() { - if (!g_pInstance) { - g_pInstance = new RenderCreator(); - } - return g_pInstance; + public: + static RenderCreator *GetInstance() { + if (!g_pInstance) { + g_pInstance = new RenderCreator(); } + return g_pInstance; + } - IRenderObject *CreateRender(const std::string &type, const std::string &ref); + IRenderObject *CreateRender(const std::string &type, const std::string &ref); - private: - static RenderCreator *g_pInstance; - }; -} + private: + static RenderCreator *g_pInstance; +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERCREATOR_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_CREATOR_H_ diff --git a/weex_core/Source/core/render/node/factory/render_factory_interface.h b/weex_core/Source/core/render/node/factory/render_factory_interface.h index 02d936c70c..ab8787ac8e 100644 --- a/weex_core/Source/core/render/node/factory/render_factory_interface.h +++ b/weex_core/Source/core/render/node/factory/render_factory_interface.h @@ -16,16 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_IRENDERFACTORY_H -#define WEEX_PROJECT_IRENDERFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_FACTORY_INTERFACE_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_FACTORY_INTERFACE_H_ #include "core/render/node/factory/render_object_interface.h" namespace WeexCore { - class IRenderFactory { - public: - virtual IRenderObject *CreateRender() = 0; - }; -} +class IRenderFactory { + public: + virtual IRenderObject *CreateRender() = 0; +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_IRENDERFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_FACTORY_INTERFACE_H_ diff --git a/weex_core/Source/core/render/node/factory/render_list_factory.h b/weex_core/Source/core/render/node/factory/render_list_factory.h index e15c94a0e4..50735f9f38 100644 --- a/weex_core/Source/core/render/node/factory/render_list_factory.h +++ b/weex_core/Source/core/render/node/factory/render_list_factory.h @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERLISTFACTORY_H -#define WEEX_PROJECT_RENDERLISTFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_LIST_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_LIST_FACTORY_H_ -#include "core/render/node/render_list.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_list.h" namespace WeexCore { - class RenderListFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderList(); - } - }; +class RenderListFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderList(); } +}; -} +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERLISTFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_LIST_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_mask_factory.h b/weex_core/Source/core/render/node/factory/render_mask_factory.h index 7f865e408d..edd516f86d 100644 --- a/weex_core/Source/core/render/node/factory/render_mask_factory.h +++ b/weex_core/Source/core/render/node/factory/render_mask_factory.h @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERMASKFACTORY_H -#define WEEX_PROJECT_RENDERMASKFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_MASK_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_MASK_FACTORY_H_ -#include "core/render/node/render_mask.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_mask.h" namespace WeexCore { - class RenderMaskFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderMask(); - } - }; +class RenderMaskFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderMask(); } +}; -} +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERMASKFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_MASK_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_object_interface.h b/weex_core/Source/core/render/node/factory/render_object_interface.h index 9e3922ff5d..f080113daf 100644 --- a/weex_core/Source/core/render/node/factory/render_object_interface.h +++ b/weex_core/Source/core/render/node/factory/render_object_interface.h @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_IRENDEROBJECT_H -#define WEEX_PROJECT_IRENDEROBJECT_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_OBJECT_INTERFACE_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_OBJECT_INTERFACE_H_ #include @@ -25,47 +25,32 @@ namespace WeexCore { - class IRenderObject : public WXCoreLayoutNode { +class IRenderObject : public WXCoreLayoutNode { + public: + inline void set_ref(std::string ref) { this->ref_ = ref; } - public: + inline const std::string &ref() const { return this->ref_; } - inline void set_ref(std::string ref) { - this->ref_ = ref; - } + inline void set_page_id(std::string page_id) { this->page_id_ = page_id; } - inline const std::string &ref() const { - return this->ref_; - } + inline const std::string &page_id() const { return this->page_id_; } - inline void set_page_id(std::string page_id) { - this->page_id_ = page_id; - } + inline void set_type(std::string type) { this->tyle_ = type; } - inline const std::string &page_id() const { - return this->page_id_; - } + inline const std::string &type() const { return this->tyle_; } - inline void set_type(std::string type) { - this->tyle_ = type; - } + inline void CopyFrom(IRenderObject *src) { + WXCoreLayoutNode::copyFrom(src); + set_ref(src->ref()); + set_page_id(src->page_id()); + set_type(src->type()); + } - inline const std::string &type() const { - return this->tyle_; - } + private: + std::string page_id_ = ""; + std::string ref_ = ""; + std::string tyle_ = ""; +}; +} // namespace WeexCore - inline void CopyFrom(IRenderObject *src) { - WXCoreLayoutNode::copyFrom(src); - set_ref(src->ref()); - set_page_id(src->page_id()); - set_type(src->type()); - } - - private: - - std::string page_id_ = ""; - std::string ref_ = ""; - std::string tyle_ = ""; - }; -} - -#endif //WEEX_PROJECT_IRENDEROBJECT_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_OBJECT_INTERFACE_H_ diff --git a/weex_core/Source/core/render/node/factory/render_scroller_factory.h b/weex_core/Source/core/render/node/factory/render_scroller_factory.h index 062af888dd..53d268e888 100644 --- a/weex_core/Source/core/render/node/factory/render_scroller_factory.h +++ b/weex_core/Source/core/render/node/factory/render_scroller_factory.h @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERSCROLLERFACTORY_H -#define WEEX_PROJECT_RENDERSCROLLERFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_SCROLLER_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_SCROLLER_FACTORY_H_ -#include "core/render/node/render_scroller.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_scroller.h" namespace WeexCore { - class RenderScrollerFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderScroller(); - } - }; +class RenderScrollerFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderScroller(); } +}; -} +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERSCROLLERFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_SCROLLER_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_text_factory.h b/weex_core/Source/core/render/node/factory/render_text_factory.h index 967412a6e2..e54d31b36a 100644 --- a/weex_core/Source/core/render/node/factory/render_text_factory.h +++ b/weex_core/Source/core/render/node/factory/render_text_factory.h @@ -16,21 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERTEXTFACTORY_H -#define WEEX_PROJECT_RENDERTEXTFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_TEXT_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_TEXT_FACTORY_H_ -#include "core/render/node/render_text.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_text.h" namespace WeexCore { - class RenderTextFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderText(); - } - }; +class RenderTextFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderText(); } +}; -} +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERTEXTFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_TEXT_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/factory/render_type.h b/weex_core/Source/core/render/node/factory/render_type.h index 46c98aec1b..c7242b8ae9 100644 --- a/weex_core/Source/core/render/node/factory/render_type.h +++ b/weex_core/Source/core/render/node/factory/render_type.h @@ -16,24 +16,24 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERTYPE_H -#define WEEX_PROJECT_RENDERTYPE_H +#ifndef CORE_RENDER_NODE_FACTORY_RENDER_TYPE_H_ +#define CORE_RENDER_NODE_FACTORY_RENDER_TYPE_H_ #include namespace WeexCore { - constexpr char kRenderCell[] = "cell"; - constexpr char kRenderCellSlot[] = "cell-slot"; - constexpr char kRenderList[] = "list"; - constexpr char kHList[] = "hlist"; - constexpr char kRenderRecycleList[] = "recycle-list"; - constexpr char kRenderMask[] = "mask"; - constexpr char kRenderScroller[] = "scroller"; - constexpr char kRenderText[] = "text"; - constexpr char kRenderHeader[] = "header"; - constexpr char kRenderFooter[] = "footer"; - constexpr char kRenderWaterfall[] = "waterfall"; - constexpr char kRenderAppBar[] = "appbar"; -} +constexpr char kRenderCell[] = "cell"; +constexpr char kRenderCellSlot[] = "cell-slot"; +constexpr char kRenderList[] = "list"; +constexpr char kHList[] = "hlist"; +constexpr char kRenderRecycleList[] = "recycle-list"; +constexpr char kRenderMask[] = "mask"; +constexpr char kRenderScroller[] = "scroller"; +constexpr char kRenderText[] = "text"; +constexpr char kRenderHeader[] = "header"; +constexpr char kRenderFooter[] = "footer"; +constexpr char kRenderWaterfall[] = "waterfall"; +constexpr char kRenderAppBar[] = "appbar"; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERTYPE_H +#endif // CORE_RENDER_NODE_FACTORY_RENDER_TYPE_H_ diff --git a/weex_core/Source/core/render/node/factory/simple_render_factory.h b/weex_core/Source/core/render/node/factory/simple_render_factory.h index eb55d41d70..f7e9b2284b 100644 --- a/weex_core/Source/core/render/node/factory/simple_render_factory.h +++ b/weex_core/Source/core/render/node/factory/simple_render_factory.h @@ -16,22 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERCOMMONFACTORY_H -#define WEEX_PROJECT_RENDERCOMMONFACTORY_H +#ifndef CORE_RENDER_NODE_FACTORY_SIMPLE_RENDER_FACTORY_H_ +#define CORE_RENDER_NODE_FACTORY_SIMPLE_RENDER_FACTORY_H_ -#include "core/render/node/render_object.h" #include "core/render/node/factory/render_factory_interface.h" +#include "core/render/node/render_object.h" namespace WeexCore { - class RenderCommonFactory : public IRenderFactory { - public: - IRenderObject *CreateRender() { - return new RenderObject(); - } - }; - -} +class RenderCommonFactory : public IRenderFactory { + public: + IRenderObject *CreateRender() { return new RenderObject(); } +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERCOMMONFACTORY_H +#endif // CORE_RENDER_NODE_FACTORY_SIMPLE_RENDER_FACTORY_H_ diff --git a/weex_core/Source/core/render/node/render_appbar.cpp b/weex_core/Source/core/render/node/render_appbar.cpp index 8c05f41a8a..1e9a2910a4 100644 --- a/weex_core/Source/core/render/node/render_appbar.cpp +++ b/weex_core/Source/core/render/node/render_appbar.cpp @@ -16,70 +16,70 @@ * specific language governing permissions and limitations * under the License. */ -#include "core/config/core_environment.h" +#include + #include "base/ViewUtils.h" +#include "core/config/core_environment.h" #include "core/css/constants_name.h" #include "core/render/node/render_appbar.h" namespace WeexCore { - std::map *RenderAppBar::GetDefaultStyle() { - this->default_nav_width_ = getFloat( - WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); +std::map *RenderAppBar::GetDefaultStyle() { + this->default_nav_width_ = getFloat( + WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str()); - this->default_overflow_width_ = getFloat( - WXCoreEnvironment::getInstance()->GetOption("defaultOverflowWidth").c_str()); + this->default_overflow_width_ = + getFloat(WXCoreEnvironment::getInstance() + ->GetOption("defaultOverflowWidth") + .c_str()); - std::string appbar_color = WXCoreEnvironment::getInstance()->GetOption("appbar_color"); - std::string appbar_background_color = WXCoreEnvironment::getInstance()->GetOption( - "appbar_background_color"); + std::string appbar_color = + WXCoreEnvironment::getInstance()->GetOption("appbar_color"); + std::string appbar_background_color = + WXCoreEnvironment::getInstance()->GetOption("appbar_background_color"); - std::map *style = new std::map(); - style->insert(std::pair(PADDING_LEFT, "0")); - style->insert(std::pair(PADDING_RIGHT, "0")); + std::map *style = + new std::map(); + style->insert(std::pair(PADDING_LEFT, "0")); + style->insert(std::pair(PADDING_RIGHT, "0")); - if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR)) - style->insert(std::pair(COLOR, appbar_color)); - if (!appbar_background_color.empty() && appbar_background_color != "" && - !StyleExist(BACKGROUND_COLOR)) - style->insert(std::pair(BACKGROUND_COLOR, appbar_background_color)); - return style; - } + if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR)) + style->insert(std::pair(COLOR, appbar_color)); + if (!appbar_background_color.empty() && appbar_background_color != "" && + !StyleExist(BACKGROUND_COLOR)) + style->insert(std::pair(BACKGROUND_COLOR, + appbar_background_color)); + return style; +} - bool RenderAppBar::StyleExist(const std::string &key) { - std::string value = GetStyle(key); - return !value.empty() && value != ""; - } +bool RenderAppBar::StyleExist(const std::string &key) { + std::string value = GetStyle(key); + return !value.empty() && value != ""; +} - StyleType RenderAppBar::ApplyStyle(const std::string &key, const std::string &value, - const bool updating) { - if (key == PADDING) { - UpdateStyleInternal(key, - value, - 0, - [=](float foo) { - setPadding(kPaddingLeft, foo + this->default_nav_width_), - setPadding(kPaddingRight, foo + this->default_overflow_width_), - setPadding(kPaddingTop, foo), - setPadding(kPaddingBottom, foo); - }); - return kTypePadding; - } else if (key == PADDING_LEFT) { - UpdateStyleInternal(key, - value, - 0, - [=](float foo) { setPadding(kPaddingLeft, foo + this->default_nav_width_); }); - return kTypePadding; - } else if (key == PADDING_RIGHT) { - UpdateStyleInternal(key, - value, - 0, - [=](float foo) { - setPadding(kPaddingRight, foo + this->default_overflow_width_); - }); - return kTypePadding; - } else { - return RenderObject::ApplyStyle(key, value, updating); - } +StyleType RenderAppBar::ApplyStyle(const std::string &key, + const std::string &value, + const bool updating) { + if (key == PADDING) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setPadding(kPaddingLeft, foo + this->default_nav_width_), + setPadding(kPaddingRight, foo + this->default_overflow_width_), + setPadding(kPaddingTop, foo), setPadding(kPaddingBottom, foo); + }); + return kTypePadding; + } else if (key == PADDING_LEFT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setPadding(kPaddingLeft, foo + this->default_nav_width_); + }); + return kTypePadding; + } else if (key == PADDING_RIGHT) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setPadding(kPaddingRight, foo + this->default_overflow_width_); + }); + return kTypePadding; + } else { + return RenderObject::ApplyStyle(key, value, updating); } } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_appbar.h b/weex_core/Source/core/render/node/render_appbar.h index 3247c7c5af..24e395719f 100644 --- a/weex_core/Source/core/render/node/render_appbar.h +++ b/weex_core/Source/core/render/node/render_appbar.h @@ -16,32 +16,29 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERAPPBAR_H -#define WEEX_PROJECT_RENDERAPPBAR_H +#ifndef CORE_RENDER_NODE_RENDER_APPBAR_H_ +#define CORE_RENDER_NODE_RENDER_APPBAR_H_ +#include #include #include "core/render/node/render_object.h" namespace WeexCore { - class RenderAppBar : public RenderObject { +class RenderAppBar : public RenderObject { + private: + std::map *GetDefaultStyle(); - private: + bool StyleExist(const std::string &key); - std::map *GetDefaultStyle(); + public: + StyleType ApplyStyle(const std::string &key, const std::string &value, + const bool updating); - bool StyleExist(const std::string &key); + private: + float default_nav_width_; + float default_overflow_width_; +}; +} // namespace WeexCore - public: - - StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating); - - private: - - float default_nav_width_; - float default_overflow_width_; - - }; -} - -#endif //WEEX_PROJECT_RENDERAPPBAR_H +#endif // CORE_RENDER_NODE_RENDER_APPBAR_H_ diff --git a/weex_core/Source/core/render/node/render_cell.h b/weex_core/Source/core/render/node/render_cell.h index 9a2ced6e20..3421b6f958 100644 --- a/weex_core/Source/core/render/node/render_cell.h +++ b/weex_core/Source/core/render/node/render_cell.h @@ -16,15 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERCELL_H -#define WEEX_PROJECT_RENDERCELL_H +#ifndef CORE_RENDER_NODE_RENDER_CELL_H_ +#define CORE_RENDER_NODE_RENDER_CELL_H_ #include "core/render/node/render_object.h" namespace WeexCore { - class RenderCell : public RenderObject { +class RenderCell : public RenderObject {}; +} // namespace WeexCore - }; -} - -#endif //WEEX_PROJECT_RENDERCELL_H +#endif // CORE_RENDER_NODE_RENDER_CELL_H_ diff --git a/weex_core/Source/core/render/node/render_list.cpp b/weex_core/Source/core/render/node/render_list.cpp index 1854d5e57c..84df8ecb5c 100644 --- a/weex_core/Source/core/render/node/render_list.cpp +++ b/weex_core/Source/core/render/node/render_list.cpp @@ -17,314 +17,339 @@ * under the License. */ #include +#include -#include "core/render/node/render_list.h" -#include "core/css/constants_name.h" #include "base/ViewUtils.h" +#include "core/css/constants_name.h" #include "core/render/node/factory/render_type.h" +#include "core/render/node/render_list.h" #include "core/render/node/render_object.h" #include "core/render/page/render_page.h" namespace WeexCore { - RenderList::~RenderList() { - if (this->cell_slots_copys_.size() > 0) { - for (auto it = this->cell_slots_copys_.begin(); it != this->cell_slots_copys_.end(); ++it) { - RenderObject *child = *it; - if (child) { - delete child; - child = nullptr; - } +RenderList::~RenderList() { + if (this->cell_slots_copys_.size() > 0) { + for (auto it = this->cell_slots_copys_.begin(); + it != this->cell_slots_copys_.end(); ++it) { + RenderObject *child = *it; + if (child) { + delete child; + child = nullptr; } - this->cell_slots_copys_.clear(); } + this->cell_slots_copys_.clear(); + } - if (this->cell_slots_.size() > 0) { - for (auto it = this->cell_slots_.begin(); it != this->cell_slots_.end(); ++it) { - RenderObject *child = *it; - if (child) { - delete child; - child = nullptr; - } + if (this->cell_slots_.size() > 0) { + for (auto it = this->cell_slots_.begin(); it != this->cell_slots_.end(); + ++it) { + RenderObject *child = *it; + if (child) { + delete child; + child = nullptr; } - this->cell_slots_.clear(); } + this->cell_slots_.clear(); } +} - void RenderList::AddCellSlotCopyTrack(RenderObject *cellSlot) { - cellSlot->setParent(this, cellSlot); - this->cell_slots_copys_.push_back(cellSlot); - } - - std::map *RenderList::GetDefaultStyle() { - std::map *style = new std::map(); - - bool isVertical = true; - RenderObject *parent = (RenderObject *) getParent(); +void RenderList::AddCellSlotCopyTrack(RenderObject *cell_slot) { + cell_slot->setParent(this, cell_slot); + this->cell_slots_copys_.push_back(cell_slot); +} - if (parent != nullptr && !parent->type().empty()) { - if (parent->type() == kHList) { - isVertical = false; - } else if (TakeOrientation() == HORIZONTAL_VALUE) { - isVertical = false; - } - } +std::map *RenderList::GetDefaultStyle() { + std::map *style = + new std::map(); - std::string prop = isVertical ? HEIGHT : WIDTH; + bool is_vertical = true; + RenderObject *parent = static_cast(getParent()); - if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { - this->is_set_flex_ = true; - style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(TakeStyleWidth()) && !this->is_set_flex_) { - this->is_set_flex_ = true; - style->insert(std::pair(FLEX, "1")); + if (parent != nullptr && !parent->type().empty()) { + if (parent->type() == kHList) { + is_vertical = false; + } else if (TakeOrientation() == HORIZONTAL_VALUE) { + is_vertical = false; } - - return style; } - void RenderList::set_flex(const float flex) { - this->is_set_flex_ = true; - WXCoreLayoutNode::set_flex(flex); - } + std::string prop = is_vertical ? HEIGHT : WIDTH; - std::map *RenderList::GetDefaultAttr() { - if (!this->is_pre_calculate_cell_width_) { - PreCalculateCellWidth(); - } - return nullptr; + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { + this->is_set_flex_ = true; + style->insert(std::pair(FLEX, "1")); + } else if (prop == WIDTH && isnan(TakeStyleWidth()) && !this->is_set_flex_) { + this->is_set_flex_ = true; + style->insert(std::pair(FLEX, "1")); } - void RenderList::PreCalculateCellWidth() { - std::map *attrs = new std::map(); - if (attributes() != nullptr) { - this->column_count_ = TakeColumnCount(); - this->column_width_ = TakeColumnWidth(); - this->column_gap_ = TakeColumnGap(); + return style; +} - this->left_gap_ = TakeLeftGap(); - this->right_gap_ = TakeRightGap(); +void RenderList::set_flex(const float flex) { + this->is_set_flex_ = true; + WXCoreLayoutNode::set_flex(flex); +} - this->available_width_ = - TakeStyleWidth() - getWebPxByWidth(getPaddingLeft(), GetRenderPage()->ViewPortWidth()) - - getWebPxByWidth(getPaddingRight(), GetRenderPage()->ViewPortWidth()); +std::map *RenderList::GetDefaultAttr() { + if (!this->is_pre_calculate_cell_width_) { + PreCalculateCellWidth(); + } + return nullptr; +} - if (AUTO_VALUE == this->column_count_ && AUTO_VALUE == this->column_width_) { +void RenderList::PreCalculateCellWidth() { + std::map *attrs = + new std::map(); + if (attributes() != nullptr) { + this->column_count_ = TakeColumnCount(); + this->column_width_ = TakeColumnWidth(); + this->column_gap_ = TakeColumnGap(); + + this->left_gap_ = TakeLeftGap(); + this->right_gap_ = TakeRightGap(); + + this->available_width_ = + TakeStyleWidth() - + getWebPxByWidth(getPaddingLeft(), GetRenderPage()->viewport_width()) - + getWebPxByWidth(getPaddingRight(), GetRenderPage()->viewport_width()); + + if (AUTO_VALUE == this->column_count_ && + AUTO_VALUE == this->column_width_) { + this->column_count_ = COLUMN_COUNT_NORMAL; + this->column_width_ = (this->available_width_ - + ((this->column_count_ - 1) * this->column_gap_)) / + this->column_count_; + this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; + } else if (AUTO_VALUE == this->column_width_ && + AUTO_VALUE != this->column_count_) { + this->column_width_ = + (this->available_width_ - this->left_gap_ - this->right_gap_ - + ((this->column_count_ - 1) * this->column_gap_)) / + this->column_count_; + this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; + } else if (AUTO_VALUE != this->column_width_ && + AUTO_VALUE == this->column_count_) { + this->column_count_ = + static_cast(round((this->available_width_ + this->column_gap_) / + (this->column_width_ + this->column_gap_) - + 0.5f)); + this->column_count_ = this->column_count_ > 0 ? this->column_count_ : 1; + if (this->column_count_ <= 0) { this->column_count_ = COLUMN_COUNT_NORMAL; - this->column_width_ = - (this->available_width_ - ((this->column_count_ - 1) * this->column_gap_)) / - this->column_count_; - this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; - } else if (AUTO_VALUE == this->column_width_ && AUTO_VALUE != this->column_count_) { - this->column_width_ = - (this->available_width_ - this->left_gap_ - this->right_gap_ - - ((this->column_count_ - 1) * this->column_gap_)) / - this->column_count_; - this->column_width_ = this->column_width_ > 0 ? this->column_width_ : 0; - } else if (AUTO_VALUE != this->column_width_ && AUTO_VALUE == this->column_count_) { - this->column_count_ = (int) round( - (this->available_width_ + this->column_gap_) / (this->column_width_ + this->column_gap_) - - 0.5f); - this->column_count_ = this->column_count_ > 0 ? this->column_count_ : 1; - if (this->column_count_ <= 0) { - this->column_count_ = COLUMN_COUNT_NORMAL; - } - this->column_width_ = - ((this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / - this->column_count_) - this->column_gap_; - - } else if (AUTO_VALUE != this->column_width_ && AUTO_VALUE != this->column_count_) { - int columnCount = (int) round( - (this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / - (this->column_width_ + this->column_gap_) - - 0.5f); - this->column_count_ = columnCount > this->column_count_ ? this->column_count_ : columnCount; - if (this->column_count_ <= 0) { - this->column_count_ = COLUMN_COUNT_NORMAL; - } - this->column_width_ = - ((this->available_width_ + this->column_gap_ - this->left_gap_ - this->right_gap_) / - this->column_count_) - this->column_gap_; - } - - std::string spanOffsets = CalculateSpanOffset(); - - this->is_pre_calculate_cell_width_ = true; - if (TakeColumnCount() > 0 || TakeColumnWidth() > 0 || - this->column_count_ > COLUMN_COUNT_NORMAL) { - attrs->insert( - std::pair(COLUMN_COUNT, to_string(this->column_count_))); - attrs->insert(std::pair(COLUMN_GAP, to_string(this->column_gap_))); - attrs->insert( - std::pair(COLUMN_WIDTH, to_string(this->column_width_))); } - if (spanOffsets.length() > 0) { - attrs->insert(std::pair(SPAN_OFFSETS, to_string(spanOffsets))); + this->column_width_ = ((this->available_width_ + this->column_gap_ - + this->left_gap_ - this->right_gap_) / + this->column_count_) - + this->column_gap_; + + } else if (AUTO_VALUE != this->column_width_ && + AUTO_VALUE != this->column_count_) { + int column_count = + static_cast(round((this->available_width_ + this->column_gap_ - + this->left_gap_ - this->right_gap_) / + (this->column_width_ + this->column_gap_) - + 0.5f)); + this->column_count_ = + column_count > this->column_count_ ? this->column_count_ : column_count; + if (this->column_count_ <= 0) { + this->column_count_ = COLUMN_COUNT_NORMAL; } + this->column_width_ = ((this->available_width_ + this->column_gap_ - + this->left_gap_ - this->right_gap_) / + this->column_count_) - + this->column_gap_; + } - for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - RenderObject::UpdateAttr(iter->first, iter->second); - } + std::string span_offsets = CalculateSpanOffset(); + + this->is_pre_calculate_cell_width_ = true; + if (TakeColumnCount() > 0 || TakeColumnWidth() > 0 || + this->column_count_ > COLUMN_COUNT_NORMAL) { + attrs->insert(std::pair( + COLUMN_COUNT, to_string(this->column_count_))); + attrs->insert(std::pair( + COLUMN_GAP, to_string(this->column_gap_))); + attrs->insert(std::pair( + COLUMN_WIDTH, to_string(this->column_width_))); + } + if (span_offsets.length() > 0) { + attrs->insert(std::pair( + SPAN_OFFSETS, to_string(span_offsets))); } - RenderPage *page = GetRenderPage(); + for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { + RenderObject::UpdateAttr(iter->first, iter->second); + } + } - if (page != nullptr) - page->SendUpdateAttrAction(this, attrs); + RenderPage *page = GetRenderPage(); - if (attrs != nullptr) { - attrs->clear(); - delete attrs; - attrs = nullptr; - } + if (page != nullptr) page->SendUpdateAttrAction(this, attrs); + + if (attrs != nullptr) { + attrs->clear(); + delete attrs; + attrs = nullptr; } +} - std::string RenderList::CalculateSpanOffset() { - std::string spanOffsets; - if (this->left_gap_ > 0 || this->right_gap_ > 0) { - spanOffsets.append("["); - for (int i = 0; i < this->column_count_; i++) { - float spanOffset = this->left_gap_ + i * ((this->column_width_ + this->column_gap_) - - (this->available_width_ + this->column_gap_) / - this->column_count_); - spanOffsets.append(to_string(spanOffset)); - if (i != this->column_count_ - 1) { - spanOffsets.append(","); - } +std::string RenderList::CalculateSpanOffset() { + std::string span_offsets; + if (this->left_gap_ > 0 || this->right_gap_ > 0) { + span_offsets.append("["); + for (int i = 0; i < this->column_count_; i++) { + float span_offset = + this->left_gap_ + i * ((this->column_width_ + this->column_gap_) - + (this->available_width_ + this->column_gap_) / + this->column_count_); + span_offsets.append(to_string(span_offset)); + if (i != this->column_count_ - 1) { + span_offsets.append(","); } - spanOffsets.append("]"); } - return spanOffsets; + span_offsets.append("]"); } + return span_offsets; +} - float RenderList::TakeStyleWidth() { - float width = getWebPxByWidth(getLayoutWidth(), GetRenderPage()->ViewPortWidth()); - if (isnan(width) || width <= 0) { - if (getParent() != nullptr) { - width = getWebPxByWidth(getParent()->getLayoutWidth(), GetRenderPage()->ViewPortWidth()); - } - if (isnan(width) || width <= 0) { - width = getWebPxByWidth(RenderObject::getStyleWidth(), GetRenderPage()->ViewPortWidth()); - } +float RenderList::TakeStyleWidth() { + float width = + getWebPxByWidth(getLayoutWidth(), GetRenderPage()->viewport_width()); + if (isnan(width) || width <= 0) { + if (getParent() != nullptr) { + width = getWebPxByWidth(getParent()->getLayoutWidth(), + GetRenderPage()->viewport_width()); } if (isnan(width) || width <= 0) { - width = GetViewPortWidth(); + width = getWebPxByWidth(RenderObject::getStyleWidth(), + GetRenderPage()->viewport_width()); } - return width; } + if (isnan(width) || width <= 0) { + width = GetViewPortWidth(); + } + return width; +} - int RenderList::AddRenderObject(int index, RenderObject *child) { - if (type() == kRenderRecycleList - && (child->type() == kRenderCellSlot || child->type() == kRenderCell || - child->type() == kRenderHeader)) { - child->setParent(this, child); - this->cell_slots_.insert(this->cell_slots_.end(), child); - index = -1; - } else { - index = RenderObject::AddRenderObject(index, child); - } +int RenderList::AddRenderObject(int index, RenderObject *child) { + if (type() == kRenderRecycleList && + (child->type() == kRenderCellSlot || child->type() == kRenderCell || + child->type() == kRenderHeader)) { + child->setParent(this, child); + this->cell_slots_.insert(this->cell_slots_.end(), child); + index = -1; + } else { + index = RenderObject::AddRenderObject(index, child); + } - if (!this->is_pre_calculate_cell_width_) { - PreCalculateCellWidth(); - } + if (!this->is_pre_calculate_cell_width_) { + PreCalculateCellWidth(); + } - if (this->column_width_ != 0 && !isnan(this->column_width_)) { - AddRenderObjectWidth(child, false); - } - return index; + if (this->column_width_ != 0 && !isnan(this->column_width_)) { + AddRenderObjectWidth(child, false); } + return index; +} - void RenderList::AddRenderObjectWidth(RenderObject *child, const bool updating) { - if (type() == kRenderWaterfall || type() == kRenderRecycleList) { - if (child->type() == kRenderHeader || child->type() == kRenderFooter) { - child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); - } else if (child->is_sticky()) { - child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); - } else if (child->type() == kRenderCell || child->type() == kRenderCellSlot) { - child->ApplyStyle(WIDTH, to_string(this->column_width_), updating); - } +void RenderList::AddRenderObjectWidth(RenderObject *child, + const bool updating) { + if (type() == kRenderWaterfall || type() == kRenderRecycleList) { + if (child->type() == kRenderHeader || child->type() == kRenderFooter) { + child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); + } else if (child->is_sticky()) { + child->ApplyStyle(WIDTH, to_string(this->available_width_), updating); + } else if (child->type() == kRenderCell || + child->type() == kRenderCellSlot) { + child->ApplyStyle(WIDTH, to_string(this->column_width_), updating); } } +} - void RenderList::UpdateAttr(std::string key, std::string value) { - RenderObject::UpdateAttr(key, value); +void RenderList::UpdateAttr(std::string key, std::string value) { + RenderObject::UpdateAttr(key, value); - if (!GetAttr(COLUMN_COUNT).empty() || !GetAttr(COLUMN_GAP).empty() || - !GetAttr(COLUMN_WIDTH).empty()) { - PreCalculateCellWidth(); + if (!GetAttr(COLUMN_COUNT).empty() || !GetAttr(COLUMN_GAP).empty() || + !GetAttr(COLUMN_WIDTH).empty()) { + PreCalculateCellWidth(); - if (this->column_width_ == 0 && isnan(this->column_width_)) { - return; - } + if (this->column_width_ == 0 && isnan(this->column_width_)) { + return; + } - int count = getChildCount(); - for (Index i = 0; i < count; i++) { - RenderObject *child = GetChild(i); - AddRenderObjectWidth(this, true); - } + int count = getChildCount(); + for (Index i = 0; i < count; i++) { + RenderObject *child = GetChild(i); + AddRenderObjectWidth(this, true); } } +} - float RenderList::TakeColumnCount() { - std::string columnCount = GetAttr(COLUMN_COUNT); - - if (columnCount.empty() || columnCount == AUTO) { - return AUTO_VALUE; - } +float RenderList::TakeColumnCount() { + std::string column_count = GetAttr(COLUMN_COUNT); - float columnCountValue = getFloat(columnCount.c_str()); - return (columnCountValue > 0 && !isnan(columnCountValue)) ? columnCountValue : AUTO_VALUE; + if (column_count.empty() || column_count == AUTO) { + return AUTO_VALUE; } - float RenderList::TakeColumnGap() { - std::string columnGap = GetAttr(COLUMN_GAP); + float column_count_value = getFloat(column_count.c_str()); + return (column_count_value > 0 && !isnan(column_count_value)) ? column_count_value + : AUTO_VALUE; +} - if (columnGap.empty() || columnGap == NORMAL) { - return COLUMN_GAP_NORMAL; - } +float RenderList::TakeColumnGap() { + std::string column_gap = GetAttr(COLUMN_GAP); - float columnGapValue = getFloat(columnGap.c_str()); - return (columnGapValue > 0 && !isnan(columnGapValue)) ? columnGapValue : AUTO_VALUE; + if (column_gap.empty() || column_gap == NORMAL) { + return COLUMN_GAP_NORMAL; } - float RenderList::TakeColumnWidth() { - std::string columnWidth = GetAttr(COLUMN_WIDTH); + float column_gap_value = getFloat(column_gap.c_str()); + return (column_gap_value > 0 && !isnan(column_gap_value)) ? column_gap_value + : AUTO_VALUE; +} - if (columnWidth.empty() || columnWidth == AUTO) { - return AUTO_VALUE; - } +float RenderList::TakeColumnWidth() { + std::string column_width = GetAttr(COLUMN_WIDTH); - float columnWidthValue = getFloat(columnWidth.c_str()); - return (columnWidthValue > 0 && !isnan(columnWidthValue)) ? columnWidthValue : 0; + if (column_width.empty() || column_width == AUTO) { + return AUTO_VALUE; } - float RenderList::TakeLeftGap() { - std::string leftGap = GetAttr(LEFT_GAP); + float column_width_value = getFloat(column_width.c_str()); + return (column_width_value > 0 && !isnan(column_width_value)) ? column_width_value + : 0; +} - if (leftGap.empty() || leftGap == AUTO) { - return 0; - } +float RenderList::TakeLeftGap() { + std::string left_gap = GetAttr(LEFT_GAP); - float leftGapValue = getFloat(leftGap.c_str()); - return (leftGapValue > 0 && !isnan(leftGapValue)) ? leftGapValue : 0; + if (left_gap.empty() || left_gap == AUTO) { + return 0; } - float RenderList::TakeRightGap() { - std::string rightGap = GetAttr(RIGHT_GAP); + float left_gap_value = getFloat(left_gap.c_str()); + return (left_gap_value > 0 && !isnan(left_gap_value)) ? left_gap_value : 0; +} - if (rightGap.empty() || rightGap == AUTO) { - return 0; - } +float RenderList::TakeRightGap() { + std::string right_gap = GetAttr(RIGHT_GAP); - float rightGapValue = getFloat(rightGap.c_str()); - return (rightGapValue > 0 && !isnan(rightGapValue)) ? rightGapValue : 0; + if (right_gap.empty() || right_gap == AUTO) { + return 0; } - int RenderList::TakeOrientation() { - std::string direction = GetAttr(SCROLL_DIRECTION); - if (HORIZONTAL == direction) { - return HORIZONTAL_VALUE; - } - return VERTICAL_VALUE; + float right_gap_value = getFloat(right_gap.c_str()); + return (right_gap_value > 0 && !isnan(right_gap_value)) ? right_gap_value : 0; +} + +int RenderList::TakeOrientation() { + std::string direction = GetAttr(SCROLL_DIRECTION); + if (HORIZONTAL == direction) { + return HORIZONTAL_VALUE; } + return VERTICAL_VALUE; } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_list.h b/weex_core/Source/core/render/node/render_list.h index 39453e0769..d3c5e7ed79 100644 --- a/weex_core/Source/core/render/node/render_list.h +++ b/weex_core/Source/core/render/node/render_list.h @@ -16,74 +16,74 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERLIST_H -#define WEEX_PROJECT_RENDERLIST_H +#ifndef CORE_RENDER_NODE_RENDER_LIST_H_ +#define CORE_RENDER_NODE_RENDER_LIST_H_ + +#include +#include +#include -#include "core/render/node/render_object.h" #include "core/css/constants_value.h" +#include "core/render/node/render_object.h" namespace WeexCore { - class RenderList : public RenderObject { - - public: - - ~RenderList(); - - void set_flex(const float flex); +class RenderList : public RenderObject { + public: + ~RenderList(); - void AddCellSlotCopyTrack(RenderObject *cellSlot); + void set_flex(const float flex); - std::map *GetDefaultStyle(); + void AddCellSlotCopyTrack(RenderObject *cell_slot); - std::map *GetDefaultAttr(); + std::map *GetDefaultStyle(); - void PreCalculateCellWidth(); + std::map *GetDefaultAttr(); - std::string CalculateSpanOffset(); + void PreCalculateCellWidth(); - float TakeStyleWidth(); + std::string CalculateSpanOffset(); - int AddRenderObject(int index, RenderObject *child); + float TakeStyleWidth(); - void AddRenderObjectWidth(RenderObject *child, const bool updating); + int AddRenderObject(int index, RenderObject *child); - void UpdateAttr(std::string key, std::string value); + void AddRenderObjectWidth(RenderObject *child, const bool updating); - float TakeColumnCount(); + void UpdateAttr(std::string key, std::string value); - float TakeColumnGap(); + float TakeColumnCount(); - float TakeColumnWidth(); + float TakeColumnGap(); - float TakeLeftGap(); + float TakeColumnWidth(); - float TakeRightGap(); + float TakeLeftGap(); - int TakeOrientation(); + float TakeRightGap(); - inline float CalculateFreeSpaceAlongMainAxis(const float &width, const float &height, - const float ¤tLength) const override { - return NAN; - } + int TakeOrientation(); - inline std::vector &CellSlots() { - return cell_slots_; - } + inline float CalculateFreeSpaceAlongMainAxis( + const float &width, const float &height, + const float ¤tLength) const override { + return NAN; + } - private: + inline std::vector &CellSlots() { return cell_slots_; } - bool is_pre_calculate_cell_width_ = false; - int column_count_ = COLUMN_COUNT_NORMAL; - float column_width_ = AUTO_VALUE; - float available_width_ = 0; - float column_gap_ = COLUMN_GAP_NORMAL; - bool is_set_flex_ = false; - std::vector cell_slots_; - std::vector cell_slots_copys_; - float left_gap_ = 0; - float right_gap_ = 0; - }; -} + private: + bool is_pre_calculate_cell_width_ = false; + int column_count_ = COLUMN_COUNT_NORMAL; + float column_width_ = AUTO_VALUE; + float available_width_ = 0; + float column_gap_ = COLUMN_GAP_NORMAL; + bool is_set_flex_ = false; + std::vector cell_slots_; + std::vector cell_slots_copys_; + float left_gap_ = 0; + float right_gap_ = 0; +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERLIST_H +#endif // CORE_RENDER_NODE_RENDER_LIST_H_ diff --git a/weex_core/Source/core/render/node/render_mask.cpp b/weex_core/Source/core/render/node/render_mask.cpp index 76965a4f60..df925a2cbd 100644 --- a/weex_core/Source/core/render/node/render_mask.cpp +++ b/weex_core/Source/core/render/node/render_mask.cpp @@ -17,38 +17,47 @@ * under the License. */ #include +#include -#include "core/render/node/render_mask.h" +#include "base/ViewUtils.h" #include "core/config/core_environment.h" #include "core/css/constants_name.h" -#include "base/ViewUtils.h" +#include "core/render/node/render_mask.h" namespace WeexCore { - std::map *RenderMask::GetDefaultStyle() { - std::map *style = new std::map(); +std::map *RenderMask::GetDefaultStyle() { + std::map *style = + new std::map(); - int width = WXCoreEnvironment::getInstance()->DeviceWidth(); - int height = WXCoreEnvironment::getInstance()->DeviceHeight(); + int width = WXCoreEnvironment::getInstance()->DeviceWidth(); + int height = WXCoreEnvironment::getInstance()->DeviceHeight(); - if (WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels") != "" && - WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels") != "") { - width = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels").c_str()); - height = atoi(WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels").c_str()); - } - - if (WXCoreEnvironment::getInstance()->GetOption("status_bar_height") != "") { - int statusBarHeight = atoi( - WXCoreEnvironment::getInstance()->GetOption("status_bar_height").c_str()); - height -= statusBarHeight; - } + if (WXCoreEnvironment::getInstance()->GetOption("screen_width_pixels") != + "" && + WXCoreEnvironment::getInstance()->GetOption("screen_height_pixels") != + "") { + width = atoi(WXCoreEnvironment::getInstance() + ->GetOption("screen_width_pixels") + .c_str()); + height = atoi(WXCoreEnvironment::getInstance() + ->GetOption("screen_height_pixels") + .c_str()); + } - style->insert(std::pair(POSITION, "absolute")); - style->insert(std::pair(WIDTH, to_string( - getWebPxByWidth(width, GetViewPortWidth())))); - style->insert(std::pair(HEIGHT, to_string( - getWebPxByWidth(height, GetViewPortWidth())))); - style->insert(std::pair(TOP, "0")); - return style; + if (WXCoreEnvironment::getInstance()->GetOption("status_bar_height") != "") { + int status_bar_height = atoi(WXCoreEnvironment::getInstance() + ->GetOption("status_bar_height") + .c_str()); + height -= status_bar_height; } + + style->insert(std::pair(POSITION, "absolute")); + style->insert(std::pair( + WIDTH, to_string(getWebPxByWidth(width, GetViewPortWidth())))); + style->insert(std::pair( + HEIGHT, to_string(getWebPxByWidth(height, GetViewPortWidth())))); + style->insert(std::pair(TOP, "0")); + return style; } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_mask.h b/weex_core/Source/core/render/node/render_mask.h index eb6d4a6923..38201d07df 100644 --- a/weex_core/Source/core/render/node/render_mask.h +++ b/weex_core/Source/core/render/node/render_mask.h @@ -16,19 +16,19 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERMASK_H -#define WEEX_PROJECT_RENDERMASK_H +#ifndef CORE_RENDER_NODE_RENDER_MASK_H_ +#define CORE_RENDER_NODE_RENDER_MASK_H_ + +#include +#include #include "core/render/node/render_object.h" namespace WeexCore { - class RenderMask : public RenderObject { - - public: - - std::map *GetDefaultStyle(); - - }; -} -#endif //WEEX_PROJECT_RENDERMASK_H +class RenderMask : public RenderObject { + public: + std::map *GetDefaultStyle(); +}; +} // namespace WeexCore +#endif // CORE_RENDER_NODE_RENDER_MASK_H_ diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp index 6818cffcef..fe0d25f86e 100644 --- a/weex_core/Source/core/render/node/render_object.cpp +++ b/weex_core/Source/core/render/node/render_object.cpp @@ -17,428 +17,448 @@ * under the License. */ #include "core/render/node/render_object.h" -#include "core/manager/weex_core_manager.h" +#include "base/ViewUtils.h" #include "core/css/constants_name.h" #include "core/css/constants_value.h" #include "core/css/css_value_getter.h" #include "core/layout/layout.h" +#include "core/manager/weex_core_manager.h" #include "core/render/manager/render_manager.h" #include "core/render/page/render_page.h" -#include "base/ViewUtils.h" namespace WeexCore { - RenderObject::RenderObject() { - this->styles_ = new std::map(); - this->attributes_ = new std::map(); - this->events_ = new std::set(); - this->is_root_render_ = false; - } +RenderObject::RenderObject() { + this->styles_ = new std::map(); + this->attributes_ = new std::map(); + this->events_ = new std::set(); + this->is_root_render_ = false; +} - RenderObject::~RenderObject() { - - this->parent_render_ = nullptr; - - if (this->styles_ != nullptr) { - delete this->styles_; - this->styles_ = nullptr; - } - - if (this->attributes_ != nullptr) { - delete this->attributes_; - this->attributes_ = nullptr; - } +RenderObject::~RenderObject() { + this->parent_render_ = nullptr; - if (this->events_ != nullptr) { - delete this->events_; - this->events_ = nullptr; - } - - for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject *child = static_cast(*it); - if (child != nullptr) { - delete child; - child = nullptr; - } - } + if (this->styles_ != nullptr) { + delete this->styles_; + this->styles_ = nullptr; } - void RenderObject::ApplyDefaultStyle() { - std::map *style = GetDefaultStyle(); - - if (style == nullptr) - return; + if (this->attributes_ != nullptr) { + delete this->attributes_; + this->attributes_ = nullptr; + } - for (auto iter = style->cbegin(); iter != style->cend(); iter++) - AddStyle(iter->first, iter->second); + if (this->events_ != nullptr) { + delete this->events_; + this->events_ = nullptr; + } - if (style != nullptr) { - delete style; - style = nullptr; + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + delete child; + child = nullptr; } } +} - void RenderObject::ApplyDefaultAttr() { - std::map *attrs = GetDefaultAttr(); +void RenderObject::ApplyDefaultStyle() { + std::map *style = GetDefaultStyle(); - if (attrs == nullptr) - return; + if (style == nullptr) return; - for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - UpdateAttr(iter->first, iter->second); - } + for (auto iter = style->cbegin(); iter != style->cend(); iter++) + AddStyle(iter->first, iter->second); - if (attrs != nullptr) { - delete attrs; - attrs = nullptr; - } + if (style != nullptr) { + delete style; + style = nullptr; } +} - WXCoreSize measureFunc_Impl(WXCoreLayoutNode *node, float width, MeasureMode widthMeasureMode, - float height, MeasureMode heightMeasureMode) { - WXCoreSize size; - size.height = 0; - size.width = 0; - - if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) - return size; +void RenderObject::ApplyDefaultAttr() { + std::map *attrs = GetDefaultAttr(); - return WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->Measure(node, width, - widthMeasureMode, - height, - heightMeasureMode); - } + if (attrs == nullptr) return; - void RenderObject::BindMeasureFunc() { - setMeasureFunc(measureFunc_Impl); + for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { + UpdateAttr(iter->first, iter->second); } - void RenderObject::OnLayoutBefore() { - if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) - return; - WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutBefore(this); + if (attrs != nullptr) { + delete attrs; + attrs = nullptr; } - - void RenderObject::OnLayoutAfter(float width, float height) { - if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) - return; - WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutAfter(this, width, height); +} + +WXCoreSize measureFunc_Impl(WXCoreLayoutNode *node, float width, + MeasureMode widthMeasureMode, float height, + MeasureMode heightMeasureMode) { + WXCoreSize size; + size.height = 0; + size.width = 0; + + if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) + return size; + + return WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->Measure( + node, width, widthMeasureMode, height, heightMeasureMode); +} + +void RenderObject::BindMeasureFunc() { setMeasureFunc(measureFunc_Impl); } + +void RenderObject::OnLayoutBefore() { + if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) + return; + WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutBefore( + this); +} + +void RenderObject::OnLayoutAfter(float width, float height) { + if (WeexCoreManager::getInstance()->GetMeasureFunctionAdapter() == nullptr) + return; + WeexCoreManager::getInstance()->GetMeasureFunctionAdapter()->LayoutAfter( + this, width, height); +} + +StyleType RenderObject::ApplyStyle(const std::string &key, + const std::string &value, + const bool updating) { + bool insert = false; + if (value.length() > 0 && (value.at(0) == JSON_OBJECT_MARK_CHAR || + value.at(0) == JSON_ARRAY_MARK_CHAR)) { + MapInsertOrAssign(this->styles_, key, value); + insert = true; } - StyleType - RenderObject::ApplyStyle(const std::string &key, const std::string &value, const bool updating) { - bool insert = false; - if (value.length() > 0 && - (value.at(0) == JSON_OBJECT_MARK_CHAR || value.at(0) == JSON_ARRAY_MARK_CHAR)) { - MapInsertOrAssign(this->styles_, key, value); - insert = true; - } - - if (key == ALIGN_ITEMS) { - setAlignItems(GetWXCoreAlignItem(value)); - return kTypeLayout; - } else if (key == ALIGN_SELF) { - setAlignSelf(GetWXCoreAlignSelf(value)); - return kTypeLayout; - } else if (key == FLEX) { - if (value.empty()) { - set_flex(0); - } else { - float ret = getFloat(value.c_str()); - if (!isnan(ret)) { - set_flex(ret); - } - } - return kTypeLayout; - } else if (key == FLEX_DIRECTION) { - setFlexDirection(GetWXCoreFlexDirection(value), updating); - return kTypeLayout; - } else if (key == JUSTIFY_CONTENT) { - setJustifyContent(GetWXCoreJustifyContent(value)); - return kTypeLayout; - } else if (key == FLEX_WRAP) { - setFlexWrap(GetWXCoreFlexWrap(value)); - return kTypeLayout; - } else if (key == MIN_WIDTH) { - UpdateStyleInternal(key, value, NAN, [=](float foo) { setMinWidth(foo, updating); }); - return kTypeLayout; - } else if (key == MIN_HEIGHT) { - UpdateStyleInternal(key, value, NAN, [=](float foo) { setMinHeight(foo); }); - return kTypeLayout; - } else if (key == MAX_WIDTH) { - UpdateStyleInternal(key, value, NAN, [=](float foo) { setMaxWidth(foo, updating); }); - return kTypeLayout; - } else if (key == MAX_HEIGHT) { - UpdateStyleInternal(key, value, NAN, [=](float foo) { setMaxHeight(foo); }); - return kTypeLayout; - } else if (key == HEIGHT) { - if (UpdateStyleInternal(key, value, NAN, [=](float foo) { setStyleHeight(foo); })) { - setStyleHeightLevel(CSS_STYLE); - } - return kTypeLayout; - } else if (key == WIDTH) { - if (UpdateStyleInternal(key, value, NAN, [=](float foo) { setStyleWidth(foo, updating); })) { - setStyleWidthLevel(CSS_STYLE); - } - return kTypeLayout; - } else if (key == POSITION) { - setStylePositionType(GetWXCorePositionType(value)); - if (value == STICKY) { - this->is_sticky_ = true; - } - MapInsertOrAssign(this->styles_, key, value); - return kTypeStyle; - } else if (key == LEFT) { - UpdateStyleInternal(key, value, NAN, - [=](float foo) { setStylePosition(kPositionEdgeLeft, foo); }); - return kTypeLayout; - } else if (key == TOP) { - UpdateStyleInternal(key, value, NAN, - [=](float foo) { setStylePosition(kPositionEdgeTop, foo); }); - return kTypeLayout; - } else if (key == RIGHT) { - UpdateStyleInternal(key, value, NAN, - [=](float foo) { setStylePosition(kPositionEdgeRight, foo); }); - return kTypeLayout; - } else if (key == BOTTOM) { - UpdateStyleInternal(key, value, NAN, - [=](float foo) { setStylePosition(kPositionEdgeBottom, foo); }); - return kTypeLayout; - } else if (key == MARGIN) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginALL, foo); }); - return kTypeMargin; - } else if (key == MARGIN_LEFT) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginLeft, foo); }); - return kTypeMargin; - } else if (key == MARGIN_TOP) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginTop, foo); }); - return kTypeMargin; - } else if (key == MARGIN_RIGHT) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginRight, foo); }); - return kTypeMargin; - } else if (key == MARGIN_BOTTOM) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setMargin(kMarginBottom, foo); }); - return kTypeMargin; - } else if (key == BORDER_WIDTH) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthALL, foo); }); - return kTypeBorder; - } else if (key == BORDER_TOP_WIDTH) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthTop, foo); }); - return kTypeBorder; - } else if (key == BORDER_RIGHT_WIDTH) { - UpdateStyleInternal(key, value, 0, - [=](float foo) { setBorderWidth(kBorderWidthRight, foo); }); - return kTypeBorder; - } else if (key == BORDER_BOTTOM_WIDTH) { - UpdateStyleInternal(key, value, 0, - [=](float foo) { setBorderWidth(kBorderWidthBottom, foo); }); - return kTypeBorder; - } else if (key == BORDER_LEFT_WIDTH) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setBorderWidth(kBorderWidthLeft, foo); }); - return kTypeBorder; - } else if (key == PADDING) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingALL, foo); }); - return kTypePadding; - } else if (key == PADDING_LEFT) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingLeft, foo); }); - return kTypePadding; - } else if (key == PADDING_TOP) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingTop, foo); }); - return kTypePadding; - } else if (key == PADDING_RIGHT) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingRight, foo); }); - return kTypePadding; - } else if (key == PADDING_BOTTOM) { - UpdateStyleInternal(key, value, 0, [=](float foo) { setPadding(kPaddingBottom, foo); }); - return kTypePadding; + if (key == ALIGN_ITEMS) { + setAlignItems(GetWXCoreAlignItem(value)); + return kTypeLayout; + } else if (key == ALIGN_SELF) { + setAlignSelf(GetWXCoreAlignSelf(value)); + return kTypeLayout; + } else if (key == FLEX) { + if (value.empty()) { + set_flex(0); } else { - if (!insert) { - MapInsertOrAssign(this->styles_, key, value); + float ret = getFloat(value.c_str()); + if (!isnan(ret)) { + set_flex(ret); } - return kTypeStyle; } - } - - const std::string RenderObject::GetStyle(const std::string &key) { - if (this->styles_ == nullptr) - return ""; - - std::map::iterator iter = this->styles_->find(key); - if (iter != this->styles_->end()) { - return iter->second; - } else { - return ""; + return kTypeLayout; + } else if (key == FLEX_DIRECTION) { + setFlexDirection(GetWXCoreFlexDirection(value), updating); + return kTypeLayout; + } else if (key == JUSTIFY_CONTENT) { + setJustifyContent(GetWXCoreJustifyContent(value)); + return kTypeLayout; + } else if (key == FLEX_WRAP) { + setFlexWrap(GetWXCoreFlexWrap(value)); + return kTypeLayout; + } else if (key == MIN_WIDTH) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setMinWidth(foo, updating); }); + return kTypeLayout; + } else if (key == MIN_HEIGHT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMinHeight(foo); }); + return kTypeLayout; + } else if (key == MAX_WIDTH) { + UpdateStyleInternal(key, value, NAN, + [=](float foo) { setMaxWidth(foo, updating); }); + return kTypeLayout; + } else if (key == MAX_HEIGHT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { setMaxHeight(foo); }); + return kTypeLayout; + } else if (key == HEIGHT) { + if (UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStyleHeight(foo); })) { + setStyleHeightLevel(CSS_STYLE); + } + return kTypeLayout; + } else if (key == WIDTH) { + if (UpdateStyleInternal(key, value, NAN, + [=](float foo) { setStyleWidth(foo, updating); })) { + setStyleWidthLevel(CSS_STYLE); } + return kTypeLayout; + } else if (key == POSITION) { + setStylePositionType(GetWXCorePositionType(value)); + if (value == STICKY) { + this->is_sticky_ = true; + } + MapInsertOrAssign(this->styles_, key, value); + return kTypeStyle; + } else if (key == LEFT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { + setStylePosition(kPositionEdgeLeft, foo); + }); + return kTypeLayout; + } else if (key == TOP) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { + setStylePosition(kPositionEdgeTop, foo); + }); + return kTypeLayout; + } else if (key == RIGHT) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { + setStylePosition(kPositionEdgeRight, foo); + }); + return kTypeLayout; + } else if (key == BOTTOM) { + UpdateStyleInternal(key, value, NAN, [=](float foo) { + setStylePosition(kPositionEdgeBottom, foo); + }); + return kTypeLayout; + } else if (key == MARGIN) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setMargin(kMarginALL, foo); }); + return kTypeMargin; + } else if (key == MARGIN_LEFT) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setMargin(kMarginLeft, foo); }); + return kTypeMargin; + } else if (key == MARGIN_TOP) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setMargin(kMarginTop, foo); }); + return kTypeMargin; + } else if (key == MARGIN_RIGHT) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setMargin(kMarginRight, foo); }); + return kTypeMargin; + } else if (key == MARGIN_BOTTOM) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setMargin(kMarginBottom, foo); }); + return kTypeMargin; + } else if (key == BORDER_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setBorderWidth(kBorderWidthALL, foo); + }); + return kTypeBorder; + } else if (key == BORDER_TOP_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setBorderWidth(kBorderWidthTop, foo); + }); + return kTypeBorder; + } else if (key == BORDER_RIGHT_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setBorderWidth(kBorderWidthRight, foo); + }); + return kTypeBorder; + } else if (key == BORDER_BOTTOM_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setBorderWidth(kBorderWidthBottom, foo); + }); + return kTypeBorder; + } else if (key == BORDER_LEFT_WIDTH) { + UpdateStyleInternal(key, value, 0, [=](float foo) { + setBorderWidth(kBorderWidthLeft, foo); + }); + return kTypeBorder; + } else if (key == PADDING) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setPadding(kPaddingALL, foo); }); + return kTypePadding; + } else if (key == PADDING_LEFT) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setPadding(kPaddingLeft, foo); }); + return kTypePadding; + } else if (key == PADDING_TOP) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setPadding(kPaddingTop, foo); }); + return kTypePadding; + } else if (key == PADDING_RIGHT) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setPadding(kPaddingRight, foo); }); + return kTypePadding; + } else if (key == PADDING_BOTTOM) { + UpdateStyleInternal(key, value, 0, + [=](float foo) { setPadding(kPaddingBottom, foo); }); + return kTypePadding; + } else { + if (!insert) { + MapInsertOrAssign(this->styles_, key, value); + } + return kTypeStyle; } +} - const std::string RenderObject::GetAttr(const std::string &key) { - if (this->attributes_ == nullptr) - return ""; +const std::string RenderObject::GetStyle(const std::string &key) { + if (this->styles_ == nullptr) return ""; - std::map::iterator iter = this->attributes_->find(key); - if (iter != this->attributes_->end()) { - return iter->second; - } else { - return ""; - } + std::map::iterator iter = this->styles_->find(key); + if (iter != this->styles_->end()) { + return iter->second; + } else { + return ""; } +} - float RenderObject::GetViewPortWidth() { - if (this->viewport_width_ >= 0) - return this->viewport_width_; +const std::string RenderObject::GetAttr(const std::string &key) { + if (this->attributes_ == nullptr) return ""; - RenderPage *page = GetRenderPage(); - if (page == nullptr) - return kDefaultViewPortWidth; - - return page->ViewPortWidth(); + std::map::iterator iter = + this->attributes_->find(key); + if (iter != this->attributes_->end()) { + return iter->second; + } else { + return ""; } +} - int RenderObject::AddRenderObject(int index, RenderObject *child) { - if (child == nullptr || index < -1) { - return index; - } +float RenderObject::GetViewPortWidth() { + if (this->viewport_width_ >= 0) return this->viewport_width_; - Index count = getChildCount(); - index = index >= count ? -1 : index; - if (index == -1) { - addChildAt(child, getChildCount()); - } else { - addChildAt(child, index); - } + RenderPage *page = GetRenderPage(); + if (page == nullptr) return kDefaultViewPortWidth; - child->set_parent_render(this); + return page->viewport_width(); +} +int RenderObject::AddRenderObject(int index, RenderObject *child) { + if (child == nullptr || index < -1) { return index; } - Index RenderObject::IndexOf(const RenderObject *render) { - if (render == nullptr) { - return -1; - } else { - int i = 0; - for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject *child = static_cast(*it); - if (child != nullptr) { - if (render->ref() == child->ref()) - return i; - } - ++i; - } - } - return -1; + Index count = getChildCount(); + index = index >= count ? -1 : index; + if (index == -1) { + addChildAt(child, getChildCount()); + } else { + addChildAt(child, index); } - bool RenderObject::UpdateStyleInternal(const std::string key, const std::string value, - float fallback, - std::function functor) { - bool ret = false; - if (value.empty()) { - functor(fallback); - ret = true; - } else { - float fvalue = getFloatByViewport(value, GetViewPortWidth()); - if (!isnan(fvalue)) { - functor(fvalue); - ret = true; - } - } - return ret; - } + child->set_parent_render(this); - void RenderObject::LayoutBeforeImpl() { - if (isDirty()) { - OnLayoutBefore(); - } + return index; +} +Index RenderObject::IndexOf(const RenderObject *render) { + if (render == nullptr) { + return -1; + } else { + int i = 0; for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { RenderObject *child = static_cast(*it); if (child != nullptr) { - child->LayoutBeforeImpl(); + if (render->ref() == child->ref()) return i; } + ++i; } } - - void RenderObject::LayoutAfterImpl() { - if (hasNewLayout()) { - OnLayoutAfter(getLayoutWidth(), getLayoutHeight()); - } - - for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { - RenderObject *child = static_cast(*it); - if (child != nullptr) { - child->LayoutAfterImpl(); - } + return -1; +} + +bool RenderObject::UpdateStyleInternal(const std::string key, + const std::string value, float fallback, + std::function functor) { + bool ret = false; + if (value.empty()) { + functor(fallback); + ret = true; + } else { + float fvalue = getFloatByViewport(value, GetViewPortWidth()); + if (!isnan(fvalue)) { + functor(fvalue); + ret = true; } } + return ret; +} - void RenderObject::CopyFrom(RenderObject *src) { - IRenderObject::CopyFrom(src); - this->styles_->insert(src->styles_->begin(), src->styles_->end()); - this->attributes_->insert(src->attributes_->begin(), src->attributes_->end()); - this->events_->insert(src->events_->begin(), src->events_->end()); +void RenderObject::LayoutBeforeImpl() { + if (isDirty()) { + OnLayoutBefore(); } - void RenderObject::MapInsertOrAssign(std::map *targetMap, - const std::string &key, const std::string &value) { - std::map::iterator it = targetMap->find(key); - if (it != targetMap->end()) { - it->second = value; - } else { - targetMap->insert({key, value}); + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + child->LayoutBeforeImpl(); } } +} - bool RenderObject::ViewInit() { - return (!isnan(getStyleWidth()) && getStyleWidth() > 0) || - (is_root_render() && GetRenderPage() != nullptr && - GetRenderPage()->GetRenderContainerWidthWrapContent()); +void RenderObject::LayoutAfterImpl() { + if (hasNewLayout()) { + OnLayoutAfter(getLayoutWidth(), getLayoutHeight()); } - RenderPage *RenderObject::GetRenderPage() { - return RenderManager::GetInstance()->GetPage(page_id()); - } - - bool RenderObject::IsAppendTree() { - std::string append = GetAttr(APPEND); - if (append == "tree") { - return true; + for (auto it = ChildListIterBegin(); it != ChildListIterEnd(); it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + child->LayoutAfterImpl(); } - return false; } - - void RenderObject::UpdateAttr(std::string key, std::string value) { - MapInsertOrAssign(this->attributes_, key, value); +} + +void RenderObject::CopyFrom(RenderObject *src) { + IRenderObject::CopyFrom(src); + this->styles_->insert(src->styles_->begin(), src->styles_->end()); + this->attributes_->insert(src->attributes_->begin(), src->attributes_->end()); + this->events_->insert(src->events_->begin(), src->events_->end()); +} + +void RenderObject::MapInsertOrAssign( + std::map *targetMap, const std::string &key, + const std::string &value) { + std::map::iterator it = targetMap->find(key); + if (it != targetMap->end()) { + it->second = value; + } else { + targetMap->insert({key, value}); } - - StyleType RenderObject::UpdateStyle(std::string key, std::string value) { - return ApplyStyle(key, value, true); +} + +bool RenderObject::ViewInit() { + return (!isnan(getStyleWidth()) && getStyleWidth() > 0) || + (is_root_render() && GetRenderPage() != nullptr && + GetRenderPage()->is_render_container_width_wrap_content()); +} + +RenderPage *RenderObject::GetRenderPage() { + return RenderManager::GetInstance()->GetPage(page_id()); +} + +bool RenderObject::IsAppendTree() { + std::string append = GetAttr(APPEND); + if (append == "tree") { + return true; } + return false; +} - RenderObject* RenderObject::GetChild(const Index &index) { - return static_cast(getChildAt(index)); - } +void RenderObject::UpdateAttr(std::string key, std::string value) { + MapInsertOrAssign(this->attributes_, key, value); +} - void RenderObject::RemoveRenderObject(RenderObject *child) { - removeChild(child); - } +StyleType RenderObject::UpdateStyle(std::string key, std::string value) { + return ApplyStyle(key, value, true); +} - void RenderObject::AddAttr(std::string key, std::string value) { - MapInsertOrAssign(this->attributes_, key, value); - } +RenderObject *RenderObject::GetChild(const Index &index) { + return static_cast(getChildAt(index)); +} - StyleType RenderObject::AddStyle(std::string key, std::string value) { - return ApplyStyle(key, value, false); - } +void RenderObject::RemoveRenderObject(RenderObject *child) { + removeChild(child); +} - void RenderObject::AddEvent(std::string event) { - if (this->events_ == nullptr || this->events_->empty()) { - this->events_ = new std::set(); - } - this->events_->insert(event); - } +void RenderObject::AddAttr(std::string key, std::string value) { + MapInsertOrAssign(this->attributes_, key, value); +} + +StyleType RenderObject::AddStyle(std::string key, std::string value) { + return ApplyStyle(key, value, false); +} - void RenderObject::RemoveEvent(const std::string &event) { - this->events_->erase(event); +void RenderObject::AddEvent(std::string event) { + if (this->events_ == nullptr || this->events_->empty()) { + this->events_ = new std::set(); } -} //end WeexCore + this->events_->insert(event); +} + +void RenderObject::RemoveEvent(const std::string &event) { + this->events_->erase(event); +} +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 91c9a16263..8f50bff66e 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -16,154 +16,144 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef RenderObject_h -#define RenderObject_h +#ifndef CORE_RENDER_NODE_RENDER_OBJECT_H_ +#define CORE_RENDER_NODE_RENDER_OBJECT_H_ -#include +#include #include #include -#include +#include #include "core/render/node/factory/render_object_interface.h" -#define JSON_OBJECT_MARK_CHAR '{' -#define JSON_ARRAY_MARK_CHAR '[' +#define JSON_OBJECT_MARK_CHAR '{' +#define JSON_ARRAY_MARK_CHAR '[' -#define convert_render_object_to_long(render) ((jlong)((intptr_t)render)) +#define convert_render_object_to_long(render) ((jlong)((intptr_t)render)) -#define convert_long_to_render_object(ptr) ((RenderObject *)((intptr_t)ptr)) +#define convert_long_to_render_object(ptr) \ + (static_cast((intptr_t)ptr)) namespace WeexCore { - class RenderObject; - - class RenderPage; - - typedef enum StyleType { - kTypeStyle, kTypeLayout, kTypeMargin, kTypePadding, kTypeBorder - } StyleType; - - class RenderObject : public IRenderObject { - - friend class RenderPage; - - public: - - void LayoutBeforeImpl(); +class RenderObject; - void LayoutAfterImpl(); +class RenderPage; - void CopyFrom(RenderObject *src); +typedef enum StyleType { + kTypeStyle, + kTypeLayout, + kTypeMargin, + kTypePadding, + kTypeBorder +} StyleType; - void MapInsertOrAssign(std::map *targetMap, const std::string &key, - const std::string &value); +class RenderObject : public IRenderObject { + friend class RenderPage; - bool ViewInit(); + public: + void LayoutBeforeImpl(); - virtual std::map *GetDefaultStyle() { - return nullptr; - } + void LayoutAfterImpl(); - virtual std::map *GetDefaultAttr() { - return nullptr; - } + void CopyFrom(RenderObject *src); - protected: + void MapInsertOrAssign(std::map *targetMap, + const std::string &key, const std::string &value); - bool UpdateStyleInternal(const std::string key, const std::string value, float fallback, - std::function functor); + bool ViewInit(); - public: + virtual std::map *GetDefaultStyle() { + return nullptr; + } - explicit RenderObject(); + virtual std::map *GetDefaultAttr() { + return nullptr; + } - ~RenderObject(); + protected: + bool UpdateStyleInternal(const std::string key, const std::string value, + float fallback, std::function functor); - void BindMeasureFunc(); + public: + RenderObject(); - void OnLayoutBefore(); + ~RenderObject(); - void OnLayoutAfter(float width, float height); + void BindMeasureFunc(); - virtual StyleType ApplyStyle(const std::string &key, const std::string &value, const bool updating); + void OnLayoutBefore(); - void ApplyDefaultStyle(); + void OnLayoutAfter(float width, float height); - void ApplyDefaultAttr(); + virtual StyleType ApplyStyle(const std::string &key, const std::string &value, + const bool updating); - Index IndexOf(const RenderObject *render); + void ApplyDefaultStyle(); - virtual int AddRenderObject(int index, RenderObject *child); + void ApplyDefaultAttr(); - float GetViewPortWidth(); + Index IndexOf(const RenderObject *render); - const std::string GetAttr(const std::string &key); + virtual int AddRenderObject(int index, RenderObject *child); - const std::string GetStyle(const std::string &key); + float GetViewPortWidth(); - RenderPage *GetRenderPage(); + const std::string GetAttr(const std::string &key); - virtual void UpdateAttr(std::string key, std::string value); + const std::string GetStyle(const std::string &key); - virtual StyleType UpdateStyle(std::string key, std::string value); + RenderPage *GetRenderPage(); - bool IsAppendTree(); + virtual void UpdateAttr(std::string key, std::string value); - RenderObject *GetChild(const Index &index); + virtual StyleType UpdateStyle(std::string key, std::string value); - void RemoveRenderObject(RenderObject *child); + bool IsAppendTree(); - void AddAttr(std::string key, std::string value); + RenderObject *GetChild(const Index &index); - StyleType AddStyle(std::string key, std::string value); + void RemoveRenderObject(RenderObject *child); - void AddEvent(std::string event); + void AddAttr(std::string key, std::string value); - void RemoveEvent(const std::string &event); + StyleType AddStyle(std::string key, std::string value); - public: + void AddEvent(std::string event); - inline void set_parent_render(RenderObject *render) { - this->parent_render_ = render; - } + void RemoveEvent(const std::string &event); - inline RenderObject *parent_render() { - return this->parent_render_; - } + public: + inline void set_parent_render(RenderObject *render) { + this->parent_render_ = render; + } - inline std::map *styles() const { - return this->styles_; - } + inline RenderObject *parent_render() { return this->parent_render_; } - inline std::map * attributes() const { - return this->attributes_; - } + inline std::map *styles() const { + return this->styles_; + } - inline std::set *events() const { - return this->events_; - } + inline std::map *attributes() const { + return this->attributes_; + } - inline void set_is_root_render() { - this->is_root_render_ = true; - } + inline std::set *events() const { return this->events_; } - inline bool is_root_render() { - return this->is_root_render_; - } + inline void set_is_root_render() { this->is_root_render_ = true; } - inline bool is_sticky() { - return this->is_sticky_; - } + inline bool is_root_render() { return this->is_root_render_; } - private: + inline bool is_sticky() { return this->is_sticky_; } - RenderObject *parent_render_; - std::map *styles_; - std::map *attributes_; - std::set *events_; - float viewport_width_ = -1; - bool is_root_render_; - bool is_sticky_ = false; - }; -} //end WeexCore -#endif //RenderObject_h + private: + RenderObject *parent_render_; + std::map *styles_; + std::map *attributes_; + std::set *events_; + float viewport_width_ = -1; + bool is_root_render_; + bool is_sticky_ = false; +}; +} // namespace WeexCore +#endif // CORE_RENDER_NODE_RENDER_OBJECT_H_ diff --git a/weex_core/Source/core/render/node/render_scroller.cpp b/weex_core/Source/core/render/node/render_scroller.cpp index 139af5e970..7fcdfc6c0f 100644 --- a/weex_core/Source/core/render/node/render_scroller.cpp +++ b/weex_core/Source/core/render/node/render_scroller.cpp @@ -16,36 +16,40 @@ * specific language governing permissions and limitations * under the License. */ -#include "core/render/node/render_scroller.h" + +#include + #include "core/css/constants_name.h" +#include "core/render/node/render_scroller.h" namespace WeexCore { - std::map *RenderScroller::GetDefaultStyle() { - std::map *style = new std::map(); +std::map *RenderScroller::GetDefaultStyle() { + std::map *style = + new std::map(); - bool isVertical = true; - RenderObject *parent = (RenderObject *) getParent(); + bool is_vertical = true; + RenderObject *parent = dynamic_cast(getParent()); - if (parent != nullptr) { - if (parent->GetAttr(SCROLL_DIRECTION) == HORIZONTAL) { - isVertical = false; - } + if (parent != nullptr) { + if (parent->GetAttr(SCROLL_DIRECTION) == HORIZONTAL) { + is_vertical = false; } + } - std::string prop = isVertical ? HEIGHT : WIDTH; - - if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { - style->insert(std::pair(FLEX, "1")); - } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex_) { - style->insert(std::pair(FLEX, "1")); - } + std::string prop = is_vertical ? HEIGHT : WIDTH; - return style; + if (prop == HEIGHT && isnan(getStyleHeight()) && !this->is_set_flex_) { + style->insert(std::pair(FLEX, "1")); + } else if (prop == WIDTH && isnan(getStyleWidth()) && !this->is_set_flex_) { + style->insert(std::pair(FLEX, "1")); } - void RenderScroller::set_flex(const float flex) { - this->is_set_flex_ = true; - WXCoreLayoutNode::set_flex(flex); - } + return style; +} + +void RenderScroller::set_flex(const float flex) { + this->is_set_flex_ = true; + WXCoreLayoutNode::set_flex(flex); } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_scroller.h b/weex_core/Source/core/render/node/render_scroller.h index fed8f0bd82..65e4f01734 100644 --- a/weex_core/Source/core/render/node/render_scroller.h +++ b/weex_core/Source/core/render/node/render_scroller.h @@ -16,25 +16,27 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERSCROLLER_H -#define WEEX_PROJECT_RENDERSCROLLER_H +#ifndef CORE_RENDER_NODE_RENDER_SCROLLER_H_ +#define CORE_RENDER_NODE_RENDER_SCROLLER_H_ + +#include +#include #include "core/render/node/render_object.h" namespace WeexCore { - class RenderScroller : public RenderObject { - - bool is_set_flex_ = false; - - std::map *GetDefaultStyle(); +class RenderScroller : public RenderObject { + bool is_set_flex_ = false; - void set_flex(const float flex); + std::map *GetDefaultStyle(); - inline float CalculateFreeSpaceAlongMainAxis(const float &width, const float &height, - const float ¤t_length) const override { - return NAN; - } + void set_flex(const float flex); - }; -} -#endif //WEEX_PROJECT_RENDERSCROLLER_H + inline float CalculateFreeSpaceAlongMainAxis( + const float &width, const float &height, + const float ¤t_length) const override { + return NAN; + } +}; +} // namespace WeexCore +#endif // CORE_RENDER_NODE_RENDER_SCROLLER_H_ diff --git a/weex_core/Source/core/render/node/render_text.cpp b/weex_core/Source/core/render/node/render_text.cpp index 4aa349075c..eda23e967a 100644 --- a/weex_core/Source/core/render/node/render_text.cpp +++ b/weex_core/Source/core/render/node/render_text.cpp @@ -16,19 +16,21 @@ * specific language governing permissions and limitations * under the License. */ +#include + #include "core/render/node/render_text.h" #include "core/render/page/render_page.h" namespace WeexCore { - void RenderText::UpdateAttr(std::string key, std::string value) { - RenderObject::UpdateAttr(key, value); - markDirty(); - } +void RenderText::UpdateAttr(std::string key, std::string value) { + RenderObject::UpdateAttr(key, value); + markDirty(); +} - StyleType RenderText::UpdateStyle(std::string key, std::string value) { - StyleType resultType = RenderObject::ApplyStyle(key, value, true); - markDirty(); - return resultType; - } +StyleType RenderText::UpdateStyle(std::string key, std::string value) { + StyleType result_type = RenderObject::ApplyStyle(key, value, true); + markDirty(); + return result_type; } +} // namespace WeexCore diff --git a/weex_core/Source/core/render/node/render_text.h b/weex_core/Source/core/render/node/render_text.h index 804b29834d..86e37331b9 100644 --- a/weex_core/Source/core/render/node/render_text.h +++ b/weex_core/Source/core/render/node/render_text.h @@ -16,20 +16,20 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef WEEX_PROJECT_RENDERTEXT_H -#define WEEX_PROJECT_RENDERTEXT_H +#ifndef CORE_RENDER_NODE_RENDER_TEXT_H_ +#define CORE_RENDER_NODE_RENDER_TEXT_H_ + +#include #include "core/render/node/render_object.h" namespace WeexCore { - class RenderText : public RenderObject { - - private: - - void UpdateAttr(std::string key, std::string value); +class RenderText : public RenderObject { + private: + void UpdateAttr(std::string key, std::string value); - StyleType UpdateStyle(std::string key, std::string value); - }; -} + StyleType UpdateStyle(std::string key, std::string value); +}; +} // namespace WeexCore -#endif //WEEX_PROJECT_RENDERTEXT_H +#endif // CORE_RENDER_NODE_RENDER_TEXT_H_ diff --git a/weex_core/Source/core/render/page/render_page.cpp b/weex_core/Source/core/render/page/render_page.cpp index 78ad8cd0e9..7e9bee5256 100644 --- a/weex_core/Source/core/render/page/render_page.cpp +++ b/weex_core/Source/core/render/page/render_page.cpp @@ -16,610 +16,605 @@ * specific language governing permissions and limitations * under the License. */ -#include "core/render/action/render_action_add_element.h" -#include "core/render/action/render_action_remove_element.h" -#include "core/render/action/render_action_move_element.h" -#include "core/render/action/render_action_createbody.h" -#include "core/render/action/render_action_update_style.h" -#include "core/render/action/render_action_update_attr.h" -#include "core/render/action/render_action_layout.h" -#include "core/render/action/render_action_createfinish.h" -#include "core/render/action/render_action_appendtree_createfinish.h" +#include "core/render/page/render_page.h" +#include "base/TimeUtils.h" +#include "base/ViewUtils.h" +#include "core/config/core_environment.h" +#include "core/css/constants_value.h" #include "core/layout/layout.h" +#include "core/manager/weex_core_manager.h" #include "core/moniter/render_performance.h" -#include "core/config/core_environment.h" -#include "base/ViewUtils.h" +#include "core/render/action/render_action_add_element.h" #include "core/render/action/render_action_add_event.h" +#include "core/render/action/render_action_appendtree_createfinish.h" +#include "core/render/action/render_action_createbody.h" +#include "core/render/action/render_action_createfinish.h" +#include "core/render/action/render_action_layout.h" +#include "core/render/action/render_action_move_element.h" +#include "core/render/action/render_action_remove_element.h" #include "core/render/action/render_action_remove_event.h" -#include "core/css/constants_value.h" +#include "core/render/action/render_action_update_attr.h" +#include "core/render/action/render_action_update_style.h" +#include "core/render/manager/render_manager.h" #include "core/render/node/factory/render_type.h" #include "core/render/node/render_list.h" -#include "core/manager/weex_core_manager.h" -#include "base/TimeUtils.h" -#include "core/render/page/render_page.h" -#include "core/render/manager/render_manager.h" #include "core/render/node/render_object.h" namespace WeexCore { - RenderPage::RenderPage(std::string page_id) { - +RenderPage::RenderPage(std::string page_id) { #if RENDER_LOG - LOGD("[RenderPage] new RenderPage >>>> pageId: %s", pageId.c_str()); + LOGD("[RenderPage] new RenderPage >>>> pageId: %s", pageId.c_str()); #endif - this->page_id = page_id; - this->render_performance = new RenderPerformance(); - this->viewport_width = kDefaultViewPortWidth; - this->render_page_size.first = WXCoreEnvironment::getInstance()->DeviceWidth(); - this->render_page_size.second = NAN; - } - - RenderPage::~RenderPage() { + this->page_id_ = page_id; + this->render_performance_ = new RenderPerformance(); + this->viewport_width_ = kDefaultViewPortWidth; + this->render_page_size_.first = + WXCoreEnvironment::getInstance()->DeviceWidth(); + this->render_page_size_.second = NAN; +} +RenderPage::~RenderPage() { #if RENDER_LOG - LOGD("[RenderPage] Delete RenderPage >>>> pageId: %s", mPageId.c_str()); + LOGD("[RenderPage] Delete RenderPage >>>> pageId: %s", mPageId.c_str()); #endif - this->render_object_registers.clear(); + this->render_object_registers_.clear(); - if (this->render_root != nullptr) { - delete this->render_root; - this->render_root = nullptr; - } + if (this->render_root_ != nullptr) { + delete this->render_root_; + this->render_root_ = nullptr; + } - if (this->render_performance != nullptr) { - delete this->render_performance; - this->render_performance = nullptr; - } + if (this->render_performance_ != nullptr) { + delete this->render_performance_; + this->render_performance_ = nullptr; } +} - void RenderPage::CalculateLayout() { - if (this->render_root == nullptr || !this->render_root->ViewInit()) - return; +void RenderPage::CalculateLayout() { + if (this->render_root_ == nullptr || !this->render_root_->ViewInit()) return; #if RENDER_LOG - LOGD("[RenderPage] CalculateLayout >>>> pageId: %s", mPageId.c_str()); + LOGD("[RenderPage] CalculateLayout >>>> pageId: %s", mPageId.c_str()); #endif - long long startTime = getCurrentTime(); - this->render_root->LayoutBeforeImpl(); - this->render_root->calculateLayout(this->render_page_size); - this->render_root->LayoutAfterImpl(); - CssLayoutTime(getCurrentTime() - startTime); - TraverseTree(this->render_root, 0); - } - - void RenderPage::TraverseTree(RenderObject *render,int index) { + int64_t start_time = getCurrentTime(); + this->render_root_->LayoutBeforeImpl(); + this->render_root_->calculateLayout(this->render_page_size_); + this->render_root_->LayoutAfterImpl(); + CssLayoutTime(getCurrentTime() - start_time); + TraverseTree(this->render_root_, 0); +} - if (render == nullptr) - return; +void RenderPage::TraverseTree(RenderObject *render, int index) { + if (render == nullptr) return; - if (render->hasNewLayout()) { - SendLayoutAction(render, index); - render->setHasNewLayout(false); - } - - for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - TraverseTree(child, it-render->ChildListIterBegin()); - } - } + if (render->hasNewLayout()) { + SendLayoutAction(render, index); + render->setHasNewLayout(false); } - bool RenderPage::CreateRootRender(RenderObject *root) { - - if (root == nullptr) - return false; - - SetRootRenderObject(root); - - if (isnan(this->render_root->getStyleWidth())) { - this->render_root->setStyleWidthLevel(FALLBACK_STYLE); - if (GetRenderContainerWidthWrapContent()) - this->render_root->setStyleWidthToNAN(); - else - this->render_root->setStyleWidth(WXCoreEnvironment::getInstance()->DeviceWidth(), false); - } else { - this->render_root->setStyleWidthLevel(CSS_STYLE); - } - PushRenderToRegisterMap(root); - - SendCreateBodyAction(root); - return true; - } - - void RenderPage::SetRootRenderObject(RenderObject *root) { - if (root != nullptr) { - this->render_root = root; - this->render_root->set_is_root_render(); + for (auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); + it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + TraverseTree(child, it - render->ChildListIterBegin()); } } +} - bool RenderPage::AddRenderObject(const std::string &parent_ref, int insert_posiotn, RenderObject *child) { - RenderObject *parent = GetRenderObject(parent_ref); - if (parent == nullptr || child == nullptr) { - return false; - } - - // add child to Render Tree - insert_posiotn = parent->AddRenderObject(insert_posiotn, child); - if (insert_posiotn < -1) { - return false; - } +bool RenderPage::CreateRootRender(RenderObject *root) { + if (root == nullptr) return false; - PushRenderToRegisterMap(child); - SendAddElementAction(child, parent, insert_posiotn, false); + SetRootRenderObject(root); - Batch(); - return true; + if (isnan(this->render_root_->getStyleWidth())) { + this->render_root_->setStyleWidthLevel(FALLBACK_STYLE); + if (is_render_container_width_wrap_content()) + this->render_root_->setStyleWidthToNAN(); + else + this->render_root_->setStyleWidth( + WXCoreEnvironment::getInstance()->DeviceWidth(), false); + } else { + this->render_root_->setStyleWidthLevel(CSS_STYLE); } + PushRenderToRegisterMap(root); - bool RenderPage::RemoveRenderObject(const std::string &ref) { - RenderObject *child = GetRenderObject(ref); - if (child == nullptr) - return false; - - RenderObject *parent = child->parent_render(); - if (parent == nullptr) - return false; - - parent->RemoveRenderObject(child); + SendCreateBodyAction(root); + return true; +} - RemoveRenderFromRegisterMap(child); - delete child; - - SendRemoveElementAction(ref); - return true; +void RenderPage::SetRootRenderObject(RenderObject *root) { + if (root != nullptr) { + this->render_root_ = root; + this->render_root_->set_is_root_render(); } +} - bool RenderPage::MoveRenderObject(const std::string &ref, const std::string &parent_ref, int index) { - RenderObject *child = GetRenderObject(ref); - if (child == nullptr) - return false; - - RenderObject *oldParent = child->parent_render(); - RenderObject *newParent = GetRenderObject(parent_ref); - if (oldParent == nullptr || newParent == nullptr) - return false; - - if (oldParent->ref() == newParent->ref()) { - if (oldParent->IndexOf(child) < 0) { - return false; - } else if (oldParent->IndexOf(child) == index) { - return false; - } else if (oldParent->IndexOf(child) < index) { - index = index - 1; - } - } - - child->getParent()->removeChild(child); - newParent->addChildAt(child, index); +bool RenderPage::AddRenderObject(const std::string &parent_ref, + int insert_posiotn, RenderObject *child) { + RenderObject *parent = GetRenderObject(parent_ref); + if (parent == nullptr || child == nullptr) { + return false; + } - SendMoveElementAction(ref, parent_ref, index); - return true; + // add child to Render Tree + insert_posiotn = parent->AddRenderObject(insert_posiotn, child); + if (insert_posiotn < -1) { + return false; } - bool RenderPage::UpdateStyle(const std::string &ref, std::vector> *src) { - RenderObject *render = GetRenderObject(ref); - if (render == nullptr || src == nullptr || src->empty()) - return false; + PushRenderToRegisterMap(child); + SendAddElementAction(child, parent, insert_posiotn, false); - std::vector> *style = nullptr; - std::vector> *margin = nullptr; - std::vector> *padding = nullptr; - std::vector> *border = nullptr; + Batch(); + return true; +} - bool flag = false; - int result = WeexCoreManager::getInstance()->getPlatformBridge()->callHasTransitionPros(this->page_id.c_str(), ref.c_str(), src); - //int result = Bridge_Impl_Android::getInstance()->callHasTransitionPros(mPageId.c_str(), ref.c_str(), src); +bool RenderPage::RemoveRenderObject(const std::string &ref) { + RenderObject *child = GetRenderObject(ref); + if (child == nullptr) return false; - if (result == 1) { - SendUpdateStyleAction(render, src, margin, padding, border); - } else { - for (auto iter = src->begin(); iter != src->end(); iter++) { - switch (render->UpdateStyle((*iter).first, (*iter).second)) { - case kTypeStyle: - if (style == nullptr) { - style = new std::vector>(); - } - style->insert(style->end(), (*iter)); - flag = true; - break; - case kTypeMargin: - if (margin == nullptr) { - margin = new std::vector>(); - } - render->UpdateStyleInternal((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - margin->insert(margin->end(), (*iter)), - flag = true; - }); - break; - case kTypePadding: - if (padding == nullptr) { - padding = new std::vector>(); - } - render->UpdateStyleInternal((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - padding->insert(padding->end(), (*iter)), - flag = true; - }); - break; - case kTypeBorder: - if (border == nullptr) { - border = new std::vector>(); - } - render->UpdateStyleInternal((*iter).first, - (*iter).second, - 0, - [=, &flag](float foo) { - (*iter).second = to_string(foo), - border->insert(border->end(), (*iter)), - flag = true; - }); - break; - } - } - } + RenderObject *parent = child->parent_render(); + if (parent == nullptr) return false; - if (style != nullptr || margin != nullptr || padding != nullptr || border != nullptr) - SendUpdateStyleAction(render, style, margin, padding, border); + parent->RemoveRenderObject(child); - Batch(); + RemoveRenderFromRegisterMap(child); + delete child; - if (src != nullptr) { - src->clear(); - src->shrink_to_fit(); - delete src; - src = nullptr; - } + SendRemoveElementAction(ref); + return true; +} - if (style != nullptr) { - style->clear(); - style->shrink_to_fit(); - delete style; - style = nullptr; - } - - if (margin != nullptr) { - margin->clear(); - margin->shrink_to_fit(); - delete margin; - margin = nullptr; - } - - if (padding != nullptr) { - padding->clear(); - padding->shrink_to_fit(); - delete padding; - padding = nullptr; - } +bool RenderPage::MoveRenderObject(const std::string &ref, + const std::string &parent_ref, int index) { + RenderObject *child = GetRenderObject(ref); + if (child == nullptr) return false; - if (border != nullptr) { - border->clear(); - border->shrink_to_fit(); - delete border; - border = nullptr; - } - - return flag; - } + RenderObject *old_parent = child->parent_render(); + RenderObject *new_parent = GetRenderObject(parent_ref); + if (old_parent == nullptr || new_parent == nullptr) return false; - bool RenderPage::UpdateAttr(const std::string &ref, std::vector> *attrs) { - RenderObject *render = GetRenderObject(ref); - if (render == nullptr || attrs == nullptr || attrs->empty()) + if (old_parent->ref() == new_parent->ref()) { + if (old_parent->IndexOf(child) < 0) { return false; - - SendUpdateAttrAction(render, attrs); - - for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - render->UpdateAttr((*iter).first, (*iter).second); - } - Batch(); - if (attrs != nullptr) { - attrs->clear(); - attrs->shrink_to_fit(); - delete attrs; - attrs = nullptr; - } - - return true; - } - - void RenderPage::SetDefaultHeightAndWidthIntoRootRender(const float default_width, - const float default_height, - const bool is_width_wrap_content, const bool is_height_wrap_content) { - this->render_page_size.first = default_width; - this->render_page_size.second = default_height; - if (this->render_root->getStyleWidthLevel() >= INSTANCE_STYLE) { - this->render_root->setStyleWidthLevel(INSTANCE_STYLE); - if (is_width_wrap_content) { - SetRenderContainerWidthWrapContent(true); - this->render_root->setStyleWidthToNAN(); - this->render_page_size.first = NAN; - } else { - this->render_root->setStyleWidth(default_width, true); - } - updateDirty(true); - } - - if (this->render_root->getStyleHeightLevel() >= INSTANCE_STYLE) { - if(!is_height_wrap_content) { - this->render_root->setStyleHeightLevel(INSTANCE_STYLE); - this->render_root->setStyleHeight(default_height); - updateDirty(true); + } else if (old_parent->IndexOf(child) == index) { + return false; + } else if (old_parent->IndexOf(child) < index) { + index = index - 1; + } + } + + child->getParent()->removeChild(child); + new_parent->addChildAt(child, index); + + SendMoveElementAction(ref, parent_ref, index); + return true; +} + +bool RenderPage::UpdateStyle( + const std::string &ref, + std::vector> *src) { + RenderObject *render = GetRenderObject(ref); + if (render == nullptr || src == nullptr || src->empty()) return false; + + std::vector> *style = nullptr; + std::vector> *margin = nullptr; + std::vector> *padding = nullptr; + std::vector> *border = nullptr; + + bool flag = false; + int result = + WeexCoreManager::getInstance() + ->getPlatformBridge() + ->callHasTransitionPros(this->page_id_.c_str(), ref.c_str(), src); + // int result = + // Bridge_Impl_Android::getInstance()->callHasTransitionPros(mPageId.c_str(), + // ref.c_str(), src); + + if (result == 1) { + SendUpdateStyleAction(render, src, margin, padding, border); + } else { + for (auto iter = src->begin(); iter != src->end(); iter++) { + switch (render->UpdateStyle((*iter).first, (*iter).second)) { + case kTypeStyle: + if (style == nullptr) { + style = new std::vector>(); + } + style->insert(style->end(), (*iter)); + flag = true; + break; + case kTypeMargin: + if (margin == nullptr) { + margin = new std::vector>(); + } + render->UpdateStyleInternal( + (*iter).first, (*iter).second, 0, [=, &flag](float foo) { + (*iter).second = to_string(foo), + margin->insert(margin->end(), (*iter)), flag = true; + }); + break; + case kTypePadding: + if (padding == nullptr) { + padding = new std::vector>(); + } + render->UpdateStyleInternal( + (*iter).first, (*iter).second, 0, [=, &flag](float foo) { + (*iter).second = to_string(foo), + padding->insert(padding->end(), (*iter)), flag = true; + }); + break; + case kTypeBorder: + if (border == nullptr) { + border = new std::vector>(); + } + render->UpdateStyleInternal( + (*iter).first, (*iter).second, 0, [=, &flag](float foo) { + (*iter).second = to_string(foo), + border->insert(border->end(), (*iter)), flag = true; + }); + break; } } - - Batch(); } - bool RenderPage::AddEvent(const std::string &ref, const std::string &event) { - RenderObject *render = GetRenderObject(ref); - if (render == nullptr) - return false; + if (style != nullptr || margin != nullptr || padding != nullptr || + border != nullptr) + SendUpdateStyleAction(render, style, margin, padding, border); - render->AddEvent(event); + Batch(); - RenderAction *action = new RenderActionAddEvent(this->page_id, ref, event); - PostRenderAction(action); - return true; + if (src != nullptr) { + src->clear(); + src->shrink_to_fit(); + delete src; + src = nullptr; } - bool RenderPage::RemoveEvent(const std::string &ref, const std::string &event) { - RenderObject *render = GetRenderObject(ref); - if (render == nullptr) - return false; - - render->RemoveEvent(event); - - RenderAction *action = new RenderActionRemoveEvent(this->page_id, ref, event); - PostRenderAction(action); - return true; + if (style != nullptr) { + style->clear(); + style->shrink_to_fit(); + delete style; + style = nullptr; } - bool RenderPage::CreateFinish() { - if (this->render_root == nullptr) { - return false; - } - Batch(); - SendCreateFinishAction(); - return true; + if (margin != nullptr) { + margin->clear(); + margin->shrink_to_fit(); + delete margin; + margin = nullptr; } - void RenderPage::LayoutImmediately() { - if(isDirty() && kUseVSync){ - CalculateLayout(); - this->need_layout.store(false); - updateDirty(false); - } + if (padding != nullptr) { + padding->clear(); + padding->shrink_to_fit(); + delete padding; + padding = nullptr; } - void RenderPage::PostRenderAction(RenderAction *action) { - if (action != nullptr) { - action->ExecuteAction(); - delete action; - action = nullptr; - } + if (border != nullptr) { + border->clear(); + border->shrink_to_fit(); + delete border; + border = nullptr; } - void RenderPage::PushRenderToRegisterMap(RenderObject *render) { - if (render == nullptr) - return; + return flag; +} - std::string ref = render->ref(); - this->render_object_registers.insert(std::pair(ref, render)); +bool RenderPage::UpdateAttr( + const std::string &ref, + std::vector> *attrs) { + RenderObject *render = GetRenderObject(ref); + if (render == nullptr || attrs == nullptr || attrs->empty()) return false; - for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - PushRenderToRegisterMap(child); - } - } - } + SendUpdateAttrAction(render, attrs); - void RenderPage::RemoveRenderFromRegisterMap(RenderObject *render) { - if (render == nullptr) - return; - - this->render_object_registers.erase(render->ref()); - - for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - RemoveRenderFromRegisterMap(child); - } - } + for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { + render->UpdateAttr((*iter).first, (*iter).second); + } + Batch(); + if (attrs != nullptr) { + attrs->clear(); + attrs->shrink_to_fit(); + delete attrs; + attrs = nullptr; } - void RenderPage::SendCreateBodyAction(RenderObject *render) { - if (render == nullptr) - return; - - RenderAction *action = new RenderActionCreateBody(PageId(), render); - PostRenderAction(action); + return true; +} - Index i = 0; - for(auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); it++) { - RenderObject* child = static_cast(*it); - if (child != nullptr) { - SendAddElementAction(child, render, i, true); - } - ++i; - } - - if (i > 0 && render->IsAppendTree()) { - SendAppendTreeCreateFinish(render->ref()); +void RenderPage::SetDefaultHeightAndWidthIntoRootRender( + const float default_width, const float default_height, + const bool is_width_wrap_content, const bool is_height_wrap_content) { + this->render_page_size_.first = default_width; + this->render_page_size_.second = default_height; + if (this->render_root_->getStyleWidthLevel() >= INSTANCE_STYLE) { + this->render_root_->setStyleWidthLevel(INSTANCE_STYLE); + if (is_width_wrap_content) { + set_is_render_container_width_wrap_content(true); + this->render_root_->setStyleWidthToNAN(); + this->render_page_size_.first = NAN; + } else { + this->render_root_->setStyleWidth(default_width, true); } + set_is_dirty(true); } - void RenderPage::SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, bool will_layout) { - if (child == nullptr || parent == nullptr) - return; - if(parent != nullptr && parent->type() == WeexCore::kRenderRecycleList){ - will_layout = false; + if (this->render_root_->getStyleHeightLevel() >= INSTANCE_STYLE) { + if (!is_height_wrap_content) { + this->render_root_->setStyleHeightLevel(INSTANCE_STYLE); + this->render_root_->setStyleHeight(default_height); + set_is_dirty(true); } + } - RenderAction *action = new RenderActionAddElement(PageId(), child, parent, index, will_layout); - PostRenderAction(action); + Batch(); +} - Index i = 0; - for(auto it = child->ChildListIterBegin(); it != child->ChildListIterEnd(); it++) { - RenderObject* grandson = static_cast(*it); - if (grandson != nullptr) { - SendAddElementAction(grandson, child, i, true, will_layout); - } - ++i; - } +bool RenderPage::AddEvent(const std::string &ref, const std::string &event) { + RenderObject *render = GetRenderObject(ref); + if (render == nullptr) return false; - if(child->type() == WeexCore::kRenderRecycleList){ - RenderList* renderList = (RenderList*)child; - std::vector& cellSlots = renderList->CellSlots(); - for(auto it = cellSlots.begin(); it != cellSlots.end(); it++) { - RenderObject* grandson = static_cast(*it); - if (grandson != nullptr) { - SendAddElementAction(grandson, child, -1, true, will_layout); - } - ++i; - } - } + render->AddEvent(event); - if (!is_recursion && i > 0 && child->IsAppendTree()) { - SendAppendTreeCreateFinish(child->ref()); - } - } + RenderAction *action = new RenderActionAddEvent(this->page_id_, ref, event); + PostRenderAction(action); + return true; +} - void RenderPage::SendRemoveElementAction(const std::string &ref) { - RenderAction *action = new RenderActionRemoveElement(PageId(), ref); - PostRenderAction(action); - } +bool RenderPage::RemoveEvent(const std::string &ref, const std::string &event) { + RenderObject *render = GetRenderObject(ref); + if (render == nullptr) return false; - void RenderPage::SendMoveElementAction(const std::string &ref, const std::string &parent_ref, int index) { - RenderAction *action = new RenderActionMoveElement(PageId(), ref, parent_ref, index); - PostRenderAction(action); - } + render->RemoveEvent(event); - void RenderPage::SendLayoutAction(RenderObject *render, int index) { - if (render == nullptr) - return; + RenderAction *action = new RenderActionRemoveEvent(this->page_id_, ref, event); + PostRenderAction(action); + return true; +} - RenderAction *action = new RenderActionLayout(PageId(), render, index); - PostRenderAction(action); +bool RenderPage::CreateFinish() { + if (this->render_root_ == nullptr) { + return false; } + Batch(); + SendCreateFinishAction(); + return true; +} - void RenderPage::SendUpdateStyleAction(RenderObject *render, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border) { - RenderAction *action = new RenderActionUpdateStyle(PageId(), render->ref(), style, margin, padding, border); - PostRenderAction(action); +void RenderPage::LayoutImmediately() { + if (is_dirty() && kUseVSync) { + CalculateLayout(); + this->need_layout_.store(false); + set_is_dirty(false); } +} - void RenderPage::SendUpdateAttrAction(RenderObject *render, - std::vector> *attrs) { - RenderAction *action = new RenderActionUpdateAttr(PageId(), render->ref(), attrs); - PostRenderAction(action); +void RenderPage::PostRenderAction(RenderAction *action) { + if (action != nullptr) { + action->ExecuteAction(); + delete action; + action = nullptr; } +} - void RenderPage::SendUpdateAttrAction(RenderObject *render, - std::map *attrs) { - std::vector> *vAttrs = new std::vector>(); - for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { - vAttrs->insert(vAttrs->begin(), std::pair(iter->first, iter->second)); - } +void RenderPage::PushRenderToRegisterMap(RenderObject *render) { + if (render == nullptr) return; - RenderAction *action = new RenderActionUpdateAttr(PageId(), render->ref(), vAttrs); - PostRenderAction(action); + std::string ref = render->ref(); + this->render_object_registers_.insert( + std::pair(ref, render)); - if (vAttrs != nullptr) { - vAttrs->clear(); - delete vAttrs; - vAttrs = nullptr; + for (auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); + it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + PushRenderToRegisterMap(child); } } +} - void RenderPage::SendCreateFinishAction() { - RenderAction *action = new RenderActionCreateFinish(PageId()); - PostRenderAction(action); - } +void RenderPage::RemoveRenderFromRegisterMap(RenderObject *render) { + if (render == nullptr) return; - void RenderPage::SendAppendTreeCreateFinish(const std::string &ref) { - RenderAction *action = new RenderActionAppendTreeCreateFinish(PageId(), ref); - PostRenderAction(action); - } - - void RenderPage::CssLayoutTime(const long long &time) { - if (this->render_performance != nullptr) - this->render_performance->cssLayoutTime += time; - } + this->render_object_registers_.erase(render->ref()); - void RenderPage::ParseJsonTime(const long long &time) { - if (this->render_performance != nullptr) - this->render_performance->parseJsonTime += time; - } - - void RenderPage::CallBridgeTime(const long long &time) { - if (this->render_performance != nullptr) - this->render_performance->callBridgeTime += time; + for (auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); + it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + RemoveRenderFromRegisterMap(child); + } } +} - std::vector RenderPage::PrintFirstScreenLog() { - std::vector ret; - if (this->render_performance != nullptr) - ret = this->render_performance->PrintPerformanceLog(onFirstScreen); - return ret; - } +void RenderPage::SendCreateBodyAction(RenderObject *render) { + if (render == nullptr) return; - std::vector RenderPage::PrintRenderSuccessLog() { - std::vector ret; - if (this->render_performance != nullptr) - ret = this->render_performance->PrintPerformanceLog(onRenderSuccess); - return ret; - } + RenderAction *action = new RenderActionCreateBody(page_id(), render); + PostRenderAction(action); - void RenderPage::Batch() { - if ((kUseVSync && this->need_layout.load()) || !kUseVSync) { - CalculateLayout(); - this->need_layout.store(false); - updateDirty(false); + Index i = 0; + for (auto it = render->ChildListIterBegin(); it != render->ChildListIterEnd(); + it++) { + RenderObject *child = static_cast(*it); + if (child != nullptr) { + SendAddElementAction(child, render, i, true); } + ++i; } - RenderObject* RenderPage::GetRenderObject(const std::string &ref) { - std::map::iterator iter = this->render_object_registers.find(ref); - if (iter != this->render_object_registers.end()) { - return iter->second; - } else { - return nullptr; - } - } - - void RenderPage::OnRenderPageInit() { - + if (i > 0 && render->IsAppendTree()) { + SendAppendTreeCreateFinish(render->ref()); } +} - void RenderPage::OnRenderProcessStart() { - +void RenderPage::SendAddElementAction(RenderObject *child, RenderObject *parent, + int index, bool is_recursion, + bool will_layout) { + if (child == nullptr || parent == nullptr) return; + if (parent != nullptr && parent->type() == WeexCore::kRenderRecycleList) { + will_layout = false; } - void RenderPage::OnRenderProcessExited() { + RenderAction *action = + new RenderActionAddElement(page_id(), child, parent, index, will_layout); + PostRenderAction(action); + Index i = 0; + for (auto it = child->ChildListIterBegin(); it != child->ChildListIterEnd(); + it++) { + RenderObject *grandson = static_cast(*it); + if (grandson != nullptr) { + SendAddElementAction(grandson, child, i, true, will_layout); + } + ++i; } - void RenderPage::OnRenderProcessGone() { - + if (child->type() == WeexCore::kRenderRecycleList) { + RenderList *render_list = static_cast(child); + std::vector &cell_slots = render_list->CellSlots(); + for (auto it = cell_slots.begin(); it != cell_slots.end(); it++) { + RenderObject *grandson = static_cast(*it); + if (grandson != nullptr) { + SendAddElementAction(grandson, child, -1, true, will_layout); + } + ++i; + } } - void RenderPage::OnRenderPageClose() { - - } -} //namespace WeexCore + if (!is_recursion && i > 0 && child->IsAppendTree()) { + SendAppendTreeCreateFinish(child->ref()); + } +} + +void RenderPage::SendRemoveElementAction(const std::string &ref) { + RenderAction *action = new RenderActionRemoveElement(page_id(), ref); + PostRenderAction(action); +} + +void RenderPage::SendMoveElementAction(const std::string &ref, + const std::string &parent_ref, + int index) { + RenderAction *action = + new RenderActionMoveElement(page_id(), ref, parent_ref, index); + PostRenderAction(action); +} + +void RenderPage::SendLayoutAction(RenderObject *render, int index) { + if (render == nullptr) return; + + RenderAction *action = new RenderActionLayout(page_id(), render, index); + PostRenderAction(action); +} + +void RenderPage::SendUpdateStyleAction( + RenderObject *render, + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border) { + RenderAction *action = new RenderActionUpdateStyle( + page_id(), render->ref(), style, margin, padding, border); + PostRenderAction(action); +} + +void RenderPage::SendUpdateAttrAction( + RenderObject *render, + std::vector> *attrs) { + RenderAction *action = + new RenderActionUpdateAttr(page_id(), render->ref(), attrs); + PostRenderAction(action); +} + +void RenderPage::SendUpdateAttrAction( + RenderObject *render, std::map *attrs) { + std::vector> *vAttrs = + new std::vector>(); + for (auto iter = attrs->cbegin(); iter != attrs->cend(); iter++) { + vAttrs->insert(vAttrs->begin(), std::pair( + iter->first, iter->second)); + } + + RenderAction *action = + new RenderActionUpdateAttr(page_id(), render->ref(), vAttrs); + PostRenderAction(action); + + if (vAttrs != nullptr) { + vAttrs->clear(); + delete vAttrs; + vAttrs = nullptr; + } +} + +void RenderPage::SendCreateFinishAction() { + RenderAction *action = new RenderActionCreateFinish(page_id()); + PostRenderAction(action); +} + +void RenderPage::SendAppendTreeCreateFinish(const std::string &ref) { + RenderAction *action = new RenderActionAppendTreeCreateFinish(page_id(), ref); + PostRenderAction(action); +} + +void RenderPage::CssLayoutTime(const int64_t &time) { + if (this->render_performance_ != nullptr) + this->render_performance_->cssLayoutTime += time; +} + +void RenderPage::ParseJsonTime(const int64_t &time) { + if (this->render_performance_ != nullptr) + this->render_performance_->parseJsonTime += time; +} + +void RenderPage::CallBridgeTime(const int64_t &time) { + if (this->render_performance_ != nullptr) + this->render_performance_->callBridgeTime += time; +} + +std::vector RenderPage::PrintFirstScreenLog() { + std::vector ret; + if (this->render_performance_ != nullptr) + ret = this->render_performance_->PrintPerformanceLog(onFirstScreen); + return ret; +} + +std::vector RenderPage::PrintRenderSuccessLog() { + std::vector ret; + if (this->render_performance_ != nullptr) + ret = this->render_performance_->PrintPerformanceLog(onRenderSuccess); + return ret; +} + +void RenderPage::Batch() { + if ((kUseVSync && this->need_layout_.load()) || !kUseVSync) { + CalculateLayout(); + this->need_layout_.store(false); + set_is_dirty(false); + } +} + +RenderObject *RenderPage::GetRenderObject(const std::string &ref) { + std::map::iterator iter = + this->render_object_registers_.find(ref); + if (iter != this->render_object_registers_.end()) { + return iter->second; + } else { + return nullptr; + } +} + +void RenderPage::OnRenderPageInit() {} + +void RenderPage::OnRenderProcessStart() {} + +void RenderPage::OnRenderProcessExited() {} + +void RenderPage::OnRenderProcessGone() {} + +void RenderPage::OnRenderPageClose() {} +} // namespace WeexCore diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h index f179bdc5c1..9310e1694d 100644 --- a/weex_core/Source/core/render/page/render_page.h +++ b/weex_core/Source/core/render/page/render_page.h @@ -16,172 +16,167 @@ * specific language governing permissions and limitations * under the License. */ -#ifndef RenderPage_H -#define RenderPage_H +#ifndef CORE_RENDER_PAGE_RENDER_PAGE_H_ +#define CORE_RENDER_PAGE_RENDER_PAGE_H_ -#include -#include -#include -#include #include +#include +#include +#include +#include +#include namespace WeexCore { - class RenderAction; - - class RenderObject; - - class RenderPerformance; - - class RenderPage { - - private: +class RenderAction; - void TraverseTree(RenderObject *render, int index); +class RenderObject; - void PushRenderToRegisterMap(RenderObject *render); +class RenderPerformance; - void RemoveRenderFromRegisterMap(RenderObject *render); +class RenderPage { + private: + void TraverseTree(RenderObject *render, int index); - void SendCreateBodyAction(RenderObject *render); + void PushRenderToRegisterMap(RenderObject *render); - void - SendAddElementAction(RenderObject *child, RenderObject *parent, int index, bool is_recursion, - bool will_layout = true); + void RemoveRenderFromRegisterMap(RenderObject *render); - void SendRemoveElementAction(const std::string &ref); + void SendCreateBodyAction(RenderObject *render); - void SendMoveElementAction(const std::string &ref, const std::string &parent_ref, int index); + void SendAddElementAction(RenderObject *child, RenderObject *parent, + int index, bool is_recursion, + bool will_layout = true); - void SendLayoutAction(RenderObject *render, int index); + void SendRemoveElementAction(const std::string &ref); - void SendUpdateStyleAction(RenderObject *render, - std::vector> *style, - std::vector> *margin, - std::vector> *padding, - std::vector> *border); + void SendMoveElementAction(const std::string &ref, + const std::string &parent_ref, int index); - void SendUpdateAttrAction(RenderObject *render, - std::vector> *attrs); + void SendLayoutAction(RenderObject *render, int index); - void SendCreateFinishAction(); + void SendUpdateStyleAction( + RenderObject *render, + std::vector> *style, + std::vector> *margin, + std::vector> *padding, + std::vector> *border); - void SendAppendTreeCreateFinish(const std::string &ref); + void SendUpdateAttrAction( + RenderObject *render, + std::vector> *attrs); - void PostRenderAction(RenderAction *action); + void SendCreateFinishAction(); - public: + void SendAppendTreeCreateFinish(const std::string &ref); - explicit RenderPage(std::string page_id); + void PostRenderAction(RenderAction *action); - ~RenderPage(); + public: - void CalculateLayout(); + explicit RenderPage(std::string page_id); - bool CreateRootRender(RenderObject *root); + ~RenderPage(); - bool AddRenderObject(const std::string &parent_ref, int insert_posiotn, RenderObject *child); + void CalculateLayout(); - bool RemoveRenderObject(const std::string &ref); + bool CreateRootRender(RenderObject *root); - bool MoveRenderObject(const std::string &ref, const std::string &parent_ref, int index); + bool AddRenderObject(const std::string &parent_ref, int insert_posiotn, + RenderObject *child); - bool - UpdateStyle(const std::string &ref, std::vector> *styles); + bool RemoveRenderObject(const std::string &ref); - bool - UpdateAttr(const std::string &ref, std::vector> *attrs); + bool MoveRenderObject(const std::string &ref, const std::string &parent_ref, + int index); - void - SetDefaultHeightAndWidthIntoRootRender(const float default_width, const float default_height, - const bool is_width_wrap_content, - const bool is_height_wrap_content); + bool UpdateStyle(const std::string &ref, + std::vector> *styles); - bool AddEvent(const std::string &ref, const std::string &event); + bool UpdateAttr(const std::string &ref, + std::vector> *attrs); - bool RemoveEvent(const std::string &ref, const std::string &event); + void SetDefaultHeightAndWidthIntoRootRender( + const float default_width, const float default_height, + const bool is_width_wrap_content, const bool is_height_wrap_content); - bool CreateFinish(); + bool AddEvent(const std::string &ref, const std::string &event); - void Batch(); + bool RemoveEvent(const std::string &ref, const std::string &event); - void CssLayoutTime(const long long &time); + bool CreateFinish(); - void ParseJsonTime(const long long &time); + void Batch(); - void CallBridgeTime(const long long &time); + void CssLayoutTime(const int64_t &time); - std::vector PrintFirstScreenLog(); + void ParseJsonTime(const int64_t &time); - std::vector PrintRenderSuccessLog(); + void CallBridgeTime(const int64_t &time); - void LayoutImmediately(); + std::vector PrintFirstScreenLog(); - void SendUpdateAttrAction(RenderObject *render, std::map *attrs); + std::vector PrintRenderSuccessLog(); - RenderObject *GetRenderObject(const std::string &ref); + void LayoutImmediately(); - void SetRootRenderObject(RenderObject *root); + void SendUpdateAttrAction(RenderObject *render, + std::map *attrs); - // ****** Life Cycle ****** // + RenderObject *GetRenderObject(const std::string &ref); - void OnRenderPageInit(); + void SetRootRenderObject(RenderObject *root); - void OnRenderProcessStart(); + // ****** Life Cycle ****** // - void OnRenderProcessExited(); + void OnRenderPageInit(); - void OnRenderProcessGone(); + void OnRenderProcessStart(); - void OnRenderPageClose(); + void OnRenderProcessExited(); + void OnRenderProcessGone(); - inline std::string PageId() { - return this->page_id; - } + void OnRenderPageClose(); - inline float ViewPortWidth() const { - return this->viewport_width; - } +public: - inline void SetViewPortWidth(float viewport_width) { - this->viewport_width = viewport_width; - } + inline std::string page_id() { return this->page_id_; } - inline bool isDirty() { - return this->dirty.load(); - } + inline float viewport_width() const { return this->viewport_width_; } - inline void updateDirty(bool dirty) { - this->dirty.store(dirty); - } + inline void set_viewport_width(float viewport_width) { + this->viewport_width_ = viewport_width; + } - inline void SetRenderContainerWidthWrapContent(bool wrap) { - this->is_render_container_width_wrap_content.store(wrap); - } + inline bool is_dirty() { return this->is_dirty_.load(); } - inline bool GetRenderContainerWidthWrapContent() { - return this->is_render_container_width_wrap_content.load(); - } + inline void set_is_dirty(bool dirty) { this->is_dirty_.store(dirty); } - public: + inline void set_is_render_container_width_wrap_content(bool wrap) { + this->is_render_container_width_wrap_content_.store(wrap); + } - static constexpr bool kUseVSync = true; - std::atomic_bool need_layout{false}; - std::atomic_bool has_fore_layout_action{false}; + inline bool is_render_container_width_wrap_content() { + return this->is_render_container_width_wrap_content_.load(); + } - private: + public: + static constexpr bool kUseVSync = true; + std::atomic_bool need_layout_{false}; + std::atomic_bool has_fore_layout_action_{false}; - float viewport_width; - RenderObject *render_root = nullptr; - std::string page_id; - std::pair render_page_size; - std::map render_object_registers; - RenderPerformance *render_performance; - std::atomic_bool dirty{true}; - std::atomic_bool is_render_container_width_wrap_content{false}; - std::atomic_bool is_render_container_height_wrap_content{false}; - }; -} + private: + float viewport_width_; + RenderObject *render_root_ = nullptr; + std::string page_id_; + std::pair render_page_size_; + std::map render_object_registers_; + RenderPerformance *render_performance_; + std::atomic_bool is_dirty_{true}; + std::atomic_bool is_render_container_width_wrap_content_{false}; + std::atomic_bool is_render_container_height_wrap_content_{false}; +}; +} // namespace WeexCore -#endif //RenderManager_h \ No newline at end of file +#endif // CORE_RENDER_PAGE_RENDER_PAGE_H_ From 6d45039c9748bb521db36216c5dc7f55f29e28bb Mon Sep 17 00:00:00 2001 From: miomin Date: Tue, 12 Jun 2018 12:23:50 +0800 Subject: [PATCH 8/9] [WEEX-442] Fix compile error --- weex_core/Source/core/render/node/render_object.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index 8f50bff66e..e500dd1df4 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -31,8 +31,7 @@ #define convert_render_object_to_long(render) ((jlong)((intptr_t)render)) -#define convert_long_to_render_object(ptr) \ - (static_cast((intptr_t)ptr)) +#define convert_long_to_render_object(ptr) ((RenderObject*)((intptr_t)ptr)) namespace WeexCore { From 49a75c867f076ff2f6fb4595dc1b627dd5c630b4 Mon Sep 17 00:00:00 2001 From: miomin Date: Wed, 13 Jun 2018 15:32:27 +0800 Subject: [PATCH 9/9] * [core] Solve the problem of layout calculation accuracy --- weex_core/Source/base/ViewUtils.h | 4 ++-- weex_core/Source/core/render/node/render_object.cpp | 4 ++-- weex_core/Source/core/render/node/render_object.h | 1 - weex_core/Source/core/render/page/render_page.h | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/weex_core/Source/base/ViewUtils.h b/weex_core/Source/base/ViewUtils.h index f73aecaa41..d6cbf4e8ff 100644 --- a/weex_core/Source/base/ViewUtils.h +++ b/weex_core/Source/base/ViewUtils.h @@ -64,7 +64,7 @@ namespace WeexCore { float realPx = (src * WXCoreEnvironment::getInstance()->DeviceWidth() / viewport); - float result = realPx > 0.005 && realPx < 1 ? 1 : rint(realPx); + float result = realPx > 0.005 && realPx < 1 ? 1.0f : realPx; return result; } @@ -120,7 +120,7 @@ namespace WeexCore { return NAN; float realPx = (pxValue * customViewport / WXCoreEnvironment::getInstance()->DeviceWidth()); - float result = realPx > 0.005 && realPx < 1 ? 1 : rint(realPx); + float result = realPx > 0.005 && realPx < 1 ? 1.0f : realPx; return result; } } diff --git a/weex_core/Source/core/render/node/render_object.cpp b/weex_core/Source/core/render/node/render_object.cpp index fe0d25f86e..e740842f00 100644 --- a/weex_core/Source/core/render/node/render_object.cpp +++ b/weex_core/Source/core/render/node/render_object.cpp @@ -306,11 +306,11 @@ const std::string RenderObject::GetAttr(const std::string &key) { } float RenderObject::GetViewPortWidth() { - if (this->viewport_width_ >= 0) return this->viewport_width_; - RenderPage *page = GetRenderPage(); if (page == nullptr) return kDefaultViewPortWidth; + if (page->viewport_width() < 0) + return kDefaultViewPortWidth; return page->viewport_width(); } diff --git a/weex_core/Source/core/render/node/render_object.h b/weex_core/Source/core/render/node/render_object.h index e500dd1df4..b7f841ccf5 100644 --- a/weex_core/Source/core/render/node/render_object.h +++ b/weex_core/Source/core/render/node/render_object.h @@ -150,7 +150,6 @@ class RenderObject : public IRenderObject { std::map *styles_; std::map *attributes_; std::set *events_; - float viewport_width_ = -1; bool is_root_render_; bool is_sticky_ = false; }; diff --git a/weex_core/Source/core/render/page/render_page.h b/weex_core/Source/core/render/page/render_page.h index 9310e1694d..8b6ce041bf 100644 --- a/weex_core/Source/core/render/page/render_page.h +++ b/weex_core/Source/core/render/page/render_page.h @@ -167,7 +167,7 @@ class RenderPage { std::atomic_bool has_fore_layout_action_{false}; private: - float viewport_width_; + float viewport_width_ = -1.0f; RenderObject *render_root_ = nullptr; std::string page_id_; std::pair render_page_size_;