1 #ifndef REACTION_REACTION_MACROS_H 2 #define REACTION_REACTION_MACROS_H 3 4 /* 5 reaction macros (V45) 6 7 Copyright © 2002 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 11 /* Gadget object-creation macros */ 12 13 #define ButtonObject NewObject( NULL, "button.gadget" 14 15 #define ToggleObject NewObject( NULL, "button.gadget", \ 16 GA_ToggleSelect, TRUE 17 18 #define CheckBoxObject NewObject( CHECKBOX_GetClass(), NULL 19 20 #define ChooserObject NewObject( CHOOSER_GetClass(), NULL 21 22 #define ClickTabObject NewObject( CLICKTAB_GetClass(), NULL 23 #define ClickTabsObject ClickTabObject 24 25 #define PopUpObject NewObject( CHOOSER_GetClass(), NULL, \ 26 CHOOSER_PopUp, TRUE 27 28 #define DropDownObject NewObject( CHOOSER_GetClass(), NULL, \ 29 CHOOSER_DropDown, TRUE 30 31 #define FuelGaugeObject NewObject( FUELGAUGE_GetClass(), NULL 32 #define FuelObject FuelGaugeObject 33 34 #ifndef GetFileObject 35 # define GetFileObject NewObject( GETFILE_GetClass(), NULL 36 #endif 37 38 #ifndef GetFontObject 39 # define GetFontObject NewObject( GETFONT_GetClass(), NULL 40 #endif 41 42 #ifndef GetScreenModeObject 43 # define GetScreenModeObject NewObject( GETSCREENMODE_GetClass(), NULL 44 #endif 45 46 #define IntegerObject NewObject( INTEGER_GetClass(), NULL 47 48 #define PaletteObject NewObject( PALETTE_GetClass(), NULL 49 50 #define PageObject NewObject( PAGE_GetClass(), NULL 51 52 #define PenMapObject NewObject( PENMAP_GetClass(), NULL 53 54 #define LayoutObject NewObject( LAYOUT_GetClass(), NULL 55 56 #define VLayoutObject NewObject( LAYOUT_GetClass(), NULL, LAYOUT_Orientation, LAYOUT_ORIENT_VERT 57 58 #define HLayoutObject NewObject( LAYOUT_GetClass(), NULL 59 #define VGroupObject VLayoutObject 60 #define HGroupObject HLayoutObject 61 62 #define ListBrowserObject NewObject( LISTBROWSER_GetClass(), NULL 63 64 #define RadioButtonObject NewObject( RADIOBUTTON_GetClass(), NULL 65 #define MxObject RadioButtonObject 66 67 #define ScrollerObject NewObject( SCROLLER_GetClass(), NULL 68 69 #define SpeedBarObject NewObject( SPEEDBAR_GetClass(), NULL 70 71 #define SliderObject NewObject( SLIDER_GetClass(), NULL 72 73 #define StatusObject NewObject( STATUSBAR_GetClass(), NULL 74 75 #define StringObject NewObject( STRING_GetClass(), NULL 76 77 #define SpaceObject NewObject( SPACE_GetClass(), NULL 78 79 #define TextFieldObject NewObject( TEXTFIELD_GetClass(), NULL 80 81 82 /* Image object-creation macros */ 83 84 #define BevelObject NewObject( BEVEL_GetClass(), NULL 85 86 #define BitMapObject NewObject( BITMAP_GetClass(), NULL 87 88 #define DrawListObject NewObject( DRAWLIST_GetClass(), NULL 89 90 #define GlyphObject NewObject( GLYPH_GetClass(), NULL 91 92 #define LabelObject NewObject( LABEL_GetClass(), NULL 93 94 95 /* Class object-creation macros */ 96 97 #define WindowObject NewObject( WINDOW_GetClass(), NULL 98 99 #define ARexxObject NewObject( AREXX_GetClass(), NULL 100 101 102 /* window.class method macros */ 103 104 #define RA_OpenWindow(win) (struct Window *) DoMethod( win, WM_OPEN, NULL ) 105 #define RA_CloseWindow(win) DoMethod( win, WM_CLOSE, NULL ) 106 #define RA_HandleInput(win,code) DoMethod( win, WM_HANDLEINPUT, code ) 107 #define RA_Iconify(win) (BOOL) DoMethod( win, WM_ICONIFY, NULL ) 108 #define RA_Uniconify(win) RA_OpenWindow( win ) 109 110 111 /* arexx.class method macros */ 112 113 #define RA_HandleRexx(obj) DoMethod( obj, AM_HANDLEEVENT ) 114 #define RA_FlushRexx(obj) DoMethod( obj, AM_FLUSH ) 115 116 117 /* Useful Hook macro */ 118 119 #define RA_SetUpHook(apphook,func,data) \ 120 { \ 121 apphook.h_Entry = (HOOKFUNC)func; \ 122 apphook.h_SubEntry = NULL; \ 123 apphook.h_Data = (APTR)data; \ 124 } 125 126 127 /* Additional BOOPSI classes */ 128 129 #define ColorWheelObject NewObject( NULL, "colorwheel.gadget" 130 #define GradientObject NewObject( NULL, "gradientslider.gadget" 131 #define LedObject NewObject( NULL, "led.image" 132 133 134 /* End synonyms */ 135 136 #define WindowEnd End 137 138 #define BitMapEnd End 139 #define ButtonEnd End 140 #define CheckBoxEnd End 141 #define ChooserEnd End 142 #define ClickTabEnd End 143 #define ClickTabsEnd End 144 #define FuelGaugeEnd End 145 #define IntegerEnd End 146 #define PaletteEnd End 147 #define LayoutEnd End 148 #define ListBrowserEnd End 149 #define PageEnd End 150 #define RadioButtonEnd End 151 #define ScrollerEnd End 152 #define SpeedBarEnd End 153 #define SliderEnd End 154 #define StatusEnd End 155 #define StringEnd End 156 #define SpaceEnd End 157 #define StatusbarEnd End 158 #define TextFieldEnd End 159 160 #define ARexxEnd End 161 162 #define BevelEnd End 163 #define DrawListEnd End 164 #define GlyphEnd End 165 #define LabelEnd End 166 167 #define ColorWheelEnd End 168 #define GradientSliderEnd End 169 #define LedEnd End 170 171 172 /* Vector glyph-images */ 173 174 #define GetPath GLYPH_POPDRAWER 175 #define GetFile GLYPH_POPFILE 176 #define GetScreen GLYPH_POPSCREENMODE 177 #define GetTime GLYPH_POPTIME 178 #define CheckMark GLYPH_CHECKMARK 179 #define PopUp GLYPH_POPUP 180 #define DropDown GLYPH_DROPDOWN 181 #define ArrowUp GLYPH_ARROWUP 182 #define ArrowDown GLYPH_ARROWDOWN 183 #define ArrowLeft GLYPH_ARROWLEFT 184 #define ArrowRight GLYPH_ARROWRIGHT 185 186 187 /* Bevel frame-types */ 188 189 #define ThinFrame BVS_THIN 190 #define ButtonFrame BVS_BUTTON 191 #define StandardFrame BVS_STANDARD 192 #define RidgeFrame BVS_FIELD 193 #define StringFrame BVS_FIELD 194 #define GroupFrame BVS_GROUP 195 #define DropBoxFrame BVS_DROPBOX 196 #define HBarFrame BVS_SBAR_HORIZ 197 #define VBarFrame BVS_SBAR_VERT 198 #define RadioFrame BVS_RADIOBUTTON 199 #define MxFrame BVS_RADIOBUTTON 200 201 202 /* Often used simple gadgets */ 203 204 #define Label(text) CHILD_Label, LabelObject, LABEL_Text, text, End 205 206 #define Button(text,id) ButtonObject, GA_Text, text, GA_ID, id, GA_RelVerify, TRUE, End 207 #define PushButton(text,id) ButtonObject, GA_Text, text, GA_ID, id, GA_RelVerify, TRUE, BUTTON_PushButton, TRUE, End 208 209 #define TextLine(text) ButtonObject, GA_Text, text, GA_ReadOnly, TRUE, End 210 #define LabelTextLine(text,label) TextLine(text), Label(label) 211 212 #define String(text,id,maxchars) StringObject, STRINGA_TextVal, text, STRINGA_MaxChars, maxchars, GA_ID, id, GA_RelVerify, TRUE, GA_TabCycle, TRUE, End 213 #define LabelString(text,id,maxchars,label) String(text,id,maxchars), Label(label) 214 #define PopString(text,id,maxchars,image) LAYOUT_AddChild, HLayoutObject, String(text,0,maxchars), ButtonObject, BAG_AutoButton, image, GA_RelVerify, TRUE, GA_ID, id, End, End 215 216 217 /* BGUI-style window/layout group-macros */ 218 219 #define StartMember LAYOUT_AddChild 220 #define StartImage LAYOUT_AddImage 221 #define StartHLayout LAYOUT_AddChild, HLayoutObject 222 #define StartVLayout LAYOUT_AddChild, VLayoutObject 223 #define StartHGroup StartHLayout 224 #define StartVGroup StartVLayout 225 226 #ifndef End 227 # define End TAG_END) 228 #endif 229 230 #define EndWindow End 231 #define EndMember End 232 #define EndImage End 233 #define EndObject End 234 #define EndHGroup End 235 #define EndVGroup End 236 #define EndGroup End 237 238 239 /* Lazy typist macros */ 240 241 #define HAlign(p) LAYOUT_HorizAlignment, p 242 #define VAlign(p) LAYOUT_VertAlignment, p 243 #define Spacing(p) LAYOUT_InnerSpacing, p 244 #define LOffset(p) LAYOUT_LeftSpacing, p 245 #define ROffset(p) LAYOUT_RightSpacing, p 246 #define TOffset(p) LAYOUT_TopSpacing, p 247 #define BOffset(p) LAYOUT_BottomSpacing, p 248 249 250 /* Even lazier typist macros */ 251 252 #define VCentered LAYOUT_VertAlignment, LALIGN_CENTER 253 #define TAligned LAYOUT_VertAlignment, LALIGN_TOP 254 #define BAligned LAYOUT_VertAlignment, LALIGN_BOTTOM 255 #define HCentered LAYOUT_HorizAlignment, LALIGN_CENTER 256 #define LAligned LAYOUT_HorizAlignment, LALIGN_LEFT 257 #define RAligned LAYOUT_HorizAlignment, LALIGN_RIGHT 258 #define Offset(x1,y1,x2,y2) LAYOUT_LeftSpacing, x1, LAYOUT_TopSpacing, y1, LAYOUT_RightSpacing, x2, LAYOUT_BottomSpacing, y2 259 #define EvenSized LAYOUT_EvenSize, TRUE 260 #define MemberLabel(a) CHILD_Label, LabelObject, LABEL_Text, a, LabelEnd 261 262 263 /* Easy menu-macros */ 264 265 #define Title(t) { NM_TITLE, t, NULL, 0, 0, NULL } 266 #define Item(t,s,i) { NM_ITEM, t, s, 0, 0, (APTR)i } 267 #define ItemBar { NM_ITEM, NM_BARLABEL, NULL, 0, 0, NULL } 268 #define SubItem(t,s,i) { NM_SUB, t, s, 0, 0, (APTR)i } 269 #define SubBar { NM_SUB, NM_BARLABEL, NULL, 0, 0, NULL } 270 #define EndMenu { NM_END, NULL, NULL, 0, 0, NULL } 271 272 273 #endif /* REACTION_REACTION_MACROS_H */