Skip to content

Latest commit

 

History

History
619 lines (531 loc) · 32.1 KB

CHANGELOG.md

File metadata and controls

619 lines (531 loc) · 32.1 KB

Changelog

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.

Added

  • Explicit text caching. #2058
  • Theme::Custom::with_fn for custom extended palette generation. #2067

Changed

  • Updated wgpu to 0.17. #2065
  • Changed Button::style to take an impl Into<...> for consistency. #2046

Fixed

  • Missing width attribute in styling example. #2062

Many thanks to...

  • @akshayr-mecha
  • @dtzxporter

Many thanks to...

  • @edfloreshz
  • @jackpot51
  • @wash2

0.10.0 - 2023-07-28

Added

  • Text shaping, font fallback, and iced_wgpu overhaul. #1697
  • Software renderer, runtime renderer fallback, and core consolidation. #1748
  • Incremental rendering for iced_tiny_skia. #1811
  • Configurable LineHeight support for text widgets. #1828
  • text::Shaping strategy selection. #1822
  • Subpixel glyph positioning and layout linearity. #1921
  • Background gradients. #1846
  • Offscreen rendering and screenshots. #1845
  • Nested overlays. #1719
  • Cursor availability. #1904
  • Backend-specific primitives. #1932
  • ComboBox widget. #1954
  • web-colors feature flag to enable "sRGB linear" blending. #1888
  • PaneGrid logic to split panes by drag & drop. #1856
  • PaneGrid logic to drag & drop panes to the edges. #1865
  • Type-safe Scrollable direction. #1878
  • Scrollable alignment. #1912
  • Helpers to change viewport alignment of a Scrollable. #1953
  • scroll_to widget operation. #1796
  • scroll_to helper. #1804
  • visible_bounds widget operation for Container. #1971
  • Command to fetch window size. #1927
  • Conversion support from Fn trait to custom theme. #1861
  • Configurable border radii on relevant widgets. #1869
  • border_radius styling to Slider rail. #1892
  • application_id in PlatformSpecific settings for Linux. #1963
  • Aliased entries in text::Cache. #1934
  • Text cache modes. #1938
  • operate method for program::State. #1913
  • Viewport argument to Widget::on_event. #1956
  • Nix instructions to DEPENDENCIES.md. #1859
  • Loading spinners example. #1902
  • Workflow that verifies CHANGELOG is always up-to-date. #1970
  • Outdated mentions of iced_native in README. #1979

Changed

  • Updated wgpu to 0.16. #1807
  • Updated glam to 0.24. #1840
  • Updated winit to 0.28. #1738
  • Updated palette to 0.7. #1875
  • Updated ouroboros to 0.17. #1925
  • Updated resvg to 0.35 and tiny-skia to 0.10. #1907
  • Changed mouse::Button::Other to take u16 instead of u8. #1797
  • Changed subscription::channel to take a FnOnce non-Sync closure. #1917
  • Removed Copy requirement for text StyleSheet::Style. #1814
  • Removed min_width of 1 from scrollbar & scroller for Scrollable. #1844
  • Used Widget::overlay for Tooltip. #1692

Fixed

  • Responsive layout not invalidated when shell layout is invalidated. #1799
  • Responsive layout not invalidated when size changes without a view call. #1890
  • Broken link in ROADMAP.md. #1815
  • bounds of selected option background in Menu. #1831
  • Border radius logic in iced_tiny_skia. #1842
  • Svg filtered color not premultiplied. #1841
  • Race condition when growing an image::Atlas. #1847
  • Clearing damaged surface with background color in iced_tiny_skia. #1854
  • Private gradient pack logic for iced_graphics::Gradient. #1871
  • Unordered quads of different background types. #1873
  • Panic in glyphon when glyphs are missing. #1883
  • Empty scissor rectangle in iced_wgpu::triangle pipeline. #1893
  • Scrollable scrolling when mouse not over it. #1910
  • translation in layout of Nested overlay. #1924
  • Build when using vendored dependencies. #1928
  • Minor grammar mistake. #1931
  • Quad rendering including border only inside of the bounds. #1843
  • Redraw requests not being forwarded for Component overlays. #1949
  • Blinking input cursor when window loses focus. #1955
  • BorderRadius not exposed in root crate. #1972
  • Outdated ROADMAP. #1958

