Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. macro start_draw_window x,y,xsize,ysize,areacolor,caption
  2. {
  3.         mov     eax, 12                 ; function 12:tell os about windowdraw
  4.         mov     ebx, 1                  ; 1, start of draw
  5.         int     0x40
  6.         ; DRAW WINDOW
  7.         mov     eax, 0                  ; function 0 : define and draw window
  8.         mov     ebx, x*65536+xsize      ; [x start] *65536 + [x size]
  9.         mov     ecx, y*65536+ysize      ; [y start] *65536 + [y size]
  10.         mov     edx,areacolor           ; color of work area RRGGBB
  11.         mov     edi,caption             ; window title
  12.         int     0x40
  13. }
  14.  
  15. macro end_draw_window
  16. {
  17.         mov     eax, 12                 ; end of redraw
  18.         mov     ebx, 2
  19.         int     0x40
  20. }
  21.  
  22. macro draw_button x,y,xsize,ysize,id,butcolor,text,textlen,textcolor
  23. {
  24.         mov     eax, 8                  ; function 8 : define and draw button
  25.         mov     ebx, (x)*65536+xsize      ; [x start] *65536 + [x size]
  26.         mov     ecx, (y)*65536+ysize      ; [y start] *65536 + [y size]
  27.         mov     edx, id                 ; button id
  28.         mov     esi, butcolor           ; button color RRGGBB
  29.         int     0x40
  30.  
  31.         mov     ebx, (x+5)*65536+y+(ysize-5)/2  ; Draw button text
  32.         mov     ecx, textcolor
  33.         mov     edx, text
  34.         xor     eax, eax
  35.         mov     al,  textlen
  36.         mov     esi, eax
  37.         mov     eax, 4
  38.         int     0x40
  39. }
  40.  
  41. macro outtextxy x,y,prompt,prompt_len,color
  42. {
  43.         mov     ebx, x*65536+y         ; draw info text with function 4
  44.         mov     ecx, color
  45.         mov     edx, prompt
  46.         xor     eax, eax
  47.         mov     al,  prompt_len
  48.         mov     esi, eax
  49.         mov     eax, 4
  50.         int     0x40
  51. }
  52.  
  53. macro bar x,y,xsize,ysize,color
  54. {
  55.   mov eax, 13
  56.   mov ebx, x*65536+xsize
  57.   mov ecx, y*65536+ysize
  58.   mov edx, color
  59.   int 0x40
  60. }
  61.  
  62. macro line x1,y1,x2,y2,color
  63. {
  64.   mov eax, 38
  65.   mov ebx, x1*65536+x2
  66.   mov ecx, y1*65536+y2
  67.   mov edx, color
  68.   int 0x40
  69. }
  70.  
  71. macro rectangle x,y,xsize,ysize,color
  72. {
  73.   x2=x+xsize
  74.   y2=y+ysize
  75.   line x,y,x2,y,color
  76.   line x,y,x,y2,color
  77.   line x,y2,x2,y2,color
  78.   line x2,y,x2,y2,color
  79. }
  80.  
  81. macro putpixel x,y,color
  82. {
  83.   mov eax, 1
  84.   mov ebx, x
  85.   mov ecx, y
  86.   mov edx, color
  87.   int 0x40
  88. }
  89.  
  90. macro lights_on cns
  91. {
  92.    mov ax, cns
  93.    test ax, 0x40
  94.    jz @f
  95.    push ax
  96.    bar 532, 53, 10, 11, 0x0000FF00
  97.    pop ax
  98.  @@:
  99.    test ax, 0x80
  100.    jz @f
  101.    push ax
  102.    bar 500, 53, 10, 11, 0x0000FF00
  103.    pop ax
  104.  @@:
  105.    test ax, 0x100
  106.    jz @f
  107.    bar 565, 53, 10, 11, 0x0000FF00
  108.  @@:
  109. }
  110.  
  111. out_symbol:
  112.         ;mov    ebx, x*65536+y         ; draw info text with function 4
  113.         ;mov    ecx, color
  114.         ;mov    edx, prompt
  115.         mov     esi, 1
  116.         mov     eax, 4
  117.         int     0x40
  118.   ret
  119.  
  120.