Mir
Public Types | Public Member Functions | Protected Member Functions | List of all members
mir::examples::BasicWindowManager Class Reference

A policy based window manager. This takes care of the management of any meta implementation held for the sessions and surfaces. More...

#include <server_example_basic_window_manager.h>

Inheritance diagram for mir::examples::BasicWindowManager:
[legend]

Public Types

using SurfaceInfoMap = std::map< std::weak_ptr< scene::Surface >, SurfaceInfo, std::owner_less< std::weak_ptr< scene::Surface >>>
 
using SessionInfoMap = std::map< std::weak_ptr< scene::Session >, SessionInfo, std::owner_less< std::weak_ptr< scene::Session >>>
 

Public Member Functions

void add_session (std::shared_ptr< scene::Session > const &session) override
 
void remove_session (std::shared_ptr< scene::Session > const &session) override
 
auto add_surface (std::shared_ptr< scene::Session > const &session, scene::SurfaceCreationParameters const &params, std::function< frontend::SurfaceId(std::shared_ptr< scene::Session > const &session, scene::SurfaceCreationParameters const &params)> const &build) -> frontend::SurfaceId override
 
void modify_surface (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, shell::SurfaceSpecification const &modifications) override
 
void remove_surface (std::shared_ptr< scene::Session > const &session, std::weak_ptr< scene::Surface > const &surface) override
 
void forget (std::weak_ptr< scene::Surface > const &surface) override
 
void add_display (geometry::Rectangle const &area) override
 
void remove_display (geometry::Rectangle const &area) override
 
bool handle_keyboard_event (MirKeyboardEvent const *event) override
 
bool handle_touch_event (MirTouchEvent const *event) override
 
bool handle_pointer_event (MirPointerEvent const *event) override
 
void handle_raise_surface (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, uint64_t timestamp) override
 
int set_surface_attribute (std::shared_ptr< scene::Session > const &, std::shared_ptr< scene::Surface > const &surface, MirSurfaceAttrib attrib, int value) override
 
auto find_session (std::function< bool(SessionInfo const &info)> const &predicate) -> std::shared_ptr< scene::Session > override
 
auto info_for (std::weak_ptr< scene::Session > const &session) const -> SessionInfo &override
 
auto info_for (std::weak_ptr< scene::Surface > const &surface) const -> SurfaceInfo &override
 
std::shared_ptr< scene::Sessionfocused_session () const override
 
std::shared_ptr< scene::Surfacefocused_surface () const override
 
void focus_next_session () override
 
void set_focus_to (std::shared_ptr< scene::Session > const &focus, std::shared_ptr< scene::Surface > const &surface) override
 
auto surface_at (geometry::Point cursor) const -> std::shared_ptr< scene::Surface > override
 
auto active_display () -> geometry::Rectangle const override
 
void raise_tree (std::shared_ptr< scene::Surface > const &root) override
 
- Public Member Functions inherited from mir::shell::WindowManager
virtual ~WindowManager ()=default
 
 WindowManager ()=default
 
 WindowManager (WindowManager const &)=delete
 
WindowManageroperator= (WindowManager const &)=delete
 

Protected Member Functions

 BasicWindowManager (shell::FocusController *focus_controller, std::unique_ptr< WindowManagementPolicy > policy)
 
- Protected Member Functions inherited from mir::examples::WindowManagerTools
virtual ~WindowManagerTools ()=default
 
 WindowManagerTools ()=default
 
 WindowManagerTools (WindowManagerTools const &)=delete
 
WindowManagerToolsoperator= (WindowManagerTools const &)=delete
 

Additional Inherited Members

- Protected Types inherited from mir::examples::WindowManagerTools
using SurfaceInfoMap = std::map< std::weak_ptr< scene::Surface >, SurfaceInfo, std::owner_less< std::weak_ptr< scene::Surface >>>
 
using SessionInfoMap = std::map< std::weak_ptr< scene::Session >, SessionInfo, std::owner_less< std::weak_ptr< scene::Session >>>
 

Detailed Description

A policy based window manager. This takes care of the management of any meta implementation held for the sessions and surfaces.

Member Typedef Documentation

