ohos_arkui_input_binding/ui_input_data/
axis.rs1#[cfg(feature = "api-22")]
2use ohos_arkui_input_sys::OH_ArkUI_AxisEvent_HasAxis;
3#[cfg(feature = "api-15")]
4use ohos_arkui_input_sys::{
5 OH_ArkUI_AxisEvent_GetAxisAction, OH_ArkUI_FocusAxisEvent_GetAxisValue,
6 OH_ArkUI_FocusAxisEvent_SetStopPropagation, UI_FOCUS_AXIS_EVENT_ABS,
7};
8use ohos_arkui_input_sys::{
9 OH_ArkUI_AxisEvent_GetHorizontalAxisValue, OH_ArkUI_AxisEvent_GetPinchAxisScaleValue,
10 OH_ArkUI_AxisEvent_GetVerticalAxisValue,
11};
12#[cfg(feature = "api-17")]
13use ohos_arkui_input_sys::{
14 OH_ArkUI_AxisEvent_GetScrollStep, OH_ArkUI_AxisEvent_SetPropagation,
15 OH_ArkUI_HoverEvent_IsHovered,
16};
17
18#[cfg(feature = "api-15")]
19use crate::ui_input_data::check_status;
20#[cfg(any(feature = "api-15", feature = "api-17"))]
21use crate::ArkUIInputError;
22use crate::ArkUIInputEvent;
23#[cfg(feature = "api-15")]
24use crate::{UIAxisEventAction, UIFocusAxisEventAbs};
25
26impl ArkUIInputEvent {
27 pub fn axis_vertical_value(&self) -> f64 {
28 unsafe { OH_ArkUI_AxisEvent_GetVerticalAxisValue(self.raw()) }
29 }
30
31 pub fn axis_horizontal_value(&self) -> f64 {
32 unsafe { OH_ArkUI_AxisEvent_GetHorizontalAxisValue(self.raw()) }
33 }
34
35 pub fn axis_pinch_scale_value(&self) -> f64 {
36 unsafe { OH_ArkUI_AxisEvent_GetPinchAxisScaleValue(self.raw()) }
37 }
38
39 #[cfg(feature = "api-15")]
40 pub fn axis_action(&self) -> UIAxisEventAction {
41 UIAxisEventAction::from(unsafe { OH_ArkUI_AxisEvent_GetAxisAction(self.raw()) } as u32)
42 }
43
44 #[cfg(feature = "api-22")]
45 pub fn axis_has(&self, axis: i32) -> bool {
46 unsafe { OH_ArkUI_AxisEvent_HasAxis(self.raw(), axis) != 0 }
47 }
48
49 #[cfg(feature = "api-15")]
50 pub fn focus_axis_value(&self, axis: UIFocusAxisEventAbs) -> f64 {
51 let axis: UI_FOCUS_AXIS_EVENT_ABS = axis.into();
52 unsafe { OH_ArkUI_FocusAxisEvent_GetAxisValue(self.raw(), axis as i32) }
53 }
54
55 #[cfg(feature = "api-15")]
56 pub fn focus_axis_set_stop_propagation(
57 &self,
58 stop_propagation: bool,
59 ) -> Result<(), ArkUIInputError> {
60 check_status(unsafe {
61 OH_ArkUI_FocusAxisEvent_SetStopPropagation(self.raw(), stop_propagation)
62 })
63 }
64
65 #[cfg(feature = "api-17")]
66 pub fn hover_is_hovered(&self) -> bool {
67 unsafe { OH_ArkUI_HoverEvent_IsHovered(self.raw()) }
68 }
69
70 #[cfg(feature = "api-17")]
71 pub fn axis_set_propagation(&self, propagation: bool) -> Result<(), ArkUIInputError> {
72 check_status(unsafe { OH_ArkUI_AxisEvent_SetPropagation(self.raw(), propagation) })
73 }
74
75 #[cfg(feature = "api-17")]
76 pub fn axis_scroll_step(&self) -> i32 {
77 unsafe { OH_ArkUI_AxisEvent_GetScrollStep(self.raw()) }
78 }
79}