You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cx...@apache.org on 2018/06/19 09:41:02 UTC
[15/50] [abbrv] incubator-weex git commit: [WEEX-442][Core] Remove
unless include
[WEEX-442][Core] Remove unless include
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/19406510
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/19406510
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/19406510
Branch: refs/heads/release
Commit: 1940651026839f875ac66d101ae30caaae6fc8d6
Parents: 3dcab42
Author: miomin <mi...@foxmail.com>
Authored: Fri Jun 8 11:47:46 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Tue Jun 12 12:44:03 2018 +0800
----------------------------------------------------------------------
weex_core/Source/CMakeLists.txt | 7 +
.../native_render_object_utils_impl_android.cpp | 1 +
.../Source/core/render/action/render_action.h | 9 +-
.../render/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 +-
.../render/action/render_action_createbody.cpp | 19 +-
.../render/action/render_action_createbody.h | 17 +-
.../action/render_action_createfinish.cpp | 7 +-
.../render/action/render_action_createfinish.h | 6 +-
.../core/render/action/render_action_layout.cpp | 15 +-
.../core/render/action/render_action_layout.h | 16 +-
.../action/render_action_move_element.cpp | 13 +-
.../render/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 +-
.../render/action/render_action_remove_event.h | 9 +-
.../render/action/render_action_update_attr.cpp | 8 +-
.../render/action/render_action_update_attr.h | 9 +-
.../action/render_action_update_style.cpp | 14 +-
.../render/action/render_action_update_style.h | 15 +-
.../core/render/manager/render_manager.cpp | 23 +-
.../Source/core/render/manager/render_manager.h | 12 +-
.../core/render/node/factory/i_render_factory.h | 2 +-
.../core/render/node/factory/i_render_object.h | 13 +-
.../render/node/factory/render_appbar_factory.h | 4 +-
.../render/node/factory/render_cell_factory.h | 4 +-
.../core/render/node/factory/render_creator.cpp | 37 +-
.../node/factory/render_indicator_factory.h | 36 --
.../render/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 +-
.../render/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 -
.../render/node/factory/simple_render_factory.h | 4 +-
.../Source/core/render/node/render_appbar.cpp | 85 +++++
.../Source/core/render/node/render_appbar.h | 62 +---
weex_core/Source/core/render/node/render_cell.h | 2 +-
.../Source/core/render/node/render_indicator.h | 30 --
.../Source/core/render/node/render_input.h | 30 --
.../Source/core/render/node/render_list.cpp | 319 +++++++++++++++++
weex_core/Source/core/render/node/render_list.h | 319 ++---------------
.../Source/core/render/node/render_mask.cpp | 54 +++
weex_core/Source/core/render/node/render_mask.h | 28 +-
.../Source/core/render/node/render_object.cpp | 323 ++++++++++++++++-
.../Source/core/render/node/render_object.h | 348 ++-----------------
.../Source/core/render/node/render_scroller.cpp | 51 +++
.../Source/core/render/node/render_scroller.h | 34 +-
.../Source/core/render/node/render_switch.h | 30 --
.../Source/core/render/node/render_text.cpp | 34 ++
weex_core/Source/core/render/node/render_text.h | 16 +-
.../Source/core/render/node/render_textarea.h | 30 --
.../Source/core/render/page/render_page.cpp | 124 ++++---
weex_core/Source/core/render/page/render_page.h | 58 ++--
61 files changed, 1278 insertions(+), 1250 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/weex_core/Source/CMakeLists.txt b/weex_core/Source/CMakeLists.txt
index d0ef00c..6cb9c18 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
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/android/bridge/impl/native_render_object_utils_impl_android.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 dbf28a8..9fc1a39 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 <android/log.h>
#include <core/render/node/render_list.h>
#include <android/base/log_utils.h>
+#include <core/config/core_environment.h>
using namespace WeexCore;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/action/render_action.h b/weex_core/Source/core/render/action/render_action.h
index 4cee828..e5e3cbc 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 <core/layout/layout.h>
-#include <core/render/node/render_object.h>
-#include <core/render/manager/render_manager.h>
-#include <core/render/page/render_page.h>
-#include <string>
-#include <base/TimeUtils.h>
-
namespace WeexCore {
- class render_action {
+ class RenderAction {
public:
virtual void ExecuteAction() = 0;
};
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_add_element.cpp
----------------------------------------------------------------------
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 8a69fe5..66dcbfb 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 <core/manager/weex_core_manager.h>
-#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);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_add_element.h
----------------------------------------------------------------------
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 07968fc..2b9f553 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 <string>
+#include <map>
+#include <set>
+
+#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<std::string, std::string> *mStyles;
+ std::map<std::string, std::string> *mAttributes;
+ std::set<std::string> *mEvents;
WXCoreMargin mMargins;
WXCorePadding mPaddings;
WXCoreBorderWidth mBorders;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_add_event.cpp
----------------------------------------------------------------------
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 0d210d0..8005daa 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 <core/manager/weex_core_manager.h>
-#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());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_add_event.h
----------------------------------------------------------------------
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 0de206b..88ad40f 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 <string>
+
+#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();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_appendtree_createfinish.cpp
----------------------------------------------------------------------
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 e7b3999..045f0b6 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 <core/manager/weex_core_manager.h>
+
+#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());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_appendtree_createfinish.h
----------------------------------------------------------------------
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 cdc968c..04cae26 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 <string>
+
+#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);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_createbody.cpp
----------------------------------------------------------------------
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 289cb31..2efd6f0 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 <core/manager/weex_core_manager.h>
-#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);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_createbody.h
----------------------------------------------------------------------
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 90b9827..623b5a0 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 <string>
+#include <map>
+#include <set>
+
+#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<std::string, std::string> *mStyles;
+ std::map<std::string, std::string> *mAttributes;
+ std::set<std::string> *mEvents;
WXCoreMargin mMargins;
WXCorePadding mPaddings;
WXCoreBorderWidth mBorders;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_createfinish.cpp
----------------------------------------------------------------------
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 9c2b9fe..13559c1 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 <core/manager/weex_core_manager.h>
-#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());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_createfinish.h
----------------------------------------------------------------------
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 0b3407e..9beb99a 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 <string>
+
+#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);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_layout.cpp
----------------------------------------------------------------------
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 67b34b9..366c6ba 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 <core/manager/weex_core_manager.h>
-#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) {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_layout.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 868e476..18eeb5b 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 <string>
+#include <set>
+
+#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<std::string> *mEvents;
std::string mPageId;
std::string mRef;
float mWidth;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_move_element.cpp
----------------------------------------------------------------------
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 5c80218..ca2b88e 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 <core/manager/weex_core_manager.h>
-#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
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_move_element.h
----------------------------------------------------------------------
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 56db80b..cc0fced 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 <string>
+
+#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();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_remove_element.cpp
----------------------------------------------------------------------
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 3557438..ba17af5 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 <core/manager/weex_core_manager.h>
-#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
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_remove_element.h
----------------------------------------------------------------------
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 d4342f1..b8d50b3 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 <string>
+
+#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);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_remove_event.cpp
----------------------------------------------------------------------
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 5588112..06e21d4 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 <core/manager/weex_core_manager.h>
+
+#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());
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_remove_event.h
----------------------------------------------------------------------
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 47ffe78..a772a6a 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 <string>
+
+#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();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_update_attr.cpp
----------------------------------------------------------------------
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 c662c1d..7aa6d3f 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 <core/manager/weex_core_manager.h>
-#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);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_update_attr.h
----------------------------------------------------------------------
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 c9eeec1..3e74c01 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 <string>
+#include <vector>
+
+#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<std::pair<std::string, std::string>> *mAttrs);
+ std::vector<std::pair<std::string, std::string>> *mAttrs);
void ExecuteAction();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_update_style.cpp
----------------------------------------------------------------------
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 e694db5..9b2f6a2 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 <core/manager/weex_core_manager.h>
-#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<std::pair<std::string, std::string>> *style,
std::vector<std::pair<std::string, std::string>> *margin,
std::vector<std::pair<std::string, std::string>> *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);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/action/render_action_update_style.h
----------------------------------------------------------------------
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 e9d9f53..e2d6aa4 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 <string>
+#include <vector>
+
+#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<std::pair<std::string, std::string>> *style,
- std::vector<std::pair<std::string, std::string>> *margin,
- std::vector<std::pair<std::string, std::string>> *padding,
- std::vector<std::pair<std::string, std::string>> *border);
+ std::vector<std::pair<std::string, std::string>> *style,
+ std::vector<std::pair<std::string, std::string>> *margin,
+ std::vector<std::pair<std::string, std::string>> *padding,
+ std::vector<std::pair<std::string, std::string>> *border);
void ExecuteAction();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/manager/render_manager.cpp
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/manager/render_manager.cpp b/weex_core/Source/core/render/manager/render_manager.cpp
index d271b14..c25987d 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 <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/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<std::pair<std::string, std::string>> *attrs = Wson2Pairs(data);
+ std::vector <std::pair<std::string, std::string>> *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<std::pair<std::string, std::string>> *styles = Wson2Pairs(data);
+ std::vector <std::pair<std::string, std::string>> *styles = Wson2Pairs(data);
page->ParseJsonTime(getCurrentTime() - startTime);
page->updateDirty(true);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/manager/render_manager.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/manager/render_manager.h b/weex_core/Source/core/render/manager/render_manager.h
index 446001b..3ff9463 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 <map>
#include <string>
-#include <stdbool.h>
-#include <core/layout/measure_func_adapter.h>
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);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/i_render_factory.h
----------------------------------------------------------------------
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 ea8cda6..f0e4451 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 {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/i_render_object.h
----------------------------------------------------------------------
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 6d13569..da2df7f 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 <string>
-#include <core/layout/layout.h>
+
+#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:
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_appbar_factory.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 ab88c69..f8308d2 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 <core/render/node/render_appbar.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_appbar.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_cell_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 516df0b..7873cd3 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 <core/render/node/render_cell.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_cell.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_creator.cpp
----------------------------------------------------------------------
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 7318d40..5c3acfb 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 {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_indicator_factory.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/factory/render_indicator_factory.h b/weex_core/Source/core/render/node/factory/render_indicator_factory.h
deleted file mode 100644
index 7688acf..0000000
--- a/weex_core/Source/core/render/node/factory/render_indicator_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_RENDERINDICATORFACTORY_H
-#define WEEX_PROJECT_RENDERINDICATORFACTORY_H
-
-#include <core/render/node/render_indicator.h>
-#include "i_render_factory.h"
-
-namespace WeexCore {
-
- class RenderIndicatorFactory : public IRenderFactory {
- public:
- IRenderObject *CreateRender() {
- return new RenderIndicator();
- }
- };
-
-}
-
-#endif //WEEX_PROJECT_RENDERINDICATORFACTORY_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_input_factory.h
----------------------------------------------------------------------
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 7e4fe6e..0000000
--- 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 <core/render/node/render_input.h>
-#include "i_render_factory.h"
-
-namespace WeexCore {
-
- class RenderInputFactory : public IRenderFactory {
- public:
- IRenderObject *CreateRender() {
- return new RenderInput();
- }
- };
-
-}
-
-#endif //WEEX_PROJECT_RENDERINPUTFACTORY_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_list_factory.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 a1d0254..3964e6a 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 <core/render/node/render_list.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_list.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_mask_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 c250b86..92a210e 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 <core/render/node/render_mask.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_mask.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_scroller_factory.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 0f0f46a..7795bed 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 <core/render/node/render_scroller.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_scroller.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_switch_factory.h
----------------------------------------------------------------------
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 558c87d..0000000
--- 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 <core/render/node/render_switch.h>
-#include "i_render_factory.h"
-
-namespace WeexCore {
-
- class RenderSwitchFactory : public IRenderFactory {
- public:
- IRenderObject *CreateRender() {
- return new RenderSwitch();
- }
- };
-
-}
-
-#endif //WEEX_PROJECT_RENDERSWITCHFACTORY_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_text_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 edf8ab9..025de76 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 <core/render/node/render_text.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_text.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_textarea_factory.h
----------------------------------------------------------------------
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 4d42975..0000000
--- 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 <core/render/node/render_textarea.h>
-#include "i_render_factory.h"
-
-namespace WeexCore {
-
- class RenderTextAreaFactory : public IRenderFactory {
- public:
- IRenderObject *CreateRender() {
- return new RenderTextArea();
- }
- };
-
-}
-
-#endif //WEEX_PROJECT_RENDERTEXTAREAFACTORY_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/render_type.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 aab8245..46c98ae 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";
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/factory/simple_render_factory.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 3adef52..ee1ffca 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 <core/render/node/render_object.h>
-#include "i_render_factory.h"
+#include "core/render/node/render_object.h"
+#include "core/render/node/factory/i_render_factory.h"
namespace WeexCore {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_appbar.cpp
----------------------------------------------------------------------
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 0000000..9a6a766
--- /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<std::string, std::string> *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<std::string, std::string> *style = new std::map<std::string, std::string>();
+ style->insert(std::pair<std::string, std::string>(PADDING_LEFT, "0"));
+ style->insert(std::pair<std::string, std::string>(PADDING_RIGHT, "0"));
+
+ if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR))
+ style->insert(std::pair<std::string, std::string>(COLOR, appbar_color));
+ if (!appbar_background_color.empty() && appbar_background_color != "" &&
+ !StyleExist(BACKGROUND_COLOR))
+ style->insert(std::pair<std::string, std::string>(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);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_appbar.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_appbar.h b/weex_core/Source/core/render/node/render_appbar.h
index d0c85d3..7259bbb 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 <core/render/node/render_object.h>
#include <string>
-//#include <android/base/string/string_utils.h>
+
+#include "core/render/node/render_object.h"
namespace WeexCore {
class RenderAppBar : public RenderObject {
private:
- float defaultNavWidth;
- float defaultOverflowWidth;
- std::map<std::string, std::string> *GetDefaultStyle() {
- defaultNavWidth = getFloat(WXCoreEnvironment::getInstance()->GetOption("defaultNavWidth").c_str());
+ std::map<std::string, std::string> *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<std::string, std::string> *style = new std::map<std::string, std::string>();
- style->insert(std::pair<std::string, std::string>(PADDING_LEFT, "0"));
- style->insert(std::pair<std::string, std::string>(PADDING_RIGHT, "0"));
+ public:
- if (!appbar_color.empty() && appbar_color != "" && !StyleExist(COLOR))
- style->insert(std::pair<std::string, std::string>(COLOR, appbar_color));
- if (!appbar_background_color.empty() && appbar_background_color != "" && !StyleExist(BACKGROUND_COLOR))
- style->insert(std::pair<std::string, std::string>(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);
- }
- }
};
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_cell.h
----------------------------------------------------------------------
diff --git a/weex_core/Source/core/render/node/render_cell.h b/weex_core/Source/core/render/node/render_cell.h
index d7e9adc..9a2ced6 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 <core/render/node/render_object.h>
+#include "core/render/node/render_object.h"
namespace WeexCore {
class RenderCell : public RenderObject {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_indicator.h
----------------------------------------------------------------------
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 9c3bd00..0000000
--- 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 <core/render/node/render_object.h>
-
-namespace WeexCore {
- class RenderIndicator : public RenderObject {
-
- };
-}
-
-#endif //WEEX_PROJECT_RENDERINDICATOR_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_input.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 ce4a007..0000000
--- 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 <core/render/node/render_object.h>
-
-namespace WeexCore {
- class RenderInput : public RenderObject {
-
- };
-}
-
-#endif //WEEX_PROJECT_BASICRENDEREDITTEXT_H
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19406510/weex_core/Source/core/render/node/render_list.cpp
----------------------------------------------------------------------
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 0000000..8c5042c
--- /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 <cmath>
+
+#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<std::string, std::string> *RenderList::GetDefaultStyle() {
+ std::map<std::string, std::string> *style = new std::map<std::string, std::string>();
+
+ 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<std::string, std::string>(FLEX, "1"));
+ } else if (prop == WIDTH && isnan(getStyleWidth()) && !mIsSetFlex) {
+ mIsSetFlex = true;
+ style->insert(std::pair<std::string, std::string>(FLEX, "1"));
+ }
+
+ return style;
+ }
+
+ void RenderList::setFlex(const float flex) {
+ mIsSetFlex = true;
+ WXCoreLayoutNode::setFlex(flex);
+ }
+
+ std::map<std::string, std::string> *RenderList::GetDefaultAttr() {
+ if (!mIsPreCalculateCellWidth) {
+ preCalculateCellWidth();
+ }
+ return nullptr;
+ }
+
+ void RenderList::preCalculateCellWidth() {
+ std::map<std::string, std::string> *attrs = new std::map<std::string, std::string>();
+ 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<std::string, std::string>(COLUMN_COUNT, to_string(mColumnCount)));
+ attrs->insert(std::pair<std::string, std::string>(COLUMN_GAP, to_string(mColumnGap)));
+ attrs->insert(std::pair<std::string, std::string>(COLUMN_WIDTH, to_string(mColumnWidth)));
+ }
+ if (spanOffsets.length() > 0) {
+ attrs->insert(std::pair<std::string, std::string>(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;
+ }
+}