embedded-gui 0.1.0

no_std GUI and HUD primitives for embedded-graphics displays
Documentation
#![no_std]

#[cfg(feature = "std")]
extern crate std;

pub mod animation;
pub mod animation_timeline;
pub mod animation_timing;
pub mod block;
pub mod cinematic;
pub mod context;
pub mod font;
pub mod geometry;
pub mod image;
pub mod input;
pub mod layout;
mod math;
pub mod present;
pub mod render;
pub mod screen;
pub mod screen_transition;
pub mod state;
pub mod style;
#[cfg(feature = "std")]
pub mod test_buffer;
pub mod text;
pub mod transition_preset;
pub mod widget;
pub mod widget_animation;
pub mod widgets;

pub use animation::{
    Animation, AnimationError, AnimationHandlers, AnimationId, AnimationManager,
    AnimationManagerCallbacks, AnimationState, Easing, InertiaAnimator, PathAnimator, PathPoint,
    RepeatMode, SpringAnimator, Timer, Tween, apply_easing,
};
pub use animation_timeline::{
    AnimationGroup, AnimationSequence, ComposedAnimation, ComposedAnimationCallbacks,
    ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
    Keyframe, KeyframeTrack, KeyframeTrackCallbacks, SequencePlayer, SequencePlayerStatus,
    SequenceRepeatMode, TimelineError, TimelineStep,
};
pub use animation_timing::{
    DEFAULT_DURATION_MS, FRAME_INTERVAL_MS, MOOOK_DURATION_MS, NORMALIZED_MAX,
    PORT_HOLE_DURATION_MS, SHUTTER_DURATION_MS, interpolate_moook, moook_curve, moook_duration_ms,
    timing_half_phase, timing_scaled, timing_shutter_phase,
};
pub use block::Block;
pub use cinematic::{
    CardDeckDirection, CardDeckState, CardStory, CardStoryTransition, CinematicPreset,
    GlanceTileSpec, MotionTokens, PeekRevealSpec, TimelineMotionPreset, animate_glance_focus,
    animate_peek_reveal, apply_carddeck_visibility, setup_card_story, setup_launcher_glance,
    setup_launcher_glance_with_tokens, setup_peek_timeline, setup_peek_timeline_with_tokens,
};
pub use context::{
    GuiContext, GuiError, KeyBindingAction, PressTiming, WidgetKeyBindings, WidgetKeyInputPolicy,
};
pub use font::FontId;
pub use geometry::{DirtyTracker, EdgeInsets, Rect};
#[cfg(all(feature = "std", feature = "image-decode"))]
pub use image::{
    BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, decode_image_auto,
    decode_image_with, decode_ppm_ascii,
};
pub use image::{
    ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef, ReelFrame, ReelPlayer, SpriteSheet,
};
pub use input::{
    EventPhaseMask, InputEvent, PointerButton, PointerState, UiEvent, UiEventFilter,
    WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter, WidgetEventKind,
};
pub use layout::{Align, Axis, Constraint, LayoutItem, Length, LinearLayout};
pub use present::PresentRegion;
pub use render::{
    AntiAliasMode, BlendMode, CHAR_HEIGHT, CHAR_WIDTH, ColorFormat, EllipsisMode, LayerState,
    RenderBackendCaps, RenderCtx, RenderQuality, StrokeCap, StrokeJoin, StrokeStyle, TextAlign,
    TextMetrics, TextOverflow, TextOverflowPolicy, TextStyle, TextWrap, Transform2D, VerticalAlign,
};
pub use screen::{
    Screen, ScreenCommand, ScreenId, ScreenLifecycleEvent, ScreenStack, ScreenStackError,
    ScreenTransition,
};
pub use screen_transition::{
    ActiveScreenTransition, ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
    ScreenTransitionSample, ScreenTransitionSpec, render_transition_pair,
};
pub use state::{FeedTimelineState, ListState, ScrollState, SliderState, TabsState};
pub use style::{
    Border, GradientDirection, LinearGradient, Shadow, StateStyle, Style, StyleTransition, Theme,
    VisualState, WidgetStyle, lerp_style,
};
#[cfg(feature = "std")]
pub use test_buffer::{LayerCanvas, TestBuffer};
pub use text::{
    BasicTextShaper, Line, ShapedGlyph, ShapingConfig, Span, Text, TextDirection, TextShaper,
};
pub use transition_preset::TransitionPreset;
pub use widget::{
    EventContext, EventPhase, EventPolicy, FocusGroupId, MenuContract, StatefulWidget,
    StyleClassId, WidgetFlags, WidgetId,
};
pub use widget_animation::presets;
pub use widget_animation::{
    AnimatedProperty, AnimationConflictPolicy, BindingSnapshot, WidgetAnimationCallbacks,
    WidgetAnimationError, WidgetAnimator, WidgetKeyframeState, WidgetPropertyKeyframe,
};
pub use widgets::{
    ChartMode, KeyboardLayout, NotificationLevel, SurfaceState, WidgetKind, WidgetNode,
};

