Subversion Repositories Kolibri OS

Rev

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