Patched

  • Keybinds to cycle ComboBox options. #1991
  • Tooltip overlay position inside Scrollable. #1978
  • iced_wgpu freezing on empty layers. #1996
  • image::Viewer reacting to any scroll event. #1998
  • TextInput pasting text when Alt key is pressed. #2006
  • Broken link to old iced_native crate in README. #2024
  • Rectangle::contains being non-exclusive. #2017
  • Documentation for Arc and arc::Elliptical. #2008

Many thanks to...

  • @a1phyr
  • @alec-deason
  • @AustinMReppert
  • @bbb651
  • @bungoboingo
  • @casperstorm
  • @clarkmoody
  • @Davidster
  • @Drakulix
  • @genusistimelord
  • @GyulyVGC
  • @ids1024
  • @jhff
  • @JonathanLindsey
  • @kr105
  • @marienz
  • @malramsay64
  • @nicksenger
  • @nicoburns
  • @NyxAlexandra
  • @Redhawk18
  • @RGBCube
  • @rs017991
  • @tarkah
  • @thunderstorm010
  • @ua-kxie
  • @wash2
  • @wiiznokes

0.9.0 - 2023-04-13

Added

  • MouseArea widget. #1594
  • channel helper in subscription. #1786
  • Configurable width for Scrollable. #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

Changed

  • wgpu has been updated to 0.15 in iced_wgpu. #1789
  • resvg has been updated to 0.29 in iced_graphics. #1733
  • subscription::run now takes a function pointer. #1723

Fixed

  • Redundant on_scroll messages for Scrollable. #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. #1734
  • Debug implementation of Font displaying its bytes. #1731
  • Sliders bleeding over their rail. #1721

Removed

  • Fill variant for Alignment. #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

Added

  • Generic pixel units. #1711
  • custom method to widget::Operation trait. #1649
  • Group overlay. #1655
  • Standalone draw helper for image. #1682
  • Dynamic pick_list::Handle. #1675
  • Id support for Container. #1695
  • Custom Checkbox icon support. #1707
  • window action to change always on top setting. #1587
  • window action to fetch its unique identifier. #1589

Changed

  • Annotated Command and Subscription with #[must_use]. #1676
  • Replaced Fn with FnOnce in canvas::Cache::draw. #1694
  • Used [default] on enum in game_of_life example. #1660
  • Made QRCode hide when data is empty in qr_code example. #1665
  • Replaced Cow with Bytes in image to accept any kind of data that implements AsRef<[u8]>. #1551

Fixed

  • Blank window on application startup. #1698
  • Off-by-one pixel error on pick_list width. #1679
  • Missing text_input implementation in operation::Map. #1678
  • Widget-driven animations for Component. #1685
  • Layout translation in overlay::Group. #1686
  • Missing is_over implementation for overlays of iced_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. #1706
  • iced_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

Added

  • Widget-driven animations. #1647
  • Multidirectional scrolling support for Scrollable. #1550
  • VerticalSlider widget. #1596
  • Shift+Click text selection support in TextInput. #1622
  • Profiling support with the chrome-trace feature. #1565
  • Customization of the handle of a PickList. #1562
  • window action to request user attention. #1584
  • window action to gain focus. #1585
  • window action to toggle decorations. #1588
  • Copy implementation for gradient::Location. #1636

Changed

  • Replaced Application::should_exit with a window::close action. #1606
  • Made focusable::Count fields public. #1635
  • Added Dependency argument to the closure of Lazy. #1646
  • Switched arguments order of Toggler::new for consistency. #1616
  • Switched arguments order of Checkbox::new for consistency. #1633

Fixed

  • Compilation error in iced_glow when the image feature is enabled but svg isn't. #1593
  • Widget operations for Responsive widget. #1615
  • Overlay placement for Responsive. #1638
  • overlay implementation for Lazy. #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

