Subversion Repositories Kolibri OS

Rev

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

  1. include 'proc32.inc'
  2.  
  3. macro start_draw_window x,y,xsize,ysize,areacolor,caption;,capsize
  4. {
  5.         ;pusha
  6.         mov     eax, 12                 ; function 12:tell os about windowdraw
  7.         mov     ebx, 1                  ; 1, start of draw
  8.         int     0x40
  9.         ; DRAW WINDOW
  10.         mov     eax, 0                  ; function 0 : define and draw window
  11.         mov     ebx, x*65536+xsize      ; [x start] *65536 + [x size]
  12.         mov     ecx, y*65536+ysize      ; [y start] *65536 + [y size]
  13.         mov     edx, areacolor           ; color of work area RRGGBB
  14.         mov     esi, 0x00334455          ; color of grab bar  RRGGBB
  15.         mov     edi, 0x00ddeeff          ; color of frames    RRGGBB
  16.         int     0x40
  17.         ; WINDOW LABEL
  18.         ;mov     eax, 4                  ; function 4 : write text to window
  19.         ;mov     ebx, 8*65536+8          ; [x start] *65536 + [y start]
  20.         ;mov     ecx, 0x00ffffff         ; color of text RRGGBB
  21.         ;mov     edx, caption            ; pointer to text beginning
  22.         ;mov     esi, capsize    ; text length
  23.         mov     eax, 71                  ; function 71.1
  24.         mov     ebx, 1                   ; set window caption
  25.         mov     ecx, caption             ; pointer to text
  26.         int     0x40
  27.         ;popa
  28. }
  29.  
  30. macro end_draw_window
  31. {
  32.         mov     eax, 12                 ; end of redraw
  33.         mov     ebx, 2
  34.         int     0x40
  35. }
  36.  
  37. proc draw_button stdcall, x:dword, y:dword, xsize:dword, ysize:dword, \
  38.         id:dword, butcolor:dword, text:dword, textlen:byte, textcolor:dword
  39.  
  40.         ;pusha
  41.         mov     ebx, dword [x]
  42.         shl     ebx, 16
  43.         add     ebx, dword [xsize]        ; [x start] *65536 + [x size]
  44.  
  45.         mov     ecx, dword [y]
  46.         shl     ecx, 16
  47.         add     ecx, dword [ysize]        ; [y start] *65536 + [y size]
  48.  
  49.         mov     edx, dword [id]                 ; button id
  50.         mov     esi, dword [butcolor]           ; button color RRGGBB
  51.         mov     eax, 8                  ; function 8 : define and draw button
  52.         int     0x40
  53.  
  54.         mov     ebx, dword [x]
  55.         add     ebx, 5
  56.         shl     ebx, 16
  57.         mov     eax, dword [ysize]
  58.         sub     eax, 5
  59.         shr     eax, 1
  60.         add     ebx, eax
  61.         add     ebx, dword [y]  ;mov    ebx, (x+5)*65536+y+(ysize-5)/2  ; Draw button text
  62.  
  63.         mov     ecx, dword [textcolor]
  64.         mov     edx, dword [text]
  65.         xor     eax, eax
  66.         mov     al,  byte [textlen]
  67.         mov     esi, eax
  68.         mov     eax, 4
  69.         int     0x40
  70.         ;popa
  71. ret
  72. endp
  73.  
  74. macro outtextxy x,y,prompt,prompt_len,color
  75. {
  76.         pusha
  77.         mov     ebx, x*65536+y         ; draw info text with function 4
  78.         mov     ecx, color
  79.         mov     edx, prompt
  80.         xor     eax, eax
  81.         mov     al,  prompt_len
  82.         mov     esi, eax
  83.         mov     eax, 4
  84.         int     0x40
  85.         popa
  86. }
  87.  
  88. ;proc bar x:dword, y:dword, xsize:dword, ysize:dword, color:dword
  89. macro bar x, y, xsize, ysize, color
  90. {
  91.         pusha
  92.         mov eax, 13
  93.         ;mov ebx, [x]
  94.         ;shl ebx, 16
  95.         ;add ebx, [xsize]
  96.         ;mov ecx, [y]
  97.         ;shl ecx, 16
  98.         ;add ecx, [ysize]
  99.         ;mov edx, [color]
  100.         mov     ebx, x*65536+xsize
  101.         mov     ecx, y*65536+ysize
  102.         mov edx, color
  103.  
  104.         int 0x40
  105.         popa
  106. ;ret
  107. ;endp
  108. }
  109.  
  110. macro line x1,y1,x2,y2,color
  111. {
  112.   pusha
  113.   mov eax, 38
  114.   mov ebx, x1*65536+x2
  115.   mov ecx, y1*65536+y2
  116.   mov edx, color
  117.   int 0x40
  118.   popa
  119. }
  120.  
  121. macro rectangle x,y,xsize,ysize,color
  122. {
  123.   x2=x+xsize
  124.   y2=y+ysize
  125.   line x,y,x2,y,color
  126.   line x,y,x,y2,color
  127.   line x,y2,x2,y2,color
  128.   line x2,y,x2,y2,color
  129. }
  130.  
  131. macro putpixel x,y,color
  132. {
  133.   mov eax, 1
  134.   mov ebx, x
  135.   mov ecx, y
  136.   mov edx, color
  137.   int 0x40
  138. }
  139.  
  140.