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