source: trunk/VSlickMacros/kkeys.e@ 116

Last change on this file since 116 was 116, checked in by bird, 21 years ago

..

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
RevLine 
[114]1defeventtab default_keys
2def 'A-UP' = find_prev
3def 'A-DOWN' = find_next
4def 'A-PGUP' = prev_window
5def 'A-PGDN' = next_window
[116]6def 'A-d' = delete_line
[114]7def 'A-o' = kkeys_duplicate_line
8def 'A-s' = kkeys_switch_lines
9def 'A-u' = undo_cursor /* will cursor movement in one undo step. */
10def 'INS' = boxer_paste
11def 'S-INS' = insert_toggle
12def 'C-UP' = kkeys_scroll_down
13def 'C-DOWN' = kkeys_scroll_up
14def 'C-PGUP' = prev_proc
15def 'C-PGDN' = next_proc
16
17
18
19void kkeys_switch_lines()
20{
21 /* Allocate a selection for copying the current line. */
22 cursor_down();
23 mark_id= _alloc_selection();
24 if (mark_id>=0)
25 {
26 _select_line(mark_id);
27 cursor_up();
28 cursor_up();
29 _move_to_cursor(mark_id);
30 cursor_down();
31 _free_selection(mark_id);
32 // This selection can be freed because it is not the active selection.
33 }
34 else
35 message(get_message(mark_id));
36}
37
38void kkeys_duplicate_line()
39{
40 /* Allocate a selection for copying the current line. */
41 mark_id= _alloc_selection();
42 if (mark_id>=0)
43 {
44 _select_line(mark_id);
45 _copy_to_cursor(mark_id);
46 // This selection can be freed because it is not the active selection.
47 _free_selection(mark_id);
48 cursor_down();
49 }
50 else
51 message(get_message(mark_id));
52}
53
54void kkeys_delete_right()
55{
56 col=p_col
57 search('[ \t]#|?|$|^','r+');
58 if ( match_length()&& get_text(1,match_length('s'))=='' )
59 {
60 _nrseek(match_length('s'));
61 _delete_text(match_length());
62 }
63 else
64 delete_word();
65 p_col=col
66 //retrieve_command_results()
67
68}
69
70void kkeys_delete_left()
71{
72 //denne virker ikkje som den skal!!!
73 message "not implemented"
74 return;
75 col=p_col
76 search('[ \t]#|?|$|^','r-');
77 if ( match_length()&& get_text(1,match_length('s'))=='' )
78 {
79 _nrseek(match_length('s'));
80 _delete_text(match_length());
81 }
82 else
83 delete_word();
84 p_col=col
85}
86
87void kkeys_scroll_up()
88{
89 if (p_cursor_y == 0)
90 down();
91 set_scroll_pos(p_left_edge, p_cursor_y-1);
92}
93
94void kkeys_scroll_down()
95{
96 if (p_cursor_y intdiv p_font_height == p_char_height-1)
97 up()
98 set_scroll_pos(p_left_edge, p_cursor_y+p_font_height);
99}
100
101
102
103
104
105/* for later, not used yet. */
106
107
108int boxer_paste()
109{
110 int rc;
111 offset=_QROffset();
112 message(offset);
113 rc = paste();
114 _GoToROffset(offset);
115 return rc;
116}
117
118_command boxer_select()
119{
120 if (command_state())
121 fSelected = (p_sel_length != 0);
122 else
123 fSelected = select_active();
124
125 key = last_event();
126 if (key :== name2event('s-down'))
127 {
128 if (!fSelected)
129 select_line();
130 else
131 cursor_down();
132 }
133 else if (key :== name2event('s-up'))
134 {
135 if (!fSelected)
136 select_line();
137 else
138 cursor_up();
139 }
140 else if (key :== name2event('s-left'))
141 {
142 if (!fSelected)
143 select_char();
144 else
145 cursor_left();
146 }
147 else if (key :== name2event('s-right'))
148 {
149 if (!fSelected)
150 select_char();
151 else
152 cursor_right();
153 }
154 else if (key :== name2event('s-home'))
155 {
156 if (!fSelected) select_char();
157 begin_line_text_toggle();
158 }
159 else if (key :== name2event('s-end'))
160 {
161 if (!fSelected) select_char();
162 end_line();
163 if (p_col > 0) //this is not identical with boxer...
164 cursor_left();
165 }
166 else if (key :== name2event('c-s-home'))
167 {
168 if (!fSelected) select_char();
169 top_of_buffer();
170 }
171 else if (key :== name2event('c-s-end'))
172 {
173 if (!fSelected) select_char();
174 bottom_of_buffer();
175 }
176 else if (key :== name2event('c-s-left'))
177 {
178 if (!fSelected)
179 {
180 cursor_left();
181 select_char(); /* start this selection non-inclusive */
182 }
183 prev_word();
184 }
185 else if (key :== name2event('c-s-right'))
186 {
187 if (!fSelected)
188 {
189 select_char(); /* start this selection non-inclusive */
190 }
191 /* temporary hack */
192 prevpos = p_col;
193 prevline = p_line;
194 p_col++;
195 next_word();
196 if ((p_line == prevline && p_col > prevpos + 1) || (p_line != prevline && p_col > 0))
197 p_col--;
198 }
199}
200
201
202void nop()
203{
204
205}
206
Note: See TracBrowser for help on using the repository browser.