- Added `text_model` class to manage text content and selection state, supporting UTF-32 storage for accurate character-level operations.
- Implemented UTF-8 to UTF-32 conversion functions for seamless text input.
- Introduced `text_selection` class to represent selection ranges using anchor/focus model.
- Added methods for text insertion, deletion, and selection management, including word boundary detection.
- Implemented maximum length constraints for text input.
- Provided callback mechanism for text change notifications.
- Merged event_target functionality into widget_base to simplify class hierarchy and reduce complexity.
- Updated focus_manager, ime_manager, shortcut_manager, and widget_event_router to use widget_base instead of event_target.
- Removed redundant event_target inheritance from various widget classes, including overlay and scrollbar.
- Ensured proper event bubbling and visibility management by utilizing widget_base's parent pointer.
- Cleaned up related documentation and updated method signatures across the codebase.
- Updated v_stack.h to use threading::main_property for spacing management, ensuring automatic dirty marking on changes.
- Enhanced render_collector.h with threading::thread_bound for thread safety, added documentation for thread usage.
- Modified widget_state.h to include previous_aabb for dirty region calculations.
- Implemented update_previous_aabb method in widget_state_store to track previous AABB for widgets.
- Refactored viewport_cache to utilize threading::main_property for caching and visibility management.
- Updated widget_base.h to use threading::main_property for widget attributes, ensuring thread-safe access.
- Enhanced widget_context.h with threading::property for managing state changes.
- Refactored imager and scrollbar widgets to utilize new property management for state consistency.
- Added comprehensive documentation for thread safety and usage across the widget framework.
- Removed `render_tree_builder` and `render_tree_integration` test directories and their associated CMakeLists and source files.
- Updated `CMakeLists.txt` to exclude the removed test directories.
- Modified buffer creation templates to include `vk::Result` in expected return types for better error handling.
- Added scroll_box class to manage scrolling of content exceeding viewport size.
- Introduced scroll_state class to encapsulate scrolling state and calculations.
- Created scrollbar_manager class to handle scrollbar creation, layout, and updates.
- Developed smooth_scroll_animator class for smooth scrolling animations with easing functions.
- Enhanced child widget management using slots and improved event handling.
- Utilized C++23 features for better code structure and readability.
- Implemented various scrolling modes: vertical, horizontal, and both.
- Added methods for setting scroll offsets, scrolling to specific positions, and querying scroll properties.
- Implemented binary search optimization for rendering commands in HStack and VStack to improve performance when rendering child widgets.
- Enhanced ScrollBox to only tick child widgets that are within the viewport, reducing unnecessary updates.
- Introduced a viewport cache to manage visibility states of widgets, allowing for efficient visibility checks and updates.
- Updated dirty state management in widget states to use a more structured approach with a new dirty_state enum, improving clarity and functionality.
- Added methods to invalidate and manage viewport cache, ensuring that visibility states are accurately maintained during layout changes.
- Marked widgets for re-rendering when their properties change, ensuring visual updates are reflected correctly.