Rev 7919 | Rev 9485 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1199 | mario79 | 1 | ;***************************************************************************** |
2 | ; Box_Lib - library of graphical components |
||
8346 | IgorA | 3 | ; Copyright (C) KolibriOS team 2008-2020. All rights reserved. |
1199 | mario79 | 4 | ; |
5 | ; Authors: |
||
6 | ; Alexey Teplov aka |
||
7 | ; Marat Zakiyanov aka Mario79, aka Mario |
||
8 | ; Evtikhov Maxim aka Maxxxx32 |
||
9 | ; Eugene Grechnikov aka Diamond |
||
10 | ; hidnplayr |
||
1277 | IgorA | 11 | ; Igor Afanasiev aka IgorA |
1199 | mario79 | 12 | ;***************************************************************************** |
1032 | Lrz | 13 | |
14 | format MS COFF |
||
15 | |||
16 | public EXPORTS |
||
17 | |||
18 | section '.flat' code readable align 16 |
||
1101 | Lrz | 19 | include '../../../../macros.inc' |
1457 | IgorA | 20 | include '../../../../proc32.inc' |
6256 | IgorA | 21 | include '../../../../KOSfuncs.inc' |
1372 | IgorA | 22 | include 'box_lib.mac' ;macro which should make life easier :) |
4601 | mario79 | 23 | ;include '../../../../debug.inc' |
7919 | leency | 24 | include 'keys.inc' |
1372 | IgorA | 25 | |
1464 | IgorA | 26 | ;----------------------------------------------------------------------------- |
1489 | IgorA | 27 | mem.alloc dd ? ;функция для выделения памяти |
28 | mem.free dd ? ;функция для освобождения памяти |
||
29 | mem.realloc dd ? ;функция для перераспределения памяти |
||
30 | dll.load dd ? |
||
1464 | IgorA | 31 | |
1032 | Lrz | 32 | ;---------------------------------------------------- |
8346 | IgorA | 33 | include 'editbox.asm' ;editbox |
34 | include 'checkbox.asm' ;checkbox |
||
35 | include 'optionbox.asm' ;optionbox |
||
36 | include 'scrollbar.asm' ;scrollbar |
||
37 | include 'd_button.asm' ;dinamic_button |
||
38 | include 'menubar.asm' ;menubar |
||
39 | include 'filebrowser.asm' ;filebrowser |
||
40 | include 'tree_list.asm' ;tree_list, list_box |
||
41 | include 'pathshow.asm' ;pathshow |
||
42 | include 't_edit.asm' ;text_editor |
||
43 | include 'frame.asm' ;frame |
||
44 | include 'progressbar.asm' ;progressbar |
||
45 | include 'tooltip.asm' ;tooltip |
||
1032 | Lrz | 46 | ;-------------------------------------------------- |
47 | |||
1489 | IgorA | 48 | ;input: |
49 | ; eax = указатель на функцию выделения памяти |
||
50 | ; ebx = ... освобождения памяти |
||
51 | ; ecx = ... перераспределения памяти |
||
52 | ; edx = ... загрузки библиотеки (пока не используется) |
||
1457 | IgorA | 53 | align 16 |
1489 | IgorA | 54 | lib_init: |
55 | mov [mem.alloc], eax |
||
56 | mov [mem.free], ebx |
||
57 | mov [mem.realloc], ecx |
||
58 | mov [dll.load], edx |
||
1285 | IgorA | 59 | ret |
1068 | Lrz | 60 | |
1277 | IgorA | 61 | |
2317 | IgorA | 62 | align 4 |
63 | proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dword, box_h:dword,\ |
||
7919 | leency | 64 | col_0:dword, col_1:dword, col_2:dword |
2317 | IgorA | 65 | |
8346 | IgorA | 66 | mov esi,[col_1] |
2317 | IgorA | 67 | and esi,111111101111111011111110b |
68 | |||
7036 | IgorA | 69 | mov eax,SF_DRAW_RECT |
2317 | IgorA | 70 | ;bottom line |
8346 | IgorA | 71 | mov edx,[col_2] |
72 | mov ebx,[box_l] |
||
2317 | IgorA | 73 | shl ebx,16 |
8346 | IgorA | 74 | add ebx,[box_w] |
2317 | IgorA | 75 | inc ebx ;для заливки диагональных пикселей |
8346 | IgorA | 76 | mov ecx,[box_t] |
77 | add ecx,[box_h] |
||
2317 | IgorA | 78 | shl ecx,16 |
79 | inc ecx |
||
80 | |||
81 | mov edi,3 ;for cycle |
||
8346 | IgorA | 82 | @@: |
2317 | IgorA | 83 | ;calculate colors |
84 | and edx,111111101111111011111110b |
||
85 | add edx,esi |
||
86 | shr edx,1 |
||
87 | ;line move up and ->...<- |
||
88 | sub ecx,1 shl 16 ;move up |
||
89 | add ebx,1 shl 16 ;->... |
||
90 | sub ebx,2 ;...<- |
||
91 | ;draw line |
||
92 | int 0x40 |
||
93 | dec edi |
||
94 | jnz @b |
||
95 | |||
96 | ;right line |
||
8346 | IgorA | 97 | mov edx,[col_2] |
98 | mov ebx,[box_l] |
||
99 | add ebx,[box_w] |
||
2317 | IgorA | 100 | shl ebx,16 |
101 | inc ebx |
||
8346 | IgorA | 102 | mov ecx,[box_t] |
2317 | IgorA | 103 | shl ecx,16 |
8346 | IgorA | 104 | add ecx,[box_h] |
2317 | IgorA | 105 | |
106 | mov edi,3 ;for cycle |
||
8346 | IgorA | 107 | @@: |
2317 | IgorA | 108 | ;calculate colors |
109 | and edx,111111101111111011111110b |
||
110 | add edx,esi |
||
111 | shr edx,1 |
||
112 | ;line move left and ... |
||
113 | sub ebx,1 shl 16 ;move left |
||
114 | add ecx,1 shl 16 |
||
115 | sub ecx,2 |
||
116 | ;draw line |
||
117 | int 0x40 |
||
118 | dec edi |
||
119 | jnz @b |
||
120 | |||
121 | ;top line |
||
8346 | IgorA | 122 | mov edx,[col_0] |
123 | mov ebx,[box_l] |
||
2317 | IgorA | 124 | shl ebx,16 |
8346 | IgorA | 125 | add ebx,[box_w] |
126 | mov ecx,[box_t] |
||
2317 | IgorA | 127 | shl ecx,16 |
128 | inc ecx |
||
129 | |||
130 | mov edi,3 ;for cycle |
||
7919 | leency | 131 | @@: |
2317 | IgorA | 132 | ;calculate colors |
133 | and edx,111111101111111011111110b |
||
134 | add edx,esi |
||
135 | shr edx,1 |
||
136 | ;line move down and ->...<- |
||
137 | add ecx,1 shl 16 ;move down |
||
138 | add ebx,1 shl 16 ;->... |
||
139 | sub ebx,2 ;...<- |
||
140 | ;draw line |
||
141 | int 0x40 |
||
142 | dec edi |
||
143 | jnz @b |
||
144 | |||
145 | ;left line |
||
8346 | IgorA | 146 | mov edx,[col_0] |
147 | mov ebx,[box_l] |
||
2317 | IgorA | 148 | shl ebx,16 |
149 | inc ebx |
||
8346 | IgorA | 150 | mov ecx,[box_t] |
2317 | IgorA | 151 | shl ecx,16 |
8346 | IgorA | 152 | add ecx,[box_h] |
2317 | IgorA | 153 | |
154 | mov edi,3 ;for cycle |
||
8346 | IgorA | 155 | @@: |
2317 | IgorA | 156 | ;calculate colors |
157 | and edx,111111101111111011111110b |
||
158 | add edx,esi |
||
159 | shr edx,1 |
||
160 | ;line move left and ... |
||
161 | add ebx,1 shl 16 ;move left |
||
162 | add ecx,1 shl 16 |
||
163 | sub ecx,2 |
||
164 | ;draw line |
||
165 | int 0x40 |
||
166 | dec edi |
||
167 | jnz @b |
||
168 | |||
169 | ret |
||
170 | endp |
||
171 | |||
172 | |||
1032 | Lrz | 173 | align 16 |
174 | EXPORTS: |
||
175 | |||
176 | |||
1489 | IgorA | 177 | dd sz_init, lib_init |
1433 | mario79 | 178 | dd sz_version, 0x00000001 |
1060 | hidnplayr | 179 | |
1433 | mario79 | 180 | dd sz_edit_box, edit_box |
181 | dd sz_edit_box_key, edit_box_key |
||
182 | dd sz_edit_box_mouse, edit_box_mouse |
||
1619 | IgorA | 183 | dd sz_edit_box_set_text, edit_box_set_text |
1433 | mario79 | 184 | dd szVersion_ed, 0x00000001 |
1060 | hidnplayr | 185 | |
8346 | IgorA | 186 | dd sz_init_checkbox, init_checkbox |
187 | dd sz_check_box_draw, check_box_draw |
||
188 | dd sz_check_box_mouse, check_box_mouse |
||
1682 | lrz | 189 | dd szVersion_ch2, 0x00000002 |
190 | |||
1433 | mario79 | 191 | dd sz_option_box_draw, option_box_draw |
192 | dd sz_option_box_mouse, option_box_mouse |
||
193 | dd szVersion_op, 0x00000001 |
||
1068 | Lrz | 194 | |
1433 | mario79 | 195 | dd sz_Scrollbar_ver_draw, scroll_bar_vertical.draw |
196 | dd sz_Scrollbar_ver_mouse, scroll_bar_vertical.mouse |
||
197 | dd sz_Scrollbar_hor_draw, scroll_bar_horizontal.draw |
||
198 | dd sz_Scrollbar_hor_mouse, scroll_bar_horizontal.mouse |
||
199 | dd szVersion_scrollbar, 0x00010001 |
||
1068 | Lrz | 200 | |
1433 | mario79 | 201 | dd sz_Dbutton_draw, dinamic_button.draw |
202 | dd sz_Dbutton_mouse, dinamic_button.mouse |
||
203 | dd szVersion_dbutton, 0x00010001 |
||
1068 | Lrz | 204 | |
1433 | mario79 | 205 | dd sz_Menu_bar_draw, menu_bar.draw |
206 | dd sz_Menu_bar_mouse, menu_bar.mouse |
||
207 | dd sz_Menu_bar_activate, menu_bar.activate |
||
208 | dd szVersion_menu_bar, 0x00010002 |
||
1199 | mario79 | 209 | |
1433 | mario79 | 210 | dd sz_FileBrowser_draw, fb_draw_panel |
211 | dd sz_FileBrowser_mouse, fb_mouse |
||
212 | dd sz_FileBrowser_key, fb_key |
||
213 | dd szVersion_FileBrowser, 0x00010001 |
||
1068 | Lrz | 214 | |
1433 | mario79 | 215 | dd sz_tl_data_init, tl_data_init |
216 | dd sz_tl_data_clear, tl_data_clear |
||
217 | dd sz_tl_info_clear, tl_info_clear |
||
218 | dd sz_tl_key, tl_key |
||
219 | dd sz_tl_mouse, tl_mouse |
||
220 | dd sz_tl_draw, tl_draw |
||
221 | dd sz_tl_info_undo, tl_info_undo |
||
222 | dd sz_tl_info_redo, tl_info_redo |
||
1457 | IgorA | 223 | dd sz_tl_node_add, tl_node_add |
1433 | mario79 | 224 | dd sz_tl_node_set_data, tl_node_set_data |
225 | dd sz_tl_node_get_data, tl_node_get_data |
||
226 | dd sz_tl_node_delete, tl_node_delete |
||
227 | dd sz_tl_cur_beg, tl_cur_beg |
||
1457 | IgorA | 228 | dd sz_tl_cur_next, tl_cur_next |
229 | dd sz_tl_cur_perv, tl_cur_perv |
||
1433 | mario79 | 230 | dd sz_tl_node_close_open, tl_node_close_open |
231 | dd sz_tl_node_lev_inc, tl_node_lev_inc |
||
232 | dd sz_tl_node_lev_dec, tl_node_lev_dec |
||
233 | dd sz_tl_node_move_up, tl_node_move_up |
||
234 | dd sz_tl_node_move_down, tl_node_move_down |
||
235 | dd sz_tl_node_poi_get_info, tl_node_poi_get_info |
||
236 | dd sz_tl_node_poi_get_next_info, tl_node_poi_get_next_info |
||
237 | dd sz_tl_node_poi_get_data, tl_node_poi_get_data |
||
1457 | IgorA | 238 | dd sz_tl_save_mem, tl_save_mem |
239 | dd sz_tl_load_mem, tl_load_mem |
||
1433 | mario79 | 240 | dd sz_tl_get_mem_size, tl_get_mem_size |
241 | dd sz_tl_version_tree_list, 0x00000001 |
||
1068 | Lrz | 242 | |
1433 | mario79 | 243 | dd sz_PathShow_prepare, path_show.prepare |
244 | dd sz_PathShow_draw, path_show.draw |
||
245 | dd szVersion_path_show, 0x00010001 |
||
1457 | IgorA | 246 | |
247 | dd sz_ted_but_sumb_upper, ted_but_sumb_upper |
||
248 | dd sz_ted_but_sumb_lover, ted_but_sumb_lover |
||
4308 | IgorA | 249 | dd sz_ted_but_convert_by_table, ted_but_convert_by_table |
1457 | IgorA | 250 | dd sz_ted_can_save, ted_can_save |
251 | dd sz_ted_clear, ted_clear |
||
252 | dd sz_ted_delete, ted_delete |
||
253 | dd sz_ted_draw, ted_draw |
||
254 | dd sz_ted_init, ted_init |
||
1458 | IgorA | 255 | dd sz_ted_init_scroll_bars, ted_init_scroll_bars |
1457 | IgorA | 256 | dd sz_ted_init_syntax_file, ted_init_syntax_file |
257 | dd sz_ted_is_select, ted_is_select |
||
258 | dd sz_ted_key, ted_key |
||
259 | dd sz_ted_mouse, ted_mouse |
||
260 | dd sz_ted_open_file, ted_open_file |
||
4308 | IgorA | 261 | dd sz_ted_save_file, ted_save_file |
1457 | IgorA | 262 | dd sz_ted_text_add, ted_text_add |
263 | dd sz_ted_but_select_word, ted_but_select_word |
||
264 | dd sz_ted_but_cut, ted_but_cut |
||
265 | dd sz_ted_but_copy, ted_but_copy |
||
266 | dd sz_ted_but_paste, ted_but_paste |
||
267 | dd sz_ted_but_undo, ted_but_undo |
||
268 | dd sz_ted_but_redo, ted_but_redo |
||
269 | dd sz_ted_but_reverse, ted_but_reverse |
||
7576 | IgorA | 270 | dd sz_ted_but_find, ted_but_find |
271 | dd sz_ted_but_replace, ted_but_replace |
||
272 | dd sz_ted_text_colored, ted_text_colored |
||
7579 | IgorA | 273 | dd sz_ted_go_to_position, ted_go_to_position |
274 | dd sz_ted_version, 6 |
||
1457 | IgorA | 275 | |
3470 | mario79 | 276 | dd sz_Frame_draw, frame.draw |
277 | dd szVersion_frame, 0x00010001 |
||
278 | |||
6256 | IgorA | 279 | dd sz_progressbar_draw, progressbar_draw |
3478 | 0CodErr | 280 | dd sz_progressbar_progress, progressbar_progress |
281 | |||
6689 | siemargl | 282 | dd sz_tooltip_init, tooltip_init |
283 | dd sz_tooltip_delete, tooltip_delete |
||
284 | dd sz_tooltip_test_show, tooltip_test_show |
||
285 | dd sz_tooltip_mouse, tooltip_mouse |
||
286 | dd sz_get_font_size, get_font_size |
||
287 | |||
1433 | mario79 | 288 | dd 0,0 |
1068 | Lrz | 289 | |
1277 | IgorA | 290 | |
1457 | IgorA | 291 | sz_init db 'lib_init',0 |
1433 | mario79 | 292 | sz_version db 'version',0 |
1277 | IgorA | 293 | |
1433 | mario79 | 294 | sz_edit_box db 'edit_box',0 |
1457 | IgorA | 295 | sz_edit_box_key db 'edit_box_key',0 |
1433 | mario79 | 296 | sz_edit_box_mouse db 'edit_box_mouse',0 |
1619 | IgorA | 297 | sz_edit_box_set_text db 'edit_box_set_text',0 |
1433 | mario79 | 298 | szVersion_ed db 'version_ed',0 |
1068 | Lrz | 299 | |
8346 | IgorA | 300 | sz_init_checkbox db 'init_checkbox2',0 |
301 | sz_check_box_draw db 'check_box_draw2',0 |
||
302 | sz_check_box_mouse db 'check_box_mouse2',0 |
||
1682 | lrz | 303 | szVersion_ch2 db 'version_ch2',0 |
304 | |||
1433 | mario79 | 305 | sz_option_box_draw db 'option_box_draw',0 |
306 | sz_option_box_mouse db 'option_box_mouse',0 |
||
307 | szVersion_op db 'version_op',0 |
||
1032 | Lrz | 308 | |
1433 | mario79 | 309 | sz_Scrollbar_ver_draw db 'scrollbar_v_draw',0 |
310 | sz_Scrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
||
311 | sz_Scrollbar_hor_draw db 'scrollbar_h_draw',0 |
||
312 | sz_Scrollbar_hor_mouse db 'scrollbar_h_mouse',0 |
||
313 | szVersion_scrollbar db 'version_scrollbar',0 |
||
1068 | Lrz | 314 | |
1277 | IgorA | 315 | sz_Dbutton_draw db 'dbutton_draw',0 |
316 | sz_Dbutton_mouse db 'dbutton_mouse',0 |
||
317 | szVersion_dbutton db 'version_dbutton',0 |
||
1068 | Lrz | 318 | |
1277 | IgorA | 319 | sz_Menu_bar_draw db 'menu_bar_draw',0 |
320 | sz_Menu_bar_mouse db 'menu_bar_mouse',0 |
||
1457 | IgorA | 321 | sz_Menu_bar_activate db 'menu_bar_activate',0 |
1277 | IgorA | 322 | szVersion_menu_bar db 'version_menu_bar',0 |
1068 | Lrz | 323 | |
1277 | IgorA | 324 | sz_FileBrowser_draw db 'FileBrowser_draw',0 |
325 | sz_FileBrowser_mouse db 'FileBrowser_mouse',0 |
||
326 | sz_FileBrowser_key db 'FileBrowser_key',0 |
||
327 | szVersion_FileBrowser db 'version_FileBrowser',0 |
||
328 | |||
1457 | IgorA | 329 | sz_tl_data_init db 'tl_data_init',0 |
1433 | mario79 | 330 | sz_tl_data_clear db 'tl_data_clear',0 |
331 | sz_tl_info_clear db 'tl_info_clear',0 |
||
332 | sz_tl_key db 'tl_key',0 |
||
333 | sz_tl_mouse db 'tl_mouse',0 |
||
334 | sz_tl_draw db 'tl_draw',0 |
||
1457 | IgorA | 335 | sz_tl_info_undo db 'tl_info_undo',0 |
336 | sz_tl_info_redo db 'tl_info_redo',0 |
||
1433 | mario79 | 337 | sz_tl_node_add db 'tl_node_add',0 |
338 | sz_tl_node_set_data db 'tl_node_set_data',0 |
||
339 | sz_tl_node_get_data db 'tl_node_get_data',0 |
||
340 | sz_tl_node_delete db 'tl_node_delete',0 |
||
341 | sz_tl_cur_beg db 'tl_cur_beg',0 |
||
342 | sz_tl_cur_next db 'tl_cur_next',0 |
||
343 | sz_tl_cur_perv db 'tl_cur_perv',0 |
||
344 | sz_tl_node_close_open db 'tl_node_close_open',0 |
||
345 | sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
||
346 | sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
||
347 | sz_tl_node_move_up db 'tl_node_move_up',0 |
||
348 | sz_tl_node_move_down db 'tl_node_move_down',0 |
||
1457 | IgorA | 349 | sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0 |
1433 | mario79 | 350 | sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0 |
1457 | IgorA | 351 | sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 |
1433 | mario79 | 352 | sz_tl_save_mem db 'tl_save_mem',0 |
353 | sz_tl_load_mem db 'tl_load_mem',0 |
||
354 | sz_tl_get_mem_size db 'tl_get_mem_size',0 |
||
1457 | IgorA | 355 | sz_tl_version_tree_list db 'version_tree_list',0 |
1433 | mario79 | 356 | |
357 | sz_PathShow_prepare db 'PathShow_prepare',0 |
||
358 | sz_PathShow_draw db 'PathShow_draw',0 |
||
359 | szVersion_path_show db 'version_PathShow',0 |
||
1457 | IgorA | 360 | |
361 | sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0 |
||
362 | sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0 |
||
4308 | IgorA | 363 | sz_ted_but_convert_by_table db 'ted_but_convert_by_table',0 |
1457 | IgorA | 364 | sz_ted_can_save db 'ted_can_save',0 |
365 | sz_ted_clear db 'ted_clear',0 |
||
366 | sz_ted_delete db 'ted_delete',0 |
||
367 | sz_ted_draw db 'ted_draw',0 |
||
368 | sz_ted_init db 'ted_init',0 |
||
1458 | IgorA | 369 | sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0 |
1457 | IgorA | 370 | sz_ted_init_syntax_file db 'ted_init_syntax_file',0 |
371 | sz_ted_is_select db 'ted_is_select',0 |
||
372 | sz_ted_key db 'ted_key',0 |
||
373 | sz_ted_mouse db 'ted_mouse',0 |
||
374 | sz_ted_open_file db 'ted_open_file',0 |
||
4308 | IgorA | 375 | sz_ted_save_file db 'ted_save_file',0 |
1457 | IgorA | 376 | sz_ted_text_add db 'ted_text_add',0 |
377 | sz_ted_but_select_word db 'ted_but_select_word',0 |
||
378 | sz_ted_but_cut db 'ted_but_cut',0 |
||
379 | sz_ted_but_copy db 'ted_but_copy',0 |
||
380 | sz_ted_but_paste db 'ted_but_paste',0 |
||
381 | sz_ted_but_undo db 'ted_but_undo',0 |
||
382 | sz_ted_but_redo db 'ted_but_redo',0 |
||
383 | sz_ted_but_reverse db 'ted_but_reverse',0 |
||
7919 | leency | 384 | sz_ted_but_find db 'ted_but_find',0 |
7576 | IgorA | 385 | sz_ted_but_replace db 'ted_but_replace',0 |
1457 | IgorA | 386 | sz_ted_text_colored db 'ted_text_colored',0 |
7579 | IgorA | 387 | sz_ted_go_to_position db 'ted_go_to_position',0 |
3470 | mario79 | 388 | sz_ted_version db 'version_text_edit',0 |
389 | |||
390 | sz_Frame_draw db 'frame_draw',0 |
||
6256 | IgorA | 391 | szVersion_frame db 'version_frame',0 |
3478 | 0CodErr | 392 | |
6256 | IgorA | 393 | sz_progressbar_draw db 'progressbar_draw', 0 |
6689 | siemargl | 394 | sz_progressbar_progress db 'progressbar_progress', 0 |
395 | |||
7919 | leency | 396 | sz_tooltip_init db 'tooltip_init', 0 |
6689 | siemargl | 397 | sz_tooltip_delete db 'tooltip_delete', 0 |
398 | sz_tooltip_test_show db 'tooltip_test_show', 0 |
||
399 | sz_tooltip_mouse db 'tooltip_mouse', 0 |
||
400 | sz_get_font_size db 'get_font_size', 0- |