1 /*
2  * Copyright (c) 2023 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 #include "core/interfaces/native/node/counter_modifier.h"
16 
17 #include "core/components/common/layout/constants.h"
18 #include "core/components_ng/base/frame_node.h"
19 #include "core/components_ng/base/view_abstract.h"
20 #include "core/components_ng/pattern/counter/counter_model_ng.h"
21 #include "core/pipeline/base/element_register.h"
22 
23 namespace OHOS::Ace::NG {
SetEnableInc(ArkUINodeHandle node,ArkUI_Bool enableInc)24 void SetEnableInc(ArkUINodeHandle node, ArkUI_Bool enableInc)
25 {
26     auto* frameNode = reinterpret_cast<FrameNode*>(node);
27     CHECK_NULL_VOID(frameNode);
28     CounterModelNG::SetEnableInc(frameNode, enableInc);
29 }
ResetEnableInc(ArkUINodeHandle node)30 void ResetEnableInc(ArkUINodeHandle node)
31 {
32     auto* frameNode = reinterpret_cast<FrameNode*>(node);
33     CHECK_NULL_VOID(frameNode);
34     CounterModelNG::SetEnableInc(frameNode, true);
35 }
SetEnableDec(ArkUINodeHandle node,ArkUI_Bool enableDec)36 void SetEnableDec(ArkUINodeHandle node, ArkUI_Bool enableDec)
37 {
38     auto* frameNode = reinterpret_cast<FrameNode*>(node);
39     CHECK_NULL_VOID(frameNode);
40     CounterModelNG::SetEnableDec(frameNode, enableDec);
41 }
ResetEnableDec(ArkUINodeHandle node)42 void ResetEnableDec(ArkUINodeHandle node)
43 {
44     auto* frameNode = reinterpret_cast<FrameNode*>(node);
45     CHECK_NULL_VOID(frameNode);
46     CounterModelNG::SetEnableDec(frameNode, true);
47 }
48 
SetCounterHeight(ArkUINodeHandle node,ArkUI_Float32 value,ArkUI_Int32 unit)49 void SetCounterHeight(ArkUINodeHandle node, ArkUI_Float32 value, ArkUI_Int32 unit)
50 {
51     auto* frameNode = reinterpret_cast<FrameNode*>(node);
52     CHECK_NULL_VOID(frameNode);
53     Dimension height = Dimension(value, static_cast<OHOS::Ace::DimensionUnit>(unit));
54     CounterModelNG::SetHeight(frameNode, height);
55 }
ResetCounterHeight(ArkUINodeHandle node)56 void ResetCounterHeight(ArkUINodeHandle node) {}
SetCounterWidth(ArkUINodeHandle node,ArkUI_Float32 value,ArkUI_Int32 unit)57 void SetCounterWidth(ArkUINodeHandle node, ArkUI_Float32 value, ArkUI_Int32 unit)
58 {
59     auto* frameNode = reinterpret_cast<FrameNode*>(node);
60     CHECK_NULL_VOID(frameNode);
61     Dimension width = Dimension(value, static_cast<OHOS::Ace::DimensionUnit>(unit));
62     CounterModelNG::SetWidth(frameNode, width);
63 }
64 
ResetCounterWidth(ArkUINodeHandle node)65 void ResetCounterWidth(ArkUINodeHandle node) {}
66 
SetCounterBackgroundColor(ArkUINodeHandle node,ArkUI_Uint32 color)67 void SetCounterBackgroundColor(ArkUINodeHandle node, ArkUI_Uint32 color)
68 {
69     auto* frameNode = reinterpret_cast<FrameNode*>(node);
70     CHECK_NULL_VOID(frameNode);
71     CounterModelNG::SetBackgroundColor(frameNode, Color(color));
72 }
ResetCounterBackgroundColor(ArkUINodeHandle node)73 void ResetCounterBackgroundColor(ArkUINodeHandle node) {}
74 
75 namespace NodeModifier {
GetCounterModifier()76 const ArkUICounterModifier* GetCounterModifier()
77 {
78     static const ArkUICounterModifier modifier = { SetEnableInc, ResetEnableInc, SetEnableDec, ResetEnableDec,
79         SetCounterHeight, ResetCounterHeight, SetCounterWidth, ResetCounterWidth, SetCounterBackgroundColor,
80         ResetCounterBackgroundColor };
81 
82     return &modifier;
83 }
84 
GetCJUICounterModifier()85 const CJUICounterModifier* GetCJUICounterModifier()
86 {
87     static const CJUICounterModifier modifier = { SetEnableInc, ResetEnableInc, SetEnableDec, ResetEnableDec,
88         SetCounterHeight, ResetCounterHeight, SetCounterWidth, ResetCounterWidth, SetCounterBackgroundColor,
89         ResetCounterBackgroundColor };
90 
91     return &modifier;
92 }
93 }
94 } // namespace OHOS::Ace::NG
95