27
31
#define G_PASTE_GNOME_SHELL_BUS_NAME "org.gnome.Shell"
29
/* ShellKeyBindingMode stolen from gnome-shell */
33
/* ShellActionMode stolen from gnome-shell */
31
* GPasteGnomeShellKeyBindingMode:
32
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_NONE: block keybinding
33
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_NORMAL: allow keybinding when in window mode,
35
* GPasteGnomeShellActionMode:
36
* @G_PASTE_GNOME_SHELL_ACTION_MODE_NONE: block action
37
* @G_PASTE_GNOME_SHELL_ACTION_MODE_NORMAL: allow action when in window mode,
34
38
* e.g. when the focus is in an application window
35
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_OVERVIEW: allow keybinding while the overview
39
* @G_PASTE_GNOME_SHELL_ACTION_MODE_OVERVIEW: allow action while the overview
37
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOCK_SCREEN: allow keybinding when the screen
41
* @G_PASTE_GNOME_SHELL_ACTION_MODE_LOCK_SCREEN: allow action when the screen
38
42
* is locked, e.g. when the screen shield is shown
39
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_UNLOCK_SCREEN: allow keybinding in the unlock
43
* @G_PASTE_GNOME_SHELL_ACTION_MODE_UNLOCK_SCREEN: allow action in the unlock
41
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOGIN_SCREEN: allow keybinding in the login screen
42
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_MESSAGE_TRAY: allow keybinding while the message
44
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_SYSTEM_MODAL: allow keybinding when a system modal
45
* @G_PASTE_GNOME_SHELL_ACTION_MODE_LOGIN_SCREEN: allow action in the login screen
46
* @G_PASTE_GNOME_SHELL_ACTION_MODE_SYSTEM_MODAL: allow action when a system modal
45
47
* dialog (e.g. authentification or session dialogs) is open
46
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOOKING_GLASS: allow keybinding in looking glass
47
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_TOPBAR_POPUP: allow keybinding while a top bar menu
49
* @G_PASTE_GNOME_SHELL_KEYBINDING_MODE_ALL: always allow keybinding
48
* @G_PASTE_GNOME_SHELL_ACTION_MODE_LOOKING_GLASS: allow action in looking glass
49
* @G_PASTE_GNOME_SHELL_ACTION_MODE_POPUP: allow action while a shell menu is open
50
* @G_PASTE_GNOME_SHELL_ACTION_MODE_ALL: always allow action
51
* Controls in which GNOME Shell states a keybinding should be handled.
52
* Controls in which GNOME Shell states an action (like keybindings and gestures)
54
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_NONE = 0,
55
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_NORMAL = 1 << 0,
56
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_OVERVIEW = 1 << 1,
57
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOCK_SCREEN = 1 << 2,
58
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_UNLOCK_SCREEN = 1 << 3,
59
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOGIN_SCREEN = 1 << 4,
60
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_MESSAGE_TRAY = 1 << 5,
61
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_SYSTEM_MODAL = 1 << 6,
62
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_LOOKING_GLASS = 1 << 7,
63
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_TOPBAR_POPUP = 1 << 8,
65
G_PASTE_GNOME_SHELL_KEYBINDING_MODE_ALL = ~0,
66
} GPasteGnomeShellKeyBindingMode;
68
#define G_PASTE_TYPE_GNOME_SHELL_CLIENT (g_paste_gnome_shell_client_get_type ())
69
#define G_PASTE_GNOME_SHELL_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_PASTE_TYPE_GNOME_SHELL_CLIENT, GPasteGnomeShellClient))
70
#define G_PASTE_IS_GNOME_SHELL_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_PASTE_TYPE_GNOME_SHELL_CLIENT))
71
#define G_PASTE_GNOME_SHELL_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_PASTE_TYPE_GNOME_SHELL_CLIENT, GPasteGnomeShellClientClass))
72
#define G_PASTE_IS_GNOME_SHELL_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G_PASTE_TYPE_GNOME_SHELL_CLIENT))
73
#define G_PASTE_GNOME_SHELL_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_PASTE_TYPE_GNOME_SHELL_CLIENT, GPasteGnomeShellClientClass))
75
typedef struct _GPasteGnomeShellClient GPasteGnomeShellClient;
76
typedef struct _GPasteGnomeShellClientClass GPasteGnomeShellClientClass;
56
G_PASTE_GNOME_SHELL_ACTION_MODE_NONE = 0,
57
G_PASTE_GNOME_SHELL_ACTION_MODE_NORMAL = 1 << 0,
58
G_PASTE_GNOME_SHELL_ACTION_MODE_OVERVIEW = 1 << 1,
59
G_PASTE_GNOME_SHELL_ACTION_MODE_LOCK_SCREEN = 1 << 2,
60
G_PASTE_GNOME_SHELL_ACTION_MODE_UNLOCK_SCREEN = 1 << 3,
61
G_PASTE_GNOME_SHELL_ACTION_MODE_LOGIN_SCREEN = 1 << 4,
62
G_PASTE_GNOME_SHELL_ACTION_MODE_SYSTEM_MODAL = 1 << 5,
63
G_PASTE_GNOME_SHELL_ACTION_MODE_LOOKING_GLASS = 1 << 6,
64
G_PASTE_GNOME_SHELL_ACTION_MODE_POPUP = 1 << 7,
66
G_PASTE_GNOME_SHELL_ACTION_MODE_ALL = ~0,
67
} GPasteGnomeShellActionMode;
69
#define G_PASTE_TYPE_GNOME_SHELL_CLIENT (g_paste_gnome_shell_client_get_type ())
80
const gchar *accelerator;
81
GPasteGnomeShellKeyBindingMode flags;
73
const gchar *accelerator;
74
GPasteGnomeShellActionMode flags;
82
75
} GPasteGnomeShellAccelerator;
84
#define G_PASTE_GNOME_SHELL_ACCELERATOR(accelerator) ((GPasteGnomeShellAccelerator) {accelerator, G_PASTE_GNOME_SHELL_KEYBINDING_MODE_ALL})
77
#define G_PASTE_GNOME_SHELL_ACCELERATOR(accelerator) ((GPasteGnomeShellAccelerator) {accelerator, G_PASTE_GNOME_SHELL_ACTION_MODE_ALL})
87
GType g_paste_gnome_shell_client_get_type (void);
79
G_PASTE_FINAL_TYPE (GnomeShellClient, gnome_shell_client, GNOME_SHELL_CLIENT, GDBusProxy)
89
81
/*******************/
90
82
/* Methods / Sync */