embedded-gui 0.1.4

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 framebuffer;
pub mod geometry;
pub mod image;
pub mod input;
#[cfg(any(feature = "embedded-text", feature = "embedded-layout"))]
pub mod interop;
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 visual_widgets;
pub mod widget;
pub mod widget_animation;
pub mod widgets;

pub use visual_widgets::{BusyWheel, GaugeWidget};
#[cfg(feature = "embedded-dsp")]
pub use visual_widgets::{SpectrumAnalyzerWidget, TouchInputFilter};

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 framebuffer::{Framebuffer, FramebufferGray8, FramebufferRgba8888, Rgba8888};
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, TileMode,
    TileRef,
};
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, Blend, BlendMode, CHAR_HEIGHT, CHAR_WIDTH, ColorFormat, Compositor, Dither,
    EllipsisMode, LayerState, PixelRead, 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::{
    AlphaLinearGradient, AlphaRadialGradient, 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, AlphaLinearGradient, AlphaRadialGradient, AnimatedProperty,
        Animation, AnimationConflictPolicy, AnimationError, AnimationGroup, AnimationHandlers,
        AnimationId, AnimationManager, AnimationManagerCallbacks, AnimationSequence,
        AnimationState, AntiAliasMode, Axis, BasicTextShaper, BindingSnapshot, Blend, BlendMode,
        Block, Border, CardDeckDirection, CardDeckState, CardStory, CardStoryTransition, ChartMode,
        CinematicPreset, ColorFormat, ComposedAnimation, ComposedAnimationCallbacks,
        ComposedAnimationPlayer, ComposedAnimationStatus, CompositionControls, CompositionMode,
        Compositor, Constraint, DirtyTracker, Dither, Easing, EdgeInsets, EllipsisMode,
        EventContext, EventPhase, EventPhaseMask, EventPolicy, FeedTimelineState, FocusGroupId,
        FontId, Framebuffer, FramebufferGray8, FramebufferRgba8888, 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, PixelRead, PointerButton, PointerState, PresentRegion, PressTiming, Rect,
        ReelFrame, ReelPlayer, RenderBackendCaps, RenderCtx, RenderQuality, RepeatMode, Rgba8888,
        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, TileMode, TileRef, TimelineError, TimelineMotionPreset,
        TimelineStep, Timer, Transform2D, TransitionPreset, Tween, UiEvent, UiEventFilter,
        VerticalAlign, VisualState, WidgetAnimationCallbacks, WidgetAnimationError, WidgetAnimator,
        WidgetDispatchPolicy, WidgetEvent, WidgetEventFilter, WidgetEventKind, WidgetFlags,
        WidgetId, WidgetKeyBindings, WidgetKeyInputPolicy, WidgetKeyframeState, WidgetKind,
        WidgetNode, 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};
}