Mercurial > audlegacy-plugins
annotate src/hotkey/plugin.c @ 2281:6ca0d83ce51d
Hotkey: Changed "Play/Pause" to "Play" and "Pause" to "Pause/Resume" since they were doing the same
thing
| author | Sascha Hlusiak <contact@saschahlusiak.de> |
|---|---|
| date | Thu, 03 Jan 2008 15:46:23 +0100 |
| parents | d9706e29e968 |
| children | 515f9c741a5c |
| rev | line source |
|---|---|
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1 /* -*- Mode: C; indent-tabs: t; c-basic-offset: 9; tab-width: 9 -*- */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
2 /* |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
3 * This file is part of audacious-hotkey plugin for audacious |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
4 * |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
5 * Copyright (c) 2007 - 2008 Sascha Hlusiak <contact@saschahlusiak.de> |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
6 * Name: plugin.c |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
7 * Description: plugin.c |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
8 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
9 * Part of this code is from itouch-ctrl plugin. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
10 * Authors of itouch-ctrl are listed below: |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
11 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
12 * Copyright (c) 2006 - 2007 Vladimir Paskov <vlado.paskov@gmail.com> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
13 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
14 * Part of this code are from xmms-itouch plugin. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
15 * Authors of xmms-itouch are listed below: |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
16 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
17 * Copyright (C) 2000-2002 Ville Syrjälä <syrjala@sci.fi> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
18 * Bryn Davies <curious@ihug.com.au> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
19 * Jonathan A. Davis <davis@jdhouse.org> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
20 * Jeremy Tan <nsx@nsx.homeip.net> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
21 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
22 * audacious-hotkey is free software; you can redistribute it and/or modify |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
23 * it under the terms of the GNU General Public License as published by |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
24 * the Free Software Foundation; either version 2 of the License, or |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
25 * (at your option) any later version. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
26 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
27 * audacious-hotkey is distributed in the hope that it will be useful, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
30 * GNU General Public License for more details. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
31 * |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
32 * You should have received a copy of the GNU General Public License |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
33 * along with audacious-hotkey; if not, write to the Free Software |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
34 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
35 */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
36 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
37 #include <config.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
38 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
39 #include <stdio.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
40 #include <stdlib.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
41 #include <X11/Xlib.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
42 #include <X11/keysym.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
43 #include <X11/XF86keysym.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
44 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
45 #include <gtk/gtk.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
46 #include <gdk/gdkx.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
47 #include <gdk/gdkkeysyms.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
48 #include <audacious/plugin.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
49 #include <audacious/auddrct.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
50 #include <audacious/configdb.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
51 |
|
1551
a9af4f1aede9
hotkey plugin: stripped unneeded #ifdefs from standalone version
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
1543
diff
changeset
|
52 #include <audacious/i18n.h> |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
53 |
|
1677
f6f5603a0954
xmms_show_message() changed to audacious_info_dialog()
Matti Hamalainen <ccr@tnsp.org>
parents:
1658
diff
changeset
|
54 /* for audacious_info_dialog () */ |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
55 #include <audacious/util.h> |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
56 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
57 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
58 /* func defs */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
59 void x_display_init (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
60 static void get_offending_modifiers (Display * dpy); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
61 static void init (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
62 static void grab_keys (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
63 static void ungrab_keys (); |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
64 static gboolean handle_keyevent(int keycode, int state, int type); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
65 static gboolean setup_filter(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
66 static void release_filter(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
67 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
68 static void load_config (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
69 static void save_config (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
70 static void configure (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
71 static void clear_keyboard (GtkWidget *widget, gpointer data); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
72 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
73 void cancel_callback (GtkWidget *widget, gpointer data); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
74 void ok_callback (GtkWidget *widget, gpointer data); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
75 static void about (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
76 static void cleanup (void); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
77 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
78 #define TYPE_KEY 0 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
79 #define TYPE_MOUSE 1 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
80 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
81 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
82 typedef struct { |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
83 gint key, mask; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
84 gint type; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
85 } HotkeyConfiguration; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
86 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
87 typedef struct { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
88 gint vol_increment; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
89 gint vol_decrement; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
90 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
91 /* keyboard */ |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
92 HotkeyConfiguration mute; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
93 HotkeyConfiguration vol_down; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
94 HotkeyConfiguration vol_up; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
95 HotkeyConfiguration play; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
96 HotkeyConfiguration stop; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
97 HotkeyConfiguration pause; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
98 HotkeyConfiguration prev_track; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
99 HotkeyConfiguration next_track; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
100 HotkeyConfiguration jump_to_file; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
101 HotkeyConfiguration toggle_win; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
102 HotkeyConfiguration forward; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
103 HotkeyConfiguration backward; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
104 } PluginConfig; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
105 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
106 PluginConfig plugin_cfg; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
107 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
108 static Display *xdisplay = NULL; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
109 static Window x_root_window = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
110 static gint grabbed = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
111 static gboolean loaded = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
112 static unsigned int numlock_mask = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
113 static unsigned int scrolllock_mask = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
114 static unsigned int capslock_mask = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
115 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
116 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
117 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
118 typedef struct { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
119 GtkWidget *keytext; |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
120 HotkeyConfiguration hotkey; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
121 } KeyControls; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
122 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
123 typedef struct { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
124 KeyControls play; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
125 KeyControls stop; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
126 KeyControls pause; |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
127 KeyControls prev_track; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
128 KeyControls next_track; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
129 KeyControls vol_up; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
130 KeyControls vol_down; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
131 KeyControls mute; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
132 KeyControls jump_to_file; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
133 KeyControls forward; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
134 KeyControls backward; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
135 KeyControls toggle_win; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
136 } ConfigurationControls; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
137 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
138 static GeneralPlugin audacioushotkey = |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
139 { |
| 1658 | 140 .description = "Global Hotkey", |
| 141 .init = init, | |
| 142 .about = about, | |
| 143 .configure = configure, | |
| 144 .cleanup = cleanup | |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
145 }; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
146 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
147 GeneralPlugin *hotkey_gplist[] = { &audacioushotkey, NULL }; |
| 1658 | 148 SIMPLE_GENERAL_PLUGIN(hotkey, hotkey_gplist); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
149 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
150 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
151 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
152 /* |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
153 * plugin activated |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
154 */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
155 static void init (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
156 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
157 x_display_init ( ); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
158 setup_filter(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
159 load_config ( ); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
160 grab_keys (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
161 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
162 loaded = TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
163 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
164 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
165 /* check X display */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
166 void x_display_init (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
167 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
168 if (xdisplay != NULL) return; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
169 xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
170 x_root_window = GDK_WINDOW_XID(gdk_get_default_root_window()); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
171 get_offending_modifiers(xdisplay); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
172 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
173 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
174 /* Taken from xbindkeys */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
175 static void get_offending_modifiers (Display * dpy) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
176 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
177 int i; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
178 XModifierKeymap *modmap; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
179 KeyCode nlock, slock; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
180 static int mask_table[8] = { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
181 ShiftMask, LockMask, ControlMask, Mod1Mask, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
182 Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
183 }; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
184 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
185 nlock = XKeysymToKeycode (dpy, XK_Num_Lock); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
186 slock = XKeysymToKeycode (dpy, XK_Scroll_Lock); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
187 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
188 /* |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
189 * Find out the masks for the NumLock and ScrollLock modifiers, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
190 * so that we can bind the grabs for when they are enabled too. |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
191 */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
192 modmap = XGetModifierMapping (dpy); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
193 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
194 if (modmap != NULL && modmap->max_keypermod > 0) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
195 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
196 for (i = 0; i < 8 * modmap->max_keypermod; i++) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
197 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
198 if (modmap->modifiermap[i] == nlock && nlock != 0) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
199 numlock_mask = mask_table[i / modmap->max_keypermod]; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
200 else if (modmap->modifiermap[i] == slock && slock != 0) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
201 scrolllock_mask = mask_table[i / modmap->max_keypermod]; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
202 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
203 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
204 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
205 capslock_mask = LockMask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
206 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
207 if (modmap) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
208 XFreeModifiermap (modmap); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
209 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
210 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
211 /* handle keys */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
212 static gboolean handle_keyevent (int keycode, int state, int type) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
213 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
214 gint current_volume, old_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
215 static gint volume_static = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
216 gboolean play, mute; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
217 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
218 /* playing or not */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
219 play = audacious_drct_is_playing (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
220 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
221 /* get current volume */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
222 audacious_drct_get_volume_main (¤t_volume); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
223 old_volume = current_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
224 if (current_volume) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
225 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
226 /* volume is not mute */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
227 mute = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
228 } else { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
229 /* volume is mute */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
230 mute = TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
231 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
232 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
233 state &= ~(scrolllock_mask | numlock_mask | capslock_mask); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
234 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
235 /* mute the playback */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
236 if ((keycode == plugin_cfg.mute.key) && (state == plugin_cfg.mute.mask) && (type == plugin_cfg.mute.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
237 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
238 if (!mute) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
239 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
240 volume_static = current_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
241 audacious_drct_set_main_volume (0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
242 mute = TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
243 } else { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
244 audacious_drct_set_main_volume (volume_static); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
245 mute = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
246 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
247 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
248 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
249 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
250 /* decreace volume */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
251 if ((keycode == plugin_cfg.vol_down.key) && (state == plugin_cfg.vol_down.mask) && (type == plugin_cfg.vol_down.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
252 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
253 if (mute) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
254 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
255 current_volume = old_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
256 old_volume = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
257 mute = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
258 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
259 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
260 if ((current_volume -= plugin_cfg.vol_decrement) < 0) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
261 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
262 current_volume = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
263 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
264 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
265 if (current_volume != old_volume) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
266 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
267 audacious_drct_set_main_volume (current_volume); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
268 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
269 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
270 old_volume = current_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
271 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
272 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
273 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
274 /* increase volume */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
275 if ((keycode == plugin_cfg.vol_up.key) && (state == plugin_cfg.vol_up.mask) && (type == plugin_cfg.vol_up.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
276 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
277 if (mute) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
278 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
279 current_volume = old_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
280 old_volume = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
281 mute = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
282 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
283 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
284 if ((current_volume += plugin_cfg.vol_increment) > 100) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
285 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
286 current_volume = 100; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
287 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
288 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
289 if (current_volume != old_volume) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
290 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
291 audacious_drct_set_main_volume (current_volume); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
292 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
293 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
294 old_volume = current_volume; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
295 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
296 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
297 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
298 /* play */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
299 if ((keycode == plugin_cfg.play.key) && (state == plugin_cfg.play.mask) && (type == plugin_cfg.play.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
300 { |
|
2281
6ca0d83ce51d
Hotkey: Changed "Play/Pause" to "Play" and "Pause" to "Pause/Resume" since they were doing the same
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2274
diff
changeset
|
301 audacious_drct_play (); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
302 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
303 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
304 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
305 /* pause */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
306 if ((keycode == plugin_cfg.pause.key) && (state == plugin_cfg.pause.mask) && (type == plugin_cfg.pause.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
307 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
308 if (!play) audacious_drct_play (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
309 else audacious_drct_pause (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
310 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
311 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
312 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
313 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
314 /* stop */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
315 if ((keycode == plugin_cfg.stop.key) && (state == plugin_cfg.stop.mask) && (type == plugin_cfg.stop.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
316 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
317 audacious_drct_stop (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
318 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
319 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
320 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
321 /* prev track */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
322 if ((keycode == plugin_cfg.prev_track.key) && (state == plugin_cfg.prev_track.mask) && (type == plugin_cfg.prev_track.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
323 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
324 audacious_drct_playlist_prev (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
325 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
326 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
327 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
328 /* next track */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
329 if ((keycode == plugin_cfg.next_track.key) && (state == plugin_cfg.next_track.mask) && (type == plugin_cfg.next_track.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
330 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
331 audacious_drct_playlist_next (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
332 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
333 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
334 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
335 /* forward */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
336 if ((keycode == plugin_cfg.forward.key) && (state == plugin_cfg.forward.mask) && (type == plugin_cfg.forward.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
337 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
338 gint time = audacious_drct_get_output_time(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
339 time += 5000; /* Jump 5s into future */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
340 audacious_drct_jump_to_time(time); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
341 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
342 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
343 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
344 /* backward */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
345 if ((keycode == plugin_cfg.backward.key) && (state == plugin_cfg.backward.mask) && (type == plugin_cfg.backward.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
346 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
347 gint time = audacious_drct_get_output_time(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
348 if (time > 5000) time -= 5000; /* Jump 5s back */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
349 else time = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
350 audacious_drct_jump_to_time(time); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
351 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
352 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
353 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
354 /* Open Jump-To-File dialog */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
355 if ((keycode == plugin_cfg.jump_to_file.key) && (state == plugin_cfg.jump_to_file.mask) && (type == plugin_cfg.jump_to_file.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
356 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
357 audacious_drct_show_jtf_box(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
358 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
359 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
360 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
361 /* Toggle Windows */ |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
362 if ((keycode == plugin_cfg.toggle_win.key) && (state == plugin_cfg.toggle_win.mask) && (type == plugin_cfg.toggle_win.type)) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
363 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
364 static gboolean is_main, is_eq, is_pl; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
365 is_main = audacious_drct_main_win_is_visible(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
366 if (is_main) { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
367 is_pl = audacious_drct_pl_win_is_visible(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
368 is_eq = audacious_drct_eq_win_is_visible(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
369 audacious_drct_main_win_toggle(FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
370 audacious_drct_pl_win_toggle(FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
371 audacious_drct_eq_win_toggle(FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
372 } else { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
373 audacious_drct_main_win_toggle(TRUE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
374 audacious_drct_pl_win_toggle(is_pl); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
375 audacious_drct_eq_win_toggle(is_eq); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
376 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
377 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
378 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
379 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
380 return FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
381 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
382 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
383 static GdkFilterReturn |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
384 gdk_filter(GdkXEvent *xevent, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
385 GdkEvent *event, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
386 gpointer data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
387 { |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
388 switch (((XEvent*)xevent)->type) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
389 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
390 case KeyPress: |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
391 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
392 XKeyEvent *keyevent = (XKeyEvent*)xevent; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
393 if (handle_keyevent(keyevent->keycode, keyevent->state, TYPE_KEY)) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
394 return GDK_FILTER_REMOVE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
395 break; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
396 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
397 case ButtonPress: |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
398 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
399 XButtonEvent *buttonevent = (XButtonEvent*)xevent; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
400 if (handle_keyevent(buttonevent->button, buttonevent->state, TYPE_MOUSE)) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
401 return GDK_FILTER_REMOVE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
402 break; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
403 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
404 default: |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
405 return -1; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
406 } |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
407 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
408 return GDK_FILTER_CONTINUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
409 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
410 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
411 static gboolean |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
412 setup_filter() |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
413 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
414 gdk_window_add_filter(gdk_get_default_root_window(), |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
415 gdk_filter, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
416 NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
417 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
418 return TRUE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
419 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
420 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
421 static void release_filter() |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
422 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
423 gdk_window_remove_filter(gdk_get_default_root_window(), |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
424 gdk_filter, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
425 NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
426 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
427 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
428 /* load plugin configuration */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
429 static void load_config (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
430 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
431 ConfigDb *cfdb; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
432 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
433 if (xdisplay == NULL) x_display_init(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
434 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
435 /* default volume level */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
436 plugin_cfg.vol_increment = 4; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
437 plugin_cfg.vol_decrement = 4; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
438 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
439 #define load_key(hotkey,default) \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
440 plugin_cfg.hotkey.key = (default)?(XKeysymToKeycode(xdisplay, (default))):0; \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
441 plugin_cfg.hotkey.mask = 0; \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
442 plugin_cfg.hotkey.type = TYPE_KEY; \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
443 aud_cfg_db_get_int (cfdb, "globalHotkey", #hotkey, &plugin_cfg.hotkey.key); \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
444 aud_cfg_db_get_int (cfdb, "globalHotkey", #hotkey "_mask", &plugin_cfg.hotkey.mask); \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
445 aud_cfg_db_get_int (cfdb, "globalHotkey", #hotkey "_type", &plugin_cfg.hotkey.type); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
446 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
447 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
448 /* open configuration database */ |
| 2124 | 449 cfdb = aud_cfg_db_open ( ); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
450 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
451 load_key(mute, XF86XK_AudioMute); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
452 load_key(vol_down, XF86XK_AudioLowerVolume); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
453 load_key(vol_up, XF86XK_AudioRaiseVolume); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
454 load_key(play, XF86XK_AudioPlay); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
455 load_key(pause, XF86XK_AudioPause); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
456 load_key(stop, XF86XK_AudioStop); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
457 load_key(prev_track, XF86XK_AudioPrev); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
458 load_key(next_track, XF86XK_AudioNext); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
459 load_key(jump_to_file, XF86XK_AudioMedia); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
460 load_key(toggle_win, 0); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
461 load_key(forward, 0); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
462 load_key(backward, XF86XK_AudioRewind); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
463 |
| 2124 | 464 aud_cfg_db_close (cfdb); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
465 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
466 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
467 /* save plugin configuration */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
468 static void save_config (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
469 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
470 ConfigDb *cfdb; |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
471 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
472 #define save_key(hotkey) \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
473 aud_cfg_db_set_int (cfdb, "globalHotkey", #hotkey, plugin_cfg.hotkey.key); \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
474 aud_cfg_db_set_int (cfdb, "globalHotkey", #hotkey "_mask", plugin_cfg.hotkey.mask); \ |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
475 aud_cfg_db_set_int (cfdb, "globalHotkey", #hotkey "_type", plugin_cfg.hotkey.type); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
476 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
477 /* open configuration database */ |
| 2124 | 478 cfdb = aud_cfg_db_open ( ); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
479 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
480 save_key(mute); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
481 save_key(vol_up); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
482 save_key(vol_down); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
483 save_key(play); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
484 save_key(pause); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
485 save_key(stop); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
486 save_key(prev_track); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
487 save_key(next_track); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
488 save_key(jump_to_file); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
489 save_key(forward); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
490 save_key(backward); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
491 save_key(toggle_win); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
492 |
| 2124 | 493 aud_cfg_db_close (cfdb); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
494 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
495 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
496 static int x11_error_handler (Display *dpy, XErrorEvent *error) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
497 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
498 return 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
499 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
500 |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
501 /* grab required keys */ |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
502 static void grab_key(HotkeyConfiguration hotkey) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
503 { |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
504 unsigned int modifier = hotkey.mask & ~(numlock_mask | capslock_mask | scrolllock_mask); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
505 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
506 if (hotkey.key == 0) return; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
507 |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
508 if (hotkey.type == TYPE_KEY) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
509 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
510 XGrabKey (xdisplay, hotkey.key, modifier, x_root_window, |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
511 False, GrabModeAsync, GrabModeAsync); |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
512 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
513 if (modifier == AnyModifier) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
514 return; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
515 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
516 if (numlock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
517 XGrabKey (xdisplay, hotkey.key, modifier | numlock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
518 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
519 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
520 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
521 if (capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
522 XGrabKey (xdisplay, hotkey.key, modifier | capslock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
523 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
524 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
525 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
526 if (scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
527 XGrabKey (xdisplay, hotkey.key, modifier | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
528 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
529 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
530 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
531 if (numlock_mask && capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
532 XGrabKey (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
533 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
534 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
535 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
536 if (numlock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
537 XGrabKey (xdisplay, hotkey.key, modifier | numlock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
538 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
539 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
540 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
541 if (capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
542 XGrabKey (xdisplay, hotkey.key, modifier | capslock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
543 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
544 False, GrabModeAsync, GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
545 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
546 if (numlock_mask && capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
547 XGrabKey (xdisplay, hotkey.key, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
548 modifier | numlock_mask | capslock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
549 x_root_window, False, GrabModeAsync, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
550 GrabModeAsync); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
551 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
552 if (hotkey.type == TYPE_MOUSE) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
553 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
554 XGrabButton (xdisplay, hotkey.key, modifier, x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
555 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
556 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
557 if (modifier == AnyModifier) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
558 return; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
559 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
560 if (numlock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
561 XGrabButton (xdisplay, hotkey.key, modifier | numlock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
562 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
563 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
564 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
565 if (capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
566 XGrabButton (xdisplay, hotkey.key, modifier | capslock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
567 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
568 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
569 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
570 if (scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
571 XGrabButton (xdisplay, hotkey.key, modifier | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
572 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
573 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
574 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
575 if (numlock_mask && capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
576 XGrabButton (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
577 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
578 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
579 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
580 if (numlock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
581 XGrabButton (xdisplay, hotkey.key, modifier | numlock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
582 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
583 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
584 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
585 if (capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
586 XGrabButton (xdisplay, hotkey.key, modifier | capslock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
587 x_root_window, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
588 False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
589 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
590 if (numlock_mask && capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
591 XGrabButton (xdisplay, hotkey.key, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
592 modifier | numlock_mask | capslock_mask | scrolllock_mask, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
593 x_root_window, False, ButtonPressMask, GrabModeAsync, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
594 GrabModeAsync, None, None); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
595 } |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
596 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
597 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
598 static void grab_keys () |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
599 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
600 if (grabbed) return; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
601 if (xdisplay == NULL) x_display_init(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
602 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
603 XErrorHandler old_handler = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
604 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
605 XSync(xdisplay, False); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
606 old_handler = XSetErrorHandler (x11_error_handler); |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
607 |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
608 grab_key(plugin_cfg.mute); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
609 grab_key(plugin_cfg.vol_up); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
610 grab_key(plugin_cfg.vol_down); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
611 grab_key(plugin_cfg.play); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
612 grab_key(plugin_cfg.pause); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
613 grab_key(plugin_cfg.stop); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
614 grab_key(plugin_cfg.prev_track); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
615 grab_key(plugin_cfg.next_track); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
616 grab_key(plugin_cfg.jump_to_file); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
617 grab_key(plugin_cfg.forward); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
618 grab_key(plugin_cfg.backward); |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
619 grab_key(plugin_cfg.toggle_win); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
620 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
621 XSync(xdisplay, False); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
622 XSetErrorHandler (old_handler); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
623 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
624 grabbed = 1; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
625 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
626 /* |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
627 * plugin init end |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
628 */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
629 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
630 static void set_keytext (GtkWidget *entry, gint key, gint mask, gint type) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
631 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
632 gchar *text = NULL; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
633 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
634 if (key == 0 && mask == 0) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
635 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
636 text = g_strdup(_("(none)")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
637 } else { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
638 static char *modifier_string[] = { "Control", "Shift", "Alt", "Mod2", "Mod3", "Super", "Mod5" }; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
639 static unsigned int modifiers[] = { ControlMask, ShiftMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask }; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
640 gchar *strings[9]; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
641 gchar *keytext = NULL; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
642 int i, j; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
643 if (type == TYPE_KEY) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
644 { |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
645 KeySym keysym; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
646 keysym = XKeycodeToKeysym(xdisplay, key, 0); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
647 if (keysym == 0 || keysym == NoSymbol) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
648 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
649 keytext = g_strdup_printf("#%d", key); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
650 } else { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
651 keytext = g_strdup(XKeysymToString(keysym)); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
652 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
653 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
654 if (type == TYPE_MOUSE) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
655 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
656 keytext = g_strdup_printf("Button%d", key); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
657 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
658 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
659 for (i = 0, j=0; j<7; j++) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
660 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
661 if (mask & modifiers[j]) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
662 strings[i++] = modifier_string[j]; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
663 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
664 if (key != 0) strings[i++] = keytext; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
665 strings[i] = NULL; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
666 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
667 text = g_strjoinv(" + ", strings); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
668 g_free(keytext); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
669 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
670 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
671 gtk_entry_set_text(GTK_ENTRY(entry), text); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
672 gtk_editable_set_position(GTK_EDITABLE(entry), -1); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
673 if (text) g_free(text); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
674 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
675 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
676 static gboolean |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
677 on_entry_key_press_event(GtkWidget * widget, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
678 GdkEventKey * event, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
679 gpointer user_data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
680 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
681 KeyControls *controls = (KeyControls*) user_data; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
682 int is_mod; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
683 int mod; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
684 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
685 if (event->keyval == GDK_Tab) return FALSE; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
686 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
687 mod = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
688 is_mod = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
689 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
690 if ((event->state & GDK_CONTROL_MASK) | (!is_mod && (is_mod = (event->keyval == GDK_Control_L || event->keyval == GDK_Control_R)))) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
691 mod |= ControlMask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
692 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
693 if ((event->state & GDK_MOD1_MASK) | (!is_mod && (is_mod = (event->keyval == GDK_Alt_L || event->keyval == GDK_Alt_R)))) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
694 mod |= Mod1Mask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
695 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
696 if ((event->state & GDK_SHIFT_MASK) | (!is_mod && (is_mod = (event->keyval == GDK_Shift_L || event->keyval == GDK_Shift_R)))) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
697 mod |= ShiftMask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
698 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
699 if ((event->state & GDK_MOD5_MASK) | (!is_mod && (is_mod = (event->keyval == GDK_ISO_Level3_Shift)))) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
700 mod |= Mod5Mask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
701 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
702 if ((event->state & GDK_MOD4_MASK) | (!is_mod && (is_mod = (event->keyval == GDK_Super_L || event->keyval == GDK_Super_R)))) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
703 mod |= Mod4Mask; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
704 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
705 if (!is_mod) { |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
706 controls->hotkey.key = event->hardware_keycode; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
707 controls->hotkey.mask = mod; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
708 controls->hotkey.type = TYPE_KEY; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
709 } else controls->hotkey.key = 0; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
710 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
711 set_keytext(controls->keytext, is_mod ? 0 : event->hardware_keycode, mod, TYPE_KEY); |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
712 return TRUE; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
713 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
714 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
715 static gboolean |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
716 on_entry_key_release_event(GtkWidget * widget, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
717 GdkEventKey * event, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
718 gpointer user_data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
719 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
720 KeyControls *controls = (KeyControls*) user_data; |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
721 if (controls->hotkey.key == 0) { |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
722 controls->hotkey.mask = 0; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
723 return TRUE; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
724 } |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
725 set_keytext(controls->keytext, controls->hotkey.key, controls->hotkey.mask, controls->hotkey.type); |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
726 return TRUE; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
727 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
728 |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
729 static gboolean |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
730 on_entry_button_press_event(GtkWidget * widget, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
731 GdkEventButton * event, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
732 gpointer user_data) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
733 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
734 KeyControls *controls = (KeyControls*) user_data; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
735 int mod; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
736 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
737 if (!gtk_widget_is_focus(widget)) return FALSE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
738 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
739 mod = 0; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
740 if (event->state & GDK_CONTROL_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
741 mod |= ControlMask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
742 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
743 if (event->state & GDK_MOD1_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
744 mod |= Mod1Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
745 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
746 if (event->state & GDK_SHIFT_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
747 mod |= ShiftMask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
748 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
749 if (event->state & GDK_MOD5_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
750 mod |= Mod5Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
751 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
752 if (event->state & GDK_MOD4_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
753 mod |= Mod4Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
754 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
755 if ((event->button <= 3) && (mod == 0)) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
756 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
757 GtkWidget* dialog; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
758 GtkResponseType response; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
759 dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_toplevel(widget)), |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
760 GTK_DIALOG_MODAL, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
761 GTK_MESSAGE_WARNING, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
762 GTK_BUTTONS_YES_NO, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
763 _("It is not recommended to bind the primary mouse buttons without modificators.\n\n" |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
764 "Do you want to continue?")); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
765 gtk_window_set_title(GTK_WINDOW(dialog), _("Binding mouse buttons")); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
766 response = gtk_dialog_run(GTK_DIALOG(dialog)); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
767 gtk_widget_destroy (dialog); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
768 if (response != GTK_RESPONSE_YES) return TRUE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
769 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
770 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
771 controls->hotkey.key = event->button; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
772 controls->hotkey.mask = mod; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
773 controls->hotkey.type = TYPE_MOUSE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
774 set_keytext(controls->keytext, controls->hotkey.key, controls->hotkey.mask, controls->hotkey.type); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
775 return TRUE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
776 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
777 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
778 static gboolean |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
779 on_entry_scroll_event(GtkWidget * widget, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
780 GdkEventScroll * event, |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
781 gpointer user_data) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
782 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
783 KeyControls *controls = (KeyControls*) user_data; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
784 int mod; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
785 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
786 if (!gtk_widget_is_focus(widget)) return FALSE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
787 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
788 mod = 0; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
789 if (event->state & GDK_CONTROL_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
790 mod |= ControlMask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
791 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
792 if (event->state & GDK_MOD1_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
793 mod |= Mod1Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
794 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
795 if (event->state & GDK_SHIFT_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
796 mod |= ShiftMask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
797 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
798 if (event->state & GDK_MOD5_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
799 mod |= Mod5Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
800 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
801 if (event->state & GDK_MOD4_MASK) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
802 mod |= Mod4Mask; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
803 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
804 if (event->direction == GDK_SCROLL_UP) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
805 controls->hotkey.key = 4; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
806 else if (event->direction == GDK_SCROLL_DOWN) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
807 controls->hotkey.key = 5; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
808 else if (event->direction == GDK_SCROLL_LEFT) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
809 controls->hotkey.key = 6; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
810 else if (event->direction == GDK_SCROLL_RIGHT) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
811 controls->hotkey.key = 7; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
812 else return FALSE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
813 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
814 controls->hotkey.mask = mod; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
815 controls->hotkey.type = TYPE_MOUSE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
816 set_keytext(controls->keytext, controls->hotkey.key, controls->hotkey.mask, controls->hotkey.type); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
817 return TRUE; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
818 } |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
819 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
820 static void add_event_controls(GtkWidget *table, |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
821 KeyControls *controls, |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
822 int row, |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
823 char* descr, |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
824 HotkeyConfiguration hotkey) |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
825 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
826 GtkWidget *label; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
827 GtkWidget *button; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
828 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
829 controls->hotkey.key = hotkey.key; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
830 controls->hotkey.mask = hotkey.mask; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
831 controls->hotkey.type = hotkey.type; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
832 if (controls->hotkey.key == 0) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
833 controls->hotkey.mask = 0; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
834 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
835 label = gtk_label_new (_(descr)); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
836 gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row+1, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
837 (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
838 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
839 gtk_misc_set_padding (GTK_MISC (label), 3, 3); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
840 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
841 controls->keytext = gtk_entry_new (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
842 gtk_table_attach (GTK_TABLE (table), controls->keytext, 1, 2, row, row+1, |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
843 (GtkAttachOptions) (GTK_FILL|GTK_EXPAND), (GtkAttachOptions) (GTK_EXPAND), 0, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
844 gtk_entry_set_editable (GTK_ENTRY (controls->keytext), FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
845 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
846 set_keytext(controls->keytext, hotkey.key, hotkey.mask, hotkey.type); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
847 g_signal_connect((gpointer)controls->keytext, "key_press_event", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
848 G_CALLBACK(on_entry_key_press_event), controls); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
849 g_signal_connect((gpointer)controls->keytext, "key_release_event", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
850 G_CALLBACK(on_entry_key_release_event), controls); |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
851 g_signal_connect((gpointer)controls->keytext, "button_press_event", |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
852 G_CALLBACK(on_entry_button_press_event), controls); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
853 g_signal_connect((gpointer)controls->keytext, "scroll_event", |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
854 G_CALLBACK(on_entry_scroll_event), controls); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
855 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
856 button = gtk_button_new_with_label (_("None")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
857 gtk_table_attach (GTK_TABLE (table), button, 2, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
858 g_signal_connect (G_OBJECT (button), "clicked", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
859 G_CALLBACK (clear_keyboard), controls); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
860 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
861 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
862 /* configuration window */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
863 static void configure (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
864 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
865 ConfigurationControls *controls; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
866 GtkWidget *window; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
867 GtkWidget *main_vbox, *vbox; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
868 GtkWidget *hbox; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
869 GtkWidget *alignment; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
870 GtkWidget *frame; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
871 GtkWidget *label; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
872 GtkWidget *image; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
873 GtkWidget *table; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
874 GtkWidget *button_box, *button; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
875 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
876 if (!xdisplay) x_display_init(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
877 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
878 load_config ( ); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
879 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
880 ungrab_keys(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
881 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
882 controls = (ConfigurationControls*)g_malloc(sizeof(ConfigurationControls)); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
883 if (!controls) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
884 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
885 printf ("Faild to allocate memory for ConfigurationControls structure!\n" |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
886 "Aborting!"); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
887 return; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
888 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
889 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
890 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
891 gtk_window_set_title (GTK_WINDOW (window), _("Global Hotkey Plugin Configuration")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
892 gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ALWAYS); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
893 gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
894 gtk_window_set_resizable (GTK_WINDOW (window), FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
895 gtk_container_set_border_width (GTK_CONTAINER (window), 5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
896 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
897 main_vbox = gtk_vbox_new (FALSE, 4); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
898 gtk_container_add (GTK_CONTAINER (window), main_vbox); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
899 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
900 alignment = gtk_alignment_new (0.5, 0.5, 1, 1); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
901 gtk_box_pack_start (GTK_BOX (main_vbox), alignment, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
902 gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 4, 0, 0, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
903 hbox = gtk_hbox_new (FALSE, 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
904 gtk_container_add (GTK_CONTAINER (alignment), hbox); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
905 image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
906 gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
907 label = gtk_label_new (_("Press a key combination inside a text field.")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
908 gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
909 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
910 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
911 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
912 gtk_label_set_markup (GTK_LABEL (label), _("<b>Playback:</b>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
913 frame = gtk_frame_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
914 gtk_frame_set_label_widget (GTK_FRAME (frame), label); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
915 gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
916 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
917 alignment = gtk_alignment_new (0.5, 0.5, 1, 1); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
918 gtk_container_add (GTK_CONTAINER (frame), alignment); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
919 gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 3, 3, 3, 3); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
920 vbox = gtk_vbox_new (FALSE, 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
921 gtk_container_add (GTK_CONTAINER (alignment), vbox); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
922 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
923 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
924 gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
925 gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
926 gtk_label_set_markup (GTK_LABEL (label), |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
927 _("<i>Configure keys which controls Audacious playback.</i>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
928 table = gtk_table_new (4, 3, FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
929 gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
930 gtk_table_set_col_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
931 gtk_table_set_row_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
932 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
933 /* prev track */ |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
934 add_event_controls(table, &controls->prev_track, 0, _("Previous Track:"), |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
935 plugin_cfg.prev_track); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
936 |
|
2281
6ca0d83ce51d
Hotkey: Changed "Play/Pause" to "Play" and "Pause" to "Pause/Resume" since they were doing the same
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2274
diff
changeset
|
937 add_event_controls(table, &controls->play, 1, _("Play:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
938 plugin_cfg.play); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
939 |
|
2281
6ca0d83ce51d
Hotkey: Changed "Play/Pause" to "Play" and "Pause" to "Pause/Resume" since they were doing the same
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2274
diff
changeset
|
940 add_event_controls(table, &controls->pause, 2, _("Pause/Resume:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
941 plugin_cfg.pause); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
942 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
943 add_event_controls(table, &controls->stop, 3, _("Stop:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
944 plugin_cfg.stop); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
945 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
946 add_event_controls(table, &controls->next_track, 4, _("Next Track:"), |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
947 plugin_cfg.next_track); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
948 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
949 add_event_controls(table, &controls->forward, 5, _("Forward 5 sec.:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
950 plugin_cfg.forward); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
951 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
952 add_event_controls(table, &controls->backward, 6, _("Rewind 5 sec.:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
953 plugin_cfg.backward); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
954 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
955 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
956 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
957 gtk_label_set_markup (GTK_LABEL (label), _("<b>Volume Control:</b>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
958 frame = gtk_frame_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
959 gtk_frame_set_label_widget (GTK_FRAME (frame), label); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
960 gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
961 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
962 alignment = gtk_alignment_new (0.5, 0.5, 1, 1); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
963 gtk_container_add (GTK_CONTAINER (frame), alignment); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
964 gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 3, 3, 3, 3); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
965 vbox = gtk_vbox_new (FALSE, 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
966 gtk_container_add (GTK_CONTAINER (alignment), vbox); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
967 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
968 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
969 gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
970 gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
971 gtk_label_set_markup (GTK_LABEL (label), |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
972 _("<i>Configure keys which controls music volume.</i>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
973 table = gtk_table_new (3, 3, FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
974 gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
975 gtk_table_set_col_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
976 gtk_table_set_row_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
977 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
978 add_event_controls(table, &controls->mute, 0, _("Mute:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
979 plugin_cfg.mute); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
980 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
981 add_event_controls(table, &controls->vol_up, 1, _("Volume Up:"), |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
982 plugin_cfg.vol_up); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
983 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
984 add_event_controls(table, &controls->vol_down, 2, _("Volume Down:"), |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
985 plugin_cfg.vol_down); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
986 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
987 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
988 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
989 gtk_label_set_markup (GTK_LABEL (label), _("<b>Player:</b>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
990 frame = gtk_frame_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
991 gtk_frame_set_label_widget (GTK_FRAME (frame), label); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
992 gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
993 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
994 alignment = gtk_alignment_new (0.5, 0.5, 1, 1); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
995 gtk_container_add (GTK_CONTAINER (frame), alignment); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
996 gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 3, 3, 3, 3); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
997 vbox = gtk_vbox_new (FALSE, 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
998 gtk_container_add (GTK_CONTAINER (alignment), vbox); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
999 label = gtk_label_new (NULL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1000 gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1001 gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1002 gtk_misc_set_alignment (GTK_MISC (label), 0.5, 0.5); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1003 gtk_label_set_markup (GTK_LABEL (label), |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1004 _("<i>Configure keys which control the player.</i>")); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1005 table = gtk_table_new (3, 2, FALSE); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1006 gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1007 gtk_table_set_col_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1008 gtk_table_set_row_spacings (GTK_TABLE (table), 2); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1009 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1010 add_event_controls(table, &controls->jump_to_file, 0, _("Jump to File:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1011 plugin_cfg.jump_to_file); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1012 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1013 add_event_controls(table, &controls->toggle_win, 1, _("Toggle Player Windows:"), |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1014 plugin_cfg.toggle_win); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1015 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1016 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1017 button_box = gtk_hbutton_box_new ( ); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1018 gtk_box_pack_start (GTK_BOX (main_vbox), button_box, FALSE, TRUE, 6); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1019 gtk_button_box_set_layout (GTK_BUTTON_BOX (button_box), GTK_BUTTONBOX_END); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1020 gtk_box_set_spacing (GTK_BOX (button_box), 4); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1021 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1022 button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1023 gtk_container_add (GTK_CONTAINER (button_box), button); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1024 g_signal_connect (G_OBJECT (button), "clicked", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1025 G_CALLBACK (cancel_callback), controls); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1026 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1027 button = gtk_button_new_from_stock (GTK_STOCK_OK); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1028 gtk_container_add (GTK_CONTAINER (button_box), button); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1029 g_signal_connect (G_OBJECT (button), "clicked", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1030 G_CALLBACK (ok_callback), controls); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1031 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1032 gtk_widget_show_all (GTK_WIDGET (window)); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1033 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1034 /* configuration window end */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1035 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1036 static void about (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1037 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1038 static GtkWidget *dialog; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1039 |
|
1677
f6f5603a0954
xmms_show_message() changed to audacious_info_dialog()
Matti Hamalainen <ccr@tnsp.org>
parents:
1658
diff
changeset
|
1040 dialog = audacious_info_dialog (_("About Global Hotkey Plugin"), |
|
1551
a9af4f1aede9
hotkey plugin: stripped unneeded #ifdefs from standalone version
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
1543
diff
changeset
|
1041 _("Global Hotkey Plugin\n" |
|
a9af4f1aede9
hotkey plugin: stripped unneeded #ifdefs from standalone version
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
1543
diff
changeset
|
1042 "Control the player with global key combinations or multimedia keys.\n\n" |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1043 "Copyright (C) 2007-2008 Sascha Hlusiak <contact@saschahlusiak.de>\n\n" |
|
1551
a9af4f1aede9
hotkey plugin: stripped unneeded #ifdefs from standalone version
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
1543
diff
changeset
|
1044 "Contributers include:\n" |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1045 "Copyright (C) 2006-2007 Vladimir Paskov <vlado.paskov@gmail.com>\n" |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1046 "Copyright (C) 2000-2002 Ville Syrjälä <syrjala@sci.fi>\n" |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1047 " Bryn Davies <curious@ihug.com.au>\n" |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1048 " Jonathan A. Davis <davis@jdhouse.org>\n" |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1049 " Jeremy Tan <nsx@nsx.homeip.net>\n\n" |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1050 ), |
|
1551
a9af4f1aede9
hotkey plugin: stripped unneeded #ifdefs from standalone version
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
1543
diff
changeset
|
1051 _("OK"), TRUE, NULL, NULL); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1052 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1053 gtk_signal_connect(GTK_OBJECT(dialog), "destroy", |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1054 GTK_SIGNAL_FUNC(gtk_widget_destroyed), &dialog); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1055 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1056 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1057 /* Clear keys */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1058 static void clear_keyboard (GtkWidget *widget, gpointer data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1059 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1060 KeyControls *spins = (KeyControls*)data; |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1061 spins->hotkey.key = 0; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1062 spins->hotkey.mask = 0; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1063 spins->hotkey.type = TYPE_KEY; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1064 set_keytext(spins->keytext, 0, 0, TYPE_KEY); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1065 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1066 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1067 void cancel_callback (GtkWidget *widget, gpointer data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1068 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1069 if (loaded) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1070 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1071 grab_keys (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1072 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1073 if (data) g_free(data); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1074 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1075 gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (widget))); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1076 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1077 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1078 void ok_callback (GtkWidget *widget, gpointer data) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1079 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1080 ConfigurationControls *controls= (ConfigurationControls*)data; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1081 |
|
2273
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1082 plugin_cfg.play = controls->play.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1083 plugin_cfg.pause = controls->pause.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1084 plugin_cfg.stop= controls->stop.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1085 plugin_cfg.prev_track= controls->prev_track.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1086 plugin_cfg.next_track = controls->next_track.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1087 plugin_cfg.forward = controls->forward.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1088 plugin_cfg.backward = controls->backward.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1089 plugin_cfg.vol_up= controls->vol_up.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1090 plugin_cfg.vol_down = controls->vol_down.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1091 plugin_cfg.mute = controls->mute.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1092 plugin_cfg.jump_to_file= controls->jump_to_file.hotkey; |
|
f893d05f707b
Hotkey: some cleaning and simplifying
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2124
diff
changeset
|
1093 plugin_cfg.toggle_win = controls->toggle_win.hotkey; |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1094 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1095 save_config ( ); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1096 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1097 if (loaded) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1098 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1099 grab_keys (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1100 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1101 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1102 if (data) g_free(data); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1103 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1104 gtk_widget_destroy (gtk_widget_get_toplevel (GTK_WIDGET (widget))); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1105 } |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1106 |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1107 /* |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1108 * plugin cleanup |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1109 */ |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1110 static void cleanup (void) |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1111 { |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1112 if (!loaded) return; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1113 ungrab_keys (); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1114 release_filter(); |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1115 loaded = FALSE; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1116 } |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1117 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1118 /* grab required keys */ |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1119 static void ungrab_key(HotkeyConfiguration hotkey) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1120 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1121 unsigned int modifier = hotkey.mask & ~(numlock_mask | capslock_mask | scrolllock_mask); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1122 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1123 if (hotkey.key == 0) return; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1124 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1125 if (hotkey.type == TYPE_KEY) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1126 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1127 XUngrabKey (xdisplay, hotkey.key, modifier, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1128 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1129 if (modifier == AnyModifier) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1130 return; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1131 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1132 if (numlock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1133 XUngrabKey (xdisplay, hotkey.key, modifier | numlock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1134 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1135 if (capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1136 XUngrabKey (xdisplay, hotkey.key, modifier | capslock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1137 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1138 if (scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1139 XUngrabKey (xdisplay, hotkey.key, modifier | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1140 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1141 if (numlock_mask && capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1142 XUngrabKey (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1143 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1144 if (numlock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1145 XUngrabKey (xdisplay, hotkey.key, modifier | numlock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1146 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1147 if (capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1148 XUngrabKey (xdisplay, hotkey.key, modifier | capslock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1149 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1150 if (numlock_mask && capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1151 XUngrabKey (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1152 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1153 if (hotkey.type == TYPE_MOUSE) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1154 { |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1155 XUngrabButton (xdisplay, hotkey.key, modifier, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1156 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1157 if (modifier == AnyModifier) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1158 return; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1159 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1160 if (numlock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1161 XUngrabButton (xdisplay, hotkey.key, modifier | numlock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1162 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1163 if (capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1164 XUngrabButton (xdisplay, hotkey.key, modifier | capslock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1165 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1166 if (scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1167 XUngrabButton (xdisplay, hotkey.key, modifier | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1168 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1169 if (numlock_mask && capslock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1170 XUngrabButton (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1171 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1172 if (numlock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1173 XUngrabButton (xdisplay, hotkey.key, modifier | numlock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1174 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1175 if (capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1176 XUngrabButton (xdisplay, hotkey.key, modifier | capslock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1177 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1178 if (numlock_mask && capslock_mask && scrolllock_mask) |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1179 XUngrabButton (xdisplay, hotkey.key, modifier | numlock_mask | capslock_mask | scrolllock_mask, x_root_window); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1180 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1181 } |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1182 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1183 static void ungrab_keys () |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1184 { |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1185 XErrorHandler old_handler = 0; |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1186 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1187 if (!grabbed) return; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1188 if (!xdisplay) return; |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1189 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1190 XSync(xdisplay, False); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1191 old_handler = XSetErrorHandler (x11_error_handler); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1192 |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1193 ungrab_key(plugin_cfg.mute); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1194 ungrab_key(plugin_cfg.vol_up); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1195 ungrab_key(plugin_cfg.vol_down); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1196 ungrab_key(plugin_cfg.play); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1197 ungrab_key(plugin_cfg.pause); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1198 ungrab_key(plugin_cfg.stop); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1199 ungrab_key(plugin_cfg.prev_track); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1200 ungrab_key(plugin_cfg.next_track); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1201 ungrab_key(plugin_cfg.jump_to_file); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1202 ungrab_key(plugin_cfg.forward); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1203 ungrab_key(plugin_cfg.backward); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1204 ungrab_key(plugin_cfg.toggle_win); |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1205 |
|
2274
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1206 XSync(xdisplay, False); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1207 XSetErrorHandler (old_handler); |
|
d9706e29e968
Hotkey: Added grabbing of mouse buttons with modificators so you can control it with the mouse from any application
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
2273
diff
changeset
|
1208 |
|
1543
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1209 grabbed = 0; |
|
ec4e8ec829b1
Include global hotkey plugin in build system (src/hotkey)
Sascha Hlusiak <contact@saschahlusiak.de>
parents:
diff
changeset
|
1210 } |
