finch/libgnt/gntkeys.h

Fri, 04 May 2007 15:53:24 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Fri, 04 May 2007 15:53:24 +0000
changeset 16945
ac3a37a76525
parent 16047
03880dc14852
child 17586
5beb8d987e84
child 17875
ad1536695bff
child 18068
b6554e3c8224
permissions
-rw-r--r--

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

mercurial