Subversion Repositories Kolibri OS

Rev

Rev 8960 | Rev 9014 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8960 Rev 8984
Line 519... Line 519...
519
        mov     edi, allocatedregions
519
        mov     edi, allocatedregions
520
        int3
520
        int3
521
        jmp     $
521
        jmp     $
522
@@:
522
@@:
523
end if
523
end if
524
        or      eax, -1
524
        or      eax, SF_TERMINATE_PROCESS
525
        int     40h
525
        int     40h
Line -... Line 526...
-
 
526
 
526
 
527
align 16
527
get_event:
528
get_event:
528
        push    ebx
529
        push    ebx
529
        mov     ebx, [idle_interval]
530
        mov     ebx, [idle_interval]
530
        cmp     ebx, -1
531
        cmp     ebx, -1
Line 810... Line 811...
810
        and     [ctrlstate], not 0x20
811
        and     [ctrlstate], not 0x20
811
        jmp     .keybar
812
        jmp     .keybar
Line 812... Line 813...
812
 
813
 
813
align 16
814
align 16
814
mouse:
815
mouse:
815
        cmp     dword[num_screens],1
816
		cmp     dword[active_screen],0
816
		jg      event
817
		jg      event
817
		mov     eax,SF_MOUSE_GET
818
		mov     eax,SF_MOUSE_GET
818
        mov     ebx,SSF_BUTTON_EXT
819
        mov     ebx,SSF_BUTTON_EXT
819
        int     0x40
820
        int     0x40
820
        bt      eax,8
821
        bt      eax,8 ;left but. down
Line 821... Line 822...
821
        jnc     event
822
        jnc     event
822
 
823
 
823
        mov     eax,SF_MOUSE_GET
824
        mov     eax,SF_MOUSE_GET
Line 835... Line 836...
835
		shr     eax,16		
836
		shr     eax,16		
Line 836... Line 837...
836
 
837
 
837
        cmp     edx, 0
838
        cmp     edx, 0
838
		jl      .no_ch_pos
839
		jl      .no_ch_pos
839
		mov     ebx, [cur_height]
840
		mov     ebx, [cur_height]
-
 
841
		sub     ebx, 3
-
 
842
		cmp     edx, ebx
-
 
843
		je      .on_panel
840
		sub     ebx, 7
844
		sub     ebx, 7-3
841
		cmp     edx, ebx
845
		cmp     edx, ebx
Line 842... Line 846...
842
		jge     .no_ch_pos
846
		jge     .no_ch_pos
843
		
847
		
-
 
848
		push    edx eax
-
 
849
        mov     ecx, [cur_width]
-
 
850
if font_width & 3
-
 
851
        imul    ecx, font_width
844
		push    edx eax
852
		shr     ecx, 2
-
 
853
else
845
        mov     ecx, [cur_width]
854
        imul    ecx, font_width/4
846
        imul    ecx, font_width/4
855
end if
847
		xor     dx,dx
856
		xor     dx,dx
848
		sub     ax, 5 ;window border
857
		sub     ax, 5 ;window border
849
		div     cx
858
		div     cx
Line 888... Line 897...
888
		jl      @f
897
		jl      @f
889
		mov     [ebp + PanelData.index], edx
898
		mov     [ebp + PanelData.index], edx
890
@@:
899
@@:
891
		call    draw_panel
900
		call    draw_panel
892
        jmp     event
901
        jmp     event
-
 
902
.on_panel:
-
 
903
        call    get_keybar_ind
-
 
904
		lea     eax, [panels_mouse+4*eax]
-
 
905
		cmp     dword[eax], 0
-
 
906
		je      event
-
 
907
        mov     ebp, [active_panel]
-
 
908
        mov     ecx, [ebp + PanelData.index]
-
 
909
		call    dword[eax]
-
 
910
@@:
-
 
911
		jmp     event
-
 
912
 
-
 
913
;input:
-
 
914
; eax - coord x
-
 
915
;output:
-
 
916
; eax - key bar index (0 to 35) if press F1 index = 0
-
 
917
align 16
-
 
918
get_keybar_ind:
-
 
919
        push    ebx ecx edx esi edi
-
 
