box_lib.obj: clear code

git-svn-id: svn://kolibrios.org@8346 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
IgorA
2020-12-08 21:01:35 +00:00
parent a327d88cb7
commit 5f41a75e27
30 changed files with 375 additions and 2091 deletions

View File

@@ -1,7 +0,0 @@
include 'scrollbar.mac' ;macro implements scrollbar
include 'd_button.mac' ;macro implements dinamic_button
include 'menubar.mac' ;macro implements menubar
include 'filebrowser.mac' ;macro implements filebrowser
include 'pathshow.mac' ;macro implements pathshow
include 'frame.mac' ;macro implements frame
include 'progressbar.mac' ;macro implements progressbar

View File

@@ -1,6 +1,6 @@
;*****************************************************************************
; Box_Lib - library of graphical components
; Copyright (C) KolibriOS team 2008-2016. All rights reserved.
; Copyright (C) KolibriOS team 2008-2020. All rights reserved.
;
; Authors:
; Alexey Teplov aka <Lrz>
@@ -19,7 +19,6 @@ section '.flat' code readable align 16
include '../../../../macros.inc'
include '../../../../proc32.inc'
include '../../../../KOSfuncs.inc'
include 'bl_sys.mac'
include 'box_lib.mac' ;macro which should make life easier :)
;include '../../../../debug.inc'
include 'keys.inc'
@@ -31,71 +30,20 @@ mem.realloc dd ? ;
dll.load dd ?
;----------------------------------------------------
;EditBox
include 'editbox.asm' ;editbox
;----------------------------------------------------
;CheckBox
include 'checkbox.asm' ;checkbox
include 'editbox.asm' ;editbox
include 'checkbox.asm' ;checkbox
include 'optionbox.asm' ;optionbox
include 'scrollbar.asm' ;scrollbar
include 'd_button.asm' ;dinamic_button
include 'menubar.asm' ;menubar
include 'filebrowser.asm' ;filebrowser
include 'tree_list.asm' ;tree_list, list_box
include 'pathshow.asm' ;pathshow
include 't_edit.asm' ;text_editor
include 'frame.asm' ;frame
include 'progressbar.asm' ;progressbar
include 'tooltip.asm' ;tooltip
;--------------------------------------------------
;radiobutton Group
include 'optionbox.asm' ;optionbox
;--------------------------------------------------
;scrollbar Group
;--------------------------------------------------
align 16
use_scroll_bar
align 16
use_scroll_bar_vertical
align 16
use_scroll_bar_horizontal
;--------------------------------------------------
;dinamic button Group
;--------------------------------------------------
align 16
use_dinamic_button
;--------------------------------------------------
;menubar Group
;--------------------------------------------------
align 16
use_menu_bar
;--------------------------------------------------
;filebrowser Group
;--------------------------------------------------
align 16
use_file_browser
;--------------------------------------------------
;tree list
include 'tree_list.asm' ;tree_list, list_box
;--------------------------------------------------
;PathShow Group
;--------------------------------------------------
align 16
use_path_show
;--------------------------------------------------
;text editor
include 't_edit.asm' ;text_editor
;--------------------------------------------------
;Frame Group
;--------------------------------------------------
align 16
use_frame
;--------------------------------------------------
;ProgressBar
;--------------------------------------------------
use_progressbar
;--------------------------------------------------
include 'tooltip.asm' ;tooltip
;input:
; eax = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -115,23 +63,23 @@ align 4
proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dword, box_h:dword,\
col_0:dword, col_1:dword, col_2:dword
mov esi,dword[col_1]
mov esi,[col_1]
and esi,111111101111111011111110b
mov eax,SF_DRAW_RECT
;bottom line
mov edx,dword[col_2]
mov ebx,dword[box_l]
mov edx,[col_2]
mov ebx,[box_l]
shl ebx,16
add ebx,dword[box_w]
add ebx,[box_w]
inc ebx ;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ecx,dword[box_t]
add ecx,dword[box_h]
mov ecx,[box_t]
add ecx,[box_h]
shl ecx,16
inc ecx
mov edi,3 ;for cycle
@@:
@@:
;calculate colors
and edx,111111101111111011111110b
add edx,esi
@@ -146,17 +94,17 @@ proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dwo
jnz @b
;right line
mov edx,dword[col_2]
mov ebx,dword[box_l]
add ebx,dword[box_w]
mov edx,[col_2]
mov ebx,[box_l]
add ebx,[box_w]
shl ebx,16
inc ebx
mov ecx,dword[box_t]
mov ecx,[box_t]
shl ecx,16
add ecx,dword[box_h]
add ecx,[box_h]
mov edi,3 ;for cycle
@@:
@@:
;calculate colors
and edx,111111101111111011111110b
add edx,esi
@@ -171,11 +119,11 @@ proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dwo
jnz @b
;top line
mov edx,dword[col_0]
mov ebx,dword[box_l]
mov edx,[col_0]
mov ebx,[box_l]
shl ebx,16
add ebx,dword[box_w]
mov ecx,dword[box_t]
add ebx,[box_w]
mov ecx,[box_t]
shl ecx,16
inc ecx
@@ -195,16 +143,16 @@ proc draw_edge uses eax ebx ecx edx edi esi, box_l:dword, box_t:dword, box_w:dwo
jnz @b
;left line
mov edx,dword[col_0]
mov ebx,dword[box_l]
mov edx,[col_0]
mov ebx,[box_l]
shl ebx,16
inc ebx
mov ecx,dword[box_t]
mov ecx,[box_t]
shl ecx,16
add ecx,dword[box_h]
add ecx,[box_h]
mov edi,3 ;for cycle
@@:
@@:
;calculate colors
and edx,111111101111111011111110b
add edx,esi
@@ -235,9 +183,9 @@ dd sz_edit_box_mouse, edit_box_mouse
dd sz_edit_box_set_text, edit_box_set_text
dd szVersion_ed, 0x00000001
dd sz_init_checkbox2, init_checkbox2
dd sz_check_box_draw2, check_box_draw2
dd sz_check_box_mouse2, check_box_mouse2
dd sz_init_checkbox, init_checkbox
dd sz_check_box_draw, check_box_draw
dd sz_check_box_mouse, check_box_mouse
dd szVersion_ch2, 0x00000002
dd sz_option_box_draw, option_box_draw
@@ -349,9 +297,9 @@ sz_edit_box_mouse db 'edit_box_mouse',0
sz_edit_box_set_text db 'edit_box_set_text',0
szVersion_ed db 'version_ed',0
sz_init_checkbox2 db 'init_checkbox2',0
sz_check_box_draw2 db 'check_box_draw2',0
sz_check_box_mouse2 db 'check_box_mouse2',0
sz_init_checkbox db 'init_checkbox2',0
sz_check_box_draw db 'check_box_draw2',0
sz_check_box_mouse db 'check_box_mouse2',0
szVersion_ch2 db 'version_ch2',0
sz_option_box_draw db 'option_box_draw',0

