1 #ifndef LIBRARIES_GADTOOLS_H
    2 #define LIBRARIES_GADTOOLS_H
    3 
    4 /*
    5 	gadtools.library include
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef UTILITY_TAGITEM_H
   15 # include <utility/tagitem.h>
   16 #endif
   17 
   18 #ifndef INTUITION_INTUITION_H
   19 # include <intuition/intuition.h>
   20 #endif
   21 
   22 #ifndef INTUITION_GADGETCLASS_H
   23 # include <intuition/gadgetclass.h>
   24 #endif
   25 
   26 #pragma pack(2)
   27 
   28 
   29 #define GENERIC_KIND    0
   30 #define BUTTON_KIND     1
   31 #define CHECKBOX_KIND   2
   32 #define INTEGER_KIND    3
   33 #define LISTVIEW_KIND   4
   34 #define MX_KIND         5
   35 #define NUMBER_KIND     6
   36 #define CYCLE_KIND      7
   37 #define PALETTE_KIND    8
   38 #define SCROLLER_KIND   9
   39 
   40 #define SLIDER_KIND     11
   41 #define STRING_KIND     12
   42 #define TEXT_KIND       13
   43 
   44 #define NUM_KINDS       14
   45 
   46 
   47 #define ARROWIDCMP     (IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_INTUITICKS | IDCMP_MOUSEBUTTONS)
   48 
   49 #define BUTTONIDCMP    (IDCMP_GADGETUP)
   50 #define CHECKBOXIDCMP  (IDCMP_GADGETUP)
   51 #define INTEGERIDCMP   (IDCMP_GADGETUP)
   52 #define LISTVIEWIDCMP  (IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_MOUSEMOVE | ARROWIDCMP)
   53 
   54 #define MXIDCMP        (IDCMP_GADGETDOWN)
   55 #define NUMBERIDCMP    (0L)
   56 #define CYCLEIDCMP     (IDCMP_GADGETUP)
   57 #define PALETTEIDCMP   (IDCMP_GADGETUP)
   58 
   59 #define SCROLLERIDCMP  (IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_MOUSEMOVE)
   60 #define SLIDERIDCMP    (IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_MOUSEMOVE)
   61 #define STRINGIDCMP    (IDCMP_GADGETUP)
   62 
   63 #define TEXTIDCMP      (0L)
   64 
   65 struct NewGadget
   66 {
   67 	WORD             ng_LeftEdge, ng_TopEdge;
   68 	WORD             ng_Width, ng_Height;
   69 	UBYTE           *ng_GadgetText;
   70 	struct TextAttr *ng_TextAttr;
   71 	UWORD            ng_GadgetID;
   72 	ULONG            ng_Flags;
   73 	APTR             ng_VisualInfo;
   74 	APTR             ng_UserData;
   75 };
   76 
   77 
   78 #define PLACETEXT_LEFT   0x0001
   79 #define PLACETEXT_RIGHT  0x0002
   80 #define PLACETEXT_ABOVE  0x0004
   81 #define PLACETEXT_BELOW  0x0008
   82 #define PLACETEXT_IN     0x0010
   83 
   84 #define NG_HIGHLABEL     0x0020
   85 
   86 
   87 struct NewMenu
   88 {
   89 	UBYTE  nm_Type;
   90 
   91 	STRPTR nm_Label;
   92 	STRPTR nm_CommKey;
   93 	UWORD  nm_Flags;
   94 	LONG   nm_MutualExclude;
   95 	APTR   nm_UserData;
   96 };
   97 
   98 
   99 #define MENU_IMAGE        128
  100 
  101 #define NM_TITLE          1
  102 #define NM_ITEM           2
  103 #define NM_SUB            3
  104 
  105 #define IM_ITEM           (NM_ITEM | MENU_IMAGE)
  106 #define IM_SUB            (NM_SUB | MENU_IMAGE)
  107 
  108 #define NM_END            0
  109 
  110 #define NM_IGNORE         64
  111 
  112 #define NM_BARLABEL       ((STRPTR)-1)
  113 
  114 #define NM_MENUDISABLED   MENUENABLED
  115 #define NM_ITEMDISABLED   ITEMENABLED
  116 
  117 #define NM_COMMANDSTRING  COMMSEQ
  118 
  119 #define NM_FLAGMASK       (~(COMMSEQ | ITEMTEXT | HIGHFLAGS))
  120 #define NM_FLAGMASK_V39   (~(ITEMTEXT | HIGHFLAGS))
  121 
  122 
  123 #define GTMENU_USERDATA(menu)         (*((APTR *)(((struct Menu *)menu) + 1)))
  124 #define GTMENUITEM_USERDATA(menuitem) (*((APTR *)(((struct MenuItem *)menuitem) + 1)))
  125 
  126 #define MENU_USERDATA(menuitem)       (*((APTR *)(menuitem + 1)))
  127 
  128 #define GTMENU_TRIMMED  0x00000001
  129 #define GTMENU_INVALID  0x00000002
  130 #define GTMENU_NOMEM    0x00000003
  131 
  132 
  133 #define MX_WIDTH   17
  134 #define MX_HEIGHT  9
  135 
  136 #define CHECKBOX_WIDTH   26
  137 #define CHECKBOX_HEIGHT  11
  138 
  139 
  140 #define GT_TagBase            (TAG_USER + 0x80000)
  141 
  142 #define GTVI_NewWindow        (GT_TagBase + 1)
  143 #define GTVI_NWTags           (GT_TagBase + 2)
  144 
  145 #define GT_Private0           (GT_TagBase + 3)
  146 
  147 #define GTCB_Checked          (GT_TagBase + 4)
  148 
  149 #define GTLV_Top              (GT_TagBase + 5)
  150 #define GTLV_Labels           (GT_TagBase + 6)
  151 #define GTLV_ReadOnly         (GT_TagBase + 7)
  152 
  153 #define GTLV_ScrollWidth      (GT_TagBase + 8)
  154 
  155 #define GTMX_Labels           (GT_TagBase + 9)
  156 #define GTMX_Active           (GT_TagBase + 10)
  157 
  158 #define GTTX_Text             (GT_TagBase + 11)
  159 #define GTTX_CopyText         (GT_TagBase + 12)
  160 
  161 #define GTNM_Number           (GT_TagBase + 13)
  162 
  163 #define GTCY_Labels           (GT_TagBase + 14)
  164 #define GTCY_Active           (GT_TagBase + 15)
  165 
  166 #define GTPA_Depth            (GT_TagBase + 16)
  167 #define GTPA_Color            (GT_TagBase + 17)
  168 #define GTPA_ColorOffset      (GT_TagBase + 18)
  169 #define GTPA_IndicatorWidth   (GT_TagBase + 19)
  170 #define GTPA_IndicatorHeight  (GT_TagBase + 20)
  171 
  172 #define GTSC_Top              (GT_TagBase + 21)
  173 #define GTSC_Total            (GT_TagBase + 22)
  174 #define GTSC_Visible          (GT_TagBase + 23)
  175 #define GTSC_Overlap          (GT_TagBase + 24)
  176 
  177 #define GTSL_Min              (GT_TagBase + 38)
  178 #define GTSL_Max              (GT_TagBase + 39)
  179 #define GTSL_Level            (GT_TagBase + 40)
  180 #define GTSL_MaxLevelLen      (GT_TagBase + 41)
  181 #define GTSL_LevelFormat      (GT_TagBase + 42)
  182 #define GTSL_LevelPlace       (GT_TagBase + 43)
  183 #define GTSL_DispFunc         (GT_TagBase + 44)
  184 
  185 #define GTST_String           (GT_TagBase + 45)
  186 #define GTST_MaxChars         (GT_TagBase + 46)
  187 
  188 #define GTIN_Number           (GT_TagBase + 47)
  189 #define GTIN_MaxChars         (GT_TagBase + 48)
  190 
  191 #define GTMN_TextAttr         (GT_TagBase + 49)
  192 #define GTMN_FrontPen         (GT_TagBase + 50)
  193 
  194 #define GTBB_Recessed         (GT_TagBase + 51)
  195 
  196 #define GT_VisualInfo         (GT_TagBase + 52)
  197 
  198 #define GTLV_ShowSelected     (GT_TagBase + 53)
  199 
  200 #define GTLV_Selected         (GT_TagBase + 54)
  201 
  202 #define GTST_EditHook         (GT_TagBase + 55)
  203 #define GTIN_EditHook         (GTST_EditHook)
  204 
  205 #define GT_Reserved0          (GTST_EditHook)	/*** OBSOLETE ***/
  206 #define GT_Reserved1          (GT_TagBase + 56)
  207 
  208 #define GTTX_Border           (GT_TagBase + 57)
  209 
  210 #define GTNM_Border           (GT_TagBase + 58)
  211 
  212 #define GTSC_Arrows           (GT_TagBase + 59)
  213 
  214 #define GTMN_Menu             (GT_TagBase + 60)
  215 
  216 #define GTMX_Spacing          (GT_TagBase + 61)
  217 
  218 #define GTMN_FullMenu         (GT_TagBase + 62)
  219 
  220 #define GTMN_SecondaryError   (GT_TagBase + 63)
  221 
  222 #define GT_Underscore         (GT_TagBase + 64)
  223 
  224 #define GTMN_Checkmark        (GT_TagBase + 65)
  225 #define GTMN_AmigaKey         (GT_TagBase + 66)
  226 #define GTMN_NewLookMenus     (GT_TagBase + 67)
  227 
  228 #define GTCB_Scaled           (GT_TagBase + 68)
  229 #define GTMX_Scaled           (GT_TagBase + 69)
  230 
  231 #define GTPA_NumColors        (GT_TagBase + 70)
  232 
  233 #define GTMX_TitlePlace       (GT_TagBase + 71)
  234 
  235 #define GTTX_FrontPen         (GT_TagBase + 72)
  236 #define GTTX_BackPen          (GT_TagBase + 73)
  237 #define GTTX_Justification    (GT_TagBase + 74)
  238 
  239 #define GTNM_FrontPen         (GT_TagBase + 72)
  240 #define GTNM_BackPen          (GT_TagBase + 73)
  241 #define GTNM_Justification    (GT_TagBase + 74)
  242 #define GTNM_Format           (GT_TagBase + 75)
  243 #define GTNM_MaxNumberLen     (GT_TagBase + 76)
  244 
  245 #define GTBB_FrameType        (GT_TagBase + 77)
  246 
  247 #define GTLV_MakeVisible      (GT_TagBase + 78)
  248 #define GTLV_ItemHeight       (GT_TagBase + 79)
  249 
  250 #define GTSL_MaxPixelLen      (GT_TagBase + 80)
  251 #define GTSL_Justification    (GT_TagBase + 81)
  252 
  253 #define GTPA_ColorTable       (GT_TagBase + 82)
  254 
  255 #define GTLV_CallBack         (GT_TagBase + 83)
  256 #define GTLV_MaxPen           (GT_TagBase + 84)
  257 
  258 #define GTTX_Clipped          (GT_TagBase + 85)
  259 #define GTNM_Clipped          (GTTX_Clipped)
  260 
  261 
  262 #define GTJ_LEFT    0
  263 #define GTJ_RIGHT   1
  264 #define GTJ_CENTER  2
  265 
  266 
  267 #define BBFT_BUTTON       1
  268 #define BBFT_RIDGE        2
  269 #define BBFT_ICONDROPBOX  3
  270 
  271 
  272 #define INTERWIDTH   8
  273 #define INTERHEIGHT  4
  274 
  275 
  276 #define NWAY_KIND    CYCLE_KIND
  277 #define NWAYIDCMP    CYCLEIDCMP
  278 #define GTNW_Labels  GTCY_Labels
  279 #define GTNW_Active  GTCY_Active
  280 
  281 
  282 #define GADTOOLBIT   (0x8000)
  283 #define GADTOOLMASK  (~GADTOOLBIT)
  284 
  285 
  286 #define LV_DRAW       0x202L
  287 
  288 #define LVCB_OK       0
  289 #define LVCB_UNKNOWN  1
  290 
  291 #define LVR_NORMAL            0
  292 #define LVR_SELECTED          1
  293 #define LVR_NORMALDISABLED    2
  294 #define LVR_SELECTEDDISABLED  8
  295 
  296 struct LVDrawMsg
  297 {
  298 	ULONG             lvdm_MethodID;
  299 	struct RastPort  *lvdm_RastPort;
  300 	struct DrawInfo  *lvdm_DrawInfo;
  301 	struct Rectangle  lvdm_Bounds;
  302 	ULONG             lvdm_State;
  303 };
  304 
  305 
  306 #pragma pack()
  307 
  308 #endif /* LIBRARIES_GADTOOLS_H */