Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR marks the end of the
0.2.0milestone and the launch of a new release!The library has taken some steps forward since the previous release, which landed way back in April.
New features
This release contains a bunch of new functionality, internal runtime improvements, and additional subcrates. The most important new features are:
Canvasinteractivity (Canvas interactivity and Game of Life example #325)A trait-based approach to react to mouse and keyboard interactions in the
Canvaswidget.iced_graphicssubcrate (OpenGL renderer and backend-agnostic graphics subcrate #354)A backend-agnostic graphics subcrate that can be leveraged to build new renderers.
OpenGL renderer (OpenGL renderer and backend-agnostic graphics subcrate #354)
An OpenGL renderer powered by
iced_graphics,glow, andglutin. It is an alternative to the defaultwgpurenderer.Overlay support (Overlay support and
PickListwidget #444)Basic support for superpositioning interactive widgets on top of other widgets.
Faster event loop (Rebuild widget tree only after an application update #597)
The event loop now takes advantage of the data dependencies in The Elm Architecture and leverages the borrow checker to keep the widget tree alive between iterations, avoiding unnecessary rebuilds.
Event capturing (Event capturing #614)
The runtime now can tell whether a widget has handled an event or not, easing integration with existing applications.
PickListwidget (Overlay support andPickListwidget #444)A drop-down selector widget built on top of the new overlay support.
QRCodewidget (QRCodewidget #622)A widget that displays a QR code, powered by the
qrcodecrate.Applications and examples
During this year, a bunch of awesome applications have been created with Iced! Here are some of the coolest ones:
There are also smaller ones! Take a look at the Project Showcase if you want to learn more.
On a related note, the repository has additional examples that showcase some of the new features:
color_palette, a color palette generator, based on a user-defined root color.game_of_life, an interactive version of the Game of Life, invented by John Horton Conway.pick_list, a dropdown list of selectable options.qr_code, a basic QR code generator.scrollable, a showcase of the various size and style options for theScrollablewidget.Feel free to try them out and report any issues!
Thank you! 🎉
Finally, I want to emphasize the work of everyone that has contributed to this release:
Radiowidget to make it consistent withCheckbox(UpdateRadioto have the same layout members and fns asCheckbox#345).winitiniced_winitto0.23(update to winit 0.23 api #542) andguillotiereto0.6(update guillotiere to 0.6 #600).Commandimplementations (#321 Fix async examples by feature-gating Command implementations + A… #322).transparentfield towindow::Settings(Add 'transparent' in window setting #484).Point,Size, and[f32; 2](Adds From<Point> and From<Size> for [f32; 2] #558).font-kitdependency (Improvement/58/feature gate font kit #370).glamto0.9(Upgrade glam to 0.9 & use glam's Mat4 ortho rh gl. #482).color_paletteexample showcasing conversion traits forpalette(Color Enhancements #200), improved the spacing of thePaneGridwidget (Proper Pane Grid spacing #361), and implemented scrollbar customization for theScrollablewidget (Custom Scrollbar Width #575).integrationexample (Removed empty bind group from integration example #390).image::Handleconstructors (document that img handle constructors guess fmt #324).Clonetrait implementation for theTextwidget (Make the Text widget Clone even if the Renderer isn't #363).From<Color>trait forOption<Background>(ImplementFrom<Color>forOption<Background>#487).hash_layoutimplementation ofColumnandRow(Fix typo inRow's andColumn'shash_layout#563) and added conversion fuctions forSizeandVector(Add conversion functions to Size and Vector #583).on_releasehandler to theSliderwidget (Add on_release message to Slider #378).always_show_controlsmethod forpane_grid::TitleBar(Addedalways_show_controlsmethod to TitleBar #463).ColumnandRow(Remove outdatedFillcomment forColumnandRow#545).TextInput(Fix panic on paste in TextInput after programmatic modification of contents #445).focusmethod totext_input::State(Add textinput focus method #598).ProgressBarandSlider(Account for empty ranges inSliderandProgressBar#527).window::icon(Fixes #591 DimensionsMismatch error message #592).iced_webwidgets (add some accessibility features to web widgets #292).always_on_topinwindow::Settings(Fixes #539: Allow windows to be set always_on_top #543).tokioto0.3(upgrade tokio to latest version(v0.3) #595).ellipseimplementation ofpath::Builder(Calculated sweep_angle in call to lyon::geom::Arc was actually end_angle #401).iced_wgpu(Update iced_wgpu dependencies #334).progress_barmodule (Replace leftover docs in progress bar module #396).I really appreciate each one of these contributions and I am grateful for all of your efforts to improve the library. Thank you all!