Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. MODULE HW;
  2.  
  3. IMPORT sys := SYSTEM, KOSAPI;
  4.  
  5. PROCEDURE WindowRedrawStatus(p: INTEGER);
  6. VAR res: INTEGER;
  7. BEGIN
  8.   res := KOSAPI.sysfunc2(12, p)
  9. END WindowRedrawStatus;
  10.  
  11. PROCEDURE DefineAndDrawWindow(x, y, w, h, color, style, hcolor, hstyle, htext: INTEGER);
  12. VAR res: INTEGER;
  13. BEGIN
  14.   res := KOSAPI.sysfunc6(0, x * 65536 + w, y * 65536 + h, color + LSL(style, 24), hcolor + LSL(hstyle, 24), htext)
  15. END DefineAndDrawWindow;
  16.  
  17. PROCEDURE WriteTextToWindow(x, y, color: INTEGER; text: ARRAY OF CHAR);
  18. VAR res: INTEGER;
  19. BEGIN
  20.   res := KOSAPI.sysfunc6(4, x * 65536 + y, color + LSL(48, 24), sys.ADR(text[0]), LENGTH(text), 0)
  21. END WriteTextToWindow;
  22.  
  23. PROCEDURE WaitForEvent(): INTEGER;
  24.   RETURN KOSAPI.sysfunc1(10)
  25. END WaitForEvent;
  26.  
  27. PROCEDURE ExitApp;
  28. VAR res: INTEGER;
  29. BEGIN
  30.   res := KOSAPI.sysfunc1(-1)
  31. END ExitApp;
  32.  
  33. PROCEDURE draw_window(header, text: ARRAY OF CHAR);
  34. BEGIN
  35.   WindowRedrawStatus(1);
  36.   DefineAndDrawWindow(200, 200, 200, 100, 0FFFFFFH, 51, 0, 0, sys.ADR(header));
  37.   WriteTextToWindow(10, 10, 0FF0000H, text);
  38.   WindowRedrawStatus(2);
  39. END draw_window;
  40.  
  41. PROCEDURE Main(header, text: ARRAY OF CHAR);
  42. BEGIN
  43.   WHILE TRUE DO
  44.     CASE WaitForEvent() OF
  45.     |1: draw_window(header, text)
  46.     |3: ExitApp
  47.     ELSE
  48.     END
  49.   END
  50. END Main;
  51.  
  52. BEGIN
  53.   Main("HW", "Hello, world!")
  54. END HW.