Printers.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. MODULE Printers;
  2. (* THIS IS TEXT COPY OF BlackBox 1.6-rc6 System/Mod/Printers.odc *)
  3. (* DO NOT EDIT *)
  4. IMPORT Ports;
  5. TYPE
  6. Printer* = POINTER TO ABSTRACT RECORD
  7. l, t, r, b: INTEGER; (** paper rect relative to port coords **)
  8. res*: INTEGER;
  9. port: Ports.Port
  10. END;
  11. Directory* = POINTER TO ABSTRACT RECORD END;
  12. VAR dir-, stdDir-: Directory;
  13. PROCEDURE (p: Printer) OpenJob* (VAR copies: INTEGER; name: ARRAY OF CHAR), NEW, ABSTRACT;
  14. PROCEDURE (p: Printer) CloseJob* (), NEW, ABSTRACT;
  15. PROCEDURE (p: Printer) OpenPage* (), NEW, ABSTRACT;
  16. PROCEDURE (p: Printer) ClosePage* (), NEW, ABSTRACT;
  17. PROCEDURE (p: Printer) SetOrientation* (landscape: BOOLEAN), NEW, EMPTY;
  18. PROCEDURE (p: Printer) InitPort* (port: Ports.Port), NEW;
  19. BEGIN
  20. ASSERT((p.port = NIL) OR (p.port = port), 20);
  21. p.port := port
  22. END InitPort;
  23. PROCEDURE (p: Printer) ThisPort* (): Ports.Port, NEW;
  24. BEGIN
  25. RETURN p.port
  26. END ThisPort;
  27. PROCEDURE (p: Printer) GetRect* (OUT l, t, r, b: INTEGER), NEW;
  28. BEGIN
  29. l := p.l; t := p.t; r:= p.r; b := p.b
  30. END GetRect;
  31. PROCEDURE (p: Printer) InitPrinter* (l, t, r, b: INTEGER), NEW;
  32. BEGIN
  33. ASSERT(l <= r, 20); ASSERT(t <= b, 21);
  34. p.l := l; p.t := t; p.r := r; p.b := b;
  35. p.res := 0
  36. END InitPrinter;
  37. PROCEDURE (d: Directory) Default* (): Printer, NEW, ABSTRACT;
  38. PROCEDURE (d: Directory) Current* (): Printer, NEW, ABSTRACT;
  39. PROCEDURE (d: Directory) Available* (): BOOLEAN, NEW, ABSTRACT;
  40. PROCEDURE SetDir* (d: Directory);
  41. BEGIN
  42. ASSERT(d # NIL, 20);
  43. dir := d;
  44. IF stdDir = NIL THEN stdDir := d END
  45. END SetDir;
  46. END Printers.