home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / disks / disk390.lzh / SetClock / Include / Intuition.i < prev    next >
Text File  |  1990-10-23  |  13KB  |  416 lines

  1.  
  2. {
  3.         Intuition.i for PCQ Pascal
  4.  
  5.         This is some of the information you'll need to work with
  6. Intuition from PCQ.  I included most of the easy stuff having to do with
  7. windows and screens, but there is a lot more to go.
  8.         While we're at it, I'll mention that you do not need to open the
  9. Intuition library yourself.  The startup code needs the library and
  10. opens it, so these routines use that pointer.
  11. }
  12.  
  13. {$I "Include/Ports.i"}
  14.  
  15. const
  16.     SIZEVERIFY_f        = $0001;        { As the tag _f would incdicate,  }
  17.     NEWSIZE_f           = $0002;        { These are some of the Intuition }
  18.     REFRESHWINDOW_f     = $0004;        { flags.  I apologise for having  }
  19.     MOUSEBUTTONS_f      = $0008;        { to include that inconvenient    }
  20.     MOUSEMOVE_f         = $0010;        { little tag, but otherwise these }
  21.     GADGETDOWN_f        = $0020;        { get confused with Procedure and }
  22.     GADGETUP_f          = $0040;        { Function names.                 }
  23.     REQSET_f            = $0080;
  24.     MENUPICK_f          = $0100;
  25.     CLOSEWINDOW_f       = $0200;
  26.     RAWKEY_f            = $0400;
  27.     REQVERIFY_f         = $0800;
  28.     REQCLEAR_f          = $1000;
  29.     MENUVERIFY_f        = $2000;
  30.     NEWPREFS_f          = $4000;
  31.     DISKINSERTED_f      = $8000;
  32.     DISKREMOVED_f       = $10000;
  33.     WBENCHMESSAGE_f     = $20000;
  34.     ACTIVEWINDOW_f      = $40000;
  35.     INACTIVEWINDOW_f    = $80000;
  36.     DELTAMOVE_f         = $100000;
  37.     VANILLAKEYS_f       = $200000;
  38.     INTUITICKS_f        = $400000;
  39.     LONELYMESSAGE_f     = $80000000;
  40.  
  41.     SCREENTYPE_f        = $00FF;
  42.     WBENCHSCREEN_f      = $0001;
  43.     CUSTOMSCREEN_f      = $000F;
  44.     SHOWTITLE_f         = $0010;
  45.     BEEPING_f           = $0020;
  46.     CUSTOMBITMAP_f      = $0040;
  47.  
  48.     WINDOWSIZING_f      = $0001;
  49.     WINDOWDRAG_f        = $0002;
  50.     WINDOWDEPTH_f       = $0004;
  51.     WINDOWCLOSE_f       = $0008;
  52.     SIZEBRIGHT_f        = $0010;
  53.     SIZEBBOTTOM_f       = $0020;
  54.     SMART_REFRESH_f     = 0;
  55.     SIMPLE_REFRESH_f    = $0040;
  56.     SUPER_BITMAP_f      = $0080;
  57.     OTHER_REFRESH_f     = $00c0;
  58.     BACKDROP_f          = $0100;
  59.     REPORTMOUSE_f       = $0200;
  60.     GIMMEZEROZERO_f     = $0400;
  61.     BORDERLESS_f        = $0800;
  62.     ACTIVATE_f          = $1000;
  63.  
  64.     SELECTUP            = $E8;
  65.     SELECTDOWN          = $68;
  66.     MENUUP              = $E9;
  67.     MENUDOWN            = $69;
  68.     ALTLEFT             = $10;
  69.     ALTRIGHT            = $20;
  70.     AMIGALEFT           = $40;
  71.     AMIGARIGHT          = $80;
  72.     AMIGAKEYS           = $C0;
  73.  
  74.     CURSORUP            = $4C;
  75.     CURSORLEFT          = $4F;
  76.     CURSORRIGHT         = $4E;
  77.     CURSORDOWN          = $4D;
  78.     KEYCODE_Q           = $10;
  79.     KEYCODE_X           = $32;
  80.     KEYCODE_N           = $36;
  81.     KEYCODE_M           = $37;
  82.     
  83. type
  84.  
  85.     IntuiMessage = record
  86.         ExecMessage : Message;
  87.         Class   : Integer;
  88.         Code    : Short;
  89.         Qualifier : Short;
  90.         IAddress : Address;
  91.         MouseX,
  92.         MouseY  : Short;
  93.         Seconds,
  94.         Micros  : Integer;
  95.         IDCMPWindow : Address;
  96.         SpecialLink : ^IntuiMessage;
  97.     end;
  98.     IntuiMessagePtr = ^IntuiMessage;
  99.  
  100.     IntuiText = record
  101.         FrontPen,
  102.         Backpen,
  103.         DrawMode,
  104.         KludgeFill  : Byte; { Kludge is just a reminder here }
  105.         LeftEdge,
  106.         TopEdge     : Short;
  107.         ITextFont   : Address;
  108.         IText       : String;
  109.         NextText    : ^IntuiText;
  110.     end;
  111.     IntuiTextPtr = ^IntuiText;
  112.  
  113.     Image = record
  114.         LeftEdge,
  115.         TopEdge,
  116.         Width,
  117.         Height,
  118.         Depth    : Short;
  119.         ImageData: Address;
  120.         PlanePick,
  121.         PlaneOnOff : Byte;
  122.         NextImage  : ^Image;
  123.     end;
  124.     ImagePtr = ^Image;
  125.  
  126.     Border = record
  127.         LeftEdge,
  128.         TopEdge    : Short;
  129.         FrontPen,
  130.         BackPen,
  131.         DrawMode,
  132.         Count    : Byte;
  133.         XY       : Address;
  134.         NextBorder : ^Border;
  135.     end;
  136.     BorderPtr = ^Border;
  137.  
  138.    { ItemFlags }
  139. const
  140.     { Flags set by the application }
  141.     CheckIt     = $0001;
  142.     ItemText    = $0002;
  143.     CommSeq     = $0004;
  144.     MenuToggle  = $0008;
  145.     ItemEnabled = $0010;
  146.  
  147. { The special highlight flag state meanings }
  148.  
  149.     HighFlags   = $00C0;    { see definitions below }
  150.     HighImage   = $0000;    { use the "select image" }
  151.     HighComp    = $0040;    { complement the select box }
  152.     HighBox     = $0080;    { draw a box around select box to highlight }
  153.     HighNone    = $00C0;    { don't highlight }
  154.  
  155. { Flag set by both application and Intuition }
  156.  
  157.     Checked     = $0100;    { if CheckIt is set, then this => selected }
  158.  
  159. { Flags set by Intuition }
  160.  
  161.     IsDrawn     = $1000;    { this item's subitems are drawn }
  162.     HighItem    = $2000;    { this item is highlighted }
  163.     MenuToggled = $4000;    { this item was already toggled }
  164.  
  165. type
  166.     MenuItem = record
  167.         NextItem        : ^MenuItem;
  168.         LeftEdge,
  169.         TopEdge,
  170.         Width,
  171.         Height          : Short;        { select box dimensions }
  172.         Flags           : Short;        { see constants above }
  173.         MutualExclude   : Integer;
  174.         ItemFill        : Address;      { Image, IntuiText, or Null }
  175.         SelectFill      : Address;      { Image, IntuiText, or Null }
  176.         Command         : Byte;         { if CommSeq is set }
  177.         SubItem         : ^MenuItem;
  178.         NextSelect      : Short;        { Menu # of next selected item }
  179.     end;
  180.     MenuItemPtr = ^MenuItem;
  181.  
  182.     Menu = record
  183.         NextMenu        : ^Menu;        { same level }
  184.         LeftEdge,                       { position of the select box }
  185.         TopEdge,
  186.         Width,
  187.         Height          : Short;
  188.         Flags           : Short;        { see flags above }
  189.         MenuName        : String;       { text for menu header }
  190.         FirstItem       : MenuItemPtr;  { first item in chain }
  191.         JazzX,
  192.         JazzY,
  193.         BeatX,
  194.         BeatY           : Short;        { for internal use }
  195.     end;
  196.     MenuPtr = ^Menu;
  197.  
  198.     NewScreen = record
  199.         LeftEdge,
  200.         TopEdge,
  201.         Width,
  202.         Height,
  203.         Depth   : Short;
  204.         DetailPen,
  205.         BlockPen : Byte;
  206.         ViewModes : Short;
  207.         SType     : Short;      { Normally this is called 'Type', but }
  208.         Font      : Address;    { since that's a reserved word I had  }
  209.         DefaultTitle : String;  { change it                           }
  210.         Gadgets      : Address;
  211.         CustomBitMap : Address;
  212.     end;
  213.     NewScreenPtr = ^NewScreen;
  214.  
  215.     NewWindow = record
  216.         LeftEdge,
  217.         TopEdge,
  218.         Width,
  219.         Height          : Short;
  220.         DetailPen,
  221.         BlockPen        : Byte;
  222.         IDCMPFlags      : Integer;
  223.         Flags           : Integer;
  224.         FirstGadget     : Address;
  225.         CheckMark       : Address;
  226.         Title           : String;
  227.         Screen          : Address;
  228.         BitMap          : Address;
  229.         MinWidth,
  230.         MinHeight,
  231.         MaxWidth,
  232.         MaxHeight       : Short;
  233.         WType           : Short; { This also had to be changed }
  234.     end;
  235.     NewWindowPtr = ^NewWindow;
  236.     ScreenPtr = Address;
  237.  
  238.     Window = record
  239.         NextWindow      : ^Window;
  240.         LeftEdge,
  241.         TopEdge,
  242.         Width,
  243.         Height          : Short;
  244.         MouseY,
  245.         MouseX          : Short;
  246.         MinWidth,
  247.         MinHeight,
  248.         MaxWidth,
  249.         MaxHeight       : Short;
  250.         Flags           : Integer;
  251.         MenuStrip       : MenuPtr;
  252.         Title           : String;
  253.         FirstRequest    : Address;
  254.         DMRequest       : Address;
  255.         ReqCount        : Short;
  256.         WScreen         : Address;
  257.         RPort           : Address;
  258.         BorderLeft,
  259.         BorderTop,
  260.         BorderRight,
  261.         BorderBottom    : Byte;
  262.         BorderRPort     : Address;
  263.         FirstGadget     : Address;
  264.         Parent,
  265.         Descendant      : ^Window;
  266.         Pointer         : Address;
  267.         PtrHeight,
  268.         PtrWidth        : Byte;
  269.         XOffset,
  270.         YOffset         : Byte;
  271.         IDCMPFlags      : Integer;
  272.         UserPort,
  273.         WindowPort      : MsgPortPtr;
  274.         MessageKey      : Address;
  275.         DetailPen,
  276.         BlockPen        : Byte;
  277.         CheckMark       : Address;
  278.         ScreenTitle     : String;
  279.         GZZMouseX,
  280.         GZZMouseY,
  281.         GZZWidth,
  282.         GZZHeight       : Short;
  283.         ExtData         : Address;
  284.         UserData        : Integer;
  285.         WLayer          : Address;
  286.         IFont           : Address;
  287.     end;
  288.     WindowPtr = ^Window;
  289.  
  290.  
  291. Function AddGadget(w : WindowPtr; g : Address; p : Integer) : Integer;
  292.     External;
  293. Function AllocRemember(r : Address; s, f : Integer) : Address;
  294.     External;
  295. Function AutoRequest(w : WindowPtr; b, p, n : IntuiTextPtr;
  296.                         pf, nf, x, y : Integer) : Boolean;
  297.     External;
  298. Procedure BeginRefresh(w : WindowPtr);
  299.     External;
  300. Function BuildSysRequest(w : WindowPtr; b, p, n : IntuiTextPtr;
  301.                         f, x, y : Integer) : Address;
  302.     External;
  303. Function ClearDMRequest(w : WindowPtr) : Boolean;
  304.     External;
  305. Procedure ClearMenuStrip(w : WindowPtr);
  306.     External;
  307. Procedure ClearPointer(w : WindowPtr);
  308.     External;
  309. Procedure CloseScreen(s : Address);
  310.     External;
  311. Procedure CloseWindow(w : WindowPtr);
  312.     External;
  313. Function CloseWorkBench() : Boolean;
  314.     External;
  315. Procedure CurrentTime(var s, m : Integer);
  316.     External;
  317. { Note the use of VAR above to do the same work as the & (address)
  318.   prefix in C. }
  319. Function DisplayAlert(n : Integer; s: String; h: Integer): Boolean;
  320.     External;
  321. Procedure DisplayBeep(s : Address);
  322.     External;
  323. Function DoubleClick(ss, sm, cs, cm : Integer) : Boolean;
  324.     External;
  325. Procedure DrawBorder(r : Address; b : BorderPtr; x, y : Integer);
  326.     External;
  327. Procedure DrawImage(r : Address; i : ImagePtr; x, y : Integer);
  328.     External;
  329. Procedure EndRefresh(w : WindowPtr; c : Boolean);
  330.     External;
  331. Procedure EndRequest(r : Address; w : WindowPtr);
  332.     External;
  333. Procedure FreeRemember(k : Address; r : Boolean);
  334.     External;
  335. Procedure FreeSysRequest(w : WindowPtr);
  336.     External;
  337. Function GetDefPrefs(p : Address; s : Integer) : Address;
  338.     External;
  339. Function GetPrefs(p : Address; s : Integer) : Address;
  340.     External;
  341. Procedure InitRequester(r : Address);
  342.     External;
  343. Function IntuiTextLength(i : IntuiTextPtr) : Integer;
  344.     External;
  345. Function ItemAddress(m : MenuPtr; n : Integer) : MenuItemPtr;
  346.     External;
  347. Procedure MakeScreen(s : Address);
  348.     External;
  349. Procedure ModifyIDCMP(w : WindowPtr; i : Integer);
  350.     External;
  351. Procedure ModifyProp(p : Address; w : WindowPtr; r : Address;
  352.                         f, hp, vp, hb, vb : Integer);
  353.     External;
  354. Procedure MoveScreen(s : Address; x, y : Integer);
  355.     External;
  356. Procedure MoveWindow(w : WindowPtr; x, y : Integer);
  357.     External;
  358. Procedure OffGadget(g : Address; w : WindowPtr; r : Address);
  359.     External;
  360. Procedure OffMenu(w : WindowPtr; n : Integer);
  361.     External;
  362. Procedure OnGadget(g : Address; w : WindowPtr; r : Address);
  363.     External;
  364. Procedure OnMenu(w : WindowPtr; n : Integer);
  365.     External;
  366. Function OpenScreen(ns : NewScreenPtr) : Address;
  367.     External;
  368. Function OpenWindow(nw : NewWindowPtr): WindowPtr;
  369.     External;
  370. Function OpenWorkBench() : Boolean;
  371.     External;
  372. Procedure PrintIText(r : Address; i : IntuiTextPtr; x, y : Integer);
  373.     External;
  374. Procedure RefreshGadgets(g : Address; w : WindowPtr; r : Address);
  375.     External;
  376. Procedure RemakeDisplay;
  377.     External;
  378. Function RemoveGadget(w : WindowPtr; g : Address) : Integer;
  379.     External;
  380. Procedure ReportMouse(w : WindowPtr; b : Boolean);
  381.     External;
  382. Function Request(r : Address; w : WindowPtr) : Boolean;
  383.     External;
  384. Procedure RethinkDisplay;
  385.     External;
  386. Procedure ScreenToBack(s : Address);
  387.     External;
  388. Procedure ScreenToFront(s : Address);
  389.     External;
  390. Function SetDMRequest(w : WindowPtr; r : Address) : Boolean;
  391.     External;
  392. Procedure SetMenuStrip(w : WindowPtr; m : MenuPtr);
  393.     External;
  394. Procedure SetPointer(w : WindowPtr; p : Address; ys, xs, xo, yo : Integer);
  395.     External;
  396. Procedure SetWindowTitles(w : WindowPtr; t, s : String);
  397.     External;
  398. Procedure ShowTitle(s : Address; b : Boolean);
  399.     External;
  400. Procedure SizeWindow(w : WindowPtr; x, y : Integer);
  401.     External;
  402. Function ViewAddress() : Address;
  403.     External;
  404. Function ViewPortAddress(w : WindowPtr): Address;
  405.     External;
  406. Procedure WBenchToBack;
  407.     External;
  408. Procedure WBenchToFront;
  409.     External;
  410. Function WindowLimits(w : WindowPtr; mx, my, nx, ny : Integer): Boolean;
  411.     External;
  412. Procedure WindowToBack(w : WindowPtr);
  413.     External;
  414. Procedure WindowToFront(w : WindowPtr);
  415.     External;
  416.