Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8960 → Rev 8984

/programs/fs/kfar/trunk/dialogs.inc
41,7 → 41,7
; message loop
.event:
; call get_event
push 10
push SF_WAIT_EVENT
pop eax
int 40h
dec eax
48,12 → 48,14
jz .redraw
dec eax
jz .key
sub eax,4
jz .event ;todo: mouse
jmp exit
.redraw:
call draw_window
jmp .event
.key:
mov al, 2
mov al, SF_GET_KEY
int 40h
shr eax, 8
cmp al, 0xE0
944,7 → 946,7
jnz @f
movzx ecx, byte [eax+11]
sub ecx, '0'
push 24
push SF_CD
pop eax
mov ebx, edx
int 40h
1091,9 → 1093,9
xor ecx, ecx
cmp al, 1
sbb ecx, -2
push 26
push SF_SYSTEM_GET
pop eax
push 2
push SSF_KEYBOARD_LAYOUT
pop ebx
mov edx, layout
int 0x40
/programs/fs/kfar/trunk/kfar.asm
521,9 → 521,10
jmp $
@@:
end if
or eax, -1
or eax, SF_TERMINATE_PROCESS
int 40h
 
align 16
get_event:
push ebx
mov ebx, [idle_interval]
812,12 → 813,12
 
align 16
mouse:
cmp dword[num_screens],1
cmp dword[active_screen],0
jg event
mov eax,SF_MOUSE_GET
mov ebx,SSF_BUTTON_EXT
int 0x40
bt eax,8
bt eax,8 ;left but. down
jnc event
 
mov eax,SF_MOUSE_GET
837,13 → 838,21
cmp edx, 0
jl .no_ch_pos
mov ebx, [cur_height]
sub ebx, 7
sub ebx, 3
cmp edx, ebx
je .on_panel
sub ebx, 7-3
cmp edx, ebx
jge .no_ch_pos
push edx eax
mov ecx, [cur_width]
if font_width & 3
imul ecx, font_width
shr ecx, 2
else
imul ecx, font_width/4
end if
xor dx,dx
sub ax, 5 ;window border
div cx
890,8 → 899,81
@@:
call draw_panel
jmp event
.on_panel:
call get_keybar_ind
lea eax, [panels_mouse+4*eax]
cmp dword[eax], 0
je event
mov ebp, [active_panel]
mov ecx, [ebp + PanelData.index]
call dword[eax]
@@:
jmp event
 
;input:
; eax - coord x
;output:
; eax - key bar index (0 to 35) if press F1 index = 0
align 16
get_keybar_ind:
push ebx ecx edx esi edi
xor edx, edx
mov ebx, font_width
sub eax, 5 ;border
div ebx
mov edi, eax
 
xor esi, esi
test [ctrlstate], 3
jz @f
inc esi
@@:
test [ctrlstate], 0xC
jz @f
or si, 2
@@:
test [ctrlstate], 0x30
jz @f
or si, 4
@@:
imul esi, 12 ;ç¨á«® ª­®¯®ª F1-F12
xor ecx, ecx
inc ecx
mov ebx, 6
mov eax, [cur_width]
sub eax, 11+9+3*2+6
cmp eax, 7*11
jl @f
cdq
mov bl, 11
div ebx
mov ebx, eax
@@:
xor edx, edx
.l:
add edx, 7
cmp ecx, 10
jb @f
inc edx
@@:
cmp edx, edi
ja .ret
cmp edx, [cur_width]
ja .ret
cmp ecx, 12
jz .ret
lea edx, [edx+ebx-6]
inc edx
cmp edx, [cur_width]
ja .ret
inc ecx
jmp .l
.ret:
lea eax, [esi+ecx-1]
pop edi esi edx ecx ebx
ret
 
align 16
process_ctrl_keys:
cmp byte [esi], 0
jz .done
4071,7 → 4153,7
ret
 
;description:
; draw keys F1-F10
; draw keys F1-F12
align 16
draw_keybar:
pushad
4088,7 → 4170,7
jz @f
or al, 4
@@:
imul eax, 6*12
imul eax, 6*12 ;¤«¨­  ⥪áâ  * ç¨á«® ª­®¯®ª F1-F12
mov esi, [active_screen_keybar]
add esi, eax
xor ecx, ecx
4108,7 → 4190,7
div ebx
mov ebx, eax
@@:
xor edx, edx
xor edx, edx ;¤«ï ª®­âà®«ï ¢ë室  §  ¯à¥¤¥«ë ¯ ­¥«¨
.l:
add edx, 7
cmp cl, 10
4175,8 → 4257,8
shr ecx, 1
mov al, ' '
mov ah, [keybar_name_color]
rep stosw
.done:
rep stosw ;§ ªà áª  ª®­æ  ¯ ­¥«¨ ¯®¤ 梥⠪­®¯ª¨
 
cmp [bDisplayQuickSearch], 0
jz @f
push QuickSearchDlg
4185,6 → 4267,7
popad
ret
 
align 16
draw_cmdbar:
mov esi, [active_panel]
add esi, PanelData.dir
7428,6 → 7511,38
db 'dfghjkl;',27h,'`',0,'\zxcv'
db 'bnm,./',0,0,0,' ',0,0,0,0,0,0
 
align 4
panels_mouse:
dd 0 ;f1
dd 0 ;f2
dd panels_OnKey.f3
dd panels_OnKey.f4
dd panels_OnKey.f5
dd 0 ;f6
dd panels_OnKey.f7
dd panels_OnKey.f8
dd 0,0,0 ;f9-f11
dd F12
; Shift
rd 4
dd panels_OnKey.shift_f5
rd 7
; Ctrl
rd 12
; Ctrl+Shift
rd 12
; Alt
rd 6
dd panels_OnKey.alt_f7
rd 4
dd panels_OnKey.alt_f12
; Alt+Shift
rd 12
; Alt+Ctrl
rd 12
; Alt+Ctrl+Shift
rd 12
 
; Š« ¢¨è­ë¥ á®ç¥â ­¨ï
; db scancode, reserved
; dw ctrlstate