1 #ifndef INTUITION_EXTENSIONS_H
    2 #define INTUITION_EXTENSIONS_H
    3 
    4 /*
    5 	intuition v50 definitions
    6 
    7 	Copyright © 2002-2008 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef INTUITION_DIATTR_H
   11 #include <intuition/diattr.h>
   12 #endif
   13 
   14 #ifndef INTUITION_SCREENS_H
   15 #include <intuition/screens.h>
   16 #endif
   17 
   18 #ifndef INTUITION_INTUITION_H
   19 #include <intuition/intuition.h>
   20 #endif
   21 
   22 #ifndef INTUITION_POINTERCLASS_H
   23 #include <intuition/pointerclass.h>
   24 #endif
   25 
   26 #pragma pack(2)
   27 
   28 
   29 /* new SYSIA_Which values (added some padding there) */
   30 
   31 #define ICONIFYIMAGE    (0x12L)
   32 #define LOCKIMAGE       (0x13L)
   33 #define MUIIMAGE        (0x14L)
   34 #define POPUPIMAGE      (0x15L)
   35 #define SNAPSHOTIMAGE   (0x16L)
   36 #define JUMPIMAGE       (0x17L)
   37 #define MENUTOGGLEIMAGE (0x19L)
   38 #define SUBMENUIMAGE    (0x1AL)
   39 
   40 
   41 /* Flags for ExtraTitlebarGadgets!!! */
   42 #define ETG_ICONIFY             (0x1L)  /* MUI iconify gadget */
   43 #define ETG_LOCK                (0x2L)  /* lock gadget from Magellan */
   44 #define ETG_MUI                 (0x4L)  /* MUI prefs gadget */
   45 #define ETG_POPUP               (0x8L)  /* popup menu gadget */
   46 #define ETG_SNAPSHOT            (0x10L) /* MUI snapshot gadget */
   47 #define ETG_JUMP                (0x20L) /* MUI screen jump gadget */
   48 
   49 /* Extra gadget ID's */
   50 #define ETI_Dummy               (0xFFD0)/* you can change this base with WA_ExtraGadgetsStartID! */
   51 #define ETI_Iconify             (ETI_Dummy)
   52 #define ETI_Lock                (ETI_Dummy + 1)
   53 #define ETI_MUI                 (ETI_Dummy + 2)
   54 #define ETI_PopUp               (ETI_Dummy + 3)
   55 #define ETI_Snapshot            (ETI_Dummy + 4)
   56 #define ETI_Jump                (ETI_Dummy + 5)
   57 
   58 /* for use with custom ETI_Dummy base... */
   59 #define ETD_Iconify             0
   60 #define ETD_Lock                1
   61 #define ETD_MUI                 2
   62 #define ETD_PopUp               3
   63 #define ETD_Snapshot            4
   64 #define ETD_Jump                5
   65 
   66 /* GetSkinInfo defines */
   67 
   68 #define SI_Dummy                (0x8000000)
   69 
   70 /* Window border size */
   71 #define SI_BorderTop            (SI_Dummy + 1)
   72 #define SI_BorderTopTitle       (SI_Dummy + 2) /* when you want a window with title/titlebar gadgets */
   73 #define SI_BorderLeft           (SI_Dummy + 3)
   74 #define SI_BorderRight          (SI_Dummy + 4) /* std size of window border */
   75 #define SI_BorderRightSize      (SI_Dummy + 5) /* border with size gadgets */
   76 #define SI_BorderBottom         (SI_Dummy + 6)
   77 #define SI_BorderBottomSize     (SI_Dummy + 7)
   78 #define SI_ScreenTitlebarHeight (SI_Dummy + 8) /* real height of screen titlebar (no need to add 1 pixel there!)
   79 											   ** please use this instead of reading from struct Screen
   80 											   ** do note that this returns 0 for invisible or disappearing
   81 											   ** titlebars so it may not be what you need */
   82 
   83 /* Titlebar gadgets positions/sizes */
   84 #define SI_RightPropWidth       (SI_Dummy + 10)
   85 #define SI_BottomPropHeight     (SI_Dummy + 11)
   86 #define SI_RightArrowBox        (SI_Dummy + 12) /* space used by arrows on right titlebar */
   87 #define SI_BottomArrowBox       (SI_Dummy + 13)
   88 
   89 /* Other Information */
   90 #define SI_Shadows              (SI_Dummy + 14) /* returns TRUE if the skin supports window shadows */
   91 
   92 
   93 
   94 /* window action methods, see the autodoc for detailed descriptions */
   95 
   96 #define WAC_DUMMY                       (0x0001)
   97 #define WAC_HIDEWINDOW                  (WAC_DUMMY)
   98 #define WAC_SHOWWINDOW                  (WAC_DUMMY + 1)
   99 #define WAC_SENDIDCMPCLOSE              (WAC_DUMMY + 2)
  100 #define WAC_MOVEWINDOW                  (WAC_DUMMY + 3)
  101 #define WAC_SIZEWINDOW                  (WAC_DUMMY + 4)
  102 #define WAC_CHANGEWINDOWBOX             (WAC_DUMMY + 5)
  103 #define WAC_WINDOWTOFRONT               (WAC_DUMMY + 6)
  104 #define WAC_WINDOWTOBACK                (WAC_DUMMY + 7)
  105 #define WAC_ZIPWINDOW                   (WAC_DUMMY + 8)
  106 #define WAC_MOVEWINDOWINFRONTOF         (WAC_DUMMY + 9)
  107 #define WAC_ACTIVATEWINDOW              (WAC_DUMMY + 10)
  108 /* V51 */
  109 #define WAC_MAXIMIZEWINDOW              (WAC_DUMMY + 11)
  110 #define WAC_MINIMIZEWINDOW              (WAC_DUMMY + 12)
  111 #define WAC_RESTOREINITIALSIZEPOS       (WAC_DUMMY + 13)
  112 #define WAC_OPENMENU                    (WAC_DUMMY + 14)
  113 #define WAC_FAMILYTOFRONT               (WAC_DUMMY + 15)
  114 #define WAC_FAMILYTOBACK                (WAC_DUMMY + 16)
  115 
  116 /* window action tags */
  117 
  118 #define WAT_DUMMY                       TAG_USER
  119 #define WAT_MOVEWINDOWX                 (WAT_DUMMY + 1)
  120 #define WAT_MOVEWINDOWY                 (WAT_DUMMY + 2)
  121 #define WAT_SIZEWINDOWX                 (WAT_DUMMY + 3)
  122 #define WAT_SIZEWINDOWY                 (WAT_DUMMY + 4)
  123 #define WAT_WINDOWBOXLEFT               (WAT_DUMMY + 5)
  124 #define WAT_WINDOWBOXTOP                (WAT_DUMMY + 6)
  125 #define WAT_WINDOWBOXWIDTH              (WAT_DUMMY + 7)
  126 #define WAT_WINDOWBOXHEIGHT             (WAT_DUMMY + 8)
  127 #define WAT_MOVEWBEHINDWINDOW           (WAT_DUMMY + 9)
  128 
  129 /* window transparency */
  130 
  131 struct TransparencyMessage
  132 {
  133 	struct Layer          *Layer;      /* the layer you're asked to provide transparency for */
  134 	struct Region         *Region;     /* create transparency in this region */
  135 	struct Rectangle      *NewBounds;  /* current layer boundaries */
  136 	struct Rectangle      *OldBounds;  /* old layer boundaries, useful after layer resize */
  137 };
  138 
  139 /* TransparencyControl tags and methods */
  140 #define TRANSPCONTROLMETHOD_INSTALLREGION         0x1
  141 /* Installs a new region, requires that you pass TRANSPCONTROL_REGION in tags. Setting this tag
  142 ** to NULL or not passing it at all removes currently installed. Passing TRANSPCONTROL_OLDREGION
  143 ** will write old region address to storagePtr passed in tag->ti_Data. Installing a region removes
  144 ** regionhook!
  145 */
  146 
  147 #define TRANSPCONTROLMETHOD_INSTALLREGIONHOOK     0x2
  148 /* Similar to TRANSPCONTROLMETHOD_INSTALLREGION */
  149 
  150 #define TRANSPCONTROLMETHOD_UPDATETRANSPARENCY    0x3
  151 /* Calls your transparency hook to allow you to change the transparency whenever you want.
  152 ** This has no effect with transparency region installed.
  153 */
  154 
  155 #define TRANSPCONTROL_DUMMY            TAG_USER
  156 #define TRANSPCONTROL_REGION           (TRANSPCONTROL_DUMMY + 1)
  157 #define TRANSPCONTROL_REGIONHOOK       (TRANSPCONTROL_DUMMY + 2)
  158 #define TRANSPCONTROL_OLDREGION        (TRANSPCONTROL_DUMMY + 3)
  159 #define TRANSPCONTROL_OLDREGIONHOOK    (TRANSPCONTROL_DUMMY + 4)
  160 
  161 /* requester extensions */
  162 /* please pass this structure to EasyRequestArgs or BuildEasyRequest
  163 ** Note that the extended structure is recognised by es_StructSize field!
  164 ** You MUST set it to sizeof(struct ExtEasyStruct) in order to use the tag
  165 ** field, setting size to NULL or sizeof(struct EasyStruct) disables the use
  166 ** of this extension!
  167 **
  168 ** please also note that no logos are displayed on CLUT screens (<=8 bitplanes)
  169 */
  170 
  171 struct ExtEasyStruct
  172 {
  173 	ULONG  es_StructSize;
  174 	ULONG  es_Flags;
  175 	UBYTE *es_Title;
  176 	UBYTE *es_TextFormat;
  177 	UBYTE *es_GadgetFormat;
  178 	struct TagItem *es_Tags;
  179 };
  180 
  181 #define EES_Dummy             TAG_USER
  182 #define EES_ActiveButton      (EES_Dummy + 1) /* the button which will be hilighted when requester pops up, uses 1,2,..,n,0 numbering! */
  183 #define EES_DosLogo           (EES_Dummy + 2)
  184 #define EES_DiskBased         (EES_Dummy + 3) /* if TRUE, the requesters may use diskbased components. if FALSE, no I/O will be done when displaying the requester. defaults to TRUE */
  185 
  186 #define DOSLOGO_DISKINSERT          1
  187 #define DOSLOGO_DISKNOTVALIDATED    2
  188 #define DOSLOGO_DISKPROTECTED       3
  189 #define DOSLOGO_DISKFULL            4
  190 #define DOSLOGO_NOTADOSDISK         5
  191 #define DOSLOGO_NODISK              6
  192 #define DOSLOGO_DISKBUSY            7
  193 #define DOSLOGO_DISKERROR           8
  194 #define LOGO_CRASH                  9
  195 
  196 /* GetMonitorList tags */
  197 
  198 #define GMLA_Dummy                        (TAG_USER + 0x4000)
  199 
  200 /* ULONG, finds the monitor related to the given display ID, only the
  201 ** monitor(s) matching the provided DisplayIDs will be added to the list */
  202 #define GMLA_DisplayID                    (GMLA_Dummy + 1)
  203 
  204 #pragma pack()
  205 
  206 #endif /* INTUITION_EXTENSIONS_H */