17 #ifndef MIRAL_SHELL_TILING_WINDOW_MANAGER_H
18 #define MIRAL_SHELL_TILING_WINDOW_MANAGER_H
22 #include <miral/application.h>
23 #include <miral/window_management_policy.h>
24 #include <miral/window_manager_tools.h>
26 #include <mir/geometry/displacement.h>
27 #include <miral/internal_client.h>
29 #include <mir_toolkit/events/enums.h>
79 Rectangle
const& new_placement)
override;
82 void advise_application_zone_create(
miral::
Zone const& zone)
override;
83 void advise_application_zone_update(
miral::
Zone const& updated,
miral::
Zone const& original)
override;
84 void advise_application_zone_delete(
miral::
Zone const& zone)
override;
86 static const int modifier_mask =
93 void click(Point cursor);
94 void resize(Point cursor);
95 void drag(Point cursor);
96 void toggle(MirWindowState state);
98 miral::Application application_under(Point position);
101 void update_surfaces(
miral::
ApplicationInfo& info, Rectangle
const& old_tile, Rectangle
const& new_tile);
103 auto transform_set_state(MirWindowState value) -> MirWindowState;
106 static void resize(
miral::
Window window, Point cursor, Point old_cursor, Rectangle bounds);
115 bool dirty_tiles =
false;
121 void push(std::shared_ptr<
void>
const& tile);
122 void erase(std::shared_ptr<
void>
const& tile);
124 using Enumerator = std::function<
void(std::shared_ptr<
void>
const& tile)>;
126 void enumerate(Enumerator
const& enumerator)
const;
127 auto count() -> size_t {
return tiles.size(); }
130 std::vector<std::shared_ptr<
void>> tiles;