Subversion Repositories Kolibri OS

Rev

Rev 1805 | Rev 7482 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1805 yogev_ezra 1
typedef unsigned __int32 Dword;
2
typedef unsigned __int16 Word;
3
typedef unsigned __int8 Byte;
4
//typedef unsigned __int32 size_t;
5
 
6
#define NULL 0
7
 
8
#define MAX_PATH				256
9
 
10
#define FO_READ					0
11
#define FO_WRITE				2
12
 
13
#define EM_WINDOW_REDRAW		1
14
#define EM_KEY_PRESS			2
15
#define EM_BUTTON_CLICK			4
16
#define EM_APP_CLOSE			8
17
#define EM_DRAW_BACKGROUND		16
18
#define EM_MOUSE_EVENT			32
19
#define EM_IPC					64
20
#define EM_NETWORK				256
21
 
22
#define KM_CHARS				0
23
#define KM_SCANS				1
24
 
25
#define WRS_BEGIN				1
26
#define WRS_END					2
27
 
28
#define PROCESS_ID_SELF			-1
29
 
30
#define abs(a) (a<0?0-a:a)
31
 
32
 
33
struct kosFileInfo
34
{
35
	Dword rwMode;
36
	Dword OffsetLow;
37
	Dword OffsetHigh;
38
	Dword dataCount;
39
	Byte *bufferPtr;
40
	char fileURL[MAX_PATH];
41
};
42
 
43
 
44
struct RGB
45
{
46
	Byte b;
47
	Byte g;
48
	Byte r;
49
	//
50
	RGB() {};
51
	//
52
	RGB( Dword value )
53
	{
54
		r = value >> 16;
55
		g = value >> 8;
56
		b = value;
57
	};
58
	//
59
	bool operator != ( RGB &another )
60
	{
61
		return this->b != another.b || this->g != another.g || this->r != another.r;
62
	};
63
	//
64
	bool operator == ( RGB &another )
65
	{
66
		return this->b == another.b && this->g == another.g && this->r == another.r;
67
	};
68
};
69
 
70
 
71
union sProcessInfo
72
{
73
	Byte rawData[1024];
74
	struct
75
	{
76
		Dword cpu_usage;
77
		Word window_stack_position;
78
		Word window_stack_value;
79
		Word reserved1;
80
		char process_name[12];
81
		Dword memory_start;
82
		Dword used_memory;
83
		Dword PID;
84
		Dword x_start;
85
		Dword y_start;
86
		Dword x_size;
87
		Dword y_size;
88
		Word slot_state;
89
	} processInfo;
90
};
91
 
5114 clevermous 92
#ifndef AUTOBUILD
1805 yogev_ezra 93
//
94
extern char *kosExePath;
5114 clevermous 95
#endif
1805 yogev_ezra 96
 
97
//
98
void crtStartUp();
99
//
100
int __cdecl _purecall();
101
//
102
int __cdecl atexit( void (__cdecl *func )( void ));
103
//
104
void rtlSrand( Dword seed );
105
Dword rtlRand( void );
106
//
107
char * __cdecl strcpy( char *target, const char *source );
108
int __cdecl strlen( const char *line );
109
char * __cdecl strrchr( const char * string, int c );
110
//
111
void * __cdecl memcpy( void *dst, const void *src, size_t bytesCount );
112
//
113
void memset( Byte *dst, Byte filler, Dword count );
114
//
115
void sprintf( char *Str, char* Format, ... );
116
//
117
Dword rtlInterlockedExchange( Dword *target, Dword value );
118
// функция -1 завершения процесса
119
void kos_ExitApp();
120
// функция 0
121
void kos_DefineAndDrawWindow(
122
	Word x, Word y,
123
	Word sizeX, Word sizeY,
124
	Byte mainAreaType, Dword mainAreaColour,
125
	Byte headerType, Dword headerColour,
126
	Dword borderColour
127
	);
