arkui_sys/drag_and_drop/
drag_and_drop_ffi.rs

1// automatically generated by rust-bindgen 0.71.1
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6use crate::native_type::*;
7pub use ohos_sys_opaque_types::OH_PixelmapNative;
8
9#[cfg(feature = "api-12")]
10#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
11impl ArkUI_DragResult {
12    /// The drag and drop operation succeeded.
13    pub const ARKUI_DRAG_RESULT_SUCCESSFUL: ArkUI_DragResult = ArkUI_DragResult(0);
14}
15#[cfg(feature = "api-12")]
16#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
17impl ArkUI_DragResult {
18    /// The drag and drop operation failed.
19    pub const ARKUI_DRAG_RESULT_FAILED: ArkUI_DragResult = ArkUI_DragResult(1);
20}
21#[cfg(feature = "api-12")]
22#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
23impl ArkUI_DragResult {
24    /// The drag and drop operation was canceled.
25    pub const ARKUI_DRAG_RESULT_CANCELED: ArkUI_DragResult = ArkUI_DragResult(2);
26}
27#[repr(transparent)]
28/// Defines an enum for drag results, which are set by the data receiver and transferred by the system to the
29/// drag source so that the drag source is aware of the data processing result of the receiver.
30///
31///
32/// Available since API-level: 12
33#[cfg(feature = "api-12")]
34#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
35#[derive(Clone, Hash, PartialEq, Eq)]
36pub struct ArkUI_DragResult(pub ::core::ffi::c_uint);
37#[cfg(feature = "api-12")]
38#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
39impl ArkUI_DropOperation {
40    /// Copy.
41    pub const ARKUI_DROP_OPERATION_COPY: ArkUI_DropOperation = ArkUI_DropOperation(0);
42}
43#[cfg(feature = "api-12")]
44#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
45impl ArkUI_DropOperation {
46    /// Cut.
47    pub const ARKUI_DROP_OPERATION_MOVE: ArkUI_DropOperation = ArkUI_DropOperation(1);
48}
49#[repr(transparent)]
50/// Defines an enum for data processing modes used when data is dropped, which affects the display of the badge.
51///
52///
53/// Available since API-level: 12
54#[cfg(feature = "api-12")]
55#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
56#[derive(Clone, Hash, PartialEq, Eq)]
57pub struct ArkUI_DropOperation(pub ::core::ffi::c_uint);
58#[cfg(feature = "api-12")]
59#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
60impl ArkUI_PreDragStatus {
61    /// Unknown.
62    pub const ARKUI_PRE_DRAG_STATUS_UNKNOWN: ArkUI_PreDragStatus = ArkUI_PreDragStatus(-1);
63}
64#[cfg(feature = "api-12")]
65#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
66impl ArkUI_PreDragStatus {
67    /// A drag gesture is being detected.
68    pub const ARKUI_PRE_DRAG_STATUS_ACTION_DETECTING: ArkUI_PreDragStatus = ArkUI_PreDragStatus(0);
69}
70#[cfg(feature = "api-12")]
71#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
72impl ArkUI_PreDragStatus {
73    /// The component is ready to be dragged.
74    pub const ARKUI_PRE_DRAG_STATUS_READY_TO_TRIGGER_DRAG: ArkUI_PreDragStatus =
75        ArkUI_PreDragStatus(1);
76}
77#[cfg(feature = "api-12")]
78#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
79impl ArkUI_PreDragStatus {
80    /// A lift animation is started.
81    pub const ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_STARTED: ArkUI_PreDragStatus =
82        ArkUI_PreDragStatus(2);
83}
84#[cfg(feature = "api-12")]
85#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
86impl ArkUI_PreDragStatus {
87    /// A lift animation is finished.
88    pub const ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_FINISHED: ArkUI_PreDragStatus =
89        ArkUI_PreDragStatus(3);
90}
91#[cfg(feature = "api-12")]
92#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
93impl ArkUI_PreDragStatus {
94    /// A drop animation is started.
95    pub const ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_STARTED: ArkUI_PreDragStatus =
96        ArkUI_PreDragStatus(4);
97}
98#[cfg(feature = "api-12")]
99#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
100impl ArkUI_PreDragStatus {
101    /// A drop animation is finished.
102    pub const ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_FINISHED: ArkUI_PreDragStatus =
103        ArkUI_PreDragStatus(5);
104}
105#[cfg(feature = "api-12")]
106#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
107impl ArkUI_PreDragStatus {
108    /// A drop animation is terminated.
109    pub const ARKUI_PRE_DRAG_STATUS_CANCELED_BEFORE_DRAG: ArkUI_PreDragStatus =
110        ArkUI_PreDragStatus(6);
111}
112#[repr(transparent)]
113/// Defines an enum for interaction states prior to a drop and drop operation.
114///
115///
116/// Available since API-level: 12
117#[cfg(feature = "api-12")]
118#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
119#[derive(Clone, Hash, PartialEq, Eq)]
120pub struct ArkUI_PreDragStatus(pub ::core::ffi::c_int);
121#[cfg(feature = "api-12")]
122#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
123impl ArkUI_DragPreviewScaleMode {
124    /// The system automatically changes the position of the dragged point based on the scenario and
125    /// scales the drag preview based on set rules.
126    pub const ARKUI_DRAG_PREVIEW_SCALE_AUTO: ArkUI_DragPreviewScaleMode =
127        ArkUI_DragPreviewScaleMode(0);
128}
129#[cfg(feature = "api-12")]
130#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
131impl ArkUI_DragPreviewScaleMode {
132    /// The system does not scale the drag preview.
133    pub const ARKUI_DRAG_PREVIEW_SCALE_DISABLED: ArkUI_DragPreviewScaleMode =
134        ArkUI_DragPreviewScaleMode(1);
135}
136#[repr(transparent)]
137/// Defines an enum for drag preview scale modes.
138///
139///
140/// Available since API-level: 12
141#[cfg(feature = "api-12")]
142#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
143#[derive(Clone, Hash, PartialEq, Eq)]
144pub struct ArkUI_DragPreviewScaleMode(pub ::core::ffi::c_uint);
145#[cfg(feature = "api-12")]
146#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
147impl ArkUI_DragStatus {
148    /// Unknown.
149    pub const ARKUI_DRAG_STATUS_UNKNOWN: ArkUI_DragStatus = ArkUI_DragStatus(-1);
150}
151#[cfg(feature = "api-12")]
152#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
153impl ArkUI_DragStatus {
154    /// Started.
155    pub const ARKUI_DRAG_STATUS_STARTED: ArkUI_DragStatus = ArkUI_DragStatus(0);
156}
157#[cfg(feature = "api-12")]
158#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
159impl ArkUI_DragStatus {
160    /// Ended.
161    pub const ARKUI_DRAG_STATUS_ENDED: ArkUI_DragStatus = ArkUI_DragStatus(1);
162}
163#[repr(transparent)]
164/// Defines an enum for drag states.
165///
166///
167/// Available since API-level: 12
168#[cfg(feature = "api-12")]
169#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
170#[derive(Clone, Hash, PartialEq, Eq)]
171pub struct ArkUI_DragStatus(pub ::core::ffi::c_int);
172#[repr(C)]
173pub struct ArkUI_NodeEvent {
174    _unused: [u8; 0],
175}
176#[repr(C)]
177pub struct ArkUI_DragEvent {
178    _unused: [u8; 0],
179}
180#[repr(C)]
181pub struct ArkUI_DragPreviewOption {
182    _unused: [u8; 0],
183}
184#[repr(C)]
185pub struct ArkUI_DragAction {
186    _unused: [u8; 0],
187}
188#[repr(C)]
189pub struct ArkUI_DragAndDropInfo {
190    _unused: [u8; 0],
191}
192extern "C" {
193    /// Obtains a <b>ArkUI_DragEvent</b> object from the specified <b>ArkUI_NodeEvent</b> object.
194    ///
195    /// # Arguments
196    ///
197    /// * `nodeEvent` - Indicates the pointer to an <b>ArkUI_NodeEvent</b> object.
198    ///
199    /// # Returns
200    ///
201    /// * Returns the pointer to an <b>ArkUI_DragEvent</b> object.
202    /// Returns <b>null</b> if the parameter passed in is invalid or is not a drag-related event.
203    ///
204    /// Available since API-level: 12
205    #[cfg(feature = "api-12")]
206    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
207    pub fn OH_ArkUI_NodeEvent_GetDragEvent(nodeEvent: *mut ArkUI_NodeEvent)
208        -> *mut ArkUI_DragEvent;
209    /// Obtains the interaction state prior to a drop and drop operation.
210    ///
211    /// # Arguments
212    ///
213    /// * `nodeEvent` - Indicates the pointer to an <b>ArkUI_NodeEvent</b> object.
214    ///
215    /// # Returns
216    ///
217    /// * Returns the interaction state prior to the drop and drop operation.
218    ///
219    /// Available since API-level: 12
220    #[cfg(feature = "api-12")]
221    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
222    pub fn OH_ArkUI_NodeEvent_GetPreDragStatus(
223        nodeEvent: *mut ArkUI_NodeEvent,
224    ) -> ArkUI_PreDragStatus;
225    /// Sets whether to disable the default drop animation.
226    /// The default drop animation is enabled by default and can be disabled to apply a custom drop animation.
227    ///
228    /// # Arguments
229    ///
230    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
231    ///
232    /// * `disable` - Indicates whether to disable the default drop animation.
233    /// The value <b>true</b> means to disable the default drop animation, and <b>false</b> means the opposite.
234    ///
235    /// # Returns
236    ///
237    /// * Returns the result code.
238    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
239    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
240    ///
241    /// Available since API-level: 12
242    #[cfg(feature = "api-12")]
243    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
244    pub fn OH_ArkUI_DragEvent_DisableDefaultDropAnimation(
245        event: *mut ArkUI_DragEvent,
246        disable: bool,
247    ) -> i32;
248    /// Sets the data processing mode.
249    ///
250    /// # Arguments
251    ///
252    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
253    ///
254    /// * `dropOperation` - Indicates the data processing mode.
255    ///
256    /// # Returns
257    ///
258    /// * Returns the result code.
259    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
260    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
261    ///
262    /// Available since API-level: 12
263    #[cfg(feature = "api-12")]
264    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
265    pub fn OH_ArkUI_DragEvent_SetSuggestedDropOperation(
266        event: *mut ArkUI_DragEvent,
267        dropOperation: ArkUI_DropOperation,
268    ) -> i32;
269    /// Sets the result for a drag event.
270    ///
271    /// # Arguments
272    ///
273    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
274    ///
275    /// * `result` - Indicates the drag result.
276    ///
277    /// # Returns
278    ///
279    /// * Returns the result code.
280    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
281    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
282    ///
283    /// Available since API-level: 12
284    #[cfg(feature = "api-12")]
285    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
286    pub fn OH_ArkUI_DragEvent_SetDragResult(
287        event: *mut ArkUI_DragEvent,
288        result: ArkUI_DragResult,
289    ) -> i32;
290    /// Obtains the number of drag data types from a drag event.
291    ///
292    /// # Arguments
293    ///
294    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
295    ///
296    /// * `count` - Indicates the number of drag data types returned.
297    ///
298    /// # Returns
299    ///
300    /// * Returns the result code.
301    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
302    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
303    ///
304    /// Available since API-level: 12
305    #[cfg(feature = "api-12")]
306    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
307    pub fn OH_ArkUI_DragEvent_GetDataTypeCount(event: *mut ArkUI_DragEvent, count: *mut i32)
308        -> i32;
309    /// Obtains the list of drag data types from a drag event.
310    ///
311    /// # Arguments
312    ///
313    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
314    ///
315    /// * `eventTypeArray` - Indicates the list of the drag data types. You need to create a string array first.
316    ///
317    /// * `length` - Indicates the total length of the list array. It must be greater than or equal to the number obtained
318    /// by using [`OH_ArkUI_DragEvent_GetDataTypeCount`].
319    ///
320    /// * `maxStrLen` - Indicates the max string length of drag data types.
321    ///
322    /// # Returns
323    ///
324    /// * Returns the result code.
325    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
326    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
327    /// Returns [`ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR`] if the giving buffer is not enough for string copy.
328    ///
329    /// Available since API-level: 12
330    #[cfg(feature = "api-12")]
331    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
332    pub fn OH_ArkUI_DragEvent_GetDataTypes(
333        event: *mut ArkUI_DragEvent,
334        eventTypeArray: *mut *mut ::core::ffi::c_char,
335        length: i32,
336        maxStrLen: i32,
337    ) -> i32;
338    /// Obtains the drag result from a drag event.
339    ///
340    /// # Arguments
341    ///
342    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
343    ///
344    /// * `result` - Indicates the drag result returned.
345    ///
346    /// # Returns
347    ///
348    /// * Returns the result code.
349    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
350    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
351    ///
352    /// Available since API-level: 12
353    #[cfg(feature = "api-12")]
354    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
355    pub fn OH_ArkUI_DragEvent_GetDragResult(
356        event: *mut ArkUI_DragEvent,
357        result: *mut ArkUI_DragResult,
358    ) -> i32;
359    /// Obtains the drop operation from a drag event.
360    ///
361    /// # Arguments
362    ///
363    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
364    ///
365    /// * `operation` - Indicates the drop operation which the data receiver set.
366    ///
367    /// # Returns
368    ///
369    /// * Returns the result code.
370    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
371    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
372    /// Possible causes: 1. The given parameters are null or the given event is not a valid DragEvent.
373    ///
374    /// Available since API-level: 12
375    #[cfg(feature = "api-12")]
376    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
377    pub fn OH_ArkUI_DragEvent_GetDropOperation(
378        event: *mut ArkUI_DragEvent,
379        operation: *mut ArkUI_DropOperation,
380    ) -> i32;
381    /// Obtains the X coordinate of the touch point for a drag preview from a drag event.
382    ///
383    /// # Arguments
384    ///
385    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
386    ///
387    /// # Returns
388    ///
389    /// * Returns the X coordinate of the touch point, in px.
390    /// Returns the default value <b>0</b> if the input parameter is invalid.
391    ///
392    /// Available since API-level: 12
393    #[cfg(feature = "api-12")]
394    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
395    pub fn OH_ArkUI_DragEvent_GetPreviewTouchPointX(event: *mut ArkUI_DragEvent) -> f32;
396    /// Obtains the Y coordinate of the touch point for a drag preview from a drag event.
397    ///
398    /// # Arguments
399    ///
400    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
401    ///
402    /// # Returns
403    ///
404    /// * Returns the Y coordinate of the touch point, in px.
405    /// Returns the default value <b>0</b> if the input parameter is invalid.
406    ///
407    /// Available since API-level: 12
408    #[cfg(feature = "api-12")]
409    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
410    pub fn OH_ArkUI_DragEvent_GetPreviewTouchPointY(event: *mut ArkUI_DragEvent) -> f32;
411    /// Obtains the width of a drag preview from a drag event.
412    ///
413    /// # Arguments
414    ///
415    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
416    ///
417    /// # Returns
418    ///
419    /// * Returns the width of the drag preview, in px.
420    /// Returns the default value <b>0</b> if the input parameter is invalid.
421    ///
422    /// Available since API-level: 12
423    #[cfg(feature = "api-12")]
424    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
425    pub fn OH_ArkUI_DragEvent_GetPreviewRectWidth(event: *mut ArkUI_DragEvent) -> f32;
426    /// Obtains the height of a drag preview from a drag event.
427    ///
428    /// # Arguments
429    ///
430    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
431    ///
432    /// # Returns
433    ///
434    /// * Returns the height of the drag preview, in px.
435    /// Returns the default value <b>0</b> if the input parameter is invalid.
436    ///
437    /// Available since API-level: 12
438    #[cfg(feature = "api-12")]
439    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
440    pub fn OH_ArkUI_DragEvent_GetPreviewRectHeight(event: *mut ArkUI_DragEvent) -> f32;
441    /// Obtains the X coordinate of the touch point relative to the window from a drag event.
442    ///
443    /// # Arguments
444    ///
445    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
446    ///
447    /// # Returns
448    ///
449    /// * Returns the X coordinate of the touch point relative to the window, in px.
450    /// Returns the default value <b>0</b> if the input parameter is invalid.
451    ///
452    /// Available since API-level: 12
453    #[cfg(feature = "api-12")]
454    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
455    pub fn OH_ArkUI_DragEvent_GetTouchPointXToWindow(event: *mut ArkUI_DragEvent) -> f32;
456    /// Obtains the Y coordinate of the touch point relative to the window from a drag event.
457    ///
458    /// # Arguments
459    ///
460    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
461    ///
462    /// # Returns
463    ///
464    /// * Returns the Y coordinate of the touch point relative to the window, in px.
465    /// Returns the default value <b>0</b> if the input parameter is invalid.
466    ///
467    /// Available since API-level: 12
468    #[cfg(feature = "api-12")]
469    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
470    pub fn OH_ArkUI_DragEvent_GetTouchPointYToWindow(event: *mut ArkUI_DragEvent) -> f32;
471    /// Obtains the X coordinate of the touch point relative to the current display from a drag event.
472    ///
473    /// # Arguments
474    ///
475    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
476    ///
477    /// # Returns
478    ///
479    /// * Returns the X coordinate of the touch point relative to the current display, in px.
480    /// Returns the default value <b>0</b> if the input parameter is invalid.
481    ///
482    /// Available since API-level: 12
483    #[cfg(feature = "api-12")]
484    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
485    pub fn OH_ArkUI_DragEvent_GetTouchPointXToDisplay(event: *mut ArkUI_DragEvent) -> f32;
486    /// Obtains the Y coordinate of the touch point relative to the current display from a drag event.
487    ///
488    /// # Arguments
489    ///
490    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
491    ///
492    /// # Returns
493    ///
494    /// * Returns the Y coordinate of the touch point relative to the current display, in px.
495    /// Returns the default value <b>0</b> if the input parameter is invalid.
496    ///
497    /// Available since API-level: 12
498    #[cfg(feature = "api-12")]
499    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
500    pub fn OH_ArkUI_DragEvent_GetTouchPointYToDisplay(event: *mut ArkUI_DragEvent) -> f32;
501    /// Obtains the dragging velocity along the x-axis.
502    ///
503    /// # Arguments
504    ///
505    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
506    ///
507    /// # Returns
508    ///
509    /// * Returns the dragging velocity along the x-axis, in px.
510    /// Returns the default value <b>0</b> if the input parameter is invalid.
511    ///
512    /// Available since API-level: 12
513    #[cfg(feature = "api-12")]
514    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
515    pub fn OH_ArkUI_DragEvent_GetVelocityX(event: *mut ArkUI_DragEvent) -> f32;
516    /// Obtains the dragging velocity along the y-axis.
517    ///
518    /// # Arguments
519    ///
520    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
521    ///
522    /// # Returns
523    ///
524    /// * Returns the dragging velocity along the y-axis, in px.
525    /// Returns the default value <b>0</b> if the input parameter is invalid.
526    ///
527    /// Available since API-level: 12
528    #[cfg(feature = "api-12")]
529    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
530    pub fn OH_ArkUI_DragEvent_GetVelocityY(event: *mut ArkUI_DragEvent) -> f32;
531    /// Obtains the dragging velocity along the main axis.
532    ///
533    /// # Arguments
534    ///
535    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
536    ///
537    /// # Returns
538    ///
539    /// * Returns the dragging velocity along the main axis, in px.
540    /// Returns the default value <b>0</b> if the input parameter is invalid.
541    ///
542    /// Available since API-level: 12
543    #[cfg(feature = "api-12")]
544    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
545    pub fn OH_ArkUI_DragEvent_GetVelocity(event: *mut ArkUI_DragEvent) -> f32;
546    /// Obtains the pressed status of modifier keys from a drag event.
547    ///
548    /// # Arguments
549    ///
550    /// * `event` - Indicates the pointer to an <b>ArkUI_DragEvent</b> object.
551    ///
552    /// * `keys` - Indicates the returned combination of modifier keys that are currently pressed.
553    /// The application can determine the pressed modifier keys through bitwise operations.
554    ///
555    /// # Returns
556    ///
557    /// * Returns the result code.
558    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
559    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
560    ///
561    /// Available since API-level: 12
562    #[cfg(feature = "api-12")]
563    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
564    pub fn OH_ArkUI_DragEvent_GetModifierKeyStates(
565        event: *mut ArkUI_DragEvent,
566        keys: *mut u64,
567    ) -> i32;
568    /// Sets whether to enable strict reporting on drag events.
569    /// This feature is disabled by default, and you are advised to enable it.
570    /// If this feature is disabled, the parent component is not notified when an item in it is dragged over its child
571    /// component. If this feature is enabled, the component is notified of the dragged item's leaving, and the chil
572    /// component to which the dragged item is dropped is notified of the item's entering. This configuration is
573    /// related to a specific UI instance. You can pass in a specific component node on the current UI instance
574    /// for association.
575    ///
576    /// # Arguments
577    ///
578    /// * `node` - Indicates the pointer to a component node.
579    ///
580    /// * `enabled` - Indicates whether to enable strict reporting on drag events.
581    ///
582    /// # Returns
583    ///
584    /// * Returns the result code.
585    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
586    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
587    ///
588    /// Available since API-level: 12
589    #[cfg(feature = "api-12")]
590    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
591    pub fn OH_ArkUI_SetDragEventStrictReportWithNode(node: ArkUI_NodeHandle, enabled: bool) -> i32;
592    /// Sets whether to enable strict reporting on drag events.
593    /// This feature is disabled by default, and you are advised to enable it.
594    /// If this feature is disabled, the parent component is not notified when an item in it is dragged over its child
595    /// component. If this feature is enabled, the component is notified of the dragged item's leaving, and the child
596    /// component to which the dragged item is dropped is notified of the item's entering. This configuration is
597    /// related to a specific UI instance. You can pass in a specific UI instance for association.
598    ///
599    /// # Arguments
600    ///
601    /// * `uiContext` - Indicates the pointer to a UI instance.
602    ///
603    /// * `enabled` - Indicates whether to enable strict reporting on drag events.
604    ///
605    /// # Returns
606    ///
607    /// * Returns the result code.
608    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
609    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
610    ///
611    /// Available since API-level: 12
612    #[cfg(feature = "api-12")]
613    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
614    pub fn OH_ArkUI_SetDragEventStrictReportWithContext(
615        uiContext: ArkUI_ContextHandle,
616        enabled: bool,
617    ) -> i32;
618    /// Sets the types of data that can be dropped to the specified component. This API resets the settings configured
619    /// through [`OH_ArkUI_DisallowNodeAnyDropDataTypes`] and [`OH_ArkUI_AllowNodeAllDropDataTypes`].
620    ///
621    /// # Arguments
622    ///
623    /// * `node` - Indicates the pointer to a component node.
624    ///
625    /// * `typesArray` - Indicates the array of types of data that can be dropped.
626    ///
627    /// * `count` - Indicates length of an array.
628    ///
629    /// # Returns
630    ///
631    /// * Returns the result code.
632    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
633    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
634    ///
635    /// Available since API-level: 12
636    #[cfg(feature = "api-12")]
637    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
638    pub fn OH_ArkUI_SetNodeAllowedDropDataTypes(
639        node: ArkUI_NodeHandle,
640        typesArray: *mut *const ::core::ffi::c_char,
641        count: i32,
642    ) -> i32;
643    /// Configures the specified component to disallow any data types. This API resets the settings configured through
644    /// [`OH_ArkUI_SetNodeAllowedDropDataTypes`].
645    ///
646    /// # Arguments
647    ///
648    /// * `node` - Indicates the pointer to a component node.
649    ///
650    /// # Returns
651    ///
652    /// * Returns the result code.
653    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
654    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
655    ///
656    /// Available since API-level: 12
657    #[cfg(feature = "api-12")]
658    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
659    pub fn OH_ArkUI_DisallowNodeAnyDropDataTypes(node: ArkUI_NodeHandle) -> i32;
660    /// Configures the specified component to allow any data types. This API resets the settings configured through
661    /// [`OH_ArkUI_SetNodeAllowedDropDataTypes`].
662    ///
663    /// # Arguments
664    ///
665    /// * `node` - Indicates the pointer to a component node.
666    ///
667    /// # Returns
668    ///
669    /// * Returns the result code.
670    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
671    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
672    ///
673    /// Available since API-level: 12
674    #[cfg(feature = "api-12")]
675    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
676    pub fn OH_ArkUI_AllowNodeAllDropDataTypes(node: ArkUI_NodeHandle) -> i32;
677    /// Sets whether the specified component is draggable.
678    ///
679    /// # Arguments
680    ///
681    /// * `node` - Indicates the pointer to a component node.
682    ///
683    /// * `bool` - Indicates whether the component is draggable.
684    ///
685    /// # Returns
686    ///
687    /// * Returns the result code.
688    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
689    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
690    ///
691    /// Available since API-level: 12
692    #[cfg(feature = "api-12")]
693    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
694    pub fn OH_ArkUI_SetNodeDraggable(node: ArkUI_NodeHandle, enabled: bool) -> i32;
695    /// Sets a custom drag preview for the specified component.
696    ///
697    /// # Arguments
698    ///
699    /// * `node` - Indicates the pointer to a component node.
700    ///
701    /// * `preview` - Indicates the custom drag preview, which is a pixel map.
702    ///
703    /// # Returns
704    ///
705    /// * Returns the result code.
706    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
707    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
708    ///
709    /// Available since API-level: 12
710    #[cfg(feature = "api-12")]
711    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
712    pub fn OH_ArkUI_SetNodeDragPreview(
713        node: ArkUI_NodeHandle,
714        preview: *mut OH_PixelmapNative,
715    ) -> i32;
716    /// Creates an <b>ArkUI_DragPreviewOption</b> object.
717    ///
718    ///
719    /// # Returns
720    ///
721    /// * Returns the created <b>ArkUI_DragPreviewOption</b> object.
722    ///
723    /// Available since API-level: 12
724    #[cfg(feature = "api-12")]
725    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
726    pub fn OH_ArkUI_CreateDragPreviewOption() -> *mut ArkUI_DragPreviewOption;
727    /// Disposes of a <b>ArkUI_DragPreviewOption</b> object.
728    ///
729    /// # Arguments
730    ///
731    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
732    ///
733    /// Available since API-level: 12
734    #[cfg(feature = "api-12")]
735    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
736    pub fn OH_ArkUI_DragPreviewOption_Dispose(option: *mut ArkUI_DragPreviewOption);
737    /// Sets the scale mode for an <b>ArkUI_DragPreviewOption</b> object.
738    ///
739    /// # Arguments
740    ///
741    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
742    ///
743    /// * `scaleMode` - Indicates the scale mode.
744    ///
745    /// # Returns
746    ///
747    /// * Returns the result code.
748    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
749    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
750    ///
751    /// Available since API-level: 12
752    #[cfg(feature = "api-12")]
753    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
754    pub fn OH_ArkUI_DragPreviewOption_SetScaleMode(
755        option: *mut ArkUI_DragPreviewOption,
756        scaleMode: ArkUI_DragPreviewScaleMode,
757    ) -> i32;
758    /// Sets whether to enable the shadow effect for an <b>ArkUI_DragPreviewOption</b> object.
759    /// The shadow effect is enabled by default.
760    ///
761    /// # Arguments
762    ///
763    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
764    ///
765    /// * `enabled` - Indicates whether to enable the shadow effect.
766    ///
767    /// # Returns
768    ///
769    /// * Returns the result code.
770    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
771    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
772    ///
773    /// Available since API-level: 12
774    #[cfg(feature = "api-12")]
775    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
776    pub fn OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled(
777        option: *mut ArkUI_DragPreviewOption,
778        enabled: bool,
779    ) -> i32;
780    /// Sets whether to enable the rounded corner effect for an <b>ArkUI_DragPreviewOption</b> object.
781    /// The rounded corner effect is enabled by default.
782    ///
783    /// # Arguments
784    ///
785    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
786    ///
787    /// * `enabled` - Indicates whether to enable the rounded corner effect.
788    ///
789    /// # Returns
790    ///
791    /// * Returns the result code.
792    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
793    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
794    ///
795    /// Available since API-level: 12
796    #[cfg(feature = "api-12")]
797    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
798    pub fn OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled(
799        option: *mut ArkUI_DragPreviewOption,
800        enabled: bool,
801    ) -> i32;
802    /// Sets whether to enable the badge for an <b>ArkUI_DragPreviewOption</b> object.
803    /// If this feature is enabled, a badge that contains the number of dragged items is displayed.
804    ///
805    /// # Arguments
806    ///
807    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
808    ///
809    /// * `enabled` - Indicates whether to enable badge.
810    ///
811    /// # Returns
812    ///
813    /// * Returns the result code.
814    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
815    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
816    ///
817    /// Available since API-level: 12
818    #[cfg(feature = "api-12")]
819    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
820    pub fn OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled(
821        option: *mut ArkUI_DragPreviewOption,
822        enabled: bool,
823    ) -> i32;
824    /// Sets the count on the badge.
825    /// The settings will overwrite the value in the <b>SetDragPreviewNumberBadgeEnabled</b> API.
826    ///
827    /// # Arguments
828    ///
829    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
830    ///
831    /// * `forcedNumber` - Indicates the count on the badge.
832    ///
833    /// # Returns
834    ///
835    /// * Returns the result code.
836    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
837    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
838    ///
839    /// Available since API-level: 12
840    #[cfg(feature = "api-12")]
841    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
842    pub fn OH_ArkUI_DragPreviewOption_SetBadgeNumber(
843        option: *mut ArkUI_DragPreviewOption,
844        forcedNumber: u32,
845    ) -> i32;
846    /// Sets whether to enable the default animation on a click or touch, it's not used in drag action.
847    ///
848    /// # Arguments
849    ///
850    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
851    ///
852    /// * `enabled` - Indicates whether to enable the default animation on a click or touch.
853    ///
854    /// # Returns
855    ///
856    /// * Returns the result code.
857    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
858    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
859    ///
860    /// Available since API-level: 12
861    #[cfg(feature = "api-12")]
862    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
863    pub fn OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled(
864        option: *mut ArkUI_DragPreviewOption,
865        enabled: bool,
866    ) -> i32;
867    /// Sets an <b>ArkUI_DragPreviewOption</b> object for the specified component.
868    ///
869    /// # Arguments
870    ///
871    /// * `node` - Indicates the pointer to a component node.
872    ///
873    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
874    ///
875    /// # Returns
876    ///
877    /// * Returns the result code.
878    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
879    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
880    ///
881    /// Available since API-level: 12
882    #[cfg(feature = "api-12")]
883    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
884    pub fn OH_ArkUI_SetNodeDragPreviewOption(
885        node: ArkUI_NodeHandle,
886        option: *mut ArkUI_DragPreviewOption,
887    ) -> i32;
888    /// Creates a drag action object for a UI instance based on the specified component node of the current
889    /// UI instance.
890    ///
891    /// # Arguments
892    ///
893    /// * `node` - Indicates the pointer to a component node.
894    ///
895    /// # Returns
896    ///
897    /// * Returns the pointer to the created drag action object; returns null if the operation fails.
898    ///
899    /// Available since API-level: 12
900    #[cfg(feature = "api-12")]
901    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
902    pub fn OH_ArkUI_CreateDragActionWithNode(node: ArkUI_NodeHandle) -> *mut ArkUI_DragAction;
903    /// Creates a drag action object for the specified UI instance.
904    ///
905    /// # Arguments
906    ///
907    /// * `uiContext` - Indicates the pointer to a UI instance.
908    ///
909    /// # Returns
910    ///
911    /// * Returns the pointer to the created drag action object; returns null if the operation fails.
912    ///
913    /// Available since API-level: 12
914    #[cfg(feature = "api-12")]
915    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
916    pub fn OH_ArkUI_CreateDragActionWithContext(
917        uiContext: ArkUI_ContextHandle,
918    ) -> *mut ArkUI_DragAction;
919    /// Disposes of a drag action object.
920    ///
921    /// # Arguments
922    ///
923    /// * `dragAction` - Indicates the pointer to the target drag action object.
924    ///
925    /// Available since API-level: 12
926    #[cfg(feature = "api-12")]
927    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
928    pub fn OH_ArkUI_DragAction_Dispose(dragAction: *mut ArkUI_DragAction);
929    /// Sets the pointer ID. If only one finger is operating on the screen, the pointer ID is 0.
930    /// In general cases, you can set the pointer ID to 0.
931    ///
932    /// # Arguments
933    ///
934    /// * `dragAction` - Indicates the pointer to the target drag action object.
935    ///
936    /// * `pointer` - Indicates the pointer ID. The value ranges from 0 to 9.
937    ///
938    /// # Returns
939    ///
940    /// * Returns the result code.
941    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
942    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
943    ///
944    /// Available since API-level: 12
945    #[cfg(feature = "api-12")]
946    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
947    pub fn OH_ArkUI_DragAction_SetPointerId(dragAction: *mut ArkUI_DragAction, pointer: i32)
948        -> i32;
949    /// Sets the drag previews for a drag action.
950    ///
951    /// # Arguments
952    ///
953    /// * `dragAction` - Indicates the pointer to the target drag action object.
954    ///
955    /// * `pixelmapArray` - Indicates the array of the drag previews to set, which must be pixel maps.
956    ///
957    /// * `size` - Indicates the size of the drag preview array.
958    ///
959    /// # Returns
960    ///
961    /// * Returns the result code.
962    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
963    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
964    ///
965    /// Available since API-level: 12
966    #[cfg(feature = "api-12")]
967    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
968    pub fn OH_ArkUI_DragAction_SetPixelMaps(
969        dragAction: *mut ArkUI_DragAction,
970        pixelmapArray: *mut *mut OH_PixelmapNative,
971        size: i32,
972    ) -> i32;
973    /// Sets the touch point relative to the upper left corner of the first drag preview (pixel map).
974    ///
975    /// # Arguments
976    ///
977    /// * `dragAction` - Indicates the pointer to the target drag action object.
978    ///
979    /// * `x` - Indicates the X coordinate of the touch point.
980    ///
981    /// # Returns
982    ///
983    /// * Returns the result code.
984    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
985    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
986    ///
987    /// Available since API-level: 12
988    #[cfg(feature = "api-12")]
989    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
990    pub fn OH_ArkUI_DragAction_SetTouchPointX(dragAction: *mut ArkUI_DragAction, x: f32) -> i32;
991    /// Sets the touch point relative to the upper left corner of the first drag preview (pixel map).
992    ///
993    /// # Arguments
994    ///
995    /// * `dragAction` - Indicates the pointer to the target drag action object.
996    ///
997    /// * `y` - Indicates the Y coordinate of the touch point.
998    ///
999    /// # Returns
1000    ///
1001    /// * Returns the result code.
1002    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
1003    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
1004    ///
1005    /// Available since API-level: 12
1006    #[cfg(feature = "api-12")]
1007    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1008    pub fn OH_ArkUI_DragAction_SetTouchPointY(dragAction: *mut ArkUI_DragAction, y: f32) -> i32;
1009    /// Sets an <b>ArkUI_DragPreviewOption</b> object for the specified drag action object.
1010    ///
1011    /// # Arguments
1012    ///
1013    /// * `dragAction` - Indicates the pointer to the target drag action object.
1014    ///
1015    /// * `option` - Indicates the pointer to an <b>ArkUI_DragPreviewOption</b> object.
1016    ///
1017    /// # Returns
1018    ///
1019    /// * Returns the result code.
1020    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
1021    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
1022    ///
1023    /// Available since API-level: 12
1024    #[cfg(feature = "api-12")]
1025    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1026    pub fn OH_ArkUI_DragAction_SetDragPreviewOption(
1027        dragAction: *mut ArkUI_DragAction,
1028        option: *mut ArkUI_DragPreviewOption,
1029    ) -> i32;
1030    /// Registers a drag status listener.
1031    /// This listener can be used to check whether the data is successfully received and processed.
1032    ///
1033    /// # Arguments
1034    ///
1035    /// * `dragAction` - Indicates the pointer to the target drag action object.
1036    ///
1037    /// * `userData` - Indicates the custom user data.
1038    ///
1039    /// * `listener` - Indicates the listener to register. When the callback is invoked, the system returns a pointer to the drag status
1040    /// object. The pointer is destroyed after the callback is complete and the application should not hold it anymore.
1041    ///
1042    /// # Returns
1043    ///
1044    /// * Returns the result code.
1045    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
1046    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
1047    ///
1048    /// Available since API-level: 12
1049    #[cfg(feature = "api-12")]
1050    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1051    pub fn OH_ArkUI_DragAction_RegisterStatusListener(
1052        dragAction: *mut ArkUI_DragAction,
1053        userData: *mut ::core::ffi::c_void,
1054        listener: ::core::option::Option<
1055            unsafe extern "C" fn(
1056                dragAndDropInfo: *mut ArkUI_DragAndDropInfo,
1057                userData: *mut ::core::ffi::c_void,
1058            ),
1059        >,
1060    ) -> i32;
1061    /// Unregisters a drag status listener.
1062    ///
1063    /// # Arguments
1064    ///
1065    /// * `dragAction` - Indicates the pointer to the target drag action object.
1066    ///
1067    /// Available since API-level: 12
1068    #[cfg(feature = "api-12")]
1069    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1070    pub fn OH_ArkUI_DragAction_UnregisterStatusListener(dragAction: *mut ArkUI_DragAction);
1071    /// Obtains the drag status of a drag action.
1072    ///
1073    /// # Arguments
1074    ///
1075    /// * `dragAndDropInfo` - Indicates the drag and drop information returned by the drag status listener.
1076    ///
1077    /// # Returns
1078    ///
1079    /// * Returns an <b>ArkUI_DragStatus</b> object; returns <b>ArkUI_DRAG_STATUS_UNKNOWN</b> if an error occurs.
1080    ///
1081    /// Available since API-level: 12
1082    #[cfg(feature = "api-12")]
1083    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1084    pub fn OH_ArkUI_DragAndDropInfo_GetDragStatus(
1085        dragAndDropInfo: *mut ArkUI_DragAndDropInfo,
1086    ) -> ArkUI_DragStatus;
1087    /// Obtains a drag event based on the specified drag and drop information.
1088    /// The drag event can then be used to obtain the drag result and the drag behavior, please note
1089    /// other info is not included in such a drag event.
1090    ///
1091    /// # Arguments
1092    ///
1093    /// * `dragAndDropInfo` - Indicates the drag and drop information returned by the drag status listener.
1094    ///
1095    /// # Returns
1096    ///
1097    /// * Returns an <b>ArkUI_DragEvent</b> object; returns null if an error occurs.
1098    ///
1099    /// Available since API-level: 12
1100    #[cfg(feature = "api-12")]
1101    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1102    pub fn OH_ArkUI_DragAndDropInfo_GetDragEvent(
1103        dragAndDropInfo: *mut ArkUI_DragAndDropInfo,
1104    ) -> *mut ArkUI_DragEvent;
1105    /// Initiates a drag action through the specified drag action object.
1106    ///
1107    /// # Arguments
1108    ///
1109    /// * `dragAction` - Indicates a drag action object.
1110    ///
1111    /// # Returns
1112    ///
1113    /// * Returns the result code.
1114    /// Returns [`ARKUI_ERROR_CODE_NO_ERROR`] if the operation is successful.
1115    /// Returns [`ARKUI_ERROR_CODE_PARAM_INVALID`] if a parameter error occurs.
1116    ///
1117    /// Available since API-level: 12
1118    #[cfg(feature = "api-12")]
1119    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1120    pub fn OH_ArkUI_StartDrag(dragAction: *mut ArkUI_DragAction) -> i32;
1121}