dtinfo: remove register keyword
[oweals/cde.git] / cde / programs / dtinfo / dtinfo / src / Other / XpmLib.hh
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these libraries and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 // $XConsortium: XpmLib.hh /main/3 1996/06/11 16:30:35 cde-hal $
24 /*      Copyright (c) 1994 FUJITSU LIMITED      */
25 /*      All Rights Reserved                     */
26
27
28 #ifndef XPMLIB_HH
29 #define XPMLIB_HH
30
31 #include <dlfcn.h>
32 #include <X11/xpm.h>
33
34 class XpmLib
35 {
36 public:
37
38   XpmLib(const char* = 0, int = RTLD_LAZY);
39   ~XpmLib();
40
41   bool is_open() { return f_handle ? TRUE : FALSE; } // if library opened properly
42
43   int CreatePixmapFromData(Display*, Drawable, char**, Pixmap*, Pixmap*, XpmAttributes*);
44
45   int CreatePixmapFromBuffer(Display*, Drawable, char*, Pixmap*, Pixmap*, XpmAttributes*);
46
47   int ReadFileToPixmap(Display*, Drawable, char*, Pixmap*, Pixmap*, XpmAttributes*);
48
49   static XpmLib& xpm_lib() { return *f_xpm_lib; }
50
51 private:
52
53   void* f_handle;
54
55   static XpmLib* f_xpm_lib;
56
57   void* symbol(const char*);
58 };
59
60 inline XpmLib& xpm_lib()
61 {
62   return XpmLib::xpm_lib();
63 }
64
65 #endif