All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.0 - 2022-12-07
- Support for non-uniform border radius for
Primitive::Quad
. #1506 - Operation to query the current focused widget. #1526
- Additional operations for
TextInput
. #1529 - Styling support for
Svg
. #1578
- Triangle geometry using a solid color is now drawn in a single draw call. #1538
- Gradients for WebAssembly target. #1524
Overlay
layout cache not being invalidated. #1528- Operations not working for
PaneGrid
. #1533 - Mapped
widget::Operation
always returningOutcome::None
. #1536 - Padding of
TextInput
withLength::Units
width. #1539 - Clipping of
Image
andSvg
widgets iniced_glow
. #1557 - Invalid links in documentation. #1560
Custom
style ofPickList
widget. #1570- Scroller in
Scrollable
always being drawn. #1574
Many thanks to...
- @bungoboingo
- @l1Dan
- @mmstick
- @mtkennerly
- @PolyMeilex
- @rksm
- @rs017991
- @tarkah
- @wash2
0.5.0 - 2022-11-10
-
Stabilization of stateless widgets (#1393)
The old widget API has been completely replaced by stateless widgets (introduced in #1284). Alongside the new API, there are a bunch of new helper functions and macros for easily describing view logic (likerow!
andcolumn!
). -
First-class theming (#1362)
A complete overhaul of our styling primitives, introducing aTheme
as a first-class concept of the library. -
Widget operations (#1399)
An abstraction that can be used to traverse (and operate on) the widget tree of an application in order to query or update some widget state. -
Lazy
widget (#1400)
A widget that can call some view logic lazily only when some data has changed. Thanks to @nicksenger! -
Linear gradient support for
Canvas
(#1448)
TheCanvas
widget can draw linear gradients now. Thanks to @bungoboingo! -
Touch support for
Canvas
(#1305)
TheCanvas
widget now supports touch events. Thanks to @artursapek! -
Image
andSvg
support foriced_glow
(#1485)
Our OpenGL renderer now is capable of rendering both theImage
andSvg
widgets. Thanks to @ids1024!
0.4.2 - 2022-05-03
Padding
type not exposed iniced
.
0.4.1 - 2022-05-02
- Version number in
README
.
0.4.0 - 2022-05-02
-
Stateless widgets (#1284)
A brand new widget API that removes the need to keep track of internal widget state. No morebutton::State
in your application! -
Component
trait (#1131)
A new trait to implement custom widgets with internal mutable state while using composition and The Elm Architecture. -
Responsive
widget (#1193)
A widget that is aware of its dimensions and can be used to easily build responsive user interfaces. -
Experimental WebGL support (#1096)
Applications can now be rendered into an HTMLcanvas
when targeting Wasm by leveraging the WebGL support inwgpu
. Thanks to @pacmancoder and @kaimast! -
Support for Raspberry Pis and older devices (#1160)
The compatibility of our OpenGL renderer has been improved and should run on any hardware that supports OpenGL 3.0+ or OpenGL ES 2.0+. Additionally, we started maintaining Docker images foraarch64
andarmv7
to easily cross-compileiced
applications and target Raspberry Pis. Thanks to @derezzedex! -
Simpler
Renderer
APIs (#1110)
The surface of theRenderer
APIs of the library has been considerably reduced. Instead of aRenderer
trait per widget, now there are only 3 traits that are reused by all the widgets.
0.3.0 - 2021-03-31
- Touch support. #57 #650 (thanks to @simlay and @discordance!)
- Clipboard write access for
image::Viewer
widget. It allows panning and scaling of an image. #319 (thanks to @tarkah!)Tooltip
widget. It annotates content with some text on mouse hover. #465 (thanks to @yusdacra!)- Support for the
smol
async runtime. #699 (thanks to @JayceFayne!) - Support for graceful exiting when using the
Application
trait. #804 - Image format features in
iced_wgpu
to reduce code bloat. #392 (thanks to @unrelentingtech!) Focused
andUnfocused
variant towindow::Event
. #701 (thanks to @cossonleo!)WGPU_BACKEND
environment variable to configure the internal graphics backend oficed_wgpu
. #789 (thanks to @Cupnfish!)
- The
TitleBar
of aPaneGrid
now supports generic elements. #657 (thanks to @clarkmoody!) - The
Error
type now implementsSend
andSync
. #719 (thanks to @taiki-e!) - The
Style
types iniced_style
now implementClone
andCopy
. #720 (thanks to @taiki-e!) - The following dependencies have been updated:
- The following examples were improved:
- Button events not being propagated to contents. #668
- Incorrect overlay implementation for the
Button
widget. #764 Viewport::physical_width
returning the wrong value. #700- Outdated documentation for the
Sandbox
trait. #710
0.2.0 - 2020-11-26
-
Canvas
interactivity (#325)
A trait-based approach to react to mouse and keyboard interactions in theCanvas
widget. -
iced_graphics
subcrate (#354)
A backend-agnostic graphics subcrate that can be leveraged to build new renderers. -
OpenGL renderer (#354)
An OpenGL renderer powered byiced_graphics
,glow
, andglutin
. It is an alternative to the defaultwgpu
renderer. -
Overlay support (#444)
Basic support for superpositioning interactive widgets on top of other widgets. -
Faster event loop (#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 (#614)
The runtime now can tell whether a widget has handled an event or not, easing integration with existing applications. -
PickList
widget (#444)
A drop-down selector widget built on top of the new overlay support. -
QRCode
widget (#622)
A widget that displays a QR code, powered by theqrcode
crate.
0.1.1 - 2020-04-15
Settings::with_flags
to easily initialize some default settings with flags. #266Default
implementation forcanvas::layer::Cache
. #267Ctrl + Del
support forTextInput
. #268- Helper methods in
canvas::Path
to easily draw lines, rectangles, and circles. #293 From<Color>
implementation forcanvas::Fill
. #293From<String>
implementation forcanvas::Text
. #293From<&str>
implementation forcanvas::Text
. #293
new
method ofRadio
andCheckbox
now take a genericInto<String>
for the label. #260Frame::fill
now takes a genericInto<canvas::Fill>
. #293Frame::stroke
now takes a genericInto<canvas::Stroke>
. #293Frame::fill_text
now takes a genericInto<canvas::Text>
. #293
- Feature flags not being referenced in documentation. #259
- Crash in some graphics drivers when displaying an empty
Canvas
. #278 - Text measuring when spaces where present at the beginning of a
TextInput
value. #279 TextInput
producing aClip
primitive when unnecessary. #279- Alignment of
Text
primitive iniced_wgpu
. #281 CursorEntered
andCursorLeft
not being generated. #289
- Unnecessary
'static
lifetimes inRenderer
bounds. #290
0.1.0 - 2020-04-02
-
Event subscriptions (#122)
A declarative way to listen to external events asynchronously by leveraging streams. -
Custom styling (#146)
A simple, trait-based approach for customizing the appearance of different widgets. -
Canvas
widget (#193)
A widget for drawing 2D graphics with an interface inspired by the Web Canvas API and powered bylyon
. -
PaneGrid
widget (#224)
A widget that dynamically organizes layout by splitting panes that can be resized and drag and dropped. -
Svg
widget (#111)
A widget that renders vector graphics on top ofresvg
andraqote
. Thanks to @Maldela! -
ProgressBar
widget (#141)
A widget to notify progress of asynchronous tasks to your users. Thanks to @Songtronix! -
Configurable futures executor (#164)
Support for pluggingtokio
,async-std
,wasm-bindgen-futures
, or your own custom futures executor to an application. -
Compatibility with existing
wgpu
projects (#183)
A bunch of improvements to the flexibility oficed_wgpu
to allow integration in existing codebases. -
Text selection for
TextInput
(#202)
Thanks to @FabianLars and @Finnerale! -
Texture atlas for
iced_wgpu
(#154)
An atlas on top ofguillotiere
for batching draw calls. Thanks to @Maldela!
0.1.0-beta - 2019-11-25
- The old
iced
becomesiced_native
. The currenticed
crate turns into a batteries-included, cross-platform GUI library.
0.1.0-alpha - 2019-09-05
- First release! 🎉