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