Skip to main content

embedded_gui/
lib.rs

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}