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}