#visualization #graphics #splashscreen #autodelete

aloe-splash

A Rust crate for displaying splash screens during application startup. Provides automatic positioning and timed auto-deletion for a smooth user experience. 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 4, 2025

#243 in #visualization


Used in aloe-exports

GPL-3.0 license

2MB
14K SLoC

Aloe-Splash

aloe-splash is a Rust crate designed to facilitate the seamless integration of splash screens in your applications. The primary use case for this crate is to display a visual splash screen while your application's initialization processes occur in the background.

Features

  • Automatic Positioning: The splash screen automatically positions itself at the center of the display.
  • Auto-deletion: The splash screen can be configured to auto-delete itself after a specified duration or upon a mouse click.
  • Customizable: Users can provide custom images, adjust window dimensions, and choose whether to include drop shadows.

Usage

Create a SplashScreen component in the initialise() method of your application. Once your initialization tasks are complete, invoke the delete_after_delay() method on the SplashScreen object to schedule its automatic deletion after a defined period.

Example

void MyApp::initialise(const String& commandLine) {
    splash = new SplashScreen("Welcome to my app!",
                            ImageFileFormat::loadFrom(File("/foobar/splash.jpg")),
                            true);
    launchBackgroundInitialisationThread();
}

void MyApp::myInitialisationWorkFinished() {
    splash->deleteAfterDelay(RelativeTime::seconds(4), false);
}

Implementation Details

The SplashScreen struct leverages components such as Timer and DeletedAtShutdown to manage lifecycle events. The splash screen's appearance and behavior are controlled by its background_image and minimum_visible_time parameters.

License

Licensed under GPL-3.0.


This README.md file was generated by an AI model and may not be 100% accurate, however it should be pretty good.

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–34MB
~590K SLoC