using mir::examples::WindowManagerTools::SessionInfoMap = std::map<std::weak_ptr<scene::Session>, SessionInfo, std::owner_less<std::weak_ptr<scene::Session>>>
using mir::examples::WindowManagerTools::SurfaceInfoMap = std::map<std::weak_ptr<scene::Surface>, SurfaceInfo, std::owner_less<std::weak_ptr<scene::Surface>>>

Constructor & Destructor Documentation

mir::examples::BasicWindowManager::BasicWindowManager ( shell::FocusController focus_controller,
std::unique_ptr< WindowManagementPolicy policy 
)
protected

Member Function Documentation

auto mir::examples::BasicWindowManager::active_display ( ) -> geometry::Rectangle const
overridevirtual
void mir::examples::BasicWindowManager::add_display ( geometry::Rectangle const &  area)
overridevirtual
void mir::examples::BasicWindowManager::add_session ( std::shared_ptr< scene::Session > const &  session)
overridevirtual
auto mir::examples::BasicWindowManager::add_surface ( std::shared_ptr< scene::Session > const &  session,
scene::SurfaceCreationParameters const &  params,
std::function< frontend::SurfaceId(std::shared_ptr< scene::Session > const &session, scene::SurfaceCreationParameters const &params)> const &  build 
) -> frontend::SurfaceId
overridevirtual
auto mir::examples::BasicWindowManager::find_session ( std::function< bool(SessionInfo const &info)> const &  predicate) -> std::shared_ptr<scene::Session>
overridevirtual
void mir::examples::BasicWindowManager::focus_next_session ( )
overridevirtual
auto mir::examples::BasicWindowManager::focused_session ( ) const
overridevirtual
auto mir::examples::BasicWindowManager::focused_surface ( ) const
overridevirtual
void mir::examples::BasicWindowManager::forget ( std::weak_ptr< scene::Surface > const &  surface)
overridevirtual
bool mir::examples::BasicWindowManager::handle_keyboard_event ( MirKeyboardEvent const *  event)
overridevirtual
bool mir::examples::BasicWindowManager::handle_pointer_event ( MirPointerEvent const *  event)
overridevirtual
void mir::examples::BasicWindowManager::handle_raise_surface ( std::shared_ptr< scene::Session > const &  session,
std::shared_ptr< scene::Surface > const &  surface,
uint64_t  timestamp 
)
overridevirtual
bool mir::examples::BasicWindowManager::handle_touch_event ( MirTouchEvent const *  event)
overridevirtual
auto mir::examples::BasicWindowManager::info_for ( std::weak_ptr< scene::Session > const &  session) const -> SessionInfo&
overridevirtual
auto mir::examples::BasicWindowManager::info_for ( std::weak_ptr< scene::Surface > const &  surface) const -> SurfaceInfo&
overridevirtual
void mir::examples::BasicWindowManager::modify_surface ( std::shared_ptr< scene::Session > const &  session,
std::shared_ptr< scene::Surface > const &  surface,
shell::SurfaceSpecification const &  modifications 
)
overridevirtual
void mir::examples::BasicWindowManager::raise_tree ( std::shared_ptr< scene::Surface > const &  root)
overridevirtual
void mir::examples::BasicWindowManager::remove_display ( geometry::Rectangle const &  area)
overridevirtual
void mir::examples::BasicWindowManager::remove_session ( std::shared_ptr< scene::Session > const &  session)
overridevirtual
void mir::examples::BasicWindowManager::remove_surface ( std::shared_ptr< scene::Session > const &  session,
std::weak_ptr< scene::Surface > const &  surface 
)
overridevirtual
void mir::examples::BasicWindowManager::set_focus_to ( std::shared_ptr< scene::Session > const &  focus,
std::shared_ptr< scene::Surface > const &  surface 
)
overridevirtual
int mir::examples::BasicWindowManager::set_surface_attribute ( std::shared_ptr< scene::Session > const &  ,
std::shared_ptr< scene::Surface > const &  surface,
MirSurfaceAttrib  attrib,
int  value 
)
overridevirtual
auto mir::examples::BasicWindowManager::surface_at ( geometry::Point  cursor) const -> std::shared_ptr<scene::Surface>
overridevirtual

The documentation for this class was generated from the following files:

Copyright © 2012-2015 Canonical Ltd.
Generated on Wed Mar 30 00:29:56 UTC 2016