Unit Intuition;

Interface
Uses Graphics, Keymap, Input, Timer, Exec;

Type
  pBorder = ^tBorder;
  tBorder = Record
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  FrontPen: ShortInt;
		  BackPen: ShortInt;
		  DrawMode: ShortInt;
		  Count: ShortInt;
		  XY: pInteger;
		  NextBorder: pBorder;
		End;

  pMenu = ^tMenu;
  pMenuItem = ^tMenuItem;
  tMenu = Record
		  NextMenu: pMenu;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  Flags: Integer;
		  MenuName: pShortInt;
		  FirstItem: pMenuItem;
		  JazzX: Integer;
		  JazzY: Integer;
		  BeatX: Integer;
		  BeatY: Integer;
		End;

  pScreen = ^tScreen;
  pWindow = ^tWindow;
  pTextAttr = ^tTextAttr;
  pGadget = ^tGadget;
  pLayer = ^tLayer;
  tScreen = Record
		  NextScreen: pScreen;
		  FirstWindow: pWindow;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  MouseY: Integer;
		  MouseX: Integer;
		  Flags: Integer;
		  Title: pShortInt;
		  DefaultTitle: pShortInt;
		  BarHeight: ShortInt;
		  BarVBorder: ShortInt;
		  BarHBorder: ShortInt;
		  MenuVBorder: ShortInt;
		  MenuHBorder: ShortInt;
		  WBorTop: ShortInt;
		  WBorLeft: ShortInt;
		  WBorRight: ShortInt;
		  WBorBottom: ShortInt;
		  Font: pTextAttr;
		  ViewPort: tViewPort;
		  RastPort: tRastPort;
		  BitMap: tBitMap;
		  LayerInfo: tLayer_Info;
		  FirstGadget: pGadget;
		  DetailPen: ShortInt;
		  BlockPen: ShortInt;
		  SaveColor0: Integer;
		  BarLayer: pLayer;
		  ExtData: pShortInt;
		  UserData: pShortInt;
		End;

  tPropInfo = Record
		  Flags: Integer;
		  HorizPot: Integer;
		  VertPot: Integer;
		  HorizBody: Integer;
		  VertBody: Integer;
		  CWidth: Integer;
		  CHeight: Integer;
		  HPotRes: Integer;
		  VPotRes: Integer;
		  LeftBorder: Integer;
		  TopBorder: Integer;
		End;

  pRemember = ^tRemember;
  tRemember = Record
		  NextRemember: pRemember;
		  RememberSize: LongInt;
		  Memory: pShortInt;
		End;

  pKeyMap = ^tKeyMap;
  tStringInfo = Record
		  Buffer: pShortInt;
		  UndoBuffer: pShortInt;
		  BufferPos: Integer;
		  MaxChars: Integer;
		  DispPos: Integer;
		  UndoPos: Integer;
		  NumChars: Integer;
		  DispCount: Integer;
		  CLeft: Integer;
		  CTop: Integer;
		  LayerPtr: pLayer;
		  LongInt_: LongInt;
		  AltKeyMap: pKeyMap;
		End;

  pIntuiMessage = ^tIntuiMessage;
  tIntuiMessage = Record
		  ExecMessage: tMessage;
		  Class: LongInt;
		  Code: Integer;
		  Qualifier: Integer;
		  IAddress: Pointer;
		  MouseX: Integer;
		  MouseY: Integer;
		  Seconds: LongInt;
		  Micros: LongInt;
		  IDCMPWindow: pWindow;
		  SpecialLink: pIntuiMessage;
		End;

  pImage = ^tImage;
  pBitMap = ^tBitMap;
  tNewWindow = Record
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  DetailPen: ShortInt;
		  BlockPen: ShortInt;
		  IDCMPFlags: LongInt;
		  Flags: LongInt;
		  FirstGadget: pGadget;
		  CheckMark: pImage;
		  Title: pShortInt;
		  Screen: pScreen;
		  BitMap: pBitMap;
		  MinWidth: Integer;
		  MinHeight: Integer;
		  MaxWidth: Integer;
		  MaxHeight: Integer;
		  Type_: Integer;
		End;

  pRequester = ^tRequester;
  pRastPort = ^tRastPort;
  pMsgPort = ^tMsgPort;
  pTextFont = ^tTextFont;
  tWindow = Record
		  NextWindow: pWindow;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  MouseY: Integer;
		  MouseX: Integer;
		  MinWidth: Integer;
		  MinHeight: Integer;
		  MaxWidth: Integer;
		  MaxHeight: Integer;
		  Flags: LongInt;
		  MenuStrip: pMenu;
		  Title: pShortInt;
		  FirstRequest: pRequester;
		  DMRequest: pRequester;
		  ReqCount: Integer;
		  WScreen: pScreen;
		  RPort: pRastPort;
		  BorderLeft: ShortInt;
		  BorderTop: ShortInt;
		  BorderRight: ShortInt;
		  BorderBottom: ShortInt;
		  BorderRPort: pRastPort;
		  FirstGadget: pGadget;
		  Parent: pWindow;
		  Descendant: pWindow;
		  Pointer: pInteger;
		  PtrHeight: ShortInt;
		  PtrWidth: ShortInt;
		  XOffset: ShortInt;
		  YOffset: ShortInt;
		  IDCMPFlags: LongInt;
		  UserPort: pMsgPort;
		  WindowPort: pMsgPort;
		  MessageKey: pIntuiMessage;
		  DetailPen: ShortInt;
		  BlockPen: ShortInt;
		  CheckMark: pImage;
		  ScreenTitle: pShortInt;
		  GZZMouseX: Integer;
		  GZZMouseY: Integer;
		  GZZWidth: Integer;
		  GZZHeight: Integer;
		  ExtData: pShortInt;
		  UserData: pShortInt;
		  WLayer: pLayer;
		  IFont: pTextFont;
		End;

  tPreferences = Record
		  FontHeight: ShortInt;
		  PrinterPort: ShortInt;
		  BaudRate: Integer;
		  KeyRptSpeed: ttimeval;
		  KeyRptDelay: ttimeval;
		  DoubleClick: ttimeval;
		  PointerMatrix: Array [0..35] of Integer;
		  XOffset: ShortInt;
		  YOffset: ShortInt;
		  color17: Integer;
		  color18: Integer;
		  color19: Integer;
		  PointerTicks: Integer;
		  color0: Integer;
		  color1: Integer;
		  color2: Integer;
		  color3: Integer;
		  ViewXOffset: ShortInt;
		  ViewYOffset: ShortInt;
		  ViewInitX: Integer;
		  ViewInitY: Integer;
		  EnableCLI: Integer;
		  PrinterType: Integer;
		  PrinterFilename: Array [0..29] of ShortInt;
		  PrintPitch: Integer;
		  PrintQuality: Integer;
		  PrintSpacing: Integer;
		  PrintLeftMargin: Integer;
		  PrintRightMargin: Integer;
		  PrintImage: Integer;
		  PrintAspect: Integer;
		  PrintShade: Integer;
		  PrintThreshold: Integer;
		  PaperSize: Integer;
		  PaperLength: Integer;
		  PaperType: Integer;
		  SerRWBits: ShortInt;
		  SerStopBuf: ShortInt;
		  SerParShk: ShortInt;
		  LaceWB: ShortInt;
		  WorkName: Array [0..29] of ShortInt;
		  RowSizeChange: ShortInt;
		  ColumnSizeChange: ShortInt;
		  PrintFlags: Integer;
		  PrintMaxWidth: Integer;
		  PrintMaxHeight: Integer;
		  PrintDensity: ShortInt;
		  PrintXOffset: ShortInt;
		  wb_Width: Integer;
		  wb_Height: Integer;
		  wb_Depth: ShortInt;
		  ext_size: ShortInt;
		End;

  tIntuitionBase = Record
		  LibNode: tLibrary;
		  ViewLord: tView;
		  ActiveWindow: pWindow;
		  ActiveScreen: pScreen;
		  FirstScreen: pScreen;
		  Flags: LongInt;
		  MouseY: Integer;
		  MouseX: Integer;
		  Seconds: LongInt;
		  Micros: LongInt;
		End;

  pIntuiText = ^tIntuiText;
  tIntuiText = Record
		  FrontPen: ShortInt;
		  BackPen: ShortInt;
		  DrawMode: ShortInt;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  ITextFont: pTextAttr;
		  IText: pShortInt;
		  NextText: pIntuiText;
		End;

  tRequester = Record
		  OlderRequest: pRequester;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  RelLeft: Integer;
		  RelTop: Integer;
		  ReqGadget: pGadget;
		  ReqBorder: pBorder;
		  ReqText: pIntuiText;
		  Flags: Integer;
		  BackFill: ShortInt;
		  ReqLayer: pLayer;
		  ReqPad1: Array [0..31] of ShortInt;
		  ImageBMap: pBitMap;
		  RWindow: pWindow;
		  ReqPad2: Array [0..35] of ShortInt;
		End;

  tImage = Record
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  Depth: Integer;
		  ImageData: pInteger;
		  PlanePick: ShortInt;
		  PlaneOnOff: ShortInt;
		  NextImage: pImage;
		End;

  tGadget = Record
		  NextGadget: pGadget;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  Flags: Integer;
		  Activation: Integer;
		  GadgetType: Integer;
		  GadgetRender: Pointer;
		  SelectRender: Pointer;
		  GadgetText: pIntuiText;
		  MutualExclude: LongInt;
		  SpecialInfo: Pointer;
		  GadgetID: Integer;
		  UserData: Pointer;
		End;

  tBoolInfo = Record
		  Flags: Integer;
		  Mask: pInteger;
		  Reserved: LongInt;
		End;

  tMenuItem = Record
		  NextItem: pMenuItem;
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  Flags: Integer;
		  MutualExclude: LongInt;
		  ItemFill: Pointer;
		  SelectFill: Pointer;
		  Command: ShortInt;
		  SubItem: pMenuItem;
		  NextSelect: Integer;
		End;

  tNewScreen = Record
		  LeftEdge: Integer;
		  TopEdge: Integer;
		  Width: Integer;
		  Height: Integer;
		  Depth: Integer;
		  DetailPen: ShortInt;
		  BlockPen: ShortInt;
		  ViewModes: Integer;
		  Type_: Integer;
		  Font: pTextAttr;
		  DefaultTitle: pShortInt;
		  Gadgets: pGadget;
		  CustomBitMap: pBitMap;
		End;

  pNewScreen = ^tNewScreen;
  pPreferences = ^tPreferences;
  pView = ^tView;
  pNewWindow = ^tNewWindow;
  pViewPort = ^tViewPort;
  pIntuitionBase = ^tIntuitionBase;
  pRectangle = ^tRectangle;
  pInputEvent = ^tInputEvent;
  ppRemember = ^pRemember;
  pList = ^tList;


