4 libbasetype struct IntIntuitionBase
5 libbasetypeextern struct IntuitionBase
10 #ifndef INTUITION_CDEF_H
11 #define INTUITION_CDEF_H
12 #include <intuition/intuition.h>
13 #include <intuition/intuitionbase.h>
14 #include <intuition/screens.h>
15 #include <intuition/classes.h>
16 #include <intuition/windecorclass.h>
17 #include <intuition/scrdecorclass.h>
18 #include <intuition/menudecorclass.h>
19 #include <utility/hooks.h>
20 #include <aros/preprocessor/variadic/cast2iptr.hpp>
22 /* Prototypes for stubs in amiga.lib */
26 IPTR DoGadgetMethod (struct Gadget * gad, struct Window * win,
27 struct Requester * req, ULONG MethodID, ...);
28 IPTR SetGadgetAttrs (struct Gadget * gad, struct Window * win,
29 struct Requester * req, Tag tag1, ...);
31 #if !defined(DEFINES_INTUITION_PROTOS_H) /* Prevent name clashes */
32 IPTR SetAttrs (APTR obj, Tag tag1, ...) __stackparm;
33 IPTR SetSuperAttrs (Class * cl, Object * obj, Tag tag1, ...) __stackparm;
34 APTR NewObject (Class * classPtr, UBYTE * classID, Tag tag1, ...) __stackparm;
35 #ifndef USE_BOOPSI_STUBS
36 IPTR DoMethodA (Object * obj, Msg message);
37 IPTR DoMethod (Object * obj, STACKULONG MethodID, ...) __stackparm;
38 IPTR DoSuperMethodA (Class * cl, Object * obj, Msg message);
39 IPTR DoSuperMethod (Class * cl, Object * obj, STACKULONG MethodID, ...) __stackparm;
40 IPTR CoerceMethodA (Class * cl, Object * obj, Msg message);
41 IPTR CoerceMethod (Class * cl, Object * obj, STACKULONG MethodID, ...) __stackparm;
42 #endif /* !USE_BOOPSI_STUBS */
45 IPTR DoSuperNewTagList(Class *CLASS, Object *object, struct GadgetInfo *gadgetInfo, struct TagItem *tags);
46 IPTR DoSuperNewTags(Class *CLASS, Object *object, struct GadgetInfo *gadgetInfo, Tag tag1, ...) __stackparm;
48 #if !defined(INTUITION_NO_INLINE_STDARG) && !defined(NO_INLINE_STDARG)
49 # ifndef CLIB_INTUITION_PROTOS_H /* prevent name clashes */
50 # define SetSuperAttrsA(class, object, attrs) \
54 __ops.MethodID = OM_SET; \
55 __ops.ops_AttrList = (attrs); \
56 __ops.ops_GInfo = NULL; \
58 DoSuperMethodA((class), (object), (Msg) &__ops.MethodID); \
60 # define SetSuperAttrs(class, object, args...) \
62 IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(args) }; \
63 SetSuperAttrsA((class), (object), (struct TagItem *) __args); \
66 # ifndef USE_BOOPSI_STUBS /* prevent name clashes */
67 # define DoMethodA(object, message) \
73 (struct Hook *) OCLASS((object)), (object), (message) \
80 # define DoMethod(object, methodid, args...) \
82 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
83 DoMethodA((object), __args); \
86 # define DoSuperMethodA(class, object, message) \
88 ((class) != NULL && (object) != NULL) ? \
91 (struct Hook *) ((Class *) (class))->cl_Super, \
98 # define DoSuperMethod(class, object, methodid, args...) \
100 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
101 DoSuperMethodA((class), (object), __args); \
104 # define CoerceMethodA(class, object, message) \
106 ((class) != NULL && (object) != NULL) ? \
107 CALLHOOKPKT((struct Hook *) (class), (object), (message)) \
112 # define CoerceMethod(class, object, methodid, args...) \
114 IPTR __args[] = {methodid, AROS_PP_VARIADIC_CAST2IPTR(args)}; \
115 CoerceMethodA((class), (object), __args); \
117 # endif /* !USE_BOOPSI_STUBS */
118 # endif /* CLIB_INTUITION_PROTOS_H */
120 # define DoSuperNewTagList(class, object, gadgetinfo, tags) \
122 struct opSet __ops; \
124 __ops.MethodID = OM_NEW; \
125 __ops.ops_AttrList = (tags); \
126 __ops.ops_GInfo = (gadgetinfo); \
128 (class) != NULL && (object) != NULL ? \
129 DoSuperMethodA((class), (object), (Msg)&__ops.MethodID) \
134 # define DoSuperNewTags(class, object, gadgetinfo, args...) \
136 IPTR __args[] = {AROS_PP_VARIADIC_CAST2IPTR(args)}; \
139 (class), (object), (gadgetinfo), (struct TagItem *) __args \
142 #endif /* !INTUITION_NO_INLINE_STDARG && !NO_INLINE_STDARG */
144 #ifndef CLIB_BOOPSI_PROTOS_H /* Prevent name clashes */
145 IPTR CallHookA (struct Hook * hook, APTR obj, APTR param);
146 IPTR CallHook (struct Hook * hook, APTR obj, ...);
149 struct Window * OpenWindowTags (struct NewWindow * newWindow, Tag tag1, ...);
150 struct Screen * OpenScreenTags (struct NewScreen * newScreen, Tag tag1, ...);
152 LONG EasyRequest (struct Window * window, struct EasyStruct * easyStruct, ULONG * idcmpPtr, ...);
163 #include <intuition/icclass.h>
164 #include <intuition/imageclass.h>
165 #include <intuition/monitorclass.h>
167 #include "intuition_intern.h"
168 #include "monitorclass_intern.h"
169 #include "monitorclass_private.h"
170 #include "strgadgets.h"
174 .skip 1 # AmigaOS private: OpenIntuition()()
175 .skip 1 # AmigaOS private: Intuition(iEvent) (A0)
176 UWORD AddGadget(struct Window *window, struct Gadget *gadget, ULONG position) (A0, A1, D0)
177 BOOL ClearDMRequest(struct Window *window) (A0)
178 void ClearMenuStrip(struct Window *window) (A0)
179 void ClearPointer(struct Window *window) (A0)
180 BOOL CloseScreen(struct Screen *screen) (A0)
181 void CloseWindow(struct Window *window) (A0)
182 LONG CloseWorkBench() ()
183 void CurrentTime(ULONG *seconds, ULONG *micros) (A0, A1)
184 BOOL DisplayAlert(ULONG alertnumber, UBYTE *string, UWORD height) (D0, A0, D1)
185 void DisplayBeep(struct Screen *screen) (A0)
186 BOOL DoubleClick(ULONG sSeconds, ULONG sMicros, ULONG cSeconds, ULONG cMicros) (D0, D1, D2, D3)
187 void DrawBorder(struct RastPort *rp, struct Border *border, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
188 void DrawImage(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
189 void EndRequest(struct Requester *requester, struct Window *window) (A0, A1)
190 struct Preferences *GetDefPrefs(struct Preferences *prefbuffer, WORD size) (A0, D0)
191 struct Preferences *GetPrefs(struct Preferences *prefbuffer, WORD size) (A0, D0)
192 void InitRequester(struct Requester *requester) (A0)
193 struct MenuItem *ItemAddress(struct Menu *menustrip, UWORD menunumber) (A0, D0)
194 BOOL ModifyIDCMP(struct Window *window, ULONG flags) (A0, D0)
195 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)
196 void MoveScreen(struct Screen *screen, LONG dx, LONG dy) (A0, D0, D1)
197 void MoveWindow(struct Window *window, LONG dx, LONG dy) (A0, D0, D1)
198 void OffGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
199 void OffMenu(struct Window *window, UWORD menunumber) (A0, D0)
200 void OnGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
201 void OnMenu(struct Window *window, UWORD menunumber) (A0, D0)
202 struct Screen *OpenScreen(struct NewScreen *newScreen) (A0)
203 struct Window *OpenWindow(struct NewWindow *newWindow) (A0)
204 IPTR OpenWorkBench() ()
205 void PrintIText(struct RastPort *rp, struct IntuiText *iText, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
206 void RefreshGadgets(struct Gadget *gadgets, struct Window *window, struct Requester *requester) (A0, A1, A2)
207 UWORD RemoveGadget(struct Window *window, struct Gadget *gadget) (A0, A1)
208 void ReportMouse(LONG flag, struct Window *window) (D0, A0)
209 BOOL Request(struct Requester *requester, struct Window *window) (A0, A1)
210 void ScreenToBack(struct Screen *screen) (A0)
211 void ScreenToFront(struct Screen *screen) (A0)
212 BOOL SetDMRequest(struct Window *window, struct Requester *dmrequest) (A0, A1)
213 BOOL SetMenuStrip(struct Window *window, struct Menu *menu) (A0, A1)
214 void SetPointer(struct Window *window, UWORD *pointer, LONG height, LONG width, LONG xOffset, LONG yOffset) (A0, A1, D0, D1, D2, D3)
215 void SetWindowTitles(struct Window *window, CONST_STRPTR windowTitle, CONST_STRPTR screenTitle) (A0, A1, A2)
216 void ShowTitle(struct Screen *screen, BOOL ShowIt) (A0, D0)
217 void SizeWindow(struct Window *window, LONG dx, LONG dy) (A0, D0, D1)
218 struct View *ViewAddress() ()
219 struct ViewPort *ViewPortAddress(struct Window *Window) (A0)
220 void WindowToBack(struct Window *window) (A0)
221 void WindowToFront(struct Window *window) (A0)
222 BOOL WindowLimits(struct Window *window, WORD MinWidth, WORD MinHeight, UWORD MaxWidth, UWORD MaxHeight) (A0, D0, D1, D2, D3)
223 struct Preferences *SetPrefs(struct Preferences *prefbuffer, LONG size, BOOL inform) (A0, D0, D1)
224 LONG IntuiTextLength(struct IntuiText *iText) (A0)
225 BOOL WBenchToBack() ()
226 BOOL WBenchToFront() ()
227 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)
228 void BeginRefresh(struct Window *window) (A0)
229 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)
230 void EndRefresh(struct Window *window, BOOL complete) (A0, D0)
231 void FreeSysRequest(struct Window *window) (A0)
232 LONG MakeScreen(struct Screen *screen) (A0)
233 LONG RemakeDisplay() ()
234 LONG RethinkDisplay() ()
235 APTR AllocRemember(struct Remember **rememberKey, ULONG size, ULONG flags) (A0, D0, D1)
236 void AlohaWorkbench(struct MsgPort *wbmsgport) (A0)
237 void FreeRemember(struct Remember **rememberKey, LONG reallyForget) (A0, D0)
238 ULONG LockIBase(ULONG What) (D0)
239 void UnlockIBase(ULONG ibLock) (A0)
241 LONG GetScreenData(APTR buffer, ULONG size, ULONG type, struct Screen *screen) (A0, D0, D1, A1)
242 void RefreshGList(struct Gadget *gadgets, struct Window *window, struct Requester *requester, LONG numGad) (A0, A1, A2, D0)
243 UWORD AddGList(struct Window *window, struct Gadget *gadget, ULONG position, LONG numGad, struct Requester *requester) (A0, A1, D0, D1, A2)
244 UWORD RemoveGList(struct Window *remPtr, struct Gadget *gadget, LONG numGad) (A0, A1, D0)
245 void ActivateWindow(struct Window *window) (A0)
246 void RefreshWindowFrame(struct Window *window) (A0)
247 BOOL ActivateGadget(struct Gadget *gadget, struct Window *window, struct Requester *requester) (A0, A1, A2)
248 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)
250 LONG QueryOverscan(ULONG displayid, struct Rectangle *rect, WORD oscantype) (A0, A1, D0)
251 void MoveWindowInFrontOf(struct Window *window, struct Window *behindwindow) (A0, A1)
252 void ChangeWindowBox(struct Window *window, LONG left, LONG top, LONG width, LONG height) (A0, D0, D1, D2, D3)
253 struct Hook *SetEditHook(struct Hook *hook) (A0)
254 LONG SetMouseQueue(struct Window *window, UWORD queuelength) (A0, D0)
255 void ZipWindow(struct Window *window) (A0)
256 struct Screen *LockPubScreen(CONST_STRPTR name) (A0)
257 void UnlockPubScreen(UBYTE *name, struct Screen *screen) (A0, A1)
258 struct List *LockPubScreenList() ()
259 void UnlockPubScreenList() ()
260 UBYTE *NextPubScreen(struct Screen *screen, UBYTE *namebuff) (A0, A1)
261 void SetDefaultPubScreen(UBYTE *name) (A0)
262 UWORD SetPubScreenModes(UWORD modes) (D0)
263 UWORD PubScreenStatus(struct Screen *Scr, UWORD StatusFlags) (A0, D0)
264 struct RastPort *ObtainGIRPort(struct GadgetInfo *gInfo) (A0)
265 void ReleaseGIRPort(struct RastPort *rp) (A0)
266 void GadgetMouse(struct Gadget *gadget, struct GadgetInfo *ginfo, WORD *mousepoint) (A0, A1, A2)
267 ULONG SetIPrefs(APTR data, ULONG length, ULONG type) (A0, D0, D1)
268 struct Screen *GetDefaultPubScreen(UBYTE *nameBuffer) (A0)
269 LONG EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct, ULONG *IDCMP_ptr, APTR argList) (A0, A1, A2, A3)
270 struct Window *BuildEasyRequestArgs(struct Window *RefWindow, struct EasyStruct *easyStruct, ULONG IDCMP, APTR Args) (A0, A1, D0, A3)
271 LONG SysReqHandler(struct Window *window, ULONG *IDCMPFlagsPtr, BOOL WaitInput) (A0, A1, D0)
272 struct Window *OpenWindowTagList(struct NewWindow *newWindow, struct TagItem *tagList) (A0, A1)
273 struct Screen *OpenScreenTagList(struct NewScreen *newScreen, struct TagItem *tagList) (A0, A1)
274 void DrawImageState(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset, ULONG state, struct DrawInfo *drawInfo) (A0, A1, D0, D1, D2, A2)
275 BOOL PointInImage(ULONG point, struct Image *image) (D0, A0)
276 void EraseImage(struct RastPort *rp, struct Image *image, LONG leftOffset, LONG topOffset) (A0, A1, D0, D1)
277 APTR NewObjectA(struct IClass *classPtr, UBYTE *classID, struct TagItem *tagList) (A0, A1, A2)
278 void DisposeObject(APTR object) (A0)
279 IPTR SetAttrsA(APTR object, struct TagItem *tagList) (A0, A1)
280 ULONG GetAttr(ULONG attrID, Object *object, IPTR *storagePtr) (D0, A0, A1)
281 IPTR SetGadgetAttrsA(struct Gadget *gadget, struct Window *window, struct Requester *requester, struct TagItem *tagList) (A0, A1, A2, A3)
282 APTR NextObject(APTR objectPtrPtr) (A0)
283 struct IClass *FindClass(ClassID classID) (A0)
284 struct IClass *MakeClass(ClassID classID, ClassID superClassID, struct IClass *superClassPtr, ULONG instanceSize, ULONG flags) (A0, A1, A2, D0, D1)
285 void AddClass(struct IClass *classPtr) (A0)
286 struct DrawInfo *GetScreenDrawInfo(struct Screen *screen) (A0)
287 void FreeScreenDrawInfo(struct Screen *screen, struct DrawInfo *drawInfo) (A0, A1)
288 BOOL ResetMenuStrip(struct Window *window, struct Menu *menu) (A0, A1)
289 void RemoveClass(struct IClass *classPtr) (A0)
290 BOOL FreeClass(struct IClass *iclass) (A0)
291 .skip 1 # AmigaOS 2.1 private: lockPubClass()()
292 .skip 1 # AmigaOS 2.1 private: unlockPubClass()()
295 struct ScreenBuffer *AllocScreenBuffer(struct Screen *screen, struct BitMap *bitmap, ULONG flags) (A0, A1, D0)
296 void FreeScreenBuffer(struct Screen *screen, struct ScreenBuffer *screenbuffer) (A0, A1)
297 ULONG ChangeScreenBuffer(struct Screen *screen, struct ScreenBuffer *screenbuffer) (A0, A1)
298 void ScreenDepth(struct Screen *screen, ULONG flags, APTR reserved) (A0, D0, A1)
299 void ScreenPosition(struct Screen *screen, ULONG flags, LONG x1, LONG y1, LONG x2, LONG y2) (A0, D0, D1, D2, D3, D4)
300 void ScrollWindowRaster(struct Window *win, WORD dx, WORD dy, WORD xmin, WORD ymin, WORD xmax, WORD ymax) (A1, D0, D1, D2, D3, D4, D5)
301 void LendMenus(struct Window *fromwindow, struct Window *towindow) (A0, A1)
302 IPTR DoGadgetMethodA(struct Gadget *gad, struct Window *win, struct Requester *req, Msg msg) (A0, A1, A2, A3)
303 void SetWindowPointerA(struct Window *window, struct TagItem *taglist) (A0, A1)
304 BOOL TimedDisplayAlert(ULONG alertnumber, UBYTE *string, UWORD height, ULONG time) (D0, A0, D1, A1)
305 void HelpControl(struct Window *window, ULONG flags) (A0, D0)
307 LONG IsWindowVisible(struct Window *window) (A0)
308 BOOL ShowWindow(struct Window *window, struct Window *other) (A0, A1)
309 BOOL HideWindow(struct Window *window) (A0)
311 struct Region *ChangeWindowShape(struct Window *window, struct Region *newshape, struct Hook *callback) (A0, A1, A2)
312 void SetDefaultScreenFont(struct TextFont *textfont) (A0)
313 IPTR DoNotify(Class *cl, Object *o, struct ICData *ic, struct opUpdate *msg) (A0, A1, A2, A3)
314 void FreeICData(struct ICData *icdata) (A0)
316 struct IntuiMessage *AllocIntuiMessage(struct Window *window) (A0)
317 void FreeIntuiMessage(struct IntuiMessage *imsg) (A0)
319 void SendIntuiMessage(struct Window *window, struct IntuiMessage *imsg) (A0, A1)
320 void ChangeDecoration(ULONG ID, struct NewDecorator *decor) (D0, A0)
321 .skip 1 # MorphOS: GetSkinInfoAttrA(drawinfo,attr,taglist)(a0,d0,a1)
322 APTR StartScreenNotifyTagList(struct TagItem *tags) (A0)
323 BOOL EndScreenNotify(APTR notify) (A0)
324 .skip 1 # MorphOS: GetDrawInfoAttr(drawinfo,attr,errorPtr)(a0,d0,a1)
325 void WindowAction(struct Window *window, ULONG action, struct TagItem *tags) (A0, D0, A1)
326 .skip 1 # MorphOS: TransparencyControl(window,method,tags)(a0,d0,a1)
327 void ScrollWindowRasterNoFill(struct Window *win, WORD dx, WORD dy, WORD xmin, WORD ymin, WORD xmax, WORD ymax) (A1, D0, D1, D2, D3, D4, D5)
328 ULONG SetPointerBounds(struct Screen *screen, struct Rectangle *rect, ULONG reserved, struct TagItem *tags) (A0, A1, D0, A2)
329 Object **GetMonitorList(struct TagItem *tags) (A1)
330 void FreeMonitorList(Object **list) (A1)
331 # MorphOS: ScreenbarControlA(tags)(a1)
340 classdatatype struct ICData
363 classdatatype struct ModelData
382 classdatatype struct Image
402 classdatatype struct FrameIData
420 classdatatype struct SysIData
433 basename FillRectClass
435 classid FILLRECTCLASS
437 classdatatype struct FillRectData
458 # IM_DRAWFRAME (not implemented)
468 classdatatype struct GadgetData
479 .function GadgetClass__One
483 .function GadgetClass__Zero
486 .function GadgetClass_NoReuse
497 basename ButtonGClass
517 basename FrButtonClass
518 classid FRBUTTONCLASS
519 superclass BUTTONGCLASS
538 classdatatype struct PropGData
559 classdatatype struct StrGData
581 classdatatype struct GroupGData
601 basename DragBarClass
605 classptr_field dragbarclass
606 classdatatype struct dragbar_data
614 .function DragBarClass__NOP
624 basename SizeButtonClass
628 classptr_field sizebuttonclass
629 classdatatype struct sizebutton_data
636 .function DragBarClass__NOP
645 basename MenuBarLabelClass
647 classid MENUBARLABELCLASS
649 classdatatype struct MenuBarLabelData
662 basename PointerClass
665 classptr_field pointerclass
666 classdatatype struct PointerData
678 basename WinDecorClass
680 classid WINDECORCLASS
682 classdatatype struct windecor_data
688 WDM_GETDEFSIZE_SYSIMAGE
691 WDM_LAYOUT_BORDERGADGETS
692 WDM_DRAW_BORDERPROPBACK
693 WDM_DRAW_BORDERPROPKNOB
702 basename ScrDecorClass
704 classid SCRDECORCLASS
706 classdatatype struct scrdecor_data
714 SDM_GETDEFSIZE_SYSIMAGE
717 SDM_LAYOUT_SCREENGADGETS
723 basename MenuDecorClass
725 classid MENUDECORCLASS
727 classdatatype struct menudecor_data
733 MDM_GETDEFSIZE_SYSIMAGE
744 basename MonitorClass
748 classptr_field monitorclass
749 classdatatype struct MonitorData
759 MM_GetDefaultGammaTables
760 MM_GetDefaultPixelFormat
763 MM_EnterPowerSaveMode
765 MM_SetDefaultGammaTables
766 MM_GetCompositionFlags