Mir
Public Member Functions | Protected Attributes | List of all members
mir::shell::AbstractShell Class Reference

Minimal Shell implementation with none of the necessary window management logic. More...

#include <abstract_shell.h>

Inheritance diagram for mir::shell::AbstractShell:
[legend]

Public Member Functions

 AbstractShell (std::shared_ptr< InputTargeter > const &input_targeter, std::shared_ptr< SurfaceStack > const &surface_stack, std::shared_ptr< scene::SessionCoordinator > const &session_coordinator, std::shared_ptr< scene::PromptSessionManager > const &prompt_session_manager, std::shared_ptr< ShellReport > const &report, WindowManagerBuilder const &wm_builder, std::shared_ptr< input::Seat > const &seat)
 
 ~AbstractShell () noexcept
 
std::shared_ptr< scene::Sessionopen_session (pid_t client_pid, std::string const &name, std::shared_ptr< frontend::EventSink > const &sink) override
 
void close_session (std::shared_ptr< scene::Session > const &session) override
 
frontend::SurfaceId create_surface (std::shared_ptr< scene::Session > const &session, scene::SurfaceCreationParameters const &params, std::shared_ptr< frontend::EventSink > const &sink) override
 
void modify_surface (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, SurfaceSpecification const &modifications) override
 
void destroy_surface (std::shared_ptr< scene::Session > const &session, frontend::SurfaceId surface) override
 
int set_surface_attribute (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, MirWindowAttrib attrib, int value) override
 
int get_surface_attribute (std::shared_ptr< scene::Surface > const &surface, MirWindowAttrib attrib) override
 
void raise_surface (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, uint64_t timestamp) override
 
std::shared_ptr< scene::PromptSessionstart_prompt_session_for (std::shared_ptr< scene::Session > const &session, scene::PromptSessionCreationParameters const &params) override
 
void add_prompt_provider_for (std::shared_ptr< scene::PromptSession > const &prompt_session, std::shared_ptr< scene::Session > const &session) override
 
void stop_prompt_session (std::shared_ptr< scene::PromptSession > const &prompt_session) override
 
void add_display (geometry::Rectangle const &area) override
 
void remove_display (geometry::Rectangle const &area) override
 
bool handle (MirEvent const &event) override
 
void update_focused_surface_confined_region ()
 
these come from FocusController

Focus changes are notified to the derived class via the private setting_focus_to() functions.

Note
I think the FocusController interface is unnecessary as:
  1. the functions are only meaningful in the context of implementing a Shell
  2. the implementation of these functions is Shell behaviour Simply providing them as part of AbstractShell is probably adequate.
void focus_next_session () override
 
std::shared_ptr< scene::Sessionfocused_session () const override
 
void set_focus_to (std::shared_ptr< scene::Session > const &focus_session, std::shared_ptr< scene::Surface > const &focus_surface) override
 
std::shared_ptr< scene::Surfacefocused_surface () const override
 
auto surface_at (geometry::Point cursor) const -> std::shared_ptr< scene::Surface > override
 
void raise (SurfaceSet const &surfaces) override
 
these functions support frontend requests
- Public Member Functions inherited from mir::shell::FocusController
virtual ~FocusController ()=default
 
- Public Member Functions inherited from mir::input::EventFilter
virtual ~EventFilter ()=default
 

Protected Attributes

std::shared_ptr< InputTargeter > const input_targeter
 
std::shared_ptr< SurfaceStack > const surface_stack
 
std::shared_ptr< scene::SessionCoordinator > const session_coordinator
 
std::shared_ptr< scene::PromptSessionManager > const prompt_session_manager
 
std::shared_ptr< WindowManager > const window_manager
 
std::shared_ptr< input::Seat > const seat
 

Additional Inherited Members

- Protected Member Functions inherited from mir::shell::FocusController
 FocusController ()=default
 
 FocusController (FocusController const &)=delete
 
FocusControlleroperator= (FocusController const &)=delete
 
- Protected Member Functions inherited from mir::input::EventFilter
 EventFilter ()=default
 
 EventFilter (const EventFilter &)=delete
 
EventFilteroperator= (const EventFilter &)=delete
 
- Protected Member Functions inherited from mir::compositor::DisplayListener
 DisplayListener ()=default
 
virtual ~DisplayListener ()=default
 
 DisplayListener (DisplayListener const &)=delete
 
DisplayListeneroperator= (DisplayListener const &)=delete
 

Detailed Description

Minimal Shell implementation with none of the necessary window management logic.

Constructor & Destructor Documentation

