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