/programs/fs/kfar/trunk/dialogs.inc |
---|
169,6 → 169,8 |
pop edx |
mov ebx, [esp+24h+8] ;DLGTEMPLATE* dlg |
cmp dword[ebx+dlgtemplate.size], 0 |
jne .event ;¥á«¨ ¤¨ «®£®¢®¥ ®ª® ¥ áâ ¤ à⮥ (ᯨ᮪ § 票©) |
cmp edx, [ebx+dlgtemplate.y] |
jl .event |
cmp eax, [ebx+dlgtemplate.x] |
205,6 → 207,12 |
cmp [ebx+dlgitemtemplate.y2], edx |
jl .m_next |
cmp [ebx+dlgitemtemplate.type], 2 ;button |
jne @f |
mov [esp+28+8], ebx ;save to eax |
pop ecx ebx |
jmp .exit |
@@: |
mov eax, [ebx+dlgitemtemplate.flags] |
and eax, 4 |
jnz .m_old_focus |
438,6 → 446,7 |
ret |
; void __stdcall DrawGenericBox(DLGDATA* dlg, void* DlgProc) |
align 16 |
DrawGenericBox: |
pushad |
mov ebx, [esp+24h] |
720,6 → 729,7 |
; int __stdcall menu(void* variants, const char* title, unsigned flags); |
; variants 㪠§ë¢ ¥â ⥪ã騩 í«¥¬¥â ¢ ¤¢ãá¢ï§®¬ «¨¥©®¬ ᯨ᪥ |
align 16 |
menu: |
pop eax |
push [cur_height] |
734,11 → 744,11 |
pushad |
mov ecx, 60 |
; 40 bytes for dlgtemplate + additional: |
; +40: dd cur_variant |
; +44: dd num_variants |
; +48: dd begin_variant |
; +52: dd end_variant |
; +56: dd cur_variant_idx |
; +40: dd cur_variant - [???] |
; +44: dd num_variants - ᪮«ìª® í«¥¬¥â®¢ ¢« §¨â ¢ ®ª® |
; +48: dd begin_variant - [dd ..,..,???] |
; +52: dd end_variant - [dd ..,..,???] |
; +56: dd cur_variant_idx - ??? |
call xpgalloc |
test eax, eax |
jnz @f |
749,7 → 759,7 |
@@: |
mov ebx, eax |
mov eax, 1 |
test byte [esp+20h+28], 1 |
test byte [esp+20h+28], 1 ;unsigned flags |
jz @f |
mov al, 3 |
@@: |
760,7 → 770,7 |
; 室¨¬ è¨à¨ã ¨ ¢ëá®âã ®ª |
xor eax, eax |
xor ecx, ecx |
mov esi, [esp+20h+20] |
mov esi, [esp+20h+20] ;void* variants |
mov [ebx+40], esi |
mov dword [ebx+56], eax |
@@: |
889,6 → 899,7 |
popad |
ret 28 |
align 16 |
MenuDlgProc: |
mov eax, [esp+8] |
cmp al, 1 |
/programs/fs/kfar/trunk/kfar.asm |
---|
819,9 → 819,14 |
mov eax,SF_MOUSE_GET |
mov ebx,SSF_BUTTON_EXT |
int 0x40 |
mov byte[mousestate], 1 |
bt eax,24 ;left but. double click |
jc @f |
mov byte[mousestate], 0 |
bt eax,8 ;left but. down |
jnc event |
jc @f |
jmp event |
@@: |
mov eax,SF_MOUSE_GET |
mov ebx,SSF_WINDOW_POSITION |
int 0x40 |
897,9 → 902,14 |
cmp edx, 0 |
jl @f |
mov [ebp + PanelData.index], edx |
cmp byte[mousestate], 0 |
je @f |
call panels_OnKey.enter |
jmp event |
@@: |
call draw_panel |
jmp event |
align 4 |
.on_panel: |
call get_keybar_ind |
lea eax, [panels_mouse+4*eax] |
908,7 → 918,6 |
mov ebp, [active_panel] |
mov ecx, [ebp + PanelData.index] |
call dword[eax] |
@@: |
jmp event |
;input: |
974,6 → 983,14 |
pop edi esi edx ecx ebx |
ret |
align 4 |
OnMouse_ctrl_f39: |
sub eax, panels_mouse.ctrl+8 |
shr eax, 2 |
add eax, 0x3D |
call panels_OnKey.ctrl_f39 |
ret |
align 16 |
process_ctrl_keys: |
cmp byte [esi], 0 |
1106,6 → 1123,7 |
xor eax, eax |
ret 16 |
align 4 |
enum_plugins_callback: |
; LongBool __stdcall callback(f_name,sec_name,key_name,key_value); |
; [esp+4] = f_name, [esp+8] = sec_name, [esp+12] = key_name, [esp+16] = key_value |
3478,6 → 3496,7 |
jnz @b |
ret |
align 4 |
close_plugin_panel: |
; close plugin and restore old directory |
mov esi, [ebp + PanelData.parents] |
3515,6 → 3534,7 |
@@: |
pop ebx edx |
align 4 |
close_handle_if_unused: |
; edx=hPlugin, ebx=hFile |
push ebp |
3534,6 → 3554,7 |
pop ebp |
ret |
align 4 |
panels_IsHandleUsed: |
; edx=hPlugin, ebx=hFile |
mov ebp, panel1 |
3570,6 → 3591,7 |
inc esi |
ret |
align 4 |
panels_OnExit: |
; close plugin panels |
mov ebp, panel1 |
3578,6 → 3600,7 |
call close_plugin_panels |
ret |
align 4 |
panels_OnRedraw: |
or [cursor_x], -1 |
or [cursor_y], -1 |
3590,6 → 3613,7 |
call draw_panel |
ret |
align 4 |
init_console: |
mov ecx, [console_data_ptr] |
call pgfree |
3624,6 → 3648,7 |
mov [panel2.height], eax |
ret |
align 4 |
get_curfile_folder_entry: |
mov ecx, [ebp + PanelData.index] |
shl ecx, 2 |
3630,6 → 3655,8 |
add ecx, [ebp + PanelData.files] |
mov ecx, [ecx] |
ret |
align 4 |
get_curfile_name: |
call get_curfile_folder_entry |
add ecx, 40 |
4970,6 → 4997,7 |
sub ecx, edi |
ret 8 |
align 4 |
get_file_color: |
mov ah, [esi + 6] |
cmp ebp, [active_panel] |
4989,6 → 5017,7 |
@@: |
ret |
align 4 |
draw_name_column: |
mov eax, [column_index] |
mov [last_column_index], eax |
5151,6 → 5180,7 |
draw_empty_column: |
ret |
align 4 |
draw_size_column: |
add edi, [column_width] |
add edi, [column_width] |
5295,6 → 5325,7 |
cld |
ret |
align 4 |
draw_date_column: |
mov ecx, [column_height] |
dec ecx |
5361,6 → 5392,7 |
cld |
ret |
align 4 |
draw_time_column: |
mov ecx, [column_height] |
dec ecx |
5445,6 → 5477,7 |
;@@: pop esi |
; ret |
align 4 |
read_folder: |
mov eax, [ebp + PanelData.nfa] |
mov [dirinfo.size], eax |
7530,8 → 7563,12 |
rd 4 |
dd panels_OnKey.shift_f5 |
rd 7 |
; Ctrl |
rd 12 |
.ctrl: |
rd 2 |
repeat 9-3+1 |
dd OnMouse_ctrl_f39 |
end repeat |
rd 3 |
; Ctrl+Shift |
rd 12 |
; Alt |
7929,6 → 7966,8 |
bWasE0 db 0 |
ctrlstate db 0 |
mousestate db 0 |
align 4 |
MemForImage dd 0 |
restore_semicolon dd 0 |
bForHex db 0 |