home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 August / macformat-027.iso / mac / Shareware City / Developers / Oberon⁄F / Form / Docu / Views (.txt) < prev   
Encoding:
Oberon Document  |  1994-06-07  |  4.9 KB  |  133 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Geneva
  16. TextRulers.StdRulerDesc
  17. TextRulers.RulerDesc
  18. TextRulers.StdStyleDesc
  19. TextRulers.StyleDesc
  20. TextRulers.AttributesDesc
  21. Geneva
  22. Geneva
  23. 7.2 FormViews
  24. DEFINITION FormViews;
  25.     IMPORT Ports, Views, Controllers, Containers, FormModels;
  26.     CONST minBorder = 4 * Ports.point; maxBorder = 100 * Ports.mm;
  27.     TYPE
  28.         View = POINTER TO ViewDesc;
  29.         ViewDesc = RECORD (Containers.ViewDesc)
  30.             border-: LONGINT;
  31.             grid-: LONGINT;
  32.             gridFactor-: INTEGER;
  33.             showGrid-: BOOLEAN;
  34.             PROCEDURE (v: View) Clone (): View;
  35.             PROCEDURE (v: View) ThisModel (): FormModels.Model;
  36.             PROCEDURE (v: View) InitModel (model: Containers.Model);
  37.             PROCEDURE (v: View) SetBorder (border: LONGINT);
  38.             PROCEDURE (v: View) SetGrid (grid: LONGINT; gridFactor: INTEGER);
  39.             PROCEDURE (v: View) ShowGrid (showGrid: BOOLEAN)
  40.         END;
  41.         Directory = POINTER TO DirectoryDesc;
  42.         DirectoryDesc = RECORD
  43.             PROCEDURE (d: Directory) New (f: FormModels.Model): View
  44.         END;
  45.         dir-, stdDir-: Directory;
  46.         ctrldir-: Controllers.Directory;
  47.     PROCEDURE Focus (): View;
  48.     PROCEDURE FocusModel (): FormModels.Model;
  49.     PROCEDURE RoundToGrid (v: View; VAR x, y: LONGINT);
  50.     PROCEDURE Deposit;
  51.     PROCEDURE SetDir (d: Directory);
  52.     PROCEDURE SetCtrlDir (d: Containers.Directory);
  53. END FormViews.
  54. FormViews are the standard views on FormModels.
  55. CONST minBorder, maxBorder
  56. The border of a form view is the minimal distance between any of the view borders and the bounding box of the embedded views. The preferred border can be set to a value in the range [minBorder .. maxBorder].
  57. TYPE View
  58. Interface, Extension
  59. border-: LONGINT    minBorder <= border <= maxBorder
  60. Persistent
  61. Preferred minimal distance between any view edge and the closest embedded view.
  62. grid-: LONGINT    grid > 0
  63. Persistent
  64. Preferred grid on which any embedded view's top-left corner should be aligned.
  65. gridFactor-: INTEGER    gridFactor > 0
  66. Persistent
  67. If the grid is shown, every gridFactor-th grid unit a dotted line is shown.
  68. showGrid-: BOOLEAN
  69. Determines whether a grid is currently drawn or not.
  70. PROCEDURE (v: View) Clone (): View
  71. Default, Extension
  72. Result type is narrowed.
  73. PROCEDURE (v: View) ThisModel (): FormModels.Model
  74. Interface, Extension
  75. Result type is narrowed.
  76. PROCEDURE (v: View) SetBorder (border: LONGINT)
  77. Operation
  78. Sets the view's preferred border.
  79. border >= 0    20
  80. border < minBoder
  81.     v.border = minBorder
  82. border > maxBorder
  83.     v.border = maxBorder
  84. minBorder <= border <= maxBorder
  85.     v.border = border
  86. PROCEDURE (v: View) SetGrid (grid: LONGINT; gridFactor: INTEGER)
  87. Operation
  88. Sets the view's preferred grid.
  89. grid > 0    20
  90. gridFactor > 0    21
  91. v.grid = grid  &  v.gridFactor = gridFactor
  92. PROCEDURE (v: View) ShowGrid (showGrid: BOOLEAN)
  93. Visually switches the grid on or off.
  94. ShowGrid must be extended to show a visible effect.
  95. v.showGrid = showGrid
  96. TYPE Directory
  97. Interface
  98. Directory for form views.
  99. PROCEDURE (d: Directory) New (m: FormModels.Model): View
  100. Interface
  101. Return a new view on m
  102. m # NIL    20
  103. m.init    21
  104. result # NIL
  105. result.init
  106. result.ThisModel() = m
  107. PROCEDURE Focus (): View
  108. Returns the focus form view, if it is one.
  109. PROCEDURE FocusModel (): FormModels.Model
  110. Returns the model of the focus form view, if it is one.
  111. PROCEDURE RoundToGrid (v: View; VAR x, y: LONGINT)
  112. Rounds the coordinate (x, y) to the closest point on v's grid.
  113. v # NIL    20
  114. x > 0  &  y > 0    21
  115. x MOD v.grid = 0
  116. y MOD v.grid = 0
  117. PROCEDURE Deposit
  118. Deposit creates a new form view with a new empty form model and deposits the view.
  119. Deposit is called internally.
  120. PROCEDURE SetDir (d: Directory)
  121. Assigns view directory.
  122. d # NIL    20
  123. dir = d
  124. PROCEDURE SetCtrlDir (d: Containers.Directory)
  125. Assigns the controller directory for form views.
  126. d # NIL    20
  127. TextControllers.StdCtrlDesc
  128. TextControllers.ControllerDesc
  129. Containers.ControllerDesc
  130. Controllers.ControllerDesc
  131. Geneva
  132. Documents.ControllerDesc
  133.