aboutsummaryrefslogtreecommitdiff
path: root/include/cru/win/native/win_native_window.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-06-27 17:02:58 +0800
committercrupest <crupest@outlook.com>2019-06-27 17:02:58 +0800
commitb53527fbe50a953ad0e3225cc812eb76b8a1f82d (patch)
treeeb81cd14d0a165c47f841ad94835f8987109de7e /include/cru/win/native/win_native_window.hpp
parent8c5b05bcfce96495b4ffc4209ab8feda12597729 (diff)
downloadcru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.tar.gz
cru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.tar.bz2
cru-b53527fbe50a953ad0e3225cc812eb76b8a1f82d.zip
...
Diffstat (limited to 'include/cru/win/native/win_native_window.hpp')
-rw-r--r--include/cru/win/native/win_native_window.hpp135
1 files changed, 0 insertions, 135 deletions
diff --git a/include/cru/win/native/win_native_window.hpp b/include/cru/win/native/win_native_window.hpp
deleted file mode 100644
index 18de4f5d..00000000
--- a/include/cru/win/native/win_native_window.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-#pragma once
-#include "../win_pre_config.hpp"
-
-#include "cru/platform/native/native_window.hpp"
-#include "window_native_message_event_args.hpp"
-
-#include <memory>
-
-namespace cru::win::native {
-class WinApplication;
-class WindowClass;
-class WindowManager;
-class WindowRenderTarget;
-
-class WinNativeWindow : public Object,
- public virtual platform::native::INativeWindow {
- public:
- WinNativeWindow(WinApplication* application,
- std::shared_ptr<WindowClass> window_class, DWORD window_style,
- WinNativeWindow* parent);
- WinNativeWindow(const WinNativeWindow& other) = delete;
- WinNativeWindow(WinNativeWindow&& other) = delete;
- WinNativeWindow& operator=(const WinNativeWindow& other) = delete;
- WinNativeWindow& operator=(WinNativeWindow&& other) = delete;
- ~WinNativeWindow() override;
-
- bool IsValid() override;
- void SetDeleteThisOnDestroy(bool value) override;
-
- void Close() override;
-
- INativeWindow* GetParent() override { return parent_window_; }
-
- bool IsVisible() override;
- void SetVisible(bool is_visible) override;
-
- ui::Size GetClientSize() override;
- void SetClientSize(const ui::Size& size) override;
-
- // Get the rect of the window containing frame.
- // The lefttop of the rect is relative to screen lefttop.
- ui::Rect GetWindowRect() override;
-
- // Set the rect of the window containing frame.
- // The lefttop of the rect is relative to screen lefttop.
- void SetWindowRect(const ui::Rect& rect) override;
-
- platform::graph::IPainter* BeginPaint() override;
-
- IEvent<std::nullptr_t>* DestroyEvent() override { return &destroy_event_; }
- IEvent<std::nullptr_t>* PaintEvent() override { return &paint_event_; }
- IEvent<ui::Size>* ResizeEvent() override { return &resize_event_; }
- IEvent<bool>* FocusEvent() override { return &focus_event_; }
- IEvent<bool>* MouseEnterLeaveEvent() override {
- return &mouse_enter_leave_event_;
- }
- IEvent<ui::Point>* MouseMoveEvent() override { return &mouse_move_event_; }
- IEvent<platform::native::NativeMouseButtonEventArgs>* MouseDownEvent()
- override {
- return &mouse_down_event_;
- }
- IEvent<platform::native::NativeMouseButtonEventArgs>* MouseUpEvent()
- override {
- return &mouse_up_event_;
- }
- IEvent<int>* KeyDownEvent() override { return &key_down_event_; }
- IEvent<int>* KeyUpEvent() override { return &key_up_event_; }
-
- IEvent<WindowNativeMessageEventArgs&>* NativeMessageEvent() {
- return &native_message_event_;
- }
-
- // Get the handle of the window. Return null if window is invalid.
- HWND GetWindowHandle() const { return hwnd_; }
-
- bool HandleNativeWindowMessage(HWND hwnd, UINT msg, WPARAM w_param,
- LPARAM l_param, LRESULT* result);
-
- WindowRenderTarget* GetWindowRenderTarget() const {
- return window_render_target_.get();
- }
-
- private:
- // Get the client rect in pixel.
- RECT GetClientRectPixel();
-
- //*************** region: native messages ***************
-
- void OnDestroyInternal();
- void OnPaintInternal();
- void OnResizeInternal(int new_width, int new_height);
-
- void OnSetFocusInternal();
- void OnKillFocusInternal();
-
- void OnMouseMoveInternal(POINT point);
- void OnMouseLeaveInternal();
- void OnMouseDownInternal(platform::native::MouseButton button, POINT point);
- void OnMouseUpInternal(platform::native::MouseButton button, POINT point);
-
- void OnMouseWheelInternal(short delta, POINT point);
- void OnKeyDownInternal(int virtual_code);
- void OnKeyUpInternal(int virtual_code);
- void OnCharInternal(wchar_t c);
-
- void OnActivatedInternal();
- void OnDeactivatedInternal();
-
- private:
- WinApplication* application_;
-
- bool delete_this_on_destroy_ = true;
-
- HWND hwnd_;
- WinNativeWindow* parent_window_;
-
- bool has_focus_ = false;
- bool is_mouse_in_ = false;
-
- std::shared_ptr<WindowRenderTarget> window_render_target_;
-
- Event<std::nullptr_t> destroy_event_;
- Event<std::nullptr_t> paint_event_;
- Event<ui::Size> resize_event_;
- Event<bool> focus_event_;
- Event<bool> mouse_enter_leave_event_;
- Event<ui::Point> mouse_move_event_;
- Event<platform::native::NativeMouseButtonEventArgs> mouse_down_event_;
- Event<platform::native::NativeMouseButtonEventArgs> mouse_up_event_;
- Event<int> key_down_event_;
- Event<int> key_up_event_;
-
- Event<WindowNativeMessageEventArgs&> native_message_event_;
-};
-} // namespace cru::win::native