128
// функция 1 поставить точку
129
void kos_PutPixel( Dword x, Dword y, Dword colour );
130
// функция 2 получить код нажатой клавиши
131
bool kos_GetKey( Byte &keyCode );
132
// функция 3 получить время
133
Dword kos_GetSystemClock();
134
// функция 4
135
void kos_WriteTextToWindow(
136
	Word x, Word y,
137
	Byte fontType,
138
	Dword textColour,
139
	char *textPtr,
140
	Dword textLen
141
	);
142
// функция 7 нарисовать изображение
143
void kos_PutImage( RGB * imagePtr, Word sizeX, Word sizeY, Word x, Word y );
144
// функция 8 определить кнопку
145
void kos_DefineButton( Word x, Word y, Word sizeX, Word sizeY, Dword buttonID, Dword colour );
146
// функция 5 пауза, в сотых долях секунды
147
void kos_Pause( Dword value );
148
// функция 9 информация о процессе
149
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF );
150
// функция 10
151
Dword kos_WaitForEvent();
152
// функция 11
153
Dword kos_CheckForEvent();
154
// функция 12
155
void kos_WindowRedrawStatus( Dword status );
156
// функция 13 нарисовать прямоугольник
157
void kos_DrawBar( Word x, Word y, Word sizeX, Word sizeY, Dword colour );
158
// функция 17
159
bool kos_GetButtonID( Dword &buttonID );
160
// функция 23
161
Dword kos_WaitForEvent( Dword timeOut );
162
// функция 26.9 получить значение счётчика времени
163
Dword kos_GetTime();
164
//
165
enum eNumberBase
166
{
167
	nbDecimal = 0,
168
	nbHex,
169
	nbBin
170
};
171
// функция 37 получение информации о состоянии "мыши"
172
void kos_GetMouseState( Dword & buttons, int & cursorX, int & cursorY );
173
// функция 37.1 получение координат "мыши" относительно окна
174
void kos_GetMouseWindowXY( int & cursorX, int & cursorY );
175
// функция 37.2 получение информации о нажатых кнопки "мыши"
176
void kos_GetMouseButtonsState( Dword & buttons );
177
// функция 37.4 загрузка курсора "мыши"
178
Dword * kos_LoadMouseCursor( Dword * cursor, Dword loadstate );
179
// функция 37.5 установка курсора "мыши"
180
Dword * kos_SetMouseCursor( Dword * handle );
181
// функция 37.6 удаление курсора "мыши"
182
void kos_DeleteMouseCursor( Dword * handle );
183
// функция 38 нарисовать полосу
184
void kos_DrawLine( Word x1, Word y1, Word x2, Word y2, Dword colour );
185
// функция 40 установить маску событий
186
void kos_SetMaskForEvents( Dword mask );
187
// функция 47 вывести в окно приложения число
188
void kos_DisplayNumberToWindow(
189
   Dword value,
190
   Dword digitsNum,
191
   Word x,
192
   Word y,
193
   Dword colour,
194
   eNumberBase nBase = nbDecimal,
195
   bool valueIsPointer = false
196
   );
197
// функция 47 вывести в окно приложения число c фоном
198
void kos_DisplayNumberToWindowBg(
199
   Dword value,
200
   Dword digitsNum,
201
   Word x,
202
   Word y,
203
   Dword colour,
204
   Dword bgcolour,
205
   eNumberBase nBase = nbDecimal,
206
   bool valueIsPointer = false
207
   );
208
// функция 58 доступ к файловой системе
209
Dword kos_FileSystemAccess( kosFileInfo *fileInfo );
210
// функция 63
211
void kos_DebugOutChar( char ccc );
212
//
213
void rtlDebugOutString( char *str );
214
// функция 64 изменить параметры окна, параметр == -1 не меняется
215
void kos_ChangeWindow( Dword x, Dword y, Dword sizeX, Dword sizeY );
216
// функция 67 изменение количества памяти, выделенной для программы
217
bool kos_ApplicationMemoryResize( Dword targetSize );
218
// функция 66 режим получения данных от клавиатуры
219
void kos_SetKeyboardDataMode( Dword mode );
220
 
221
//
222
void kos_Main();