Rev 2125 | Rev 4990 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1476 | IgorA | 1 | fn_col_option dd def_col_file |
2 | fn_syntax_dir db 'info/',0 |
||
3 | def_col_file db 'default.syn',0 |
||
4 | |||
5 | system_dir0 db '/sys/lib/' |
||
6 | boxlib_name db 'box_lib.obj',0 |
||
7 | |||
8 | fn_icon_tl_sys db 'tl_sys_16.bmp',0 |
||
9 | fn_icon_tl_nod db 'tl_nod_16.bmp',0 |
||
10 | ;--------------------------------------------------------------------- |
||
11 | |||
12 | align 4 |
||
1489 | IgorA | 13 | boxlib_import: |
2125 | IgorA | 14 | dd alib_init2 ;функция запускается макросом 1 раз при подключении бибилиотеки, потому в программе метка на нее не нужна |
1489 | IgorA | 15 | |
1476 | IgorA | 16 | edit_box_draw dd aEdit_box_draw |
17 | edit_box_key dd aEdit_box_key |
||
18 | edit_box_mouse dd aEdit_box_mouse |
||
19 | version_ed dd aVersion_ed |
||
20 | |||
21 | scrollbar_ver_draw dd aScrollbar_ver_draw |
||
22 | scrollbar_ver_mouse dd aScrollbar_ver_mouse |
||
23 | scrollbar_hor_draw dd aScrollbar_hor_draw |
||
24 | scrollbar_hor_mouse dd aScrollbar_hor_mouse |
||
25 | version_scrollbar dd aVersion_scrollbar |
||
26 | |||
27 | tl_data_init dd sz_tl_data_init |
||
28 | tl_data_clear dd sz_tl_data_clear |
||
29 | tl_info_clear dd sz_tl_info_clear |
||
30 | tl_key dd sz_tl_key |
||
31 | tl_mouse dd sz_tl_mouse |
||
32 | tl_draw dd sz_tl_draw |
||
33 | tl_info_undo dd sz_tl_info_undo |
||
34 | tl_info_redo dd sz_tl_info_redo |
||
35 | tl_node_add dd sz_tl_node_add |
||
36 | tl_node_set_data dd sz_tl_node_set_data |
||
37 | tl_node_get_data dd sz_tl_node_get_data |
||
38 | tl_node_delete dd sz_tl_node_delete |
||
39 | tl_cur_beg dd sz_tl_cur_beg |
||
40 | tl_cur_next dd sz_tl_cur_next |
||
41 | tl_cur_perv dd sz_tl_cur_perv |
||
42 | tl_node_close_open dd sz_tl_node_close_open |
||
43 | tl_node_lev_inc dd sz_tl_node_lev_inc |
||
44 | tl_node_lev_dec dd sz_tl_node_lev_dec |
||
45 | tl_node_move_down dd sz_tl_node_move_down |
||
46 | tl_save_mem dd sz_tl_save_mem |
||
47 | tl_load_mem dd sz_tl_load_mem |
||
48 | |||
49 | ted_but_save_file dd sz_ted_but_save_file |
||
50 | ted_but_sumb_upper dd sz_ted_but_sumb_upper |
||
51 | ted_but_sumb_lover dd sz_ted_but_sumb_lover |
||
52 | ted_can_save dd sz_ted_can_save |
||
53 | ted_clear dd sz_ted_clear |
||
54 | ted_delete dd sz_ted_delete |
||
55 | ted_draw dd sz_ted_draw |
||
56 | ted_init dd sz_ted_init |
||
57 | ted_init_scroll_bars dd sz_ted_init_scroll_bars |
||
58 | ted_init_syntax_file dd sz_ted_init_syntax_file |
||
59 | ted_is_select dd sz_ted_is_select |
||
60 | ted_key dd sz_ted_key |
||
61 | ted_mouse dd sz_ted_mouse |
||
62 | ted_open_file dd sz_ted_open_file |
||
63 | ted_text_add dd sz_ted_text_add |
||
64 | ted_but_select_word dd sz_ted_but_select_word |
||
65 | ted_but_cut dd sz_ted_but_cut |
||
66 | ted_but_copy dd sz_ted_but_copy |
||
67 | ted_but_paste dd sz_ted_but_paste |
||
68 | ted_but_undo dd sz_ted_but_undo |
||
69 | ted_but_redo dd sz_ted_but_redo |
||
70 | ted_but_reverse dd sz_ted_but_reverse |
||
71 | ted_but_find_next dd sz_ted_but_find_next |
||
72 | ted_text_colored dd sz_ted_text_colored |
||
73 | ;version_text_edit dd sz_ted_version |
||
74 | |||
2125 | IgorA | 75 | PathShow_prepare dd sz_PathShow_prepare |
76 | PathShow_draw dd sz_PathShow_draw |
||
77 | ;Version_path_show dd szVersion_path_show |
||
78 | |||
1476 | IgorA | 79 | dd 0,0 |
1489 | IgorA | 80 | alib_init2 db 'lib_init',0 |
1476 | IgorA | 81 | |
82 | aEdit_box_draw db 'edit_box',0 |
||
83 | aEdit_box_key db 'edit_box_key',0 |
||
84 | aEdit_box_mouse db 'edit_box_mouse',0 |
||
85 | aVersion_ed db 'version_ed',0 |
||
86 | |||
87 | aScrollbar_ver_draw db 'scrollbar_v_draw',0 |
||
88 | aScrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
||
89 | aScrollbar_hor_draw db 'scrollbar_h_draw',0 |
||
90 | aScrollbar_hor_mouse db 'scrollbar_h_mouse',0 |
||
91 | aVersion_scrollbar db 'version_scrollbar',0 |
||
92 | |||
93 | sz_tl_data_init db 'tl_data_init',0 |
||
94 | sz_tl_data_clear db 'tl_data_clear',0 |
||
95 | sz_tl_info_clear db 'tl_info_clear',0 |
||
96 | sz_tl_key db 'tl_key',0 |
||
97 | sz_tl_mouse db 'tl_mouse',0 |
||
98 | sz_tl_draw db 'tl_draw',0 |
||
99 | sz_tl_info_undo db 'tl_info_undo',0 |
||
100 | sz_tl_info_redo db 'tl_info_redo',0 |
||
101 | sz_tl_node_add db 'tl_node_add',0 |
||
102 | sz_tl_node_set_data db 'tl_node_set_data',0 |
||
103 | sz_tl_node_get_data db 'tl_node_get_data',0 |
||
104 | sz_tl_node_delete db 'tl_node_delete',0 |
||
105 | sz_tl_cur_beg db 'tl_cur_beg',0 |
||
106 | sz_tl_cur_next db 'tl_cur_next',0 |
||
107 | sz_tl_cur_perv db 'tl_cur_perv',0 |
||
108 | sz_tl_node_close_open db 'tl_node_close_open',0 |
||
109 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
||
110 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
||
111 | sz_tl_node_move_down db 'tl_node_move_down',0 |
||
112 | sz_tl_save_mem db 'tl_save_mem',0 |
||
113 | sz_tl_load_mem db 'tl_load_mem',0 |
||
114 | |||
115 | sz_ted_but_save_file db 'ted_but_save_file',0 |
||
116 | sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0 |
||
117 | sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0 |
||
118 | sz_ted_can_save db 'ted_can_save',0 |
||
119 | sz_ted_clear db 'ted_clear',0 |
||
120 | sz_ted_delete db 'ted_delete',0 |
||
121 | sz_ted_draw db 'ted_draw',0 |
||
122 | sz_ted_init db 'ted_init',0 |
||
123 | sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0 |
||
124 | sz_ted_init_syntax_file db 'ted_init_syntax_file',0 |
||
125 | sz_ted_is_select db 'ted_is_select',0 |
||
126 | sz_ted_key db 'ted_key',0 |
||
127 | sz_ted_mouse db 'ted_mouse',0 |
||
128 | sz_ted_open_file db 'ted_open_file',0 |
||
129 | sz_ted_text_add db 'ted_text_add',0 |
||
130 | sz_ted_but_select_word db 'ted_but_select_word',0 |
||
131 | sz_ted_but_cut db 'ted_but_cut',0 |
||
132 | sz_ted_but_copy db 'ted_but_copy',0 |
||
133 | sz_ted_but_paste db 'ted_but_paste',0 |
||
134 | sz_ted_but_undo db 'ted_but_undo',0 |
||
135 | sz_ted_but_redo db 'ted_but_redo',0 |
||
136 | sz_ted_but_reverse db 'ted_but_reverse',0 |
||
137 | sz_ted_but_find_next db 'ted_but_find_next',0 |
||
138 | sz_ted_text_colored db 'ted_text_colored',0 |
||
139 | ;sz_ted_version db 'version_text_edit',0 |
||
2125 | IgorA | 140 | |
141 | sz_PathShow_prepare db 'PathShow_prepare',0 |
||
142 | sz_PathShow_draw db 'PathShow_draw',0 |
||
143 | ;szVersion_path_show db 'version_PathShow',0 |
||
1476 | IgorA | 144 | ;--------------------------------------------------------------------- |
145 | align 4 |
||
2125 | IgorA | 146 | ws_dir_lbox: ;дочерний скроллинг для элемента ListBox |
1476 | IgorA | 147 | .x: |
148 | .size_x dw 16 ;+0 |
||
149 | .start_x dw 0 ;+2 |
||
150 | .y: |
||
151 | .size_y dw 30 ;+4 |
||
152 | .start_y dw 70 ;+6 |
||
153 | .btn_high dd 15 ;+8 |
||
154 | .type dd 1 ;+12 |
||
155 | .max_area dd 100 ;+16 |
||
2125 | IgorA | 156 | rb 4+4 |
1476 | IgorA | 157 | .bckg_col dd 0xeeeeee ;+28 |
158 | .frnt_col dd 0xbbddff ;+32 |
||
159 | .line_col dd 0 ;+36 |
||
160 | .redraw dd 0 ;+40 |
||
161 | .delta dw 0 ;+44 |
||
162 | .delta2 dw 0 ;+46 |
||
163 | .run_x: |
||
2125 | IgorA | 164 | rb 2*4+4*6 |
1476 | IgorA | 165 | .all_redraw dd 0 ;+80 |
166 | .ar_offset dd 1 ;+84 |
||
167 | ;--------------------------------------------------------------------- |
||
168 | |||
169 | count_of_dir_list_files equ 15 |
||
170 | |||
171 | el_focus dd 0 |
||
172 | mouse_dd dd 0 |
||
173 | |||
174 | tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\ |
||
175 | 16,16, 0x8080ff,0x0000ff,0xffffff, 5,5,180-17,185, 12,0,0, el_focus,\ |
||
176 | ws_dir_lbox,0 |
||
177 | |||
178 | ;dir_list memory |
||
179 | tree_file_struct: |
||
2086 | IgorA | 180 | dd 1 |
181 | dd 0,0,count_of_dir_list_files |
||
182 | dd dir_mem |
||
183 | db 0 |
||
184 | dd file_name |
||
1476 | IgorA | 185 | |
186 | dir_mem rb 32+304*count_of_dir_list_files |
||
187 | |||
2125 | IgorA | 188 | edit1 edit_box 310+16-CAPT_PATH_WIDTH, 210+CAPT_PATH_WIDTH, 25, 0xffffff, 0xff, 0xff0000, 0, 0x80, MAX_COLOR_WORD_LEN, ed_buffer.127, mouse_dd, 0 |
189 | |||
190 | ed_buffer: ;текст для edit |
||
191 | .127: rb MAX_COLOR_WORD_LEN+2 |
||
2159 | IgorA | 192 | |
1476 | IgorA | 193 | ;------------------------------------------------------------------------------ |
194 | align 4 |
||
195 | tedit0: ;структура текстового редактора |
||
2086 | IgorA | 196 | .wnd BOX 195,5+40,325,240 ;+ 0 |
1476 | IgorA | 197 | .rec BOX 30,13,7,10 ;+16 |
198 | .drag_m db 0 ;+32 выделение от мыши |
||
199 | .drag_k db 0 ;+33 выделение от клавиатуры |
||
2159 | IgorA | 200 | .sel rb 16 ;+34 структура выделения |
201 | .seln rb 16 ;+50 дополнительная структура выделения |
||
1476 | IgorA | 202 | .tex dd 0 ;+66 text memory pointer |
203 | .tex_1 dd 0 ;+70 text first symbol pointer |
||
204 | .tex_end dd 0 ;+74 text end memory pointer |
||
205 | .cur_x dd 0 ;+78 координата x курсора |
||
206 | .cur_y dd 0 ;+82 координата y курсора |
||
207 | .max_chars dd 25002 ;+86 максимальное число символов в одном документе |
||
208 | .count_colors_text dd 1 ;+90 колличество цветов текста |
||
209 | .count_key_words dd 0 ;+94 колличество ключевых слов |
||
210 | .color_cursor dd 0xff0000 ;+98 цвет курсора |
||
211 | .color_wnd_capt dd 0x0080c0 ;+102 цвет полей вокруг окна |
||
212 | .color_wnd_work dd 0x0 ;+106 цвет фона окна |
||
213 | .color_wnd_bord dd 0xffffff ;+110 цвет текста на полях |
||
214 | .color_select dd 0x0000ff ;+114 цвет выделения |
||
215 | .color_cur_text dd 0xffff00 ;+118 цвет символа под курсором |
||
216 | .color_wnd_text dd 0x80ffff ;+122 цвет текста в окне |
||
217 | .syntax_file dd 0 ;+126 указатель на начало файла синтаксиса |
||
218 | .syntax_file_size dd 500 ;+130 максимальный размер файла синтаксиса |
||
219 | .text_colors dd 0 ;+134 указатель на массив цветов текста |
||
220 | .help_text_f1 dd 0 ;+138 указатель на текст справки (по нажатии F1) |
||
221 | .help_id dd -1 ;+142 идентификатор для справки |
||
222 | .key_words_data dd 0 ;+146 указатель на структуры ключевых слов TexColViv |
||
223 | .tim_ch dd ? ;+150 количество изменений в файле |
||
224 | .tim_undo dd ? ;+154 количество отмененных действий |
||
225 | .tim_ls dd ? ;+158 время последнего сохранения |
||
226 | .tim_co dd ? ;+162 время последней цветовой разметки |
||
227 | .el_focus dd el_focus ;+166 указатель на переменную элемента в фокусе |
||
228 | .err_save db 0 ;+170 ошибка сохранения файла |
||
229 | .panel_id db 0 ;+171 номер открытой панели |
||
230 | .key_new db 0 ;+172 символ, который будет добавлятся с клавиатуры |
||
231 | .symbol_new_line db 20 ;+173 символ завершения строки |
||
232 | .scr_w dd scrol_w1 ;+174 вертикальный скроллинг |
||
233 | .scr_h dd scrol_h1 ;+178 горизонтальный скроллинг |
||
234 | .arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов |
||
235 | .buffer dd buf ;+186 указатель на буфер копирования/вставки |
||
236 | .buffer_find dd 0 ;+190 указатель на буфер для поиска |
||
237 | .cur_ins db 1 ;+194 режим работы курсора (обычный или замена) |
||
238 | .mode_color db 1 ;+195 режим выделения слов цветом (0-выкл. 1-вкл.) |
||
239 | .mode_invis db 0 ;+196 режим показа непечатаемых символов |
||
240 | .gp_opt db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor |
||
241 | .fun_on_key_ctrl_o dd but_ctrl_o ;+198 указатель на функцию вызываемую при нажатии Ctrl+O (открытие файла) |
||
242 | .fun_on_key_ctrl_f dd 0 ;+202 ... Ctrl+F (вызова/скрытия панели поиска) |
||
243 | .fun_on_key_ctrl_n dd but_ctrl_n ;+206 ... Ctrl+N (создание нового документа) |
||
244 | .fun_on_key_ctrl_s dd 0 ;+210 ... Ctrl+S |
||
245 | .buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки |
||
246 | .fun_find_err dd 0 ;+218 указатель на функцию вызываемую если поиск закончился неудачно |
||
247 | .fun_init_synt_err dd 0 ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса |
||
248 | .fun_draw_panel_buttons dd 0 ;+226 указатель на функцию рисования панели с кнопками |
||
249 | .fun_draw_panel_find dd 0 ;+230 указатель на функцию рисования панели поиска |
||
250 | .fun_draw_panel_syntax dd 0 ;+234 указатель на функцию рисования панели синтаксиса |
||
251 | .fun_save_err dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно |
||
252 | .increase_size dd 1000 ;+242 число символов на которые будет увечиваться память при нехватке |
||
253 | .ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста) |
||
254 | ;------------------------------------------------------------------------------ |
||
255 | align 4 |
||
256 | scrol_w1: |
||
257 | .x: |
||
258 | .size_x dw 16 ;+0 |
||
259 | .start_x dw 85 ;+2 |
||
260 | .y: |
||
261 | .size_y dw 100 ; +4 |
||
262 | .start_y dw 15 ; +6 |
||
263 | .btn_high dd 15 ; +8 |
||
264 | .type dd 1 ;+12 |
||
265 | .max_area dd 100 ;+16 |
||
2125 | IgorA | 266 | rb 4+4 |
1476 | IgorA | 267 | .bckg_col dd 0xeeeeee ;+28 |
268 | .frnt_col dd 0xbbddff ;+32 |
||
269 | .line_col dd 0x808080 ;+36 |
||
270 | .redraw dd 0 ;+40 |
||
271 | .delta dw 0 ;+44 |
||
272 | .delta2 dw 0 ;+46 |
||
273 | .run_x: |
||
2125 | IgorA | 274 | rb 2*4+4*6 |
1476 | IgorA | 275 | .all_redraw dd 0 ;+80 |
276 | .ar_offset dd 1 ;+84 |
||
277 | ;--------------------------------------------------------------------- |
||
278 | align 4 |
||
279 | scrol_h1: |
||
280 | .x: |
||
281 | .size_x dw 85 ;+0 |
||
282 | .start_x dw 30 ;+2 |
||
283 | .y: |
||
284 | .size_y dw 16 ;+4 |
||
285 | .start_y dw 100 ;+6 |
||
286 | .btn_high dd 15 ;+8 |
||
287 | .type dd 1 ;+12 |
||
288 | .max_area dd 100 ;+16 |
||
2125 | IgorA | 289 | rb 4+4 |
1476 | IgorA | 290 | .bckg_col dd 0xeeeeee ;+28 |
291 | .frnt_col dd 0xbbddff ;+32 |
||
292 | .line_col dd 0x808080 ;+36 |
||
293 | .redraw dd 0 ;+40 |
||
294 | .delta dw 0 ;+44 |
||
295 | .delta2 dw 0 ;+46 |
||
296 | .run_x: |
||
2125 | IgorA | 297 | rb 2*4+4*6 |
1476 | IgorA | 298 | .all_redraw dd 0 ;+80 |
299 | .ar_offset dd 1 ;+84 |
||
300 | ;--------------------------------------------------------------------- |
||
2125 | IgorA | 301 | PathShow_data_1: |
302 | .type dd 0 ;+0 |
||
303 | .start_y dw 10 ;+4 |
||
304 | .start_x dw 210+CAPT_PATH_WIDTH ;+6 |
||
305 | .font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1 |
||
306 | .area_size_x dw 310+16-CAPT_PATH_WIDTH ;+10 |
||
307 | .font_number dd 0 ;+12 ; 0 - monospace, 1 - variable |
||
308 | .background_flag dd 1 ;+16 |
||
309 | .font_color dd 0x0 ;+20 |
||
310 | .background_color dd 0xffffff ;+24 |
||
311 | .text_pointer dd file_name ;+28 |
||
312 | .work_area_pointer dd file_name_rez ;+32 |
||
313 | .temp_text_length dd 0 ;+36 |
||
1476 | IgorA | 314 | |
315 | align 4 |
||
316 | str_file_70: |
||
317 | rb (5*4+1+4) ;место под структуру для работы с файлом (ф. 70) |
||
318 | |||
319 | text_buffer db 500 dup(0) |
||
320 | |||
321 | align 4 |
||
322 | ;conv_tabl rb 128 ;таблица для конвертирования scan-кода в ascii-код |
||
323 | buf db BUF_SIZE dup(0) ;буфер для копирования | вставки |
||
324 | |||
2159 | IgorA | 325 | capt_header db 'macro wo txt,f1,p1,p2,p3{',13 |
326 | db '@@: db txt',13,'rb @b+40-$',13,'dd f1+0',13,'db p1',13,'dw p2+0',13,'db p3',13,'}',13 |
||
1476 | IgorA | 327 | db 'count_colors_text dd (text-color_wnd_text)/4',13 |
2102 | IgorA | 328 | db 'count_key_words dd (f1-text)/48',13,0 |
1476 | IgorA | 329 | col_1 db 'color_cursor dd ',0 ;+ 98 цвет курсора |
330 | col_2 db 'color_wnd_capt dd ',0 ;+102 цвет полей вокруг окна |
||
331 | col_3 db 'color_wnd_work dd ',0 ;+106 цвет фона окна |
||
332 | col_4 db 'color_wnd_bord dd ',0 ;+110 цвет текста на полях |
||
333 | col_5 db 'color_select dd ',0 ;+114 цвет выделения |
||
334 | col_6 db 'color_cur_text dd ',0 ;+118 цвет символа под курсором |
||
335 | col_7 db 'color_wnd_text:',13,0 ;+122 цвет текста в окне |
||
336 | |||
337 | capt_lbl_wo db 'text:',13,0 |
||
338 | capt_beg_word db 'wo<',39,0 |
||
339 | capt_beg_db db ':db ',39,0 |
||
340 | capt_end_word db 39,'>,',0 |
||
341 | capt_type_dd db 9,'dd ',0 |
||
342 | capt_lbl_f1 db 'f1: db 0',13,0 |
||
343 | capt_end_word_f1 db 39,',0',13,0 |
||
344 | capt_calc_f1 db 'f1' |
||
345 | capt_point db '.',0 |
||
346 | capt_lbl_f1_use db '-f1',0 |
||
347 | capt_null db '0',0 |
||
348 | |||
349 | KM_SHIFT equ 0x00010000 |
||
350 | KM_CTRL equ 0x00020000 |
||
351 | KM_ALT equ 0x00040000 |
||
352 | KM_NUMLOCK equ 0x00080000 |
||
353 | |||
354 | ; KEY CODES |
||
355 | KEY_F1 equ 0x0000003B |
||
356 | KEY_F2 equ 0x0000003C |
||
357 | KEY_F3 equ 0x0000003D',39,0 |
||
358 |