Var
  IntuitionBase: pIntuitionBase;


Const
  SYSREQUEST = $4000;
  BEEPING = $20;
  TOPAZ_SIXTY = $9;
  FANFOLD = $0;
  ALTRIGHT = $20;
  CHECKIT = $1;
  WBENCHWINDOW = $2000000;
  SSTOP_BITS = $F0;
  SMART_REFRESH = $0;
  SBUF_4096 = $3;
  PREDRAWN = $2;
  AUTOKNOB = $1;
  FREEVERT = $4;
  OKOK = $1;
  WBENCHCLOSE = $2;
  AUTOBACKPEN = $1;
  BOTTOMBORDER = $80;
  KNOBVMIN = $4;
  ACTIVEWINDOW = $40000;
  WINDOWACTIVE = $2000;
  SELECTUP = $E8;
  OKIMATE_20 = $9;
  GREY_SCALE2 = $1000;
  N_TRACTOR = $20;
  SHSHAKE_NONE = $2;
  SBUFSIZE_BITS = $F;
  STRINGCENTER = $200;
  CUSTOMBITMAP = $40;
  SHSHAKE_BITS = $F;
  NEWPREFS = $4000;
  SHADE_GREYSCALE = $1;
  CORRECT_BLUE = $4;
  AUTOITEXTFONT = $0;
  STDSCREENHEIGHT = $FFFFFFFF;
  REQOFFWINDOW = $1000;
  CUSTOMSCREEN = $F;
  US_LEGAL = $10;
  POINTREL = $1;
  DIAB_630 = $4;
  MENUDOWN = $69;
  HIGHBOX = $80;
  GADGET0002 = $2;
  LOWCOMMWIDTH = $10;
  W_TRACTOR = $30;
  MENUNULL = $FFFF;
  MENUTOGGLED = $4000;
  ALTLEFT = $10;
  RIGHTBORDER = $10;
  PARALLEL_PRINTER = $0;
  BAUD_110 = $0;
  US_LETTER = $0;
  GADGIMMEDIATE = $2;
  BOOLGADGET = $1;
  DISKREMOVED = $10000;
  BAUD_300 = $1;
  ITEMTEXT = $2;
  KNOBHIT = $100;
  INTEGER_SCALING = $100;
  GADGIMAGE = $4;
  MENUCANCEL = $2;
  AUTOFRONTPEN = $0;
  MIDRAWN = $100;
  OKABORT = $4;
  REFRESHBITS = $C0;
  BAUD_19200 = $6;
  AUTOTOPEDGE = $3;
  LACEWB = $1;
  AMIGARIGHT = $80;
  MAXBODY = $FFFF;
  SHADE_COLOR = $2;
  CORRECT_RGB_MASK = $7;
  CHECKWIDTH = $13;
  COMMSEQ = $4;
  NOISYREQ = $4;
  SUPER_BITMAP = $80;
  ASPECT_HORIZ = $0;
  PIXEL_DIMENSIONS = $40;
  ISDRAWN = $1000;
  WINDOWSIZING = $1;
  RMBTRAP = $10000;
  CBM_MPS1000 = $3;
  GRELHEIGHT = $40;
  MENUWAITING = $3;
  SCREENQUIET = $100;
  CLOSEWINDOW_ = $200;
  GADGETDOWN = $20;
  LONGINT_ = $800;
  GADGDISABLED = $100;
  SUPFRONT = $50;
  IMAGE_NEGATIVE = $1;
  CORRECT_RED = $1;
  FLOYD_DITHERING = $400;
  HIGHIMAGE = $0;
  ENDGADGET = $4;
  WINDOWDEPTH = $4;
  EPSON_JX_80 = $8;
  CURSORUP = $4C;
  LEFTBORDER = $20;
  WBENCHOPEN = $1;
  WINDOWCLOSE = $8;
  WUPFRONT = $40;
  MENUHOT = $1;
  SBUF_16000 = $5;
  HP_LASERJET = $B;
  PROPGADGET = $3;
  SIZEBBOTTOM = $20;
  TOPAZ_EIGHTY = $8;
  GADGETTYPE = $FC00;
  MOUSEBUTTONS = $8;
  GADGHCOMP = $0;
  NEWSIZE = $2;
  DIAB_ADV_D25 = $5;
  SPARITY_EVEN = $1;
  AMIGALEFT = $40;
  GADGHNONE = $3;
  STRINGRIGHT = $400;
  VANILLAKEY = $200000;
  HALFTONE_DITHERING = $200;
  DIMENSIONS_MASK = $F0;
  SINGLE = $80;
  SBUF_512 = $0;
  SPARITY_NONE = $0;
  HIGHFLAGS = $C0;
  WBENCHMESSAGE = $20000;
  DEADEND_ALERT = $80000000;
  SPARITY_BITS = $F0;
  AUTONEXTTEXT = $0;
  BOOLEXTEND = $2000;
  QUME_LP_20 = $A;
  ABSOLUTE_DIMENSIONS = $20;
  BORDERLESS = $800;
  ANTI_ALIAS = $800;
  WINDOWDRAG = $2;
  CUSTOM_NAME = $0;
  SHSHAKE_XON = $0;
  MENUTOGGLE = $8;
  FOLLOWMOUSE = $8;
  POINTERSIZE = $24;
  CURSORRIGHT = $4E;
  SUPER_UNUSED = $FCFC0000;
  SELECTDOWN = $68;
  SCRGADGET = $4000;
  REQGADGET = $1000;
  REPORTMOUSE_ = $200;
  SHSHAKE_RTS = $1;
  DITHERING_MASK = $600;
  SDRAGGING = $30;
  SIZEBRIGHT = $10;
  ASPECT_VERT = $1;
  HP_LASERJET_PLUS = $C;
  BOUNDED_DIMENSIONS = $10;
  NOITEM = $3F;
  INACTIVEWINDOW = $80000;
  NOCAREREFRESH = $20000;
  LW_RESERVED = $1;
  SPARITY_ODD = $2;
  GRELBOTTOM = $8;
  WDRAGGING = $20;
  LETTER = $100;
  GADGHIGHBITS = $3;
  SREAD_BITS = $F0;
  AMIGAKEYS = $C0;
  SDOWNBACK = $70;
  NOMENU = $1F;
  RAWKEY = $400;
  SCREENTYPE = $F;
  SIX_LPI = $0;
  SIZING = $10;
  REQSET = $80;
  BAUD_MIDI = $7;
  WDOWNBACK = $60;
  SCREENBEHIND = $80;
  DRAFT = $0;
  DELTAMOVE = $100000;
  IMAGE_POSITIVE = $0;
  ALPHA_P_101 = $1;
  LOWCHECKWIDTH = $D;
  PROPBORDERLESS = $8;
  INTUITICKS = $400000;
  ELITE = $400;
  MAXPOT = $FFFF;
  BAUD_1200 = $2;
  REQACTIVE = $2000;
  SIMPLE_REFRESH = $40;
  ORDERED_DITHERING = $0;
  MENUUP = $E9;
  CURSORLEFT = $4F;
  CLOSE_ = $80;
  STRGADGET = $4;
  MENUVERIFY = $2000;
  OKCANCEL = $2;
  CUSTOM = $40;
  SWRITE_BITS = $F;
  KEYCODE_B = $35;
  BAUD_2400 = $3;
  GZZGADGET = $2000;
  DIAB_C_150 = $6;
  GRELRIGHT = $10;
  ALTKEYMAP = $1000;
  GADGHBOX = $1;
  LONELYMESSAGE = $80000000;
  GRELWIDTH = $20;
  DEFERREFRESH = $8000;
  SYSGADGET = $8000;
  SIZEVERIFY = $1;
  BACKDROP = $100;
  FILENAME_SIZE = $1E;
  BAUD_4800 = $4;
  COMMWIDTH = $1B;
  WBENCHSCREEN = $1;
  SELECTED = $80;
  FREEHORIZ = $2;
  SERIAL_PRINTER = $1;
  BAUD_9600 = $5;
  AUTOLEFTEDGE = $6;
  MULTIPLY_DIMENSIONS = $80;
  KEYCODE_M = $37;
  CHECKED = $100;
  TOPBORDER = $40;
  PICA = $0;
  CURSORDOWN = $4D;
  KEYCODE_N = $36;
  RECOVERY_ALERT = $0;
  CORRECT_GREEN = $2;
  HIGHCOMP = $40;
  HIGHITEM = $2000;
  REQCLEAR = $1000;
  EPSON = $7;
  ALERT_TYPE = $80000000;
  KEYCODE_Q = $10;
  ITEMENABLED = $10;
  HIGHNONE = $C0;
  EIGHT_LPI = $200;
  BROTHER_15XL = $2;
  GADGETUP = $40;
  ACTIVATE = $1000;
  MENUSTATE = $8000;
  FINE = $800;
  NOSUB = $1F;
  RELVERIFY = $1;
  TOGGLESELECT = $100;
  REFRESHWINDOW = $4;
  WINDOWREFRESH = $1000000;
  CENTER_IMAGE = $8;
  KEYCODE_V = $34;
  MENUENABLED = $1;
  KNOBHMIN = $6;
  SBUF_1024 = $1;
  KEYCODE_X = $32;
  SBUF_8000 = $4;
  BOOLMASK = $1;
  REQVERIFY = $800;
  SHOWTITLE_ = $10;
  GADGHIMAGE = $2;
  IGNORE_DIMENSIONS = $0;
  DISKINSERTED = $8000;
  MOUSEMOVE = $10;
  GIMMEZEROZERO = $400;
  INREQUEST = $4000;
  MENUPICK = $100;
  OTHER_REFRESH = $C0;
  WINDOWTICKED = $4000000;
  SHADE_BW = $0;
  SBUF_2048 = $2;
  AUTODRAWMODE = $1;


