1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_
6 #define UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_
8 #include "base/compiler_specific.h"
9 #include "ui/gfx/win/window_impl.h"
10 #include "ui/platform_window/platform_window.h"
11 #include "ui/platform_window/win/win_window_export.h"
15 class WIN_WINDOW_EXPORT WinWindow
: public NON_EXPORTED_BASE(PlatformWindow
),
16 public gfx::WindowImpl
{
18 WinWindow(PlatformWindowDelegate
* delegate
, const gfx::Rect
& bounds
);
25 virtual void Show() override
;
26 virtual void Hide() override
;
27 virtual void Close() override
;
28 virtual void SetBounds(const gfx::Rect
& bounds
) override
;
29 virtual gfx::Rect
GetBounds() override
;
30 virtual void SetCapture() override
;
31 virtual void ReleaseCapture() override
;
32 virtual void ToggleFullscreen() override
;
33 virtual void Maximize() override
;
34 virtual void Minimize() override
;
35 virtual void Restore() override
;
36 virtual void SetCursor(PlatformCursor cursor
) override
;
37 virtual void MoveCursorTo(const gfx::Point
& location
) override
;
39 CR_BEGIN_MSG_MAP_EX(WinWindow
)
40 CR_MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST
, WM_MOUSELAST
, OnMouseRange
)
41 CR_MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE
,
44 CR_MESSAGE_HANDLER_EX(WM_CAPTURECHANGED
, OnCaptureChanged
)
46 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN
, OnKeyEvent
)
47 CR_MESSAGE_HANDLER_EX(WM_KEYUP
, OnKeyEvent
)
48 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN
, OnKeyEvent
)
49 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP
, OnKeyEvent
)
50 CR_MESSAGE_HANDLER_EX(WM_CHAR
, OnKeyEvent
)
51 CR_MESSAGE_HANDLER_EX(WM_SYSCHAR
, OnKeyEvent
)
52 CR_MESSAGE_HANDLER_EX(WM_IME_CHAR
, OnKeyEvent
)
53 CR_MESSAGE_HANDLER_EX(WM_NCACTIVATE
, OnNCActivate
)
55 CR_MSG_WM_CLOSE(OnClose
)
56 CR_MSG_WM_CREATE(OnCreate
)
57 CR_MSG_WM_DESTROY(OnDestroy
)
58 CR_MSG_WM_PAINT(OnPaint
)
59 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged
)
62 LRESULT
OnMouseRange(UINT message
, WPARAM w_param
, LPARAM l_param
);
63 LRESULT
OnCaptureChanged(UINT message
, WPARAM w_param
, LPARAM l_param
);
64 LRESULT
OnKeyEvent(UINT message
, WPARAM w_param
, LPARAM l_param
);
65 LRESULT
OnNCActivate(UINT message
, WPARAM w_param
, LPARAM l_param
);
67 LRESULT
OnCreate(CREATESTRUCT
* create_struct
);
70 void OnWindowPosChanged(WINDOWPOS
* window_pos
);
72 PlatformWindowDelegate
* delegate_
;
74 DISALLOW_COPY_AND_ASSIGN(WinWindow
);
79 // Set true to let WindowTreeHostWin use a popup window
80 // with no frame/title so that the window size and test's
81 // expectations matches.
82 WIN_WINDOW_EXPORT
void SetUsePopupAsRootWindowForTest(bool use
);
88 #endif // UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_