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
);
19 ~WinWindow() override
;
27 void Close() override
;
28 void SetBounds(const gfx::Rect
& bounds
) override
;
29 gfx::Rect
GetBounds() override
;
30 void SetTitle(const base::string16
& title
) override
;
31 void SetCapture() override
;
32 void ReleaseCapture() override
;
33 void ToggleFullscreen() override
;
34 void Maximize() override
;
35 void Minimize() override
;
36 void Restore() override
;
37 void SetCursor(PlatformCursor cursor
) override
;
38 void MoveCursorTo(const gfx::Point
& location
) override
;
39 void ConfineCursorToBounds(const gfx::Rect
& bounds
) override
;
40 PlatformImeController
* GetPlatformImeController() override
;
42 CR_BEGIN_MSG_MAP_EX(WinWindow
)
43 CR_MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST
, WM_MOUSELAST
, OnMouseRange
)
44 CR_MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE
,
47 CR_MESSAGE_HANDLER_EX(WM_CAPTURECHANGED
, OnCaptureChanged
)
49 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN
, OnKeyEvent
)
50 CR_MESSAGE_HANDLER_EX(WM_KEYUP
, OnKeyEvent
)
51 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN
, OnKeyEvent
)
52 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP
, OnKeyEvent
)
53 CR_MESSAGE_HANDLER_EX(WM_CHAR
, OnKeyEvent
)
54 CR_MESSAGE_HANDLER_EX(WM_SYSCHAR
, OnKeyEvent
)
55 CR_MESSAGE_HANDLER_EX(WM_IME_CHAR
, OnKeyEvent
)
56 CR_MESSAGE_HANDLER_EX(WM_NCACTIVATE
, OnNCActivate
)
58 CR_MSG_WM_CLOSE(OnClose
)
59 CR_MSG_WM_CREATE(OnCreate
)
60 CR_MSG_WM_DESTROY(OnDestroy
)
61 CR_MSG_WM_PAINT(OnPaint
)
62 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged
)
65 LRESULT
OnMouseRange(UINT message
, WPARAM w_param
, LPARAM l_param
);
66 LRESULT
OnCaptureChanged(UINT message
, WPARAM w_param
, LPARAM l_param
);
67 LRESULT
OnKeyEvent(UINT message
, WPARAM w_param
, LPARAM l_param
);
68 LRESULT
OnNCActivate(UINT message
, WPARAM w_param
, LPARAM l_param
);
70 LRESULT
OnCreate(CREATESTRUCT
* create_struct
);
73 void OnWindowPosChanged(WINDOWPOS
* window_pos
);
75 PlatformWindowDelegate
* delegate_
;
77 DISALLOW_COPY_AND_ASSIGN(WinWindow
);
82 // Set true to let WindowTreeHostWin use a popup window
83 // with no frame/title so that the window size and test's
84 // expectations matches.
85 WIN_WINDOW_EXPORT
void SetUsePopupAsRootWindowForTest(bool use
);
91 #endif // UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_