Procedure OpenIntuition;
Procedure Intuition_ (ievent: pInputEvent);
Function AddGadget
		 (AddPtr: pWindow;
		  Gadget: pGadget;
		  Position: Integer): Integer;

Function ClearDMRequest (Window: pWindow): Boolean;
Procedure ClearMenuStrip (Window: pWindow);
Procedure ClearPointer (Window: pWindow);
Procedure CloseScreen (Screen: pScreen);
Procedure CloseWindow (Window: pWindow);
Function CloseWorkBench: Boolean;
Procedure CurrentTime
		 (Seconds: pLongInt;
		  Micros: pLongInt);

Function DisplayAlert
		 (AlertNumber: LongInt;
		  String_: pShortInt;
		  Height: Integer): Boolean;

Procedure DisplayBeep (Screen: pScreen);
Function DoubleClick
		 (sseconds: LongInt;
		  smicros: LongInt;
		  cseconds: LongInt;
		  cmicros: LongInt): Boolean;

Procedure DrawBorder
		 (RPort: pRastPort;
		  Border: pBorder;
		  LeftOffset: Integer;
		  TopOffset: Integer);

Procedure DrawImage
		 (RPort: pRastPort;
		  Image: pImage;
		  LeftOffset: Integer;
		  TopOffset: Integer);

