Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
17586
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
1 | /** |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
2 | * GNT - The GLib Ncurses Toolkit |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
3 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
4 | * GNT is the legal property of its developers, whose names are too numerous |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
6 | * source distribution. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
7 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
8 | * This library is free software; you can redistribute it and/or modify |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
11 | * (at your option) any later version. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
12 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
16 | * GNU General Public License for more details. |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
17 | * |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19317
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
17586
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
21 | */ |
|
5beb8d987e84
applied changes from 016401bd409e6229fae0ab1e80d9fef9365511b3
Eric Polino <aluink@pidgin.im>
parents:
15886
diff
changeset
|
22 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
23 | #include <string.h> |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
24 | |
|
24822
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23064
diff
changeset
|
25 | #include "gntinternal.h" |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23064
diff
changeset
|
26 | #undef GNT_LOG_DOMAIN |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23064
diff
changeset
|
27 | #define GNT_LOG_DOMAIN "Bindable" |
|
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23064
diff
changeset
|
28 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
29 | #include "gntbindable.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
30 | #include "gntstyle.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
31 | #include "gnt.h" |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
32 | #include "gntutils.h" |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
33 | #include "gnttextview.h" |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
34 | #include "gnttree.h" |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
35 | #include "gntbox.h" |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
36 | #include "gntbutton.h" |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
37 | #include "gntwindow.h" |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
38 | #include "gntlabel.h" |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
39 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
40 | static GObjectClass *parent_class = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
41 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
42 | static struct |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
43 | { |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
44 | char * okeys; /* Old keystrokes */ |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
45 | char * keys; /* New Keystrokes being bound to the action */ |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
46 | GntBindableClass * klass; /* Class of the object that's getting keys rebound */ |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
47 | char * name; /* The name of the action */ |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
48 | GList * params; /* The list of paramaters */ |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
49 | } rebind_info; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
50 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
51 | static void |
|
22104
56970903b8e9
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
52 | gnt_bindable_free_rebind_info(void) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
53 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
54 | g_free(rebind_info.name); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
55 | g_free(rebind_info.keys); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
56 | g_free(rebind_info.okeys); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
57 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
58 | |
|
18438
972b13b06ba0
Cleaned up a few poorly written "activate" callbacks.
Eric Polino <aluink@pidgin.im>
parents:
17592
diff
changeset
|
59 | static void |
|
972b13b06ba0
Cleaned up a few poorly written "activate" callbacks.
Eric Polino <aluink@pidgin.im>
parents:
17592
diff
changeset
|
60 | gnt_bindable_rebinding_cancel(GntWidget *button, gpointer data) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
61 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
62 | gnt_bindable_free_rebind_info(); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
63 | gnt_widget_destroy(GNT_WIDGET(data)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
64 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
65 | |
|
18438
972b13b06ba0
Cleaned up a few poorly written "activate" callbacks.
Eric Polino <aluink@pidgin.im>
parents:
17592
diff
changeset
|
66 | static void |
|
972b13b06ba0
Cleaned up a few poorly written "activate" callbacks.
Eric Polino <aluink@pidgin.im>
parents:
17592
diff
changeset
|
67 | gnt_bindable_rebinding_rebind(GntWidget *button, gpointer data) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
68 | { |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
69 | if (rebind_info.keys) { |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
70 | gnt_bindable_register_binding(rebind_info.klass, |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
71 | NULL, |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
72 | rebind_info.okeys, |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
73 | rebind_info.params); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
74 | gnt_bindable_register_binding(rebind_info.klass, |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
75 | rebind_info.name, |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
76 | rebind_info.keys, |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
77 | rebind_info.params); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
78 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
79 | gnt_bindable_free_rebind_info(); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
80 | gnt_widget_destroy(GNT_WIDGET(data)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
81 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
82 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
83 | static gboolean |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
84 | gnt_bindable_rebinding_grab_key(GntBindable *bindable, const char *text, gpointer data) |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
85 | { |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
86 | GntTextView *textview = GNT_TEXT_VIEW(data); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
87 | char *new_text; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
88 | const char *tmp; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
89 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
90 | if (text && *text) { |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
91 | /* Rebinding tab or enter for something is probably not that great an idea */ |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
92 | if (!strcmp(text, GNT_KEY_CTRL_I) || !strcmp(text, GNT_KEY_ENTER)) { |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
93 | return FALSE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
94 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
95 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
96 | tmp = gnt_key_lookup(text); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
97 | new_text = g_strdup_printf("KEY: \"%s\"", tmp); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
98 | gnt_text_view_clear(textview); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
99 | gnt_text_view_append_text_with_flags(textview, new_text, GNT_TEXT_FLAG_NORMAL); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
100 | g_free(new_text); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
101 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
102 | g_free(rebind_info.keys); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
103 | rebind_info.keys = g_strdup(text); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
104 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
105 | return TRUE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
106 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
107 | return FALSE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
108 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
109 | static void |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
110 | gnt_bindable_rebinding_activate(GntBindable *data, gpointer bindable) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
111 | { |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
112 | const char *widget_name = g_type_name(G_OBJECT_TYPE(bindable)); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
113 | char *keys; |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
114 | GntWidget *key_textview; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
115 | GntWidget *label; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
116 | GntWidget *bind_button, *cancel_button; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
117 | GntWidget *button_box; |
|
19315
0bc6119bbf7b
Fix a memory leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
19314
diff
changeset
|
118 | GList *current_row_data; |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
119 | char *tmp; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
120 | GntWidget *win = gnt_window_new(); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
121 | GntTree *tree = GNT_TREE(data); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
122 | GntWidget *vbox = gnt_box_new(FALSE, TRUE); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
123 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
124 | rebind_info.klass = GNT_BINDABLE_GET_CLASS(bindable); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
125 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
126 | current_row_data = gnt_tree_get_selection_text_list(tree); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
127 | rebind_info.name = g_strdup(g_list_nth_data(current_row_data, 1)); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
128 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
129 | keys = gnt_tree_get_selection_data(tree); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
130 | rebind_info.okeys = g_strdup(gnt_key_translate(keys)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
131 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
132 | rebind_info.params = NULL; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
133 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
134 | g_list_foreach(current_row_data, (GFunc)g_free, NULL); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
135 | g_list_free(current_row_data); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
136 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
137 | gnt_box_set_alignment(GNT_BOX(vbox), GNT_ALIGN_MID); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
138 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
139 | gnt_box_set_title(GNT_BOX(win), "Key Capture"); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
140 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
141 | tmp = g_strdup_printf("Type the new bindings for %s in a %s.", rebind_info.name, widget_name); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
142 | label = gnt_label_new(tmp); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
143 | g_free(tmp); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
144 | gnt_box_add_widget(GNT_BOX(vbox), label); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
145 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
146 | tmp = g_strdup_printf("KEY: \"%s\"", keys); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
147 | key_textview = gnt_text_view_new(); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
148 | gnt_widget_set_size(key_textview, key_textview->priv.x, 2); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
149 | gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(key_textview), tmp, GNT_TEXT_FLAG_NORMAL); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
150 | g_free(tmp); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
151 | gnt_widget_set_name(key_textview, "keystroke"); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
152 | gnt_box_add_widget(GNT_BOX(vbox), key_textview); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
153 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
154 | g_signal_connect(G_OBJECT(win), "key_pressed", G_CALLBACK(gnt_bindable_rebinding_grab_key), key_textview); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
155 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
156 | button_box = gnt_box_new(FALSE, FALSE); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
157 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
158 | bind_button = gnt_button_new("BIND"); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
159 | gnt_widget_set_name(bind_button, "bind"); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
160 | gnt_box_add_widget(GNT_BOX(button_box), bind_button); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
161 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
162 | cancel_button = gnt_button_new("Cancel"); |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
163 | gnt_widget_set_name(cancel_button, "cancel"); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
164 | gnt_box_add_widget(GNT_BOX(button_box), cancel_button); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
165 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
166 | g_signal_connect(G_OBJECT(bind_button), "activate", G_CALLBACK(gnt_bindable_rebinding_rebind), win); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
167 | g_signal_connect(G_OBJECT(cancel_button), "activate", G_CALLBACK(gnt_bindable_rebinding_cancel), win); |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
168 | |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
169 | gnt_box_add_widget(GNT_BOX(vbox), button_box); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
170 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
171 | gnt_box_add_widget(GNT_BOX(win), vbox); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
172 | gnt_widget_show(win); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
173 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
174 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
175 | typedef struct |
|
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
176 | { |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
177 | GHashTable *hash; |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
178 | GntTree *tree; |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
179 | } BindingView; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
180 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
181 | static void |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
182 | add_binding(gpointer key, gpointer value, gpointer data) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
183 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
184 | BindingView *bv = data; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
185 | GntBindableActionParam *act = value; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
186 | const char *name = g_hash_table_lookup(bv->hash, act->action); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
187 | if (name && *name) { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
188 | const char *k = gnt_key_lookup(key); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
189 | if (!k) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
190 | k = key; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
191 | gnt_tree_add_row_after(bv->tree, (gpointer)k, |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
192 | gnt_tree_create_row(bv->tree, k, name), NULL, NULL); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
193 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
194 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
195 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
196 | static void |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
197 | add_action(gpointer key, gpointer value, gpointer data) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
198 | { |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
199 | BindingView *bv = data; |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
200 | g_hash_table_insert(bv->hash, value, key); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
201 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
202 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
203 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
204 | gnt_bindable_class_init(GntBindableClass *klass) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
205 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
206 | parent_class = g_type_class_peek_parent(klass); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
207 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
208 | klass->actions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
209 | (GDestroyNotify)gnt_bindable_action_free); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
210 | klass->bindings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
211 | (GDestroyNotify)gnt_bindable_action_param_free); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
212 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
213 | gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
214 | GNTDEBUG; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
215 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
216 | |
|
15365
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
217 | static gpointer |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
218 | bindable_clone(GntBindableAction *action) |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
219 | { |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
220 | GntBindableAction *ret = g_new0(GntBindableAction, 1); |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
221 | ret->name = g_strdup(action->name); |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
222 | ret->u = action->u; |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
223 | return ret; |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
224 | } |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
225 | |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
226 | static gpointer |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
227 | binding_clone(GntBindableActionParam *param) |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
228 | { |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
229 | GntBindableActionParam *p = g_new0(GntBindableActionParam, 1); |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
230 | p->list = g_list_copy(param->list); |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
231 | p->action = param->action; |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
232 | return p; |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
233 | } |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
234 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
235 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
236 | duplicate_hashes(GntBindableClass *klass) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
237 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
238 | /* Duplicate the bindings from parent class */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
239 | if (klass->actions) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
240 | klass->actions = g_hash_table_duplicate(klass->actions, g_str_hash, |
|
15365
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
241 | g_str_equal, g_free, (GDestroyNotify)gnt_bindable_action_free, |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
242 | (GDupFunc)g_strdup, (GDupFunc)bindable_clone); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
243 | klass->bindings = g_hash_table_duplicate(klass->bindings, g_str_hash, |
|
15365
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
244 | g_str_equal, g_free, (GDestroyNotify)gnt_bindable_action_param_free, |
|
5a83efd6955d
[gaim-migrate @ 18094]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15272
diff
changeset
|
245 | (GDupFunc)g_strdup, (GDupFunc)binding_clone); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
246 | } else { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
247 | klass->actions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
248 | (GDestroyNotify)gnt_bindable_action_free); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
249 | klass->bindings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
250 | (GDestroyNotify)gnt_bindable_action_param_free); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
251 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
252 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
253 | GNTDEBUG; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
254 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
255 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
256 | /****************************************************************************** |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
257 | * GntBindable API |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
258 | *****************************************************************************/ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
259 | GType |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
260 | gnt_bindable_get_gtype(void) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
261 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
262 | static GType type = 0; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
263 | |
|
19314
472ad9489d68
Fix some white-space and other similar issues. Preparing for a merge.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
18438
diff
changeset
|
264 | if (type == 0) { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
265 | static const GTypeInfo info = { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
266 | sizeof(GntBindableClass), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
267 | (GBaseInitFunc)duplicate_hashes, /* base_init */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
268 | NULL, /* base_finalize */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
269 | (GClassInitFunc)gnt_bindable_class_init, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
270 | NULL, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
271 | NULL, /* class_data */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
272 | sizeof(GntBindable), |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
273 | 0, /* n_preallocs */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
274 | NULL, /* instance_init */ |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15839
diff
changeset
|
275 | NULL /* value_table */ |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
276 | }; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
277 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
278 | type = g_type_register_static(G_TYPE_OBJECT, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
279 | "GntBindable", |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
280 | &info, G_TYPE_FLAG_ABSTRACT); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
281 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
282 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
283 | return type; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
284 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
285 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
286 | /** |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
287 | * Key Remaps |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
288 | */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
289 | const char * |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
290 | gnt_bindable_remap_keys(GntBindable *bindable, const char *text) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
291 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
292 | const char *remap = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
293 | GType type = G_OBJECT_TYPE(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
294 | GntBindableClass *klass = GNT_BINDABLE_CLASS(GNT_BINDABLE_GET_CLASS(bindable)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
295 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
296 | if (klass->remaps == NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
297 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
298 | klass->remaps = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
299 | gnt_styles_get_keyremaps(type, klass->remaps); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
300 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
301 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
302 | remap = g_hash_table_lookup(klass->remaps, text); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
303 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
304 | return (remap ? remap : text); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
305 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
306 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
307 | /** |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
308 | * Actions and Bindings |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
309 | */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
310 | gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
311 | gnt_bindable_perform_action_named(GntBindable *bindable, const char *name, ...) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
312 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
313 | GntBindableClass *klass = GNT_BINDABLE_CLASS(GNT_BINDABLE_GET_CLASS(bindable)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
314 | GList *list = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
315 | va_list args; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
316 | GntBindableAction *action; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
317 | void *p; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
318 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
319 | va_start(args, name); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
320 | while ((p = va_arg(args, void *)) != NULL) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
321 | list = g_list_append(list, p); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
322 | va_end(args); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
323 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
324 | action = g_hash_table_lookup(klass->actions, name); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
325 | if (action && action->u.action) { |
|
15272
c6e322c9c9b2
[gaim-migrate @ 18000]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15038
diff
changeset
|
326 | return action->u.action(bindable, list); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
327 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
328 | return FALSE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
329 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
330 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
331 | gboolean |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
332 | gnt_bindable_perform_action_key(GntBindable *bindable, const char *keys) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
333 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
334 | GntBindableClass *klass = GNT_BINDABLE_CLASS(GNT_BINDABLE_GET_CLASS(bindable)); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
335 | GntBindableActionParam *param = g_hash_table_lookup(klass->bindings, keys); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
336 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
337 | if (param && param->action) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
338 | if (param->list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
339 | return param->action->u.action(bindable, param->list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
340 | else |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
341 | return param->action->u.action_noparam(bindable); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
342 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
343 | return FALSE; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
344 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
345 | |
|
23064
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
346 | gboolean |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
347 | gnt_bindable_check_key(GntBindable *bindable, const char *keys) { |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
348 | GntBindableClass *klass = GNT_BINDABLE_CLASS(GNT_BINDABLE_GET_CLASS(bindable)); |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
349 | GntBindableActionParam *param = g_hash_table_lookup(klass->bindings, keys); |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
350 | return (param && param->action); |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
351 | } |
|
1a35c6029964
Check if a key is already bound before assigning a menu trigger
Richard Nelson <wabz@pidgin.im>
parents:
22104
diff
changeset
|
352 | |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
353 | static void |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
354 | register_binding(GntBindableClass *klass, const char *name, const char *trigger, GList *list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
355 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
356 | GntBindableActionParam *param; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
357 | GntBindableAction *action; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
358 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
359 | if (name == NULL || *name == '\0') { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
360 | g_hash_table_remove(klass->bindings, (char*)trigger); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15365
diff
changeset
|
361 | gnt_keys_del_combination(trigger); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
362 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
363 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
364 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
365 | action = g_hash_table_lookup(klass->actions, name); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
366 | if (!action) { |
|
24822
d7774462f2ba
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
23064
diff
changeset
|
367 | gnt_warning("Invalid action name %s for %s", |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
368 | name, g_type_name(G_OBJECT_CLASS_TYPE(klass))); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
369 | if (list) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
370 | g_list_free(list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
371 | return; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
372 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
373 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
374 | param = g_new0(GntBindableActionParam, 1); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
375 | param->action = action; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
376 | param->list = list; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
377 | g_hash_table_replace(klass->bindings, g_strdup(trigger), param); |
|
15839
e2b7b5f4f9aa
Change a bit how the keystrokes are processed. When a lot of keystrokes come in at the same time, the shortest key-combination is processed first. This should make typing fast over a very slow connection work properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15365
diff
changeset
|
378 | gnt_keys_add_combination(trigger); |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
379 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
380 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
381 | void gnt_bindable_register_binding(GntBindableClass *klass, const char *name, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
382 | const char *trigger, ...) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
383 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
384 | GList *list = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
385 | va_list args; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
386 | void *data; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
387 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
388 | va_start(args, trigger); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
389 | while ((data = va_arg(args, void *))) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
390 | list = g_list_append(list, data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
391 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
392 | va_end(args); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
393 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
394 | register_binding(klass, name, trigger, list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
395 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
396 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
397 | void gnt_bindable_class_register_action(GntBindableClass *klass, const char *name, |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
398 | GntBindableActionCallback callback, const char *trigger, ...) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
399 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
400 | void *data; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
401 | va_list args; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
402 | GntBindableAction *action = g_new0(GntBindableAction, 1); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
403 | GList *list; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
404 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
405 | action->name = g_strdup(name); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
406 | action->u.action = callback; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
407 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
408 | g_hash_table_replace(klass->actions, g_strdup(name), action); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
409 | |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14962
diff
changeset
|
410 | if (trigger && *trigger) { |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
411 | list = NULL; |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
412 | va_start(args, trigger); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
413 | while ((data = va_arg(args, void *))) { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
414 | list = g_list_append(list, data); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
415 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
416 | va_end(args); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
417 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
418 | register_binding(klass, name, trigger, list); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
419 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
420 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
421 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
422 | void gnt_bindable_action_free(GntBindableAction *action) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
423 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
424 | g_free(action->name); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
425 | g_free(action); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
426 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
427 | |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
428 | void gnt_bindable_action_param_free(GntBindableActionParam *param) |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
429 | { |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
430 | g_list_free(param->list); /* XXX: There may be a leak here for string parameters */ |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
431 | g_free(param); |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
432 | } |
|
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
433 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
434 | GntBindable * gnt_bindable_bindings_view(GntBindable *bind) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
435 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
436 | GntBindable *tree = GNT_BINDABLE(gnt_tree_new_with_columns(2)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
437 | GntBindableClass *klass = GNT_BINDABLE_CLASS(GNT_BINDABLE_GET_CLASS(bind)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
438 | GHashTable *hash = g_hash_table_new(g_direct_hash, g_direct_equal); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
439 | BindingView bv = {hash, GNT_TREE(tree)}; |
|
14962
abfaa2e03ac7
[gaim-migrate @ 17672]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
440 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
441 | gnt_tree_set_compare_func(bv.tree, (GCompareFunc)g_utf8_collate); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
442 | g_hash_table_foreach(klass->actions, add_action, &bv); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
443 | g_hash_table_foreach(klass->bindings, add_binding, &bv); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
444 | if (GNT_TREE(tree)->list == NULL) { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
445 | gnt_widget_destroy(GNT_WIDGET(tree)); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
446 | tree = NULL; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
447 | } else |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
448 | gnt_tree_adjust_columns(bv.tree); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
449 | g_hash_table_destroy(hash); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
450 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
451 | return tree; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
452 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
453 | |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
454 | static void |
|
17592
066b1786516f
FIX: The help_window pointer wasn't being set to null properly in the destroy callback.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
455 | reset_binding_window(GntBindableClass *window, gpointer k) |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
456 | { |
|
17592
066b1786516f
FIX: The help_window pointer wasn't being set to null properly in the destroy callback.
Eric Polino <aluink@pidgin.im>
parents:
17590
diff
changeset
|
457 | GntBindableClass *klass = GNT_BINDABLE_CLASS(k); |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
458 | klass->help_window = NULL; |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
459 | } |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
460 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
461 | gboolean |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
462 | gnt_bindable_build_help_window(GntBindable *bindable) |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
463 | { |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
464 | GntWidget *tree; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
465 | GntBindableClass *klass = GNT_BINDABLE_GET_CLASS(bindable); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
466 | char *title; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
467 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
468 | tree = GNT_WIDGET(gnt_bindable_bindings_view(bindable)); |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
469 | |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
470 | klass->help_window = GNT_BINDABLE(gnt_window_new()); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
471 | title = g_strdup_printf("Bindings for %s", g_type_name(G_OBJECT_TYPE(bindable))); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
472 | gnt_box_set_title(GNT_BOX(klass->help_window), title); |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
473 | if (tree) { |
|
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
474 | g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(gnt_bindable_rebinding_activate), bindable); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
475 | gnt_box_add_widget(GNT_BOX(klass->help_window), tree); |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
476 | } else |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
477 | gnt_box_add_widget(GNT_BOX(klass->help_window), gnt_label_new("This widget has no customizable bindings.")); |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
478 | |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
479 | g_signal_connect(G_OBJECT(klass->help_window), "destroy", G_CALLBACK(reset_binding_window), klass); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
480 | gnt_widget_show(GNT_WIDGET(klass->help_window)); |
|
17590
b6e8c396671a
Mostly whitespace changes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
17589
diff
changeset
|
481 | g_free(title); |
|
17589
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
482 | |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
483 | return TRUE; |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
484 | } |
|
193d380e5261
Moved rebinding functionality into GntBindable.
Eric Polino <aluink@pidgin.im>
parents:
17586
diff
changeset
|
485 |