summaryrefslogtreecommitdiff
path: root/Userland/Services/WindowServer/Overlays.h
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Services/WindowServer/Overlays.h')
-rw-r--r--Userland/Services/WindowServer/Overlays.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/Userland/Services/WindowServer/Overlays.h b/Userland/Services/WindowServer/Overlays.h
index b675e9b0c9..f94a870bd0 100644
--- a/Userland/Services/WindowServer/Overlays.h
+++ b/Userland/Services/WindowServer/Overlays.h
@@ -17,6 +17,7 @@ namespace WindowServer {
class Screen;
class Window;
+class WindowStack;
class Overlay {
friend class Compositor;
@@ -27,6 +28,7 @@ public:
enum class ZOrder {
WindowGeometry,
Dnd,
+ WindowStackSwitch,
ScreenNumber,
};
[[nodiscard]] virtual ZOrder zorder() const = 0;
@@ -168,4 +170,24 @@ private:
Gfx::IntRect m_label_rect;
};
+class WindowStackSwitchOverlay : public RectangularOverlay {
+public:
+ static constexpr int default_screen_rect_width = 40;
+ static constexpr int default_screen_rect_height = 30;
+ static constexpr int default_screen_rect_margin = 16;
+ static constexpr int default_screen_rect_padding = 8;
+
+ WindowStackSwitchOverlay(Screen&, WindowStack&);
+
+ virtual ZOrder zorder() const override { return ZOrder::WindowStackSwitch; }
+ virtual void render_overlay_bitmap(Gfx::Painter&) override;
+
+private:
+ Gfx::IntSize m_content_size;
+ const int m_rows;
+ const int m_columns;
+ const int m_target_row;
+ const int m_target_column;
+};
+
}