Mir
|
The interface through which the window management policy is determined. More...
#include <window_management_policy.h>
Classes | |
class | ApplicationZoneAddendum |
Handle additional requests related to application zones. More... | |
Public Member Functions | |
virtual void | advise_begin () |
before any related calls begin More... | |
virtual void | advise_end () |
after any related calls end More... | |
virtual auto | place_new_window (ApplicationInfo const &app_info, WindowSpecification const &requested_specification) -> WindowSpecification=0 |
Customize initial window placement. More... | |
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. More... | |
virtual | ~WindowManagementPolicy ()=default |
WindowManagementPolicy ()=default | |
WindowManagementPolicy (WindowManagementPolicy const &)=delete | |
WindowManagementPolicy & | operator= (WindowManagementPolicy const &)=delete |
handle events originating from the client | |
The policy is expected to update the model as appropriate | |
virtual void | handle_window_ready (WindowInfo &window_info)=0 |
notification that the first buffer has been posted More... | |
virtual void | handle_modify_window (WindowInfo &window_info, WindowSpecification const &modifications)=0 |
request from client to modify the window specification. More... | |
virtual void | handle_raise_window (WindowInfo &window_info)=0 |
request from client to raise the window More... | |
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. More... | |
handle events originating from user | |
The policy is expected to interpret (and optionally consume) the event | |
virtual bool | handle_keyboard_event (MirKeyboardEvent const *event)=0 |
keyboard event handler More... | |
virtual bool | handle_touch_event (MirTouchEvent const *event)=0 |
touch event handler More... | |
virtual bool | handle_pointer_event (MirPointerEvent const *event)=0 |
pointer event handler More... | |
notification of WM events that the policy may need to track. | |
virtual void | advise_new_app (ApplicationInfo &application) |
Notification that a new application has connected. More... | |
virtual void | advise_delete_app (ApplicationInfo const &application) |
Notification that an application has disconnected. More... | |
virtual void | advise_new_window (WindowInfo const &window_info) |
Notification that a window has been created. More... | |
virtual void | advise_focus_lost (WindowInfo const &window_info) |
Notification that a window has lost focus. More... | |
virtual void | advise_focus_gained (WindowInfo const &window_info) |
Notification that a window has gained focus. More... | |
virtual void | advise_state_change (WindowInfo const &window_info, MirWindowState state) |
Notification that a window is about to change state. More... | |
virtual void | advise_move_to (WindowInfo const &window_info, Point top_left) |
Notification that a window is about to move. More... | |
virtual void | advise_resize (WindowInfo const &window_info, Size const &new_size) |
Notification that a window is about to resize. More... | |
virtual void | advise_delete_window (WindowInfo const &window_info) |
Notification that a window is about to be destroyed. More... | |
virtual void | advise_raise (std::vector< Window > const &windows) |
Notification that windows are being raised to the top. More... | |
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. More... | |
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. More... | |
handle requests originating from the client | |
The policy is expected to update the model as appropriate | |
virtual void | handle_request_drag_and_drop (WindowInfo &window_info)=0 |
request from client to initiate drag and drop More... | |
virtual void | handle_request_move (WindowInfo &window_info, MirInputEvent const *input_event)=0 |
request from client to initiate move More... | |
virtual void | handle_request_resize (WindowInfo &window_info, MirInputEvent const *input_event, MirResizeEdge edge)=0 |
request from client to initiate resize More... | |
notification of changes to the (connected, active) outputs. | |
virtual void | advise_output_create (Output const &output) |
virtual void | advise_output_update (Output const &updated, Output const &original) |
virtual void | advise_output_delete (Output const &output) |
The interface through which the window management policy is determined.
|
virtualdefault |
|
default |
|
delete |
|
virtual |
Notification that windows are being added to a workspace.
These windows are ordered with parents before children, and form a single tree rooted at the first element.
workspace | the workspace |
windows | the windows |
|
virtual |
before any related calls begin
|
virtual |
Notification that an application has disconnected.
application | the application |
Reimplemented in TilingWindowManagerPolicy.
|
virtual |
Notification that a window is about to be destroyed.
window_info | the window |
|
virtual |
after any related calls end
Reimplemented in TilingWindowManagerPolicy.
|
virtual |
Notification that a window has gained focus.
window_info | the window |
Reimplemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, KioskWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
virtual |
Notification that a window has lost focus.
window_info | the window |
|
virtual |
Notification that a window is about to move.
window_info | the window |
top_left | the new position |
|
virtual |
Notification that a new application has connected.
application | the application |
Reimplemented in TilingWindowManagerPolicy.
|
virtual |
Notification that a window has been created.
window_info | the window |
Reimplemented in TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Notification that windows are being raised to the top.
These windows are ordered with parents before children, and form a single tree rooted at the first element.
windows | the windows |
|
virtual |
Notification that windows are being removed from a workspace.
These windows are ordered with parents before children, and form a single tree rooted at the first element.
workspace | the workspace |
windows | the windows |
|
virtual |
Notification that a window is about to resize.
window_info | the window |
new_size | the new size |
|
virtual |
Notification that a window is about to change state.
window_info | the window |
state | the new state |
|
pure virtual |
Confirm (and optionally adjust) the motion of a child window when the parent is moved.
window_info | the window |
movement | the movement of the parent |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
Confirm (and optionally adjust) the placement of a window on the display.
Called when (re)placing fullscreen, maximized, horizontally maximised and vertically maximized windows to allow adjustment for decorations.
window_info | the window |
new_state | the new state |
new_placement | the suggested placement |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, KioskWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
keyboard event handler
event | the event |
Implemented in miral::MinimalWindowManager, KioskWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
pure virtual |
request from client to modify the window specification.
window_info | the window |
modifications | the requested changes |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, KioskWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
pure virtual |
pointer event handler
event | the event |
Implemented in miral::MinimalWindowManager, KioskWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
pure virtual |
request from client to raise the window
window_info | the window |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
request from client to initiate drag and drop
window_info | the window |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, KioskWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
request from client to initiate move
window_info | the window |
input_event | the requesting event |
Implemented in miral::MinimalWindowManager, KioskWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
request from client to initiate resize
window_info | the window |
input_event | the requesting event |
edge | the edge(s) being dragged |
Implemented in miral::MinimalWindowManager, KioskWindowManagerPolicy, and TilingWindowManagerPolicy.
|
pure virtual |
touch event handler
event | the event |
Implemented in miral::MinimalWindowManager, KioskWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
pure virtual |
notification that the first buffer has been posted
window_info | the window |
Implemented in miral::MinimalWindowManager, miral::CanonicalWindowManagerPolicy, TilingWindowManagerPolicy, and FloatingWindowManagerPolicy.
|
delete |
|
pure virtual |
Customize initial window placement.
app_info | the application requesting a new window |
requested_specification | the requested specification (updated with default placement) |
Implemented in FloatingWindowManagerPolicy, TilingWindowManagerPolicy, KioskWindowManagerPolicy, miral::MinimalWindowManager, and miral::CanonicalWindowManagerPolicy.
Copyright © 2012-2020
Canonical Ltd.
Generated on Sun Dec 20 20:38:20 UTC 2020
This documentation is licensed under the GPL version 2 or 3.