Procedure EndRequest
		 (requester: pRequester;
		  window: pWindow);

Function GetDefPrefs
		 (preferences: pPreferences;
		  size: Integer): pPreferences;

Function GetPrefs
		 (preferences: pPreferences;
		  size: Integer): pPreferences;

Procedure InitRequester (req: pRequester);
Function ItemAddress
		 (MenuStrip: pMenu;
		  MenuNumber: Integer): pMenuItem;

Procedure ModifyIDCMP
		 (Window: pWindow;
		  Flags: LongInt);

Procedure ModifyProp
		 (Gadget: pGadget;
		  Ptr: pWindow;
		  Req: pRequester;
		  Flags: Integer;
		  HPos: Integer;
		  VPos: Integer;
		  HBody: Integer;
		  VBody: Integer);

Procedure MoveScreen
		 (Screen: pScreen;
		  dx: Integer;
		  dy: Integer);

Procedure MoveWindow
		 (window: pWindow;
		  dx: Integer;
		  dy: Integer);

Procedure OffGadget
		 (Gadget: pGadget;
		  Ptr: pWindow;
		  Req: pRequester);

Procedure OffMenu
		 (Window: pWindow;
		  MenuNumber: Integer);

Procedure OnGadget
		 (Gadget: pGadget;
		  Ptr: pWindow;
		  Req: pRequester);

