1 /*
2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "inspect_node.h"
17
18 namespace OHOS::Ace::Framework {
InspectNode(NodeId nodeId,const std::string & nodeName)19 InspectNode::InspectNode(NodeId nodeId, const std::string& nodeName)
20 : nodeId_(nodeId), tag_(nodeName)
21 {}
22
~InspectNode()23 InspectNode::~InspectNode()
24 {
25 std::unordered_map<std::string, std::string>().swap(attrs_);
26 attrs_.clear();
27 std::unordered_map<std::string, std::string>().swap(styles_);
28 styles_.clear();
29 }
30
PackAttrAndStyle()31 void InspectNode::PackAttrAndStyle()
32 {}
33
InitCommonStyles()34 void InspectNode::InitCommonStyles()
35 {
36 styles_.insert(std::make_pair("padding-left", "0"));
37 styles_.insert(std::make_pair("padding-top", "0"));
38 styles_.insert(std::make_pair("padding-right", "0"));
39 styles_.insert(std::make_pair("padding-bottom", "0"));
40 styles_.insert(std::make_pair("padding-start", "0"));
41 styles_.insert(std::make_pair("padding-end", "0"));
42 styles_.insert(std::make_pair("margin-left", "0"));
43 styles_.insert(std::make_pair("margin-top", "0"));
44 styles_.insert(std::make_pair("margin-right", "0"));
45 styles_.insert(std::make_pair("margin-bottom", "0"));
46 styles_.insert(std::make_pair("margin-start", "0"));
47 styles_.insert(std::make_pair("margin-end", "0"));
48 styles_.insert(std::make_pair("border", "0"));
49 styles_.insert(std::make_pair("border-left-style", "solid"));
50 styles_.insert(std::make_pair("border-top-style", "solid"));
51 styles_.insert(std::make_pair("border-right-style", "solid"));
52 styles_.insert(std::make_pair("border-bottom-style", "solid"));
53 styles_.insert(std::make_pair("border-left-width", "0"));
54 styles_.insert(std::make_pair("border-top-width", "0"));
55 styles_.insert(std::make_pair("border-right-width", "0"));
56 styles_.insert(std::make_pair("border-bottom-width", "0"));
57 styles_.insert(std::make_pair("border-left-color", "black"));
58 styles_.insert(std::make_pair("border-top-color", "black"));
59 styles_.insert(std::make_pair("border-right-color", "black"));
60 styles_.insert(std::make_pair("border-bottom-color", "black"));
61 styles_.insert(std::make_pair("background-size", "auto"));
62 styles_.insert(std::make_pair("background-repeat", "repeat"));
63 styles_.insert(std::make_pair("background-position", "0px 0px"));
64 styles_.insert(std::make_pair("opacity", "1"));
65 styles_.insert(std::make_pair("display", "flex"));
66 styles_.insert(std::make_pair("visibility", "visible"));
67 styles_.insert(std::make_pair("flex-grow", "0"));
68 styles_.insert(std::make_pair("flex-shrink", "1"));
69 styles_.insert(std::make_pair("position", "relative"));
70 }
71
SetAllAttr(std::unique_ptr<JsonValue> & jsonNode,const char * attrsTag)72 void InspectNode::SetAllAttr(std::unique_ptr<JsonValue>& jsonNode, const char* attrsTag)
73 {
74 auto attrJsonNode = JsonUtil::Create(true);
75 for (auto iter = attrs_.begin(); iter != attrs_.end(); iter++) {
76 attrJsonNode->Put(iter->first.c_str(), iter->second.c_str());
77 }
78 jsonNode->Put(attrsTag, attrJsonNode);
79 }
80
SetAllStyle(std::unique_ptr<JsonValue> & jsonNode,const char * stylesTag)81 void InspectNode::SetAllStyle(std::unique_ptr<JsonValue>& jsonNode, const char* stylesTag)
82 {
83 auto styleJsonNode = JsonUtil::Create(true);
84 for (auto iter = styles_.begin(); iter != styles_.end(); iter++) {
85 styleJsonNode->Put(iter->first.c_str(), iter->second.c_str());
86 }
87 jsonNode->Put(stylesTag, styleJsonNode);
88 }
89 } // namespace OHOS::Ace::Framework
90