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