Conversation
53 tasks
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.1.0milestone and the launch of a new release!The library has made some progress since the last
0.1.0-betalanded, around 4 months ago.New features
During this time, we have been focusing on implementing basic functionality and new widgets while following the roadmap. The most important new features are:
Custom styling (Custom styling #146)
A simple, trait-based approach for customizing the appearance of different widgets.
Event subscriptions (Event subscriptions #122)
A declarative way to listen to external events asynchronously by leveraging streams.
Canvaswidget (Canvas widget for 2D graphics #193)A widget for drawing 2D graphics with an interface inspired by the Web Canvas API and powered by
lyon.PaneGridwidget (Pane grid widget #224)A widget that dynamically organizes layout by splitting panes that can be resized and drag and dropped.
Svgwidget (Svg and icon support #111)A widget that renders vector graphics on top of
resvgandraqote. Thanks to @Maldela!ProgressBarwidget (Progress bar widget #141)A widget to notify progress of asynchronous tasks to your users. Thanks to @Songtronix!
Configurable futures executor (Custom futures executor with
iced_futures#164)Support for plugging
tokio,async-std,wasm-bindgen-futures, or your own custom futures executor to an application.Compatibility with existing
wgpuprojects (Integration with existingwgpuprojects #183)A bunch of improvements to the flexibility of
iced_wgputo allow integration in existing codebases.Text selection for
TextInput(Text Selection for text_input widget #202)Thanks to @FabianLars and @Finnerale!
Texture atlas for
iced_wgpu(Texture atlas #154)An atlas on top of
guillotierefor batching draw calls. Thanks to @Maldela!More examples
Back when I released the first beta, the codebase only had two examples: a simple
tourshowcasing the different widgets of the library, and atodostracker inspired by TodoMVC. Since then, and as a consequence of all the new features, the amount of examples has increased considerably:bezier_tool, a Paint-like tool for drawing Bézier curves usinglyon.clock, an application that uses theCanvaswidget to draw a clock and its hands to display the current time.counter, the classic counter example explained in theREADME.custom_widget, a custom widget that draws a circle.download_progress, a basic application that asynchronously downloads a dummy file of 100 MB and tracks the download progress.events, a log of native events displayed using a conditionalSubscription.geometry, a custom widget showcasing how to draw geometry with theMesh2Dprimitive iniced_wgpu.integration, an example demonstrating how to integrate Iced in an existing graphical application.pane_grid, a grid of panes that can be split, resized, and reorganized.pokedex, an application that displays a random Pokédex entry (sprite included!) by using the PokéAPI.progress_bar, a simple progress bar that can be filled by using a slider.styling, an example showcasing custom styling with a light and dark theme.solar_system, an animated solar system drawn using theCanvaswidget and showcasing how to compose different transforms.stopwatch, a watch with start/stop and reset buttons showcasing how to listen to time.svg, an application that renders the Ghostscript Tiger by leveraging theSvgwidget.Feel free to try them out and report any issues you may encounter!
Thank you! 🎉
Finally, I want to highlight the work of everyone that has contributed to the library in one way or another:
iced-pancurses, started a great issue to find a project logo (Iced branding #143), and worked on a potential website (#115).Mesh2Dprimitive foriced_wgpu(Mesh2D primitive for rendering arbitrary geometry iniced_wgpu#140) which ended up being the foundations of theCanvaswidget.Checkboxwidget (Customize Checkbox #192).NodeAPI (AddNode::move_toand makeNode::alignpublic #187) and has been working on theGridwidget (Grid widget #189).Clonebound on theMessageassociated type ofApplication(Remove Clone bound on Application::Message #155).TextInput(Text Selection for text_input widget #202) on top of @Finnerale's work.Scrollablewidget (Make scrolling behave like you'd expect it to #95).iced_web(Add several missing style attributes in iced_web #127), removed unnecessary bounds (Remove unnecessary bound in iced_web Container #128), and built a cool Space Engineers calculator.iced_winit(Improve window setting #94), implemented thebezier_toolexample (Add MS paint example #144), and provided feedback related to using the library for building VST plugins (Allow setting initial state toApplicationon runtime? #118).winitto0.21(Updatewinitto0.21#181) and exposed theClipboardtype iniced_winit(Exposeiced_winit::Clipboard#178).integrationexample (remove explicit lifetimes in integration example #240) and contributed other minor code cleanups (Some more code cleanups. #242).cargo fmt(Remove excess whitespace from end of line to comply withcargo fmt. #228).Svgwidget (Svg and icon support #111) and a texture atlas foriced_wgpu(Texture atlas #154).Ctrl+Backspacebehavior forTextInput(Add Ctrl+Backspace text field behaviour #249).const(Make many functionsconst#91) and added someFromimplementations (AddFromimpls forLength,Point, andSize#92).svgexample (Fix sample file path for svg example #196).clockexample (Rework scaling in clock example #251).with_childrenmethod forColumnandRow(Instantiate Column and Row with children #220).hash_layoutimplementation of theImagewidget (Added path to image hash so it updates when path changes #101).winit.ProgressBarwidget (Progress bar widget #141), contributed thedownload_progressexample (Add example for download with progress tracking #232), and has been using the library in Airshipper, a cross-platform launcher for Veloren.TextInput(Enable custom fonts for text input #171).'staticlifetimes in a bunch of generic types (refactor: remove not mandatories 'static lifetimes #245).I am very grateful for all these contributions and all the feedback and suggestions received. Thank you, everyone!