View File

@@ -108,30 +108,22 @@ macro edit_boxes_set_sys_color start,end,color_table
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Basic macros for use CheckBox ;
;Last change 17.01.2013 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ch_text_margin equ [edi+8] ;=4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ch_color equ [edi+12] ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
ch_border_color equ [edi+16] ; or [edi+4] ;梥<><><E0A0AC> checkbox <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A0AC><EFBFBD><EFBFBD><EFBFBD>⥫쭮
ch_text_color equ [edi+20] ;[edi+4] ;梥<><><E2A5AA><EFBFBD>
ch_text_ptr equ [edi+24] ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD>
ch_flags equ [edi+28] ;䫠<><E4ABA0>
ch_struc_size=36 ;ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ch_flag_en=10b ;䫠<> <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>.
ch_flag_top=0x0 ;䫠<> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. 3-<2D> <20><><EFBFBD>
ch_flag_middle=100b ;䫠<> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> <20><><E6A5AD><EFBFBD> <20>.<2E>. 4-<2D> <20><><EFBFBD>.
ch_flag_bottom=1000b ;䫠<> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E2A5AA><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><><><EFBFBD><E7A0AD> <20><EFBFBD><E0A8AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<2D><> <20> 4-<2D><> <20><><EFBFBD><EFBFBD>
2ch_left_s equ [ebp] ;<3B><><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><> <20>
2ch_top_s equ [ebp+4] ;<3B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><> <20>
2ch_text_margin equ [ebp+8] ;=4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2ch_color equ [ebp+12] ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
2ch_border_color equ [ebp+16] ; or [edi+4] ;梥<><><E0A0AC> checkbox <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A0AC><EFBFBD><EFBFBD><EFBFBD>⥫쭮
2ch_text_color equ [ebp+20] ;[edi+4] ;梥<><><E2A5AA><EFBFBD>
2ch_text_ptr equ [ebp+24] ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD>
2ch_flags equ [ebp+28] ;䫠<><E4ABA0>
2ch_sz_str equ [ebp+32] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ch_left_s equ [ebp] ;<3B><><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><> <20>
ch_top_s equ [ebp+4] ;<3B><><EFBFBD><EFBFBD><E0A4A8><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E1AEA2><EFBFBD><EFBFBD> <20><> <20>
ch_text_margin equ [ebp+8] ;=4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>אַ㣮<EFACAE><EFBFBD><ECADA8><20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ch_color equ [ebp+12] ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
ch_border_color equ [ebp+16] ; or [edi+4] ;梥<><><E0A0AC> checkbox <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A0AC><EFBFBD><EFBFBD><EFBFBD>⥫쭮
ch_text_color equ [ebp+20] ;[edi+4] ;梥<><><E2A5AA><EFBFBD>
ch_text_ptr equ [ebp+24] ;㪠<><E3AAA0><EFBFBD> <20><> <20><><EFBFBD><><EFBFBD><E2AEA2> <20><><EFBFBD>
ch_flags equ [ebp+28] ;䫠<><E4ABA0>
ch_sz_str equ [ebp+32] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,flags
{ ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>
@@ -143,7 +135,7 @@ struc check_box2 left_s,top_s,ch_text_margin,color,border_color,text_color,text,
.text_color dd text_color ;梥<> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.text dd text ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><><E2A5AA>
.flags dd flags+0 ;䫠<><E4ABA0>
.size_of_str dd 0x0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
.size_of_str dd 0 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><E6A8A0><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>ન 饫窠 <20><><20><><EFBFBD> <20><><EFBFBD><E3AFAF> checkboxes.
@@ -211,9 +203,9 @@ macro check_boxes_set_sys_color2 start,end,color_table
@@:
push dword [esi+32] ;梥<><><E2A5AA><EFBFBD> <20><><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
or dword [esp],0x80000000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><E5AEA4><EFBFBD> <20><><EFBFBD> <20><EFBFBD><EBA2AE> ASCIIZ <20><>
pop dword 2ch_text_color
pop dword ch_text_color
push dword [esi+36] ;梥<> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (ࠧ<><E0A0A7><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20>.<2E>.)
pop dword 2ch_border_color
pop dword ch_border_color
add ebp,ch_struc_size
loop @b
}

View File

