Rev 1372 | Rev 1449 | 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] ;указатель на буфер |
||
14 | ed_mouse_variable equ [edi+40] ; указатель на переменную для бокса/группы |
||
15 | ed_flags equ [edi+44] ;флаги |
||
16 | bp_flags equ [ebp+44] ;в некоторых процедурах edi используется, взамен указатель храниться в ebp |
||
17 | ed_size equ [edi+48] ;кол-во символов |
||
18 | bp_size equ [ebp+48] ;кол-во симвполов, для адресации испльзуется ebpб edi занят |
||
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 ;фокус приложения |
||
34 | ed_shift_on= 1000b ;если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая shift |
||
35 | ed_shift_on_off=1111111111110111b |
||
36 | ed_shift= 100b ;включается при нажатии на shift т.е. если нажимаю |
||
37 | ed_shift_off= 1111111111111011b |
||
38 | ed_shift_bac= 10000b ;бит для очистки выделеного shift т.е. при установке говорит что есть выделение |
||
39 | ed_shift_bac_cl=1111111111101111b ;очистка при удалении выделения |
||
40 | ed_shift_cl= 1111111111100011b |
||
41 | ed_shift_mcl= 1111111111111011b |
||
42 | ed_left_fl= 100000b |
||
43 | ed_right_fl= 1111111111011111b |
||
44 | ed_offset_fl= 1000000b |
||
45 | ed_offset_cl= 1111111110111111b |
||
46 | ed_insert= 10000000b |
||
47 | ed_insert_cl= 1111111101111111b |
||
48 | ed_mouse_on = 100000000b |
||
49 | ed_mous_adn_b= 100011000b |
||
50 | ed_mouse_on_off=1111111011111111b |
||
51 | ed_height=14 ; высота |
||
52 | |||
53 | struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
||
54 | blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
||
55 | { |
||
56 | .width dd width |
||
57 | .left dd left |
||
58 | .top dd top |
||
59 | .color dd color |
||
60 | .shift_color dd shift_color |
||
61 | .focus_border_color dd focus_border_color |
||
62 | .blur_border_color dd blur_border_color |
||
63 | .text_color dd text_color |
||
64 | .max dd max |
||
65 | .text dd text |
||
66 | .mouse_variable dd mouse_variable |
||
67 | .flags dd flags+0 |
||
68 | .size dd size+0 |
||
69 | .pos dd pos+0 |
||
70 | .offset dd 0 |
||
71 | .cl_curs_x dd 0 |
||
72 | .cl_curs_y dd 0 |
||
73 | .shift dd 0 |
||
74 | .shift_old dd 0 |
||
75 | } |
||
76 | |||
77 | macro edit_boxes_set_sys_color start,end,color_table |
||
78 | { |
||
79 | mov edi,start |
||
80 | mov ecx,((end-start)/ed_struc_size) |
||
81 | mov esi,color_table |
||
82 | @@: |
||
83 | mov eax,dword [esi+36] |
||
84 | mov ebx,dword [esi+20] |
||
85 | push dword eax |
||
86 | pop dword ed_focus_border_color |
||
87 | shr bh,1 |
||
88 | shr bl,1 |
||
89 | shr ah,1 |
||
90 | shr al,1 |
||
91 | add ah,bh |
||
92 | add al,bl |
||
93 | ror eax,16 |
||
94 | ror ebx,16 |
||
95 | shr bl,1 |
||
96 | shr al,1 |
||
97 | add al,bl |
||
98 | ror eax,16 |
||
99 | mov dword ed_blur_border_color,eax |
||
100 | mov dword shift_color,eax |
||
101 | add edi,ed_struc_size |
||
102 | loop @b |
||
103 | } |
||
104 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
105 | ;Basic macros for use CheckBox ; |
||
106 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
107 | ch_struc_size=36 |
||
108 | ch_flag_en=10b ;элемент выбран |
||
109 | |||
110 | ch_left equ [edi] ;координата начала рисования по х |
||
111 | ch_top equ [edi+2] ;координата начала рисования по у |
||
112 | ch_text_margin equ [edi+4] ;=4 расстояние от прямоугольника чек бокса до надписи |
||
113 | ch_size equ [edi+8] ;12 размер квадрата чек бокса |
||
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] ;цвет текста |
||
117 | ch_text_ptr equ [edi+24] ;указатель на начало текстовой строки |
||
118 | ch_text_length equ [edi+28] |
||
119 | ch_flags equ [edi+32] ;флаги |
||
120 | |||
121 | struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags |
||
122 | { ;структура параметров для чек бокса |
||
123 | .left: dw left ;+0 положение по х |
||
124 | .top: dw top ;+2 положение по у |
||
125 | .ch_text_margin: dd ch_text_margin ;расстояние от прямоугольника чек бокса до надписи |
||
126 | .ch_size: dd ch_size ;размер квадрата чек бокса, для примера 12 |
||
127 | .color: dd color ;цвет внутри чекбокса |
||
128 | .border_color: dd border_color ;цвет рамки |
||
129 | .text_color: dd text_color ;цвет надписи |
||
130 | .text: dd text ;адрес в коде программы где расположен текст |
||
131 | .ch_text_length: dd ch_text_length ;длинна строки с символами |
||
132 | .flags: dd flags+0 ; флаги |
||
133 | } |
||
134 | |||
135 | macro check_boxes_set_sys_color start,end,color_table |
||
136 | { |
||
137 | mov edi,start |
||
138 | mov ecx,((end-start)/ch_struc_size) |
||
139 | mov esi,color_table |
||
140 | @@: |
||
141 | ; push dword [esi+20] ;цвет рабочей области окна |
||
142 | ; pop dword ch_color |
||
143 | push dword [esi+32] ;цвет текста в рабочей области окна |
||
144 | pop dword ch_text_color |
||
145 | push dword [esi+36] ;цвет графики в окне (разделительные линии и т.п.) |
||
146 | pop dword ch_border_color |
||
147 | add edi,ch_struc_size |
||
148 | loop @b |
||
149 | } |
||
150 | |||
151 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
152 | ;Basic macros for use OptionBox ; |
||
153 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
154 | |||
155 | struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags |
||
156 | { ;структура параметров для чек бокса |
||
157 | op_flag_en=10b |
||
158 | .option_group: dd point_gr |
||
159 | .left: dw left ;+0 ;положение по х |
||
160 | .top: dw top ;положение по у |
||
161 | .ch_text_margin: dd op_text_margin ;расстояние от прямоугольника чек бокса до надписи |
||
162 | .ch_size: dd op_size ;размер квадрата чек бокса, для примера 12 |
||
163 | .color: dd color ;цвет внутри чекбокса |
||
164 | .border_color: dd border_color ;цвет рамки |
||
165 | .text_color: dd text_color ;цвет надписи |
||
166 | .text: dd text ;адрес в коде программы где расположен текст |
||
167 | .ch_text_length: dd op_text_length ;длинна строки с символами |
||
168 | .flags: dd flags+0 ; флаги |
||
169 | } |
||
170 | |||
171 | struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ |
||
172 | col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ |
||
173 | info_capt_len,el_focus, p_scrol,on_press { |
||
174 | .data_info dd 0 |
||
175 | .info_size dw info_size |
||
176 | .info_max_count dd info_max_count |
||
177 | .style dd style |
||
178 | .data_nodes dd 0 |
||
179 | .data_img dd 0 |
||
180 | .img_cx dw img_cx |
||
181 | .img_cy dw img_cy |
||
182 | .data_img_sys dd 0 |
||
183 | .ch_tim dd 0 |
||
184 | .ls_tim dd 0 |
||
185 | .tim_undo dd 0 |
||
186 | .cur_pos dd 0 |
||
187 | .col_bkg dd col_bkg |
||
188 | .col_zag dd col_zag |
||
189 | .col_txt dd col_txt |
||
190 | .box_left dd box_l |
||
191 | .box_top dd box_t |
||
192 | .box_width dd box_w |
||
193 | .box_height dd box_h |
||
194 | .capt_cy dw capt_cy |
||
195 | .info_capt_offs dw info_capt_offs |
||
196 | .info_capt_len dw info_capt_len |
||
197 | .el_focus dd el_focus |
||
198 | .p_scrol dd p_scrol |
||
199 | rb 4 |
||
200 | .on_activate dd 0 |
||
201 | .on_press dd on_press |
||
202 | } |
||
203 | |||
204 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
205 | ;Basic macros for use TreeList ; |
||
206 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
||
207 | |||
208 | ;константы стиля |
||
209 | tl_key_no_edit equ 1b ;элемент нельзя редактировать на клавиатуре (изменять уровни, удалять) |
||
210 | tl_draw_par_line equ 10b ;рисовать линии к родительскому узлу |
||
211 | tl_list_box_mode equ 100b ;стиль не отображает уровни (как в ListBox все одного уровня) |
||
212 | |||
213 | ;константы для функций |
||
214 | tl_err_save_memory_size equ 10b ;не хватает памяти для сохранения элемента |
||
215 | tl_err_load_caption equ 1b ;в памяти нет заголовка 'tree' |
||
216 | tl_err_load_info_size equ 100b ;не совпадает размер информационной структуры при открытии |
||
217 | tl_load_mode_add equ 0x20000 ;опция считывания в режиме добавления информации |
||
218 | tl_save_load_heder_size equ 26 ;размер заголовка для записи/чтения элементов |