Releases: lucasmerlin/hello_egui
hello_egui 0.6.0 - introducing egui_flex
hello_egui and all it's crates have been updated to egui 0.29!
Thanks to @bircni who did the update to 0.29 🚀
I'd also like to announce that I'm being generously sponsored by rerun to help maintain egui and improve it's ecosystem! Thank you @emilk! ❤️
Also, two new crates have been added:
- egui_flex
- egui_material_icons
Introducing egui_flex
A flexbox implementation in egui!
Check the readme to which features of flexbox are supported.
Real-world example
In the hello_egui demo app I have a list of crates displayed as small tags in
the sidebar. When just shown with ui.horizontal_wrapped it looks really weird:
When updated to use egui_flex it looks much nicer:
Another example from hellopaint:
(notice how the bottom buttons are grown to fill the available space so things are nicely aligned, this would be impossible in egui without hardcoding the sizes)
Introducing egui_material_icons
Material icons for egui!
hello_egui 0.5.0 - intruducing egui_router!
All hello_egui crates have been updated for egui 0.28.0, and I'm excited to release egui_router!
egui_router allows you to build a multi page application with transitions. It uses matchit, axums router implementation, to resolve the routes.
Check the hello_egui examples which now uses the router to link to the different examples.
You can also customize the transitions and build a more app like experience, here is a video from the hellopaint app:
Ohne.Titel.mov
hello_egui 0.4.1 - announcing egui_form
This release introduces egui_form, a form validation crate for egui.
For a nice demo, checkout the signup form example in the hello_egui demo app
hello_egui v0.4.0 - improvements to egui_inbox, egui 0.27.0
- update all crates for egui 0.27 support
- changes from egui_inbox:
-
egui_inbox now can be used without egui
- There is a new trait AsRequestRepaint, which can be implemented for anything that can request a repaint
- Breaking: new_with_ctx now takes a reference to the context
- Breaking: read_without_ui and replace_without_ui have been renamed to read_without_ctx and replace_without_ctx
- All other methods now take a impl AsRequestRepaint instead of a &Ui
but this should not break existing code. A benefit is that you can also
call the methods with a &Context instead of a &Ui now.
-
Added
async
andtokio
features that add the following:UiInbox::spawn
to conveniently spawn a task that will be cancelled when the inbox is dropped.UiInbox::spawn_detached
to spawn a task that will not be cancelled when the inbox is dropped.
-
hello_egui v0.3.0 - egui 0.26
No fancy new features but all crates have been update with support for egui 0.26.
hello_egui 0.2.0, introducing egui_infinite_scroll, egui_virtual_list and egui_thumbhash
This release adds a couple of exciting new crates 🎉
- egui_virtual_list:
- virtual list widget for egui with support for varying heights and custom layouts
- egui_infinite_scroll
- infinite scroll widget for egui
- based on egui_virtual_list
- egui_thumbhash
- thumbash integration for egui, for nice image placeholders while the actual images are loading
For a nice example of what these crates can do together, check the gallery and chat example on the egui_dnd demo page.
- thumbash integration for egui, for nice image placeholders while the actual images are loading
Other changes:
- hello_egui and all included crates have been upgraded for egui 0.25, support for older egui versions has been dropped
- egui_inbox has a new channel-like api to allow canceling long running async tasks
- egui_suspense has a new feature to enable a async version of the api, to make data loading even more convenient
Bildschirmaufnahme.2024-01-21.um.17.06.29.mp4
(screen recording of the gallery example)
egui_dnd v0.5.0
egui_dnd v0.5.0
- Added animations when sorting
- Dragging in a ScrollArea will now scroll if we are near the edge
- Added support for dragging in a ScrollArea on touch devices (by pressing and holding until the scroll is canceled and the drag starts)
- Fixed bug where offset was wrong when the handle isn't the first element
- Allow the handle or buttons in the handle to be clicked
- Complete refactor, with much better state and detection handling
- Added
dnd
function that stores and reads the state from egui data, for simpler usage:
pub fn main() -> eframe::Result<()> {
let mut items = vec!["alfred", "bernhard", "christian"];
eframe::run_simple_native("DnD Simple Example", Default::default(), move |ctx, _frame| {
CentralPanel::default().show(ctx, |ui| {
dnd(ui, "dnd_example")
.show_vec(&mut items, |ui, item, handle, state| {
handle.ui(ui, |ui| {
ui.label("drag");
});
ui.label(**item);
});
});
})
}
- Breaking: Removed DragDropUi in favor of dnd function
- Made the drag cursor when hovering over a handle configurable
- Fixed ui having unexpected margins
- Added support for sorting in horizontal and horizontal wrapping layouts
- Improved fancy example
- Improved sorting snappiness
Demo for animations: