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