Subversion Repositories Kolibri OS

Rev

Rev 1805 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1805 Rev 8287
Line 4... Line 4...
4
 
4
 
5
char   os_name[8]   = {'M','E','N','U','E','T','0','1'};
5
char   os_name[8]   = {'M','E','N','U','E','T','0','1'};
6
dword  os_version   = 0x00000001;
6
dword  os_version   = 0x00000001;
7
dword  start_addr   = #main;
7
dword  start_addr   = #main;
8
dword  final_addr   = #stop+32;
8
dword  final_addr   = #stop+32;
9
dword  alloc_mem    = 0x00100000;
9
dword  alloc_mem    = 0x0090000;
10
dword  x86esp_reg   = 0x00100000;
10
dword  x86esp_reg   = 0x0090000;
11
dword  I_Param      = #param;
11
dword  I_Param      = 0x0;
12
dword  I_Icon       = 0x0;
-
 
Line 13... Line 12...
13
char param[256]="";
12
dword  I_Icon       = 0x0;
14
 
-
 
15
//Events
13
 
16
#define evMouse	6
14
//Events
17
#define evButton	3
15
#define evButton	3
Line 18... Line 16...
18
#define evKey		2
16
#define evKey		2
Line 42... Line 40...
42
 EAX = 17;
40
 EAX = 17;
43
 $int  0x40
41
 $int  0x40
44
 EAX = EAX >> 8;
42
 EAX = EAX >> 8;
45
}
43
}
Line 46... Line 44...
46
 
44
 
47
inline fastcall dword strlen(dword EDI){
-
 
48
	EAX=0;
45
inline fastcall ExitProcess(){
49
	ECX=-1;
46
 EAX = -1;              // close this program
50
	$REPNE $SCASB
-
 
51
	EAX-=2+ECX;
47
 $int 0x40
Line 52... Line -...
52
}
-
 
53
 
48
}
54
byte WindowRePaint=0;
49
 
55
inline fastcall void WindowRedrawStatus(dword EBX)
50
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,EDI)
-
 
51
{
56
{
52
	EAX = 12;              // function 12:tell os about windowdraw
57
	EAX = 12;              // function 12:tell os about windowdraw
-
 
58
	$int 0x40
-
 
Line 59... Line -...
59
	IF (EBX==1) WindowRePaint=1; ELSE WindowRePaint=0;
-
 
60
}
-
 
61
 
53
	EBX = 1;
62
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI)
54
	$int 0x40
63
{
55
	
64
	EBX = x << 16 + sizeX;
-
 
65
	ECX = y << 16 + sizeY;
56
	EBX = x << 16 + sizeX;
66
	EDX = mainAreaType << 24 | mainAreaColour;
57
	ECX = y << 16 + sizeY;
67
	ESI = headerType << 24 | headerColour;
-
 
Line -... Line 58...
-
 
58
	EDX = mainAreaType << 24 | mainAreaColour;
-
 
59
	$xor eax,eax
-
 
60
	$int 0x40
-
 
61
	
Line 68... Line 62...
68
	$xor eax,eax
62
	EAX = 12;              // function 12:tell os about windowdraw
69
	$int 0x40
63
	EBX = 2;
70
}   
64
	$int 0x40
71
 
65
}
Line 85... Line 79...
85
EDX = x<<16+y;
79
	EDX = x<<16+y;
86
ESI = fontType<<24+ESI;
80
	ESI = fontType<<24+ESI;
87
$int 0x40;
81
	$int 0x40;
88
} 
82
} 
Line 89... Line -...
89
 
-
 
90
 
-
 
91
 
83
 
92
void DrawBar(dword x,y,w,h,EDX)
84
void DrawBar(dword x,y,w,h,EDX)
93
{
85
{
94
	EAX = 13;
86
	EAX = 13;
95
	EBX = x<<16+w;
87
	EBX = x<<16+w;
Line 110... Line 102...
110
	EAX = 8;
102
	EAX = 8;
111
	EDX += BT_DEL;
103
	EDX += BT_DEL;
112
	$int 0x40;
104
	$int 0x40;
113
}
105
}
Line 114... Line -...
114
 
-
 
115
void DrawFlatButton(dword x,y,width,height,id,color,text)
-
 
116
{
-
 
117
	DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE);
-
 
118
	DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7);
-
 
119
	DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª 
-
 
120
	IF (id<>0)	DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); //ª­®¯ª 
-
 
121
	WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
-
 
122
}
-
 
123
 
-
 
124
 
106
 
Line 125... Line 107...
125
dword generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
107
dword generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
126
 
108
 
127
:int random(int max)
109
:int random(int max)
Line 151... Line 133...
151
    int 0x40
133
    int 0x40
152
    ror eax,16
134
    ror eax,16
153
  }
135
  }
154
  generator = EAX;
136
  generator = EAX;
155
}
137
}
156
 
-
 
157
inline fastcall ExitProcess(){
-
 
158
 EAX = -1;              // close this program
-
 
159
 $int 0x40
-
 
160
}
-
 
161
 
-
 
162
void DrawRegion_3D(dword x,y,width,height,color1,color2)
-
 
163
{
-
 
164
	DrawBar(x,y,width+1,1,color1);
-
 
165
	DrawBar(x,y+1,1,height-1,color1);
-
 
166
	DrawBar(x+width,y+1,1,height,color2);
-
 
167
	DrawBar(x,y+height,width,1,color2);
-
 
168
}
-
 
169
>
138
>