Subversion Repositories Kolibri OS

Rev

Rev 2549 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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