synch mmakefile behaviour
[AROS.git] / rom / intuition / requesters.c
blob4be996f26931f1db685dde10ab023c79888f493d
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4 $Id$
6 Miscellaneous requester functions.
7 */
9 #include <proto/graphics.h>
10 #include <proto/layers.h>
11 #include <proto/exec.h>
12 #include <proto/intuition.h>
13 #include <proto/cybergraphics.h>
14 #include <exec/types.h>
15 #include <intuition/intuition.h>
16 #include <intuition/gadgetclass.h>
17 #include <intuition/imageclass.h>
18 #include <graphics/rpattr.h>
19 #include "intuition_intern.h"
20 #include "requesters.h"
22 #define DEBUG_REQUESTER(x) ;
24 /* free the array of gadgetlabels made in BuildEasyRequestArgs() */
25 void intrequest_freelabels(STRPTR *gadgetlabels, struct IntuitionBase *IntuitionBase)
27 if (gadgetlabels)
29 FreeVec(gadgetlabels[0]);
30 FreeVec(gadgetlabels);
35 /* free the gadgets made in BuildEasyRequestArgs() */
36 void intrequest_freegadgets(struct Gadget *gadgets, struct IntuitionBase *IntuitionBase)
38 struct Image *frame = gadgets->GadgetRender;
40 while (gadgets)
42 struct Gadget* nextgadget = 0;
44 GetAttr(GA_Next, (Object *)gadgets, (IPTR *)&nextgadget);
45 DisposeObject(gadgets);
46 gadgets = nextgadget;
49 DisposeObject(frame);
53 /*****************************************************************************/
56 /* render a standard requester */
57 void render_requester(struct Requester *requester, struct IntuitionBase *IntuitionBase)
59 struct GfxBase *GfxBase = GetPrivIBase(IntuitionBase)->GfxBase;
60 struct RastPort *rp = requester->ReqLayer->rp;
62 if ((requester->Flags & NOREQBACKFILL) == 0)
63 SetRast(rp, requester->BackFill);
65 if (requester->ImageBMap && requester->Flags & PREDRAWN)
66 BltBitMapRastPort(requester->ImageBMap, 0, 0,
67 rp, 0, 0, requester->Width, requester->Height, 0xc0);
69 if (requester->ReqImage && requester->Flags & USEREQIMAGE)
70 DrawImage(rp, requester->ReqImage, 0, 0);
72 if (requester->ReqBorder)
73 DrawBorder(rp, requester->ReqBorder, 0, 0);
75 if (requester->ReqGadget)
76 RefreshGList(requester->ReqGadget, requester->RWindow, requester, -1);
78 if (requester->ReqText)
79 PrintIText(rp, requester->ReqText, 0, 0);