Skip to main content

Crate embedded_gui

Crate embedded_gui 

Source

Re-exports§

pub use haptics::HapticPattern;
pub use haptics::HapticSequencer;
pub use visual_widgets::BusyWheel;
pub use visual_widgets::GaugeWidget;
pub use animation::Animation;
pub use animation::AnimationError;
pub use animation::AnimationHandlers;
pub use animation::AnimationId;
pub use animation::AnimationManager;
pub use animation::AnimationManagerCallbacks;
pub use animation::AnimationState;
pub use animation::Easing;
pub use animation::InertiaAnimator;
pub use animation::PathAnimator;
pub use animation::PathPoint;
pub use animation::RepeatMode;
pub use animation::SpringAnimator;
pub use animation::Timer;
pub use animation::Tween;
pub use animation::apply_easing;
pub use animation_timeline::AnimationGroup;
pub use animation_timeline::AnimationSequence;
pub use animation_timeline::ComposedAnimation;
pub use animation_timeline::ComposedAnimationCallbacks;
pub use animation_timeline::ComposedAnimationPlayer;
pub use animation_timeline::ComposedAnimationStatus;
pub use animation_timeline::CompositionControls;
pub use animation_timeline::CompositionMode;
pub use animation_timeline::Keyframe;
pub use animation_timeline::KeyframeTrack;
pub use animation_timeline::KeyframeTrackCallbacks;
pub use animation_timeline::SequencePlayer;
pub use animation_timeline::SequencePlayerStatus;
pub use animation_timeline::SequenceRepeatMode;
pub use animation_timeline::TimelineError;
pub use animation_timeline::TimelineStep;
pub use animation_timing::DEFAULT_DURATION_MS;
pub use animation_timing::FRAME_INTERVAL_MS;
pub use animation_timing::MOOOK_DURATION_MS;
pub use animation_timing::NORMALIZED_MAX;
pub use animation_timing::PORT_HOLE_DURATION_MS;
pub use animation_timing::SHUTTER_DURATION_MS;
pub use animation_timing::interpolate_moook;
pub use animation_timing::moook_curve;
pub use animation_timing::moook_duration_ms;
pub use animation_timing::timing_half_phase;
pub use animation_timing::timing_scaled;
pub use animation_timing::timing_shutter_phase;
pub use block::Block;
pub use cinematic::CardDeckDirection;
pub use cinematic::CardDeckState;
pub use cinematic::CardStory;
pub use cinematic::CardStoryTransition;
pub use cinematic::CinematicPreset;
pub use cinematic::GlanceTileSpec;
pub use cinematic::MotionTokens;
pub use cinematic::PeekRevealSpec;
pub use cinematic::TimelineMotionPreset;
pub use cinematic::animate_glance_focus;
pub use cinematic::animate_peek_reveal;
pub use cinematic::apply_carddeck_visibility;
pub use cinematic::setup_card_story;
pub use cinematic::setup_launcher_glance;
pub use cinematic::setup_launcher_glance_with_tokens;
pub use cinematic::setup_peek_timeline;
pub use cinematic::setup_peek_timeline_with_tokens;
pub use completion::CompletionSlot;
pub use completion::WaitTransfer;
pub use completion::WaitTransferFuture;
pub use context::GuiContext;
pub use context::GuiError;
pub use context::KeyBindingAction;
pub use context::PressTiming;
pub use context::WidgetKeyBindings;
pub use context::WidgetKeyInputPolicy;
pub use display_backend::AsyncDmaTransfer;
pub use display_backend::DisplayBackend;
pub use display_backend::DisplayError;
pub use display_backend::DisplayRegion;
pub use display_backend::DmaTransfer;
pub use display_backend::SimulatorBackend;
pub use display_backend::TransferError;
pub use font::FontId;
pub use framebuffer::Framebuffer;
pub use framebuffer::FramebufferGray8;
pub use framebuffer::FramebufferRgba8888;
pub use framebuffer::Rgba8888;
pub use geometry::DirtyTracker;
pub use geometry::EdgeInsets;
pub use geometry::Rect;
pub use image::ImageAtlas;
pub use image::ImageAtlasEntry;
pub use image::ImageFit;
pub use image::ImageRef;
pub use image::ReelFrame;
pub use image::ReelPlayer;
pub use image::SpriteSheet;
pub use image::TileMode;
pub use image::TileRef;
pub use input::EventPhaseMask;
pub use input::InputEvent;
pub use input::PointerButton;
pub use input::PointerState;
pub use input::UiEvent;
pub use input::UiEventFilter;
pub use input::WidgetDispatchPolicy;
pub use input::WidgetEvent;
pub use input::WidgetEventFilter;
pub use input::WidgetEventKind;
pub use layout::Align;
pub use layout::Axis;
pub use layout::Constraint;
pub use layout::LayoutItem;
pub use layout::Length;
pub use layout::LinearLayout;
pub use palette::DisplayMode;
pub use palette::DisplayPalette;
pub use palette::InkRole;
pub use palette::RoleColors;
pub use present::PresentRegion;
pub use render::AntiAliasMode;
pub use render::Blend;
pub use render::BlendMode;
pub use render::CHAR_HEIGHT;
pub use render::CHAR_WIDTH;
pub use render::ColorFormat;
pub use render::Compositor;
pub use render::Dither;
pub use render::EllipsisMode;
pub use render::LayerState;
pub use render::RenderBackendCaps;
pub use render::RenderCtx;
pub use render::RenderQuality;
pub use render::StrokeCap;
pub use render::StrokeJoin;
pub use render::StrokeStyle;
pub use render::TextAlign;
pub use render::TextMetrics;
pub use render::TextOverflow;
pub use render::TextOverflowPolicy;
pub use render::TextStyle;
pub use render::TextWrap;
pub use render::Transform2D;
pub use render::VerticalAlign;
pub use screen::Screen;
pub use screen::ScreenCommand;
pub use screen::ScreenId;
pub use screen::ScreenLifecycleEvent;
pub use screen::ScreenStack;
pub use screen::ScreenStackError;
pub use screen::ScreenTransition;
pub use screen_transition::ActiveScreenTransition;
pub use screen_transition::ScreenTransitionEffect;
pub use screen_transition::ScreenTransitionOrigin;
pub use screen_transition::ScreenTransitionRunner;
pub use screen_transition::ScreenTransitionSample;
pub use screen_transition::ScreenTransitionSpec;
pub use screen_transition::composite_framebuffer_fade;
pub use screen_transition::fade_outgoing_opacity;
pub use screen_transition::render_transition_pair;
pub use state::FeedTimelineState;
pub use state::ListState;
pub use state::ScrollState;
pub use state::SliderState;
pub use state::TabsState;
pub use style::AlphaLinearGradient;
pub use style::AlphaRadialGradient;
pub use style::Border;
pub use style::GradientDirection;
pub use style::LinearGradient;
pub use style::Shadow;
pub use style::StateStyle;
pub use style::Style;
pub use style::StyleTransition;
pub use style::Theme;
pub use style::VisualState;
pub use style::WidgetStyle;
pub use style::lerp_style;
pub use swapchain::StandardSwapChain;
pub use swapchain::SwapChain;
pub use test_buffer::LayerCanvas;
pub use test_buffer::TestBuffer;
pub use text::BasicTextShaper;
pub use text::Line;
pub use text::ShapedGlyph;
pub use text::ShapingConfig;
pub use text::Span;
pub use text::Text;
pub use text::TextDirection;
pub use text::TextShaper;
pub use transition_preset::TransitionPreset;
pub use widget::EventContext;
pub use widget::EventPhase;
pub use widget::EventPolicy;
pub use widget::FocusGroupId;
pub use widget::MenuContract;
pub use widget::StatefulWidget;
pub use widget::StyleClassId;
pub use widget::WidgetFlags;
pub use widget::WidgetId;
pub use widget_animation::presets;
pub use widget_animation::AnimatedProperty;
pub use widget_animation::AnimationConflictPolicy;
pub use widget_animation::BindingSnapshot;
pub use widget_animation::WidgetAnimationCallbacks;
pub use widget_animation::WidgetAnimationError;
pub use widget_animation::WidgetAnimator;
pub use widget_animation::WidgetKeyframeState;
pub use widget_animation::WidgetPropertyKeyframe;
pub use widgets::ChartMode;
pub use widgets::KeyboardLayout;
pub use widgets::NotificationLevel;
pub use widgets::SurfaceState;
pub use widgets::WidgetKind;
pub use widgets::WidgetNode;

