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

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

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

Powered by Google App Engine
This is Rietveld 408576698