4 libbasetype struct IntIntuitionBase
5 libbasetypeextern struct IntuitionBase
9 #ifndef INTUITION_CDEF_H
10 #define INTUITION_CDEF_H
11 #include <intuition/intuition.h>
12 #include <intuition/intuitionbase.h>
13 #include <intuition/screens.h>
14 #include <intuition/classes.h>
15 #include <intuition/windecorclass.h>
16 #include <intuition/scrdecorclass.h>
17 #include <intuition/menudecorclass.h>
18 #include <utility/hooks.h>
19 #include <aros/preprocessor/variadic/cast2iptr.hpp>
21 /* Prototypes for stubs in amiga.lib */
22 IPTR DoGadgetMethod (struct Gadget * gad, struct Window * win,
23 struct Requester * req, ULONG MethodID, ...);
24 IPTR SetGadgetAttrs (struct Gadget * gad, struct Window * win,
25 struct Requester * req, Tag tag1, ...);
27 #if !defined(DEFINES_INTUITION_PROTOS_H) /* Prevent name clashes */
28 IPTR SetAttrs (APTR obj, Tag tag1, ...) __stackparm;
29 IPTR SetSuperAttrs (Class * cl, Object * obj, Tag tag1, ...) __stackparm;
30 APTR NewObject (Class * classPtr, UBYTE * classID, Tag tag1, ...) __stackparm;
31 #ifndef USE_BOOPSI_STUBS
32 IPTR DoMethodA (Object * obj, Msg message);
33 IPTR DoMethod (Object * obj, STACKULONG MethodID, ...) __stackparm;
34 IPTR DoSuperMethodA (Class * cl, Object * obj, Msg message);
35 IPTR DoSuperMethod (Class * cl, Object * obj, STACKULONG MethodID, ...) __stackparm;
36 IPTR CoerceMethodA (Class * cl, Object * obj, Msg message);
37 IPTR CoerceMethod (Class * cl, Object * obj, STACKULONG MethodID, ...) __stackparm;
38 #endif /* !USE_BOOPSI_STUBS */
41 IPTR DoSuperNewTagList(Class *CLASS, Object *object, struct GadgetInfo *gadgetInfo, struct TagItem *tags);
42 IPTR DoSuperNewTags(Class *CLASS, Object *object, struct GadgetInfo *gadgetInfo, Tag tag1, ...) __stackparm;
44 #if !defined(INTUITION_NO_INLINE_STDARG) && !defined(NO_INLINE_STDARG)
45 # ifndef CLIB_INTUITION_PROTOS_H /* prevent name clashes */
46 # define SetSuperAttrsA(class, object, attrs) \
50 __ops.MethodID = OM_SET; \
51 __ops.ops_AttrList = (attrs); \
52 __ops.ops_GInfo = NULL; \
54 DoSuperMethodA((class), (object), (Msg) &__ops.MethodID); \
56 # define SetSuperAttrs(class, object, args...) \
58 IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(args) }; \
59 SetSuperAttrsA((class), (object), (struct TagItem *) __args); \
62 # ifndef USE_BOOPSI_STUBS /* prevent name clashes */
63 # define DoMethodA(object, message) \
69 (struct Hook *) OCLASS((object)), (object), (message) \
76 # define DoMethod(object, methodid, args...) \
78 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
79 DoMethodA((object), __args); \
82 # define DoSuperMethodA(class, object, message) \
84 ((class) != NULL && (object) != NULL) ? \
87 (struct Hook *) ((Class *) (class))->cl_Super, \
94 # define DoSuperMethod(class, object, methodid, args...) \
96 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
97 DoSuperMethodA((class), (object), __args); \
100 # define CoerceMethodA(class, object, message) \
102 ((class) != NULL && (object) != NULL) ? \
103 CALLHOOKPKT((struct Hook *) (class), (object), (message)) \
108 # define CoerceMethod(class, object, methodid, args...) \
110 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
111 CoerceMethodA((class), (object), __args); \
113 # endif /* !USE_BOOPSI_STUBS */
114 # endif /* CLIB_INTUITION_PROTOS_H */
116 # define DoSuperNewTagList(class, object, gadgetinfo, tags) \
118 struct opSet __ops; \
120 __ops.MethodID = OM_NEW; \
121 __ops.ops_AttrList = (tags); \
122 __ops.ops_GInfo = (gadgetinfo); \
124 (class) != NULL && (object) != NULL ? \
125 DoSuperMethodA((class), (object), (Msg)&__ops.MethodID) \
130 # define DoSuperNewTags(class, object, gadgetinfo, args...) \
132 IPTR __args[] = {AROS_PP_VARIADIC_CAST2IPTR(args)}; \
135 (class), (object), (gadgetinfo), (struct TagItem *) __args \
138 #endif /* !INTUITION_NO_INLINE_STDARG && !NO_INLINE_STDARG */
140 #ifndef CLIB_BOOPSI_PROTOS_H /* Prevent name clashes */
141 IPTR CallHookA (struct Hook * hook, APTR obj, APTR param);
142 IPTR CallHook (struct Hook * hook, APTR obj, ...);
145 struct Window * OpenWindowTags (struct NewWindow * newWindow, Tag tag1, ...);
146 struct Screen * OpenScreenTags (struct NewScreen * newScreen, Tag tag1, ...);
148 LONG EasyRequest (struct Window * window, struct EasyStruct * easyStruct, ULONG * idcmpPtr, ...);
153 #include <intuition/icclass.h>
154 #include <intuition/imageclass.h>
156 #include "intuition_intern.h"
157 #include "strgadgets.h"
162 UWORD AddGadget(struct Window *window, struct Gadget *gadget, ULONG position) (A0, A1, D0)
163 BOOL ClearDMRequest(struct Window *window) (A0)
164 void ClearMenuStrip(struct Window *window) (A0)
165 void ClearPointer(struct Window *window) (A0)
166 BOOL CloseScreen(struct Screen *screen) (A0)
167 void CloseWindow(struct Window *window) (A0)
168 LONG CloseWorkBench() ()
169 void CurrentTime(ULONG *seconds, ULONG *micros) (A0, A1)
170 BOOL DisplayAlert(ULONG alertnumber, UBYTE *string, UWORD height) (D0, A0, D1)
171 void DisplayBeep(struct Screen *screen) (A0)
172 BOOL DoubleClick(ULONG sSeconds, ULONG sMicros, ULONG cSeconds, ULONG cMicros) (D0, D1, D2, D3)
173 void DrawBorder(struct RastPort *rp, struct Border *border, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
174 void DrawImage(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
175 void EndRequest(struct Requester *requester, struct Window *window) (A0, A1)
176 struct Preferences *GetDefPrefs(struct Preferences *prefbuffer, WORD size) (A0, D0)
177 struct Preferences *GetPrefs(struct Preferences *prefbuffer, WORD size) (A0, D0)
178 void InitRequester(struct Requester *requester) (A0)
179 struct MenuItem *ItemAddress(struct Menu *menustrip, UWORD menunumber) (A0, D0)
180 BOOL ModifyIDCMP(struct Window *window, ULONG flags) (A0, D0)
181 void ModifyProp(struct Gadget *gadget, struct Window *window, struct Requester *requester, ULONG flags, ULONG horizPot, ULONG vertPot, ULONG horizBody, ULONG vertBody) (A0, A1, A2, D0, D1, D2, D3, D4)
182 void MoveScreen(struct Screen *screen, LONG dx, LONG dy) (A0, D0, D1)
183 void MoveWindow(struct Window *window, LONG dx, LONG dy) (A0, D0, D1)
184 void OffGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
185 void OffMenu(struct Window *window, UWORD menunumber) (A0, D0)
186 void OnGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
187 void OnMenu(struct Window *window, UWORD menunumber) (A0, D0)
188 struct Screen *OpenScreen(struct NewScreen *newScreen) (A0)
189 struct Window *OpenWindow(struct NewWindow *newWindow) (A0)
190 IPTR OpenWorkBench() ()
191 void PrintIText(struct RastPort *rp, struct IntuiText *iText, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
192 void RefreshGadgets(struct Gadget *gadgets, struct Window *window, struct Requester *requester) (A0, A1, A2)
193 UWORD RemoveGadget(struct Window *window, struct Gadget *gadget) (A0, A1)
194 void ReportMouse(LONG flag, struct Window *window) (D0, A0)
195 BOOL Request(struct Requester *requester, struct Window *window) (A0, A1)
196 void ScreenToBack(struct Screen *screen) (A0)
197 void ScreenToFront(struct Screen *screen) (A0)
198 BOOL SetDMRequest(struct Window *window, struct Requester *dmrequest) (A0, A1)
199 BOOL SetMenuStrip(struct Window *window, struct Menu *menu) (A0, A1)
200 void SetPointer(struct Window *window, UWORD *pointer, LONG height, LONG width, LONG xOffset, LONG yOffset) (A0, A1, D0, D1, D2, D3)
201 void SetWindowTitles(struct Window *window, CONST_STRPTR windowTitle, CONST_STRPTR screenTitle) (A0, A1, A2)
202 void ShowTitle(struct Screen *screen, BOOL ShowIt) (A0, D0)
203 void SizeWindow(struct Window *window, LONG dx, LONG dy) (A0, D0, D1)
204 struct View *ViewAddress() ()
205 struct ViewPort *ViewPortAddress(struct Window *Window) (A0)
206 void WindowToBack(struct Window *window) (A0)
207 void WindowToFront(struct Window *window) (A0)
208 BOOL WindowLimits(struct Window *window, WORD MinWidth, WORD MinHeight, UWORD MaxWidth, UWORD MaxHeight) (A0, D0, D1, D2, D3)
209 struct Preferences *SetPrefs(struct Preferences *prefbuffer, LONG size, BOOL inform) (A0, D0, D1)
210 LONG IntuiTextLength(struct IntuiText *iText) (A0)
211 BOOL WBenchToBack() ()
212 BOOL WBenchToFront() ()
213 BOOL AutoRequest(struct Window *window, struct IntuiText *body, struct IntuiText *posText, struct IntuiText *negText, ULONG pFlag, ULONG nFlag, ULONG width, ULONG height) (A0, A1, A2, A3, D0, D1, D2, D3)
214 void BeginRefresh(struct Window *window) (A0)
215 struct Window *BuildSysRequest(struct Window *window, struct IntuiText *bodytext, struct IntuiText *postext, struct IntuiText *negtext, ULONG IDCMPFlags, WORD width, WORD height) (A0, A1, A2, A3, D0, D2, D3)
216 void EndRefresh(struct Window *window, BOOL complete) (A0, D0)
217 void FreeSysRequest(struct Window *window) (A0)
218 LONG MakeScreen(struct Screen *screen) (A0)
219 LONG RemakeDisplay() ()
220 LONG RethinkDisplay() ()
221 APTR AllocRemember(struct Remember **rememberKey, ULONG size, ULONG flags) (A0, D0, D1)
222 void AlohaWorkbench(struct MsgPort *wbmsgport) (A0)
223 void FreeRemember(struct Remember **rememberKey, LONG reallyForget) (A0, D0)
224 ULONG LockIBase(ULONG What) (D0)
225 void UnlockIBase(ULONG ibLock) (A0)
226 LONG GetScreenData(APTR buffer, ULONG size, ULONG type, struct Screen *screen) (A0, D0, D1, A1)
227 void RefreshGList(struct Gadget *gadgets, struct Window *window, struct Requester *requester, LONG numGad) (A0, A1, A2, D0)
228 UWORD AddGList(struct Window *window, struct Gadget *gadget, ULONG position, LONG numGad, struct Requester *requester) (A0, A1, D0, D1, A2)
229 UWORD RemoveGList(struct Window *remPtr, struct Gadget *gadget, LONG numGad) (A0, A1, D0)
230 void ActivateWindow(struct Window *window) (A0)
231 void RefreshWindowFrame(struct Window *window) (A0)
232 BOOL ActivateGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
233 void NewModifyProp(struct Gadget *gadget, struct Window *window, struct Requester *requester, ULONG flags, ULONG horizPot, ULONG vertPot, ULONG horizBody, ULONG vertBody, LONG numGad) (A0, A1, A2, D0, D1, D2, D3, D4, D5)
234 LONG QueryOverscan(ULONG displayid, struct Rectangle *rect, WORD oscantype) (A0, A1, D0)
235 void MoveWindowInFrontOf(struct Window *window, struct Window *behindwindow) (A0, A1)
236 void ChangeWindowBox(struct Window *window, LONG left, LONG top, LONG width, LONG height) (A0, D0, D1, D2, D3)
237 struct Hook *SetEditHook(struct Hook *hook) (A0)
238 LONG SetMouseQueue(struct Window *window, UWORD queuelength) (A0, D0)
239 void ZipWindow(struct Window *window) (A0)
240 struct Screen *LockPubScreen(CONST_STRPTR name) (A0)
241 void UnlockPubScreen(UBYTE *name, struct Screen *screen) (A0, A1)
242 struct List *LockPubScreenList() ()
243 void UnlockPubScreenList() ()
244 UBYTE *NextPubScreen(struct Screen *screen, UBYTE *namebuff) (A0, A1)
245 void SetDefaultPubScreen(UBYTE *name) (A0)
246 UWORD SetPubScreenModes(UWORD modes) (D0)
247 UWORD PubScreenStatus(struct Screen *Scr, UWORD StatusFlags) (A0, D0)
248 struct RastPort *ObtainGIRPort(struct GadgetInfo *gInfo) (A0)
249 void ReleaseGIRPort(struct RastPort *rp) (A0)
250 void GadgetMouse(struct Gadget *gadget, struct GadgetInfo *ginfo, WORD *mousepoint) (A0, A1, A2)
251 ULONG SetIPrefs(APTR data, ULONG length, ULONG type) (A0, D0, D1)
252 struct Screen *GetDefaultPubScreen(UBYTE *nameBuffer) (A0)
253 LONG EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct, ULONG *IDCMP_ptr, APTR argList) (A0, A1, A2, A3)
254 struct Window *BuildEasyRequestArgs(struct Window *RefWindow, struct EasyStruct *easyStruct, ULONG IDCMP, APTR Args) (A0, A1, D0, A3)
255 LONG SysReqHandler(struct Window *window, ULONG *IDCMPFlagsPtr, BOOL WaitInput) (A0, A1, D0)
256 struct Window *OpenWindowTagList(struct NewWindow *newWindow, struct TagItem *tagList) (A0, A1)
257 struct Screen *OpenScreenTagList(struct NewScreen *newScreen, struct TagItem *tagList) (A0, A1)
258 void DrawImageState(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset, ULONG state, struct DrawInfo *drawInfo) (A0, A1, D0, D1, D2, A2)
259 BOOL PointInImage(ULONG point, struct Image *image) (D0, A0)
260 void EraseImage(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
261 APTR NewObjectA(struct IClass *classPtr, UBYTE *classID, struct TagItem *tagList) (A0, A1, A2)
262 void DisposeObject(APTR object) (A0)
263 IPTR SetAttrsA(APTR object, struct TagItem *tagList) (A0, A1)
264 ULONG GetAttr(ULONG attrID, Object *object, IPTR *storagePtr) (D0, A0, A1)
265 IPTR SetGadgetAttrsA(struct Gadget *gadget, struct Window *window, struct Requester *requester, struct TagItem *tagList) (A0, A1, A2, A3)
266 APTR NextObject(APTR objectPtrPtr) (A0)
267 struct IClass *FindClass(ClassID classID) (A0)
268 struct IClass *MakeClass(ClassID classID, ClassID superClassID, struct IClass *superClassPtr, ULONG instanceSize, ULONG flags) (A0, A1, A2, D0, D1)
269 void AddClass(struct IClass *classPtr) (A0)
270 struct DrawInfo *GetScreenDrawInfo(struct Screen *screen) (A0)
271 void FreeScreenDrawInfo(struct Screen *screen, struct DrawInfo *drawInfo) (A0, A1)
272 BOOL ResetMenuStrip(struct Window *window, struct Menu *menu) (A0, A1)
273 void RemoveClass(struct IClass *classPtr) (A0)
274 BOOL FreeClass(struct IClass *iclass) (A0)
276 struct ScreenBuffer *AllocScreenBuffer(struct Screen *screen, struct BitMap *bitmap, ULONG flags) (A0, A1, D0)
277 void FreeScreenBuffer(struct Screen *screen, struct ScreenBuffer *screenbuffer) (A0, A1)
278 ULONG ChangeScreenBuffer(struct Screen *screen, struct ScreenBuffer *screenbuffer) (A0, A1)
279 void ScreenDepth(struct Screen *screen, ULONG flags, APTR reserved) (A0, D0, A1)
280 void ScreenPosition(struct Screen *screen, ULONG flags, LONG x1, LONG y1, LONG x2, LONG y2) (A0, D0, D1, D2, D3, D4)
281 void ScrollWindowRaster(struct Window *win, WORD dx, WORD dy, WORD xmin, WORD ymin, WORD xmax, WORD ymax) (A1, D0, D1, D2, D3, D4, D5)
282 void LendMenus(struct Window *fromwindow, struct Window *towindow) (A0, A1)
283 IPTR DoGadgetMethodA(struct Gadget *gad, struct Window *win, struct Requester *req, Msg msg) (A0, A1, A2, A3)
284 void SetWindowPointerA(struct Window *window, struct TagItem *taglist) (A0, A1)
285 BOOL TimedDisplayAlert(ULONG alertnumber, UBYTE *string, UWORD height, ULONG time) (D0, A0, D1, A1)
286 void HelpControl(struct Window *window, ULONG flags) (A0, D0)
287 LONG IsWindowVisible(struct Window *window) (A0)
288 void ShowWindow(struct Window *window) (A0)
289 void HideWindow(struct Window *window) (A0)
291 struct Region *ChangeWindowShape(struct Window *window, struct Region *newshape, struct Hook *callback) (A0, A1, A2)
292 void SetDefaultScreenFont(struct TextFont *textfont) (A0)
293 IPTR DoNotify(Class *cl, Object *o, struct ICData *ic, struct opUpdate *msg) (A0, A1, A2, A3)
294 void FreeICData(struct ICData *icdata) (A0)
296 struct IntuiMessage *AllocIntuiMessage(struct Window *window) (A0)
297 void FreeIntuiMessage(struct IntuiMessage *imsg) (A0)
298 BOOL LateIntuiInit(APTR data) (A0)
299 void SendIntuiMessage(struct Window *window, struct IntuiMessage *imsg) (A0, A1)
301 void ChangeDecoration(ULONG ID, struct NewDecorator *decor) (D0, A0)
303 void WindowAction(struct Window *window, ULONG action, struct TagItem *tags) (A0, D0, A1)
305 void ScrollWindowRasterNoFill(struct Window *win, WORD dx, WORD dy, WORD xmin, WORD ymin, WORD xmax, WORD ymax) (A1, D0, D1, D2, D3, D4, D5)
306 ULONG SetPointerBounds(struct Screen *screen, struct Rectangle *rect, ULONG reserved, struct TagItem *tags) (A0, A1, D0, A2)
307 IPTR StartScreenNotifyTagList(struct TagItem *tags) (A0)
308 BOOL EndScreenNotify(IPTR notify) (A0)
317 classdatatype struct ICData
340 classdatatype struct ModelData
359 classdatatype struct Image
379 classdatatype struct FrameIData
397 classdatatype struct SysIData
410 basename FillRectClass
412 classid FILLRECTCLASS
414 classdatatype struct FillRectData
435 # IM_DRAWFRAME (not implemented)
445 classdatatype struct GadgetData
456 .function GadgetClass__One
460 .function GadgetClass__Zero
463 .function GadgetClass_NoReuse
474 basename ButtonGClass
494 basename FrButtonClass
495 classid FRBUTTONCLASS
496 superclass BUTTONGCLASS
515 classdatatype struct PropGData
536 classdatatype struct StrGData
558 classdatatype struct GroupGData
578 basename DragBarClass
582 classptr_field dragbarclass
583 classdatatype struct dragbar_data
591 .function DragBarClass__NOP
601 basename SizeButtonClass
605 classptr_field sizebuttonclass
606 classdatatype struct sizebutton_data
613 .function DragBarClass__NOP
622 basename MenuBarLabelClass
624 classid MENUBARLABELCLASS
626 classdatatype struct MenuBarLabelData
639 basename PointerClass
642 classptr_field pointerclass
643 classdatatype struct PointerData
655 basename WinDecorClass
657 classid WINDECORCLASS
659 classdatatype struct windecor_data
665 WDM_GETDEFSIZE_SYSIMAGE
668 WDM_LAYOUT_BORDERGADGETS
669 WDM_DRAW_BORDERPROPBACK
670 WDM_DRAW_BORDERPROPKNOB
679 basename ScrDecorClass
681 classid SCRDECORCLASS
683 classdatatype struct scrdecor_data
691 SDM_GETDEFSIZE_SYSIMAGE
694 SDM_LAYOUT_SCREENGADGETS
700 basename MenuDecorClass
702 classid MENUDECORCLASS
704 classdatatype struct menudecor_data
710 MDM_GETDEFSIZE_SYSIMAGE