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