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.
- Enable usage of rust editon = 2021
- Switch structure to
Workspaceorganized crates:- removed crates dir
- moved localization code to orbtk_core crate
- moved theming code to orbtk_core crate
- renamed orbtk_api to orbtk_core
- renamed render crate to orbtk_tinyskia
- renamed shell crate to orbtk_orbclient
- created toplevel workspace Crago.toml
tiny-skiais integrated as 2D render engine- New
PasswordBoxwidget - New
Pagernavigation widget - New
Clipboardservice - New
MasterDetailnavigation widget - Improved
TextBehaviorevent handling- Copy Ctrl+C, Paste Ctrl+V, Cut Ctrl+X
- Remove
glupathbackend - Refactor
on_changedcallback, add key parameter - Access RawWindowHandle from Context
- Adopt Themes
colors selectionvia CSS-like functions - Create
Colorfrom HSV and HSL values - Create a
Colorby its CSS name - Gradient coordinates become relative to the path
- Add
gradientsdefined by angle - Introduce optional
gradientsselection in themes - Improve
KeyboardHandlerto mark text- Shift + Left | Shift + Right
- Improve
MouseHandlerto select text via mouse (experimental) - Select all character on text input by mouse double click
- Replace String16 with std::string::String
- Raise
on_changedcallback also on shared widgets - Introduce Localization
- Custom theme names for types
- Brush, String, Thickness, f32, f64
- Add
focus_stateproperty to Window - Add
themeproperty to Window - Rename
lost_focus_on_activationtolose_focus_on_activation - Fix
Grid layoutfor "auto" width - Add thread safe
EventAdapter - Add thread safe
MessageAdapterandMessageReader - Add
load_asyncandsave_asynctoSettingsservice - Add
TextInputEvent - Add
EnterEventandLeaveEvent - Add
hoverproperty and selector state to all widgets - Add
on_enterandon_leavecallback toMouseHandler - Refactor theming (cleanup default theme, introduce state order)
- Fix theming related bugs
- Register fonts on
Themestruct - Update OrbTks default themes
- Add redox theme
- Add
Brushhandling gradients (respecting angles, directions, color codes) - Add fluent design inspired theme (dark and light)
- Add fonts and icon sets specific to fluent design (Microsoft Segoe look)
- Add
messageexample - Remove widgets example
- Replaces Columns and Rows structs with Blocks
- Set grid columns and rows also as string
- Refactor grid layout code
- Add
message-handlerexample - Support features flag in
showcaseexample - Add new popup code (version 2: new placement and offset properties)
- Add
bundledfeature - Rename
resizeabletoresizable - Fix thumb position not updating when window is resized
- Dynamic theme switch
- Add all material font icons as resource
- Replaces css-engine with custom Rust/Ron based theming
- Add widget access helpers for states
- API update check deprecated methods an replace to new ones
- Performance improvements
- Change state update order from tree order to incoming changes order
- NumericBox widget
- Update caret position on TextBox by mouse click
- Text input support for ', /, , [, ], {, }
- Multiple window support (experimental)
- Pathfinder / Glutin backend (experimental)
- ProgressBar widget
- Measure distance between two Points
- Improve: Mouse event arguments
- Fix: Crash when a child widget is removed
- New
TabWidgetwidget - Add
on_changedproperty change callback to all widgets - Linking to OrbTk book
- ComboBox / ComboboxItem widget
- Slider widget
- Popup widget
- Overlay layer
- Service registry for states
- Settings service (serialize / deserialize data)
- Direct access of states in callbacks
- Impl RawWindowHandle for Context (wip)
- Sent requests to window shell
- Layout fixes and stack layout example
- Many web fixes
- State cleanup method
- Refactor setting of styling selectors
- TextBox select all (Ctrl + a)
- Text input support for !, @, #
- Borderless window
- api crate: base api elements of OrbTk e.g. widget and application parts
- css-engine crate: parse and read values from a css file
- proc_macros crate: procedural helper macros
- render crate: cross platform 2D/3D render library
- shell crate: cross platform window and event handling
- theme crate: OrbTks default theme (light and dark)
- tree crate: tree structure based on DCES
- utils crate: helper structs and traits
- widgets crate: base widget library
- Button widget
- Canvas widget
- CheckBox widget
- Container widget
- Cursor widget
- FontIconBlock widget
- Image widget
- Items widget
- ListView widget
- ScrollBar widget
- ScrollIndicator widget
- ScrollViewer widget
- Stack widget
- Switch widget
- TextBlock widget
- TextBox widget
- ToggleButton widget
- Window widget