home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / rom / intuition / intuition_intern.h < prev    next >
C/C++ Source or Header  |  1997-01-09  |  3KB  |  104 lines

  1. #ifndef INTUITION_INTERN_H
  2. #define INTUITION_INTERN_H
  3. /*
  4.     (C) 1995-96 AROS - The Amiga Replacement OS
  5.     $Id: intuition_intern.h,v 1.10 1996/11/08 11:28:03 aros Exp $
  6.  
  7.     Desc: Intuitions internal structure
  8.     Lang: english
  9. */
  10. #ifndef AROS_LIBCALL_H
  11. #   include <aros/libcall.h>
  12. #endif
  13. #ifndef EXEC_EXECBASE_H
  14. #   include <exec/execbase.h>
  15. #endif
  16. #ifndef EXEC_SEMAPHORES_H
  17. #   include <exec/semaphores.h>
  18. #endif
  19. #ifndef GRAPHICS_GFXBASE_H
  20. #   include <graphics/gfxbase.h>
  21. #endif
  22. #ifndef INTUITION_INTUITIONBASE_H
  23. #   include <intuition/intuitionbase.h>
  24. #endif
  25. #include "intuition_debug.h"
  26.  
  27. struct IntIntuitionBase
  28. {
  29.     struct IntuitionBase IBase;
  30.  
  31.     /* Put local shit here, invisible for the user */
  32.     struct GfxBase       * GfxBase;
  33.     struct ExecBase       * SysBase;
  34.     struct UtilityBase       * UtilBase;
  35.     struct MinList         ClassList;
  36.     struct Screen       * WorkBench;
  37.     struct SignalSemaphore * SigSem;
  38.  
  39.     APTR             DriverData; /* Pointer which the driver may use */
  40.  
  41. /*    struct MinList       PublicScreenList;
  42.     struct Screen      * DefaultPublicScreen; */
  43. };
  44.  
  45. struct IntScreen
  46. {
  47.     struct Screen Screen;
  48.  
  49.     /* Private fields */
  50.     struct DrawInfo DInfo;
  51.     UWORD  Pens[NUMDRIPENS];
  52. };
  53.  
  54. extern struct IntuitionBase * IntuitionBase;
  55.  
  56. #define GetPubIBase(ib)   ((struct IntuitionBase *)ib)
  57. #define GetPrivIBase(ib)  ((struct IntIntuitionBase *)ib)
  58.  
  59. #ifdef GfxBase
  60. #undef GfxBase
  61. #endif
  62. #define GfxBase     (GetPrivIBase(IntuitionBase)->GfxBase)
  63. #ifdef SysBase
  64. #undef SysBase
  65. #endif
  66. #define SysBase     (GetPrivIBase(IntuitionBase)->SysBase)
  67. #ifdef UtilityBase
  68. #undef UtilityBase
  69. #endif
  70. #define UtilityBase (GetPrivIBase(IntuitionBase)->UtilBase)
  71.  
  72. #define PublicClassList ((struct List *)&(GetPrivIBase(IntuitionBase)->ClassList))
  73.  
  74. /* Window-Flags */
  75. #define EWFLG_DELAYCLOSE    0x00000001L /* Delay CloseWindow() */
  76. #define EWFLG_CLOSEWINDOW    0x00000002L /* Call CloseWindow() */
  77.  
  78. /* Needed for close() */
  79. #define expunge() \
  80.     AROS_LC0(BPTR, expunge, struct IntuitionBase *, IntuitionBase, 3, Intuition)
  81.  
  82. /* Driver prototypes */
  83. extern int  intui_init (struct IntuitionBase *);
  84. extern int  intui_open (struct IntuitionBase *);
  85. extern void intui_close (struct IntuitionBase *);
  86. extern void intui_expunge (struct IntuitionBase *);
  87. extern int intui_GetWindowSize (void);
  88.  
  89. extern void intui_ActivateWindow (struct Window *);
  90. extern void intui_BeginRefresh (struct Window * window,
  91.         struct IntuitionBase * IntuitionBase);
  92. extern void intui_CloseWindow (struct Window *, struct IntuitionBase *);
  93. extern void intui_EndRefresh (struct Window * window,
  94.         BOOL complete,
  95.         struct IntuitionBase * IntuitionBase);
  96. extern int intui_OpenWindow (struct Window *,
  97.         struct IntuitionBase *);
  98. extern void intui_WindowToFront (struct Window * window);
  99. extern void intui_WindowToBack (struct Window * window);
  100. extern void intui_SetWindowTitles (struct Window *, UBYTE *, UBYTE *);
  101. extern void intui_SizeWindow (struct Window * win, LONG dx, LONG dy);
  102.  
  103. #endif /* INTUITION_INTERN_H */
  104.