@@ -1,15 +1,15 @@
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 07.12.2016
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 08.12.2020
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 13.02.2009 <Lrz> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPL2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;Checkbox
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
align 16
init_checkbox2:
init_checkbox:
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
pushad
mov ebp,dword [esp+36] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,dword 2ch_text_margin ;eax=0
mov esi,dword 2ch_text_ptr ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebx,dword ch_text_margin ;eax=0
mov esi,dword ch_text_ptr ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
lodsb ;<3B> al <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
test al,al
jz .ex_loop
@@ -20,27 +20,27 @@ init_checkbox2:
jnz @b
.ex_loop:
mov dword 2ch_sz_str,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or dword 2ch_text_color,0x80000000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ASCIIZ-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov dword ch_sz_str,ebx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
or dword ch_text_color,0x80000000 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ASCIIZ-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
popad
ret 4
align 16
check_box_draw2:
check_box_draw:
pushad ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ebp,dword [esp+36] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mcall SF_DRAW_RECT,2ch_left_s,2ch_top_s,2ch_border_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mcall SF_DRAW_RECT,ch_left_s,ch_top_s,ch_border_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov edx,dword 2ch_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
mov edx,dword ch_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
add ebx,1 shl 16 - 2
add ecx,1 shl 16 - 2
mcall ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
test dword 2ch_flags,2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> CF
test dword ch_flags,2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> CF
jz @f ;<3B> <20><><EFBFBD><EFBFBD> CF=1, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> @@
call check_box_draw_ch2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
call check_box_draw_ch ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
@@:
;----------------------------
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -55,44 +55,44 @@ check_box_draw2:
; add eax,dword ch_top_s ;c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>. <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ebx <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><>
mov ebx,dword 2ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov eax,dword 2ch_top_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (y shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,dword ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov eax,dword ch_top_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (y shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ecx,eax
add ebx,dword 2ch_text_margin ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add ebx,dword ch_text_margin ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
shr eax,16 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 65536) <20> ax <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
shl ebx,16 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 16 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 65536)
sub ecx,8 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
test dword 2ch_flags,ch_flag_bottom ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
test dword ch_flags,ch_flag_bottom ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jnz .bottom
test dword 2ch_flags,ch_flag_middle ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
test dword ch_flags,ch_flag_middle ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
jz .top ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> top
shr cx,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 2
.bottom:
add ax,cx
.top:
add ebx,dword 2ch_left_s ;c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>. <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ebx <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
add ebx,dword ch_left_s ;c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>. <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ebx <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
mov bx,ax
;ebx <20> shl 16 +y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ecx,dword 2ch_text_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + flags
mov edx,dword 2ch_text_ptr ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mov ecx,dword ch_text_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + flags
mov edx,dword ch_text_ptr ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mcall SF_DRAW_TEXT
popad ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
ret 4 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (4 <20><><EFBFBD><EFBFBD><EFBFBD>)
check_box_clear_ch2: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov edx,dword 2ch_color ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
check_box_clear_ch: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov edx,dword ch_color ;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
jmp @f ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> @@
check_box_draw_ch2: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
mov edx,dword 2ch_border_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
check_box_draw_ch: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
mov edx,dword ch_border_color ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
@@:
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
mov ebx,dword 2ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
mov ecx,dword 2ch_top_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Y shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y
mov ebx,dword ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
mov ecx,dword ch_top_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Y shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Y
add ebx,2 shl 16 - 4 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (X+2) shl 16 +<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (<28>-2)
add ecx,2 shl 16 - 4 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Y+2) shl 16 +<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (Y-2)
mcall SF_DRAW_RECT ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox
@@ -104,7 +104,7 @@ check_box_draw_ch2: ;
;<3B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> checkbox <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
align 16
check_box_mouse2: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
check_box_mouse: ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
pushad
mov ebp,dword [esp+36] ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
mcall SF_MOUSE_GET,SSF_BUTTON ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.
@@ -115,7 +115,7 @@ pushad
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
;<3B><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eax x shl 16 + y
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> Y
mov ecx,dword 2ch_top_s ;y shl 16 +<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> y
mov ecx,dword ch_top_s ;y shl 16 +<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> y
mov ebx,ecx
shr ebx,16 ;bx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> y
cmp ax,bx
@@ -127,24 +127,24 @@ pushad
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
shr eax,16 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>.<2E>. <20> ax
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>
mov ecx,dword 2ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ecx,dword ch_left_s ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> shl 16 + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
mov ebx,ecx
shr ebx,16 ;bx = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X
cmp ax,bx
jb .check_box_mouse_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> X <20> <20><><EFBFBD><EFBFBD><EFBFBD>
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> X
add bx,cx ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> x <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20>
add bx,word 2ch_sz_str ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add bx,word ch_sz_str ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cmp ax,bx
ja .check_box_mouse_end ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
;<3B><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
btc dword 2ch_flags,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D><> <20><><EFBFBD><EFBFBD> <20> cf <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
btc dword ch_flags,1 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D><> <20><><EFBFBD><EFBFBD> <20> cf <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
jnc .enable_box ;<3B><><EFBFBD><EFBFBD> CF=1 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
push dword .check_box_mouse_end ;<3B><><EFBFBD><EFBFBD><EFBFBD> -<2D><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> check_box_clear_ch <20><> <20><><EFBFBD><EFBFBD><EFBFBD> check_box_mouse_end
jmp check_box_clear_ch2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
jmp check_box_clear_ch ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20>.<2E>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
.enable_box:
call check_box_draw_ch2 ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
call check_box_draw_ch ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
.check_box_mouse_end:
popad ;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
ret 4 ;<3B><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>

View File

@@ -31,8 +31,7 @@ popa
ret 4
}
;*****************************************************************************
macro use_dinamic_button
{
align 16
dinamic_button:
db_type equ [edi]
db_size_x equ [edi+4]
@@ -89,7 +88,7 @@ dinamic_button_exit
push edi
mov edi,db_palette_raw
mcall 65
mcall SF_PUT_IMAGE_EXT
pop edi
ret
;*****************************************************************************
@@ -97,16 +96,17 @@ dinamic_button_exit
; mouse event
;*****************************************************************************
;*****************************************************************************
align 4
.mouse:
pusha
mov edi,dword [esp+36]
mcall 37,2
mcall SF_MOUSE_GET,SSF_BUTTON
mov ebx,db_mouse_keys
mov db_mouse_keys_old,ebx
mov db_mouse_keys,eax
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
mov db_mouse_pos,eax
test eax,0x80000000
@@ -149,10 +149,10 @@ dinamic_button_exit
mov db_select,dword 2
call .draw_1
mcall 5, 25
mcall SF_SLEEP, 25
mov db_select,dword 1
call .draw_1
mov db_click,dword 1
jmp .exit_menu_2
@@ -167,4 +167,3 @@ dinamic_button_exit
; mov db_click,dword 0
.exit_menu_2:
dinamic_button_exit
}

