]>
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
;