home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Intuition / Screens.i < prev   
Text File  |  1990-08-28  |  4KB  |  145 lines

  1. {
  2.     Screens.i for PCQ Pascal
  3. }
  4.  
  5. {$I "Include:Graphics/Gfx.i"}
  6. {$I "Include:Graphics/Clip.i"}
  7. {$I "Include:Graphics/View.i"}
  8. {$I "Include:Graphics/RastPort.i"}
  9. {$I "Include:Graphics/Layers.i"}
  10. {$I "Include:Graphics/Text.i"}
  11.  
  12. { ======================================================================== }
  13. { === Screen ============================================================= }
  14. { ======================================================================== }
  15.  
  16. Type
  17.  
  18.     Screen = record
  19.     NextScreen    : ^Screen;    { linked list of screens }
  20.     FirstWindow    : Address;    { linked list Screen's Windows }
  21.  
  22.     LeftEdge,
  23.     TopEdge        : Short;    { parameters of the screen }
  24.     Width,
  25.     Height        : Short;    { parameters of the screen }
  26.  
  27.     MouseY,
  28.     MouseX        : Short;    { position relative to upper-left }
  29.  
  30.     Flags        : Short;    { see definitions below }
  31.  
  32.     Title        : String;    { null-terminated Title text }
  33.     DefaultTitle    : String;    { for Windows without ScreenTitle }
  34.  
  35.     { Bar sizes for this Screen and all Window's in this Screen }
  36.     BarHeight,
  37.     BarVBorder,
  38.     BarHBorder,
  39.     MenuVBorder,
  40.     MenuHBorder    : Byte;
  41.     WBorTop,
  42.     WBorLeft,
  43.     WBorRight,
  44.     WBorBottom    : Byte;
  45.  
  46.     Font        : TextAttrPtr;    { this screen's default font       }
  47.  
  48.     { the display data structures for this Screen (note the prefix S)}
  49.     SViewPort    : ViewPort;    { describing the Screen's display }
  50.     SRastPort    : RastPort;    { describing Screen rendering       }
  51.     SBitMap        : BitMap;    { extra copy of RastPort BitMap   }
  52.     LayerInfo    : Layer_Info;    { each screen gets a LayerInfo       }
  53.  
  54.     { You supply a linked-list of Gadgets for your Screen.
  55.      *    This list DOES NOT include system Gadgets.  You get the standard
  56.      *    system Screen Gadgets by default
  57.      }
  58.  
  59.     FirstGadget    : Address;
  60.  
  61.     DetailPen,
  62.     BlockPen    : Byte;        { for bar/border/gadget rendering }
  63.  
  64.     { the following variable(s) are maintained by Intuition to support the
  65.      * DisplayBeep() color flashing technique
  66.      }
  67.     SaveColor0    : Short;
  68.  
  69.     { This layer is for the Screen and Menu bars }
  70.     BarLayer    : LayerPtr;
  71.  
  72.     ExtData        : Address;
  73.     UserData    : Address;
  74.             { general-purpose pointer to User data extension }
  75.     end;
  76.     ScreenPtr = ^Screen;
  77.  
  78.  
  79. Const
  80.  
  81. { The screen flags have the suffix "_f" added to avoid conflicts with
  82.   routine names. }
  83.  
  84. { --- FLAGS SET BY INTUITION --------------------------------------------- }
  85. { The SCREENTYPE bits are reserved for describing various Screen types
  86.  * available under Intuition.  
  87.  }
  88.     SCREENTYPE_f    = $000F;    { all the screens types available    }
  89. { --- the definitions for the Screen Type ------------------------------- }
  90.     WBENCHSCREEN_f    = $0001;    { Ta Da!  The Workbench        }
  91.     CUSTOMSCREEN_f    = $000F;    { for that special look        }
  92.  
  93.     SHOWTITLE_f        = $0010;    { this gets set by a call to ShowTitle() }
  94.  
  95.     BEEPING_f        = $0020;    { set when Screen is beeping        }
  96.  
  97.     CUSTOMBITMAP_f    = $0040;    { if you are supplying your own BitMap }
  98.  
  99.     SCREENBEHIND_f    = $0080;    { if you want your screen to open behind
  100.                      * already open screens
  101.                      }
  102.     SCREENQUIET_f    = $0100;    { if you do not want Intuition to render
  103.                      * into your screen (gadgets, title)
  104.                      }
  105.  
  106.     STDSCREENHEIGHT    = -1;        { supply in NewScreen.Height        }
  107.  
  108.  
  109. { ======================================================================== }
  110. { === NewScreen ========================================================== }
  111. { ======================================================================== }
  112.  
  113. Type
  114.  
  115.     NewScreen = record
  116.     LeftEdge,
  117.     TopEdge,
  118.     Width,
  119.     Height,
  120.     Depth        : Short;    { screen dimensions }
  121.  
  122.     DetailPen,
  123.     BlockPen    : Byte;        { for bar/border/gadget rendering }
  124.  
  125.     ViewModes    : Short;    { the Modes for the ViewPort (and View) }
  126.  
  127.     SType        : Short;    { the Screen type (see defines above) }
  128.     
  129.     Font        : TextAttrPtr;    { this Screen's default text attributes }
  130.     
  131.     DefaultTitle    : String;    { the default title for this Screen }
  132.     
  133.     Gadgets        : Address;    { your own Gadgets for this Screen }
  134.     
  135.     { if you are opening a CUSTOMSCREEN and already have a BitMap 
  136.      * that you want used for your Screen, you set the flags CUSTOMBITMAP in
  137.      * the Type field and you set this variable to point to your BitMap
  138.      * structure.  The structure will be copied into your Screen structure,
  139.      * after which you may discard your own BitMap if you want
  140.      }
  141.  
  142.     CustomBitMap    : BitMapPtr;
  143.     end;
  144.     NewScreenPtr = ^NewScreen;
  145.