Procedure OnMenu
		 (Window: pWindow;
		  MenuNumber: Integer);

Function OpenScreen (OSargs: pNewScreen): pScreen;
Function OpenWindow (OWargs: pNewWindow): pWindow;
Function OpenWorkBench: Boolean;
Procedure PrintIText
		 (rp: pRastPort;
		  itext: pIntuiText;
		  left: Integer;
		  top: Integer);

Procedure RefreshGadgets
		 (Gadgets: pGadget;
		  Ptr: pWindow;
		  Req: pRequester);

Function RemoveGadget
		 (RemPtr: pWindow;
		  Gadget: pGadget): Integer;

Procedure ReportMouse
		 (Boolean: Boolean;
		  Window: pWindow);

Function Request
		 (Requester: pRequester;
		  Window: pWindow): Boolean;

Procedure ScreenToBack (Screen: pScreen);
Procedure ScreenToFront (Screen: pScreen);
Function SetDMRequest
		 (Window: pWindow;
		  req: pRequester): Boolean;

Function SetMenuStrip
		 (Window: pWindow;
		  Menu: pMenu): Boolean;

Procedure SetPointer
		 (Window: pWindow;
		  Pointer: pInteger;
		  Height: Integer;
		  Width: Integer;
		  Xoffset: Integer;
		  Yoffset: Integer);

