2
3
4
5
6
7
8
9
10
11
12
13
14
15
17#ifndef MIRAL_WINDOW_MANAGEMENT_POLICY_H
18#define MIRAL_WINDOW_MANAGEMENT_POLICY_H
20#include <mir/geometry/displacement.h>
21#include <mir/geometry/rectangles.h>
22#include <mir_toolkit/common.h>
24struct MirKeyboardEvent;
26struct MirPointerEvent;
41
42
43
59
60
61
62
63
69
70
72
73
74
78
79
80
81
82
86
87
88
89
93
94
95
96
97
98
99
100
101
104 MirWindowState new_state,
105 Rectangle
const& new_placement) -> Rectangle = 0;
109
110
112
113
114
115
119
120
121
122
126
127
128
129
134
135
136
138
139
140
144
145
146
150
151
152
156
157
158
162
163
164
168
169
170
171
175
176
177
178
182
183
184
185
189
190
191
195
196
197
198
199
200
205
208
209
210
211
212
213
215 std::shared_ptr<Workspace>
const& workspace,
216 std::vector<
Window>
const& windows);
219
220
221
222
223
224
226 std::shared_ptr<Workspace>
const& workspace,
227 std::vector<
Window>
const& windows);
231
232
234
235
236
237
241
242
243
244
245
249
250
251
252
253
254
259
267
268
269
270
271
272
276
277
278
279
280
Handle class to manage a Mir surface. It may be null (e.g. default initialized)
Definition: window.h:36
The interface through which the window management policy is determined.
Definition: window_management_policy.h:50
virtual void advise_delete_window(WindowInfo const &window_info)
Notification that a window is about to be destroyed.
virtual void advise_move_to(WindowInfo const &window_info, Point top_left)
Notification that a window is about to move.
virtual void advise_removing_from_workspace(std::shared_ptr< Workspace > const &workspace, std::vector< Window > const &windows)
Notification that windows are being removed from a workspace.
virtual void handle_raise_window(WindowInfo &window_info)=0
request from client to raise the window
virtual void handle_request_resize(WindowInfo &window_info, MirInputEvent const *input_event, MirResizeEdge edge)=0
request from client to initiate resize
virtual void advise_application_zone_update(Zone const &updated, Zone const &original)
virtual auto confirm_placement_on_display(WindowInfo const &window_info, MirWindowState new_state, Rectangle const &new_placement) -> Rectangle=0
Confirm (and optionally adjust) the placement of a window on the display.
virtual void handle_request_drag_and_drop(WindowInfo &window_info)=0
request from client to initiate drag and drop
virtual void advise_focus_lost(WindowInfo const &window_info)
Notification that a window has lost focus.
virtual ~WindowManagementPolicy()=default
virtual void handle_window_ready(WindowInfo &window_info)=0
notification that the first buffer has been posted
virtual void advise_begin()
before any related calls begin
virtual void handle_request_move(WindowInfo &window_info, MirInputEvent const *input_event)=0
request from client to initiate move
virtual void advise_output_create(Output const &output)
virtual auto confirm_inherited_move(WindowInfo const &window_info, Displacement movement) -> Rectangle=0
Confirm (and optionally adjust) the motion of a child window when the parent is moved.
virtual auto place_new_window(ApplicationInfo const &app_info, WindowSpecification const &requested_specification) -> WindowSpecification=0
Customize initial window placement.
virtual void advise_output_update(Output const &updated, Output const &original)
virtual void advise_focus_gained(WindowInfo const &window_info)
Notification that a window has gained focus.
virtual void advise_new_window(WindowInfo const &window_info)
Notification that a window has been created.
virtual void advise_delete_app(ApplicationInfo const &application)
Notification that an application has disconnected.
virtual void advise_output_delete(Output const &output)
virtual void advise_application_zone_delete(Zone const &application_zone)
virtual bool handle_pointer_event(MirPointerEvent const *event)=0
pointer event handler
WindowManagementPolicy(WindowManagementPolicy const &)=delete
virtual void advise_resize(WindowInfo const &window_info, Size const &new_size)
Notification that a window is about to resize.
virtual void advise_state_change(WindowInfo const &window_info, MirWindowState state)
Notification that a window is about to change state.
virtual void advise_application_zone_create(Zone const &application_zone)
virtual void advise_raise(std::vector< Window > const &windows)
Notification that windows are being raised to the top.
virtual bool handle_touch_event(MirTouchEvent const *event)=0
touch event handler
virtual void advise_adding_to_workspace(std::shared_ptr< Workspace > const &workspace, std::vector< Window > const &windows)
Notification that windows are being added to a workspace.
virtual void handle_modify_window(WindowInfo &window_info, WindowSpecification const &modifications)=0
request from client to modify the window specification.
virtual void advise_end()
after any related calls end
WindowManagementPolicy & operator=(WindowManagementPolicy const &)=delete
virtual void advise_new_app(ApplicationInfo &application)
Notification that a new application has connected.
virtual bool handle_keyboard_event(MirKeyboardEvent const *event)=0
keyboard event handler
WindowManagementPolicy()=default
Definition: window_specification.h:42
A rectangular area of the display. Not tied to a specific output.
Definition: zone.h:34
Basic geometry types. Types for dimensions, displacements, etc. and the operations that they support.
Definition: size.h:27
Mir Abstraction Layer.
Definition: runner.h:35
Definition: application_info.h:30
Definition: window_info.h:31