mir::shell::AbstractShell::AbstractShell ( std::shared_ptr< InputTargeter > const &  input_targeter,
std::shared_ptr< SurfaceStack > const &  surface_stack,
std::shared_ptr< scene::SessionCoordinator > const &  session_coordinator,
std::shared_ptr< scene::PromptSessionManager > const &  prompt_session_manager,
std::shared_ptr< ShellReport > const &  report,
WindowManagerBuilder const &  wm_builder,
std::shared_ptr< input::Seat > const &  seat 
)
mir::shell::AbstractShell::~AbstractShell ( )
noexcept

Member Function Documentation

void mir::shell::AbstractShell::add_display ( geometry::Rectangle const &  area)
overridevirtual
void mir::shell::AbstractShell::add_prompt_provider_for ( std::shared_ptr< scene::PromptSession > const &  prompt_session,
std::shared_ptr< scene::Session > const &  session 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::close_session ( std::shared_ptr< scene::Session > const &  session)
overridevirtual

Implements mir::shell::Shell.

frontend::SurfaceId mir::shell::AbstractShell::create_surface ( std::shared_ptr< scene::Session > const &  session,
scene::SurfaceCreationParameters const &  params,
std::shared_ptr< frontend::EventSink > const &  sink 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::destroy_surface ( std::shared_ptr< scene::Session > const &  session,
frontend::SurfaceId  surface 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::focus_next_session ( )
overridevirtual
std::shared_ptr<scene::Session> mir::shell::AbstractShell::focused_session ( ) const
overridevirtual
std::shared_ptr<scene::Surface> mir::shell::AbstractShell::focused_surface ( ) const
overridevirtual
int mir::shell::AbstractShell::get_surface_attribute ( std::shared_ptr< scene::Surface > const &  surface,
MirWindowAttrib  attrib 
)
overridevirtual

Implements mir::shell::Shell.

bool mir::shell::AbstractShell::handle ( MirEvent const &  event)
overridevirtual
void mir::shell::AbstractShell::modify_surface ( std::shared_ptr< scene::Session > const &  session,
std::shared_ptr< scene::Surface > const &  surface,
SurfaceSpecification const &  modifications 
)
overridevirtual

Implements mir::shell::Shell.

std::shared_ptr<scene::Session> mir::shell::AbstractShell::open_session ( pid_t  client_pid,
std::string const &  name,
std::shared_ptr< frontend::EventSink > const &  sink 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::raise ( SurfaceSet const &  surfaces)
overridevirtual
void mir::shell::AbstractShell::raise_surface ( std::shared_ptr< scene::Session > const &  session,
std::shared_ptr< scene::Surface > const &  surface,
uint64_t  timestamp 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::remove_display ( geometry::Rectangle const &  area)
overridevirtual
void mir::shell::AbstractShell::set_focus_to ( std::shared_ptr< scene::Session > const &  focus_session,
std::shared_ptr< scene::Surface > const &  focus_surface 
)
overridevirtual
int mir::shell::AbstractShell::set_surface_attribute ( std::shared_ptr< scene::Session > const &  session,
std::shared_ptr< scene::Surface > const &  surface,
MirWindowAttrib  attrib,
int  value 
)
overridevirtual

Implements mir::shell::Shell.

std::shared_ptr<scene::PromptSession> mir::shell::AbstractShell::start_prompt_session_for ( std::shared_ptr< scene::Session > const &  session,
scene::PromptSessionCreationParameters const &  params 
)
overridevirtual

Implements mir::shell::Shell.

void mir::shell::AbstractShell::stop_prompt_session ( std::shared_ptr< scene::PromptSession > const &  prompt_session)
overridevirtual

Implements mir::shell::Shell.

auto mir::shell::AbstractShell::surface_at ( geometry::Point  cursor) const -> std::shared_ptr< scene::Surface >
overridevirtual
void mir::shell::AbstractShell::update_focused_surface_confined_region ( )

Member Data Documentation

std::shared_ptr<InputTargeter> const mir::shell::AbstractShell::input_targeter
protected
std::shared_ptr<scene::PromptSessionManager> const mir::shell::AbstractShell::prompt_session_manager
protected
std::shared_ptr<input::Seat> const mir::shell::AbstractShell::seat
protected
std::shared_ptr<scene::SessionCoordinator> const mir::shell::AbstractShell::session_coordinator
protected
std::shared_ptr<SurfaceStack> const mir::shell::AbstractShell::surface_stack
protected
std::shared_ptr<WindowManager> const mir::shell::AbstractShell::window_manager
protected

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

Copyright © 2012-2016 Canonical Ltd.
Generated on Fri Dec 20 06:52:43 UTC 2019