home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / Ph 1.1.1 / Lib / oop.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-30  |  3.8 KB  |  94 lines  |  [TEXT/MPS ]

  1. /*______________________________________________________________________
  2.  
  3.     oop.h - Reusable Object-Oriented Window and Command Manager Interface.
  4. _____________________________________________________________________*/
  5.  
  6. #ifndef __oop__
  7. #define __oop__
  8.  
  9. /*_____________________________________________________________________
  10.  
  11.     Defines.
  12. _____________________________________________________________________*/
  13.                                                         
  14. #define noWind                        0            /* no window */
  15. #define daWind                        1            /* da window */
  16. #define firstUserWindKind        2            /* first user window kind value */
  17.  
  18. /*_____________________________________________________________________
  19.  
  20.     Types.
  21. _____________________________________________________________________*/
  22.  
  23. typedef void (*FPeriodic)(WindowPtr w);    
  24. typedef void (*FClick)(WindowPtr w, Point where, short modifiers);        
  25. typedef void (*FKey)(WindowPtr w, char key, short modifiers);            
  26. typedef void (*FUpdate)(WindowPtr w);        
  27. typedef void (*FActivate)(WindowPtr w);    
  28. typedef void (*FDeactivate)(WindowPtr w);    
  29. typedef void (*FGrow)(WindowPtr w, Point where);
  30. typedef void (*FZoom)(WindowPtr w, Point where, short partCode);
  31. typedef void (*FClose)(WindowPtr w);
  32. typedef Boolean (*FCommand)(WindowPtr w, short theMenu, short theItem);
  33. typedef void (*FDisk)(long message);
  34.  
  35. typedef struct oop_Dispatch {
  36.     FPeriodic    doPeriodic;        /* pointer to periodic handler */
  37.     FClick        doClick;            /* pointer to mouse down event handler */
  38.     FKey            doKey;            /* pointer to key and autokey event handler */
  39.     FUpdate        doUpdate;        /* pointer to update event handler */
  40.     FActivate    doActivate;        /* pointer to activate event handler */
  41.     FDeactivate    doDeactivate;    /* pointer to deactivate event handler */
  42.     FGrow            doGrow;            /* pointer to window grow handler */
  43.     FZoom            doZoom;            /* pointer to window zoom handler */
  44.     FClose        doClose;            /* pointer to window close handler */
  45.     FCommand        doCommand;        /* pointer to command handler */
  46. } oop_Dispatch;
  47.  
  48. /*______________________________________________________________________
  49.  
  50.     Variables.
  51. _____________________________________________________________________*/
  52.  
  53. extern EventRecord        Event;            /* the current event */
  54.  
  55. /*______________________________________________________________________
  56.  
  57.     Functions.
  58. _____________________________________________________________________*/
  59.  
  60. extern short oop_GetWindKind (WindowPtr w);
  61. extern Handle oop_GetWindInfo (WindowPtr w);
  62. extern short oop_GetWindItemHit (WindowPtr w);
  63. extern void oop_ClearWindItemHit (WindowPtr w);
  64. extern RgnHandle oop_GetWindIbeamRgn (WindowPtr w);
  65. extern Boolean oop_Moved (WindowPtr w);
  66. extern Boolean oop_InForeground (void);
  67. extern void oop_Init (short appleMenuID, short lastAppleMenuItem, 
  68.     short fileMenuID, short closeMenuItem,
  69.     short editMenuID, short selectAllItem, 
  70.     FPeriodic doPeriodic, FDisk doDisk,
  71.     long extraMasterPtrBlocks, long extraStackSpace);
  72. extern void oop_RegisterCommandHandler (FCommand handler);
  73. extern void oop_NewWindow (WindowPtr w, short kind,
  74.     Handle info, oop_Dispatch *dispatch);
  75. extern void oop_NewDialog (WindowPtr d, short kind,
  76.     Handle info, oop_Dispatch *dispatch,
  77.     Boolean modal, short defaultBtn, short cancelBtn);
  78. extern void oop_DoPeriodic (WindowPtr w);
  79. extern void oop_DoClick (WindowPtr w, Point where, short modifiers);
  80. extern void oop_DoKey (WindowPtr w, char key, short modifiers);
  81. extern void oop_DoUpdate (WindowPtr w);
  82. extern void oop_DoActivate (WindowPtr w);
  83. extern void oop_DoDeactivate (WindowPtr w);
  84. extern void oop_DoGrow (WindowPtr w, Point where);
  85. extern void oop_DoZoom (WindowPtr w, Point where, short partCode);
  86. extern void oop_DoClose (WindowPtr w);
  87. extern Boolean oop_DoCommand (WindowPtr w, short theMenu, short theItem);
  88. extern void oop_DoEvent (EventRecord *event, short eventMask, long sleep, 
  89.     RgnHandle mouseRgn);
  90. extern void oop_UpdateAll (void);
  91. extern pascal Boolean oop_ModalUpdate (DialogPtr theDialog,
  92.     EventRecord *theEvent, short *itemHit);
  93.  
  94. #endif