Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / platform_window / win / win_window.h
blob8fb8adc5ebf1e2bb330727015256c6842d50b698
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 SetCapture() override;
31 void ReleaseCapture() override;
32 void ToggleFullscreen() override;
33 void Maximize() override;
34 void Minimize() override;
35 void Restore() override;
36 void SetCursor(PlatformCursor cursor) override;
37 void MoveCursorTo(const gfx::Point& location) override;
38 void ConfineCursorToBounds(const gfx::Rect& bounds) override;
40 CR_BEGIN_MSG_MAP_EX(WinWindow)
41 CR_MESSAGE_RANGE_HANDLER_EX(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange)
42 CR_MESSAGE_RANGE_HANDLER_EX(WM_NCMOUSEMOVE,
43 WM_NCXBUTTONDBLCLK,
44 OnMouseRange)
45 CR_MESSAGE_HANDLER_EX(WM_CAPTURECHANGED, OnCaptureChanged)
47 CR_MESSAGE_HANDLER_EX(WM_KEYDOWN, OnKeyEvent)
48 CR_MESSAGE_HANDLER_EX(WM_KEYUP, OnKeyEvent)
49 CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent)
50 CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent)
51 CR_MESSAGE_HANDLER_EX(WM_CHAR, OnKeyEvent)
52 CR_MESSAGE_HANDLER_EX(WM_SYSCHAR, OnKeyEvent)
53 CR_MESSAGE_HANDLER_EX(WM_IME_CHAR, OnKeyEvent)
54 CR_MESSAGE_HANDLER_EX(WM_NCACTIVATE, OnNCActivate)
56 CR_MSG_WM_CLOSE(OnClose)
57 CR_MSG_WM_CREATE(OnCreate)
58 CR_MSG_WM_DESTROY(OnDestroy)
59 CR_MSG_WM_PAINT(OnPaint)
60 CR_MSG_WM_WINDOWPOSCHANGED(OnWindowPosChanged)
61 CR_END_MSG_MAP()
63 LRESULT OnMouseRange(UINT message, WPARAM w_param, LPARAM l_param);
64 LRESULT OnCaptureChanged(UINT message, WPARAM w_param, LPARAM l_param);
65 LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param);
66 LRESULT OnNCActivate(UINT message, WPARAM w_param, LPARAM l_param);
67 void OnClose();
68 LRESULT OnCreate(CREATESTRUCT* create_struct);
69 void OnDestroy();
70 void OnPaint(HDC);
71 void OnWindowPosChanged(WINDOWPOS* window_pos);
73 PlatformWindowDelegate* delegate_;
75 DISALLOW_COPY_AND_ASSIGN(WinWindow);
78 namespace test {
80 // Set true to let WindowTreeHostWin use a popup window
81 // with no frame/title so that the window size and test's
82 // expectations matches.
83 WIN_WINDOW_EXPORT void SetUsePopupAsRootWindowForTest(bool use);
85 } // namespace test
87 } // namespace ui
89 #endif // UI_PLATFORM_WINDOW_WIN_WIN_WINDOW_H_