Mercurial > pidgin
annotate finch/libgnt/gntkeys.h @ 31788:f70353405940
Fix truncation of a string in the Yahoo! prpl to be not quite so stupid.
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Thu, 11 Aug 2011 16:30:51 +0000 |
parents | 44f53d3fc54f |
children |
rev | line source |
---|---|
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
1 /** |
18303
5c6f019e48f8
Generate doxy-help files for libgnt. And make it actually work.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18049
diff
changeset
|
2 * @file gntkeys.h Keys API |
5c6f019e48f8
Generate doxy-help files for libgnt. And make it actually work.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18049
diff
changeset
|
3 * @ingroup gnt |
5c6f019e48f8
Generate doxy-help files for libgnt. And make it actually work.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18049
diff
changeset
|
4 */ |
5c6f019e48f8
Generate doxy-help files for libgnt. And make it actually work.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18049
diff
changeset
|
5 /* |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
6 * GNT - The GLib Ncurses Toolkit |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
7 * |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
8 * GNT is the legal property of its developers, whose names are too numerous |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
9 * to list here. Please refer to the COPYRIGHT file distributed with this |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
10 * source distribution. |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
11 * |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
12 * This library is free software; you can redistribute it and/or modify |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
13 * it under the terms of the GNU General Public License as published by |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
14 * the Free Software Foundation; either version 2 of the License, or |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
15 * (at your option) any later version. |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
16 * |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
17 * This program is distributed in the hope that it will be useful, |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
20 * GNU General Public License for more details. |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
21 * |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
22 * You should have received a copy of the GNU General Public License |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
23 * along with this program; if not, write to the Free Software |
19681
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18303
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
25 */ |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
26 |
15817 | 27 #ifndef GNT_KEYS_H |
28 #define GNT_KEYS_H | |
29 | |
30 #include <curses.h> | |
31 #include <term.h> | |
32 | |
33 /** | |
34 * terminfo/termcap doesn't provide all the information that I want to use, eg. | |
35 * ctrl-up, ctrl-down etc. So I am going to hard-code some of the information | |
36 * for some popular $TERMs | |
37 */ | |
38 extern char *gnt_key_cup; | |
39 extern char *gnt_key_cdown; | |
40 extern char *gnt_key_cleft; | |
41 extern char *gnt_key_cright; | |
42 | |
43 #define SAFE(x) ((x) ? (x) : "") | |
44 | |
45 #define GNT_KEY_POPUP SAFE(key_f16) /* Apparently */ | |
46 | |
47 /* Arrow keys */ | |
48 #define GNT_KEY_LEFT SAFE(key_left) | |
49 #define GNT_KEY_RIGHT SAFE(key_right) | |
50 #define GNT_KEY_UP SAFE(key_up) | |
51 #define GNT_KEY_DOWN SAFE(key_down) | |
52 | |
53 #define GNT_KEY_CTRL_UP SAFE(gnt_key_cup) | |
54 #define GNT_KEY_CTRL_DOWN SAFE(gnt_key_cdown) | |
55 #define GNT_KEY_CTRL_RIGHT SAFE(gnt_key_cright) | |
56 #define GNT_KEY_CTRL_LEFT SAFE(gnt_key_cleft) | |
57 | |
58 #define GNT_KEY_PGUP SAFE(key_ppage) | |
59 #define GNT_KEY_PGDOWN SAFE(key_npage) | |
60 #define GNT_KEY_HOME SAFE(key_home) | |
61 #define GNT_KEY_END SAFE(key_end) | |
62 | |
63 #define GNT_KEY_ENTER carriage_return | |
64 | |
65 #define GNT_KEY_BACKSPACE SAFE(key_backspace) | |
66 #define GNT_KEY_DEL SAFE(key_dc) | |
67 #define GNT_KEY_INS SAFE(key_ic) | |
28775
be02d04d2fee
There can be two backtab keys.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23783
diff
changeset
|
68 #define GNT_KEY_BACK_TAB (back_tab ? back_tab : SAFE(key_btab)) |
15817 | 69 |
70 #define GNT_KEY_CTRL_A "\001" | |
71 #define GNT_KEY_CTRL_B "\002" | |
72 #define GNT_KEY_CTRL_D "\004" | |
73 #define GNT_KEY_CTRL_E "\005" | |
74 #define GNT_KEY_CTRL_F "\006" | |
75 #define GNT_KEY_CTRL_G "\007" | |
76 #define GNT_KEY_CTRL_H "\010" | |
77 #define GNT_KEY_CTRL_I "\011" | |
78 #define GNT_KEY_CTRL_J "\012" | |
79 #define GNT_KEY_CTRL_K "\013" | |
80 #define GNT_KEY_CTRL_L "\014" | |
81 #define GNT_KEY_CTRL_M "\012" | |
82 #define GNT_KEY_CTRL_N "\016" | |
83 #define GNT_KEY_CTRL_O "\017" | |
84 #define GNT_KEY_CTRL_P "\020" | |
85 #define GNT_KEY_CTRL_R "\022" | |
86 #define GNT_KEY_CTRL_T "\024" | |
87 #define GNT_KEY_CTRL_U "\025" | |
88 #define GNT_KEY_CTRL_V "\026" | |
89 #define GNT_KEY_CTRL_W "\027" | |
90 #define GNT_KEY_CTRL_X "\030" | |
91 #define GNT_KEY_CTRL_Y "\031" | |
92 | |
93 #define GNT_KEY_F1 SAFE(key_f1) | |
94 #define GNT_KEY_F2 SAFE(key_f2) | |
95 #define GNT_KEY_F3 SAFE(key_f3) | |
96 #define GNT_KEY_F4 SAFE(key_f4) | |
97 #define GNT_KEY_F5 SAFE(key_f5) | |
98 #define GNT_KEY_F6 SAFE(key_f6) | |
99 #define GNT_KEY_F7 SAFE(key_f7) | |
100 #define GNT_KEY_F8 SAFE(key_f8) | |
101 #define GNT_KEY_F9 SAFE(key_f9) | |
102 #define GNT_KEY_F10 SAFE(key_f10) | |
103 #define GNT_KEY_F11 SAFE(key_f11) | |
104 #define GNT_KEY_F12 SAFE(key_f12) | |
105 | |
106 /** | |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
107 * Initialize the keys. |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
108 */ |
15817 | 109 void gnt_init_keys(void); |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
110 |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
111 /** |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
112 * Refine input text. This usually looks at what the terminal claims it is, |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
113 * and tries to change the text to work around some oft-broken terminfo entries. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
114 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
115 * @param text The input text to refine. |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
116 */ |
15817 | 117 void gnt_keys_refine(char *text); |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
118 |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
119 /** |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
120 * Translate a user-readable representation of an input to a machine-readable representation. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
121 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
122 * @param name The user-readable representation of an input (eg.: c-t) |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
123 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
124 * @return A machine-readable representation of the input. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
125 */ |
15817 | 126 const char *gnt_key_translate(const char *name); |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
127 |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
128 /** |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
129 * Translate a machine-readable representation of an input to a user-readable representation. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
130 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
131 * @param key The machine-readable representation of an input. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
132 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
133 * @return A user-readable representation of the input (eg.: c-t). |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
134 */ |
15979
2c81ebc7bf0b
Add a way to get a list of bindings for a widget. This can be used by, eg, a window-manager to show helpful messages to the user.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
15817
diff
changeset
|
135 const char *gnt_key_lookup(const char *key); |
15817 | 136 |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
137 /** |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
138 * Add a key combination to the internal key-tree. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
139 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
140 * @param key The key to add |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
141 */ |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
142 void gnt_keys_add_combination(const char *key); |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
143 |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
144 /** |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
145 * Remove a key combination from the internal key-tree. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
146 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
147 * @param key The key to remove. |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
148 */ |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
149 void gnt_keys_del_combination(const char *key); |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
150 |
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
151 /** |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
152 * Find a combination from the given string. |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
153 * |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
154 * @param key The input string. |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
155 * |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
156 * @return The number of bytes in the combination that starts at the beginning |
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
157 * of key (can be 0). |
18049
1cedd520cd18
Doxygen skeleton and license info for gnt files.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18000
diff
changeset
|
158 */ |
21253
ae330012956f
Doxygen for gnt.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
19681
diff
changeset
|
159 int gnt_keys_find_combination(const char *key); |
15817 | 160 |
31085
44f53d3fc54f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
28775
diff
changeset
|
161 /* A lot of commonly used variable names are defined in <term.h>. |
15817 | 162 * #undef them to make life easier for everyone. */ |
163 | |
164 #undef columns | |
165 #undef lines | |
166 #undef buttons | |
167 #undef newline | |
23783
c96b34b58b85
Fix a compile error due to set_clock being defined in term.h conflicting with gstreamer.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
21253
diff
changeset
|
168 #undef set_clock |
15817 | 169 |
170 #endif |