Subversion Repositories Kolibri OS

Rev

Rev 8860 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8097 maxcodehac 1
MODULE HW;
2
 
9648 akron1 3
IMPORT
4
	SYSTEM, KOSAPI;
8097 maxcodehac 5
 
9648 akron1 6
 
7
PROCEDURE BeginDraw;
8097 maxcodehac 8
BEGIN
9648 akron1 9
	KOSAPI.sysfunc2(12, 1)
10
END BeginDraw;
8097 maxcodehac 11
 
9648 akron1 12
 
13
PROCEDURE EndDraw;
8097 maxcodehac 14
BEGIN
9648 akron1 15
	KOSAPI.sysfunc2(12, 2)
16
END EndDraw;
17
 
18
 
19
PROCEDURE DefineAndDrawWindow (left, top, width, height, color, style, hcolor, hstyle: INTEGER; header: ARRAY OF CHAR);
20
BEGIN
21
	KOSAPI.sysfunc6(0, left*65536 + width, top*65536 + height, color + LSL(style, 24), hcolor + LSL(hstyle, 24), SYSTEM.ADR(header[0]))
8097 maxcodehac 22
END DefineAndDrawWindow;
23
 
9648 akron1 24
 
25
PROCEDURE WriteTextToWindow (x, y, color: INTEGER; text: ARRAY OF CHAR);
8097 maxcodehac 26
BEGIN
9648 akron1 27
	KOSAPI.sysfunc6(4, x*65536 + y, color + LSL(48, 24), SYSTEM.ADR(text[0]), LENGTH(text), 0)
8097 maxcodehac 28
END WriteTextToWindow;
29
 
9648 akron1 30
 
31
PROCEDURE WaitForEvent (): INTEGER;
32
	RETURN KOSAPI.sysfunc1(10)
8097 maxcodehac 33
END WaitForEvent;
34
 
9648 akron1 35
 
8097 maxcodehac 36
PROCEDURE ExitApp;
37
BEGIN
9648 akron1 38
	KOSAPI.sysfunc1(-1)
8097 maxcodehac 39
END ExitApp;
40
 
9648 akron1 41
 
42
PROCEDURE draw_window (header, text: ARRAY OF CHAR);
43
CONST
44
	WHITE = 0FFFFFFH;
45
	RED   = 0C00000H;
46
	GREEN = 0008000H;
47
	BLUE  = 00000C0H;
48
	GRAY  = 0808080H;
8097 maxcodehac 49
BEGIN
9648 akron1 50
	BeginDraw;
51
	DefineAndDrawWindow(200, 200, 300, 150, WHITE, 51, 0, 0, header);
52
	WriteTextToWindow( 5, 10, RED,   text);
53
	WriteTextToWindow(35, 30, GREEN, text);
54
	WriteTextToWindow(65, 50, BLUE,  text);
55
	WriteTextToWindow(95, 70, GRAY,  text);
56
	EndDraw
8097 maxcodehac 57
END draw_window;
58
 
9648 akron1 59
 
60
PROCEDURE main (header, text: ARRAY OF CHAR);
61
CONST
62
	EVENT_REDRAW = 1;
63
	EVENT_KEY    = 2;
64
	EVENT_BUTTON = 3;
8097 maxcodehac 65
BEGIN
9648 akron1 66
	WHILE TRUE DO
67
		CASE WaitForEvent() OF
68
		|EVENT_REDRAW: draw_window(header, text)
69
		|EVENT_KEY:    ExitApp
70
		|EVENT_BUTTON: ExitApp
71
		END
72
	END
73
END main;
8097 maxcodehac 74
 
9648 akron1 75
 
8097 maxcodehac 76
BEGIN
9648 akron1 77
	main("Hello", "Hello, world!")
8097 maxcodehac 78
END HW.