Module: ui.widgets.scrollview
Source: ./ui/widgets/scrollview.reef
Overview
ui/widgets/scrollview.reef - Scrollable container widget Part of reef-stdlib UI module
The ScrollView widget provides a scrollable view into content that may be larger than the visible area. It supports both horizontal and vertical scrolling with optional scrollbars.
ScrollView features:
- Horizontal and/or vertical scrolling
- Scrollbars (auto-hide, always visible, or never visible)
- Smooth scrolling with momentum (optional)
- Mouse wheel and keyboard navigation
- Content clipping
Types
ScrollBarPolicy (enum)
Variants:
AutoAlwaysNever
ScrollDirection (enum)
Variants:
HorizontalVerticalBoth
ScrollViewEventResult (enum)
Variants:
Consumed(ScrollView)Ignored
Objects
ScrollView
Extends: widget.Widget
Fields:
| Name | Type |
|---|---|
scroll_x |
float |
scroll_y |
float |
content_width |
float |
content_height |
float |
h_policy |
ScrollBarPolicy |
v_policy |
ScrollBarPolicy |
dragging_h |
bool |
dragging_v |
bool |
drag_start_x |
float |
drag_start_y |
float |
drag_start_scroll |
float |
h_hovered |
bool |
v_hovered |
bool |
proc init(id: widget.WidgetId)
Methods:
override shared fn kind(): string
override exclusive proc paint(surf: surface.Surface, th: theme.Theme)
Functions
fn scrollbar_auto(): ScrollBarPolicy
fn scrollbar_always(): ScrollBarPolicy
fn scrollbar_never(): ScrollBarPolicy
fn is_scrollbar_auto(p: ScrollBarPolicy): bool
fn is_scrollbar_always(p: ScrollBarPolicy): bool
fn is_scrollbar_never(p: ScrollBarPolicy): bool
fn scroll_horizontal(): ScrollDirection
fn scroll_vertical(): ScrollDirection
fn scroll_both(): ScrollDirection
fn scrollview(): ScrollView
fn scrollview_with_policy(h_policy: ScrollBarPolicy, v_policy: ScrollBarPolicy): ScrollView
fn scrollview_scroll_x(sv: ScrollView): float
fn scrollview_scroll_y(sv: ScrollView): float
fn scrollview_content_size(sv: ScrollView): core.Size
fn scrollview_viewport_size(sv: ScrollView): core.Size
fn scrollview_h_policy(sv: ScrollView): ScrollBarPolicy
fn scrollview_v_policy(sv: ScrollView): ScrollBarPolicy
fn scrollview_set_scroll(sv: ScrollView, x: float, y: float): ScrollView
fn scrollview_set_content_size(sv: ScrollView, size: core.Size): ScrollView
fn scrollview_set_h_policy(sv: ScrollView, policy: ScrollBarPolicy): ScrollView
fn scrollview_set_v_policy(sv: ScrollView, policy: ScrollBarPolicy): ScrollView
fn scrollview_scroll_by(sv: ScrollView, dx: float, dy: float): ScrollView
fn scrollview_scroll_to_top(sv: ScrollView): ScrollView
fn scrollview_scroll_to_bottom(sv: ScrollView): ScrollView
fn scrollview_scroll_to_left(sv: ScrollView): ScrollView
fn scrollview_scroll_to_right(sv: ScrollView): ScrollView
fn scrollview_can_scroll_h(sv: ScrollView): bool
fn scrollview_can_scroll_v(sv: ScrollView): bool
fn scrollview_needs_h_scrollbar(sv: ScrollView): bool
fn scrollview_needs_v_scrollbar(sv: ScrollView): bool
fn scrollview_get_id(sv: ScrollView): widget.WidgetId
fn scrollview_get_state(sv: ScrollView): widget.WidgetState
fn scrollview_get_bounds(sv: ScrollView): core.Rect
fn scrollview_content_bounds(sv: ScrollView): core.Rect
fn scrollview_preferred_size(sv: ScrollView, content_size: core.Size): core.Size
fn scrollview_layout(sv: ScrollView, constraints: layout.Constraints): ScrollView
fn scrollview_event_consumed(sv: ScrollView): ScrollViewEventResult
fn scrollview_event_ignored(): ScrollViewEventResult
fn is_scrollview_event_consumed(r: ScrollViewEventResult): bool
fn get_scrollview_from_result(r: ScrollViewEventResult): ScrollView
fn scrollview_handle_event(sv: ScrollView, e: event.Event): ScrollViewEventResult
fn handle_mouse_event(sv: ScrollView, me: event.MouseEvent): ScrollViewEventResult
fn handle_key_event(sv: ScrollView, ke: event.KeyEvent): ScrollViewEventResult
fn start_v_drag(sv: ScrollView, mx: float, my: float): ScrollView
fn start_h_drag(sv: ScrollView, mx: float, my: float): ScrollView
fn end_drag(sv: ScrollView): ScrollView
fn update_v_drag(sv: ScrollView, my: float): ScrollView
fn update_h_drag(sv: ScrollView, mx: float): ScrollView
fn update_hover(sv: ScrollView, h_hover: bool, v_hover: bool): ScrollView
fn get_scrollbar_thumb_color(hovered: bool, colors: theme.ThemeColors): core.Color
fn get_v_thumb_height(sv: ScrollView): float
fn get_h_thumb_width(sv: ScrollView): float
fn get_v_thumb_position(sv: ScrollView, track_height: float): float
fn get_h_thumb_position(sv: ScrollView, track_width: float): float
fn clamp_scroll_x(sv: ScrollView, x: float): float
fn clamp_scroll_y(sv: ScrollView, y: float): float
Procedures
proc scrollview_paint(sv: ScrollView, surf: surface.Surface, th: theme.Theme)
proc paint_vertical_scrollbar(sv: ScrollView, surf: surface.Surface, th: theme.Theme, x: float, y: float, w: float, h: float)
proc paint_horizontal_scrollbar(sv: ScrollView, surf: surface.Surface, th: theme.Theme, x: float, y: float, w: float, h: float)
proc draw_border(surf: surface.Surface, x: float, y: float, w: float, h: float, color: core.Color)
Generated by reefc doc