View File

@@ -32,9 +32,6 @@ popa
ret 4
}
;*****************************************************************************
macro use_file_browser
{
file_browser:
fb_type equ dword [edi] ;dword
fb_size_x equ [edi+4] ;word
fb_start_x equ [edi+6] ;word
@@ -97,6 +94,7 @@ fb_mouse_pos_old equ dword [edi+196] ;dword
fb_marked_counter equ dword [edi+200] ;dword
fb_keymap_pointer equ dword [edi+204] ;dword
;---------------------------------------------------------------------
align 16
fb_draw_panel:
pusha
mov edi,dword [esp+36]
@@ -134,6 +132,7 @@ fb_draw_panel_1:
popa
ret
;---------------------------------------------------------------------
align 4
fb_clear_panel:
cmp fb_all_redraw,1
jne @f
@@ -142,12 +141,14 @@ fb_clear_panel:
@@:
ret
;---------------------------------------------------------------------
align 4
fb_calc_folder_sysdata:
mov eax,fb_folder_data
mov eax,[eax+4]
mov fb_folder_block,eax
ret
;---------------------------------------------------------------------
align 4
fb_calc_max_panel_line:
xor eax,eax
xor ebx,ebx
@@ -162,6 +163,7 @@ fb_calc_max_panel_line:
mov fb_max_panel_line,eax
ret
;---------------------------------------------------------------------
align 4
fb_draw_panel_selection:
cmp fb_all_redraw,2
je .end
@@ -197,16 +199,17 @@ fb_draw_panel_selection:
shl eax,16
push eax
add ebx,eax
mcall 13
mcall SF_DRAW_RECT
pop ebx
cmp fb_all_redraw,0
je .end
mov bx,fb_start_x
ror ebx,16
mcall 13,,,fb_background_color
mcall SF_DRAW_RECT,,,fb_background_color
.end:
ret
;---------------------------------------------------------------------
align 4
fb_for_all_panel_selection:
xor edx,edx
mov dx,fb_line_size_y
@@ -224,6 +227,7 @@ fb_for_all_panel_selection:
@@:
ret
;---------------------------------------------------------------------
align 4
fb_draw_folder_data:
mov eax,fb_folder_block
sub eax,fb_max_panel_line
@@ -325,7 +329,7 @@ fb_draw_folder_data:
mov esi,2
mov ecx,fb_reduct_text_color
mov edx,dword fb_truncated_filename_char
mcall 4
mcall SF_DRAW_TEXT
pop edx
.continue:
pop ebx
@@ -335,6 +339,7 @@ fb_draw_folder_data:
inc eax
jmp .start
;--------------------------------------
align 4
.draw_name_temp_area:
pusha
mov eax,fb_max_name_temp_size
@@ -370,7 +375,7 @@ fb_draw_folder_data:
mov eax,fb_select_color
@@:
mov edi,eax
mcall 4
mcall SF_DRAW_TEXT
popa
ret
;--------------------------------------
@@ -395,10 +400,11 @@ fb_draw_folder_data:
sub bx,3
rol ebx,16
mov edx,fb_background_color ;0xffffff
mcall 13
mcall SF_DRAW_RECT
@@:
ret
;---------------------------------------------------------------------
align 4
fb_clear_line:
mov fb_draw_panel_selection_flag,0
pusha
@@ -426,12 +432,12 @@ fb_clear_line:
sub bx,fb_icon_size_x
sub bx,3
rol ebx,16
mov edx,fb_background_color
mcall 13
mcall SF_DRAW_RECT,,,fb_background_color
.end:
popa
ret
;---------------------------------------------------------------------
align 4
fb_draw_type_size_date:
pusha
mov eax,fb_type_table
@@ -503,6 +509,7 @@ fb_draw_type_size_date:
mov [eax+6+4],word '- '
jmp .date
;-----------------------------------------
align 4
.call_decimal_string:
mov ebx,fb_type_table
add ebx,6
@@ -510,14 +517,14 @@ fb_draw_type_size_date:
mov [ebx],dl
jmp .size_convert_end
;-----------------------------------------
align 4
.copy_size:
;/0x40000000 - Gb
;/0x100000 - Mb
;/0x400 Kb
mov [eax+6],dword ' '
mov [eax+6+4],word ' '
push ebx
push edx
push ebx edx
mov eax,[edx-40+32]
mov ebx,eax
shr eax,30 ; /(1024*1024*1024)
@@ -565,8 +572,7 @@ fb_draw_type_size_date:
jmp @r
@@:
pop edi
pop edx
pop ebx
pop edx ebx
;-----------------------------------------
.date:
xor eax,eax
@@ -617,10 +623,11 @@ fb_draw_type_size_date:
mov eax,fb_select_color
@@:
mov edi,eax
mcall 4
mcall SF_DRAW_TEXT
popa
ret
;---------------------------------------------------------------------
align 4
fb_draw_icon:
pusha
xor eax,eax
@@ -663,7 +670,7 @@ fb_draw_icon:
xor ebp,ebp
push edi
mov edi,fb_palette_raw
mcall 65
mcall SF_PUT_IMAGE_EXT
pop edi
popa
ret
@@ -674,6 +681,7 @@ fb_draw_icon:
; EBX - address of string
; Output:
; string contains the number, marked the end of the code 0
align 4
fb_decimal_string_2:
push eax ebx ecx edx
xor ecx,ecx
@@ -702,6 +710,7 @@ fb_decimal_string_2:
pop edx ecx ebx eax
ret
;---------------------------------------------------------------------
align 4
fb_decimal_string_4:
push eax ecx edx
xor ecx,ecx
@@ -730,6 +739,7 @@ fb_decimal_string_4:
pop edx ecx eax
ret
;---------------------------------------------------------------------
align 4
fb_get_icon_number:
push eax
mov ebp,fb_extension_size
@@ -811,6 +821,7 @@ fb_get_icon_number:
pop eax
ret
;---------------------------------------------------------------------
align 4
.calculate_1:
add ebx,eax
.calculate:
@@ -819,6 +830,7 @@ fb_get_icon_number:
lodsb
ret
;---------------------------------------------------------------------
align 4
fb_char_toupper:
; convert character to uppercase, using cp866 encoding
; in: al=symbol
@@ -843,6 +855,7 @@ fb_char_toupper:
and al, not 0x20
ret
;---------------------------------------------------------------------
align 4
fb_char_todown:
; convert character to lowercase, using cp866 encoding
; in: al=symbol
@@ -875,16 +888,17 @@ fb_truncated_filename_char:
; mouse event
;*****************************************************************************
;*****************************************************************************
align 4
fb_mouse:
pusha
mov edi,dword [esp+36]
;-------------------------------------------------------
mcall 37,2
mcall SF_MOUSE_GET,SSF_BUTTON
mov ebx,fb_mouse_keys
mov fb_mouse_keys_old,ebx
mov fb_mouse_keys,eax
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
mov ebx,fb_mouse_pos
mov fb_mouse_pos_old,ebx
mov fb_mouse_pos,eax
@@ -999,12 +1013,12 @@ fb_mouse:
jne .mark_mouse
mov edx,2
mov fb_mouse_keys_delta,edx
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
add eax,fb_mouse_key_delay
mov fb_mouse_keys_tick,eax
jmp .continue_2
.enter_2:
mcall 26,9
mcall SF_SYSTEM_GET,SSF_TIME_COUNT
cmp eax,fb_mouse_keys_tick
ja @f
; mov eax,fb_mouse_pos_old
@@ -1026,6 +1040,7 @@ fb_mouse:
call fb_prepare_selected_BDVK_adress
file_browser_exit
;-------------------------------------------------------
align 4
.mark_mouse:
call fb_key.mark_1
call fb_draw_panel_1
@@ -1033,6 +1048,7 @@ file_browser_exit
mov fb_mouse_keys_delta,eax
jmp .exit_fb
;-------------------------------------------------------
align 4
.enter_3:
xor eax,eax
mov fb_mouse_keys,eax
@@ -1043,6 +1059,7 @@ file_browser_exit
mov fb_max_name_temp_size,eax
ret
;-------------------------------------------------------
align 4
.store_old_cursor_line:
push eax
mov ax,fb_start_draw_cursor_line
@@ -1053,6 +1070,7 @@ file_browser_exit
ret
;*****************************************************************************
;*****************************************************************************
align 4
fb_prepare_selected_BDVK_adress:
xor eax,eax
mov ax,fb_start_draw_cursor_line
@@ -1083,6 +1101,7 @@ fb_prepare_selected_BDVK_adress:
; 12 - Search with key
;*****************************************************************************
;*****************************************************************************
align 4
fb_key:
pusha
mov edi,dword [esp+36]
@@ -1097,6 +1116,7 @@ fb_key:
je .exit_fb
jmp dword [eax]
;-------------------------------------------------------
align 4
.arrow_down:
mov ax,fb_start_draw_cursor_line
add ax,fb_line_size_y
@@ -1126,6 +1146,7 @@ fb_key:
call fb_draw_panel_3
jmp .exit_fb
;-------------------------------------------------------
align 4
.arrow_up:
mov ax,fb_start_draw_cursor_line
add ax,fb_start_y
@@ -1144,6 +1165,7 @@ fb_key:
call fb_draw_panel_3
jmp .exit_fb
;-------------------------------------------------------
align 4
.page_down:
mov eax,fb_max_panel_line
mov ebx,fb_folder_block
@@ -1186,6 +1208,7 @@ fb_key:
call fb_draw_panel_2
jmp .exit_fb
;-------------------------------------------------------
align 4
.prepare_data_down:
mov ecx,fb_folder_block
sub ecx,fb_start_draw_line
@@ -1196,6 +1219,7 @@ fb_key:
cmp cx,fb_start_draw_cursor_line
ret
;-------------------------------------------------------
align 4
.page_up:
mov eax,fb_max_panel_line
mov ebx,fb_start_draw_line
@@ -1216,6 +1240,7 @@ fb_key:
call fb_draw_panel_2
jmp .exit_fb
;-------------------------------------------------------
align 4
.home:
cmp fb_start_draw_line,0
jne @f
@@ -1228,6 +1253,7 @@ fb_key:
call fb_draw_panel_2
jmp .exit_fb
;-------------------------------------------------------
align 4
.end:
mov eax,fb_folder_block
sub eax,fb_max_panel_line
@@ -1242,14 +1268,17 @@ fb_key:
mov eax,fb_max_panel_line
jmp .page_down_0
;-------------------------------------------------------
align 4
.enter:
call fb_mouse.enter_3
jmp .exit_fb
;-------------------------------------------------------
align 4
.mark:
call .mark_1
jmp .arrow_down
;-------------------------------------------------------
align 4
.mark_1:
mov eax,fb_folder_block
test eax,eax
@@ -1284,6 +1313,7 @@ fb_key:
.exit:
ret
;-------------------------------------------------------
align 4
.mark_all:
mov eax,fb_folder_block
test eax,eax
@@ -1326,6 +1356,7 @@ fb_key:
mov fb_marked_counter,eax
jmp .exit_fb
;-------------------------------------------------------
align 4
.select_mark_action:
add ebx,299-40
cmp fb_temp_counter,0
@@ -1345,6 +1376,7 @@ fb_key:
.select_mark_action_1:
ret
;-------------------------------------------------------
align 4
.unmark_all:
mov eax,fb_folder_block
test eax,eax
@@ -1353,6 +1385,7 @@ fb_key:
mov fb_temp_counter,1
jmp .mark_all_1
;-------------------------------------------------------
align 4
.invert_mark:
mov eax,fb_folder_block
test eax,eax
@@ -1373,8 +1406,9 @@ fb_key:
; * bit 9 (mask 0x200): left Win is pressed
; * bit 10 (mask 0x400): right Win is pressed
;-------------------------------------------------------
align 4
.search_with_key:
mcall 66,3
mcall SF_BOARD,SSF_GET_CONTROL_KEYS
test al,11b
jnz .shift_layout
@@ -1391,7 +1425,7 @@ fb_key:
.alt_layout:
mov ecx,3 ; Alt
.get_keyboard_layout:
mcall 26,2,,fb_keymap_pointer
mcall SF_SYSTEM_GET,SSF_KEYBOARD_LAYOUT,,fb_keymap_pointer
xor eax,eax
mov ax,fb_key_action_num
add eax,fb_keymap_pointer
@@ -1474,6 +1508,7 @@ fb_key:
call fb_prepare_selected_BDVK_adress
file_browser_exit
;-------------------------------------------------------
align 4
fb_key_table:
dd 0
dd fb_key.arrow_down ; 1
@@ -1491,10 +1526,12 @@ fb_key_table:
.end:
dd 0
;-------------------------------------------------------
align 4
fb_draw_panel_3:
mov eax,2
mov fb_all_redraw,eax
jmp fb_draw_panel_2.1
align 4
fb_draw_panel_2:
xor eax,eax
inc eax
@@ -1508,4 +1545,3 @@ fb_draw_panel_2:
mov fb_draw_scroll_bar,eax
ret
}