Procedure SetWindowTitles
		 (window: pWindow;
		  windowtitle: pShortInt;
		  screentitle: pShortInt);

Procedure ShowTitle
		 (Screen: pScreen;
		  ShowIt: Boolean);

Procedure SizeWindow
		 (window: pWindow;
		  dx: Integer;
		  dy: Integer);

Function ViewAddress: pView;
Function ViewPortAddress (window: pWindow): pViewPort;
Procedure WindowToBack (window: pWindow);
Procedure WindowToFront (window: pWindow);
Function WindowLimits
		 (window: pWindow;
		  minwidth: Integer;
		  minheight: Integer;
		  maxwidth: Integer;
		  maxheight: Integer): Boolean;

Function SetPrefs
		 (preferences: pPreferences;
		  size: LongInt;
		  flag: Boolean): pPreferences;

Function IntuiTextLength (itext: pIntuiText): LongInt;
Function WBenchToBack: Boolean;
Function WBenchToFront: Boolean;
Function AutoRequest
		 (Window: pWindow;
		  Body: pIntuiText;
		  PText: pIntuiText;
		  NText: pIntuiText;
		  PFlag: LongInt;
		  NFlag: LongInt;
		  W: Integer;
		  H: Integer): Boolean;

Procedure BeginRefresh (Window: pWindow);
Function BuildSysRequest
		 (Window: pWindow;
		  Body: pIntuiText;
		  PosText: pIntuiText;
		  NegText: pIntuiText;
		  Flags: LongInt;
		  W: Integer;
		  H: Integer): pWindow;

