19 #ifndef MIRAL_WINDOW_MANAGER_TOOLS_H 20 #define MIRAL_WINDOW_MANAGER_TOOLS_H 25 #include <mir/geometry/displacement.h> 32 namespace scene {
class Surface; }
39 struct ApplicationInfo;
40 class WindowSpecification;
42 class WindowManagerToolsImplementation;
63 auto count_applications()
const ->
unsigned int;
69 void for_each_application(std::function<
void(
ApplicationInfo& info)>
const& functor);
76 auto find_application(std::function<
bool(
ApplicationInfo const& info)>
const& predicate)
84 auto info_for(std::weak_ptr<mir::scene::Session>
const& session)
const ->
ApplicationInfo&;
91 auto info_for(std::weak_ptr<mir::scene::Surface>
const& surface)
const ->
WindowInfo&;
106 auto info_for_window_id(std::string
const&
id)
const ->
WindowInfo&;
113 auto id_for_window(
Window const& window)
const -> std::string;
116 void ask_client_to_close(
Window const& window);
120 void force_close(
Window const& window);
123 auto active_window()
const ->
Window;
130 auto select_active_window(
Window const& hint) ->
Window;
133 void drag_active_window(mir::geometry::Displacement movement);
136 void focus_next_application();
139 void focus_next_within_application();
142 auto window_at(mir::geometry::Point cursor)
const ->
Window;
145 auto active_display() -> mir::geometry::Rectangle
const;
148 void raise_tree(
Window const& root);
166 void invoke_under_lock(std::function<
void()>
const& callback);
169 WindowManagerToolsImplementation* tools;
173 #endif //MIRAL_WINDOW_MANAGER_TOOLS_H Definition: active_outputs.h:25
Definition: application_info.h:31
Definition: window_info.h:32
Definition: window_specification.h:45
Handle class to manage a Mir surface. It may be null (e.g. default initialized)
Definition: window.h:37
std::shared_ptr< mir::scene::Session > Application
Definition: application.h:34
Mir Abstraction Layer.
Definition: active_outputs.h:27