1 /* 2 * Copyright (c) 2024 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 #ifndef OHOS_ACE_FRAMEWORK_CJ_LIST_FFI_H 17 #define OHOS_ACE_FRAMEWORK_CJ_LIST_FFI_H 18 19 #include <cstdint> 20 21 #include "bridge/cj_frontend/interfaces/cj_ffi/cj_macro.h" 22 23 extern "C" { 24 struct DividerParams { 25 double width; 26 int32_t widthUnit; 27 uint32_t color; 28 double startMargin; 29 int32_t startMarginUnit; 30 double endMargin; 31 int32_t endMarginUnit; 32 }; 33 34 struct FfiOffsetRemain { 35 double dxRemain; 36 double dyRemain; 37 }; 38 39 CJ_EXPORT void FfiOHOSAceFrameworkListCreate(double space, int32_t unit, int32_t initialIndex, int64_t scrollerID); 40 CJ_EXPORT void FfiOHOSAceFrameworkListSetWidth(double width, int32_t unit); 41 CJ_EXPORT void FfiOHOSAceFrameworkListSetHeight(double height, int32_t unit); 42 CJ_EXPORT void FfiOHOSAceFrameworkListSetDirection(int32_t direction); 43 CJ_EXPORT void FfiOHOSAceFrameworkListSetDivider(DividerParams params); 44 CJ_EXPORT void FfiOHOSAceFrameworkListSetEditMode(bool flag); 45 CJ_EXPORT void FfiOHOSAceFrameworkListSetEdgeEffect(int32_t edgeEffect); 46 CJ_EXPORT void FfiOHOSAceFrameworkListSetCachedCount(int32_t cachedCount); 47 CJ_EXPORT void FfiOHOSAceFrameworkListSetScrollBar(int32_t barState); 48 CJ_EXPORT void FfiOHOSAceFrameworkListSetChainAnimation(bool flag); 49 CJ_EXPORT void FfiOHOSAceFrameworkListSetMultiSelectable(bool flag); 50 CJ_EXPORT void FfiOHOSAceFrameworkListSetLanes(int32_t lanes); 51 CJ_EXPORT void FfiOHOSAceFrameworkListSetLanesByLengthConstrain( 52 double min, int32_t minUnit, double max, int32_t maxUnit); 53 CJ_EXPORT void FfiOHOSAceFrameworkListSetAlignListItem(int32_t align); 54 CJ_EXPORT void FfiOHOSAceFrameworkListSetSticky(int32_t style); 55 CJ_EXPORT void FfiOHOSAceFrameworkListSetNestedScroll(int32_t scrollForward, int32_t scrollBackward); 56 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnScrollFrameBegin(double (*callback)(double offset, int32_t state)); 57 CJ_EXPORT void FfiOHOSAceFrameworkListSetItemDeleteCallback(bool (*callback)(int32_t value)); 58 CJ_EXPORT void FfiOHOSAceFrameworkListSetScrollIndexCallback(void (*callback)(int32_t firstIndex, int32_t lastIndex)); 59 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnScrollCallback(void (*callback)(double offset, int32_t state)); 60 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnReachStartCallback(void (*callback)()); 61 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnReachEndCallback(void (*callback)()); 62 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnScrollStartCallback(void (*callback)()); 63 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnScrollStopCallback(void (*callback)()); 64 CJ_EXPORT void FfiOHOSAceFrameworkListSetOnScrollBeginCallback(FfiOffsetRemain (*callback)(double dx, double dy)); 65 } 66 67 #endif // OHOS_ACE_FRAMEWORK_CJ_LIST_FFI_H 68