Added

  • 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

Changed

  • Triangle geometry using a solid color is now drawn in a single draw call. #1538

Fixed

  • Gradients for WebAssembly target. #1524
  • Overlay layout cache not being invalidated. #1528
  • Operations not working for PaneGrid. #1533
  • Mapped widget::Operation always returning Outcome::None. #1536
  • Padding of TextInput with Length::Units width. #1539
  • Clipping of Image and Svg widgets in iced_glow. #1557
  • Invalid links in documentation. #1560
  • Custom style of PickList 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

Added

  • 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 (like row! and column!).

  • First-class theming (#1362)
    A complete overhaul of our styling primitives, introducing a Theme 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)
    The Canvas widget can draw linear gradients now. Thanks to @bungoboingo!

  • Touch support for Canvas (#1305)
    The Canvas widget now supports touch events. Thanks to @artursapek!

  • Image and Svg support for iced_glow (#1485)
    Our OpenGL renderer now is capable of rendering both the Image and Svg widgets. Thanks to @ids1024!

0.4.2 - 2022-05-03

Fixed

  • Padding type not exposed in iced.

0.4.1 - 2022-05-02

Fixed

  • Version number in README.

0.4.0 - 2022-05-02

Added

  • Stateless widgets (#1284)
    A brand new widget API that removes the need to keep track of internal widget state. No more button::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 HTML canvas when targeting Wasm by leveraging the WebGL support in wgpu. 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 for aarch64 and armv7 to easily cross-compile iced applications and target Raspberry Pis. Thanks to @derezzedex!

  • Simpler Renderer APIs (#1110)
    The surface of the Renderer APIs of the library has been considerably reduced. Instead of a Renderer trait per widget, now there are only 3 traits that are reused by all the widgets.

0.3.0 - 2021-03-31

Added

  • Touch support. #57 #650 (thanks to @simlay and @discordance!)
  • Clipboard write access for
    • TextInput widget. #770
    • Application::update. #773
  • 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 and Unfocused variant to window::Event. #701 (thanks to @cossonleo!)
  • WGPU_BACKEND environment variable to configure the internal graphics backend of iced_wgpu. #789 (thanks to @Cupnfish!)

Changed

  • The TitleBar of a PaneGrid now supports generic elements. #657 (thanks to @clarkmoody!)
  • The Error type now implements Send and Sync. #719 (thanks to @taiki-e!)
  • The Style types in iced_style now implement Clone and Copy. #720 (thanks to @taiki-e!)
  • The following dependencies have been updated:
  • The following examples were improved:
    • download_progress now showcases multiple file downloads at once. #283 (thanks to @Folyd!)
    • solar_system uses the new rand API. #760 (thanks to @TriedAngle!)

Fixed

  • 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

Added

0.1.1 - 2020-04-15

Added

  • Settings::with_flags to easily initialize some default settings with flags. #266
  • Default implementation for canvas::layer::Cache. #267
  • Ctrl + Del support for TextInput. #268
  • Helper methods in canvas::Path to easily draw lines, rectangles, and circles. #293
  • From<Color> implementation for canvas::Fill. #293
  • From<String> implementation for canvas::Text. #293
  • From<&str> implementation for canvas::Text. #293

Changed

  • new method of Radio and Checkbox now take a generic Into<String> for the label. #260
  • Frame::fill now takes a generic Into<canvas::Fill>. #293
  • Frame::stroke now takes a generic Into<canvas::Stroke>. #293
  • Frame::fill_text now takes a generic Into<canvas::Text>. #293

Fixed

  • 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 a Clip primitive when unnecessary. #279
  • Alignment of Text primitive in iced_wgpu. #281
  • CursorEntered and CursorLeft not being generated. #289

Removed

  • Unnecessary 'static lifetimes in Renderer bounds. #290

0.1.0 - 2020-04-02

Added

0.1.0-beta - 2019-11-25

Changed

  • The old iced becomes iced_native. The current iced crate turns into a batteries-included, cross-platform GUI library.

0.1.0-alpha - 2019-09-05

Added

  • First release! 🎉