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