Rev 7577 | Rev 7861 | 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 |
||
7577 | IgorA | 69 | ted_but_find dd sz_ted_but_find |
1476 | IgorA | 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 |
||
7577 | IgorA | 131 | sz_ted_but_find db 'ted_but_find',0 |
1476 | IgorA | 132 | sz_ted_text_colored db 'ted_text_colored',0 |
7579 | IgorA | 133 | sz_ted_go_to_position db 'ted_go_to_position',0 |
2125 | IgorA | 134 | |
135 | sz_PathShow_prepare db 'PathShow_prepare',0 |
||
136 | sz_PathShow_draw db 'PathShow_draw',0 |
||
4990 | IgorA | 137 | |
1476 | IgorA | 138 | align 4 |
4990 | IgorA | 139 | import_libimg: |
140 | dd alib_init1 |
||
141 | img_to_rgb2 dd aimg_to_rgb2 |
||
142 | img_decode dd aimg_decode |
||
143 | img_destroy dd aimg_destroy |
||
144 | dd 0,0 |
||
145 | alib_init1 db 'lib_init',0 |
||
146 | aimg_to_rgb2 db 'img_to_rgb2',0 |
||
147 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
||
148 | aimg_destroy db 'img_destroy',0 |
||
7577 | IgorA | 149 | ;--------------------------------------------------------------------- |
150 | ;дочерний скроллинг для элемента ListBox |
||
4990 | IgorA | 151 | align 4 |
7577 | IgorA | 152 | ws_dir_lbox scrollbar 16,0, 30,70, 15, 100,30,0, 0,0,0, 1 |
1476 | IgorA | 153 | ;--------------------------------------------------------------------- |
154 | |||
155 | count_of_dir_list_files equ 15 |
||
156 | |||
157 | el_focus dd 0 |
||
158 | mouse_dd dd 0 |
||
159 | |||
160 | tree1 tree_list 264,count_of_dir_list_files+2, tl_key_no_edit+tl_draw_par_line+tl_list_box_mode,\ |
||
161 | 16,16, 0x8080ff,0x0000ff,0xffffff, 5,5,180-17,185, 12,0,0, el_focus,\ |
||
162 | ws_dir_lbox,0 |
||
163 | |||
164 | ;dir_list memory |
||
165 | tree_file_struct: |
||
2086 | IgorA | 166 | dd 1 |
167 | dd 0,0,count_of_dir_list_files |
||
168 | dd dir_mem |
||
169 | db 0 |
||
170 | dd file_name |
||
1476 | IgorA | 171 | |
172 | dir_mem rb 32+304*count_of_dir_list_files |
||
173 | |||
2125 | IgorA | 174 | 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 |
175 | |||
176 | ed_buffer: ;текст для edit |
||
177 | .127: rb MAX_COLOR_WORD_LEN+2 |
||
2159 | IgorA | 178 | |
1476 | IgorA | 179 | ;------------------------------------------------------------------------------ |
180 | align 4 |
||
181 | tedit0: ;структура текстового редактора |
||
2086 | IgorA | 182 | .wnd BOX 195,5+40,325,240 ;+ 0 |
1476 | IgorA | 183 | .rec BOX 30,13,7,10 ;+16 |
184 | .drag_m db 0 ;+32 выделение от мыши |
||
185 | .drag_k db 0 ;+33 выделение от клавиатуры |
||
2159 | IgorA | 186 | .sel rb 16 ;+34 структура выделения |
187 | .seln rb 16 ;+50 дополнительная структура выделения |
||
1476 | IgorA | 188 | .tex dd 0 ;+66 text memory pointer |
189 | .tex_1 dd 0 ;+70 text first symbol pointer |
||
190 | .tex_end dd 0 ;+74 text end memory pointer |
||
191 | .cur_x dd 0 ;+78 координата x курсора |
||
192 | .cur_y dd 0 ;+82 координата y курсора |
||
193 | .max_chars dd 25002 ;+86 максимальное число символов в одном документе |
||
194 | .count_colors_text dd 1 ;+90 колличество цветов текста |
||
195 | .count_key_words dd 0 ;+94 колличество ключевых слов |
||
196 | .color_cursor dd 0xff0000 ;+98 цвет курсора |
||
197 | .color_wnd_capt dd 0x0080c0 ;+102 цвет полей вокруг окна |
||
198 | .color_wnd_work dd 0x0 ;+106 цвет фона окна |
||
199 | .color_wnd_bord dd 0xffffff ;+110 цвет текста на полях |
||
200 | .color_select dd 0x0000ff ;+114 цвет выделения |
||
201 | .color_cur_text dd 0xffff00 ;+118 цвет символа под курсором |
||
202 | .color_wnd_text dd 0x80ffff ;+122 цвет текста в окне |
||
203 | .syntax_file dd 0 ;+126 указатель на начало файла синтаксиса |
||
204 | .syntax_file_size dd 500 ;+130 максимальный размер файла синтаксиса |
||
205 | .text_colors dd 0 ;+134 указатель на массив цветов текста |
||
206 | .help_text_f1 dd 0 ;+138 указатель на текст справки (по нажатии F1) |
||
207 | .help_id dd -1 ;+142 идентификатор для справки |
||
208 | .key_words_data dd 0 ;+146 указатель на структуры ключевых слов TexColViv |
||
209 | .tim_ch dd ? ;+150 количество изменений в файле |
||
210 | .tim_undo dd ? ;+154 количество отмененных действий |
||
211 | .tim_ls dd ? ;+158 время последнего сохранения |
||
212 | .tim_co dd ? ;+162 время последней цветовой разметки |
||
213 | .el_focus dd el_focus ;+166 указатель на переменную элемента в фокусе |
||
214 | .err_save db 0 ;+170 ошибка сохранения файла |
||
215 | .panel_id db 0 ;+171 номер открытой панели |
||
216 | .key_new db 0 ;+172 символ, который будет добавлятся с клавиатуры |
||
217 | .symbol_new_line db 20 ;+173 символ завершения строки |
||
218 | .scr_w dd scrol_w1 ;+174 вертикальный скроллинг |
||
219 | .scr_h dd scrol_h1 ;+178 горизонтальный скроллинг |
||
220 | .arr_key_pos dd 0 ;+182 указатель на массив позиций ключевых слов |
||
221 | .buffer dd buf ;+186 указатель на буфер копирования/вставки |
||
222 | .buffer_find dd 0 ;+190 указатель на буфер для поиска |
||
223 | .cur_ins db 1 ;+194 режим работы курсора (обычный или замена) |
||
224 | .mode_color db 1 ;+195 режим выделения слов цветом (0-выкл. 1-вкл.) |
||
225 | .mode_invis db 0 ;+196 режим показа непечатаемых символов |
||
226 | .gp_opt db 0 ;+197 опции возвращаемые функцией ted_get_pos_by_cursor |
||
7579 | IgorA | 227 | .fun_on_key_ctrl_all dd ted_but_ctrl_all ;+198 указатель на функцию вызываемую при нажатии Ctrl+N,O,S,F,G,H |
228 | dd 0,0,0 |
||
1476 | IgorA | 229 | .buffer_size dd BUF_SIZE ;+214 размер буфера копирования/вставки |
230 | .fun_find_err dd 0 ;+218 указатель на функцию вызываемую если поиск закончился неудачно |
||
231 | .fun_init_synt_err dd 0 ;+222 указатель на функцию вызываемую при ошибочном открытии файла синтаксиса |
||
232 | .fun_draw_panel_buttons dd 0 ;+226 указатель на функцию рисования панели с кнопками |
||
7579 | IgorA | 233 | .fun_draw_panels dd 0 ;+230 указатель на функцию рисования панели поиска|...|синтаксиса |
234 | dd 0 |
||
1476 | IgorA | 235 | .fun_save_err dd 0 ;+238 указатель на функцию вызываемую если сохранение файла закончилось неудачно |
236 | .increase_size dd 1000 ;+242 число символов на которые будет увечиваться память при нехватке |
||
237 | .ptr_free_symb dd ? ;+246 указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста) |
||
7575 | IgorA | 238 | .font_size dd 0 ;+250 множитель для размера шрифта |
1476 | IgorA | 239 | ;------------------------------------------------------------------------------ |
240 | align 4 |
||
7575 | IgorA | 241 | scrol_w1 scrollbar 16,85, 100,15, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1 |
242 | |||
1476 | IgorA | 243 | align 4 |
7575 | IgorA | 244 | scrol_h1 scrollbar 85,30, 16,100, 15, 100,0,0, 0xeeeeee,0xbbddff,0x808080, 1 |
1476 | IgorA | 245 | ;--------------------------------------------------------------------- |
2125 | IgorA | 246 | PathShow_data_1: |
247 | .type dd 0 ;+0 |
||
248 | .start_y dw 10 ;+4 |
||
249 | .start_x dw 210+CAPT_PATH_WIDTH ;+6 |
||
250 | .font_size_x dw 6 ;+8 ; 6 - for font 0, 8 - for font 1 |
||
251 | .area_size_x dw 310+16-CAPT_PATH_WIDTH ;+10 |
||
252 | .font_number dd 0 ;+12 ; 0 - monospace, 1 - variable |
||
253 | .background_flag dd 1 ;+16 |
||
254 | .font_color dd 0x0 ;+20 |
||
255 | .background_color dd 0xffffff ;+24 |
||
256 | .text_pointer dd file_name ;+28 |
||
257 | .work_area_pointer dd file_name_rez ;+32 |
||
258 | .temp_text_length dd 0 ;+36 |
||
1476 | IgorA | 259 | |
260 | align 4 |
||
261 | str_file_70: |
||
262 | rb (5*4+1+4) ;место под структуру для работы с файлом (ф. 70) |
||
263 | |||
264 | text_buffer db 500 dup(0) |
||
265 | |||
266 | align 4 |
||
267 | ;conv_tabl rb 128 ;таблица для конвертирования scan-кода в ascii-код |
||
268 | buf db BUF_SIZE dup(0) ;буфер для копирования | вставки |
||
269 | |||
2159 | IgorA | 270 | capt_header db 'macro wo txt,f1,p1,p2,p3{',13 |
271 | 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 | 272 | db 'count_colors_text dd (text-color_wnd_text)/4',13 |
2102 | IgorA | 273 | db 'count_key_words dd (f1-text)/48',13,0 |
1476 | IgorA | 274 | col_1 db 'color_cursor dd ',0 ;+ 98 цвет курсора |
275 | col_2 db 'color_wnd_capt dd ',0 ;+102 цвет полей вокруг окна |
||
276 | col_3 db 'color_wnd_work dd ',0 ;+106 цвет фона окна |
||
277 | col_4 db 'color_wnd_bord dd ',0 ;+110 цвет текста на полях |
||
278 | col_5 db 'color_select dd ',0 ;+114 цвет выделения |
||
279 | col_6 db 'color_cur_text dd ',0 ;+118 цвет символа под курсором |
||
280 | col_7 db 'color_wnd_text:',13,0 ;+122 цвет текста в окне |
||
281 | |||
282 | capt_lbl_wo db 'text:',13,0 |
||
283 | capt_beg_word db 'wo<',39,0 |
||
284 | capt_beg_db db ':db ',39,0 |
||
285 | capt_end_word db 39,'>,',0 |
||
286 | capt_type_dd db 9,'dd ',0 |
||
287 | capt_lbl_f1 db 'f1: db 0',13,0 |
||
288 | capt_end_word_f1 db 39,',0',13,0 |
||
289 | capt_calc_f1 db 'f1' |
||
290 | capt_point db '.',0 |
||
291 | capt_lbl_f1_use db '-f1',0 |
||
292 | capt_null db '0',0 |
||
293 | |||
294 | KM_SHIFT equ 0x00010000 |
||
295 | KM_CTRL equ 0x00020000 |
||
296 | KM_ALT equ 0x00040000 |
||
297 | KM_NUMLOCK equ 0x00080000 |
||
298 | |||
299 | ; KEY CODES |
||
300 | KEY_F1 equ 0x0000003B |
||
301 | KEY_F2 equ 0x0000003C |
||
302 | KEY_F3 equ 0x0000003D',39,0 |
||
303 |