All Versions
24
Latest Version
Avg Release Cycle
31 days
Latest Release
613 days ago

Changelog History
Page 1

  • v0.19.0 Changes

    August 20, 2022

    โž• Added โญ

    • ๐Ÿš€ Added *_released & *_clicked methods for PointerState (#1582).
    • โž• Added PointerButton::Extra1 and PointerButton::Extra2 (#1592).
    • โž• Added egui::hex_color! to create Color32's from hex strings under the color-hex feature (#1596).
    • โšก๏ธ Optimized painting of filled circles (e.g. for scatter plots) by 10x or more (#1616).
    • โž• Added opt-in feature deadlock_detection to detect double-lock of mutexes on the same thread (#1619).
    • โž• Added InputState::stable_dt: a more stable estimate for the delta-time in reactive mode (#1625).
    • You can now specify a texture filter for your textures (#1636).
    • โž• Added functions keys in egui::Key (#1665).
    • โž• Added support for using PaintCallback shapes with the WGPU backend (#1684).
    • Added Contex::request_repaint_after (#1694).
    • ctrl-h now acts like backspace in TextEdit (#1812).
    • โž• Added custom_formatter method for Slider and DragValue (#1851).
    • โž• Added RawInput::has_focus which backends can set to indicate whether the UI as a whole has the keyboard focus (#1859).
    • Added PointerState::button_double_clicked() and PointerState::button_triple_clicked() (#1906).
    • โž• Added custom_formatter, binary, octal, and hexadecimal to DragValue and Slider (#1953)

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • ๐Ÿ‘ MSRV (Minimum Supported Rust Version) is now 1.61.0 (#1846).
    • PaintCallback shapes now require the whole callback to be put in an Arc<dyn Any> with the value being a backend-specific callback type (#1684).
    • Replaced needs_repaint in FullOutput with repaint_after. Used to force repaint after the set duration in reactive mode (#1694).
    • Layout::left_to_right and Layout::right_to_left now takes the vertical align as an argument. Previous default was Align::Center.
    • ๐Ÿ‘Œ Improved ergonomics of adding plot items. All plot items that take a series of 2D coordinates can now be created directly from Vec<[f64; 2]>. The Value and Values types were removed in favor of PlotPoint and PlotPoints respectively (#1816).
    • TextBuffer no longer needs to implement AsRef<str> (#1824).

    ๐Ÿ›  Fixed ๐Ÿ›

    • ๐Ÿ›  Fixed Response::changed for ui.toggle_value (#1573).
    • ๐Ÿ›  Fixed ImageButton's changing background padding on hover (#1595).
    • ๐Ÿ›  Fixed Plot auto-bounds bug (#1599).
    • ๐Ÿ›  Fixed dead-lock when alt-tabbing while also showing a tooltip (#1618).
    • ๐Ÿ›  Fixed ScrollArea scrolling when editing an unrelated TextEdit (#1779).
    • ๐Ÿ›  Fixed Slider not always generating events on change (#1854).
    • ๐Ÿ›  Fixed jitter of anchored windows for the first frame (#1856).
    • ๐Ÿ›  Fixed focus behavior when pressing Tab in a UI with no focused widget (#1861).
    • ๐Ÿ›  Fixed automatic plot bounds (#1865).
  • v0.18.1 Changes

    May 01, 2022
    • ๐Ÿ”„ Change Shape::Callback from &dyn Any to &mut dyn Any to support more backends.
  • v0.18.0 Changes

    April 30, 2022

    โž• Added โญ

    • Added Shape::Callback for backend-specific painting, with an example (#1351).
    • โž• Added Frame::canvas (#1362).
    • ๐Ÿ’ป Context::request_repaint will now wake up UI thread, if integrations has called Context::set_request_repaint_callback (#1366).
    • Added Plot::allow_scroll, Plot::allow_zoom no longer affects scrolling (#1382).
    • โž• Added Ui::push_id to resolve id clashes (#1374).
    • โž• Added ComboBox::icon (#1405).
    • Added Ui::scroll_with_delta.
    • โž• Added Frame::outer_margin.
    • โž• Added Painter::hline and Painter::vline.
    • โž• Added Link and ui.link (#1506).
    • โž• Added triple-click support; triple-clicking a TextEdit field will select the whole paragraph (#1512).
    • Added Plot::x_grid_spacer and Plot::y_grid_spacer for custom grid spacing (#1180).
    • โž• Added Ui::spinner() shortcut method (#1494).
    • โž• Added CursorIcons for resizing columns, rows, and the eight cardinal directions.
    • โž• Added Ui::toggle_value.
    • โž• Added ability to add any widgets to the header of a collapsing region (#1538).

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • ๐Ÿ‘ MSRV (Minimum Supported Rust Version) is now 1.60.0 (#1467).
    • ClippedMesh has been replaced with ClippedPrimitive (#1351).
    • ๐Ÿ“‡ Renamed Frame::margin to Frame::inner_margin.
    • ๐Ÿ“‡ Renamed AlphaImage to FontImage to discourage any other use for it (#1412).
    • โš  Warnings will be painted on screen when there is an Id clash for Grid, Plot or ScrollArea (#1452).
    • Checkbox and RadioButton with an empty label ("") will now take up much less space (#1456).
    • Replaced Memory::top_most_layer with more flexible Memory::layer_ids.
    • ๐Ÿ“‡ Renamed the feature convert_bytemuck to bytemuck (#1467).
    • ๐Ÿ“‡ Renamed the feature serialize to serde (#1467).
    • Renamed Painter::sub_region to Painter::with_clip_rect.

    ๐Ÿ›  Fixed ๐Ÿ›

    • ๐Ÿ›  Fixed ComboBoxes always being rendered left-aligned (#1304).
    • ๐Ÿ›  Fixed ui code that could lead to a deadlock (#1380).
    • Text is darker and more readable in bright mode (#1412).
    • ๐Ÿ›  Fixed a lot of broken/missing doclinks (#1419).
    • ๐Ÿ›  Fixed Ui::add_visible sometimes leaving the Ui in a disabled state (#1436).
    • โž• Added line breaking rules for Japanese text (#1498).

    ๐Ÿ—„ Deprecated โ˜ข๏ธ

    • ๐Ÿ—„ Deprecated CollapsingHeader::selectable (#1538).

    โœ‚ Removed ๐Ÿ”ฅ

    • Removed the single_threaded/multi_threaded flags - egui is now always thread-safe (#1390).

    Contributors ๐Ÿ™

  • v0.17.0 Changes

    February 22, 2022

    โž• Added โญ

    • Much improved font selection (#1154):
      • You can now select any font size and family using RichText::size amd RichText::family and the new FontId.
      • Easily change text styles with Style::text_styles.
      • Added Ui::text_style_height.
      • Added TextStyle::resolve.
      • Made the v-align and scale of user fonts tweakable (#1241).
    • Plot:
      • Added Plot::x_axis_formatter and Plot::y_axis_formatter for custom axis labels (#1130).
      • Added Plot::allow_boxed_zoom(), Plot::boxed_zoom_pointer() for boxed zooming on plots (#1188).
      • Added plot pointer coordinates with Plot::coordinates_formatter. (#1235).
      • Added linked axis support for plots via plot::LinkedAxisGroup (#1184).
    • ๐Ÿ’ป Context::load_texture to convert an image into a texture which can be displayed using e.g. ui.image(texture, size) (#1110).
    • ๐Ÿ‘€ Ui::input_mut to modify how subsequent widgets see the InputState and a convenience method InputState::consume_key for shortcuts or hotkeys (#1212).
    • ๐Ÿ’ป Added Ui::add_visible and Ui::add_visible_ui.
    • โž• Added CollapsingHeader::icon to override the default open/close icon using a custom function. (1147).
    • โž• Added ui.data(), ctx.data(), ctx.options() and ctx.tessellation_options() (#1175).
    • Added Response::on_hover_text_at_pointer as a convenience akin to Response::on_hover_text (1179).
    • โš  Opt-in dependency on tracing crate for logging warnings (#1192).
    • โž• Added ui.weak(text).
    • โž• Added Slider::step_by (1225).
    • Added Context::move_to_top and Context::top_most_layer for managing the layer on the top (#1242).
    • ๐Ÿ‘Œ Support a subset of macOS' emacs input field keybindings in TextEdit (#1243).
    • โž• Added ability to scroll an UI into view without specifying an alignment (1247).
    • Added Ui::scroll_to_rect (1252).

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • ๐Ÿ”’ โš ๏ธ Context::input and Ui::input now locks a mutex. This can lead to a dead-lock is used in an if let binding!
      • if let Some(pos) = ui.input().pointer.latest_pos() and similar must now be rewritten on two lines.
      • Search for this problem in your code using the regex if let .*input.
    • ๐Ÿ‘ Better contrast in the default light mode style (#1238).
    • ๐Ÿ“‡ Renamed CtxRef to Context (#1050).
    • ๐Ÿ‘ฏ Context can now be cloned and stored between frames (#1050).
    • ๐Ÿ’ป Renamed Ui::visible to Ui::is_visible.
    • Split Event::Text into Event::Text and Event::Paste (#1058).
    • Replaced Style::body_text_style with more generic Style::text_styles (#1154).
    • ๐Ÿ’… TextStyle is no longer Copy (#1154).
    • ๐Ÿ’… Replaced TextEdit::text_style with TextEdit::font (#1154).
    • Plot::highlight now takes a bool argument (#1159).
    • ScrollArea::show now returns a ScrollAreaOutput, so you might need to add .inner after the call to it (#1166).
    • Replaced corner_radius: f32 with rounding: Rounding, allowing per-corner rounding settings (#1206).
    • Replaced Frame's margin: Vec2 with margin: Margin, allowing for different margins on opposing sides (#1219).
    • Renamed Plot::custom_label_func to Plot::label_formatter (#1235).
    • Areas::layer_id_at ignores non-interatable layers (i.e. Tooltips) (#1240).
    • ScrollArea:s will not shrink below a certain minimum size, set by min_scrolled_width/min_scrolled_height (1255).
    • For integrations:
      • Output has now been renamed PlatformOutput and Context::run now returns the new FullOutput (#1292).
      • FontImage has been replaced by TexturesDelta (found in FullOutput), describing what textures were loaded and freed each frame (#1110).
      • The painter must support partial texture updates (#1149).
      • Added RawInput::max_texture_side which should be filled in with e.g. GL_MAX_TEXTURE_SIZE (#1154).

    ๐Ÿ›  Fixed ๐Ÿ›

    • Plot Orientation was not public, although fields using this type were (#1130).
    • Context menus now respects the theme (#1043).
    • Calling Context::set_pixels_per_point before the first frame will now work.
    • Tooltips that don't fit the window don't flicker anymore (#1240).
    • Scroll areas now follow text cursor (#1252).
    • Slider: correctly respond with drag and focus events when interacting with the value directly (1270).

    Contributors ๐Ÿ™

  • v0.16.1 Changes

    December 31, 2021

    โž• Added โญ

    • Added back CtxRef::begin_frame,end_frame as an alternative to CtxRef::run.
  • v0.16.0 Changes

    December 29, 2021

    โž• Added โญ

    • Added context menus: See Ui::menu_button and Response::context_menu (#543).
    • ๐Ÿ‘ Most widgets containing text (Label, Button etc) now supports rich text (#855).
    • Plots:
      • Added bar charts and box plots (#863).
      • You can now query information about the plot (e.g. get the mouse position in plot coordinates, or the plot bounds) while adding items. Plot (#766 and #892).
    • You can now read and write the cursor of a TextEdit (#848).
    • When using a custom font you can now specify a font index (#873).
    • โž• Added vertical sliders with Slider::new(โ€ฆ).vertical() (#875).
    • Added Button::image_and_text (#832).
    • โž• Added CollapsingHeader::open to control if it is open or collapsed (#1006).
    • Added egui::widgets::color_picker::color_picker_color32 to show the color picker.

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • ๐Ÿ‘ MSRV (Minimum Supported Rust Version) is now 1.56.0.
    • ๐Ÿ’ป ui.add(Button::new("โ€ฆ").text_color(โ€ฆ)) is now ui.button(RichText::new("โ€ฆ").color(โ€ฆ)) (same for Label )(#855).
    • Plots now provide a show method that has to be used to add items to and show the plot (#766).
    • ๐Ÿ’ป menu::menu(ui, ...) is now ui.menu_button(...) (#543)
    • Replaced CtxRef::begin_frame and end_frame with CtxRef::run (#872).
    • Replaced scroll_delta and zoom_delta in RawInput with Event::Scroll and Event::Zoom.
    • Unified the four Memory data buckets (data, data_temp, id_data and id_data_temp) into a single Memory::data, with a new interface (#836).
    • โœ… Replaced Ui::__test with egui::__run_test_ui (#872).

    ๐Ÿ›  Fixed ๐Ÿ›

    • ๐Ÿ›  Fixed ComboBox and other popups getting clipped to parent window (#885).
    • ๐Ÿ‘ The color picker is now better at keeping the same hue even when saturation goes to zero (#886).

    โœ‚ Removed ๐Ÿ”ฅ

    • โœ‚ Removed egui::math (use egui::emath instead).
    • โœ‚ Removed egui::paint (use egui::epaint instead).

    Contributors ๐Ÿ™

  • v0.15.0 Changes

    October 24, 2021

    โž• Added โญ

    • โž• Added horizontal scrolling support to ScrollArea and Window (opt-in).
    • TextEdit::layouter: Add custom text layout for e.g. syntax highlighting or WYSIWYG.
    • ๐Ÿ’… Fonts::layout_job: New text layout engine allowing mixing fonts, colors and styles, with underlining and strikethrough.
    • โž• Added ui.add_enabled(bool, widget) to easily add a possibly disabled widget.
    • Added ui.add_enabled_ui(bool, |ui| โ€ฆ) to create a possibly disabled UI section.
    • โž• Added feature "serialize" separatedly from "persistence".
    • Added egui::widgets::global_dark_light_mode_buttons to easily add buttons for switching the egui theme.
    • TextEdit can now be used to show text which can be selected and copied, but not edited.
    • โž• Added Memory::caches for caching things from one frame to the next.

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • ๐Ÿ”„ Change the default monospace font to Hack.
    • ๐Ÿ’ป Label text will now be centered, right-aligned and/or justified based on the layout of the Ui it is in.
    • Hyperlink will now word-wrap just like a Label.
    • ๐Ÿ’ป All Uis must now have a finite max_rect.
      • Deprecated: max_rect_finite, available_size_before_wrap_finite and available_rect_before_wrap_finite.
    • Painter/Fonts: text layout now expect a color when creating a Galley. You may override that color with Painter::galley_with_color.
    • ๐Ÿ‘ MSRV (Minimum Supported Rust Version) is now 1.54.0.
    • ๐Ÿ’… By default, DragValues no longer show a tooltip when hovered. Change with Style::explanation_tooltips.
    • Smaller and nicer color picker.
    • ScrollArea will auto-shrink to content size unless told otherwise using ScollArea::auto_shrink.
    • By default, Slider's clamp_to_range is set to true.
    • ๐Ÿ“‡ Renamed TextEdit::enabled to TextEdit::interactive.
    • ๐Ÿ’ป ui.label (and friends) now take impl ToString as argument instead of impl Into<Label>.

    ๐Ÿ›  Fixed ๐Ÿ›

    • ๐Ÿ›  Fixed wrongly sized multiline TextEdit in justified layouts.
    • ๐Ÿ›  Fixed clip rectangle of windows that don't fit the central area.
    • ๐Ÿ‘‰ Show tooltips above widgets on touch screens.
    • ๐Ÿ›  Fixed popups sometimes getting clipped by panels.

    โœ‚ Removed ๐Ÿ”ฅ

    • ๐Ÿ’ป Replace Button::enabled with ui.add_enabled.

    Contributors ๐Ÿ™

  • v0.14.2 Changes

    August 28, 2021

    ๐Ÿ›  Fixed ๐Ÿ›

    • ๐Ÿ›  Fixed window resize bug introduced in 0.14.1.
  • v0.14.1 Changes

    August 28, 2021

    โž• Added โญ

    • โž• Added Ui::horizontal_top.

    ๐Ÿ›  Fixed ๐Ÿ›

    • Fixed set_width/set_min_width/set_height/set_min_height/expand_to_include_x/expand_to_include_y.
    • ๐Ÿ‘‰ Make minimum grid column width propagate properly.
    • ๐Ÿ‘‰ Make sure TextEdit contents expand to fill width if applicable.
    • ProgressBar: add a minimum width and fix for having it in an infinite layout.
    • ๐Ÿ›  Fixed sometimes not being able to click inside a combo box or popup menu.
  • v0.14.0 Changes

    August 24, 2021

    โž• Added โญ

    • ๐Ÿ’ป Panels can now be added to any Ui.
    • Plot:
      • Line styles.
      • Added show_background and show_axes methods to Plot.
    • Progress bar.
    • ๐Ÿ’ป Grid::num_columns: allow the last column to take up the rest of the space of the parent Ui.
    • โž• Added an API for dropping files into egui (see RawInput).
    • CollapsingHeader can now optionally be selectable.

    ๐Ÿ”„ Changed ๐Ÿ”ง

    • A single-line TextEdit will now clip text that doesn't fit in it, and scroll.
    • ๐Ÿ’ป Return closure return value from Area::show, ComboBox::show_ui, ComboBox::combo_box_with_label, Window::show, popup::*, menu::menu.
    • ๐Ÿ Only move/resize windows with primary mouse button.
    • ๐Ÿšš Tooltips are now moved to not cover the widget they are attached to.

    ๐Ÿ›  Fixed ๐Ÿ›

    • Fixed custom font definitions getting replaced when pixels_per_point is changed.
    • ๐Ÿ›  Fixed lost_focus for TextEdit.
    • Clicking the edge of a menu button will now properly open the menu.
    • ๐Ÿ›  Fixed hover detection close to an Area.
    • Fixed case where Plot's min_auto_bounds could be ignored after the first call to Plot::ui.
    • ๐Ÿ›  Fixed slow startup when using large font files.

    Contributors ๐Ÿ™