Release 0.2
— Canvas interactivity, overlay support, a renderer alternative, and more!
#637
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.0
milestone 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:
Canvas
interactivity (Canvas interactivity and Game of Life example #325)A trait-based approach to react to mouse and keyboard interactions in the
Canvas
widget.iced_graphics
subcrate (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 defaultwgpu
renderer.Overlay support (Overlay support and
PickList
widget #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.
PickList
widget (Overlay support andPickList
widget #444)A drop-down selector widget built on top of the new overlay support.
QRCode
widget (QRCode
widget #622)A widget that displays a QR code, powered by the
qrcode
crate.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 theScrollable
widget.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:
Radio
widget to make it consistent withCheckbox
(UpdateRadio
to have the same layout members and fns asCheckbox
#345).winit
iniced_winit
to0.23
(update to winit 0.23 api #542) andguillotiere
to0.6
(update guillotiere to 0.6 #600).Command
implementations (#321 Fix async examples by feature-gating Command implementations + A… #322).transparent
field towindow::Settings
(Add 'transparent' in window setting #484).Point
,Size
, and[f32; 2]
(Adds From<Point> and From<Size> for [f32; 2] #558).font-kit
dependency (Improvement/58/feature gate font kit #370).glam
to0.9
(Upgrade glam to 0.9 & use glam's Mat4 ortho rh gl. #482).color_palette
example showcasing conversion traits forpalette
(Color Enhancements #200), improved the spacing of thePaneGrid
widget (Proper Pane Grid spacing #361), and implemented scrollbar customization for theScrollable
widget (Custom Scrollbar Width #575).integration
example (Removed empty bind group from integration example #390).image::Handle
constructors (document that img handle constructors guess fmt #324).Clone
trait implementation for theText
widget (Make the Text widget Clone even if the Renderer isn't #363).From<Color>
trait forOption<Background>
(ImplementFrom<Color>
forOption<Background>
#487).hash_layout
implementation ofColumn
andRow
(Fix typo inRow
's andColumn
'shash_layout
#563) and added conversion fuctions forSize
andVector
(Add conversion functions to Size and Vector #583).on_release
handler to theSlider
widget (Add on_release message to Slider #378).always_show_controls
method forpane_grid::TitleBar
(Addedalways_show_controls
method to TitleBar #463).Column
andRow
(Remove outdatedFill
comment forColumn
andRow
#545).TextInput
(Fix panic on paste in TextInput after programmatic modification of contents #445).focus
method totext_input::State
(Add textinput focus method #598).ProgressBar
andSlider
(Account for empty ranges inSlider
andProgressBar
#527).window::icon
(Fixes #591 DimensionsMismatch error message #592).iced_web
widgets (add some accessibility features to web widgets #292).always_on_top
inwindow::Settings
(Fixes #539: Allow windows to be set always_on_top #543).tokio
to0.3
(upgrade tokio to latest version(v0.3) #595).ellipse
implementation ofpath::Builder
(Calculated sweep_angle in call to lyon::geom::Arc was actually end_angle #401).iced_wgpu
(Update iced_wgpu dependencies #334).progress_bar
module (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!