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