Procedure EndRefresh
		 (Window: pWindow;
		  Complete: Boolean);

Procedure FreeSysRequest (Window: pWindow);
Procedure MakeScreen (Screen: pScreen);
Procedure RemakeDisplay;
Procedure RethinkDisplay;
Function AllocRemember
		 (RememberKey: ppRemember;
		  Size: LongInt;
		  Flags: LongInt): Pointer;

Procedure AlohaWorkbench (wbport: LongInt);
Procedure FreeRemember
		 (RememberKey: ppRemember;
		  ReallyForget: Boolean);

Function LockIBase (dontknow: LongInt): LongInt;
Procedure UnlockIBase (IBLock: LongInt);
Function GetScreenData
		 (buffer: Pointer;
		  size: Integer;
		  type_: Integer;
		  screen: pScreen): Boolean;

Procedure RefreshGList
		 (Gadgets: pGadget;
		  Ptr: pWindow;
		  Req: pRequester;
		  NumGad: Integer);

Function AddGList
		 (AddPtr: pWindow;
		  Gadget: pGadget;
		  Position: Integer;
		  NumGad: Integer;
		  Requester: pRequester): Integer;

Function RemoveGList
		 (RemPtr: pWindow;
		  Gadget: pGadget;
		  NumGad: Integer): Integer;

Procedure ActivateWindow (Window: pWindow);
Procedure RefreshWindowFrame (Window: pWindow);
Function ActivateGadget
		 (Gadgets: pGadget;
		  Window: pWindow;
		  Req: pRequester): Boolean;

Procedure NewModifyProp
		 (Gadget: pGadget;
		  Ptr: pWindow;
		  Req: pRequester;
		  Flags: Integer;
		  HPos: Integer;
		  VPos: Integer;
		  HBody: Integer;
		  VBody: Integer;
		  NumGad: Integer);



Function ITEMNUM (n: Integer): Integer;
Function MENUNUM (n: Integer): Integer;
Function SHAKNUM (n: Integer): Integer;
Function SHIFTITEM (n: Integer): Integer;
Function SHIFTMENU (n: Integer): Integer;
Function SHIFTSUB (n: Integer): Integer;
Function SPARNUM (n: Integer): Integer;
Function SRBNUM (n: Integer): Integer;
Function SSBNUM (n: Integer): Integer;
Function SUBNUM (n: Integer): Integer;
Function SWBNUM (n: Integer): Integer;
End.
