diff options
Diffstat (limited to 'include/cru/win')
-rw-r--r-- | include/cru/win/graph/d2d_painter.hpp (renamed from include/cru/win/graph/win_painter.hpp) | 20 | ||||
-rw-r--r-- | include/cru/win/native/win_application.hpp | 6 |
2 files changed, 15 insertions, 11 deletions
diff --git a/include/cru/win/graph/win_painter.hpp b/include/cru/win/graph/d2d_painter.hpp index 8351cb7b..d33dced4 100644 --- a/include/cru/win/graph/win_painter.hpp +++ b/include/cru/win/graph/d2d_painter.hpp @@ -6,14 +6,14 @@ namespace cru::win::graph { class GraphManager; -class WinPainter : public Object, public virtual platform::graph::Painter { +class D2DPainter : public Object, public virtual platform::graph::Painter { public: - explicit WinPainter(ID2D1RenderTarget* render_target); - WinPainter(const WinPainter& other) = delete; - WinPainter(WinPainter&& other) = delete; - WinPainter& operator=(const WinPainter& other) = delete; - WinPainter& operator=(WinPainter&& other) = delete; - ~WinPainter() override; + explicit D2DPainter(ID2D1RenderTarget* render_target); + D2DPainter(const D2DPainter& other) = delete; + D2DPainter(D2DPainter&& other) = delete; + D2DPainter& operator=(const D2DPainter& other) = delete; + D2DPainter& operator=(D2DPainter&& other) = delete; + ~D2DPainter() override = default; platform::Matrix GetTransform() override; void SetTransform(const platform::Matrix& matrix) override; @@ -29,8 +29,8 @@ class WinPainter : public Object, public virtual platform::graph::Painter { void DrawText(const ui::Point& offset, platform::graph::TextLayout* text_layout, platform::graph::Brush* brush) override; - void EndDraw() override; - bool IsDisposed() override { return is_disposed_; } + void EndDraw() override final; + bool IsDisposed() override final { return is_disposed_; } void EndDrawAndDeleteThis() { EndDraw(); @@ -38,7 +38,7 @@ class WinPainter : public Object, public virtual platform::graph::Painter { } protected: - virtual void DoEndDraw(); + virtual void DoEndDraw() = 0; private: ID2D1RenderTarget* render_target_; diff --git a/include/cru/win/native/win_application.hpp b/include/cru/win/native/win_application.hpp index 458b10ae..5bdb753e 100644 --- a/include/cru/win/native/win_application.hpp +++ b/include/cru/win/native/win_application.hpp @@ -16,7 +16,7 @@ class WinApplication : public Object, static WinApplication* GetInstance(); private: - static WinApplication* instance_; + static WinApplication* instance; private: explicit WinApplication(HINSTANCE h_instance); @@ -32,6 +32,8 @@ class WinApplication : public Object, int Run() override; void Quit(int quit_code) override; + void AddOnQuitHandler(const std::function<void()>& handler) override; + void InvokeLater(const std::function<void()>& action) override; unsigned long SetTimeout(std::chrono::milliseconds milliseconds, const std::function<void()>& action) override; @@ -55,5 +57,7 @@ class WinApplication : public Object, std::shared_ptr<GodWindow> god_window_; std::shared_ptr<TimerManager> timer_manager_; std::shared_ptr<WindowManager> window_manager_; + + std::vector<std::function<void()>> quit_handlers_; }; } // namespace cru::win::native |