920
        xor     edx, edx
-
 
921
		mov     ebx, font_width
-
 
922
		sub     eax, 5 ;border
-
 
923
		div     ebx
-
 
924
		mov     edi, eax
-
 
925
 
-
 
926
		xor     esi, esi
-
 
927
        test    [ctrlstate], 3
-
 
928
        jz      @f
-
 
929
        inc     esi
-
 
930
@@:
-
 
931
        test    [ctrlstate], 0xC
-
 
932
        jz      @f
-
 
933
        or      si, 2
-
 
934
@@:
-
 
935
        test    [ctrlstate], 0x30
-
 
936
        jz      @f
-
 
937
        or      si, 4
-
 
938
@@:
-
 
939
        imul    esi, 12 ;ç¨á«® ª­®¯®ª F1-F12
-
 
940
        xor     ecx, ecx
-
 
941
        inc     ecx
-
 
942
        mov     ebx, 6
-
 
943
        mov     eax, [cur_width]
-
 
944
        sub     eax, 11+9+3*2+6
-
 
945
        cmp     eax, 7*11
-
 
946
        jl      @f
-
 
947
        cdq
-
 
948
        mov     bl, 11
-
 
949
        div     ebx
-
 
950
        mov     ebx, eax
-
 
951
@@:
-
 
952
        xor     edx, edx
-
 
953
.l:
-
 
954
        add     edx, 7
-
 
955
        cmp     ecx, 10
-
 
956
        jb      @f
-
 
957
        inc     edx
-
 
958
@@:
-
 
959
        cmp     edx, edi
-
 
960
		ja      .ret
-
 
961
        cmp     edx, [cur_width]
-
 
962
        ja      .ret
-
 
963
        cmp     ecx, 12
-
 
964
        jz      .ret
-
 
965
        lea     edx, [edx+ebx-6]
-
 
966
        inc     edx
-
 
967
        cmp     edx, [cur_width]
-
 
968
        ja      .ret
-
 
969
        inc     ecx
-
 
970
        jmp     .l
-
 
971
.ret:
-
 
972
		lea     eax, [esi+ecx-1]
-
 
973
        pop     edi esi edx ecx ebx   
-
 
974
        ret
Line 893... Line 975...
893
 
975
 
894
align 16
976
align 16
895
process_ctrl_keys:
977
process_ctrl_keys:
896
        cmp     byte [esi], 0
978
        cmp     byte [esi], 0
Line 4069... Line 4151...
4069
        lea     edi, [edi + edx*2]
4151
        lea     edi, [edi + edx*2]
4070
        pop     edx
4152
        pop     edx
4071
        ret
4153
        ret
Line 4072... Line 4154...
4072
 
4154
 
4073
;description:
4155
;description:
4074
; draw keys F1-F10
4156
; draw keys F1-F12
4075
align 16
4157
align 16
4076
draw_keybar:
4158
draw_keybar:
4077
        pushad
4159
        pushad
4078
        xor     eax, eax
4160
        xor     eax, eax
Line 4086... Line 4168...
4086
@@:
4168
@@:
4087
        test    [ctrlstate], 0x30
4169
        test    [ctrlstate], 0x30
4088
        jz      @f
4170
        jz      @f
4089
        or      al, 4
4171
        or      al, 4
4090
@@:
4172
@@:
4091
        imul    eax, 6*12
4173
        imul    eax, 6*12 ;¤«¨­  ⥪áâ  * ç¨á«® ª­®¯®ª F1-F12
4092
        mov     esi, [active_screen_keybar]
4174
        mov     esi, [active_screen_keybar]
4093
        add     esi, eax
4175
        add     esi, eax
4094
        xor     ecx, ecx
4176
        xor     ecx, ecx
4095
        inc     ecx
4177
        inc     ecx
4096
        xor     eax, eax
4178
        xor     eax, eax
Line 4106... Line 4188...
4106
        cdq
4188
        cdq
4107
        mov     bl, 11
4189
        mov     bl, 11
4108
        div     ebx
4190
        div     ebx
4109
        mov     ebx, eax
4191
        mov     ebx, eax
4110
@@:
4192
@@:
4111
        xor     edx, edx
