Subversion Repositories Kolibri OS

Rev

Rev 2195 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. ;------------------------------------------------------------------------------
  2. align 4
  3. context_menu_start:
  4.         mcall   40,00100111b
  5.         mov     ecx, [ctx_menu_PID]
  6.         mcall   18,21
  7.         mov     ecx, eax
  8.         mcall   18,3
  9.         call    draw_ctx_menu
  10. ;------------------------------------------------------------------------------
  11. align 4
  12. ctx_menu_still:
  13.         mcall   10
  14.         cmp     eax, 2
  15.         jz      ctx_menu_key
  16.  
  17.         cmp     eax, 3
  18.         jz      ctx_menu_button
  19.  
  20.         cmp     eax, 6
  21.         jz      ctx_menu_mouse
  22.  
  23.         call    draw_ctx_menu
  24.         jmp     ctx_menu_still
  25. ;------------------------------------------------------------------------------
  26. align 4
  27. ctx_menu_key:
  28.         mcall   2
  29. ;--------------------------------------
  30. align 4
  31. ctx_menu_button:
  32.         mcall   17
  33.         cmp     ah, 1
  34.         jne     @f
  35.  
  36.         mov     eax, 18
  37.         mov     ebx, 2
  38.         mov     ecx, [n_slot]
  39.         jmp     .lllxxx
  40. ;--------------------------------------
  41. align 4
  42. @@:
  43.         cmp     ah, 2
  44.         jne     ctx_menu_still
  45.         mov     eax, 18
  46.         mov     ebx, 22
  47.         mov     edx, [n_slot]
  48.         xor     ecx, ecx
  49.  
  50.         test    [procinfo_for_detect+70],byte 2
  51.         setnz   cl
  52.         add     cl, cl
  53. ;--------------------------------------
  54. align 4
  55. .lllxxx:
  56.         mcall
  57.         jmp     ctx_menu_exit
  58. ;--------------------------------------
  59. align 4
  60. ctx_menu_mouse:
  61.         mcall   37,2
  62.         xchg    eax,ecx ; …᫨ ­¥ ®¤­  ¨§ ª­®¯®ª ­¥ ­ ¦ â  ¢®§¢à é ¥¬áï
  63.                         ; ¢ £« ¢­ë© 横« ¯®â®ª 
  64.         jecxz   ctx_menu_still
  65.  
  66.         mcall   37,1
  67.  
  68.         cmp     ax, 0           ; ’ã⠯஢¥à塞 ¯à®¨§®èñ«-«¨ ª«¨ª §  ¯à¥¤¥« ¬¨ ®ª­  ª®­â¥ªáâ­®£®
  69.         jb      ctx_menu_exit   ; ¬¥­î, ¥á«¨ §  ¯à¥¤¥« ¬¨ â® § ªà뢠¥¬ ª®­â¥ªáâ­®¥ ¬¥­î
  70.  
  71.         cmp     ax, 60           ; 41
  72.         ja      ctx_menu_exit
  73.  
  74.         shr     eax, 16
  75.         cmp     ax, 0
  76.         jb      ctx_menu_exit
  77.  
  78.         cmp     ax, 133
  79.         ja      ctx_menu_exit
  80.  
  81.         jmp        ctx_menu_still
  82. ;--------------------------------------
  83. align 4
  84. ctx_menu_exit:
  85.         or      eax,-1
  86.         mcall
  87. ;------------------------------------------------------------------------------
  88. align 4
  89. ;func  draw_ctx_menu
  90. draw_ctx_menu:
  91.         mcall   12, 1
  92.  
  93.         xor     eax, eax
  94.         movzx   ebx, [x_coord]
  95.         shl     ebx, 16
  96.         add     ebx, 133
  97.         movzx   ecx, [y_coord]
  98.         sub     ecx, 60         ; 41
  99.         shl     ecx, 16
  100.         add     ecx, 60         ; 41
  101.         mov     esi, [system_colours + 4]     ; sc.grab
  102.         or      esi, 0x81000000
  103.         mcall   ,,,[system_colours + 20],[system_colours]
  104.  
  105.         mcall   8,<0,133>,<22,17>,0x40000001
  106.  
  107.         inc     edx
  108.         mcall   ,,<40,17>
  109.        
  110.         mov     ecx, [system_colours + 16]    ; sc.grab_text
  111.         or      ecx, 0x10000000
  112.         mcall   4,<36,7>,,ctx_menu_title,ctx_menu_title_end - ctx_menu_title
  113.  
  114.         add     ebx, 1 * 65536
  115.         mcall
  116.  
  117.         mcall   ,<4,28>,0x80000000,ctx_menu_text
  118.  
  119.         mov     edx, ctx_menu_text2
  120.  
  121.         test    byte [procinfo_for_detect+70], 2
  122.         jz      @f
  123.         mov     edx, ctx_menu_text3
  124. ;--------------------------------------
  125. align 4
  126. @@:
  127.         add     bx, 18
  128.         mcall
  129.  
  130.         mcall   12,2
  131.         ret
  132. ;endf
  133. ;------------------------------------------------------------------------------
  134. align 4
  135. x_coord rw      1
  136. y_coord rw      1
  137. n_slot  rd      1
  138. ctx_menu_PID    rd      1
  139. ;------------------------------------------------------------------------------
  140. lsz ctx_menu_text,\
  141.   ru, <"X ‡ ªàëâì    Alt + F4",0>,\
  142.   en, <"X Close      Alt + F4",0>,\
  143. ;------------------------------------------------------------------------------
  144. lsz ctx_menu_text2,\
  145.   ru, <25," ‘¢¥à­ãâì           ",0>,\
  146.   en, <25," Minimize           ",0>,\
  147. ;------------------------------------------------------------------------------
  148. lsz ctx_menu_text3,\
  149.   ru, <24," ‚®ááâ ­®¢¨âì       ",0>,\
  150.   en, <24," Restore            ",0>
  151. ;------------------------------------------------------------------------------
  152. ctx_menu_title:
  153.         db 'KolibriOS'
  154. ctx_menu_title_end:
  155. ;------------------------------------------------------------------------------