1#![no_std]
2
3#[cfg(feature = "std")]
4extern crate std;
5
6pub mod block;
7pub mod completion;
8pub mod context;
9pub mod display_backend;
10#[cfg(feature = "embassy")]
11pub mod embassy;
12pub mod font;
13pub mod framebuffer;
14pub mod geometry;
15pub mod haptics;
16pub mod image;
17pub mod input;
18#[cfg(any(
19 feature = "embedded-text",
20 feature = "embedded-layout",
21 feature = "embedded-3dgfx"
22))]
23pub mod interop;
24pub mod layout;
25mod math;
26pub mod motion;
27pub mod palette;
28pub mod pdc;
29pub use motion as animation;
30pub use motion as animation_timeline;
31pub use motion as animation_timing;
32pub use motion as cinematic;
33pub use motion as screen_transition;
34pub use motion as transition_preset;
35pub use motion as widget_animation;
36pub mod present;
37pub mod render;
38pub mod round;
39pub mod screen;
40pub mod state;
41pub mod style;
42pub mod swapchain;
43#[cfg(feature = "std")]
44pub mod test_buffer;
45pub mod text;
46pub mod visual_widgets;
47pub mod widget;
48pub mod widgets;
49
50pub use haptics::{HapticPattern, HapticSequencer};
51
52pub use visual_widgets::{BusyWheel, GaugeWidget};
53#[cfg(feature = "embedded-dsp")]
54pub use visual_widgets::{SpectrumAnalyzerWidget, TouchInputFilter};
55
56pub use animation::{
57 Animation, AnimationError, AnimationHandlers, AnimationId, AnimationManager,
58 AnimationManagerCallbacks, AnimationState, Easing, InertiaAnimator, PathAnimator, PathPoint,
59 RepeatMode, SpringAnimator, Timer, Tween, apply_easing,
60};
61pub use animation_timeline::{
62 AnimationGroup, AnimationSequence, ComposedAnimation, ComposedAnimationCallbacks,
63 ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
64 Keyframe, KeyframeTrack, KeyframeTrackCallbacks, SequencePlayer, SequencePlayerStatus,
65 SequenceRepeatMode, TimelineError, TimelineStep,
66};
67pub use animation_timing::{
68 DEFAULT_DURATION_MS, FRAME_INTERVAL_MS, MOOOK_DURATION_MS, NORMALIZED_MAX,
69 PORT_HOLE_DURATION_MS, SHUTTER_DURATION_MS, interpolate_moook, moook_curve, moook_duration_ms,
70 timing_half_phase, timing_scaled, timing_shutter_phase,
71};
72pub use block::Block;
73pub use cinematic::{
74 CardDeckDirection, CardDeckState, CardStory, CardStoryTransition, CinematicPreset,
75 GlanceTileSpec, MotionTokens, PeekRevealSpec, TimelineMotionPreset, animate_glance_focus,
76 animate_peek_reveal, apply_carddeck_visibility, setup_card_story, setup_launcher_glance,
77 setup_launcher_glance_with_tokens, setup_peek_timeline, setup_peek_timeline_with_tokens,
78};
79pub use completion::{CompletionSlot, WaitTransfer, WaitTransferFuture};
80pub use context::{
81 GuiContext, GuiError, KeyBindingAction, PressTiming, WidgetBuilder, WidgetKeyBindings,
82 WidgetKeyInputPolicy,
83};
84pub use display_backend::{
85 AsyncDmaTransfer, DisplayBackend, DisplayError, DisplayRegion, DmaTransfer, SimulatorBackend,
86 TransferError,
87};
88#[cfg(feature = "embassy")]
89pub use embassy::{EmbassyWaitTransfer, EmbassyWaitTransferFuture, FrameClock};
90pub use embedded_graphics_framebuf::{
91 FrameBuf,
92 backends::{DMACapableFrameBufferBackend, EndianCorrectedBuffer, EndianCorrection},
93};
94pub use font::{BitmapFont, Font, FontId, PackedFont};
95pub use framebuffer::{Framebuffer, FramebufferGray8, FramebufferRgba8888, Rgba8888};
96pub use geometry::{Anchor, DirtyTracker, EdgeInsets, HorizontalAlign, Rect};
97#[cfg(all(feature = "std", feature = "image-decode"))]
98pub use image::{
99 BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, decode_image_auto,
100 decode_image_with, decode_ppm_ascii,
101};
102pub use image::{
103 ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef, ReelFrame, ReelPlayer, SpriteSheet, TileMode,
104 TileRef,
105};
106pub use input::{
107 EventPhaseMask, InputEvent, PointerButton, PointerState, UiEvent, UiEventFilter,
108 WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter, WidgetEventKind,
109};
110pub use layout::{
111 Align, Axis, Constraint, GridLayout, GridPlacement, GridTrack, JustifyContent, LayoutItem,
112 Length, LinearLayout,
113};
114pub use palette::{DisplayMode, DisplayPalette, InkRole, RoleColors};
115pub use pdc::{PdcCommand, PdcCommandType, PdcImage, PdcPrecisePoint};
116pub use present::PresentRegion;
117pub use render::{
118 AntiAliasMode, Blend, BlendMode, CHAR_HEIGHT, CHAR_WIDTH, ColorFormat, Compositor, Dither,
119 DrawTask, DrawTaskQueue, DrawUnit, EllipsisMode, LayerState, PartialBandBuffer, PathVerb,
120 PixelRead, RenderBackendCaps, RenderCtx, RenderQuality, SoftwareDrawUnit, StrokeCap,
121 StrokeJoin, StrokeStyle, TextAlign, TextMetrics, TextOverflow, TextOverflowPolicy, TextStyle,
122 TextWrap, Transform2D, VectorPath, VerticalAlign, dispatch_draw_tasks,
123};
124pub use round::{UnobstructedArea, circle_chord_width, round_screen_line_bounds};
125pub use screen::{
126 Screen, ScreenCommand, ScreenId, ScreenLifecycleEvent, ScreenStack, ScreenStackError,
127 ScreenTransition,
128};
129pub use screen_transition::{
130 ActiveScreenTransition, ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
131 ScreenTransitionSample, ScreenTransitionSpec, composite_framebuffer_fade,
132 fade_outgoing_opacity, render_transition_pair,
133};
134pub use state::{FeedTimelineState, ListState, ScrollState, SliderState, TabsState};
135pub use style::{
136 AlphaLinearGradient, AlphaRadialGradient, Border, GradientDirection, LinearGradient,
137 MultiPartStyle, PartStyleRule, Shadow, StateStyle, Style, StyleTransition, Theme, VisualState,
138 VisualStateMask, WidgetPart, WidgetStyle, lerp_style,
139};
140pub use swapchain::{StandardSwapChain, SwapChain};
141#[cfg(feature = "triple-buffering")]
142pub use swapchain::{StandardTripleSwapChain, TripleSwapChain};
143#[cfg(feature = "std")]
144pub use test_buffer::{LayerCanvas, TestBuffer};
145pub use text::{
146 BasicTextShaper, Line, ShapedGlyph, ShapingConfig, Span, Text, TextDirection, TextShaper,
147};
148pub use transition_preset::TransitionPreset;
149pub use widget::{
150 EventContext, EventPhase, EventPolicy, FocusGroupId, MenuContract, PropertyError, PropertyKey,
151 PropertyValue, StatefulWidget, StyleClassId, Widget, WidgetFlags, WidgetId,
152};
153pub use widget_animation::presets;
154pub use widget_animation::{
155 AnimatedProperty, AnimationConflictPolicy, BindingSnapshot, WidgetAnimationCallbacks,
156 WidgetAnimationError, WidgetAnimator, WidgetKeyframeState, WidgetPropertyKeyframe,
157};
158pub use widgets::{
159 ActionBarWidget, ActionMenuError, ActionMenuItem, ActionMenuWidget, ActionableDialogWidget,
160 BatteryState, ConfirmationDialogWidget, ContentIndicatorDirection, ContentIndicatorWidget,
161 CrumbsIndicatorWidget, DialogAction, DialogError, DialogType, NotificationAction,
162 NotificationError, NotificationPriority, NotificationSheetWidget, NumberPickerWidget,
163 PeekBannerWidget, PickerError, RichTextError, RichTextNodeWidget, ScaleMode, ScaleWidget,
164 SelectionWidget, SpinboxWidget, StatusBarError, StatusBarMode, StatusBarWidget, TableWidget,
165 TextSpan, TimeFormat, TimePickerField, TimePickerWidget, TimelineNodeState, TimelineNodeWidget,
166};
167pub use widgets::{
168 ChartMode, KeyboardLayout, NotificationLevel, SurfaceState, WidgetKind, WidgetNode,
169};
170
171pub mod prelude {
172 pub use crate::{
173 ActiveScreenTransition, Align, AlphaLinearGradient, AlphaRadialGradient, AnimatedProperty,
174 Animation, AnimationConflictPolicy, AnimationError, AnimationGroup, AnimationHandlers,
175 AnimationId, AnimationManager, AnimationManagerCallbacks, AnimationSequence,
176 AnimationState, AntiAliasMode, Axis, BasicTextShaper, BindingSnapshot, BitmapFont, Blend,
177 BlendMode, Block, Border, CardDeckDirection, CardDeckState, CardStory, CardStoryTransition,
178 ChartMode, CinematicPreset, ColorFormat, ComposedAnimation, ComposedAnimationCallbacks,
179 ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
180 Compositor, Constraint, DirtyTracker, Dither, Easing, EdgeInsets, EllipsisMode,
181 EventContext, EventPhase, EventPhaseMask, EventPolicy, FeedTimelineState, FocusGroupId,
182 Font, FontId, Framebuffer, FramebufferGray8, FramebufferRgba8888, GlanceTileSpec,
183 GradientDirection, GridLayout, GridPlacement, GridTrack, GuiContext, GuiError,
184 HapticPattern, HapticSequencer, ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef,
185 InertiaAnimator, InputEvent, KeyBindingAction, KeyboardLayout, Keyframe, KeyframeTrack,
186 KeyframeTrackCallbacks, LayerState, LayoutItem, Length, Line, LinearGradient, LinearLayout,
187 ListState, MenuContract, MotionTokens, NotificationLevel, PackedFont, PathAnimator,
188 PathPoint, PathVerb, PeekRevealSpec, PixelRead, PointerButton, PointerState, PresentRegion,
189 PressTiming, Rect, ReelFrame, ReelPlayer, RenderBackendCaps, RenderCtx, RenderQuality,
190 RepeatMode, Rgba8888, ScaleMode, ScaleWidget, Screen, ScreenCommand, ScreenId,
191 ScreenLifecycleEvent, ScreenStack, ScreenStackError, ScreenTransition,
192 ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
193 ScreenTransitionSample, ScreenTransitionSpec, ScrollState, SequencePlayer,
194 SequencePlayerStatus, SequenceRepeatMode, Shadow, ShapedGlyph, ShapingConfig, SliderState,
195 Span, SpinboxWidget, SpringAnimator, SpriteSheet, StateStyle, StatefulWidget, StrokeCap,
196 StrokeJoin, StrokeStyle, Style, StyleClassId, StyleTransition, SurfaceState, TableWidget,
197 TabsState, Text, TextAlign, TextDirection, TextMetrics, TextOverflow, TextOverflowPolicy,
198 TextShaper, TextStyle, TextWrap, Theme, TileMode, TileRef, TimelineError,
199 TimelineMotionPreset, TimelineStep, Timer, Transform2D, TransitionPreset, Tween, UiEvent,
200 UiEventFilter, VectorPath, VerticalAlign, VisualState, WidgetAnimationCallbacks,
201 WidgetAnimationError, WidgetAnimator, WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter,
202 WidgetEventKind, WidgetFlags, WidgetId, WidgetKeyBindings, WidgetKeyInputPolicy,
203 WidgetKeyframeState, WidgetKind, WidgetNode, WidgetPropertyKeyframe, WidgetStyle,
204 animate_glance_focus, animate_peek_reveal, apply_carddeck_visibility, apply_easing,
205 lerp_style, presets, render_transition_pair, setup_card_story, setup_launcher_glance,
206 setup_launcher_glance_with_tokens, setup_peek_timeline, setup_peek_timeline_with_tokens,
207 };
208
209 #[cfg(all(feature = "std", feature = "image-decode"))]
210 pub use crate::{
211 BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, LayerCanvas,
212 TestBuffer, decode_image_auto, decode_image_with, decode_ppm_ascii,
213 };
214
215 #[cfg(all(feature = "std", not(feature = "image-decode")))]
216 pub use crate::{LayerCanvas, TestBuffer};
217
218 #[cfg(feature = "macros")]
219 pub use embedded_gui_macros::{gui_kdl, include_gui};
220}
221
222#[cfg(feature = "macros")]
223pub use embedded_gui_macros::{gui_kdl, include_gui};