home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / x / x11r6-ch / xpm-3.4 / xpm-3 / xpm-3.4c / lib / CrDatFrP.c < prev    next >
C/C++ Source or Header  |  1994-06-06  |  3KB  |  84 lines

  1. /*
  2.  * Copyright (C) 1989-94 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. *  CrDataFP.c:                                                                *
  28. *                                                                             *
  29. *  XPM library                                                                *
  30. *  Scan a pixmap and possibly its mask and create an XPM array                *
  31. *                                                                             *
  32. *  Developed by Arnaud Le Hors                                                *
  33. \*****************************************************************************/
  34.  
  35. #include "xpmP.h"
  36. #ifdef VMS
  37. #include "sys$library:string.h"
  38. #else
  39. #if defined(SYSV) || defined(SVR4)
  40. #include <string.h>
  41. #else
  42. #include <strings.h>
  43. #endif
  44. #endif
  45.  
  46. int
  47. XpmCreateDataFromPixmap(display, data_return, pixmap, shapemask, attributes)
  48.     Display *display;
  49.     char ***data_return;
  50.     Pixmap pixmap;
  51.     Pixmap shapemask;
  52.     XpmAttributes *attributes;
  53. {
  54.     XImage *ximage = NULL;
  55.     XImage *shapeimage = NULL;
  56.     unsigned int width = 0;
  57.     unsigned int height = 0;
  58.     int ErrorStatus;
  59.  
  60.     /* get geometry */
  61.     if (attributes && attributes->valuemask & XpmSize) {
  62.     width = attributes->width;
  63.     height = attributes->height;
  64.     }
  65.     /* get the ximages */
  66.     if (pixmap)
  67.     xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height);
  68.     if (shapemask)
  69.     xpmCreateImageFromPixmap(display, shapemask, &shapeimage,
  70.                  &width, &height);
  71.  
  72.     /* create the data */
  73.     ErrorStatus = XpmCreateDataFromImage(display, data_return, ximage,
  74.                      shapeimage, attributes);
  75.  
  76.     /* destroy the ximages */
  77.     if (ximage)
  78.     XDestroyImage(ximage);
  79.     if (shapeimage)
  80.     XDestroyImage(shapeimage);
  81.  
  82.     return (ErrorStatus);
  83. }
  84.