4193
        xor     edx, edx ;¤«ï ª®­âà®«ï ¢ë室  §  ¯à¥¤¥«ë ¯ ­¥«¨
4112
.l:
4194
.l:
4113
        add     edx, 7
4195
        add     edx, 7
4114
        cmp     cl, 10
4196
        cmp     cl, 10
4115
        jb      @f
4197
        jb      @f
4116
        inc     edx
4198
        inc     edx
Line 4173... Line 4255...
4173
        pop     edi
4255
        pop     edi
4174
        sub     ecx, edi
4256
        sub     ecx, edi
4175
        shr     ecx, 1
4257
        shr     ecx, 1
4176
        mov     al, ' '
4258
        mov     al, ' '
4177
        mov     ah, [keybar_name_color]
4259
        mov     ah, [keybar_name_color]
4178
        rep     stosw
4260
        rep     stosw ;§ ªà áª  ª®­æ  ¯ ­¥«¨ ¯®¤ 梥⠪­®¯ª¨
4179
.done:
4261
 
4180
        cmp     [bDisplayQuickSearch], 0
4262
        cmp     [bDisplayQuickSearch], 0
4181
        jz      @f
4263
        jz      @f
4182
        push    QuickSearchDlg
4264
        push    QuickSearchDlg
4183
        call    DrawDialogBox
4265
        call    DrawDialogBox
4184
@@:
4266
@@:
4185
        popad
4267
        popad
4186
        ret
4268
        ret
Line -... Line 4269...
-
 
4269
 
4187
 
4270
align 16
4188
draw_cmdbar:
4271
draw_cmdbar:
4189
        mov     esi, [active_panel]
4272
        mov     esi, [active_panel]
4190
        add     esi, PanelData.dir
4273
        add     esi, PanelData.dir
4191
        xor     eax, eax
4274
        xor     eax, eax
Line 7426... Line 7509...
7426
        db      0,0,'1234567890-=',0,0
7509
        db      0,0,'1234567890-=',0,0
7427
        db      'qwertyuiop[]',0,0,'as'
7510
        db      'qwertyuiop[]',0,0,'as'
7428
        db      'dfghjkl;',27h,'`',0,'\zxcv'
7511
        db      'dfghjkl;',27h,'`',0,'\zxcv'
7429
        db      'bnm,./',0,0,0,' ',0,0,0,0,0,0
7512
        db      'bnm,./',0,0,0,' ',0,0,0,0,0,0
Line -... Line 7513...
-
 
7513
 
-
 
7514
align 4
-
 
7515
panels_mouse:
-
 
7516
        dd 0 ;f1
-
 
7517
        dd 0 ;f2
-
 
7518
        dd panels_OnKey.f3
-
 
7519
        dd panels_OnKey.f4
-
 
7520
        dd panels_OnKey.f5
-
 
7521
        dd 0 ;f6
-
 
7522
        dd panels_OnKey.f7
-
 
7523
        dd panels_OnKey.f8
-
 
7524
        dd 0,0,0 ;f9-f11
-
 
7525
        dd F12
-
 
7526
; Shift
-
 
7527
        rd 4
-
 
7528
        dd panels_OnKey.shift_f5
-
 
7529
        rd 7
-
 
7530
; Ctrl
-
 
7531
        rd 12
-
 
7532
; Ctrl+Shift
-
 
7533
        rd 12
-
 
7534
; Alt
-
 
7535
        rd 6
-
 
7536
        dd panels_OnKey.alt_f7
-
 
7537
        rd 4
-
 
7538
        dd panels_OnKey.alt_f12
-
 
7539
; Alt+Shift
-
 
7540
        rd 12
-
 
7541
; Alt+Ctrl
-
 
7542
        rd 12
-
 
7543
; Alt+Ctrl+Shift
-
 
7544
        rd 12
7430
 
7545
 
7431
; Š« ¢¨è­ë¥ á®ç¥â ­¨ï
7546
; Š« ¢¨è­ë¥ á®ç¥â ­¨ï
7432
; db scancode, reserved
7547
; db scancode, reserved
7433
; dw ctrlstate
7548
; dw ctrlstate
7434
; dd handler
7549
; dd handler