Subversion Repositories Kolibri OS

Rev

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