move delay code into separate function.
[AROS.git] / rom / hyperlayers / createbehindlayertaglist.c
blob427710642fe0cb935f81a401eab06ff78f07d08c
1 /*
2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <aros/libcall.h>
7 #include <graphics/clip.h>
8 #include <graphics/layers.h>
9 #include <utility/tagitem.h>
10 #include <proto/exec.h>
11 #include <proto/utility.h>
12 #include <proto/graphics.h>
13 #include "basicfuncs.h"
15 /*****************************************************************************
17 NAME */
18 #include <proto/layers.h>
19 AROS_LH8(struct Layer *, CreateBehindLayerTagList,
21 /* SYNOPSIS */
22 AROS_LHA(struct Layer_Info *, li, A0),
23 AROS_LHA(struct BitMap *, bm, A1),
24 AROS_LHA(LONG , x0, D0),
25 AROS_LHA(LONG , y0, D1),
26 AROS_LHA(LONG , x1, D2),
27 AROS_LHA(LONG , y1, D3),
28 AROS_LHA(LONG , flags, D4),
29 AROS_LHA(struct TagItem *, tagList, A2),
31 /* LOCATION */
32 struct LayersBase *, LayersBase, 40, Layers)
34 /* FUNCTION
35 Create a new layer according to the tags given.
37 INPUTS
38 li - pointer to LayerInfo structure
39 bm - pointer to common bitmap
40 x0,y0 - upper left corner of the layer (in parent layer coords)
41 x1,y1 - lower right corner of the layer (in parent layer coords)
42 flags - choose the type of layer by setting some flags
43 If it is to be a super bitmap layer then the tag
44 LA_SUPERBITMAP must be provided along with a
45 pointer to a valid super bitmap.
46 tagList - a list of tags that specify the properties of the
47 layer. The following tags are currently supported:
48 LA_PRIORITY : priority class of the layer. The
49 higher the number the further the
50 layer will be in front of everything
51 else.
52 Default value is UPFRONTPRIORITY.
53 LA_HOOK : Backfill hook
54 LA_SUPERBITMAP : pointer to a superbitmap. The flags
55 must also represent that this
56 layer is supposed to be a superbitmap
57 layer.
58 LA_CHILDOF : pointer to parent layer. If NULL then
59 this layer will be created as a old-style
60 layer.
61 LA_INFRONTOF : pointer to a layer in front of which
62 this layer is to be created.
63 LA_BEHIND : pointer to a layer behind which this layer
64 is to be created. Must not give both LA_INFRONTOF
65 and LA_BEHIND.
66 LA_VISIBLE : FALSE if this layer is to be invisible.
67 Default value is TRUE
68 LA_SHAPE : The region of the layer that comprises its shape.
69 This value is optional. The region must be relative to the layer.
72 RESULT
73 Pointer to the newly created layer. NULL if layer could not be
74 created (Probably out of memory).
75 If the layer is created successfully you must not free its shape.
76 The shape is automatically freed when the layer is deleted.
78 NOTES
80 EXAMPLE
82 BUGS
84 SEE ALSO
86 INTERNALS
88 *****************************************************************************/
90 AROS_LIBFUNC_INIT
93 * *** !!! FIXME !!! ***
94 * This condition was copied from CreateBehindHookLayer() and
95 * it is 100% identical to one in CreateUpfrontHookLayer().
96 * This urgently needs to be fixed.
98 int priority = (LAYERBACKDROP == (flags & LAYERBACKDROP)) ? BACKDROPPRIORITY: UPFRONTPRIORITY;
100 return CreateLayerTagList(li, bm, x0, y0, x1, y1, flags, priority, tagList, LayersBase);
102 AROS_LIBFUNC_EXIT
103 } /* CreateBehindHookLayer */