1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%
% Keymap selection dialog.
%
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/keymap.inited false def
/keymap.explicit false def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Build keymap list.
%
% ( ) ==> ( )
%
/keymap.init {
/xmenu.keymap .xm_size array def
/xmenu xmenu.keymap def
/keymap.inited true def
xmenu .xm_current 0 put
xmenu .xm_list [ keymaps { .km.display get } forall ] put
xmenu .xm_title /txt_keymap put
% setkeymap is called by init before panel.init, so config.keymap must be
% set by now
keymap.langchanged
pmenu.init
} def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Language changed; update keymap.
%
% ( ) ==> ( )
%
/keymap.langchanged {
keymap.inited {
/keymap.tmp.cnt 0 def
keymaps {
config.keymap eq {
xmenu.keymap .xm_current keymap.tmp.cnt put exit
} if
/keymap.tmp.cnt inc
} forall
} if
} def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Update keymap.
%
% ( ) ==> ( )
%
/keymap.update {
/xmenu xmenu.keymap def
/config.keymap keymaps xmenu .xm_current get get def
/keymap.explicit true def
window.action actRedraw eq { pmenu.update } if
} def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Show keymap menu.
%
% ( ) => ( )
%
/panel.keymap {
"keymap" help.setcontext
window.xmenu
dup .xmenu xmenu.keymap put
dup .xmenu.update /keymap.update put
dup window.init
window.show
} def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Return width of panel entry.
%
% ( ) => ( width )
%
/panel.keymap.width {
/xmenu xmenu.keymap def
pmenu.width
} def
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% Redraw panel entry.
%
% ( panel ) => ( )
%
/panel.keymap.update {
/xmenu xmenu.keymap def
pmenu.panel.update
} def
|