Subversion Repositories Kolibri OS

Rev

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