7.0 KiB
Changelog
All notable changes to the StellarX project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v2.0.1] - 2025-10-03
Added
- New example: 32-bit register viewer tool implemented based on StellarX (supports bit inversion, left shift, right shift, hexadecimal/decimal signed/unsigned toggle, grouped binary display).
- Example path:
examples/register-viewer/
- Example path:
TextBoxaddedsetTextAPI, allowing external setting of text box contentTextBox::setTextAPI modified: immediately callsdrawmethod to redraw after setting textButtonaddedsetButtonClickAPI, allowing external functions to modify button click state and execute corresponding callback functions- ==All documents updated with corresponding English versions(.en)==
[v2.0.0] - 2025-09-21
Overview
v2.0.0 is a major release. This release introduces dialog and message box factory (Dialog / MessageBox), with several important fixes and improvements to event distribution, API semantics, and internal resource management.
Some APIs/behaviors have breaking changes that are not backward compatible.
Added
-
Dialog System:
- Added
Dialogclass, inheriting fromCanvas, for building modal and non-modal dialogs - Added
MessageBoxfactory class, providing two convenient APIs:ShowModal(synchronous blocking) andShowAsync(asynchronous callback) - Supports six standard message box types:
OK,OKCancel,YesNo,YesNoCancel,RetryCancel,AbortRetryIgnore - Automatically handles dialog layout, background saving and restoration, event propagation, and lifecycle management
- Added
-
Enhanced Event System:
- All controls'
handleEventmethods now returnbooltype, indicating whether the event was consumed - Introduced event consumption mechanism, supporting finer-grained event propagation control
- Window class event loop now prioritizes dialog event processing
- All controls'
-
Control State Management:
- Control base class added
dirtyflag andsetDirty()method, uniformly managing redraw state - All controls now implement
IsVisible()andmodel()methods
- Control base class added
-
API Enhancements:
- Button class added
setButtonFalseColor()method - TextBox class
setMaxCharLen()now acceptssize_ttype parameter - Window class added dialog management methods and duplicate detection mechanism
- Button class added
Breaking Changes
-
API Signature Changes:
- All controls'
handleEvent(const ExMessage& msg)method changed from returningvoidto returningbool - Control base class added pure virtual functions
IsVisible() constandmodel() const, all derived classes must implement them
- All controls'
-
Resource Management Changes:
- Control base class style saving changed from stack objects to heap objects, managed using pointers
- Enhanced resource release safety, all resources are properly released in destructors
-
Event Handling Logic:
- Window's
runEventLoop()method completely rewritten, now prioritizes dialog events - Introduced event consumption mechanism, events do not continue propagating after being consumed
- Window's
Fixed
-
Memory Management:
- Fixed memory leak issue in
Button::setFillIma() - Fixed resource release issues in Control base class destructor
- Fixed background image resource management issues in Dialog class
- Fixed memory leak issue in
-
Layout and Rendering:
- Fixed pagination calculation, column width, and row height boundary issues in
Tablecomponent - Fixed layout disorder caused by
pXcoordinate accumulation error inTable - Fixed dirty determination issue in
Canvas::draw()that prevented child controls from being drawn - Fixed asymmetric call issues between
TextBox::draw()andrestoreStyle()
- Fixed pagination calculation, column width, and row height boundary issues in
-
Event Handling:
- Fixed window event distribution logic to ensure dialog/top-level controls prioritize event processing
- Fixed delayed state updates when mouse moves out of button area
- Fixed race conditions in non-modal dialog event handling
-
Other Issues:
- Fixed potential errors in text measurement and rendering
- Fixed incomplete background restoration after dialog closure
- Fixed z-order management issues in multi-dialog scenarios
Changed
-
Code Quality:
- Refactored numerous internal APIs, enhancing exception safety and maintainability
- Used smart pointers and modern C++ features to replace raw new/delete
- Unified code style and naming conventions
-
Performance Optimization:
- Optimized event processing flow, reducing unnecessary redraws
- Improved dialog background saving and restoration mechanism
- Reduced memory allocation and copy operations
-
Documentation and Examples:
- Added detailed usage examples for all new features
- Improved code comments and API documentation
- Updated README and CHANGELOG to reflect latest changes
[1.1.0] - 2025-09-08
Added
- Window Class API Enhancements:
- Added complete getter method set, improving class encapsulation and usability
getHwnd()- Get window handle for integration with native Windows APIgetWidth()- Get window widthgetHeight()- Get window heightgetHeadline()- Get window titlegetBkcolor()- Get window background colorgetBkImage()- Get window background image pointergetControls()- Get reference to control management container, allowing iteration and manipulation of added controls
Improved
- API Consistency: Provided symmetric setter and getter methods for all important attributes
- Code Documentation: Further improved class comments, making them clearer and more professional
[1.0.0] - 2025-09-08
Release Summary
First stable release
Added
- First stable version of StellarX framework
- Complete control library: Button, Label, TextBox, Canvas, Table, and Window
- CMake-based build system
- Detailed documentation and example code
- Explicit declaration: This framework is specifically designed for Windows platform
Released
- First release of pre-compiled binary library files, facilitating quick integration without compiling from source
- Provided release packages include:
StellarX-v1.0.0-x64-Windows-msvc-x64.zip- Build Environment: Visual Studio 2022 (MSVC v143)
- Architecture: x64 (64-bit)
- Runtime Library:
/MD - Build Modes:
Release | Debug - Contents: Includes all necessary header files (
include/) and static library files (lib/StellarX-Debug.lib StellarX-Release.lib)
Core Features
- Modular design following SOLID principles
- Unified control interface (
draw()andhandleEvent()) - Support for multiple control shapes and styles
- Custom event handling callbacks
- Lightweight design with no external dependencies
[0.1.0] - 2025-08-15
Added
- Initial project structure and core architecture
- Control base class and basic event handling system
- Basic examples and documentation setup