Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3749 GerdtR 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
	or	edx, 0x34000000
15
	mov	edi, caption
16
;        mov     esi, 0x00334455          ; color of grab bar  RRGGBB
17
;        mov     edi, 0x00ddeeff          ; color of frames    RRGGBB
18
	int	0x40
19
	;popa
20
}
21
 
22
macro end_draw_window
23
{
24
	mov	eax, 12 		; end of redraw
25
	mov	ebx, 2
26
	int	0x40
27
}
28
 
29
macro change_window_place_size x,y,xsize,ysize
30
{
31
	mov	eax, 67 		 ; function 67 : replace and/or resize window
32
	mov	ebx, x
33
	mov	ecx, y
34
	mov	edx, xsize
35
	mov	esi, ysize
36
	int	0x40
37
}
38
 
39
proc draw_button stdcall, x:dword, y:dword, xsize:dword, ysize:dword, \
40
	id:dword, butcolor:dword, text:dword, textlen:byte, textcolor:dword
41
 
42
	pusha
43
	mov	ebx, dword [x]
44
	shl	ebx, 16
45
	add	ebx, dword [xsize]	  ; [x start] *65536 + [x size]
46
 
47
	mov	ecx, dword [y]
48
	shl	ecx, 16
49
	add	ecx, dword [ysize]	  ; [y start] *65536 + [y size]
50
 
51
	mov	edx, dword [id] 		; button id
52
	mov	esi, dword [butcolor]		; button color RRGGBB
53
	mov	eax, 8			; function 8 : define and draw button
54
	int	0x40
55
 
56
	mov	ebx, dword [x]
57
	add	ebx, 5
58
	shl	ebx, 16
59
	mov	eax, dword [ysize]
60
	sub	eax, 5
61
	shr	eax, 1
62
	add	ebx, eax
63
	add	ebx, dword [y]	;mov    ebx, (x+5)*65536+y+(ysize-5)/2  ; Draw button text
64
 
65
	mov	ecx, dword [textcolor]
66
	mov	edx, dword [text]
67
	xor	eax, eax
68
	mov	al,  byte [textlen]
69
	mov	esi, eax
70
	mov	eax, 4
71
	int	0x40
72
	popa
73
ret
74
endp
75
 
76
;macro outtextxy x,y,prompt,prompt_len,color
77
;{
78
proc outtextxy stdcall, x:dword, y:dword, prompt:dword, prompt_len:dword, color:dword
79
	pusha
80
	mov	eax, 4
81
	mov	ebx, dword [x]	       ; draw info text with function 4
82
	shl	ebx, 16
83
	or	ebx, dword [y]
84
	mov	ecx, dword [color]
85
	mov	edx, dword [prompt]
86
	mov	esi, dword [prompt_len]
87
	int	0x40
88
	popa
89
ret
90
endp
91
;}
92
 
93
proc bar x:dword, y:dword, xsize:dword, ysize:dword, color:dword
94
;macro bar x, y, xsize, ysize, color
95
;{
96
	pusha
97
	mov	eax, 13
98
	mov	ebx, [x]
99
	shl	ebx, 16
100
	add	ebx, [xsize]
101
	mov	ecx, [y]
102
	shl	ecx, 16
103
	add	ecx, [ysize]
104
	mov	edx, [color]
105
	;mov     ebx, x*65536+xsize
106
	;mov     ecx, y*65536+ysize
107
	;mov     edx, color
108
 
109
	int	0x40
110
	popa
111
ret
112
endp
113
;}
114
 
115
 
116
proc line x1:dword, y1:dword, x2:dword, y2:dword, color:dword
117
;macro line x1,y1,x2,y2,color
118
;{
119
	pusha
120
	mov	eax, 38
121
;        mov     ebx, x1*65536+x2
122
;        mov     ecx, y1*65536+y2
123
	mov	ebx, [x1]
124
	shl	ebx, 16
125
	add	ebx, [x2]
126
	mov	ecx, [y1]
127
	shl	ecx, 16
128
	add	ecx, [y2]
129
 
130
	mov	edx, [color]
131
	int	0x40
132
	popa
133
ret
134
endp
135
;}
136
 
137
 
138
;macro rectangle x,y,xsize,ysize,color
139
;{
140
;  x2=x+xsize
141
;  y2=y+ysize
142
;  line x,y,x2,y,color
143
;  line x,y,x,y2,color
144
;  line x,y2,x2,y2,color
145
;  line x2,y,x2,y2,color
146
;}
147
 
148
proc rectangle x:dword, y:dword, xsize:dword, ysize:dword, color:dword
149
	pusha
150
	mov	eax, [x]
151
	mov	ebx, eax
152
	add	ebx, [xsize]
153
	mov	ecx, [y]
154
	mov	edx, ecx
155
	add	edx, [ysize]
156
	mov	edi, [color]
157
 
158
	stdcall line, eax,ecx,ebx,ecx,edi
159
	stdcall line, eax,ecx,eax,edx,edi
160
	stdcall line, eax,edx,ebx,edx,edi
161
	stdcall line, ebx,ecx,ebx,edx,edi
162
	popa
163
ret
164
endp
165
 
166
 
167
proc putpixel stdcall, x:dword, y:dword, color:dword
168
;macro putpixel x,y,color
169
;{
170
	pusha
171
	mov	eax, 1
172
	mov	ebx, [x] ;x
173
	mov	ecx, [y] ;y
174
	mov	edx, [color] ;color
175
	int	0x40
176
	popa
177
ret
178
endp
179
;}
180