Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2531 → Rev 2532

/programs/system/panel/trunk/ctx_menu.asm
1,66 → 1,44
;------------------------------------------------------------------------------
align 4
context_menu_start:
 
mov eax, 40
mov ebx, 00100111b
int 0x40
 
;call draw_ctx_menu
 
mov ebp, 2 ; 2 ç áâ® ¨á¯®«ì§ã¥âáï.
; // Alver 26.08.2007 // {
; xor ecx, ecx
; mov edx, [ctx_menu_PID]
; find_slot:
; inc ecx
; mov eax, 9
; mov ebx, process_info_buffer
; int 0x40
; cmp dword [process_info_buffer + 30], edx
; jne find_slot
mcall 40,00100111b
mov ecx, [ctx_menu_PID]
mcall 18,21
mov ecx, eax
; } \\ Alver \\
mov eax, 18
mov ebx, 3
;mov ecx, ecx ; :)
int 0x40
 
mcall 18,3
call draw_ctx_menu
 
;------------------------------------------------------------------------------
align 4
ctx_menu_still:
mov eax, 10
int 0x40
mcall 10
cmp eax, 2
jz ctx_menu_key
 
cmp eax, ebp ; cmp eax, 2
jz ctx_menu_key
cmp eax, 3
jz ctx_menu_button
 
cmp eax, 6
jz ctx_menu_mouse
 
call draw_ctx_menu
 
jmp ctx_menu_still
 
;------------------------------------------------------------------------------
align 4
ctx_menu_key:
mov eax, ebp ; mov eax, 2
int 0x40
 
mcall 2
;--------------------------------------
align 4
ctx_menu_button:
mov eax, 17
int 0x40
 
mcall 17
cmp ah, 1
; // Alver 26.08.2007 // {
; jne ctx_menu_still
jne @f
; } \\ Alver \\
 
mov eax, 18
mov ebx, ebp ; mov eax, 2
mov ebx, 2
mov ecx, [n_slot]
; // Alver 26.08.2007 // {
jmp .lllxxx
;--------------------------------------
align 4
@@:
cmp ah, 2
jne ctx_menu_still
68,53 → 46,51
mov ebx, 22
mov edx, [n_slot]
xor ecx, ecx
; \begin{diamond}[20.09.2007]
test byte [procinfo_for_detect+70], 2
 
test [procinfo_for_detect+70],byte 2
setnz cl
add cl, cl
; \end{diamond}[20.09.2007]
;--------------------------------------
align 4
.lllxxx:
; } \\ Alver \\
int 0x40
mcall
jmp ctx_menu_exit
 
;--------------------------------------
align 4
ctx_menu_mouse:
mov eax, 37
mov ebx, ebp ; mov ebx, 2
int 0x40
 
xchg eax, ecx ; cmp eax, 0 …᫨ ­¥ ®¤­  ¨§ ª­®¯®ª ­¥ ­ ¦ â  ¢®§¢à é ¥¬áï
mcall 37,2
xchg eax,ecx ; …᫨ ­¥ ®¤­  ¨§ ª­®¯®ª ­¥ ­ ¦ â  ¢®§¢à é ¥¬áï
; ¢ £« ¢­ë© 横« ¯®â®ª 
jecxz ctx_menu_still
 
mov eax, 37
xor ebx, ebx ; mov ebx, 1
inc ebx
int 0x40
mcall 37,1
 
cmp ax, 0 ; ’ã⠯஢¥à塞 ¯à®¨§®èñ«-«¨ ª«¨ª §  ¯à¥¤¥« ¬¨ ®ª­  ª®­â¥ªáâ­®£®
jb ctx_menu_exit ; ¬¥­î, ¥á«¨ §  ¯à¥¤¥« ¬¨ â® § ªà뢠¥¬ ª®­â¥ªáâ­®¥ ¬¥­î
 
cmp ax, 60 ; 41
ja ctx_menu_exit
 
shr eax, 16
cmp ax, 0
jb ctx_menu_exit
 
cmp ax, 133
ja ctx_menu_exit
 
jmp ctx_menu_still
 
;--------------------------------------
align 4
ctx_menu_exit:
or eax,-1
mcall
;------------------------------------------------------------------------------
align 4
;func draw_ctx_menu
draw_ctx_menu:
mcall 12, 1
 
xor eax, eax
dec eax ; mov eax, -1
int 0x40
 
func draw_ctx_menu
 
mcall 12, 1
 
xor eax, eax ; mov eax, 0
movzx ebx, [x_coord]
shl ebx, 16
add ebx, 133
122,78 → 98,58
sub ecx, 60 ; 41
shl ecx, 16
add ecx, 60 ; 41
mov edx, [system_colours + 20] ; sc.work
mov esi, [system_colours + 4] ; sc.grab
or esi, 0x81000000
mov edi, [system_colours] ; sc.frame
int 0x40
mcall ,,,[system_colours + 20],[system_colours]
 
mov eax, 8
mov ebx, 0 * 65536 + 133
mov ecx, 22 * 65536 + 17
mov edx, 0x40000001
int 0x40
mcall 8,<0,133>,<22,17>,0x40000001
 
;mov eax, 8
;mov ebx, 0 * 65536 + 133
;mov ecx, 40 * 65536 + 17
;mov edx, 0x40000002
;int 0x40
mov ecx, 40 * 65536 + 17
inc edx
int 0x40
mcall ,,<40,17>
shr eax, 1 ; mov eax, 4
mov ebx, 36 * 65536 + 7
mov ecx, [system_colours + 16] ; sc.grab_text
or ecx, 0x10000000
mcall 4,<36,7>,,ctx_menu_title,ctx_menu_title_end - ctx_menu_title
 
mov edx, ctx_menu_title
 
mov esi, ctx_menu_title_end - ctx_menu_title
int 0x40
 
add ebx, 1 * 65536
int 0x40
mcall
 
mov ebx, 4 * 65536 + 28
mov ecx, 0x80000000
mov edx, ctx_menu_text
mcall ,<4,28>,0x80000000,ctx_menu_text
 
int 0x40
add bx, 18
mov edx, ctx_menu_text2
 
test byte [procinfo_for_detect+70], 2
jz @f
mov edx, ctx_menu_text3
;--------------------------------------
align 4
@@:
add bx, 18
mcall
 
int 0x40
 
mcall 12, 2
 
ret
 
endf
 
;endf
;------------------------------------------------------------------------------
align 4
x_coord rw 1
y_coord rw 1
n_slot rd 1
ctx_menu_PID rd 1
;------------------------------------------------------------------------------
lsz ctx_menu_text,\
ru, <"X ‡ ªàëâì Alt + F4",0>,\
en, <"X Close Alt + F4",0>,\
 
;------------------------------------------------------------------------------
lsz ctx_menu_text2,\
ru, <25," ‘¢¥à­ãâì ",0>,\
en, <25," Minimize ",0>,\
 
;------------------------------------------------------------------------------
lsz ctx_menu_text3,\
ru, <24," ‚®ááâ ­®¢¨âì ",0>,\
en, <24," Restore ",0>
 
ctx_menu_PID rd 1
 
;------------------------------------------------------------------------------
ctx_menu_title:
db 'KolibriOS'
ctx_menu_title_end:
;------------------------------------------------------------------------------