]>
git.saurik.com Git - wxWidgets.git/blob - src/xpm/crifrbuf.c
2 * Copyright (C) 1989-95 GROUPE BULL
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to
6 * deal in the Software without restriction, including without limitation the
7 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8 * sell copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 * Except as contained in this notice, the name of GROUPE BULL shall not be
22 * used in advertising or otherwise to promote the sale, use or other dealings
23 * in this Software without prior written authorization from GROUPE BULL.
26 /*****************************************************************************\
30 * Parse an Xpm buffer (file in memory) and create the image and possibly its *
32 * Developed by Arnaud Le Hors *
33 \*****************************************************************************/
37 LFUNC(OpenBuffer
, void, (char *buffer
, xpmData
*mdata
));
40 /* Visual Age cannot deal with old, non-ansi, code */
41 int XpmCreateImageFromBuffer(
44 , XImage
** image_return
45 , XImage
** shapeimage_return
46 , XpmAttributes
* attributes
50 XpmCreateImageFromBuffer(display
, buffer
, image_return
,
51 shapeimage_return
, attributes
)
54 XImage
**image_return
;
55 XImage
**shapeimage_return
;
56 XpmAttributes
*attributes
;
64 xpmInitXpmImage(&image
);
65 xpmInitXpmInfo(&info
);
67 /* open buffer to read */
68 OpenBuffer(buffer
, &mdata
);
70 /* create the XImage from the XpmData */
72 xpmInitAttributes(attributes
);
73 xpmSetInfoMask(&info
, attributes
);
74 ErrorStatus
= xpmParseDataAndCreate(display
, &mdata
,
75 image_return
, shapeimage_return
,
76 &image
, &info
, attributes
);
78 ErrorStatus
= xpmParseDataAndCreate(display
, &mdata
,
79 image_return
, shapeimage_return
,
80 &image
, NULL
, attributes
);
82 if (ErrorStatus
>= 0) /* no fatal error */
83 xpmSetAttributes(attributes
, &image
, &info
);
84 XpmFreeXpmInfo(&info
);
87 /* free the XpmImage */
88 XpmFreeXpmImage(&image
);
94 /* Visual Age cannot deal with old, non-ansi, code */
95 int XpmCreateXpmImageFromBuffer(
102 XpmCreateXpmImageFromBuffer(buffer
, image
, info
)
111 /* init returned values */
112 xpmInitXpmImage(image
);
113 xpmInitXpmInfo(info
);
115 /* open buffer to read */
116 OpenBuffer(buffer
, &mdata
);
118 /* create the XpmImage from the XpmData */
119 ErrorStatus
= xpmParseData(&mdata
, image
, info
);
121 return (ErrorStatus
);
125 * open the given buffer to be read or written as an xpmData which is returned
128 /* Visual Age cannot deal with old, non-ansi, code */
129 static void OpenBuffer(char* buffer
, xpmData
* mdata
)
132 OpenBuffer(buffer
, mdata
)
137 mdata
->type
= XPMBUFFER
;
138 mdata
->cptr
= buffer
;
139 mdata
->CommentLength
= 0;