• 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/api.h"
16 #include "bridge/declarative_frontend/engine/jsi/nativeModule/arkts_native_grid_item_bridge.h"
17 
18 namespace OHOS::Ace::NG {
19 constexpr int32_t NUM_0 = 0;
20 constexpr int32_t NUM_1 = 1;
21 
SetGridItemSelectable(ArkUIRuntimeCallInfo * runtimeCallInfo)22 ArkUINativeModuleValue GridItemBridge::SetGridItemSelectable(ArkUIRuntimeCallInfo *runtimeCallInfo)
23 {
24     EcmaVM* vm = runtimeCallInfo->GetVM();
25     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
26     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
27     Local<JSValueRef> selectabledArg = runtimeCallInfo->GetCallArgRef(NUM_1); // selectabled value
28     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
29     if (selectabledArg->IsBoolean()) {
30         bool selectable = selectabledArg->ToBoolean(vm)->Value();
31         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemSelectable(nativeNode, selectable);
32     } else {
33         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemSelectable(nativeNode);
34     }
35     return panda::JSValueRef::Undefined(vm);
36 }
37 
ResetGridItemSelectable(ArkUIRuntimeCallInfo * runtimeCallInfo)38 ArkUINativeModuleValue GridItemBridge::ResetGridItemSelectable(ArkUIRuntimeCallInfo *runtimeCallInfo)
39 {
40     EcmaVM *vm = runtimeCallInfo->GetVM();
41     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
42     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
43     void *nativeNode = firstArg->ToNativePointer(vm)->Value();
44     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemSelectable(nativeNode);
45     return panda::JSValueRef::Undefined(vm);
46 }
47 
SetGridItemSelected(ArkUIRuntimeCallInfo * runtimeCallInfo)48 ArkUINativeModuleValue GridItemBridge::SetGridItemSelected(ArkUIRuntimeCallInfo* runtimeCallInfo)
49 {
50     EcmaVM* vm = runtimeCallInfo->GetVM();
51     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
52     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
53     Local<JSValueRef> selectedArg = runtimeCallInfo->GetCallArgRef(NUM_1); // selected value
54     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
55     if (selectedArg->IsBoolean()) {
56         bool selected = selectedArg->ToBoolean(vm)->Value();
57         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemSelected(nativeNode, selected);
58     } else {
59         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemSelected(nativeNode);
60     }
61 
62     return panda::JSValueRef::Undefined(vm);
63 }
ResetGridItemSelected(ArkUIRuntimeCallInfo * runtimeCallInfo)64 ArkUINativeModuleValue GridItemBridge::ResetGridItemSelected(ArkUIRuntimeCallInfo* runtimeCallInfo)
65 {
66     EcmaVM *vm = runtimeCallInfo->GetVM();
67     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
68     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
69     void *nativeNode = firstArg->ToNativePointer(vm)->Value();
70     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemSelected(nativeNode);
71     return panda::JSValueRef::Undefined(vm);
72 }
73 
SetGridItemRowStart(ArkUIRuntimeCallInfo * runtimeCallInfo)74 ArkUINativeModuleValue GridItemBridge::SetGridItemRowStart(ArkUIRuntimeCallInfo* runtimeCallInfo)
75 {
76     EcmaVM* vm = runtimeCallInfo->GetVM();
77     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
78     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
79     Local<JSValueRef> rowStartArg = runtimeCallInfo->GetCallArgRef(NUM_1); // rowStart value
80     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
81     if (rowStartArg->IsNumber()) {
82         int32_t stars = rowStartArg->Int32Value(vm);
83         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemRowStart(nativeNode, stars);
84     } else {
85         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemRowStart(nativeNode);
86     }
87     return panda::JSValueRef::Undefined(vm);
88 }
89 
ResetGridItemRowStart(ArkUIRuntimeCallInfo * runtimeCallInfo)90 ArkUINativeModuleValue GridItemBridge::ResetGridItemRowStart(ArkUIRuntimeCallInfo* runtimeCallInfo)
91 {
92     EcmaVM* vm = runtimeCallInfo->GetVM();
93     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
94     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
95     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
96     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemRowStart(nativeNode);
97     return panda::JSValueRef::Undefined(vm);
98 }
99 
SetGridItemRowEnd(ArkUIRuntimeCallInfo * runtimeCallInfo)100 ArkUINativeModuleValue GridItemBridge::SetGridItemRowEnd(ArkUIRuntimeCallInfo* runtimeCallInfo)
101 {
102     EcmaVM* vm = runtimeCallInfo->GetVM();
103     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
104     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
105     Local<JSValueRef> rowEndArg = runtimeCallInfo->GetCallArgRef(NUM_1); // rowEnd value
106     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
107     if (rowEndArg->IsNumber()) {
108         int32_t end = rowEndArg->Int32Value(vm);
109         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemRowEnd(nativeNode, end);
110     } else {
111         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemRowEnd(nativeNode);
112     }
113     return panda::JSValueRef::Undefined(vm);
114 }
115 
ResetGridItemRowEnd(ArkUIRuntimeCallInfo * runtimeCallInfo)116 ArkUINativeModuleValue GridItemBridge::ResetGridItemRowEnd(ArkUIRuntimeCallInfo* runtimeCallInfo)
117 {
118     EcmaVM* vm = runtimeCallInfo->GetVM();
119     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
120     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
121     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
122     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemRowEnd(nativeNode);
123     return panda::JSValueRef::Undefined(vm);
124 }
125 
SetGridItemColumnStart(ArkUIRuntimeCallInfo * runtimeCallInfo)126 ArkUINativeModuleValue GridItemBridge::SetGridItemColumnStart(ArkUIRuntimeCallInfo* runtimeCallInfo)
127 {
128     EcmaVM* vm = runtimeCallInfo->GetVM();
129     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
130     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
131     Local<JSValueRef> columnStartArg = runtimeCallInfo->GetCallArgRef(NUM_1); // columnStart value
132     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
133     if (columnStartArg->IsNumber()) {
134         int32_t stars = columnStartArg->Int32Value(vm);
135         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemColumnStart(nativeNode, stars);
136     } else {
137         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemColumnStart(nativeNode);
138     }
139     return panda::JSValueRef::Undefined(vm);
140 }
141 
ResetGridItemColumnStart(ArkUIRuntimeCallInfo * runtimeCallInfo)142 ArkUINativeModuleValue GridItemBridge::ResetGridItemColumnStart(ArkUIRuntimeCallInfo* runtimeCallInfo)
143 {
144     EcmaVM* vm = runtimeCallInfo->GetVM();
145     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
146     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
147     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
148     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemColumnStart(nativeNode);
149     return panda::JSValueRef::Undefined(vm);
150 }
151 
SetGridItemColumnEnd(ArkUIRuntimeCallInfo * runtimeCallInfo)152 ArkUINativeModuleValue GridItemBridge::SetGridItemColumnEnd(ArkUIRuntimeCallInfo* runtimeCallInfo)
153 {
154     EcmaVM* vm = runtimeCallInfo->GetVM();
155     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
156     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
157     Local<JSValueRef> columnEndArg = runtimeCallInfo->GetCallArgRef(NUM_1); // columnEnd value
158     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
159     if (columnEndArg->IsNumber()) {
160         int32_t columnEnd = columnEndArg->Int32Value(vm);
161         GetArkUIInternalNodeAPI()->GetGridItemModifier().SetGridItemColumnEnd(nativeNode, columnEnd);
162     } else {
163         GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemColumnEnd(nativeNode);
164     }
165     return panda::JSValueRef::Undefined(vm);
166 }
167 
ResetGridItemColumnEnd(ArkUIRuntimeCallInfo * runtimeCallInfo)168 ArkUINativeModuleValue GridItemBridge::ResetGridItemColumnEnd(ArkUIRuntimeCallInfo* runtimeCallInfo)
169 {
170     EcmaVM* vm = runtimeCallInfo->GetVM();
171     CHECK_NULL_RETURN(vm, panda::NativePointerRef::New(vm, nullptr));
172     Local<JSValueRef> firstArg = runtimeCallInfo->GetCallArgRef(NUM_0);
173     void* nativeNode = firstArg->ToNativePointer(vm)->Value();
174     GetArkUIInternalNodeAPI()->GetGridItemModifier().ResetGridItemColumnEnd(nativeNode);
175     return panda::JSValueRef::Undefined(vm);
176 }
177 
178 } // namespace OHOS::Ace::NG