home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d154 / wicon.lha / Wicon / wicon.h < prev    next >
C/C++ Source or Header  |  1987-06-15  |  4KB  |  163 lines

  1. /**************************************************************************
  2.  *
  3.  *    WICON.H     for wicon.c a *Window iconifier
  4.  *
  5.  *    1.7 08-May-88     Copyright (c) 1987,1988  Steven Sweeting 26-Mar-87
  6.  *
  7.  **************************************************************************/
  8.  
  9. /* #define SMALLWICON       /* for a smaller executable */
  10.  
  11. #include "intuition/intuitionbase.h"
  12. #include "devices/inputevent.h"
  13. #include "devices/input.h"
  14. #include "stdio.h"
  15.  
  16. #define MAXWINFO        20
  17. #define DBG(s)                  fputs(s,stderr)
  18.  
  19. struct    BoxInfo
  20. {
  21.     SHORT   LeftEdge, TopEdge;
  22.     SHORT   Width, Height;
  23. };
  24.             /* must be a longword multiple */
  25. struct    sWinfo
  26. {
  27.     struct Window        *Window;    /* address of Window structure */
  28.     struct Window        *IconWindow;    /* address of the special Icon Window */
  29.     WORD            Flags;        /* Our own Flags */
  30.     WORD            filler;
  31. };
  32.  
  33.         /* These are for sWinfo.Flags */
  34.  
  35. #define WINFO_USED        1    /* This element is being used */
  36. #define WINFO_CLOSING        2    /* This window is being closed */
  37. #define WINFO_WAIT        4    /* This element is being modified */
  38.  
  39. WORD                Winfos;
  40. struct    sWinfo            Winfo[ MAXWINFO ];
  41. struct    Screen            *WiconScreen;
  42. struct    Screen            *WorkBenchScreen;
  43.  
  44. struct    MsgPort         IconPort;
  45. LONG                IconMask;
  46.  
  47.  
  48. void                (*OWVector)();
  49. void                (*CWVector)();
  50.  
  51. #ifdef WICON__C
  52.  
  53. struct    NewWindow        NewBackdrop =
  54.                 {
  55.                     0,11, 0, 0,
  56.                     -1,-1, 0,
  57.                     BORDERLESS | BACKDROP | SIMPLE_REFRESH,
  58.                     NULL, NULL, NULL, NULL, NULL,
  59.                     90,40, -1, -1,
  60.                     CUSTOMSCREEN
  61.                 };
  62. struct    Window            *BackdropWindow=NULL;
  63. struct    Window            *WiconOpenW();
  64. void                WiconCloseW();
  65.  
  66. struct    IntuitionBase        *IntuitionBase    = NULL;
  67. struct    IconBase        *IconBase    = NULL;
  68. struct    GfxBase         *GfxBase    = NULL;
  69. struct    LayersBase        *LayersBase    = NULL;
  70. struct    Window            *PushedWindow    = NULL;
  71. struct    MsgPort         *DeathPort    = NULL;
  72. LONG                SuicideMask    = 0;
  73.  
  74. struct    Task            *WiconTask       = NULL;
  75. LONG                PushMask       = 0;
  76. LONG                PushSignal       = 0;
  77. struct IOStdReq         *InputRequestBlock = NULL;
  78. BOOL                InputDeviceOpen    = FALSE;
  79.  
  80. struct Interrupt        WiconInterrupt = { 0 };
  81. struct MsgPort            *InputDevPort  = NULL;
  82.  
  83. #endif
  84.  
  85. extern    struct    Library     *OpenLibrary();
  86.  
  87. extern    struct    Task        *FindTask();
  88. extern    LONG            AllocSignal();
  89. extern    VOID            FreeSignal();
  90. extern    struct    MsgPort     *CreatePort();
  91. extern    struct    MsgPort     *FindPort();
  92. extern    long            Wait();
  93.  
  94. extern    struct IOStdReq     *CreateStdIO();
  95. extern    APTR            AllocMem();
  96. extern    struct Task        *FindTask();
  97.  
  98.  
  99. extern    struct InputEvent    *WiconHandler();
  100.  
  101. #define WINDOW(layer)           ((struct Window *)((layer)->Window))
  102. #define SCREENTOP\
  103.        (theScreen->TopEdge << ((theScreen->ViewPort.Modes & LACE)? 0: 1))
  104.  
  105. extern    struct Layer        *WhichLayer();
  106.  
  107. extern    struct Window        *OpenWindow();
  108. extern    struct Window        *OldOpenWindow();
  109. extern    void            WiconHandlerStub();
  110. extern    void            (*GetFunction())();
  111.  
  112. extern    void            (*SetFunction())();
  113. extern    void            UnSetFunction();
  114.  
  115. #define LVOOpenWindow        (-0xCCL)
  116. #define LVOCloseWindow        (-0x48L)
  117.  
  118. extern    void            SizeRec();
  119.  
  120. #ifndef SMALLWICON
  121.     /* Arguments, explained in the .doc file */
  122.  
  123. BOOL                Arg_AllScreens;
  124. WORD                Arg_Boxes;
  125. WORD                Arg_Chars;
  126. BOOL                Arg_Depth;
  127. BOOL                Arg_Execute;
  128. WORD                Arg_FirstScreen;
  129. BOOL                Arg_Iconify;
  130. WORD                Arg_Lines;
  131. WORD                Arg_Priority;
  132. BOOL                Arg_Quiet;
  133. BOOL                Arg_RMBTRAP;
  134. BOOL                Arg_Sticky;
  135. BOOL                Arg_Testing;
  136. BOOL                Arg_WBWs;
  137. char                   *Arg_Window;
  138.  
  139.     /* I don't know whether this is Manx dependant or not */
  140.  
  141. extern struct WBStartup *WBenchMsg;
  142. #else SMALLWICON
  143.  
  144. #define     Arg_Boxes          (20)
  145. #define     Arg_Chars          (12)
  146. #define     Arg_Depth          (TRUE)
  147. #define     Arg_Execute       (TRUE)
  148. #define     Arg_Testing       (FALSE)
  149. #define     Arg_AllScreens    (TRUE)
  150. #define     Arg_FirstScreen   (FALSE)
  151. #define     Arg_Iconify       (TRUE)
  152. #define     Arg_Lines          (1)
  153. #define     Arg_Priority      (0)
  154. #define     Arg_Quiet          (FALSE)
  155. #define     Arg_RMBTRAP       (FALSE)
  156. #define     Arg_Sticky          (FALSE)
  157. #define     Arg_WBWs          (FALSE)
  158.  
  159. #define     Arg_Window
  160.  
  161. #endif SMALLWICON
  162.  
  163.