Home | History | Annotate | Line # | Download | only in src
      1 /*
      2  * Copyright (C) 1989-95 GROUPE BULL
      3  *
      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:
     10  *
     11  * The above copyright notice and this permission notice shall be included in
     12  * all copies or substantial portions of the Software.
     13  *
     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.
     20  *
     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.
     24  */
     25 
     26 /*****************************************************************************\
     27 *  WrFFrP.c:                                                                  *
     28 *                                                                             *
     29 *  XPM library                                                                *
     30 *  Write a pixmap and possibly its mask to an XPM file                        *
     31 *                                                                             *
     32 *  Developed by Arnaud Le Hors                                                *
     33 \*****************************************************************************/
     34 
     35 #ifdef HAVE_CONFIG_H
     36 #include <config.h>
     37 #endif
     38 #include "XpmI.h"
     39 
     40 int
     41 XpmWriteFileFromPixmap(
     42     Display		*display,
     43     const char		*filename,
     44     Pixmap		 pixmap,
     45     Pixmap		 shapemask,
     46     XpmAttributes	*attributes)
     47 {
     48     XImage *ximage = NULL;
     49     XImage *shapeimage = NULL;
     50     unsigned int width = 0;
     51     unsigned int height = 0;
     52     int ErrorStatus;
     53 
     54     /* get geometry */
     55     if (attributes && attributes->valuemask & XpmSize) {
     56 	width = attributes->width;
     57 	height = attributes->height;
     58     }
     59     /* get the ximages */
     60     if (pixmap)
     61 	xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height);
     62     if (shapemask)
     63 	xpmCreateImageFromPixmap(display, shapemask, &shapeimage,
     64 				 &width, &height);
     65 
     66     /* write to the file */
     67     ErrorStatus = XpmWriteFileFromImage(display, filename, ximage, shapeimage,
     68 					attributes);
     69 
     70     /* destroy the ximages */
     71     if (ximage)
     72 	XDestroyImage(ximage);
     73     if (shapeimage)
     74 	XDestroyImage(shapeimage);
     75 
     76     return (ErrorStatus);
     77 }
     78