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.9.0 - 2023-04-13
MouseArea
widget. #1594channel
helper insubscription
. #1786- Configurable
width
forScrollable
. #1749 - Support for disabled
TextInput
. #1744 - Platform-specific window settings. #1730
- Left and right colors for sliders. #1643
- Icon for
TextInput
. #1702 - Mouse over scrollbar flag for
scrollable::StyleSheet
. #1669 - Better example for
Radio
. #1762
wgpu
has been updated to0.15
iniced_wgpu
. #1789resvg
has been updated to0.29
iniced_graphics
. #1733subscription::run
now takes a function pointer. #1723
- Redundant
on_scroll
messages forScrollable
. #1788 - Outdated items in
ROADMAP.md
#1782 - Colons in shader labels causing compilation issues in
iced_wgpu
. #1779 - Re-expose winit features for window servers in Linux. #1777
- Replacement of application node in Wasm. #1765
clippy
lints for Rust 1.68. #1755- Unnecessary
Component
rebuilds. #1754 - Incorrect package name in checkbox example docs. #1750
- Fullscreen only working on primary monitor. #1742
Padding::fit
on irregular values for an axis. #1734Debug
implementation ofFont
displaying its bytes. #1731- Sliders bleeding over their rail. #1721
Fill
variant forAlignment
. #1735
Many thanks to...
- @ahoneybun
- @bq-wrongway
- @bungoboingo
- @casperstorm
- @Davidster
- @ElhamAryanpur
- @FinnPerry
- @GyulyVGC
- @JungleTryne
- @lupd
- @mmstick
- @nicksenger
- @Night-Hunter-NF
- @tarkah
- @traxys
- @Xaeroxe
0.8.0 - 2023-02-18
- Generic pixel units. #1711
custom
method towidget::Operation
trait. #1649Group
overlay. #1655- Standalone
draw
helper forimage
. #1682 - Dynamic
pick_list::Handle
. #1675 Id
support forContainer
. #1695- Custom
Checkbox
icon support. #1707 window
action to change always on top setting. #1587window
action to fetch its unique identifier. #1589
- Annotated
Command
andSubscription
with#[must_use]
. #1676 - Replaced
Fn
withFnOnce
incanvas::Cache::draw
. #1694 - Used
[default]
on enum ingame_of_life
example. #1660 - Made
QRCode
hide when data is empty inqr_code
example. #1665 - Replaced
Cow
withBytes
inimage
to accept any kind of data that implementsAsRef<[u8]>
. #1551
- Blank window on application startup. #1698
- Off-by-one pixel error on
pick_list
width. #1679 - Missing
text_input
implementation inoperation::Map
. #1678 - Widget-driven animations for
Component
. #1685 - Layout translation in
overlay::Group
. #1686 - Missing
is_over
implementation for overlays oficed_lazy
widgets. #1699 - Panic when overlay event processing removes overlay. #1700
- Panic when using operations with components in certain cases. #1701
TextInput
width when using padding. #1706iced_glow
crash on some hardware. #1703- Height of
overlay::Menu
. #1714 - Size of images in
README
. #1659 - New
clippy
lints. #1681
Many thanks to...
- @13r0ck
- @bungoboingo
- @casperstorm
- @frey
- @greatest-ape
- @ids1024
- @Jedsek
- @nicksenger
- @Night-Hunter-NF
- @sdroege
- @Sn-Kinos
- @sushigiri
- @tarkah
0.7.0 - 2023-01-14
- Widget-driven animations. #1647
- Multidirectional scrolling support for
Scrollable
. #1550 VerticalSlider
widget. #1596Shift+Click
text selection support inTextInput
. #1622- Profiling support with the
chrome-trace
feature. #1565 - Customization of the handle of a
PickList
. #1562 window
action to request user attention. #1584window
action to gain focus. #1585window
action to toggle decorations. #1588Copy
implementation forgradient::Location
. #1636
- Replaced
Application::should_exit
with awindow::close
action. #1606 - Made
focusable::Count
fields public. #1635 - Added
Dependency
argument to the closure ofLazy
. #1646 - Switched arguments order of
Toggler::new
for consistency. #1616 - Switched arguments order of
Checkbox::new
for consistency. #1633
- Compilation error in
iced_glow
when theimage
feature is enabled butsvg
isn't. #1593 - Widget operations for
Responsive
widget. #1615 - Overlay placement for
Responsive
. #1638 overlay
implementation forLazy
. #1644- Minor typo in documentation. #1624
- Links in documentation. #1634
- Missing comment in documentation. #1648
Many thanks to...
- @13r0ck
- @Araxeus
- @ben-wallis
- @bungoboingo
- @casperstorm
- @nicksenger
- @Night-Hunter-NF
- @rpitasky
- @rs017991
- @tarkah
- @wiktor-k
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! 🎉