Mercurial > audlegacy-plugins
annotate src/hotkey/plugin.c @ 2284:d19b53359b24
cleaned up the sndfile wav plugin, currently limiting it ONLY TO WAV
PLAYBACK. if somebody is more experienced with it and wants to restore
the other formats, go ahead (maybe change the name of the plugin too?).
author | mf0102 <0102@gmx.at> |
---|---|
date | Wed, 09 Jan 2008 15:41:22 +0100 |
parents | 6ca0d83ce51d |
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 } |