Rev 7579 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6675 | pathoswith | 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;; basic macros for EditBox ;; |
||
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
6705 | 0CodErr | 4 | ed_width equ [edi] ; field width |
5 | ed_left equ [edi + 4] ; left border X |
||
6 | ed_top equ [edi + 8] ; top border Y |
||
7 | ed_color equ [edi + 12] ; field color |
||
8 | shift_color equ [edi + 16] ; select color |
||
9 | ed_focus_border_color equ [edi + 20] ; border color active |
||
10 | ed_blur_border_color equ [edi + 24] ; border color inactive |
||
11 | ed_text_color equ [edi + 28] ; color and font (as in sysfunc 4) |
||
12 | ed_max equ [edi + 32] ; chars max |
||
13 | ed_text equ [edi + 36] ; buffer pointer |
||
14 | ed_mouse_variable equ [edi + 40] ; pointer |
||
15 | ed_flags equ [edi + 44] |
||
16 | bp_flags equ [ebp + 44] |
||
17 | ed_size equ [edi + 48] ; chars currently |
||
18 | bp_size equ [ebp + 48] |
||
19 | ed_pos equ [edi + 52] ; carret current position |
||
20 | ed_offset equ [edi + 56] |
||
21 | cl_curs_x equ [edi + 60] ; previous cursor X |
||
22 | cl_curs_y equ [edi + 62] ; previous cursor Y |
||
23 | ed_shift_pos equ [edi + 64] ; selection current position |
||
24 | ed_shift_pos_old equ [edi + 66] ; selection previous position |
||
25 | ed_height equ [edi + 68] |
||
26 | ed_char_width equ [edi + 72] |
||
1432 | mario79 | 27 | |
6705 | 0CodErr | 28 | ed_struc_size = 76 |
1432 | mario79 | 29 | |
6675 | pathoswith | 30 | ;;;;;;;;;;;;;;;;;;;;;;; |
31 | ;; flags for EditBox ;; |
||
32 | ;;;;;;;;;;;;;;;;;;;;;;; |
||
33 | ed_pass = 1 ; password mode |
||
34 | ed_focus = 2 ; active |
||
35 | ed_shift = 4 ; shift holded |
||
36 | ed_shift_on = 8 ; selection active |
||
37 | ed_shift_bac = 16 ; clear selection |
||
38 | ed_left_fl = 32 |
||
39 | ed_offset_fl = 64 |
||
40 | ed_insert = 128 |
||
41 | ed_mouse_on = 256 |
||
42 | ed_ctrl_on = 512 |
||
43 | ed_alt_on = 400h |
||
44 | ed_disabled = 800h |
||
45 | ed_always_focus = 4000h |
||
46 | ed_figure_only = 8000h |
||
47 | ed_mous_adn_b = ed_mouse_on or ed_shift_on or ed_shift_bac |
||
48 | ed_shift_off = not ed_shift |
||
49 | ed_shift_mcl = not ed_shift |
||
50 | ed_shift_on_off = not ed_shift_on |
||
51 | ed_shift_bac_cl = not ed_shift_bac |
||
52 | ed_shift_cl = not (ed_shift or ed_shift_on or ed_shift_bac) |
||
53 | ed_right_fl = not ed_left_fl |
||
54 | ed_offset_cl = not ed_offset_fl |
||
55 | ed_insert_cl = not ed_insert |
||
56 | ed_mouse_on_off = not ed_mouse_on |
||
57 | ed_ctrl_off = not ed_ctrl_on |
||
58 | ed_alt_off = not ed_alt_on |
||
1432 | mario79 | 59 | |
60 | struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
||
61 | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
||
62 | { |
||
6705 | 0CodErr | 63 | .width dd width |
64 | .left dd left |
||
65 | .top dd top |
||
66 | .color dd color |
||
67 | .shift_color dd shift_color |
||
68 | .focus_border_color dd focus_border_color |
||
69 | .blur_border_color dd blur_border_color |
||
70 | .text_color dd text_color |
||
71 | .max dd max |
||
72 | .text dd text |
||
73 | .mouse_variable dd mouse_variable |
||
74 | .flags dd flags+0 |
||
75 | .size dd size+0 |
||
76 | .pos dd pos+0 |
||
77 | .offset dd 0 |
||
78 | .cl_curs_x dw 0 |
||
79 | .cl_curs_y dw 0 |
||
80 | .shift dw 0 |
||
81 | .shift_old dw 0 |
||
82 | .height dd 0 |
||
83 | .char_width dd 0 |
||
1432 | mario79 | 84 | } |
85 | |||
86 | macro edit_boxes_set_sys_color start,end,color_table |
||
87 | { |
||
88 | mov edi,start |
||
89 | mov ecx,((end-start)/ed_struc_size) |
||
90 | mov esi,color_table |
||
7021 | 0CodErr | 91 | mov ebx,[esi+system_colors.work_graph] |
92 | mov eax,[esi+system_colors.work] |
||
6681 | pathoswith | 93 | shr eax,1 |
94 | shr ebx,1 |
||
95 | and eax,7F7F7Fh |
||
96 | and ebx,7F7F7Fh |
||
7019 | 0CodErr | 97 | add eax,ebx |
98 | @@: |
||
7021 | 0CodErr | 99 | mov ed_focus_border_color,ebx |
6681 | pathoswith | 100 | mov ed_blur_border_color,eax |
7020 | 0CodErr | 101 | mov shift_color,dword 0A4C4E4h |
7034 | 0CodErr | 102 | and ed_text_color,dword 0FF000000h |
7020 | 0CodErr | 103 | mov ed_color,dword 0FFFFFFh |
1432 | mario79 | 104 | add edi,ed_struc_size |
105 | loop @b |
||
106 | } |
||
3178 | IgorA | 107 | |
108 | |||
1432 | mario79 | 109 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
110 | ;Basic macros for use CheckBox ; |
||
111 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
3204 | hidnplayr | 112 | ch_struc_size=36 ;размер структуры |
113 | ch_flag_en=10b ;флаг установленного чек бокса. |
||
114 | ch_flag_top=0x0 ;флаг расположения текста вверху т.е. 3-й бит |
||
115 | ch_flag_middle=100b ;флаг расположения текста в центре т.е. 4-й бит. |
||
116 | ch_flag_bottom=1000b ;флаг расположения текста в низу т.е. по умолчанию принимается значение внизу т.е. отсуствие 3-го и 4-го бита |
||
1682 | lrz | 117 | |
8346 | IgorA | 118 | ch_left_s equ [ebp] ;кордината начала рисования по х |
119 | ch_top_s equ [ebp+4] ;координата начала рисования по у |
||
120 | ch_text_margin equ [ebp+8] ;=4 расстояние от прямоугольника чек бокса до надписи |
||
121 | ch_color equ [ebp+12] ;цвет внутри checkbox |
||
122 | ch_border_color equ [ebp+16] ; or [edi+4] ;цвет рамки checkbox ее можно задать самостоятельно |
||
123 | ch_text_color equ [ebp+20] ;[edi+4] ;цвет текста |
||
124 | ch_text_ptr equ [ebp+24] ;указатель на начало текстовой строки |
||
125 | ch_flags equ [ebp+28] ;флаги |
||
126 | ch_sz_str equ [ebp+32] ;длинна строки, вычисляется при инициализации компонента |
||
1682 | lrz | 127 | |
128 | struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags |
||
3204 | hidnplayr | 129 | { ;структура параметров для чек бокса |
4463 | hidnplayr | 130 | .left_s dd left_s ;+0 положение по х dw + размер dw |
131 | .top_s dd top_s ;+4 положение по у dw + размер dw |
||
132 | .ch_text_margin dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи |
||
133 | .color dd color ;цвет внутри чекбокса |
||
134 | .border_color dd border_color ;цвет рамки |
||
135 | .text_color dd text_color ;цвет надписи |
||
136 | .text dd text ;адрес в коде программы где расположен текст |
||
137 | .flags dd flags+0 ;флаги |
||
8346 | IgorA | 138 | .size_of_str dd 0 ;длинна строки, вычисляется при инициализации компонента |
1682 | lrz | 139 | } |
140 | |||
141 | ;Макрос проверки щелчка мышки над группой checkboxes. |
||
3178 | IgorA | 142 | macro init_checkboxes2 start,end_cb |
1682 | lrz | 143 | { |
3178 | IgorA | 144 | if start+ch_struc_size eq end_cb |
3204 | hidnplayr | 145 | ;когда один элемент |
146 | push start ;указатель на checkbox |
||
147 | call [init_checkbox] ;настройка checkbox'а |
||
3178 | IgorA | 148 | else |
3204 | hidnplayr | 149 | ;когда несколько элементов |
150 | mov ebp,start |
||
151 | mov ecx,((end_cb-start)/ch_struc_size) |
||
1682 | lrz | 152 | @@: |
3204 | hidnplayr | 153 | push ebp ;указатель на первый checkbox |
154 | call [init_checkbox] ;настройка checkbox'ов |
||
155 | add ebp,ch_struc_size |
||
156 | loop @b |
||
3178 | IgorA | 157 | end if |
1682 | lrz | 158 | } |
159 | |||
160 | ;Макрос проверки мышки группы checkboxes. |
||
3178 | IgorA | 161 | macro checkboxes_mouse2 start,end_cb |
1682 | lrz | 162 | { |
3178 | IgorA | 163 | if start+ch_struc_size eq end_cb |
3204 | hidnplayr | 164 | ;когда один элемент |
165 | push start ;указатель на checkbox |
||
166 | call [check_box_mouse] ;макрос проверки мышки над checkbox'ом |
||
3178 | IgorA | 167 | else |
3204 | hidnplayr | 168 | ;когда несколько элементов |
169 | mov ebp,start |
||
170 | mov ecx,((end_cb-start)/ch_struc_size) |
||
1682 | lrz | 171 | @@: |
3204 | hidnplayr | 172 | push ebp ;указатель на первый checkbox |
173 | call [check_box_mouse] ;макрос проверки мышки над checkbox'ами |
||
174 | add ebp,ch_struc_size |
||
175 | loop @b |
||
3178 | IgorA | 176 | end if |
1682 | lrz | 177 | } |
178 | |||
179 | ;Макрос отрисовки группы checkboxes. |
||
3178 | IgorA | 180 | macro checkboxes_draw2 start,end_cb |
1682 | lrz | 181 | { |
3178 | IgorA | 182 | if start+ch_struc_size eq end_cb |
3204 | hidnplayr | 183 | ;когда один элемент |
184 | push start ;указатель на checkbox |
||
185 | call [check_box_draw] ;нарисовать checkbox |
||
3178 | IgorA | 186 | else |
3204 | hidnplayr | 187 | ;когда несколько элементов |
188 | mov ebp,start |
||
189 | mov ecx,((end_cb-start)/ch_struc_size) |
||
1682 | lrz | 190 | @@: |
3204 | hidnplayr | 191 | push ebp ;указатель на первый checkbox |
192 | call [check_box_draw] ;нарисовать checkbox'ы |
||
193 | add ebp,ch_struc_size |
||
194 | loop @b |
||
3178 | IgorA | 195 | end if |
1682 | lrz | 196 | } |
197 | |||
198 | macro check_boxes_set_sys_color2 start,end,color_table |
||
199 | { |
||
3204 | hidnplayr | 200 | mov ebp,start |
201 | mov ecx,((end-start)/ch_struc_size) |
||
202 | mov esi,color_table |
||
1682 | lrz | 203 | @@: |
3204 | hidnplayr | 204 | push dword [esi+32] ;цвет текста в рабочей области окна |
205 | or dword [esp],0x80000000 ;необходимо для вывода ASCIIZ строк |
||
8346 | IgorA | 206 | pop dword ch_text_color |
3204 | hidnplayr | 207 | push dword [esi+36] ;цвет графики в окне (разделительные линии и т.п.) |
8346 | IgorA | 208 | pop dword ch_border_color |
3204 | hidnplayr | 209 | add ebp,ch_struc_size |
210 | loop @b |
||
1682 | lrz | 211 | } |
212 | |||
213 | |||
214 | |||
215 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
1432 | mario79 | 216 | ;Basic macros for use OptionBox ; |
217 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
218 | |||
219 | struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags |
||
220 | { ;структура параметров для чек бокса |
||
221 | op_flag_en=10b |
||
4463 | hidnplayr | 222 | .option_group dd point_gr |
223 | .left dw left ;+0 ;положение по х |
||
224 | .top dw top ;положение по у |
||
225 | .ch_text_margin dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи |
||
226 | .ch_size dd op_size ;размер квадрата чек бокса, для примера 12 |
||
227 | .color dd color ;цвет внутри чекбокса |
||
228 | .border_color dd border_color ;цвет рамки |
||
229 | .text_color dd text_color ;цвет надписи |
||
230 | .text dd text ;адрес в коде программы где расположен текст |
||
231 | .ch_text_length dd op_text_length ;длинна строки с символами |
||
232 | .flags dd flags+0 ; флаги |
||
1432 | mario79 | 233 | } |
234 | |||
2159 | IgorA | 235 | ;op_struc_size equ |
1476 | IgorA | 236 | option_group equ [edi] |
237 | op_left equ [edi+4] ;координата начала рисования по х |
||
238 | op_top equ [edi+6] ;координата начала рисования по у |
||
6675 | pathoswith | 239 | op_text_margin equ [edi+8] ;=4 расстояние от прямоугольника чек бокса до надписи |
240 | op_size equ [edi+12] ;12 размер квадрата чек бокса |
||
1476 | IgorA | 241 | op_color equ [edi+16] |
2159 | IgorA | 242 | op_border_color equ [edi+20] ; or [edi+4] ;цвет рамки optionbox ее можно задать самостоятельно |
1476 | IgorA | 243 | op_text_color equ [edi+24];[edi+4] ;цвет текста |
6675 | pathoswith | 244 | op_text_ptr equ [edi+28] ;указатель на начало текстовой строки |
1476 | IgorA | 245 | op_text_length equ [edi+32] |
246 | op_flags equ [edi+36] ;флаги |
||
247 | |||
2159 | IgorA | 248 | macro option_boxes_set_sys_color color_table,group |
249 | { |
||
3204 | hidnplayr | 250 | mov ecx,group |
251 | mov esi,color_table |
||
252 | mov edi,[ecx] |
||
253 | mov eax,[esi+24] ;цвет кнопки в рабочей области окна |
||
254 | mov ebx,[esi+28] ;цвет текста на кнопке |
||
2159 | IgorA | 255 | @@: |
3204 | hidnplayr | 256 | mov op_border_color,eax |
257 | mov op_color,ebx |
||
258 | push dword [esi+32] ;цвет текста в рабочей области окна |
||
259 | pop dword op_text_color |
||
2159 | IgorA | 260 | add ecx,4 |
261 | mov edi,[ecx] |
||
3204 | hidnplayr | 262 | cmp edi,0 |
263 | jne @b |
||
2159 | IgorA | 264 | } |
7508 | IgorA | 265 | |
1457 | IgorA | 266 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
267 | ;Basic macros for use TreeList ; |
||
268 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
269 | |||
1432 | mario79 | 270 | struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ |
271 | col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ |
||
5911 | IgorA | 272 | info_capt_len,el_focus, p_scroll,on_press { |
273 | .box_left dd box_l |
||
274 | .box_top dd box_t |
||
275 | .box_width dd box_w |
||
276 | .box_height dd box_h |
||
277 | .data_info dd 0 |
||
278 | .info_size dw info_size |
||
279 | .info_max_count dd info_max_count |
||
280 | .style dd style |
||
281 | .data_nodes dd 0 |
||
282 | .data_img dd 0 |
||
283 | .img_cx dw img_cx |
||
284 | .img_cy dw img_cy |
||
285 | .data_img_sys dd 0 |
||
286 | .ch_tim dd 0 |
||
287 | .tim_undo dd 0 |
||
288 | .cur_pos dd 0 |
||
289 | .col_bkg dd col_bkg |
||
290 | .col_zag dd col_zag |
||
291 | .col_txt dd col_txt |
||
292 | .capt_cy dw capt_cy |
||
293 | .info_capt_offs dw info_capt_offs |
||
294 | .info_capt_len dw info_capt_len |
||
295 | .el_focus dd el_focus |
||
296 | .p_scroll dd p_scroll |
||
297 | .on_press dd on_press |
||
1432 | mario79 | 298 | } |
299 | |||
5911 | IgorA | 300 | tl_box_left equ dword[edi] |
301 | tl_box_top equ dword[edi+ 4] |
||
302 | tl_box_width equ dword[edi+ 8] |
||
303 | tl_box_height equ dword[edi+12] |
||
304 | tl_data_info equ dword[edi+16] ;указатель на основные даные |
||
305 | tl_info_size equ word[edi+20] ;размер данных выделяемых для каждого узла (пользовательськие данные + текст для подписи) |
||
306 | tl_info_max_count equ dword[edi+22] ;максимальное количество узлов, которые можно добавить в элемент |
||
307 | tl_style equ dword[edi+26] ;стили элемента |
||
308 | tl_data_nodes equ dword[edi+30] ;указатель на структуры узлов |
||
309 | tl_data_img equ dword[edi+34] ;указатель на изображения с иконками узлов |
||
310 | tl_img_cx equ word[edi+38] ;ширина иконок |
||
311 | tl_img_cy equ word[edi+40] ;высота иконок |
||
312 | tl_data_img_sys equ dword[edi+42] ;указатель на системные изображения (стрелки, плюсики) |
||
313 | tl_ch_tim equ dword[edi+46] ;количество изменений в файле |
||
314 | tl_tim_undo equ dword[edi+50] ;количество отмененных действий |
||
315 | tl_cur_pos equ dword[edi+54] ;позиция курсора |
||
316 | tl_col_bkg equ dword[edi+58] ;цвет фона |
||
317 | tl_col_zag equ dword[edi+62] ;цвет заголовка |
||
318 | tl_col_txt equ dword[edi+66] ;цвет текста |
||
319 | tl_capt_cy equ word[edi+70] ;высота подписи |
||
320 | tl_info_capt_offs equ word[edi+72] ;сдвиг для начала текста (подписи узла) |
||
321 | tl_info_capt_len equ word[edi+74] ;длинна текста подписи узла (если = 0 то до конца структуры) |
||
322 | tl_el_focus equ dword[edi+76] ;указатель на структуру элемента в фокусе |
||
323 | tl_p_scroll equ dword[edi+80] ;указатель на структуру скроллинга |
||
324 | tl_on_press equ dword[edi+84] ;указатель на функцию, которая вызывается при нажатии Enter |
||
1449 | IgorA | 325 | |
1432 | mario79 | 326 | ;константы стиля |
327 | tl_key_no_edit equ 1b ;элемент нельзя редактировать на клавиатуре (изменять уровни, удалять) |
||
328 | tl_draw_par_line equ 10b ;рисовать линии к родительскому узлу |
||
329 | tl_list_box_mode equ 100b ;стиль не отображает уровни (как в ListBox все одного уровня) |
||
7508 | IgorA | 330 | tl_cursor_pos_limited equ 8 ;перемещение курсора ограничено существующими узлами |
1432 | mario79 | 331 | |
332 | ;константы для функций |
||
333 | tl_err_save_memory_size equ 10b ;не хватает памяти для сохранения элемента |
||
334 | tl_err_load_caption equ 1b ;в памяти нет заголовка 'tree' |
||
335 | tl_err_load_info_size equ 100b ;не совпадает размер информационной структуры при открытии |
||
336 | tl_load_mode_add equ 0x20000 ;опция считывания в режиме добавления информации |
||
337 | tl_save_load_heder_size equ 26 ;размер заголовка для записи/чтения элементов |
||
5911 | IgorA | 338 | tl_offs_box equ 0 ;начало BOX структуры для tree_list |
1457 | IgorA | 339 | |
340 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
341 | ;Basic macros for use TextEditor ; |
||
342 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
343 | |||
344 | ted_wnd_l equ dword[edi+ 0] ;окно редактора: отступ слева |
||
345 | ted_wnd_t equ dword[edi+ 4] ;окно редактора: отступ сверху |
||
346 | ted_wnd_w equ dword[edi+ 8] ;окно редактора: ширина |
||
347 | ted_wnd_h equ dword[edi+12] ;окно редактора: высота |
||
348 | ted_rec_l equ dword[edi+16] ;ширина панели в окне |
||
349 | ted_rec_t equ dword[edi+20] ;высота панели в окне |
||
350 | ted_rec_w equ dword[edi+24] ;ширина символа (знакоместа) в окне |
||
351 | ted_rec_h equ dword[edi+28] ;высота символа (знакоместа) в окне |
||
352 | ted_drag_m equ byte[edi+32] ;выделение от мыши |
||
353 | ted_drag_k equ byte[edi+33] ;выделение от клавиатуры |
||
354 | ted_sel_x0 equ dword[edi+34] ;координата выделения x0 |
||
355 | ted_sel_y0 equ dword[edi+38] ;координата выделения y0 |
||
356 | ted_sel_x1 equ dword[edi+42] ;координата выделения x1 |
||
357 | ted_sel_y1 equ dword[edi+46] ;координата выделения y1 |
||
358 | ;запасные координаты выделения |
||
359 | ted_seln_x0 equ dword[edi+50] |
||
360 | ted_seln_y0 equ dword[edi+54] |
||
361 | ted_seln_x1 equ dword[edi+58] |
||
362 | ted_seln_y1 equ dword[edi+62] |
||
363 | |||
364 | ted_tex equ dword[edi+66] ;указатель на память для хранения текста |
||
365 | ted_tex_1 equ dword[edi+70] ;указатель на 1-ю стркутру символа |
||
366 | ted_tex_end equ dword[edi+74] ;указатель на последнюю структуру символа |
||
367 | ted_cur_x equ dword[edi+78] ;координата x курсора |
||
368 | ted_cur_y equ dword[edi+82] ;координата y курсора |
||
369 | ted_max_chars equ dword[edi+86] ;максимальное число символов в одном документе |
||
370 | ted_colors_text_count equ dword[edi+90] ;колличество цветов текста |
||
371 | ted_key_words_count equ dword[edi+94] ;колличество ключевых слов |
||
372 | ted_color_cursor equ dword[edi+98] ;цвет курсора |
||
373 | ted_color_wnd_capt equ dword[edi+102] ;цвет полей вокруг окна |
||
374 | ted_color_wnd_work equ dword[edi+106] ;цвет фона окна |
||
375 | ted_color_wnd_bord equ dword[edi+110] ;цвет текста на полях |
||
376 | ted_color_select equ dword[edi+114] ;цвет выделения |
||
377 | ted_color_cur_text equ dword[edi+118] ;цвет символа под курсором |
||
378 | ted_color_wnd_text equ dword[edi+122] ;цвет текста в окне |
||
379 | ted_syntax_file equ dword[edi+126] ;указатель на начало файла синтаксиса |
||
380 | ted_syntax_file_size equ dword[edi+130] ;максимальный размер файла синтаксиса |
||
381 | ted_text_colors equ dword[edi+134] ;указатель на массив цветов текста |
||
382 | ted_help_text_f1 equ dword[edi+138] ;указатель на текст справки (по нажатии F1) |
||
383 | ted_help_id equ dword[edi+142] ;идентификатор для справки |
||
384 | ted_key_words_data equ dword[edi+146] ;указатель на структуры ключевых слов TexColViv |
||
385 | ted_tim_ch equ dword[edi+150] ;колличество изменений в файле |
||
386 | ted_tim_undo equ dword[edi+154] ;колличество отмененных действий |
||
387 | ted_tim_ls equ dword[edi+158] ;время последнего сохранения |
||
388 | ted_tim_co equ dword[edi+162] ;время последней цветовой разметки |
||
389 | ted_el_focus equ dword[edi+166] ;указатель на переменную элемента в фокусе |
||
390 | ted_err_save equ byte[edi+170] ;ошибка сохранения файла |
||
391 | ted_panel_id equ byte[edi+171] ;номер открытой панели |
||
392 | ted_key_new equ byte[edi+172] ;символ, который будет добавлятся с клавиатуры |
||
393 | ted_symbol_new_line equ byte[edi+173] ;символ завершения строки |
||
394 | ted_scr_w equ dword[edi+174] ;вертикальный скроллинг |
||
395 | ted_scr_h equ dword[edi+178] ;горизонтальный скроллинг |
||
396 | ted_arr_key_pos equ dword[edi+182] ;указатель на массив позиций ключевых слов |
||
397 | ted_buffer equ dword[edi+186] ;указатель на буфер копирования/вставки |
||
398 | ted_buffer_find equ dword[edi+190] ;указатель на буфер для поиска |
||
399 | ted_cur_ins equ byte[edi+194] ;режим работы курсора (обычный или замена) |
||
400 | ted_mode_color equ byte[edi+195] ;режим выделения слов цветом (0-выкл. 1-вкл.) |
||
401 | ted_mode_invis equ byte[edi+196] ;режим показа непечатаемых символов |
||
402 | ted_gp_opt equ byte[edi+197] ;опции возвращаемые функцией ted_get_pos_by_cursor |
||
7579 | IgorA | 403 | ted_fun_on_key_ctrl_all equ dword[edi+198] ;указатель на функцию вызываемую при нажатии Ctrl+N,O,F,S,H,G |
404 | ;+202,+206,+210 зарезервировано |
||
1457 | IgorA | 405 | ted_buffer_size equ dword[edi+214] ;размер буфера копирования/вставки |
406 | ted_fun_find_err equ dword[edi+218] ;указатель на функцию вызываемую если поиск закончился неудачно |
||
2707 | IgorA | 407 | ;ted_fun_init_synt_err equ dword[edi+222] ;указатель на функцию вызываемую при ошибочном открытии файла синтаксиса |
1457 | IgorA | 408 | ted_fun_draw_panel_buttons equ dword[edi+226] ;указатель на функцию рисования панели с кнопками |
7579 | IgorA | 409 | ted_fun_draw_panels equ dword[edi+230] ;указатель на функцию рисования панели поиска|...|синтаксиса |
1457 | IgorA | 410 | ted_fun_save_err equ dword[edi+238] ;указатель на функцию вызываемую если сохранение файла закончилось неудачно |
1464 | IgorA | 411 | ted_increase_size equ dword[edi+242] ;число символов на которые будет увечиваться память при нехватке |
412 | ted_ptr_free_symb equ dword[edi+246] ;указатель на свободную память, в которую можно добавлять символ (используется внутри элемента для ускорения вставки текста) |
||
6256 | IgorA | 413 | ted_font_size equ dword[edi+250] ;множитель для размера шрифта (при изменении нужно также изменять параметры ted_rec_w, ted_rec_h) |
1457 | IgorA | 414 | ;------------------------------------------------------------------------------ |
415 | ted_opt_ed_move_cursor equ 1 ;двигать курсор после добавления текста |
||
416 | ted_opt_ed_change_time equ 2 ;добавлять изменения при редактировании текста |
||
417 | ted_offs_sel equ 34 ;смещение структуры sel |
||
418 | ted_offs_seln equ 50 ;смещение структуры seln |
||
419 | ted_offs_count_colors equ 90 ;смещение переменной колличества цветов |
||
420 | ted_offs_key_new equ 172 |
||
421 | ted_offs_symbol_new_line equ 173 ;смещение символа новой строки |
||
422 | ;------------------------------------------------------------------------------ |
||
423 | |||
424 | |||
425 | |||
426 | ; *** scroll bar constant *** |
||
427 | sb_offs_size_x equ 0 |
||
428 | sb_offs_start_x equ 2 |
||
429 | sb_offs_size_y equ 4 |
||
430 | sb_offs_start_y equ 6 |
||
431 | sb_offs_max_area equ 16 |
||
432 | sb_offs_cur_area equ 20 |
||
433 | sb_offs_position equ 24 |
||
1458 | IgorA | 434 | sb_offs_bckg_col equ 28 |
435 | sb_offs_frnt_col equ 32 |
||
436 | sb_offs_line_col equ 36 |
||
1457 | IgorA | 437 | sb_offs_redraw equ 40 |
438 | sb_offs_delta2 equ 46 |
||
439 | sb_offs_all_redraw equ 80 |
||
3204 | hidnplayr | 440 | ;------------------------------------------------------------------------------ |
441 | |||
442 | |||
443 | struc scrollbar xsize, xpos, ysize, ypos, btn_height, max, cur, pos, bgcol, frcol, linecol, ar_offset |
||
444 | { |
||
445 | .x_size dw xsize |
||
446 | .x_pos dw xpos |
||
447 | .y_size dw ysize |
||
448 | .y_pos dw ypos |
||
449 | .btn_height dd btn_height |
||
450 | .type dd ? |
||
451 | .max_area dd max |
||
452 | .cur_area dd cur |
||
453 | .position dd pos |
||
454 | .bg_color dd bgcol |
||
455 | .front_color dd frcol |
||
456 | .line_color dd linecol |
||
457 | .redraw dd ? |
||
458 | .delta dw ? |
||
459 | .delta2 dw ? |
||
460 | .r_size_x dw ? |
||
461 | .r_start_x dw ? |
||
462 | .r_size_y dw ? |
||
463 | .r_start_y dw ? |
||
464 | .m_pos dd ? |
||
465 | .m_pos_2 dd ? |
||
466 | .m_keys dd ? |
||
467 | .run_size dd ? |
||
468 | .position2 dd ? |
||
469 | .work_size dd ? |
||
470 | .all_redraw dd ? |
||
471 | .ar_offset dd ar_offset |
||
3478 | 0CodErr | 472 | } |
473 | |||
474 | ; *** ProgressBar constants *** ; |
||
475 | PB_VALUE equ +0 |
||
476 | PB_LEFT equ +4 |
||
477 | PB_TOP equ +8 |
||
478 | PB_WIDTH equ +12 |
||
479 | PB_HEIGHT equ +16 |
||
480 | PB_STYLE equ +20 |
||
481 | PB_MIN equ +24 |
||
482 | PB_MAX equ +28 |
||
483 | PB_BACK_COLOR equ +32 |
||
484 | PB_PROGRESS_COLOR equ +36 |
||
6586 | 0CodErr | 485 | PB_FRAME_COLOR equ +40 |
486 | |||
487 | ; *** Frame constants *** ; |
||
488 | FR_STYLE equ +0 ; Dword |
||
6675 | pathoswith | 489 | FR_WIDTH equ +4 ; Word |
490 | FR_LEFT equ +6 ; Word |
||
491 | FR_HEIGHT equ +8 ; Word |
||
492 | FR_TOP equ +10 ; Word |
||
6586 | 0CodErr | 493 | FR_OUTER_COLOR equ +12 ; Dword |
494 | FR_INNER_COLOR equ +16 ; Dword |
||
495 | FR_FLAGS equ +20 ; Dword |
||
496 | FR_TEXT equ +24 ; Dword |
||
497 | FR_TEXT_POSITION equ +28 ; Dword |
||
498 | FR_FONT equ +32 ; Dword |
||
499 | FR_FONT_HEIGHT equ +36 ; Dword |
||
500 | FR_FORE_COLOR equ +40 ; Dword |
||
501 | FR_BACK_COLOR equ +44 ; Dword |
||
502 | |||
503 | ; FR_FLAGS = [x][yyy][z] |
||
504 | ; z - Caption |
||
505 | ; yyy - BorderStyle |
||
506 | ; x - BackStyle |
||
507 | FR_CAPTION equ 00001b ; [z] |
||
508 | FR_DOUBLE equ 00000b ; [yyy] |
||
509 | FR_RAISED equ 00010b ; [yyy] |
||
510 | FR_SUNKEN equ 00100b ; [yyy] |
||
511 | FR_ETCHED equ 00110b ; [yyy] |
||
512 | FR_RIDGED equ 01000b ; [yyy] |
||
513 | FR_FILLED equ 10000b ; [x] |
||
514 | |||
515 | ; FR_TEXT_POSITION |
||
516 | FR_TEXT_POS_BOTTOM equ 1 |
||
6689 | siemargl | 517 | FR_TEXT_POS_TOP equ 0 |
518 | |||
519 | ;----------------------------------------------------------------------------- |
||
520 | |||
521 | struc tooltip txt, next, zone_x, zone_w, zone_y, zone_h, col_txt, col_bkg, tm_wait |
||
522 | { |
||
523 | .txt dd txt ; указатель на текст asciiz, разделитель \r 13 |
||
524 | .next dd next ; следующиий tooltip в цепочке или 0 |
||
525 | .zone_y dw zone_y ; зона контроля (в 90% случаев совпадает с размером контрола) |
||
526 | .zone_x dw zone_x ; |
||
527 | .zone_h dw zone_h ; |
||
528 | .zone_w dw zone_w ; |
||
529 | .col_txt dd col_txt ; цвет текста тултипа, включая размер SysFn4 |
||
530 | .col_bkg dd col_bkg ; цвет фона тултипа |
||
531 | .tm_wait dw tm_wait ; время ожидания х10мс |
||
532 | ;временные переменные |
||
533 | .font_sz dd ? ; font size |
||
534 | .mouse dd ? ; предыдущее положение (x, y) |
||
535 | .tm_strt dd ? ; время запуска таймера (входа мыши в зону) х10мс |
||
536 | .video dd ? ; память для сохраненного под тултипом |
||
537 | .video_y dw ? ; координаты запомненной области экрана, или 0 если пусто |
||
538 | .video_x dw ? |
||
539 | .video_h dw ? ; размер предрасчитывается при init |
||
540 | .video_w dw ? |
||
541 | } |