Less sloppy handling of IoErr().
[AROS.git] / rom / intuition / requesters.h
blobebdb14831c7ba6734a121d79812abd8976b38ddf
1 #ifndef _REQUESTERS_H_
2 #define _REQUESTERS_H_
4 /*
5 Copyright © 2002-2011 The AROS Development Team, All Rights Reserved.
6 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 $Id$
8 */
10 #include <exec/types.h>
11 #include <aros/asmcall.h>
12 #include "intuition_intern.h"
14 #ifdef SKINS
15 struct RequesterGadget
17 LONG xpos;
18 LONG ypos;
19 LONG width;
20 LONG height;
23 struct IntRequestUserData
25 ULONG IDCMP;
26 STRPTR * GadgetLabels;
27 struct Gadget * Gadgets;
28 struct RequesterGadget * ReqGadgets;
29 struct Window * ReqWindow;
30 struct Screen * ReqScreen;
31 struct CustomButtonImage * Logo;
32 struct IntuiText * Text;
33 struct IntDrawInfo * dri;
34 struct Hook backfillhook;
35 struct HookData backfilldata;
36 UWORD NumGadgets;
37 UWORD NumLines;
38 UWORD ActiveGad;
39 BOOL freeitext;
41 LONG wwidth;
42 LONG wheight;
43 LONG gadgetswidth;
44 LONG gadgetsheight;
45 LONG gadgetsxpos;
46 LONG gadgetsypos;
47 LONG gadgetspacing;
48 LONG textboxwidth;
49 LONG textboxheight;
50 LONG textboxxpos;
51 LONG textboxypos;
52 LONG logoxpos;
53 LONG logoypos;
54 LONG textxpos;
55 LONG textypos;
57 ULONG logotype;
59 #else
60 struct IntRequestUserData
62 ULONG IDCMP;
63 STRPTR * GadgetLabels;
64 struct Gadget * Gadgets;
65 UWORD NumGadgets;
67 #endif
69 /* Miscellaneous prototypes */
70 void intrequest_freelabels(STRPTR *gadgetlabels, struct IntuitionBase *IntuitionBase);
71 void intrequest_freegadgets(struct Gadget *gadgets, struct IntuitionBase *IntuitionBase);
72 #ifdef SKINS
73 struct IntuiText *intrequest_createitext(struct IntRequestUserData *udata,STRPTR text,APTR *args,struct IntuitionBase *IntuitionBase);
74 void intrequest_freeitext(struct IntuiText *it,struct IntuitionBase *IntuitionBase);
75 void intrequest_layoutrequester(struct IntRequestUserData *udata,struct IntuitionBase *IntuitionBase);
76 BOOL intrequest_creategadgets(struct IntRequestUserData *udata,struct IntuitionBase *IntuitionBase);
77 void intrequest_drawrequester(struct IntRequestUserData *udata,struct IntuitionBase *IntuitionBase);
78 void intrequest_hilightgadget(struct IntRequestUserData *udata,LONG numgad,BOOL dohilight,struct IntuitionBase *IntuitionBase);
79 void intrequest_initeasyreq(struct IntRequestUserData *udata,struct ExtEasyStruct *ees,struct IntuitionBase *IntuitionBase);
80 #endif
81 void render_requester(struct Requester *requester, struct IntuitionBase *IntuitionBase);
83 struct Window *buildsysreq_intern(struct Window *window, STRPTR reqtitle, struct IntuiText *bodytext,
84 struct IntuiText *postext, struct IntuiText *negtext,
85 ULONG IDCMPFlags, WORD width, WORD height, struct IntuitionBase *IntuitionBase);
86 LONG sysreqhandler_intern(struct Window *window, ULONG *IDCMPFlagsPtr, BOOL WaitInput, struct IntuitionBase *IntuitionBase);
87 void freesysreq_intern(struct Window *window, struct IntuitionBase *IntuitionBase);
89 struct RawInfo
91 int Len;
92 int Lines;
95 AROS_UFP2(void, RequesterCountChar,
96 AROS_UFPA(UBYTE, chr, D0),
97 AROS_UFPA(struct RawInfo *,RawInfo,A3)
100 AROS_UFP2(void, RequesterPutChar,
101 AROS_UFPA(UBYTE, chr, D0),
102 AROS_UFPA(UBYTE **,buffer,A3)
105 #define OUTERSPACING_X 4
106 //horiz space between win border and requester's box
107 #define OUTERSPACING_Y 4
108 //horiz space between win border and requester's box
109 #define GADGETGADGETSPACING 8
110 //space between gadgets
111 #define GADGETGADGETSPACING_Y 8
112 //vert space between gadgets
113 #define TEXTGADGETSPACING 4
114 //space between textbox and gadgets row
115 #define TEXTBOXBORDER_X 16
116 //min space between text and textboxborder
117 #define TEXTBOXBORDER_Y 4
118 #define BUTTONBORDER_X 8
119 //min space between gadaget text and gadget border
120 #define BUTTONBORDER_Y 4
121 #define LOGOTEXTSPACING_X 8
123 #endif /* _REQUESTERS_H_ */