19 #ifndef MIR_SHELL_FOCUS_CONTROLLER_H_ 20 #define MIR_SHELL_FOCUS_CONTROLLER_H_ 27 namespace geometry {
struct Point; }
28 namespace scene {
class Session;
class Surface; }
32 using SurfaceSet = std::set<std::weak_ptr<scene::Surface>, std::owner_less<std::weak_ptr<scene::Surface>>>;
43 virtual void focus_next_session() = 0;
45 virtual auto focused_session()
const -> std::shared_ptr<scene::Session> = 0;
47 virtual void set_focus_to(
48 std::shared_ptr<scene::Session>
const& focus_session,
49 std::shared_ptr<scene::Surface>
const& focus_surface) = 0;
51 virtual std::shared_ptr<scene::Surface> focused_surface()
const = 0;
53 virtual auto surface_at(
geometry::Point cursor)
const -> std::shared_ptr<scene::Surface> = 0;
55 virtual void raise(
SurfaceSet const& surfaces) = 0;
66 #endif // MIR_SHELL_FOCUS_CONTROLLER_H_ Definition: as_render_target.h:27
std::set< std::weak_ptr< scene::Surface >, std::owner_less< std::weak_ptr< scene::Surface >>> SurfaceSet
Definition: focus_controller.h:32
Definition: focus_controller.h:38