• 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 
16 #pragma once
17 
18 #include <cstdint>
19 
20 #include "native_node.h"
21 #include "native_type.h"
22 
23 #include "frameworks/core/interfaces/arkoala/arkoala_api.h"
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 struct ArkUI_Node {
30     ArkUI_NodeType type;
31     ArkUINodeHandle uiNodeHandle = nullptr;
32 };
33 
34 #ifdef __cplusplus
35 };
36 #endif
37 
38 struct ArkUIFullNodeAPI;
39 
40 namespace OHOS::Ace::NodeModel {
41 
42 ArkUIFullNodeAPI* GetFullImpl();
43 ArkUI_NodeHandle CreateNode(ArkUI_NodeType type);
44 void DisposeNode(ArkUI_NodeHandle nativePtr);
45 
46 void AddChild(ArkUI_NodeHandle parentNode, ArkUI_NodeHandle childNode);
47 void RemoveChild(ArkUI_NodeHandle parentNode, ArkUI_NodeHandle childNode);
48 void InsertChildAfter(ArkUI_NodeHandle parentNode, ArkUI_NodeHandle childNode, ArkUI_NodeHandle siblingNode);
49 
50 // deprecated.
51 [[deprecated]] void SetAttribute(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const char* value);
52 
53 int32_t SetAttribute(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* value);
54 const ArkUI_AttributeItem* GetAttribute(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
55 void ResetAttribute(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
56 
57 int32_t RegisterNodeEvent(ArkUI_NodeHandle nodePtr, ArkUI_NodeEventType eventType, int32_t eventId);
58 void UnregisterNodeEvent(ArkUI_NodeHandle nodePtr, ArkUI_NodeEventType eventType);
59 void RegisterOnEvent(void (*eventReceiver)(ArkUI_NodeEvent* event));
60 void UnregisterOnEvent();
61 int32_t CheckEvent(ArkUI_NodeEvent* event);
62 
63 void ApplyModifierFinish(ArkUI_NodeHandle nodePtr);
64 void MarkDirty(ArkUI_NodeHandle nodePtr, ArkUI_NodeDirtyFlag dirtyFlag);
65 
66 }; // namespace OHOS::Ace::NodeModel
67