aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/controls
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-12-11 23:51:58 +0800
committerYuqian Yang <crupest@crupest.life>2025-12-11 23:51:58 +0800
commitc0c0106cf47fdff397756913b8646541f3bb9928 (patch)
tree945d0a3662ac92577c966f49578e46ba743ea84b /include/cru/ui/controls
parente833e810aaa324d7de1630c2fb0528564b182742 (diff)
downloadcru-c0c0106cf47fdff397756913b8646541f3bb9928.tar.gz
cru-c0c0106cf47fdff397756913b8646541f3bb9928.tar.bz2
cru-c0c0106cf47fdff397756913b8646541f3bb9928.zip
Add paint invalid area.
Diffstat (limited to 'include/cru/ui/controls')
-rw-r--r--include/cru/ui/controls/ControlHost.h7
1 files changed, 6 insertions, 1 deletions
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<platform::gui::INativeWindow> 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