pub mod prelude {
    pub use crate::{
        ActiveScreenTransition, Align, AnimatedProperty, Animation, AnimationConflictPolicy,
        AnimationError, AnimationGroup, AnimationHandlers, AnimationId, AnimationManager,
        AnimationManagerCallbacks, AnimationSequence, AnimationState, AntiAliasMode, Axis,
        BasicTextShaper, BindingSnapshot, BlendMode, Block, Border, CardDeckDirection,
        CardDeckState, CardStory, CardStoryTransition, ChartMode, CinematicPreset, ColorFormat,
        ComposedAnimation, ComposedAnimationCallbacks, ComposedAnimationPlayer,
        ComposedAnimationStatus, CompositionControls, CompositionMode, Constraint, DirtyTracker,
        Easing, EdgeInsets, EllipsisMode, EventContext, EventPhase, EventPhaseMask, EventPolicy,
        FeedTimelineState, FocusGroupId, FontId, GlanceTileSpec, GradientDirection, GuiContext,
        GuiError, ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef, InertiaAnimator, InputEvent,
        KeyBindingAction, KeyboardLayout, Keyframe, KeyframeTrack, KeyframeTrackCallbacks,
        LayerState, LayoutItem, Length, Line, LinearGradient, LinearLayout, ListState,
        MenuContract, MotionTokens, NotificationLevel, PathAnimator, PathPoint, PeekRevealSpec,
        PointerButton, PointerState, PresentRegion, PressTiming, Rect, ReelFrame, ReelPlayer,
        RenderBackendCaps, RenderCtx, RenderQuality, RepeatMode, Screen, ScreenCommand, ScreenId,
        ScreenLifecycleEvent, ScreenStack, ScreenStackError, ScreenTransition,
        ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
        ScreenTransitionSample, ScreenTransitionSpec, ScrollState, SequencePlayer,
        SequencePlayerStatus, SequenceRepeatMode, Shadow, ShapedGlyph, ShapingConfig, SliderState,
        Span, SpringAnimator, SpriteSheet, StateStyle, StatefulWidget, StrokeCap, StrokeJoin,
        StrokeStyle, Style, StyleClassId, StyleTransition, SurfaceState, TabsState, Text,
        TextAlign, TextDirection, TextMetrics, TextOverflow, TextOverflowPolicy, TextShaper,
        TextStyle, TextWrap, Theme, TimelineError, TimelineMotionPreset, TimelineStep, Timer,
        Transform2D, TransitionPreset, Tween, UiEvent, UiEventFilter, VerticalAlign, VisualState,
        WidgetAnimationCallbacks, WidgetAnimationError, WidgetAnimator, WidgetDispatchPolicy,
        WidgetEvent, WidgetEventFilter, WidgetEventKind, WidgetFlags, WidgetId, WidgetKeyBindings,
        WidgetKeyInputPolicy, WidgetKeyframeState, WidgetKind, WidgetPropertyKeyframe, WidgetStyle,
        animate_glance_focus, animate_peek_reveal, apply_carddeck_visibility, apply_easing,
        lerp_style, presets, render_transition_pair, setup_card_story, setup_launcher_glance,
        setup_launcher_glance_with_tokens, setup_peek_timeline, setup_peek_timeline_with_tokens,
    };

    #[cfg(all(feature = "std", feature = "image-decode"))]
    pub use crate::{
        BasicImageDecoder, EncodedImageFormat, ImageDecodeError, ImageDecoder, LayerCanvas,
        TestBuffer, decode_image_auto, decode_image_with, decode_ppm_ascii,
    };

    #[cfg(all(feature = "std", not(feature = "image-decode")))]
    pub use crate::{LayerCanvas, TestBuffer};
}