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