home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / debug-utils / pv / pvdevelop / pvdevelop.lha / include / PV / ScreenBase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-24  |  5.9 KB  |  287 lines

  1. #ifndef PV_SCREENBASE_H
  2. #define PV_SCREENBASE_H TRUE
  3. /*
  4. **  $Filename: ScreenBase.h $
  5. **  $Release: 1.40 $
  6. **  $Revision: 37.1656 $
  7. **  $Date: 24 Sep 92 $
  8. **
  9. **  Structure definitions for Screen Base (see 'TheWizardCorner')
  10. **
  11. **  © 1992 Jorrit Tyberghein, included with PowerVisor
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef PV_PVMEMORY_H
  16. #include "PVMemory.h"
  17. #endif
  18.  
  19. #ifndef DOS_DOS_H
  20. #include <dos/dos.h>
  21. #endif
  22.  
  23. #ifndef INTUITION_INTUITION_H
  24. #include <intuition/intuition.h>
  25. #endif
  26.  
  27. #ifndef EXEC_PORTS_H
  28. #include <exec/ports.h>
  29. #endif
  30.  
  31.  
  32. #define LOGWINFLAGS_PRINTFILE    1
  33. #define LOGWINFLAGS_PRINTSCREEN    2
  34. #define LOGWINFLAGS_MORE    4
  35. #define LOGWINFLAGS_TOTALHOME    32
  36. #define LOGWINFLAGS_STATUSLINE    64
  37. #define LOGWINFLAGS_BREAKCHECK    128
  38. #define LOGWINFLAGS_AUTOOUTPUT    256
  39. #define LOGWINFLAGS_SBARIFMODE    512
  40. #define LOGWINFLAGS_SCROLLBAR    1024
  41.  
  42. #define BOXTYPE_UPDOWN        0
  43. #define BOXTYPE_LEFTRIGHT    1
  44. #define BOXTYPE_ATOMIC        2
  45.  
  46. #define COLOR_GRAY        0
  47. #define COLOR_BLACK        1
  48. #define COLOR_WHITE        2
  49. #define COLOR_BLUE        3
  50.  
  51. #define Pen_BoxBackground    0
  52. #define Pen_LWBackground    1
  53. #define Pen_NormalText        2
  54. #define Pen_PromptText        3
  55. #define Pen_StatusTextInActive    4
  56. #define Pen_StatusTextActive    5
  57. #define Pen_InActive        6
  58. #define Pen_Active        7
  59. #define Pen_TopLeft3D        8
  60. #define Pen_BottomRight3D    9
  61. #define Pen_BoxLine        10
  62. #define Pen_EmptyBox        11
  63. #define Pen_LeftBox        12
  64. #define Pen_RightBox        13
  65. #define Pen_ShowPos3D        14
  66. #define Pen_SGInActiveText    15
  67. #define Pen_SGInActiveBack    16
  68. #define Pen_SGActiveText    17
  69. #define Pen_SGActiveBack    18
  70. #define Pen_Hilight        19
  71. #define Pen_HilightBack        20
  72.  
  73.  
  74. /* Global structure holding some global window information
  75. */
  76. struct Global
  77.     {
  78.         struct Global *NextGlobal,*PrevGlobal;
  79.         struct List PhysWinList;
  80.         struct LogicalWindow *ActiveLogWin;
  81.         ULONG GlobalSignalSet;
  82.         ULONG pad0;
  83.     };
  84.  
  85. /* The physical window corresponding with an Intuition window. This
  86. ** physical window also manages the logical windows and the boxes.
  87. ** Do not depend on the size of this structure !!!
  88. */
  89. struct PhysicalWindow
  90.     {
  91.         struct Node node;
  92.         struct NewWindow NewWindow;
  93.         struct Window *Window;
  94.         ULONG pad0;
  95.         WORD LastCode;
  96.         WORD LastQualifier;
  97.         BYTE LeftBorder;
  98.         BYTE TopBorder;
  99.         BYTE RightBorder;
  100.         BYTE BottomBorder;
  101.         struct Box *MasterBox;
  102.         struct Global *Global;
  103.         struct List LogWinList;
  104.         ULONG pad1;
  105.         struct Gadget *GList;
  106.     };
  107.  
  108. /* The logical window.
  109. ** Do not depend on the size of this structure !!!
  110. */
  111. struct LogicalWindow
  112.     {
  113.         struct Node node;
  114.         struct Box *Box;
  115.         WORD x;
  116.         WORD y;
  117.         WORD w;
  118.         WORD h;
  119.         WORD FirstVisibleCol;
  120.         WORD FirstVisibleRow;
  121.         WORD CurrentCol;
  122.         WORD CurrentRow;
  123.         WORD VisibleWidth;
  124.         WORD VisibleHeight;
  125.         ULONG Flags;
  126.         struct TextAttr TextAttr;
  127.         struct TextFont *Font;
  128.         WORD FontWidth;
  129.         WORD FontHeight;
  130.         WORD FontBaseline;
  131.         struct PhysicalWindow *PhysWin;
  132.         WORD OptCol;
  133.         WORD OptRow;
  134.         WORD NrLinesInBuf;
  135.         WORD NrColsInLine;
  136.         APTR Buffer;
  137.         BPTR LogFile;
  138.         WORD MoreLines;
  139.         ULONG pad0;
  140.         APTR ExtraTitle;
  141.         UBYTE Active;
  142.         BYTE TopBorderStatus;
  143.         WORD RealTopCoordinate;
  144.         APTR userdata;
  145.         UWORD HiLine;
  146.     };
  147.  
  148. /* The box used to manage the available space of a physical window.
  149. ** Do not depend on the size of this structure !!!
  150. */
  151. struct Box
  152.     {
  153.         struct Box *Parent,*ChildA,*ChildB;
  154.         struct LogicalWindow *LogWin;
  155.         struct PhysicalWindow *PhysWin;
  156.         WORD ShareA;
  157.         BYTE Type;
  158.         BYTE Dirty;
  159.         BYTE LeftBorder;
  160.         BYTE TopBorder;
  161.         BYTE RightBorder;
  162.         BYTE BottomBorder;
  163.         WORD realx;
  164.         WORD realy;
  165.         WORD realw;
  166.         WORD realh;
  167.         WORD x1titlebar;
  168.         WORD y1titlebar;
  169.         WORD x2titlebar;
  170.         WORD y2titlebar;
  171.         struct Gadget *Gadget;
  172.         struct NewGadget *NewGadget;
  173.     };
  174.  
  175. struct DefaultLWSize
  176.     {
  177.         WORD Columns;
  178.         WORD Rows;
  179.         UWORD Mask;
  180.         UWORD Flags;
  181.     };
  182.  
  183. struct LWOpenString
  184.     {
  185.         UBYTE OpenStr[8];
  186.         UWORD Share;
  187.     };
  188.  
  189.  
  190. struct ScreenBase
  191.     {
  192.         UBYTE pad0;
  193.         UBYTE pad1;
  194.         UBYTE pad2;
  195.         UBYTE pad3;
  196.         UBYTE pad4;
  197.         UBYTE DontClearLine;
  198.         UBYTE pad5;
  199.         UBYTE pad6;
  200.         UBYTE pad7;
  201.         UBYTE pad8;
  202.         ULONG CmdLineLen;
  203.         UBYTE *CmdLine;
  204.         UWORD CursorPos;
  205.         struct DefaultLWSize MainDefSize;
  206.         struct DefaultLWSize ExtraDefSize;
  207.         struct DefaultLWSize RefreshDefSize;
  208.         struct DefaultLWSize DebugDefSize;
  209.         struct DefaultLWSize PPrintDefSize;
  210.         struct DefaultLWSize RexxDefSize;
  211.         struct DefaultLWSize SourceDefSize;
  212.         PVBLOCK SnapCommand;
  213.         BYTE pad9;
  214.         BYTE pad10;
  215.         BYTE pad11;
  216.         BYTE pad12;
  217.         LONG pad13;
  218.         struct PhysicalWindow *MainPW;
  219.         struct LogicalWindow *MainLW;
  220.         struct LogicalWindow *RefreshLW;
  221.         struct LogicalWindow *DebugLW;
  222.         struct LogicalWindow *ExtraLW;
  223.         struct LogicalWindow *PPrintLW;
  224.         struct LogicalWindow *RexxLW;
  225.         struct LogicalWindow *SourceLW;
  226.         struct LogicalWindow *CurrentLW;
  227.         WORD PromptPosX;
  228.         WORD LeftStringPosX;
  229.         WORD RightStringPosX;
  230.         struct Screen *OtherScreen;
  231.         struct Screen *PVScreen;
  232.         ULONG IMsgClass;
  233.         UWORD IMsgCode;
  234.         APTR IMsgIAddress;
  235.         WORD IMsgMouseX;
  236.         WORD IMsgMouseY;
  237.         UWORD IMsgQualifier;
  238.         struct Global *TheGlobal;
  239.         LONG pad14;
  240.         LONG pad15;
  241.         struct LWOpenString MainString;
  242.         struct LWOpenString ExtraString;
  243.         struct LWOpenString DebugString;
  244.         struct LWOpenString RefreshString;
  245.         struct LWOpenString PPrintString;
  246.         struct LWOpenString RexxString;
  247.         struct LWOpenString SourceString;
  248.         ULONG StartupFlags;
  249.         WORD WinX;
  250.         WORD WinY;
  251.         WORD WinW;
  252.         WORD WinH;
  253.         WORD ScreenW;
  254.         WORD ScreenH;
  255.         UBYTE FancyPens[24];
  256.         UBYTE NoFancyPens[24];
  257.         APTR CurrentPenTable;
  258.         UBYTE BusyPrompt[6];
  259.         UBYTE MorePrompt[6];
  260.         UBYTE WaitPrompt[6];
  261.         UBYTE LockPrompt[6];
  262.         UBYTE ScanPrompt[4];
  263.         UBYTE FeedBackPrompt[2];
  264.         struct LogicalWindow *LockLW;
  265.         UBYTE *PtrLockPrompt;
  266.         UBYTE LockState;
  267.         UBYTE BusyMode;
  268.         UBYTE GadgetExists;
  269.         UBYTE pad16;
  270.         UBYTE DefaultFontName[34];
  271.         struct TextAttr DefaultFont;
  272.         UWORD LogWinBorderHeight;
  273.         UWORD pad17;
  274.         WORD DragToleranceX1;
  275.         WORD DragToleranceY1;
  276.         WORD DragToleranceX2;
  277.         WORD DragToleranceY2;
  278.         WORD SizeToleranceX;
  279.         WORD SizeToleranceY;
  280.         APTR rtRequestStruct;
  281.                 struct Library *ReqToolsBase;
  282.                 struct MsgPort *IDCMPPort;
  283.                 APTR SnapBuffer;
  284.     };
  285.  
  286. #endif
  287.