1#![no_std]
2
3#[cfg(feature = "std")]
4extern crate std;
5
6pub mod animation;
7pub mod animation_timeline;
8pub mod animation_timing;
9pub mod block;
10pub mod cinematic;
11pub mod context;
12pub mod font;
13pub mod framebuffer;
14pub mod geometry;
15pub mod image;
16pub mod input;
17#[cfg(any(feature = "embedded-text", feature = "embedded-layout"))]
18pub mod interop;
19pub mod layout;
20mod math;
21pub mod present;
22pub mod render;
23pub mod screen;
24pub mod screen_transition;
25pub mod state;
26pub mod style;
27#[cfg(feature = "std")]
28pub mod test_buffer;
29pub mod text;
30pub mod transition_preset;
31pub mod visual_widgets;
32pub mod widget;
33pub mod widget_animation;
34pub mod widgets;
35
36pub use visual_widgets::{BusyWheel, GaugeWidget};
37#[cfg(feature = "embedded-dsp")]
38pub use visual_widgets::{SpectrumAnalyzerWidget, TouchInputFilter};
39
40pub use animation::{
41 Animation, AnimationError, AnimationHandlers, AnimationId, AnimationManager,
42 AnimationManagerCallbacks, AnimationState, Easing, InertiaAnimator, PathAnimator, PathPoint,
43 RepeatMode, SpringAnimator, Timer, Tween, apply_easing,
44};
45pub use animation_timeline::{
46 AnimationGroup, AnimationSequence, ComposedAnimation, ComposedAnimationCallbacks,
47 ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
48 Keyframe, KeyframeTrack, KeyframeTrackCallbacks, SequencePlayer, SequencePlayerStatus,
49 SequenceRepeatMode, TimelineError, TimelineStep,
50};
51pub use animation_timing::{
52 DEFAULT_DURATION_MS, FRAME_INTERVAL_MS, MOOOK_DURATION_MS, NORMALIZED_MAX,
53 PORT_HOLE_DURATION_MS, SHUTTER_DURATION_MS, interpolate_moook, moook_curve, moook_duration_ms,
54 timing_half_phase, timing_scaled, timing_shutter_phase,
55};
56pub use block::Block;
57pub use cinematic::{
58 CardDeckDirection, CardDeckState, CardStory, CardStoryTransition, CinematicPreset,
59 GlanceTileSpec, MotionTokens, PeekRevealSpec, TimelineMotionPreset, animate_glance_focus,
60 animate_peek_reveal, apply_carddeck_visibility, setup_card_story, setup_launcher_glance,
61 setup_launcher_glance_with_tokens, setup_peek_timeline, setup_peek_timeline_with_tokens,
62};
63pub use context::{
64 GuiContext, GuiError, KeyBindingAction, PressTiming, WidgetKeyBindings, WidgetKeyInputPolicy,
65};
66pub use font::FontId;
67pub use framebuffer::{Framebuffer, FramebufferGray8, FramebufferRgba8888, Rgba8888};
68pub use geometry::{DirtyTracker, EdgeInsets, Rect};
69#[cfg(all(feature = "std", feature = "image-decode"))]
70pub use image::{
71 BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, decode_image_auto,
72 decode_image_with, decode_ppm_ascii,
73};
74pub use image::{
75 ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef, ReelFrame, ReelPlayer, SpriteSheet, TileMode,
76 TileRef,
77};
78pub use input::{
79 EventPhaseMask, InputEvent, PointerButton, PointerState, UiEvent, UiEventFilter,
80 WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter, WidgetEventKind,
81};
82pub use layout::{Align, Axis, Constraint, LayoutItem, Length, LinearLayout};
83pub use present::PresentRegion;
84pub use render::{
85 AntiAliasMode, Blend, BlendMode, CHAR_HEIGHT, CHAR_WIDTH, ColorFormat, Compositor, Dither,
86 EllipsisMode, LayerState, PixelRead, RenderBackendCaps, RenderCtx, RenderQuality, StrokeCap,
87 StrokeJoin, StrokeStyle, TextAlign, TextMetrics, TextOverflow, TextOverflowPolicy, TextStyle,
88 TextWrap, Transform2D, VerticalAlign,
89};
90pub use screen::{
91 Screen, ScreenCommand, ScreenId, ScreenLifecycleEvent, ScreenStack, ScreenStackError,
92 ScreenTransition,
93};
94pub use screen_transition::{
95 ActiveScreenTransition, ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
96 ScreenTransitionSample, ScreenTransitionSpec, render_transition_pair,
97};
98pub use state::{FeedTimelineState, ListState, ScrollState, SliderState, TabsState};
99pub use style::{
100 AlphaLinearGradient, AlphaRadialGradient, Border, GradientDirection, LinearGradient, Shadow,
101 StateStyle, Style, StyleTransition, Theme, VisualState, WidgetStyle, lerp_style,
102};
103#[cfg(feature = "std")]
104pub use test_buffer::{LayerCanvas, TestBuffer};
105pub use text::{
106 BasicTextShaper, Line, ShapedGlyph, ShapingConfig, Span, Text, TextDirection, TextShaper,
107};
108pub use transition_preset::TransitionPreset;
109pub use widget::{
110 EventContext, EventPhase, EventPolicy, FocusGroupId, MenuContract, StatefulWidget,
111 StyleClassId, WidgetFlags, WidgetId,
112};
113pub use widget_animation::presets;
114pub use widget_animation::{
115 AnimatedProperty, AnimationConflictPolicy, BindingSnapshot, WidgetAnimationCallbacks,
116 WidgetAnimationError, WidgetAnimator, WidgetKeyframeState, WidgetPropertyKeyframe,
117};
118pub use widgets::{
119 ChartMode, KeyboardLayout, NotificationLevel, SurfaceState, WidgetKind, WidgetNode,
120};
121
122pub mod prelude {
123 pub use crate::{
124 ActiveScreenTransition, Align, AlphaLinearGradient, AlphaRadialGradient, AnimatedProperty,
125 Animation, AnimationConflictPolicy, AnimationError, AnimationGroup, AnimationHandlers,
126 AnimationId, AnimationManager, AnimationManagerCallbacks, AnimationSequence,
127 AnimationState, AntiAliasMode, Axis, BasicTextShaper, BindingSnapshot, Blend, BlendMode,
128 Block, Border, CardDeckDirection, CardDeckState, CardStory, CardStoryTransition, ChartMode,
129 CinematicPreset, ColorFormat, ComposedAnimation, ComposedAnimationCallbacks,
130 ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
131 Compositor, Constraint, DirtyTracker, Dither, Easing, EdgeInsets, EllipsisMode,
132 EventContext, EventPhase, EventPhaseMask, EventPolicy, FeedTimelineState, FocusGroupId,
133 FontId, Framebuffer, FramebufferGray8, FramebufferRgba8888, GlanceTileSpec,
134 GradientDirection, GuiContext, GuiError, ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef,
135 InertiaAnimator, InputEvent, KeyBindingAction, KeyboardLayout, Keyframe, KeyframeTrack,
136 KeyframeTrackCallbacks, LayerState, LayoutItem, Length, Line, LinearGradient, LinearLayout,
137 ListState, MenuContract, MotionTokens, NotificationLevel, PathAnimator, PathPoint,
138 PeekRevealSpec, PixelRead, PointerButton, PointerState, PresentRegion, PressTiming, Rect,
139 ReelFrame, ReelPlayer, RenderBackendCaps, RenderCtx, RenderQuality, RepeatMode, Rgba8888,
140 Screen, ScreenCommand, ScreenId, ScreenLifecycleEvent, ScreenStack, ScreenStackError,
141 ScreenTransition, ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
142 ScreenTransitionSample, ScreenTransitionSpec, ScrollState, SequencePlayer,
143 SequencePlayerStatus, SequenceRepeatMode, Shadow, ShapedGlyph, ShapingConfig, SliderState,
144 Span, SpringAnimator, SpriteSheet, StateStyle, StatefulWidget, StrokeCap, StrokeJoin,
145 StrokeStyle, Style, StyleClassId, StyleTransition, SurfaceState, TabsState, Text,
146 TextAlign, TextDirection, TextMetrics, TextOverflow, TextOverflowPolicy, TextShaper,
147 TextStyle, TextWrap, Theme, TileMode, TileRef, TimelineError, TimelineMotionPreset,
148 TimelineStep, Timer, Transform2D, TransitionPreset, Tween, UiEvent, UiEventFilter,
149 VerticalAlign, VisualState, WidgetAnimationCallbacks, WidgetAnimationError, WidgetAnimator,
150 WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter, WidgetEventKind, WidgetFlags,
151 WidgetId, WidgetKeyBindings, WidgetKeyInputPolicy, WidgetKeyframeState, WidgetKind,
152 WidgetNode, WidgetPropertyKeyframe, WidgetStyle, animate_glance_focus, animate_peek_reveal,
153 apply_carddeck_visibility, apply_easing, lerp_style, presets, render_transition_pair,
154 setup_card_story, setup_launcher_glance, setup_launcher_glance_with_tokens,
155 setup_peek_timeline, setup_peek_timeline_with_tokens,
156 };
157
158 #[cfg(all(feature = "std", feature = "image-decode"))]
159 pub use crate::{
160 BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, LayerCanvas,
161 TestBuffer, decode_image_auto, decode_image_with, decode_ppm_ascii,
162 };
163
164 #[cfg(all(feature = "std", not(feature = "image-decode")))]
165 pub use crate::{LayerCanvas, TestBuffer};
166}