Roll src/third_party/WebKit a3b4a2e:7441784 (svn 202551:202552)
[chromium-blink-merge.git] / ui / platform_window / win / win_window.h
blobcc35c0156d97c13b483cce25da4767bb0c01b759
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"
13 namespace ui {
15 class WIN_WINDOW_EXPORT WinWindow : public NON_EXPORTED_BASE(PlatformWindow),
16 public gfx::WindowImpl {
17 public:
18 WinWindow(PlatformWindowDelegate* delegate, const gfx::Rect& bounds);
19 ~WinWindow() override;
21 private:
22 void Destroy();
24 // PlatformWindow:
25 void Show() override;
26 void Hide() 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,
45 WM_NCXBUTTONDBLCLK,
46 OnMouseRange)
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)
63 CR_END_MSG_MAP()
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);
69 void OnClose();
70 LRESULT OnCreate(CREATESTRUCT* create_struct);
71 void OnDestroy();
72 void OnPaint(HDC);
73 void OnWindowPosChanged(WINDOWPOS* window_pos);
75 PlatformWindowDelegate* delegate_;
77 DISALLOW_COPY_AND_ASSIGN(WinWindow);
80 namespace test {
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);
87 } // namespace test
89 } // namespace ui
91 #endif // UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_