19 #ifndef MIR_SHELL_SHELL_H_ 20 #define MIR_SHELL_SHELL_H_ 33 namespace frontend {
class EventSink; }
34 namespace geometry {
struct Rectangle; }
38 class PromptSessionManager;
39 class PromptSessionCreationParameters;
40 class SessionCoordinator;
42 class SurfaceCreationParameters;
48 class SurfaceSpecification;
59 virtual std::shared_ptr<scene::Session> open_session(
62 std::shared_ptr<frontend::EventSink>
const& sink) = 0;
64 virtual void close_session(std::shared_ptr<scene::Session>
const& session) = 0;
66 virtual std::shared_ptr<scene::PromptSession> start_prompt_session_for(
67 std::shared_ptr<scene::Session>
const& session,
70 virtual void add_prompt_provider_for(
71 std::shared_ptr<scene::PromptSession>
const& prompt_session,
72 std::shared_ptr<scene::Session>
const& session) = 0;
74 virtual void stop_prompt_session(std::shared_ptr<scene::PromptSession>
const& prompt_session) = 0;
77 std::shared_ptr<scene::Session>
const& session,
79 std::shared_ptr<frontend::EventSink>
const& sink) = 0;
81 virtual void modify_surface(
82 std::shared_ptr<scene::Session>
const& session,
83 std::shared_ptr<scene::Surface>
const& surface,
86 virtual void destroy_surface(std::shared_ptr<scene::Session>
const& session,
frontend::SurfaceId surface) = 0;
88 virtual int set_surface_attribute(
89 std::shared_ptr<scene::Session>
const& session,
90 std::shared_ptr<scene::Surface>
const& surface,
94 virtual int get_surface_attribute(
95 std::shared_ptr<scene::Surface>
const& surface,
98 virtual void raise_surface(
99 std::shared_ptr<scene::Session>
const& session,
100 std::shared_ptr<scene::Surface>
const& surface,
101 uint64_t timestamp) = 0;
Definition: as_render_target.h:27
Definition: display_listener.h:27
Definition: focus_controller.h:38
Definition: surface_creation_parameters.h:41
Definition: prompt_session_creation_parameters.h:29
Specification of surface properties requested by client.
Definition: surface_specification.h:50