Subversion Repositories Kolibri OS

Rev

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

  1. ; Detecting mouse right-clicks.
  2.  
  3. detect_start:
  4.  
  5.         mov     eax, 40
  6.         mov     ebx, 00100000b
  7.         int     0x40
  8.  
  9.    detect_still:
  10.         ;mov     eax, 10        ;  ¡®â ¥â ­¥ ᮢᥬ ª®à४⭮, ¯®ç¥¬ã å§.
  11.         mov     eax, 23
  12.         mov     ebx, 4
  13.         int     0x40
  14.         ;cmp     eax, 6
  15.         ;jne     detect_still
  16.  
  17.         mov     eax, 37
  18.         mov     ebx, 2          ; Ž¯à è¨¢ ¥¬ ª­®¯ª¨ ¬ëè¨
  19.         int     0x40
  20.  
  21.         test    eax, ebx        ; test    eax, 00000010b ˆ­â¥à¥áã¥â ⮫쪮 ¯à ¢ ï ª­®¯ª 
  22.         jz      detect_still    ; ¥â - ? ‚®§¢à é ¥¬áï ¢ £« ¢­ë© 横« ¯®â®ª 
  23.  
  24.    mouse_btn_up:
  25.         mov     eax, 37
  26.         mov     ebx, 2
  27.         int     0x40
  28.  
  29.         test    eax, ebx
  30.         jnz     mouse_btn_up
  31.  
  32.         mov     eax, 37
  33.         xor     ebx, ebx        ; mov     ebx, 0
  34.         int     0x40
  35.  
  36.         mov     ecx, [panel_y_pos]
  37.         shr     ecx, 16
  38.         inc     ecx
  39.  
  40.         cmp     ax, cx
  41.         jb      detect_still
  42.         add     ecx, 15
  43.         cmp     ax, cx
  44.         ja      detect_still
  45.  
  46.         shr     eax, 16
  47.         xor     edx, edx        ; mov     edx, 1
  48.         inc     edx
  49.  
  50.    detect_button:
  51.         mov     ebx, edx
  52.         imul    ebx, 6 * 10
  53. ; // Alver  26.08.2007 // {
  54. ;       add     ebx, 4
  55.         add     ebx, 64
  56. ; } \\ Alver \\
  57.  
  58.         cmp     eax, ebx
  59.         jb      detect_still
  60.  
  61.         add     ebx, 60 - 1
  62.         cmp     eax, ebx
  63.         ja      @f
  64.  
  65.         shl     edx, 2
  66.         mov     ecx, [app_list + edx - 4]
  67.         cmp     ecx, -1
  68.         jz      detect_still
  69.  
  70.         mov     [x_coord], ax
  71.  
  72.         mov     eax, 37
  73.         xor     ebx, ebx        ; mov     ebx, 0
  74.         int     0x40
  75.  
  76.         mov     [y_coord], ax
  77.  
  78.         mov     [n_slot], ecx
  79.  
  80.         mov     eax, 9
  81.         mov     ebx, procinfo_for_detect
  82.         int     0x40
  83.  
  84.         mov     eax, 51
  85.         mov     ebx, 1
  86.         mov     ecx, context_menu_start
  87.         mov     edx, ctx_menu_stack
  88.         int     0x40
  89.  
  90.         mov     [ctx_menu_PID], eax
  91.  
  92.         jmp     detect_still
  93.  
  94.    @@:
  95.         cmp     edx, [max_applications]
  96.         jae     detect_still
  97.         inc     edx
  98.         jmp     detect_button
  99.