#bubble #component #speech #graphics

aloe-bubble

Provides GUI components for displaying messages in speech-bubble shapes, with directional positioning and content rendering capabilities. This crate is a translation of the c++ juce module serving the same function.

1 unstable release

Uses new Rust 2024

new 0.1.1 Apr 2, 2025

#11 in #bubble

38 downloads per month
Used in 69 crates (4 directly)

GPL-3.0 license

1.5MB
14K SLoC

Aloe Bubble Crate

Aloe Bubble provides graphical user interface components that display messages or graphics within speech-bubble-shaped outlines, pointing at locations or components on the screen. It enables developers to utilize visual elements resembling speech bubbles, with customizable placement and automatic timeout functionality, to enhance their application's user interface.

Features

  • Customizable Placement: Position bubbles relative to a target with directional options (above, below, left, right).
  • Configurable Timing: Specify fade-out timing and visibility duration.
  • Event Handling: Allows bubbles to respond to mouse interactions and manage automatic deletion post-use.
  • Rich Content Support: Paints complex content within bubbles, supporting multi-line text layouts.

Usage Example

let mut bubble_component = BubbleMessageComponent::new(Some(300));
bubble_component.show_at_particular_position(&target_rect, &message_text, 5000, Some(true), Some(false));

Technical Details

  • BubbleComponent: Acts as a base class drawing and positioning bubble shapes; utilizes subclassing for content rendering.
  • BubbleMessageComponent: Extends BubbleComponent to include text message rendering.
  • BubblePlacement: Enum for permitted bubble placements (above, below, left, right).

License

This crate is licensed under the GPL-3.0 license.


Note: This README.md file was generated by an AI model and might not capture some nuances of the crate's implementation. It should provide a comprehensive overview of its capabilities.

This crate is a translation of the JUCE module.

JUCE is a c++ software framework for developing high performance audio applications.

Usage falls under the GPLv3 as well as the JUCE commercial license.

See github.com/juce-framework/JUCE and the JUCE license page for details.

This crate is in the process of being translated from c++ to rust. For progress updates, please see the workspacer rust project. designed specifically for rust projects.

Dependencies

~25–39MB
~595K SLoC