• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/grid_item_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/pattern/grid/grid_item_model_ng.h"
20 #include "core/pipeline/base/element_register.h"
21 
22 namespace OHOS::Ace::NG {
23 
24 constexpr int32_t DEFAULT_GRID_ITEM_VALUE = 0;
25 
SetGridItemSelectable(ArkUINodeHandle node,ArkUI_Bool selectable)26 void SetGridItemSelectable(ArkUINodeHandle node, ArkUI_Bool selectable)
27 {
28     auto* frameNode = reinterpret_cast<FrameNode*>(node);
29     CHECK_NULL_VOID(frameNode);
30     GridItemModelNG::SetSelectable(frameNode, selectable);
31 }
32 
ResetGridItemSelectable(ArkUINodeHandle node)33 void ResetGridItemSelectable(ArkUINodeHandle node)
34 {
35     auto* frameNode = reinterpret_cast<FrameNode*>(node);
36     CHECK_NULL_VOID(frameNode);
37     GridItemModelNG::SetSelectable(frameNode, true);
38 }
39 
SetGridItemSelected(ArkUINodeHandle node,ArkUI_Bool selected)40 void SetGridItemSelected(ArkUINodeHandle node, ArkUI_Bool selected)
41 {
42     auto* frameNode = reinterpret_cast<FrameNode*>(node);
43     CHECK_NULL_VOID(frameNode);
44     GridItemModelNG::SetSelected(frameNode, selected);
45 }
46 
ResetGridItemSelected(ArkUINodeHandle node)47 void ResetGridItemSelected(ArkUINodeHandle node)
48 {
49     auto* frameNode = reinterpret_cast<FrameNode*>(node);
50     CHECK_NULL_VOID(frameNode);
51     GridItemModelNG::SetSelected(frameNode, false);
52 }
53 
SetGridItemRowStart(ArkUINodeHandle node,int32_t rowStart)54 void SetGridItemRowStart(ArkUINodeHandle node, int32_t rowStart)
55 {
56     auto* frameNode = reinterpret_cast<FrameNode*>(node);
57     CHECK_NULL_VOID(frameNode);
58     GridItemModelNG::SetRowStart(frameNode, rowStart);
59 }
60 
ResetGridItemRowStart(ArkUINodeHandle node)61 void ResetGridItemRowStart(ArkUINodeHandle node)
62 {
63     auto* frameNode = reinterpret_cast<FrameNode*>(node);
64     CHECK_NULL_VOID(frameNode);
65     GridItemModelNG::SetRowStart(frameNode, DEFAULT_GRID_ITEM_VALUE);
66 }
67 
SetGridItemRowEnd(ArkUINodeHandle node,int32_t rowEnd)68 void SetGridItemRowEnd(ArkUINodeHandle node, int32_t rowEnd)
69 {
70     auto* frameNode = reinterpret_cast<FrameNode*>(node);
71     CHECK_NULL_VOID(frameNode);
72     GridItemModelNG::SetRowEnd(frameNode, rowEnd);
73 }
74 
ResetGridItemRowEnd(ArkUINodeHandle node)75 void ResetGridItemRowEnd(ArkUINodeHandle node)
76 {
77     auto* frameNode = reinterpret_cast<FrameNode*>(node);
78     CHECK_NULL_VOID(frameNode);
79     GridItemModelNG::SetRowEnd(frameNode, DEFAULT_GRID_ITEM_VALUE);
80 }
81 
SetGridItemColumnStart(ArkUINodeHandle node,int32_t columnStart)82 void SetGridItemColumnStart(ArkUINodeHandle node, int32_t columnStart)
83 {
84     auto* frameNode = reinterpret_cast<FrameNode*>(node);
85     CHECK_NULL_VOID(frameNode);
86     GridItemModelNG::SetColumnStart(frameNode, columnStart);
87 }
88 
ResetGridItemColumnStart(ArkUINodeHandle node)89 void ResetGridItemColumnStart(ArkUINodeHandle node)
90 {
91     auto* frameNode = reinterpret_cast<FrameNode*>(node);
92     CHECK_NULL_VOID(frameNode);
93     GridItemModelNG::SetColumnStart(frameNode, DEFAULT_GRID_ITEM_VALUE);
94 }
95 
SetGridItemColumnEnd(ArkUINodeHandle node,int32_t columnEnd)96 void SetGridItemColumnEnd(ArkUINodeHandle node, int32_t columnEnd)
97 {
98     auto* frameNode = reinterpret_cast<FrameNode*>(node);
99     CHECK_NULL_VOID(frameNode);
100     GridItemModelNG::SetColumnEnd(frameNode, columnEnd);
101 }
102 
ResetGridItemColumnEnd(ArkUINodeHandle node)103 void ResetGridItemColumnEnd(ArkUINodeHandle node)
104 {
105     auto* frameNode = reinterpret_cast<FrameNode*>(node);
106     CHECK_NULL_VOID(frameNode);
107     GridItemModelNG::SetColumnEnd(frameNode, DEFAULT_GRID_ITEM_VALUE);
108 }
109 
110 namespace NodeModifier {
GetGridItemModifier()111 const ArkUIGridItemModifier* GetGridItemModifier()
112 {
113     static const ArkUIGridItemModifier modifier = { SetGridItemSelectable, ResetGridItemSelectable,
114         SetGridItemSelected, ResetGridItemSelected, SetGridItemRowStart, ResetGridItemRowStart,
115         SetGridItemRowEnd, ResetGridItemRowEnd, SetGridItemColumnStart, ResetGridItemColumnStart,
116         SetGridItemColumnEnd, ResetGridItemColumnEnd };
117     return &modifier;
118 }
119 
GetCJUIGridItemModifier()120 const CJUIGridItemModifier* GetCJUIGridItemModifier()
121 {
122     static const CJUIGridItemModifier modifier = { SetGridItemSelectable, ResetGridItemSelectable,
123         SetGridItemSelected, ResetGridItemSelected, SetGridItemRowStart, ResetGridItemRowStart,
124         SetGridItemRowEnd, ResetGridItemRowEnd, SetGridItemColumnStart, ResetGridItemColumnStart,
125         SetGridItemColumnEnd, ResetGridItemColumnEnd };
126     return &modifier;
127 }
128 }
129 } // namespace OHOS::Ace::NG