rust_widgets 0.5.0

Pure Rust cross-platform native GUI architecture
---
# rust-widgets Development Plan

## Rules

1. This file uses hierarchical TODO management, listing each top-level ITEM one by one.
2. Unfinished items are left blank; completed items are marked "Completed" with a timestamp (e.g., Completed 2026-03-02).
3. Deleted or canceled items are marked "Canceled" or "Deleted" with a timestamp.
4. After all todo list are finished, review and check if there are gaps, added them after current version todo list. 

## ITEM List

- [x] Signal/Slot System (library core) — Completed 2026-03-02
	- Generic Signal<T> supporting any number/type of parameters
	- connect(callback): bind closures
	- emit(args): trigger signal
	- Multiple slots per signal
	- Automatic disconnect on widget drop (no dangling, no panic)
	- once: trigger once then disconnect
	- No manual handle management, no raw pointers
	- Pure Rust generics, compile-time safety
	- All widget interactions use signals (clicked, text_changed, selection_changed, closed, etc.)
	- No alternative event system

- [x] Basic Geometry & Style Types — Completed 2026-03-02
	- Point (x, y)
	- Size (w, h)
	- Rect (x, y, w, h)
	- Color (rgba)
	- Font (name, size, weight)
	- Margin/Padding (per side)
	- Alignment (left/center/right, top/center/bottom)

- [x] Widget Base Class — Completed 2026-03-02
	- Position/size/rect methods
	- Show/hide, enable/disable
	- Min/max size constraints
	- Background/foreground/border/font
	- Mouse/keyboard/focus signals (hover, mouse_down/up, key_down/up, focus_gained/lost)
	- Redraw/layout signals
	- All input as signals, no virtual functions or inheritance magic

- [x] Basic Widgets — Completed 2026-03-02
	- Button: text/icon, clicked signal, press/release/disable states
	- Label: text/image, word wrap, alignment
	- LineEdit: text_changed, return_pressed, selection/copy/cut/paste, password mode
	- CheckBox: toggled signal, tri-state
	- RadioButton: group logic, selected signal
	- ComboBox: index_changed, dropdown
	- SpinBox/Slider: value_changed
	- ProgressBar: set/get value

- [x] Layout System — Completed 2026-03-02
	- HBox (horizontal)
	- VBox (vertical)
	- Grid (grid)
	- Stack (stacked)
	- Auto position/size calculation
	- Stretch factors, spacing, margins

- [x] Action System — Completed 2026-03-02
	- Shared logic for menu/button/shortcut
	- triggered signal
	- Checkable, enable/disable

- [x] Intermediate Widgets — Completed 2026-03-02
	- ScrollArea/ScrollBar
	- GroupBox
	- TabWidget
	- Splitter
	- MenuBar/Menu/ToolBar
	- StatusBar
	- Dialog/MessageBox/FileDialog/ColorDialog/FontDialog

- [x] Model/View Architecture — Completed 2026-03-02
	- ListModel/TableModel/TreeModel
	- Data change signals
	- Auto view refresh

- [x] Advanced Widgets — Completed 2026-03-02
	- TreeView/TableView/ListView
	- RichEdit (code editor)
	- DockPanel
	- MdiArea (multi-document)
	- Chart

- [ ] Style & Theme System
	- Dark/light mode
	- QSS-like stylesheet. -WSS
	- Widget skinning

- [ ] Animation System
	- Property animation
	- Easing functions
	- Animation composition

- [ ] Window & Main Framework
	- Window/MainWindow
	- Modal window
	- Frameless window

- [ ] IDE Capabilities (final goal)
	- Multi-window
	- Dock panels
	- Code editor
	- Menu/toolbar/statusbar
	- Plugin system
	- AI Assist integration