Modules§

animation
Core animation primitives for embedded-gui. Designed for deterministic, fixed-capacity operation.
animation_timeline
animation_timing
Animation timing helpers for embedded transitions.
block
cinematic
High-level cinematic UI building blocks inspired by smartwatch UX patterns. These helpers stay no_std friendly and compose with existing widgets/animators.
completion
ISR-safe DMA completion signaling for async and sync present paths.
context
display_backend
Display backend abstraction for DMA-based rendering.
font
framebuffer
A RAM-backed, readback-capable framebuffer.
geometry
haptics
Lightweight haptic pattern sequencer for microcontrollers and embedded GUIs.
image
input
layout
palette
Semantic color roles and display modes for HUD / instrument panels.
prelude
present
render
screen
screen_transition
state
style
swapchain
Swap chain implementation for double-buffered rendering.
test_buffer
text
transition_preset
Named screen transition presets with default durations and easing.
visual_widgets
Custom visual widgets & DSP-accelerated UI controls for embedded-gui.
widget
widget_animation
Widget-level animation bindings built on top of AnimationManager. Keeps fixed-capacity, no-allocation behavior suitable for embedded targets.
widgets

Structs§

EndianCorrectedBuffer
A backend for FrameBuf which changes the underlying byte order. This can be useful when using the buffer for DMA with peripherals that have a different endianness than the host.
FrameBuf
Constructs a frame buffer in memory. Lets you define the width(X), height (Y) and pixel type your using in your display (RGB, Monochrome etc.)

Enums§

EndianCorrection
Enum indicating how the bytes should be converted in the host’s memory.

Traits§

DMACapableFrameBufferBackend
Backends implementing this Trait can be used for DMA.
PixelRead
Capability trait for draw targets that can read back a pixel they’ve already written. Optional: the default opacity/blend APIs on RenderCtx only require DrawTarget and approximate translucency with ordered dithering, so they keep working on write-only displays. Implementing PixelRead additionally unlocks the *_true_alpha methods, which composite against the destination’s actual current contents instead of dithering.