19 #ifndef MIRAL_WINDOW_MANAGER_TOOLS_H 20 #define MIRAL_WINDOW_MANAGER_TOOLS_H 32 namespace scene {
class Surface; }
39 struct ApplicationInfo;
40 class WindowSpecification;
55 class WindowManagerToolsImplementation;
76 auto count_applications()
const ->
unsigned int;
82 void for_each_application(std::function<
void(
ApplicationInfo& info)>
const& functor);
89 auto find_application(std::function<
bool(
ApplicationInfo const& info)>
const& predicate)
97 auto info_for(std::weak_ptr<mir::scene::Session>
const& session)
const ->
ApplicationInfo&;
104 auto info_for(std::weak_ptr<mir::scene::Surface>
const& surface)
const ->
WindowInfo&;
119 auto info_for_window_id(std::string
const&
id)
const ->
WindowInfo&;
126 auto id_for_window(
Window const& window)
const -> std::string;
129 void ask_client_to_close(
Window const& window);
133 void force_close(
Window const& window);
136 auto active_window()
const ->
Window;
143 auto select_active_window(
Window const& hint) ->
Window;
152 void focus_next_application();
156 void focus_prev_application();
159 void focus_next_within_application();
162 void focus_prev_within_application();
171 void raise_tree(
Window const& root);
180 void start_drag_and_drop(
WindowInfo& window_info, std::vector<uint8_t>
const& handle);
183 void end_drag_and_drop();
198 auto create_workspace() -> std::shared_ptr<Workspace>;
205 void add_tree_to_workspace(
Window const& window, std::shared_ptr<Workspace>
const& workspace);
212 void remove_tree_from_workspace(
Window const& window, std::shared_ptr<Workspace>
const& workspace);
219 void move_workspace_content_to_workspace(
220 std::shared_ptr<Workspace>
const& to_workspace,
221 std::shared_ptr<Workspace>
const& from_workspace);
229 void for_each_workspace_containing(
231 std::function<
void(std::shared_ptr<Workspace>
const& workspace)>
const& callback);
239 void for_each_window_in_workspace(
240 std::shared_ptr<Workspace>
const& workspace,
241 std::function<
void(
Window const& window)>
const& callback);
251 void invoke_under_lock(std::function<
void()>
const& callback);
254 WindowManagerToolsImplementation* tools;
258 #endif //MIRAL_WINDOW_MANAGER_TOOLS_H Definition: splash_session.h:24
Definition: application_info.h:31
Definition: window_info.h:32
Definition: window_specification.h:43
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
Definition: displacement.h:33
Definition: rectangle.h:33
Mir Abstraction Layer.
Definition: floating_window_manager.h:29