embedded-gui 0.2.3

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

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

pub mod block;
pub mod completion;
pub mod context;
pub mod display_backend;
#[cfg(feature = "embassy")]
pub mod embassy;
pub mod font;
pub mod framebuffer;
pub mod geometry;
pub mod haptics;
pub mod image;
pub mod input;
#[cfg(any(
    feature = "embedded-text",
    feature = "embedded-layout",
    feature = "embedded-3dgfx"
))]
pub mod interop;
pub mod layout;
mod math;
pub mod motion;
pub mod palette;
pub mod pdc;
pub use motion as animation;
pub use motion as animation_timeline;
pub use motion as animation_timing;
pub use motion as cinematic;
pub use motion as screen_transition;
pub use motion as transition_preset;
pub use motion as widget_animation;
pub mod present;
pub mod render;
pub mod round;
pub mod screen;
pub mod state;
pub mod style;
pub mod swapchain;
#[cfg(feature = "std")]
pub mod test_buffer;
pub mod text;
pub mod visual_widgets;
pub mod widget;
pub mod widgets;

pub use haptics::{HapticPattern, HapticSequencer};

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 completion::{CompletionSlot, WaitTransfer, WaitTransferFuture};
pub use context::{
    GuiContext, GuiError, KeyBindingAction, PressTiming, WidgetBuilder, WidgetKeyBindings,
    WidgetKeyInputPolicy,
};
pub use display_backend::{
    AsyncDmaTransfer, DisplayBackend, DisplayError, DisplayRegion, DmaTransfer, SimulatorBackend,
    TransferError,
};
#[cfg(feature = "embassy")]
pub use embassy::{EmbassyWaitTransfer, EmbassyWaitTransferFuture, FrameClock};
pub use embedded_graphics_framebuf::{
    FrameBuf,
    backends::{DMACapableFrameBufferBackend, EndianCorrectedBuffer, EndianCorrection},
};
pub use font::{BitmapFont, Font, FontId, PackedFont};
pub use framebuffer::{Framebuffer, FramebufferGray8, FramebufferRgba8888, Rgba8888};
pub use geometry::{Anchor, DirtyTracker, EdgeInsets, HorizontalAlign, 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, GridLayout, GridPlacement, GridTrack, JustifyContent, LayoutItem,
    Length, LinearLayout,
};
pub use palette::{DisplayMode, DisplayPalette, InkRole, RoleColors};
pub use pdc::{PdcCommand, PdcCommandType, PdcImage, PdcPrecisePoint};
pub use present::PresentRegion;
pub use render::{
    AntiAliasMode, Blend, BlendMode, CHAR_HEIGHT, CHAR_WIDTH, ColorFormat, Compositor, Dither,
    DrawTask, DrawTaskQueue, DrawUnit, EllipsisMode, LayerState, PartialBandBuffer, PathVerb,
    PixelRead, RenderBackendCaps, RenderCtx, RenderQuality, SoftwareDrawUnit, StrokeCap,
    StrokeJoin, StrokeStyle, TextAlign, TextMetrics, TextOverflow, TextOverflowPolicy, TextStyle,
    TextWrap, Transform2D, VectorPath, VerticalAlign, dispatch_draw_tasks,
};
pub use round::{UnobstructedArea, circle_chord_width, round_screen_line_bounds};
pub use screen::{
    Screen, ScreenCommand, ScreenId, ScreenLifecycleEvent, ScreenStack, ScreenStackError,
    ScreenTransition,
};
pub use screen_transition::{
    ActiveScreenTransition, ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
    ScreenTransitionSample, ScreenTransitionSpec, composite_framebuffer_fade,
    fade_outgoing_opacity, render_transition_pair,
};
pub use state::{FeedTimelineState, ListState, ScrollState, SliderState, TabsState};
pub use style::{
    AlphaLinearGradient, AlphaRadialGradient, Border, GradientDirection, LinearGradient,
    MultiPartStyle, PartStyleRule, Shadow, StateStyle, Style, StyleTransition, Theme, VisualState,
    VisualStateMask, WidgetPart, WidgetStyle, lerp_style,
};
pub use swapchain::{StandardSwapChain, SwapChain};
#[cfg(feature = "triple-buffering")]
pub use swapchain::{StandardTripleSwapChain, TripleSwapChain};
#[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, PropertyError, PropertyKey,
    PropertyValue, StatefulWidget, StyleClassId, Widget, WidgetFlags, WidgetId,
};
pub use widget_animation::presets;
pub use widget_animation::{
    AnimatedProperty, AnimationConflictPolicy, BindingSnapshot, WidgetAnimationCallbacks,
    WidgetAnimationError, WidgetAnimator, WidgetKeyframeState, WidgetPropertyKeyframe,
};
pub use widgets::{
    ActionBarWidget, ActionMenuError, ActionMenuItem, ActionMenuWidget, ActionableDialogWidget,
    BatteryState, ConfirmationDialogWidget, ContentIndicatorDirection, ContentIndicatorWidget,
    CrumbsIndicatorWidget, DialogAction, DialogError, DialogType, NotificationAction,
    NotificationError, NotificationPriority, NotificationSheetWidget, NumberPickerWidget,
    PeekBannerWidget, PickerError, RichTextError, RichTextNodeWidget, ScaleMode, ScaleWidget,
    SelectionWidget, SpinboxWidget, StatusBarError, StatusBarMode, StatusBarWidget, TableWidget,
    TextSpan, TimeFormat, TimePickerField, TimePickerWidget, TimelineNodeState, TimelineNodeWidget,
};
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, BitmapFont, 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,
        Font, FontId, Framebuffer, FramebufferGray8, FramebufferRgba8888, GlanceTileSpec,
        GradientDirection, GridLayout, GridPlacement, GridTrack, GuiContext, GuiError,
        HapticPattern, HapticSequencer, ImageAtlas, ImageAtlasEntry, ImageFit, ImageRef,
        InertiaAnimator, InputEvent, KeyBindingAction, KeyboardLayout, Keyframe, KeyframeTrack,
        KeyframeTrackCallbacks, LayerState, LayoutItem, Length, Line, LinearGradient, LinearLayout,
        ListState, MenuContract, MotionTokens, NotificationLevel, PackedFont, PathAnimator,
        PathPoint, PathVerb, PeekRevealSpec, PixelRead, PointerButton, PointerState, PresentRegion,
        PressTiming, Rect, ReelFrame, ReelPlayer, RenderBackendCaps, RenderCtx, RenderQuality,
        RepeatMode, Rgba8888, ScaleMode, ScaleWidget, Screen, ScreenCommand, ScreenId,
        ScreenLifecycleEvent, ScreenStack, ScreenStackError, ScreenTransition,
        ScreenTransitionEffect, ScreenTransitionOrigin, ScreenTransitionRunner,
        ScreenTransitionSample, ScreenTransitionSpec, ScrollState, SequencePlayer,
        SequencePlayerStatus, SequenceRepeatMode, Shadow, ShapedGlyph, ShapingConfig, SliderState,
        Span, SpinboxWidget, SpringAnimator, SpriteSheet, StateStyle, StatefulWidget, StrokeCap,
        StrokeJoin, StrokeStyle, Style, StyleClassId, StyleTransition, SurfaceState, TableWidget,
        TabsState, Text, TextAlign, TextDirection, TextMetrics, TextOverflow, TextOverflowPolicy,
        TextShaper, TextStyle, TextWrap, Theme, TileMode, TileRef, TimelineError,
        TimelineMotionPreset, TimelineStep, Timer, Transform2D, TransitionPreset, Tween, UiEvent,
        UiEventFilter, VectorPath, 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};

    #[cfg(feature = "macros")]
    pub use embedded_gui_macros::{gui_kdl, include_gui};
}

#[cfg(feature = "macros")]
pub use embedded_gui_macros::{gui_kdl, include_gui};