impl super::Scroll {
pub fn set_scroll_bar_display_mode<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarDisplayMode,
value.into(),
)
}
pub fn get_scroll_bar_display_mode(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarDisplayMode,
)
}
pub fn set_scroll_bar_width<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarWidth,
value.into(),
)
}
pub fn get_scroll_bar_width(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarWidth,
)
}
pub fn set_scroll_bar_color<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarColor,
value.into(),
)
}
pub fn get_scroll_bar_color(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarColor,
)
}
pub fn set_scroll_scroll_direction<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollScrollDirection,
value.into(),
)
}
pub fn get_scroll_scroll_direction(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollScrollDirection,
)
}
pub fn set_scroll_edge_effect<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEdgeEffect,
value.into(),
)
}
pub fn get_scroll_edge_effect(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEdgeEffect,
)
}
pub fn set_scroll_enable_scroll_interaction<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnableScrollInteraction,
value.into(),
)
}
pub fn get_scroll_enable_scroll_interaction(
&self,
) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnableScrollInteraction,
)
}
pub fn set_scroll_friction<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFriction,
value.into(),
)
}
pub fn get_scroll_friction(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFriction,
)
}
pub fn set_scroll_snap<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollSnap,
value.into(),
)
}
pub fn get_scroll_snap(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollSnap,
)
}
pub fn set_scroll_nested_scroll<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollNestedScroll,
value.into(),
)
}
pub fn get_scroll_nested_scroll(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollNestedScroll,
)
}
pub fn set_scroll_offset<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollOffset,
value.into(),
)
}
pub fn get_scroll_offset(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollOffset,
)
}
pub fn set_scroll_edge<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEdge,
value.into(),
)
}
pub fn get_scroll_edge(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEdge,
)
}
pub fn set_scroll_enable_paging<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnablePaging,
value.into(),
)
}
pub fn get_scroll_enable_paging(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnablePaging,
)
}
pub fn set_scroll_page<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollPage,
value.into(),
)
}
pub fn get_scroll_page(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollPage,
)
}
pub fn set_scroll_by<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBy,
value.into(),
)
}
pub fn get_scroll_by(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBy,
)
}
#[cfg(feature = "api-15")]
pub fn set_scroll_back_to_top<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBackToTop,
value.into(),
)
}
#[cfg(feature = "api-15")]
pub fn get_scroll_back_to_top(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBackToTop,
)
}
#[cfg(feature = "api-20")]
pub fn set_scroll_bar_margin<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarMargin,
value.into(),
)
}
#[cfg(feature = "api-20")]
pub fn get_scroll_bar_margin(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollBarMargin,
)
}
#[cfg(feature = "api-18")]
pub fn set_scroll_clip_content<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollClipContent,
value.into(),
)
}
#[cfg(feature = "api-18")]
pub fn get_scroll_clip_content(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollClipContent,
)
}
#[cfg(feature = "api-15")]
pub fn set_scroll_content_end_offset<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollContentEndOffset,
value.into(),
)
}
#[cfg(feature = "api-15")]
pub fn get_scroll_content_end_offset(
&self,
) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollContentEndOffset,
)
}
#[cfg(feature = "api-15")]
pub fn set_scroll_content_start_offset<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollContentStartOffset,
value.into(),
)
}
#[cfg(feature = "api-15")]
pub fn get_scroll_content_start_offset(
&self,
) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollContentStartOffset,
)
}
#[cfg(feature = "api-20")]
pub fn set_scroll_enable_bounces_zoom<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnableBouncesZoom,
value.into(),
)
}
#[cfg(feature = "api-20")]
pub fn get_scroll_enable_bounces_zoom(
&self,
) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollEnableBouncesZoom,
)
}
#[cfg(feature = "api-14")]
pub fn set_scroll_fading_edge<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFadingEdge,
value.into(),
)
}
#[cfg(feature = "api-14")]
pub fn get_scroll_fading_edge(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFadingEdge,
)
}
#[cfg(feature = "api-13")]
pub fn set_scroll_fling<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFling,
value.into(),
)
}
#[cfg(feature = "api-13")]
pub fn get_scroll_fling(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFling,
)
}
#[cfg(feature = "api-18")]
pub fn set_scroll_fling_speed_limit<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFlingSpeedLimit,
value.into(),
)
}
#[cfg(feature = "api-18")]
pub fn get_scroll_fling_speed_limit(
&self,
) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollFlingSpeedLimit,
)
}
#[cfg(feature = "api-20")]
pub fn set_scroll_max_zoom_scale<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollMaxZoomScale,
value.into(),
)
}
#[cfg(feature = "api-20")]
pub fn get_scroll_max_zoom_scale(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollMaxZoomScale,
)
}
#[cfg(feature = "api-20")]
pub fn set_scroll_min_zoom_scale<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollMinZoomScale,
value.into(),
)
}
#[cfg(feature = "api-20")]
pub fn get_scroll_min_zoom_scale(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollMinZoomScale,
)
}
#[cfg(feature = "api-14")]
pub fn set_scroll_size<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollSize,
value.into(),
)
}
#[cfg(feature = "api-14")]
pub fn get_scroll_size(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollSize,
)
}
#[cfg(feature = "api-20")]
pub fn set_scroll_zoom_scale<T: Into<crate::ArkUINodeAttributeItem>>(
&self,
value: T,
) -> crate::ArkUIResult<()> {
<Self as crate::ArkUICommonAttribute>::set_attribute(
self,
crate::ArkUINodeAttributeType::ScrollZoomScale,
value.into(),
)
}
#[cfg(feature = "api-20")]
pub fn get_scroll_zoom_scale(&self) -> crate::ArkUIResult<crate::ArkUINodeAttributeItem> {
<Self as crate::ArkUICommonAttribute>::get_attribute(
self,
crate::ArkUINodeAttributeType::ScrollZoomScale,
)
}
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ScrollOffsetEvent {
pub offset_x: f32,
pub offset_y: f32,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ScrollFrameBeginEvent {
pub offset: f32,
pub state: i32,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ScrollWillScrollEvent {
pub offset_x: f32,
pub offset_y: f32,
pub state: i32,
pub source: i32,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub struct ScrollDidScrollEvent {
pub offset_x: f32,
pub offset_y: f32,
pub state: i32,
}
impl super::Scroll {
pub fn on_scroll<T: Fn(ScrollOffsetEvent) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnScroll,
move |event| {
cb(ScrollOffsetEvent {
offset_x: event.f32_value(0).unwrap_or_default(),
offset_y: event.f32_value(1).unwrap_or_default(),
});
},
);
}
pub fn on_scroll_frame_begin<T: Fn(ScrollFrameBeginEvent) -> Option<f32> + 'static>(
&mut self,
cb: T,
) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnScrollFrameBegin,
move |event| {
let data = ScrollFrameBeginEvent {
offset: event.f32_value(0).unwrap_or_default(),
state: event.i32_value(1).unwrap_or_default(),
};
if let Some(value) = cb(data) {
let _ = event.set_return_f32(value);
}
},
);
}
pub fn on_scroll_will_scroll<T: Fn(ScrollWillScrollEvent) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnWillScroll,
move |event| {
cb(ScrollWillScrollEvent {
offset_x: event.f32_value(0).unwrap_or_default(),
offset_y: event.f32_value(1).unwrap_or_default(),
state: event.i32_value(2).unwrap_or_default(),
source: event.i32_value(3).unwrap_or_default(),
});
},
);
}
pub fn on_scroll_did_scroll<T: Fn(ScrollDidScrollEvent) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnDidScroll,
move |event| {
cb(ScrollDidScrollEvent {
offset_x: event.f32_value(0).unwrap_or_default(),
offset_y: event.f32_value(1).unwrap_or_default(),
state: event.i32_value(2).unwrap_or_default(),
});
},
);
}
pub fn on_scroll_start<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnScrollStart,
cb,
);
}
pub fn on_scroll_stop<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnScrollStop,
cb,
);
}
pub fn on_scroll_edge<T: Fn(i32) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnScrollEdge,
move |event| {
cb(event.i32_value(0).unwrap_or_default());
},
);
}
pub fn on_scroll_reach_start<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnReachStart,
cb,
);
}
pub fn on_scroll_reach_end<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(self, crate::NodeEventType::ScrollEventOnReachEnd, cb);
}
#[cfg(feature = "api-20")]
pub fn on_scroll_will_stop_dragging<T: Fn(f32) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnWillStopDragging,
move |event| {
cb(event.f32_value(0).unwrap_or_default());
},
);
}
#[cfg(feature = "api-20")]
pub fn on_scroll_did_zoom<T: Fn(f32) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnDidZoom,
move |event| {
cb(event.f32_value(0).unwrap_or_default());
},
);
}
#[cfg(feature = "api-20")]
pub fn on_scroll_zoom_start<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnZoomStart,
cb,
);
}
#[cfg(feature = "api-20")]
pub fn on_scroll_zoom_stop<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(self, crate::NodeEventType::ScrollEventOnZoomStop, cb);
}
#[cfg(feature = "api-21")]
pub fn on_scroll_will_start_dragging<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnWillStartDragging,
cb,
);
}
#[cfg(feature = "api-21")]
pub fn on_scroll_did_stop_dragging<T: Fn(bool) + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event(
self,
crate::NodeEventType::ScrollEventOnDidStopDragging,
move |event| {
cb(event.i32_value(0).unwrap_or_default() != 0);
},
);
}
#[cfg(feature = "api-21")]
pub fn on_scroll_will_start_fling<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnWillStartFling,
cb,
);
}
#[cfg(feature = "api-21")]
pub fn on_scroll_did_stop_fling<T: Fn() + 'static>(&mut self, cb: T) {
crate::ArkUIEvent::on_event_no_param(
self,
crate::NodeEventType::ScrollEventOnDidStopFling,
cb,
);
}
}