From c0c0106cf47fdff397756913b8646541f3bb9928 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Thu, 11 Dec 2025 23:51:58 +0800 Subject: Add paint invalid area. --- include/cru/ui/controls/ControlHost.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'include/cru/ui/controls/ControlHost.h') diff --git a/include/cru/ui/controls/ControlHost.h b/include/cru/ui/controls/ControlHost.h index 5d0b7947..e6eb472d 100644 --- a/include/cru/ui/controls/ControlHost.h +++ b/include/cru/ui/controls/ControlHost.h @@ -23,6 +23,9 @@ class CRU_UI_API ControlHost : public Object { void ScheduleRepaint(); void ScheduleRelayout(); + Rect GetPaintInvalidArea(); + void AddPaintInvalidArea(const Rect& area); + void Repaint(); void Relayout(); void RelayoutWithSize(const Size& available_size = Size::Infinite(), @@ -56,7 +59,7 @@ class CRU_UI_API ControlHost : public Object { std::unique_ptr CreateNativeWindow(); void OnNativeDestroy(std::nullptr_t); - void OnNativePaint(std::nullptr_t); + void OnNativePaint1(const cru::platform::gui::NativePaintEventArgs& args); void OnNativeResize(const Size& size); void OnNativeFocus(cru::platform::gui::FocusChangeType focus); void OnNativeMouseEnterLeave(cru::platform::gui::MouseEnterLeaveType enter); @@ -190,6 +193,8 @@ class CRU_UI_API ControlHost : public Object { bool layout_prefer_to_fill_window_; + Rect paint_invalid_area_; + platform::gui::TimerAutoCanceler relayout_schedule_canceler_; }; } // namespace cru::ui::controls -- cgit v1.2.3