View File

@@ -40,8 +40,6 @@ popa
ret 4
}
;*****************************************************************************
macro use_frame
{
fr equ [esp + 36]
frame:
fr_type equ [eax + FR_STYLE] ; dword
@@ -63,7 +61,7 @@ fr_font_backgr_color equ [eax + FR_BACK_COLOR] ; dword
; draw event
;*****************************************************************************
;*****************************************************************************
align 4
align 16
.draw:
frame_start
mov eax, fr
@@ -259,12 +257,11 @@ align 4
;--------------------------------------
align 4
.draw_1:
mov edx,fr_text_pointer
mov edi,fr_font_backgr_color
mcall 4
mov edx,fr_text_pointer
mov edi,fr_font_backgr_color
mcall SF_DRAW_TEXT
;----------------------------------------------------------------------
align 4
.exit:
frame_exit
}
;*****************************************************************************

View File

@@ -31,8 +31,7 @@ popa
ret 4
}
;*****************************************************************************
macro use_menu_bar
{
align 16
menu_bar:
m_type equ [edi]
m_size_x equ [edi+4]
@@ -94,7 +93,7 @@ m_get_mouse_flag equ [edi+116]
.active:
mov edx,m_frnt_col
@@:
mcall 13
mcall SF_DRAW_RECT
shr ecx,16
mov bx,cx
movzx eax,word m_size_y
@@ -109,14 +108,11 @@ m_get_mouse_flag equ [edi+116]
add ecx,0x80000000
@@:
mov edx,m_text_pointer
mcall 4
mcall SF_DRAW_TEXT
ret
.draw_2:
mov ebx,m_size_x1
mov ecx,m_size_y1
mov edx,m_menu_col
mcall 13
mcall SF_DRAW_RECT,m_size_x1,m_size_y1,m_menu_col
ret
.calculate_font_offset:
@@ -136,8 +132,7 @@ m_get_mouse_flag equ [edi+116]
shl eax,16
add ecx,eax
mov cx,m_interval
mov edx,m_menu_col
mcall 13
mcall SF_DRAW_RECT,,,m_menu_col
pop ecx ebx
push ebx ecx
@@ -147,7 +142,7 @@ m_get_mouse_flag equ [edi+116]
add ecx,eax
mov cx,m_interval
mov edx,m_menu_sel_col
mcall 13
mcall SF_DRAW_RECT
pop ecx ebx
shr ecx,16
@@ -169,7 +164,7 @@ m_get_mouse_flag equ [edi+116]
add ecx,0xC0000000
push edi
mov edi,eax
mcall 4
mcall SF_DRAW_TEXT
pop edi
call .get_next_text
inc ebp
@@ -277,7 +272,7 @@ m_get_mouse_flag equ [edi+116]
.red:
call .draw_3
.still:
mcall 10
mcall SF_WAIT_EVENT
cmp eax,1
je .exit_menu_3
cmp eax,2
@@ -289,7 +284,7 @@ m_get_mouse_flag equ [edi+116]
jmp .still
.key_menu:
mcall 2
mcall SF_GET_KEY
cmp dword m_extended_key,1
je .extended_key
@@ -442,12 +437,12 @@ m_get_mouse_flag equ [edi+116]
jmp .exit_menu_3
;---------------------------------------------------------------------
.processing_real_mouse:
mcall 37,2
mcall SF_MOUSE_GET,SSF_BUTTON
mov ebx,m_mouse_keys
mov m_mouse_keys_old,ebx
mov m_mouse_keys,eax
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
ret
;---------------------------------------------------------------------
.allocate_menu_area:
@@ -456,21 +451,21 @@ m_get_mouse_flag equ [edi+116]
movzx eax,word m_size_y1
imul ecx,eax
lea ecx,[ecx*3]
mcall 68, 12
mcall SF_SYS_MISC,SSF_MEM_ALLOC
mov m_buf_adress,eax
ret
;---------------------------------------------------------------------
.free_menu_area:
cmp dword m_buf_adress,0
je @f
mcall 68,13,m_buf_adress
mcall SF_SYS_MISC,SSF_MEM_FREE,m_buf_adress
xor eax,eax
mov m_buf_adress,eax
@@:
ret
;---------------------------------------------------------------------
.get_menu_area:
mcall 9, m_procinfo,-1
mcall SF_THREAD_INFO, m_procinfo,-1
mov cx,m_size_x1
shl ecx,16
@@ -485,7 +480,7 @@ m_get_mouse_flag equ [edi+116]
add dx,[eax+38]
add dx,[eax+58]
mcall 36, m_buf_adress
mcall SF_GET_IMAGE, m_buf_adress
ret
;---------------------------------------------------------------------
.put_menu_area:
@@ -497,7 +492,7 @@ m_get_mouse_flag equ [edi+116]
shl edx,16
mov dx,m_start_y1
mcall 7, m_buf_adress
mcall SF_PUT_IMAGE, m_buf_adress
call .free_menu_area
ret
;---------------------------------------------------------------------
@@ -601,5 +596,3 @@ m_get_mouse_flag equ [edi+116]
mov m_click,dword 0
@@:
menu_bar_exit
}

