1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:37:45 +00:00

WindowServer+TaskBar: Add a taskbar window button popup menu.

This patch only hooks up the minimize and unminimize actions.
This commit is contained in:
Andreas Kling 2019-04-23 23:14:14 +02:00
parent c5c4e54a67
commit 956bd23aae
17 changed files with 158 additions and 56 deletions

View file

@ -61,6 +61,7 @@ public:
APIGetWallpaperRequest,
APISetWindowOverrideCursorRequest,
WMAPISetActiveWindowRequest,
WMAPISetWindowMinimizedRequest,
APIPopupMenuRequest,
APIDismissMenuRequest,
__End_API_Client_Requests,
@ -120,6 +121,27 @@ private:
int m_target_window_id;
};
class WSWMAPISetWindowMinimizedRequest : public WSAPIClientRequest {
public:
WSWMAPISetWindowMinimizedRequest(int client_id, int target_client_id, int target_window_id, bool minimized)
: WSAPIClientRequest(WSEvent::WMAPISetWindowMinimizedRequest, client_id)
, m_target_client_id(target_client_id)
, m_target_window_id(target_window_id)
, m_minimized(minimized)
{
}
int target_client_id() const { return m_target_client_id; }
int target_window_id() const { return m_target_window_id; }
bool is_minimized() const { return m_minimized; }
private:
int m_target_client_id;
int m_target_window_id;
bool m_minimized;
};
class WSAPISetGlobalCursorTrackingRequest : public WSAPIClientRequest {
public:
WSAPISetGlobalCursorTrackingRequest(int client_id, int window_id, bool value)
@ -192,19 +214,22 @@ private:
class WSAPIPopupMenuRequest : public WSAPIClientRequest {
public:
WSAPIPopupMenuRequest(int client_id, int menu_id, const Point& position)
WSAPIPopupMenuRequest(int client_id, int menu_id, const Point& position, bool top_anchored)
: WSAPIClientRequest(WSEvent::APIPopupMenuRequest, client_id)
, m_menu_id(menu_id)
, m_position(position)
, m_top_anchored(top_anchored)
{
}
int menu_id() const { return m_menu_id; }
Point position() const { return m_position; }
bool top_anchored() const { return m_top_anchored; }
private:
int m_menu_id;
Point m_position;
bool m_top_anchored;
};
class WSAPIDismissMenuRequest : public WSAPIClientRequest {