1,92 → 1,4 |
align 4 |
draw_obj_info: ;®ª® ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
mov eax,13 ;rect |
mov edx,WND_CAPT_COLOR |
mov ebx,[wndObjI.left] |
shl ebx,16 |
add ebx,[wndObjI.width] |
mov ecx,[wndObjI.top] |
add ecx,[recMain.top] |
shl ecx,16 |
add ecx,[wndObjI.height] |
sub ecx,[recMain.top] |
mov edx,0xffffff ;0x80ffffff |
int 0x40 ;¯àאַ㣮«ì¨ª ¤«ï ®ª |
|
mov ecx,[wndObjI.top] ;draw caption |
shl ecx,16 |
add ecx,[recMain.top] |
mov edx,WND_CAPT_COLOR |
int 0x40 |
|
mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
cmp edx,0 |
je .exit_fun |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
pushad |
;draw caption wndObjI |
mov eax,4 ;¯®¤¯¨áì - §¢ ¨¥ ®¡ê¥ªâ |
|
mov bl,[edx] |
call find_obj_in_opt |
mov edx,edi |
|
mov ebx,[wndObjI.left] |
add ebx,[recMain.left] |
add ebx,4 |
shl ebx,16 |
add ebx,[wndObjI.top] |
add ebx,4 |
mov ecx,0xc0d000ff |
mov edi,WND_CAPT_COLOR |
add edx,obj_opt.info-obj_opt |
int 0x40 |
|
mov eax,8 ;ª®¯ª ¤«ï á®åà ¥¨ï ¨§¬¥¥¨© |
mov ebx,[wndObjI.left] |
add ebx,119 |
shl ebx,16 |
add ebx,18 |
mov ecx,[wndObjI.top] |
add ecx,1 |
shl ecx,16 |
add ecx,18 |
mov edx,10 |
mov esi,0xd040 |
int 0x40 |
|
ror ebx,16 ;¢ëç¨á«ï¥¬ ª®®à¤¨ âë ¤«ï ¨ª®ª¨ |
ror ecx,16 |
and ebx,0xffff |
and ecx,0xffff |
inc ebx |
inc ecx |
stdcall draw_icon, 17,ebx,ecx ;17 - save |
|
mov edi,edit2 |
.cycle: |
stdcall [edit_box_draw], edi ;à¨á㥬 ¯®«ï ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
add edi,ed_struc_size |
cmp edi,prop_wnd_edits_end |
jl .cycle |
|
popad |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
xor ebx,ebx ;®¬¥à ¯®«ï |
.draw_column: |
mov eax,ebx |
imul eax,[recMain.height] |
add eax,[recMain.top] |
add eax,[wndObjI.top] |
stdcall draw_icon_obj,[edx],ebx,eax |
|
inc ebx |
cmp ebx,MAX_OPT_FIELDS |
jl .draw_column |
.exit_fun: |
ret |
|
;¯®¤¨¬ ¥¬ ®¡ê¥ªâ ¢¢¥àå ¯® ᯨáªã |
align 4 |
but_obj_move_up: |
134,20 → 46,47 |
but_element_change: |
;foc_obj - 㪠§ â¥«ì ¯®á«¥¤¨© ¢ë¡à ë© ã§¥« ¢ tree2 |
cmp dword[foc_obj],0 |
je @f |
je .err_obj |
pushad |
;ãáâ ®¢ª ⥪á⮢ëå ᢮©á⢠|
xor ebx,ebx |
mov edi,edit2 |
.cycle: |
@@: |
call get_obj_win_param |
inc ebx |
add edi,ed_struc_size |
cmp edi,prop_wnd_edits_end |
jl .cycle |
jl @b |
|
;ãáâ ®¢ª áá뫪¨ ®¡ê¥ªâ ⨯ |
mov edx,dword[foc_obj] |
mov dword[edx+u_object.typid-u_object],0 ; á«ãç © ¥á«¨ ¨ç¥£® ¥ ¢ë¡à ® |
stdcall [tl_node_get_data],tree3 |
pop eax |
cmp eax,0 |
je @f |
mov eax,dword[eax] ;¡¥à¥¬ ¯®à浪®¢ë© ®¬¥à (¢ ¯ ¬ïâ¨) ¢ë¡à ®£® ®¡ê¥ªâ |
mov dword[edx+u_object.typid-u_object],eax |
@@: |
|
;ãáâ ®¢ª «®£¨ç¥áª¨å ᢮©á⢠|
mov edi,ch1.flags |
mov eax,1 |
xor ebx,ebx |
@@: |
bt dword[edi],1 ;¯®ç¥¬ã ®® âãâ ¥ à ¡®â ¥â ï ¥ § î ... ??? |
jnc .opt_no_sel |
or ebx,eax ; ª®¯«¥¨¥ ®â¬¥ç¥ëå ®¯æ¨© |
.opt_no_sel: |
shl eax,1 |
add edi,ch_struc_size |
cmp edi,check_boxes_end |
jl @b |
mov dword[edx+u_object.modif-u_object],ebx |
popad |
@@: |
.err_obj: |
call draw_constructor ;®¡®¢«ï¥¬ ®ª® ª®áâàãªâ®à |
call draw_window |
;call draw_window |
ret |
|
;input: |
259,7 → 198,7 |
endp |
|
align 4 |
proc draw_icon_obj, o_type:dword,n_col:dword, coord_y:dword |
proc draw_obj_icon, o_type:dword,n_col:dword, coord_y:dword |
pushad |
xor ebx,ebx |
mov bl,byte[o_type] |
283,8 → 222,7 |
|
mov eax,7 |
mov ecx,0x100010 ;ecx - size:16*16 |
mov edx,[wndObjI.left] |
add edx,3 ;®âáâ㯠®â «¥¢®£® ªà ï à ¬ª¨ ¤® ¨ª®ª¨ |
mov edx,3 ;®âáâ㯠®â «¥¢®£® ªà ï à ¬ª¨ ¤® ¨ª®ª¨ |
shl edx,16 |
add edx,[coord_y] |
int 0x40 |
293,7 → 231,55 |
ret |
endp |
|
;¢ë¢®¤ ⥪áâ á ¯®¤¯¨áìî |
align 4 |
proc draw_obj_caption, o_type:dword,n_col:dword, coord_y:dword |
pushad |
stdcall get_obj_text_len_col, [foc_obj], [n_col] ;eax - ¤«¨ ¯®«ï |
cmp eax,1 |
jl .no_draw |
|
xor ebx,ebx |
mov bl,byte[o_type] |
call find_obj_in_opt |
|
mov edx,edi |
add edx,obj_opt.caption-obj_opt |
|
mov eax,[n_col] |
mov ebx,150 |
shl ebx,16 |
add ebx,dword[coord_y] |
add ebx,3 |
mov ecx,0 ;text color |
|
mov esi,edx |
.beg_found: |
cmp byte[esi],0 |
je .end_found |
cmp byte[esi],'*' |
je @f |
inc esi |
jmp .beg_found |
@@: |
cmp eax,0 |
je .end_found |
dec eax |
inc esi |
mov edx,esi ;¯¥à¥ª«îç ¥¬ ç «® áâப¨ á«¥¤. ¯®¤¯¨áì |
jmp .beg_found |
.end_found: |
cmp esi,edx |
jle .no_draw |
sub esi,edx ;esi = text len |
mov eax,4 |
int 0x40 |
.no_draw: |
popad |
ret |
endp |
|
align 4 |
proc draw_icon, ind:dword,coord_x:dword,coord_y:dword |
pushad |
mov ecx,[ind] |