mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:57:35 +00:00
LibGUI+WindowServer: Add app-global keyboard shortcuts.
This patch adds a GShortcut class. Each GAction can have a GShortcut which will cause the event loop to listen for that key combination app-globally and activate the event in case it's pressed. The shortcut will also be displayed when the action is added to a menu. Use this to hook up Alt+Up with the "open parent directory" action in the FileManager app. :^)
This commit is contained in:
parent
5c0fca0a95
commit
596a5ce5a4
17 changed files with 263 additions and 17 deletions
|
@ -1,13 +1,14 @@
|
|||
#pragma once
|
||||
|
||||
#include "GEvent.h"
|
||||
#include <AK/Badge.h>
|
||||
#include <AK/HashMap.h>
|
||||
#include <AK/OwnPtr.h>
|
||||
#include <AK/Vector.h>
|
||||
#include <AK/WeakPtr.h>
|
||||
#include <WindowServer/WSAPITypes.h>
|
||||
#include <LibGUI/GEvent.h>
|
||||
|
||||
class GAction;
|
||||
class GObject;
|
||||
class GNotifier;
|
||||
class GWindow;
|
||||
|
@ -23,8 +24,6 @@ public:
|
|||
|
||||
static GEventLoop& main();
|
||||
|
||||
static void initialize();
|
||||
|
||||
bool running() const { return m_running; }
|
||||
|
||||
int register_timer(GObject&, int milliseconds, bool should_reload);
|
||||
|
@ -42,6 +41,9 @@ public:
|
|||
|
||||
pid_t server_pid() const { return m_server_pid; }
|
||||
|
||||
static void register_action_with_shortcut(Badge<GAction>, GAction&);
|
||||
static void unregister_action_with_shortcut(Badge<GAction>, GAction&);
|
||||
|
||||
private:
|
||||
void wait_for_event();
|
||||
bool drain_messages_from_server();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue