Skip to main content

sequoia_view/
lib.rs

1#![forbid(unsafe_code)]
2
3pub mod a11y;
4mod animated;
5mod any;
6pub mod app;
7pub mod async_view;
8mod backdrop;
9mod canvas;
10pub mod dev_overlay;
11mod dnd;
12mod dock;
13pub mod dock_float;
14pub mod dock_view;
15pub mod dock_window;
16pub mod dockable;
17pub mod edge_dock;
18pub mod error_boundary;
19mod filter_view;
20mod focus_ring;
21mod hit_shape;
22mod icon;
23mod image;
24mod layout_live;
25mod leaf;
26mod list;
27pub mod live;
28mod live_view;
29mod modifiers;
30mod overlay;
31mod paint_draw;
32mod painter;
33mod portal;
34mod presence;
35mod responsive;
36mod rich_text;
37mod runtime;
38mod scroll_view;
39mod scrub;
40mod split_panel;
41mod styleable;
42mod surface;
43pub mod table;
44pub mod thumbnail;
45mod track;
46mod transition;
47pub mod tree;
48mod value;
49mod view;
50mod views;
51mod virtual_list;
52
53pub use a11y::{Accessible, AccessibleNode, AccessibleRole};
54pub use animated::{
55    Animated, MAX_ANIM_DT, Opacity, Pulse, Shake, Translate, fade_sample, pop_sample, pulse_sample,
56    shake_sample, slide_progress,
57};
58pub use any::AnyView;
59pub use async_view::AsyncView;
60pub use backdrop::BackdropBlur;
61pub use canvas::{Canvas, KeyBinding};
62pub use dev_overlay::DevOverlay;
63pub use dnd::{
64    DRAG_THRESHOLD, DragEnd, DragId, DragOptions, DragPayload, DragSession, DropPosition,
65    exceeded_threshold, grab_offset, insertion_index, move_item, preview_origin,
66};
67pub use dock::DockArea;
68pub use dock_float::DockFloatLayer;
69pub use dock_view::{DockSlot, DockView};
70pub use dock_window::{DetachedWindow, DockWindowHost, DockWindowRoot};
71pub use dockable::{DockHeader, DockPanel, Dockable};
72pub use edge_dock::{
73    EDGE_GHOST_PX, EDGE_HINT_PX, EDGE_LINE_PX, EdgeGhost, EdgeSide, EdgeSlab, MIN_VISIBLE_H,
74    MIN_VISIBLE_W, UNDOCK_THRESHOLD_PX, clamp_card_top_left, edge_ghost_rect, edge_hint_at,
75    exceeded_undock, main_first_index,
76};
77pub use error_boundary::ErrorBoundary;
78pub use filter_view::{
79    BackdropFiltered, DrawGradientMask, EffectNode, FilterExt, Filtered, draw_gradient_mask,
80};
81pub use focus_ring::{FocusRing, RING_OFFSET, RING_WIDTH, ring_rect};
82pub use hit_shape::{HitCircle, HitRect};
83pub use icon::Icon;
84pub use image::Image;
85pub use layout_live::AnimatedSize;
86pub use leaf::Leaf;
87pub use list::List;
88pub use live::{AnimSpec, Live, MemoLiveExt, Prop, SignalLiveExt, SpringSpec};
89pub use live_view::{LiveBackground, LiveExt, LiveOffset, LiveOpacity};
90pub use modifiers::{
91    Clip, Enter, Motion, Rotated, Scaled, StatePatch, States, ViewModifiers, When, fade, slide_y,
92    when,
93};
94pub use overlay::{
95    Anchor, Dismiss, InputMode, OverlayEntry, OverlayId, OverlayLayer, OverlayOverflow, Placement,
96    Position,
97};
98pub use painter::Painter;
99pub use portal::{DismissableLayer, Popper, Portal};
100pub use presence::{
101    ENTER_SECS, EXIT_SECS, Presence, enter_progress, enter_sample, exit_done, exit_progress,
102    exit_sample,
103};
104pub use responsive::{
105    Breakpoint, Breakpoints, Responsive, ScreenOrientation, WithSize, orientation_of,
106    screen_orientation_of,
107};
108pub use rich_text::RichText;
109pub use runtime::{ElementId, InteractState, Runtime, RuntimeError, Stats, ViewState};
110pub use scroll_view::{ScrollAxis, ScrollView, ScrollbarVisibility};
111pub use scrub::Scrub;
112pub use sequoia_animation::Easing;
113pub use sequoia_dock::{
114    DecodeError, DockDrop, DockModel, DockNode, DockOp, FloatingPanel, PanelId, PanelPayload,
115    SplitAxis, decode as dock_decode, drop_from_fraction, drop_from_fraction_or_float,
116    encode as dock_encode, preview_rect as dock_preview_rect,
117};
118pub use split_panel::SplitPanel;
119pub use styleable::{Decoratable, Styleable};
120pub use surface::{SurfaceDraw, SurfaceInputBinding};
121pub use table::{SortDir, Table, TableColumn, table_filters};
122pub use thumbnail::{ThumbnailCache, shared_cache};
123pub use track::{Orientation, Pad2D, Track1D};
124pub use transition::{Sequence, SequenceFrame, fade_in, pop_in, slide_in, stagger};
125pub use tree::{FlatRow, TreeNode, TreeView};
126pub use value::{Value, ValueExt, derived, spring_spec, value};
127pub use view::{CustomLayout, EventCtx, PaintCtx, View};
128pub use views::{
129    AspectRatio, Column, FocusScope, Fragment, Grid, IntoChildren, Margined, Panel, Row, Spacer,
130    Stack, StackPos, Text, Unit, Wrap,
131};
132pub use virtual_list::VirtualList;
133
134pub use sequoia_assets::{
135    AssetRegistry, MAX_PHOTO_DIM, PhotoError, Sprite, decode_pixels, decode_pixels_thumbnail,
136    icon_key, load_pixels, load_pixels_thumbnail,
137};
138
139pub use sequoia_core::{
140    BrushStroke, Fill, GradientKind, GradientStops, MAX_GRADIENT_STOPS, Pixels, Size, WindowId,
141};
142
143pub use sequoia_draw::{
144    Dash, FillRule, Gradient, GradientStop, LineCap, LineJoin, MinMax, Path, Peaks, Radius,
145    RasterOptions, Shape, ShapeCache, ShapeStats, Span, StrokeStyle, Transform, WaveformCache,
146    WaveformOpts, bake_strip, layout_bars, waveform_line_points, white_noise,
147};
148
149pub use paint_draw::GRADIENT_BAND_PX;
150
151pub use sequoia_input::{
152    CursorIcon, DropEffect, Event, EventPhase, Key, KeyEvent, Modifiers, PenTool, PointerButton,
153    PointerEvent, effect_for_modifiers,
154};
155pub use sequoia_layout::{
156    Align, Axis, ContainerStyle, Dock, DockStyle, FlexItem, GridFlow, GridPlacement, GridStyle,
157    Indents, Inset, Justify, LayoutCtx, LayoutStyle, Overflow, Track,
158};
159pub use sequoia_style::{
160    Backdrop, BorderSide, BoxStyle, Effect, Filter, Mask, ShadowSpec, VisualState,
161};
162pub use sequoia_text::{
163    ElideMode, FontStyle, FontWeight, LetterSpacing, RichAlign, RichCaret, RichHit, RichLine,
164    RichParagraph, RichRect, TextSpan, WrapMode,
165};
166
167pub mod prelude {
168    pub use crate::a11y::{Accessible, AccessibleNode, AccessibleRole};
169    pub use crate::animated::{Animated, Opacity, Pulse, Shake, Translate};
170    pub use crate::any::AnyView;
171    pub use crate::async_view::AsyncView;
172    pub use crate::backdrop::BackdropBlur;
173    pub use crate::canvas::{Canvas, KeyBinding};
174    pub use crate::dev_overlay::DevOverlay;
175    pub use crate::dnd::{
176        DRAG_THRESHOLD, DragEnd, DragId, DragOptions, DragPayload, DragSession, DropPosition,
177        exceeded_threshold, grab_offset, insertion_index, move_item, preview_origin,
178    };
179    pub use crate::dock::DockArea;
180    pub use crate::dock_float::DockFloatLayer;
181    pub use crate::dock_view::{DockSlot, DockView};
182    pub use crate::dock_window::{DetachedWindow, DockWindowHost, DockWindowRoot};
183    pub use crate::dockable::{DockHeader, DockPanel, Dockable};
184    pub use crate::edge_dock::{
185        EDGE_GHOST_PX, EDGE_HINT_PX, EDGE_LINE_PX, EdgeGhost, EdgeSide, EdgeSlab,
186        clamp_card_top_left, edge_ghost_rect, edge_hint_at, exceeded_undock, main_first_index,
187    };
188    pub use crate::error_boundary::ErrorBoundary;
189    pub use crate::filter_view::{
190        BackdropFiltered, EffectNode, FilterExt, Filtered, draw_gradient_mask,
191    };
192    pub use crate::focus_ring::{FocusRing, RING_OFFSET, RING_WIDTH, ring_rect};
193    pub use crate::hit_shape::{HitCircle, HitRect};
194    pub use crate::icon::Icon;
195    pub use crate::image::Image;
196    pub use crate::layout_live::AnimatedSize;
197    pub use crate::leaf::Leaf;
198    pub use crate::list::List;
199    pub use crate::live::{AnimSpec, Live, MemoLiveExt, Prop, SignalLiveExt, SpringSpec};
200    pub use crate::live_view::{LiveBackground, LiveExt, LiveOffset, LiveOpacity};
201    pub use crate::modifiers::{
202        Clip, Enter, Motion, Rotated, Scaled, StatePatch, States, ViewModifiers, When, fade,
203        slide_y, when,
204    };
205    pub use crate::overlay::{
206        Anchor, Dismiss, InputMode, OverlayEntry, OverlayId, OverlayLayer, OverlayOverflow,
207        Placement, Position,
208    };
209    pub use crate::painter::Painter;
210    pub use crate::portal::{DismissableLayer, Popper, Portal};
211    pub use crate::presence::{
212        ENTER_SECS, EXIT_SECS, Presence, enter_progress, enter_sample, exit_done, exit_progress,
213        exit_sample,
214    };
215    pub use crate::responsive::{
216        Breakpoint, Breakpoints, Responsive, ScreenOrientation, WithSize, orientation_of,
217        screen_orientation_of,
218    };
219    pub use crate::rich_text::RichText;
220    pub use crate::runtime::{ElementId, InteractState, Runtime, RuntimeError, Stats, ViewState};
221    pub use crate::scroll_view::{ScrollAxis, ScrollView, ScrollbarVisibility};
222    pub use crate::scrub::Scrub;
223    pub use crate::split_panel::SplitPanel;
224    pub use crate::styleable::{Decoratable, Styleable};
225    pub use crate::surface::{SurfaceDraw, SurfaceInputBinding};
226    pub use crate::table::{SortDir, Table, TableColumn};
227    pub use crate::thumbnail::{ThumbnailCache, shared_cache};
228    pub use crate::track::{Orientation, Pad2D, Track1D};
229    pub use crate::transition::{Sequence, fade_in, pop_in, slide_in, stagger};
230    pub use crate::tree::{FlatRow, TreeNode, TreeView};
231    pub use crate::value::{Value, ValueExt, derived, spring_spec, value};
232    pub use crate::view::{CustomLayout, EventCtx, PaintCtx, View};
233    pub use crate::views::{
234        AspectRatio, Column, FocusScope, Fragment, Grid, IntoChildren, Margined, Panel, Row,
235        Spacer, Stack, StackPos, Text, Unit, Wrap,
236    };
237    pub use crate::virtual_list::VirtualList;
238    pub use sequoia_animation::Easing;
239
240    pub use sequoia_assets::{
241        AssetRegistry, MAX_PHOTO_DIM, PhotoError, Sprite, decode_pixels, decode_pixels_thumbnail,
242        load_pixels, load_pixels_thumbnail,
243    };
244    pub use sequoia_core::BrushStop;
245    pub use sequoia_core::{
246        BrushStroke, Fill, GradientKind, GradientStops, MAX_GRADIENT_STOPS, Pixels, WindowId,
247    };
248    pub use sequoia_draw::{
249        Dash, FillRule, Gradient, GradientStop, LineCap, LineJoin, MinMax, Path, Peaks, Radius,
250        RasterOptions, Shape, ShapeCache, StrokeStyle, Transform, WaveformCache, WaveformOpts,
251        bake_strip, layout_bars, waveform_line_points, white_noise,
252    };
253    pub use sequoia_input::{
254        CursorIcon, DropEffect, Event, EventPhase, Key, KeyEvent, Modifiers, PenTool,
255        PointerButton, PointerEvent, effect_for_modifiers,
256    };
257    pub use sequoia_layout::{
258        Align, Axis, ContainerStyle, Dock, DockStyle, FlexItem, GridFlow, GridPlacement, GridStyle,
259        Indents, Inset, Justify, LayoutCtx, LayoutStyle, Overflow, Track, WrapStyle,
260    };
261    pub use sequoia_style::{Backdrop, BorderSide, BoxStyle, Effect, Filter, Mask, ShadowSpec};
262    pub use sequoia_text::{
263        ElideMode, FontStyle, FontWeight, LetterSpacing, RichAlign, RichCaret, RichHit, RichLine,
264        RichParagraph, RichRect, TextSpan, WrapMode,
265    };
266}