]>
git.saurik.com Git - wxWidgets.git/blob - src/xpm/info.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 * Functions related to the XpmInfo structure. *
32 * Developed by Arnaud Le Hors *
33 \*****************************************************************************/
38 * Init returned data to free safely later on
41 /* Visual Age cannot deal with old, non-ansi, code */
43 xpmInitXpmInfo(XpmInfo
* info
)
51 info
->hints_cmt
= NULL
;
52 info
->colors_cmt
= NULL
;
53 info
->pixels_cmt
= NULL
;
54 info
->extensions
= NULL
;
55 info
->nextensions
= 0;
60 * Free the XpmInfo data which have been allocated
63 /* Visual Age cannot deal with old, non-ansi, code */
65 XpmFreeXpmInfo(XpmInfo
* info
)
73 if (info
->valuemask
& XpmComments
) {
74 if (info
->hints_cmt
) {
75 XpmFree(info
->hints_cmt
);
76 info
->hints_cmt
= NULL
;
78 if (info
->colors_cmt
) {
79 XpmFree(info
->colors_cmt
);
80 info
->colors_cmt
= NULL
;
82 if (info
->pixels_cmt
) {
83 XpmFree(info
->pixels_cmt
);
84 info
->pixels_cmt
= NULL
;
87 if (info
->valuemask
& XpmReturnExtensions
&& info
->nextensions
) {
88 XpmFreeExtensions(info
->extensions
, info
->nextensions
);
89 info
->extensions
= NULL
;
90 info
->nextensions
= 0;
97 * Set the XpmInfo valuemask to retrieve required info
100 /* Visual Age cannot deal with old, non-ansi, code */
101 void xpmSetInfoMask(XpmInfo
* info
, XpmAttributes
* attributes
)
104 xpmSetInfoMask(info
, attributes
)
106 XpmAttributes
*attributes
;
110 if (attributes
->valuemask
& XpmReturnInfos
)
111 info
->valuemask
|= XpmReturnComments
;
112 if (attributes
->valuemask
& XpmReturnExtensions
)
113 info
->valuemask
|= XpmReturnExtensions
;
117 * Fill in the XpmInfo with the XpmAttributes
120 /* Visual Age cannot deal with old, non-ansi, code */
122 xpmSetInfo(XpmInfo
* info
, XpmAttributes
* attributes
)
125 xpmSetInfo(info
, attributes
)
127 XpmAttributes
*attributes
;
131 if (attributes
->valuemask
& XpmInfos
) {
132 info
->valuemask
|= XpmComments
| XpmColorTable
;
133 info
->hints_cmt
= attributes
->hints_cmt
;
134 info
->colors_cmt
= attributes
->colors_cmt
;
135 info
->pixels_cmt
= attributes
->pixels_cmt
;
137 if (attributes
->valuemask
& XpmExtensions
) {
138 info
->valuemask
|= XpmExtensions
;
139 info
->extensions
= attributes
->extensions
;
140 info
->nextensions
= attributes
->nextensions
;
142 if (attributes
->valuemask
& XpmHotspot
) {
143 info
->valuemask
|= XpmHotspot
;
144 info
->x_hotspot
= attributes
->x_hotspot
;
145 info
->y_hotspot
= attributes
->y_hotspot
;