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/** 17 * @addtogroup ArkUI_NativeModule 18 * @{ 19 * 20 * @brief Provides UI capabilities of ArkUI on the native side, such as UI component creation and destruction, 21 * tree node operations, attribute setting, and event listening. 22 * 23 * @since 12 24 */ 25 26/** 27 * @file drawable_descriptor.h 28 * 29 * @brief Defines theNativeDrawableDescriptor for the native module. 30 * 31 * @library libace_ndk.z.so 32 * @syscap SystemCapability.ArkUI.ArkUI.Full 33 * @kit ArkUI 34 * @since 12 35 */ 36 37#ifndef ARKUI_NATIVE_DRAWABLE_DESCRIPTOR_H 38#define ARKUI_NATIVE_DRAWABLE_DESCRIPTOR_H 39 40#include <stdint.h> 41 42#ifdef __cplusplus 43extern "C" { 44#endif 45 46/** 47 * @brief Defines the drawable descriptor. 48 * 49 * @since 12 50 */ 51typedef struct ArkUI_DrawableDescriptor ArkUI_DrawableDescriptor; 52 53/** 54 * @brief Introduces the native pixel map information defined by Image Kit. 55 * 56 * @since 12 57 */ 58struct OH_PixelmapNative; 59 60/** 61 * @brief Defines the pointer to OH_PixelmapNative. 62 * 63 * @since 12 64 */ 65typedef struct OH_PixelmapNative* OH_PixelmapNativeHandle; 66 67/** 68 * @brief Creates a DrawableDescriptor from a Pixelmap. 69 * 70 * @param pixelMap Indicates the pointer to a Pixelmap 71 * @return Returns the pointer to the drawableDescriptor. 72 * @since 12 73*/ 74ArkUI_DrawableDescriptor* OH_ArkUI_DrawableDescriptor_CreateFromPixelMap(OH_PixelmapNativeHandle pixelMap); 75 76/** 77 * @brief Creates a DrawableDescriptor from a Pixelmap array. 78 * 79 * @param array Indicates the pointer to a Pixelmap array. 80 * @param size Indicates the size of the Pixelmap array. 81 * @return Returns the pointer to the drawableDescriptor. 82 * @since 12 83*/ 84ArkUI_DrawableDescriptor* OH_ArkUI_DrawableDescriptor_CreateFromAnimatedPixelMap( 85 OH_PixelmapNativeHandle* array, int32_t size); 86 87/** 88 * @brief Destroys the pointer to the drawableDescriptor. 89 * 90 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 91 * @since 12 92*/ 93void OH_ArkUI_DrawableDescriptor_Dispose(ArkUI_DrawableDescriptor* drawableDescriptor); 94 95/** 96 * @brief Obtains the Pixelmap object. 97 * 98 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 99 * @return Returns the pointer to the PixelMap. 100 * @since 12 101*/ 102OH_PixelmapNativeHandle OH_ArkUI_DrawableDescriptor_GetStaticPixelMap(ArkUI_DrawableDescriptor* drawableDescriptor); 103 104/** 105 * @brief Obtains the Pixelmap array used to play the animation. 106 * 107 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 108 * @return Returns the pointer to the PixelMap array. 109 * @since 12 110*/ 111OH_PixelmapNativeHandle* OH_ArkUI_DrawableDescriptor_GetAnimatedPixelMapArray( 112 ArkUI_DrawableDescriptor* drawableDescriptor); 113 114/** 115 * @brief Obtains the size of the Pixelmap array used to play the animation. 116 * 117 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 118 * @return Returns the size of the Pixelmap array. 119 * @since 12 120*/ 121int32_t OH_ArkUI_DrawableDescriptor_GetAnimatedPixelMapArraySize(ArkUI_DrawableDescriptor* drawableDescriptor); 122 123/** 124 * @brief Sets the total playback duration. 125 * 126 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 127 * @param duration Indicates the total playback duration. The unit is millisecond. 128 * @since 12 129*/ 130void OH_ArkUI_DrawableDescriptor_SetAnimationDuration(ArkUI_DrawableDescriptor* drawableDescriptor, int32_t duration); 131 132/** 133 * @brief Obtains the total playback duration. 134 * 135 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 136 * @return Return the total playback duration. The unit is millisecond. 137 * @since 12 138*/ 139int32_t OH_ArkUI_DrawableDescriptor_GetAnimationDuration(ArkUI_DrawableDescriptor* drawableDescriptor); 140 141/** 142 * @brief Sets the number of playback times. 143 * 144 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 145 * @param iterations Indicates the number of playback times. 146 * @since 12 147*/ 148void OH_ArkUI_DrawableDescriptor_SetAnimationIteration( 149 ArkUI_DrawableDescriptor* drawableDescriptor, int32_t iteration); 150 151/** 152 * @brief Obtains the number of playback times. 153 * 154 * @param drawableDescriptor Indicates the pointer to the drawableDescriptor. 155 * @return Returns the number of playback times. 156 * @since 12 157*/ 158int32_t OH_ArkUI_DrawableDescriptor_GetAnimationIteration(ArkUI_DrawableDescriptor* drawableDescriptor); 159#ifdef __cplusplus 160}; 161#endif 162 163#endif // ARKUI_NATIVE_DRAWABLE_DESCRIPTOR_H 164/** @} */ 165