Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1547 Asper 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