Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: ash/wm/common/wm_event.h

Issue 2030593002: Renames ash/wm/common into ash/common/wm (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/wm/common/wm_display_observer.h ('k') | ash/wm/common/wm_event.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 #ifndef ASH_WM_COMMON_WM_EVENT_H_
6 #define ASH_WM_COMMON_WM_EVENT_H_
7
8 #include "ash/ash_export.h"
9 #include "ash/wm/common/wm_types.h"
10 #include "base/macros.h"
11 #include "ui/gfx/geometry/rect.h"
12
13 // TODO(sky): move to common.
14 namespace ash {
15 namespace wm {
16
17 // WMEventType defines a set of operations that can change the
18 // window's state type and bounds.
19 enum WMEventType {
20 // Following events are the request to become corresponding state.
21 // Note that this does not mean the window will be in corresponding
22 // state and the request may not be fullfilled.
23
24 // NORMAL is used as a restore operation with a few exceptions.
25 WM_EVENT_NORMAL,
26 WM_EVENT_MAXIMIZE,
27 WM_EVENT_MINIMIZE,
28 WM_EVENT_FULLSCREEN,
29 WM_EVENT_SNAP_LEFT,
30 WM_EVENT_SNAP_RIGHT,
31 WM_EVENT_DOCK,
32
33 // A window is requested to be the given bounds. The request may or
34 // may not be fulfilled depending on the requested bounds and window's
35 // state. This will not change the window state type.
36 WM_EVENT_SET_BOUNDS,
37
38 // Following events are compond events which may lead to different
39 // states depending on the current state.
40
41 // A user requested to toggle maximized state by double clicking window
42 // header.
43 WM_EVENT_TOGGLE_MAXIMIZE_CAPTION,
44
45 // A user requested to toggle maximized state using shortcut.
46 WM_EVENT_TOGGLE_MAXIMIZE,
47
48 // A user requested to toggle vertical maximize by double clicking
49 // top/bottom edge.
50 WM_EVENT_TOGGLE_VERTICAL_MAXIMIZE,
51
52 // A user requested to toggle horizontal maximize by double clicking
53 // left/right edge.
54 WM_EVENT_TOGGLE_HORIZONTAL_MAXIMIZE,
55
56 // A user requested to toggle fullscreen state.
57 WM_EVENT_TOGGLE_FULLSCREEN,
58
59 // A user requested a cycle of dock and snap left.
60 // The way this event is processed is the current window state is used as
61 // the starting state. Assuming normal window start state; if the window can
62 // be snapped left, snap it; otherwise progress to next state. If the window
63 // can be docked left, dock it; otherwise progress to next state. If the
64 // window can be restored; and this isn't the entry condition restore it;
65 // otherwise apply the bounce animation to the window.
66 WM_EVENT_CYCLE_SNAP_DOCK_LEFT,
67
68 // A user requested a cycle of dock and snap right.
69 // See decription of WM_EVENT_CYCLE_SNAP_DOCK_LEFT.
70 WM_EVENT_CYCLE_SNAP_DOCK_RIGHT,
71
72 // A user requested to center a window.
73 WM_EVENT_CENTER,
74
75 // TODO(oshima): Investigate if this can be removed from ash.
76 // Widget requested to show in inactive state.
77 WM_EVENT_SHOW_INACTIVE,
78
79 // Following events are generated when the workspace envrionment has changed.
80 // The window's state type will not be changed by these events.
81
82 // The window is added to the workspace, either as a new window, due to
83 // display disconnection or dragging.
84 WM_EVENT_ADDED_TO_WORKSPACE,
85
86 // Bounds of the display has changed.
87 WM_EVENT_DISPLAY_BOUNDS_CHANGED,
88
89 // Bounds of the work area has changed. This will not occur when the work
90 // area has changed as a result of DISPLAY_BOUNDS_CHANGED.
91 WM_EVENT_WORKAREA_BOUNDS_CHANGED,
92 };
93
94 class ASH_EXPORT WMEvent {
95 public:
96 explicit WMEvent(WMEventType type);
97 virtual ~WMEvent();
98
99 WMEventType type() const { return type_; }
100
101 private:
102 WMEventType type_;
103 DISALLOW_COPY_AND_ASSIGN(WMEvent);
104 };
105
106 // An WMEvent to request new bounds for the window.
107 class ASH_EXPORT SetBoundsEvent : public WMEvent {
108 public:
109 SetBoundsEvent(WMEventType type, const gfx::Rect& requested_bounds);
110 ~SetBoundsEvent() override;
111
112 const gfx::Rect& requested_bounds() const { return requested_bounds_; }
113
114 private:
115 gfx::Rect requested_bounds_;
116
117 DISALLOW_COPY_AND_ASSIGN(SetBoundsEvent);
118 };
119
120 } // namespace wm
121 } // namespace ash
122
123 #endif // ASH_WM_COMMON_WM_EVENT_H_
OLDNEW
« no previous file with comments | « ash/wm/common/wm_display_observer.h ('k') | ash/wm/common/wm_event.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698