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