Release 0.5 — Stabilization of stateless widgets, first-class theming, widget operations, Lazy widget, and more!#1520
Merged
Merged
Conversation
|
Wow, you guys do really amazing things. |
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.5.0milestone and the launch of a new release 🚀New features
Stabilization of stateless widgets (Replace stateful widgets with the new
iced_pureAPI #1393)The old widget API has been completely replaced by stateless widgets (introduced in Stateless widgets #1284). Alongside the new API, there are a bunch of new helper functions and macros for easily describing view logic (like
row!andcolumn!).First-class theming (Theming #1362)
A complete overhaul of our styling primitives, introducing a
Themeas a first-class concept of the library.Widget operations (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.
Lazywidget (Lazywidget #1400)A widget that can call some view logic lazily only when some data has changed. Thanks to @nicksenger!
Linear gradient support for
Canvas(Add linear gradient support to canvas widget #1448)The
Canvaswidget can draw linear gradients now. Thanks to @bungoboingo!Touch support for
Canvas(Expose touch events in canvas widget #1305)The
Canvaswidget now supports touch events. Thanks to @artursapek!ImageandSvgsupport foriced_glow(Glow image rendering support; move image/svg code to iced_graphics #1485)Our OpenGL renderer now is capable of rendering both the
ImageandSvgwidgets. Thanks to @ids1024!Showcase
During this year, many users have chosen iced to build their applications! Here are some of the coolest ones:
yt-dlpwritten in Rust.Finally, and deserving a special mention, System76 has decided to use iced instead of GTK for Pop!_OS' desktop environment 🎉 This is one of the most important adoption events since the inception of the library. The engineers at System76 are already contributing a bunch of great improvements to iced, as well as breaking ground in long-standing issues that could benefit the whole GUI ecosystem in Rust (like proper text rendering!).
Thank you! 🎉
As always, I want to say thank you to everyone that has contributed to this release:
overlay::menupublicly (Makeoverlay::menuaccessible #1425).integrationexamples after a rename (Update docs for renamed integration examples #1433).applicationfeature toiced_winit(Add application feature, which allows to build freestanding wgpu app #1196).READMEoficed_wgpu(Fix wgpu README supported backends #1458).Canvaswidget (Expose touch events in canvas widget #1305).Canvaswidget (Add linear gradient support to canvas widget #1448), andiced_glow(Fixed issues with old GL versions ( <= 2.1 ) #1518).READMEto have similar height (fix: corrected images inREADME.mdto be similar height. #1356).wgputo0.13(updatewgputo0.13#1378).window::Icon(Added convenience functions for window::icon::Icon #1174).Canvaswidget (Update import path in pure canvas example #1373), andintegration_wgpu(Update docs for runningintegration_wgpuexample #1434).applicationfeature iniced_glutin(fix: enableapplicationfeature required iniced_glutin#1502).window::Action::Moveis unsupported on Wayland (Document thatwindow::Action::Moveis unsupported on Wayland #1440)lazy_static!withonce_cell(Useonce_cellinstead oflazy_static#1497)Cow<'static, [u8]>in theImageandSvgwidgets (UseCow<'static, [u8]>in image/svg, add constructors taking &[u8]` #1453)ImageandSvgsupport foriced_glow(Glow image rendering support; move image/svg code to iced_graphics #1485)BGRAbefore passing toimageshaders (Don't convert svg to BGRA before passing to shader #1507), andglow_default_system_fontanddefault_system_fontfeatures (Combineglow_default_system_fontanddefault_system_fontfeatures #1505).Canvas(Added more clarification as to how the position and alignment of the … #1370).color!macro helper (color!macro #1227).release-optprofile to ourCargo.toml(Add profile release #1346), andcolor_paletteexample (add pure version of color_palette example #1326).resolverrequirement (Add note about resolver requirement #1339)PaneGridwidget to prevent content and controls from overlapping (Prevent pane grid title bar content and controls from overlapping #1361), andPaneGridwidget to still show content until hover when cramped (When pane grid title bar is cramped, still show content until hover and allow dragging where content would've been #1424).Componentbuilding overlay with stale layout (fix: prevent building component overlay with stale layout #1341)border_radiussupport forpick_list::Menu(Allow specification ofborder_radiusforpick_list::Menu#1396), andLazywidget (Lazywidget #1400).purefeature from docs.rs build metadata (Remove old pure feature from docs.rs build metadata #1429).clippylints (Address Clippy lints #1379).Cowsupport for theTextwidget (Text content by cow #1107).iced_wgpu(Fix alpha blending for wgpu msaa #1367)TextInputduringdraw(Allow overriding pure text_input value during draw #1371)Widget::operatefor theComponentwidget (Impl operate for Component widget #1402)Canvaswidget (Don't double translate text clip inside canvas #1411)Tooltipwidget when inside aScrollable(Fix Tooltip inside Scrollable #1405)Tooltiptext layout to not be constricted by the viewport size (Don't constrict tooltip text layout to viewport size #1414)PaneGridtitle bar and its body (Render pane grid titlebar after body #1463)PaneGridwidget (More pane grid fixes #1480)PickListmenu not closing when inside aScrollable(Fix drop down not closing when inside scrollable #1496)Paddingto fit available space during layout (Constrain padding to resolved inner / outer widget sizes #1494), andPaneGridwidget (Add pane maximize / restore forPaneGrid#1504).arc_tofor theCanvaswidget (Fixarc_to#1358).integration_wgpuexample (Fix wgpu integration example #1139).is_selectedargument to theStyleSheetof aRadiowidget (is_selectedproperty forRadioStyleSheet#1331).sierpinski-triangleexample (Implement sierpinski-triangle example #1136).README(update: match test badge #1450).Customvariant to the built-inTheme(Add custom palette to built in theme #1432).Fntrait bounds forCommandandAction(RelaxFntrait bounds inCommand&Action#1409).on_pastehandler to theTextInputwidget (Added a paste Event to TextInput #1350)winitto0.27andglutinto0.29(Updatewinitto0.27andglutinto0.29#1410), andwgputo0.14andwgpu_glyphto0.18(Updatewgputo0.14andwgpu_glyphto0.18#1462).Thank you, everyone! 🎉