View File

@@ -33,12 +33,11 @@ macro path_show_start
;*****************************************************************************
macro path_show_exit
{
popa
popa
ret 4
}
;*****************************************************************************
macro use_path_show
{
align 16
path_show:
ps_type equ [edi] ;dword
ps_start_y equ [edi+4] ;word
@@ -146,7 +145,6 @@ path_show_start
and eax,0xffffff
xor esi,esi
mov edi,eax
mcall 4
mcall SF_DRAW_TEXT
path_show_exit
}
;*****************************************************************************

View File

@@ -1,5 +1,3 @@
macro use_progressbar
{
pb equ [esp + 4 + 8*4]
align 16
progressbar_draw:
@@ -15,7 +13,7 @@ progressbar_draw:
add esi, edi
dec ebp
dec esi
mov eax, 38
mov eax, SF_DRAW_LINE
shl ebx, 16
mov bx, bp
shrd ecx, edi, 16
@@ -54,7 +52,7 @@ progressbar_draw:
add ebx, edi
add ecx, [eax + PB_HEIGHT]
dec ecx
mov eax, 13
mov eax, SF_DRAW_RECT
dec ecx
int 64
; draw last part of non-progress rectangle
@@ -133,11 +131,10 @@ progressbar_progress:
add ebx, esi
dec ecx
sub ebx, edi
mov eax, 13
mov eax, SF_DRAW_RECT
dec ecx
int 64
; .skip:
popad
ret 4
restore pb
}

