0,0 → 1,342 |
; |
; ¢ í⮬ ä ©«¥ ᮡà ë äãªæ¨¨ ã¦ë¥ ¤«ï ᮧ¤ ¨ï ¨ |
; à ¡®âë ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
; |
|
prop_edits_top equ 25 |
prop_edits_height equ 18 |
prop_wnd_width equ 520 ;è¨à¨ ®ª ᮠ᢮©á⢠¬¨ ®¡ê¥ªâ |
|
prop_wnd_run db 0 ;¯¥à¥¬¥ ï á«¥¤ïé ï § ⥬ çâ®-¡ë ¥ § ¯ã᪠âì ¡®«ìè¥ 1-£® ®ª ᮠ᢮©á⢠¬¨ ®¤®¢à¥¬¥® |
|
;¤ ®¥ ®ª® (¯à®æ¥áá) ¢ë§ë¢ ¥âìáï äãªæ¨¥© on_file_object_select |
align 4 |
prop_start: |
pushad |
mcall 40,0x27 ;¬ ᪠®¦¨¤ ¥¬ëå ᮡë⨩ |
|
; áâனª ⥪á⮢ëå ¯®«¥© |
xor ebx,ebx |
mov edi,edit2 |
@@: |
stdcall set_obj_win_param, ebx,edi |
inc ebx |
add edi,ed_struc_size |
cmp edi,prop_wnd_edits_end |
jl @b |
|
; áâனª ᯨ᪠®¡ê¥ªâ®¢, ®¯à¥¤¥«ïîé¨å â¨¯ë ¯¥à¥¬¥ëå |
stdcall dword[tl_data_init], tree3 |
cmp byte[err_ini0],1 |
je @f |
mov dword[tree3.data_img],bmp_icon |
@@: |
mov eax,dword[icon_tl_sys] |
mov dword[tree3.data_img_sys],eax |
|
mov edx,[foc_obj] |
cmp byte[edx],C_VAR |
jne .sel_end |
|
stdcall [tl_node_poi_get_info], 0,tree2 |
pop edx |
@@: |
cmp edx,0 |
je @f |
stdcall [tl_node_poi_get_data], edx,tree2 |
pop esi ;¯®«ãç ¥¬ ¤ ë¥ ã§« |
;------ ¤®¡ ¢«¥¨¥ ®¡ê¥ªâ ¢ ᯨ᮪ ------------------------------------------- |
mov ebx,[foc_obj] |
cmp ebx,esi |
je .add_end ;¨§¡¥£ ¥¬ 横«¨ç¥áª®© áá뫪¨ |
mov bl,[esi] |
cmp bl,C_TDF |
je .add_beg |
cmp bl,C_STR |
je .add_beg |
jmp .add_end |
.add_beg: |
stdcall get_obj_id,esi |
mov edi,u_object |
mov dword[edi],eax |
add edi,4 |
inc esi ;¯¥à¥å®¤¨¬ ¨¬ï ®¡ê¥ªâ |
mov ecx,MAX_LEN_OBJ_TXT |
cld |
rep movsb |
|
call find_obj_in_opt ;edi = pointer to ObjOpt struct |
mov cx,word[edi+obj_opt.img-obj_opt] |
cmp cx,0 |
jge .zero |
xor cx,cx ;çâ®-¡ë ¥ £«î稫® á ®âà¨æ ⥫ìë¬ ¨¤¥ªá®¬ |
.zero: |
shl ecx,16 ;¢ ecx ¨¤¥ªá ¨ª®ª¨ |
|
stdcall dword[tl_node_add], u_object, ecx, tree3 ;áâàãªâãà u_object ¢ ¤ ®¬ á«ãç ¥ ¥ ᮡ«î¤ ¥âáï, ® 㦠¯à®áâ® ª ª ¯ ¬ïâì ¤«ï ¢áâ ¢ª¨ |
stdcall dword[tl_cur_next], tree3 ;¯¥à¥®á¨¬ ªãàá®à ¢¨§, çâ®-¡ë ¥ ¯®¬¥ï«áï ¯®à冷ª |
.add_end: |
;------- |
stdcall [tl_node_poi_get_next_info], edx,tree2 |
pop edx ;¯¥à¥å®¤¨¬ ª á«¥¤ã饬ã 㧫ã |
jmp @b |
@@: |
|
;áâ ¢¨¬ ªãàá®à ã¦ãî ¯®§¨æ¨î |
mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
cmp edx,0 |
je .sel_end |
mov edx,dword[edx+u_object.typid-u_object] |
stdcall [tl_cur_beg],tree3 |
@@: |
stdcall [tl_node_get_data],tree3 |
pop eax |
cmp eax,0 |
je .sel_end |
cmp dword[eax],edx |
je .sel_end ;¥á«¨ 諨 㪠§ ⥫ì |
stdcall [tl_cur_next],tree3 |
jmp @b |
.sel_end: |
|
;ç¨á⪠¯®¤¯¨á¥© |
mov dword[ch1.text],ch_text |
mov dword[ch2.text],ch_text |
mov dword[ch3.text],ch_text |
mov dword[ch4.text],ch_text |
|
;ãáâ ®¢ª ®¢ëå ¯®¤¯¨á¥© |
mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
mov bl,byte[esi] |
call find_obj_in_opt |
mov edi,dword[edi+obj_opt.bit_prop-obj_opt] |
cmp edi,0 |
je .no_bit_capts ;¥á«¨ 1-¥ ¡¨â®¢®¥ ᢮©á⢮ ¯ãá⮥, â® ¢ 横« ¥ § 室¨¬ |
mov edx,ch1.text |
xor al,al ;0 - ᨬ¢®« ª®æ áâப¨ |
add edi,obj_opt |
@@: |
mov [edx],edi ;§ ¯¨áë¢ ¥¬ ⥪áâ ¢ check_box |
xor ecx,ecx |
dec ecx ;ecx - ç¨á«® ¯à®á¬ âਢ ¥¬ëå ¡ ©â |
cld |
repne scasb ;¨é¥¬ ª®¥æ áâப¨ (al=0) |
cmp byte[edi],0 |
je .no_bit_capts ;¥á«¨ á«¥¤ãî饩 áâப¨ ¥â ¢ë室 ¨§ 横« |
|
add edx,ch_struc_size |
cmp edx,check_boxes_end |
jl @b |
.no_bit_capts: |
|
;ãáâ ®¢ª ä« ¦ª®¢ |
mov esi,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
mov edx,ch1.flags |
xor eax,eax |
@@: |
bt dword[esi+u_object.modif-u_object],eax |
jc .flag_set |
btr dword[edx],1 ;ᨬ ¥¬ £ «®çªã |
jmp .end_set |
.flag_set: |
bts dword[edx],1 ;áâ ¢¨¬ £ «®çªã (ch_flag_en = 10b = 2^1) |
.end_set: |
|
inc eax |
add edx,ch_struc_size |
cmp edx,check_boxes_end |
jl @b |
|
init_checkboxes2 check_boxes,check_boxes_end |
check_boxes_set_sys_color2 check_boxes,check_boxes_end,sc |
popad |
|
align 4 |
prop_red_win: |
pushad |
mcall 12,1 |
|
xor eax,eax |
mov edi,hed |
mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
cmp edx,0 |
je @f |
mov bl,[edx] |
call find_obj_in_opt |
add edi,obj_opt.info-obj_opt ;edi - ¯®¤¯¨áì ( §¢ ¨¥ ®¡ê¥ªâ ) |
@@: |
mov ebx,30*65536+prop_wnd_width |
mov ecx,50*65536+250 |
mov edx,0xffffd0 |
or edx,0x33000000 |
int 0x40 |
|
mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
cmp edx,0 |
je .exit_fun |
|
mov eax,8 ;ª®¯ª ¤«ï á®åà ¥¨ï ¨§¬¥¥¨© |
mov ebx,prop_wnd_width-18-20 |
shl ebx,16 |
add ebx,18 |
mov ecx,3 |
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 |
|
cmp [err_ini0],1 |
je .exit_fun |
cmp [err_ini1],1 |
je .exit_fun |
|
mov edx,[foc_obj] ;¡¥à¥¬ 㪠§ â¥«ì ®¡ê¥ªâ |
xor ebx,ebx ;®¬¥à ¯®«ï |
.draw_column: |
mov eax,ebx |
imul eax,prop_edits_height |
add eax,prop_edits_top |
stdcall draw_obj_icon,[edx],ebx,eax |
stdcall draw_obj_caption,[edx],ebx,eax |
|
inc ebx |
cmp ebx,MAX_OPT_FIELDS |
jl .draw_column |
|
cmp byte[edx],C_VAR |
jne .no_tree |
mov dword[w_scr_t3.all_redraw],1 |
stdcall [tl_draw], tree3 |
.no_tree: |
|
checkboxes_draw2 check_boxes,check_boxes_end |
|
.exit_fun: |
mcall 12,2 |
popad |
|
align 4 |
prop_still: |
pushad |
mcall 10 |
|
cmp al,1 ;¨§¬. ¯®«®¦¥¨¥ ®ª |
jz prop_red_win |
cmp al,2 |
jne @f |
call prop_key |
@@: |
cmp al,3 |
jz prop_button |
cmp al,6 |
jne @f |
call prop_mouse |
@@: |
popad |
jmp prop_still |
|
align 4 |
prop_key: |
push eax edi |
mcall 2 |
mov edi,edit2 |
.cycle: |
stdcall [edit_box_key], edi |
add edi,ed_struc_size |
cmp edi,prop_wnd_edits_end |
jl .cycle |
|
mov edi,[foc_obj] |
cmp byte[edi],C_VAR |
jne @f |
stdcall [tl_key], tree3 |
@@: |
pop edi eax |
ret |
|
align 4 |
prop_mouse: |
push edi |
mov edi,edit2 |
.cycle: |
stdcall [edit_box_mouse], edi |
add edi,ed_struc_size |
cmp edi,prop_wnd_edits_end |
jl .cycle |
|
mov edi,[foc_obj] |
cmp byte[edi],C_VAR |
jne @f |
stdcall [tl_mouse], tree3 |
@@: |
|
checkboxes_mouse2 check_boxes,check_boxes_end |
|
pop edi |
ret |
|
align 4 |
prop_button: |
mcall 17 ;¯®«ãç¨âì ª®¤ ¦ ⮩ ª®¯ª¨ |
|
cmp ah,10 |
jne @f |
call but_element_change |
mov ah,1 ;¤«ï § ªàëâ¨ï ®ª |
@@: |
|
cmp ah,1 |
jne prop_still |
.exit: |
mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ ⥫¨ ¨ª®ª¨ çâ®-¡ë ¨å ¥ 㤠«¨« ¤¥áâàãªâ®à |
mov dword[tree3.data_img_sys],0 ;â. ª. ®¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥â å |
stdcall dword[tl_data_clear], tree3 |
mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
|
;¤¥à¥¢® á ®¡ê¥ªâ ¬¨ ¢ ¯®«ì§®¢ ⥫ì᪮¬ ä ©«¥ |
tree3 tree_list sizeof.object,(MAX_CED_OBJECTS shr 2)+2, tl_key_no_edit+tl_list_box_mode,\ |
16,16, 0xffffff,0xb0d0ff,0xd000ff, 320,30,165,125, 0,4,MAX_LEN_OBJ_TXT, el_focus,\ |
w_scr_t3,0 |
|
align 4 |
w_scr_t3: |
.size_x dw 16 ;+0 |
rb 2+2+2 |
.btn_high dd 15 ;+8 |
.type dd 1 ;+12 |
.max_area dd 100 ;+16 |
rb 4+4 |
.bckg_col dd 0xeeeeee ;+28 |
.frnt_col dd 0xbbddff ;+32 |
.line_col dd 0 ;+36 |
rb 4+2+2 |
.run_x: |
rb 2+2+2+2+4+4+4+4+4+4 |
.all_redraw dd 0 ;+80 |
.ar_offset dd 1 ;+84 |
|
check_boxes: |
ch1 check_box2 (320 shl 16+11),(160 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle |
ch2 check_box2 (320 shl 16+11),(175 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle |
ch3 check_box2 (320 shl 16+11),(190 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle |
ch4 check_box2 (320 shl 16+11),(205 shl 16 +11),5,0xffffff,0,0x80000000,ch_text,ch_flag_en+ch_flag_middle |
check_boxes_end: |
|
ch_text db 0 |