Fri, 04 May 2007 15:53:24 +0000
Fix some ickyness in the tab-completion. Now, if there's only one suggest word, then the first tab will just complete the suggestion. If there's only one suggest word, and it's already completed, then tab will take focus to the next widget. If there is a dropdown, then you can select a suggest word by pressing tabs to move to it, then either space or enter to accept it.
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
1 | #ifndef GNT_KEYS_H |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
2 | #define GNT_KEYS_H |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
3 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
4 | #include <curses.h> |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
5 | #include <term.h> |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
6 | |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
7 | /** |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
8 | * terminfo/termcap doesn't provide all the information that I want to use, eg. |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
9 | * ctrl-up, ctrl-down etc. So I am going to hard-code some of the information |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
10 | * for some popular $TERMs |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
11 | */ |
|
15095
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
12 | extern char *gnt_key_cup; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
13 | extern char *gnt_key_cdown; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
14 | extern char *gnt_key_cleft; |
|
f7c98ecaa92b
[gaim-migrate @ 17816]
Christopher O'Brien <siege@pidgin.im>
parents:
15038
diff
changeset
|
15 | extern char *gnt_key_cright; |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
16 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
17 | #define SAFE(x) ((x) ? (x) : "") |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
18 | |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
19 | #define GNT_KEY_POPUP SAFE(key_f16) /* Apparently */ |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
20 | |
|
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
21 | /* Arrow keys */ |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
22 | #define GNT_KEY_LEFT SAFE(key_left) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
23 | #define GNT_KEY_RIGHT SAFE(key_right) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
24 | #define GNT_KEY_UP SAFE(key_up) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
25 | #define GNT_KEY_DOWN SAFE(key_down) |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
26 | |
|
15038
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
27 | #define GNT_KEY_CTRL_UP SAFE(gnt_key_cup) |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
28 | #define GNT_KEY_CTRL_DOWN SAFE(gnt_key_cdown) |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
29 | #define GNT_KEY_CTRL_RIGHT SAFE(gnt_key_cright) |
|
e57ca0ff0489
[gaim-migrate @ 17755]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14939
diff
changeset
|
30 | #define GNT_KEY_CTRL_LEFT SAFE(gnt_key_cleft) |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
31 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
32 | #define GNT_KEY_PGUP SAFE(key_ppage) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
33 | #define GNT_KEY_PGDOWN SAFE(key_npage) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
34 | #define GNT_KEY_HOME SAFE(key_home) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
35 | #define GNT_KEY_END SAFE(key_end) |
|
13958
bd1c3bb3f33d
[gaim-migrate @ 16381]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13917
diff
changeset
|
36 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
37 | #define GNT_KEY_ENTER carriage_return |
|
13917
7c435cf1ee60
[gaim-migrate @ 16314]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13852
diff
changeset
|
38 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
39 | #define GNT_KEY_BACKSPACE SAFE(key_backspace) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
40 | #define GNT_KEY_DEL SAFE(key_dc) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
41 | #define GNT_KEY_INS SAFE(key_ic) |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
42 | |
|
14275
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
43 | #define GNT_KEY_CTRL_A "\001" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
44 | #define GNT_KEY_CTRL_B "\002" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
45 | #define GNT_KEY_CTRL_D "\004" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
46 | #define GNT_KEY_CTRL_E "\005" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
47 | #define GNT_KEY_CTRL_F "\006" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
48 | #define GNT_KEY_CTRL_G "\007" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
49 | #define GNT_KEY_CTRL_H "\010" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
50 | #define GNT_KEY_CTRL_I "\011" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
51 | #define GNT_KEY_CTRL_J "\012" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
52 | #define GNT_KEY_CTRL_K "\013" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
53 | #define GNT_KEY_CTRL_L "\014" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
54 | #define GNT_KEY_CTRL_M "\012" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
55 | #define GNT_KEY_CTRL_N "\016" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
56 | #define GNT_KEY_CTRL_O "\017" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
57 | #define GNT_KEY_CTRL_P "\020" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
58 | #define GNT_KEY_CTRL_R "\022" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
59 | #define GNT_KEY_CTRL_T "\024" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
60 | #define GNT_KEY_CTRL_U "\025" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
61 | #define GNT_KEY_CTRL_V "\026" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
62 | #define GNT_KEY_CTRL_W "\027" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
63 | #define GNT_KEY_CTRL_X "\030" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
64 | #define GNT_KEY_CTRL_Y "\031" |
|
ef418684623d
[gaim-migrate @ 16894]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14153
diff
changeset
|
65 | |
|
14938
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
66 | #define GNT_KEY_F1 SAFE(key_f1) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
67 | #define GNT_KEY_F2 SAFE(key_f2) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
68 | #define GNT_KEY_F3 SAFE(key_f3) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
69 | #define GNT_KEY_F4 SAFE(key_f4) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
70 | #define GNT_KEY_F5 SAFE(key_f5) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
71 | #define GNT_KEY_F6 SAFE(key_f6) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
72 | #define GNT_KEY_F7 SAFE(key_f7) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
73 | #define GNT_KEY_F8 SAFE(key_f8) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
74 | #define GNT_KEY_F9 SAFE(key_f9) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
75 | #define GNT_KEY_F10 SAFE(key_f10) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
76 | #define GNT_KEY_F11 SAFE(key_f11) |
|
ee27e45919ef
[gaim-migrate @ 17645]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14855
diff
changeset
|
77 | #define GNT_KEY_F12 SAFE(key_f12) |
|
14855
84c869823944
[gaim-migrate @ 17558]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14278
diff
changeset
|
78 | |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
79 | /** |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
80 | * This will do stuff with the terminal settings and stuff. |
|
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
81 | */ |
|
15874
46df7421a1b5
Enable DEBUG_CFLAGS in libgnt and fix up a number of compile warnings and
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15862
diff
changeset
|
82 | void gnt_init_keys(void); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
83 | void gnt_keys_refine(char *text); |
|
15862
895c0f69faa0
Make sure unbound key-combinations are handled properly.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15839
diff
changeset
|
84 | const char *gnt_key_translate(const char *name); |
|
16047
03880dc14852
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 <sadrul@pidgin.im>
parents:
15906
diff
changeset
|
85 | const char *gnt_key_lookup(const char *key); |
|
14153
9da98052a4e1
[gaim-migrate @ 16715]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13958
diff
changeset
|
86 | |
|
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:
15095
diff
changeset
|
87 | void gnt_keys_add_combination(const char *path); |
|
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:
15095
diff
changeset
|
88 | void gnt_keys_del_combination(const char *path); |
|
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:
15095
diff
changeset
|
89 | int gnt_keys_find_combination(const char *path); |
|
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:
15095
diff
changeset
|
90 | |
|
14939
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
91 | |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
92 | /* A lot of commonly used variable names are defined in <term.h>. |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
93 | * #undef them to make life easier for everyone. */ |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
94 | |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
95 | #undef columns |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
96 | #undef lines |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
97 | #undef buttons |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
98 | #undef newline |
|
7ec81b1b7bba
[gaim-migrate @ 17646]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14938
diff
changeset
|
99 | |
|
13852
1d3ae9f34d42
[gaim-migrate @ 16308]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
diff
changeset
|
100 | #endif |