View File

@@ -53,8 +53,7 @@ macro draw_up_arrow_vertical
sub ebx,4 shl 16
mov bx,7
mov cx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
sub ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
@@ -98,7 +97,7 @@ macro draw_up_arrow_vertical_type2
add cx,1
sub bx,3
mcall 38,,,sb_line_col
mcall SF_DRAW_LINE,,,sb_line_col
add bx,6
@@ -127,8 +126,7 @@ macro draw_down_arrow_vertical
mov bx,7
sub ecx,2 shl 16
mov cx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
add ecx,1 shl 16
add ebx,1 shl 16
mov bx,5
@@ -174,7 +172,7 @@ macro draw_down_arrow_vertical_type2
sub cx,2
sub bx,3
mcall 38,,,sb_line_col
mcall SF_DRAW_LINE,,,sb_line_col
add bx,6
@@ -184,8 +182,7 @@ macro draw_down_arrow_vertical_type2
;*****************************************************************************
macro draw_runner_center_vertical
{
push ebx
push ecx
push ebx ecx
xor eax,eax
mov ax,sb_size_x
@@ -203,8 +200,7 @@ macro draw_runner_center_vertical
mov bx,10
add ecx,4 shl 16
mov cx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
add ecx,3 shl 16
sub ebx,1 shl 16
mov bx,12
@@ -213,8 +209,7 @@ macro draw_runner_center_vertical
mov bx,10
add ecx,3 shl 16
int 0x40
pop ecx
pop ebx
pop ecx ebx
}
;*****************************************************************************
macro draw_up_arrow_horizontal
@@ -238,8 +233,7 @@ macro draw_up_arrow_horizontal
mov cx,7
mov bx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
sub ebx,1 shl 16
add ecx,1 shl 16
mov cx,5
@@ -283,7 +277,7 @@ macro draw_up_arrow_horizontal_type2
add bx,1
sub cx,3
mcall 38,,,sb_line_col
mcall SF_DRAW_LINE,,,sb_line_col
add cx,6
@@ -312,8 +306,7 @@ macro draw_down_arrow_horizontal
mov cx,7
sub ebx,2 shl 16
mov bx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
add ebx,1 shl 16
add ecx,1 shl 16
mov cx,5
@@ -359,7 +352,7 @@ macro draw_down_arrow_horizontal_type2
sub cx,2
sub bx,3
mcall 38,,,sb_line_col
mcall SF_DRAW_LINE,,,sb_line_col
add cx,6
@@ -369,8 +362,7 @@ macro draw_down_arrow_horizontal_type2
;*****************************************************************************
macro draw_runner_center_horizontal
{
push ebx
push ecx
push ebx ecx
xor eax,eax
mov ax,sb_size_y
@@ -388,8 +380,7 @@ macro draw_runner_center_horizontal
mov cx,10
add ebx,4 shl 16
mov bx,1
mov eax,13
int 0x40
mcall SF_DRAW_RECT
add ebx,3 shl 16
sub ecx,1 shl 16
mov cx,12
@@ -398,13 +389,9 @@ macro draw_runner_center_horizontal
mov cx,10
add ebx,3 shl 16
int 0x40
pop ecx
pop ebx
pop ecx ebx
}
;*****************************************************************************
macro use_scroll_bar
{
scroll_bar:
sb_size_x equ [edi]
sb_start_x equ [edi+2]
sb_size_y equ [edi+4]
@@ -432,14 +419,13 @@ sb_position2 equ [edi+72]
sb_work_size equ [edi+76]
sb_all_redraw equ [edi+80]
sb_ar_offset equ [edi+84]
}
;*****************************************************************************
;*****************************************************************************
; draw event
;*****************************************************************************
;*****************************************************************************
macro use_scroll_bar_vertical
{
align 16
scroll_bar_vertical:
.draw:
pusha
@@ -520,7 +506,7 @@ scroll_bar_exit
inc ebx
mov ecx,sb_size_y
mov edx,sb_line_col
mov eax,13
mov eax,SF_DRAW_RECT
cmp dword sb_all_redraw,0
je @f
int 0x40 ; left extreme line
@@ -574,7 +560,7 @@ draw_up_arrow_vertical
mov edx,sb_line_col
cmp dword sb_all_redraw,0
je @f
mcall 13 ; top button - bottom line
mcall SF_DRAW_RECT ; top button - bottom line
@@:
pop ecx
;*********************************
@@ -588,7 +574,7 @@ draw_up_arrow_vertical
mov cx,0
add ecx,sb_position2
dec cx
mov eax,13
mov eax,SF_DRAW_RECT
test cx,0x8000
jnz @f
mov edx,sb_bckg_col
@@ -655,8 +641,7 @@ draw_runner_center_vertical
test cx,0x8000
jnz @f
mov edx,sb_bckg_col
mov eax,13
int 0x40 ; bottom interval
mcall SF_DRAW_RECT ; bottom interval
@@:
pop ecx
;*********************************
@@ -667,7 +652,7 @@ draw_runner_center_vertical
shl ecx,16
inc ecx
mov edx,sb_line_col
mov eax,13
mov eax,SF_DRAW_RECT
cmp dword sb_all_redraw,0
je @f
int 0x40 ; bottom button - top line
@@ -703,7 +688,7 @@ draw_down_arrow_vertical
mov cx,1
cmp dword sb_all_redraw,0
je @f
mcall 13 ; bottom button - extreme line
mcall SF_DRAW_RECT ; bottom button - extreme line
;-----------------------------------------------------------------------------
; scrollbar type 1 - stylish frame
cmp word sb_type,1
@@ -732,14 +717,14 @@ draw_down_arrow_vertical
.mouse:
pusha
mov edi,dword [esp+36]
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
mov sb_m_pos,eax
cmp dword sb_m_pos_2,0
jne @f
mov sb_m_pos_2,eax
@@:
mcall 37,2
mcall SF_MOUSE_GET,SSF_BUTTON
mov sb_m_keys,eax
cmp sb_m_keys,eax
@@ -1031,15 +1016,14 @@ draw_down_arrow_vertical
jmp .all_sb
.exit_sb:
scroll_bar_exit
}
;*****************************************************************************
;*****************************************************************************
;*****************************************************************************
;*****************************************************************************
;*****************************************************************************
macro use_scroll_bar_horizontal
{
align 16
scroll_bar_horizontal:
.draw:
pusha
@@ -1121,7 +1105,7 @@ scroll_bar_exit
shl ecx,16
inc ecx
mov edx,sb_line_col
mov eax,13
mov eax,SF_DRAW_RECT
cmp dword sb_all_redraw,0
je @f
int 0x40 ; top extreme line
@@ -1175,7 +1159,7 @@ draw_up_arrow_horizontal
mov edx,sb_line_col
cmp dword sb_all_redraw,0
je @f
mcall 13 ; left button - right line
mcall SF_DRAW_RECT ; left button - right line
@@:
pop ebx
;*********************************
@@ -1189,7 +1173,7 @@ draw_up_arrow_horizontal
mov bx,0
add ebx,sb_position2
dec bx
mov eax,13
mov eax,SF_DRAW_RECT
test bx,0x8000
jnz @f
mov edx,sb_bckg_col
@@ -1257,8 +1241,7 @@ draw_runner_center_horizontal
test bx,0x8000
jnz @f
mov edx,sb_bckg_col
mov eax,13
int 0x40 ; bottom interval
mcall SF_DRAW_RECT ; bottom interval
@@:
pop ebx
;*********************************
@@ -1269,7 +1252,7 @@ draw_runner_center_horizontal
shl ebx,16
inc ebx
mov edx,sb_line_col
mov eax,13
mov eax,SF_DRAW_RECT
cmp dword sb_all_redraw,0
je @f
int 0x40 ; bottom button - top line
@@ -1305,7 +1288,7 @@ draw_down_arrow_horizontal
mov bx,1
cmp dword sb_all_redraw,0
je @f
mcall 13 ; bottom button - extreme line
mcall SF_DRAW_RECT ; bottom button - extreme line
;-----------------------------------------------------------------------------
; scrollbar type 1 - stylish frame
cmp word sb_type,1
@@ -1334,14 +1317,14 @@ draw_down_arrow_horizontal
.mouse:
pusha
mov edi,dword [esp+36]
mcall 37,1
mcall SF_MOUSE_GET,SSF_WINDOW_POSITION
mov sb_m_pos,eax
cmp dword sb_m_pos_2,0
jne @f
mov sb_m_pos_2,eax
@@:
mcall 37,2
mcall SF_MOUSE_GET,SSF_BUTTON
mov sb_m_keys,eax
cmp sb_m_keys,eax
@@ -1641,4 +1624,3 @@ draw_down_arrow_horizontal
;*****************************************************************************
.exit_sb:
scroll_bar_exit
}