Link with C++ linker
[oweals/cde.git] / cde / programs / dtpdm / PdmXp.h
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 librararies 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: PdmXp.h /main/4 1996/08/12 18:43:09 cde-hp $ */
24 /*
25  * dtpdm/PdmXp.h
26  */
27 /*
28  * (c) Copyright 1996 Digital Equipment Corporation.
29  * (c) Copyright 1996 Hewlett-Packard Company.
30  * (c) Copyright 1996 International Business Machines Corp.
31  * (c) Copyright 1996 Sun Microsystems, Inc.
32  * (c) Copyright 1996 Novell, Inc. 
33  * (c) Copyright 1996 FUJITSU LIMITED.
34  * (c) Copyright 1996 Hitachi.
35  */
36 #ifndef _PdmXp_h
37 #define _PdmXp_h
38
39 #include <X11/extensions/Print.h>
40
41 #include "PdmOid.h"
42
43 #define PDMXP_POOL_COUNT 4
44
45 /*
46  * PdmXp instance structure
47  */
48 typedef struct _PdmXp
49 {
50     /*
51      * print server connection info
52      */
53     Display* display;
54     XPContext context;
55     /*
56      * printing attribute pools
57      */
58     XrmDatabase pool[PDMXP_POOL_COUNT];
59     /*
60      * qualifier for retrieving attributes
61      */
62     char* qualifier;
63     int qualifier_len;
64     
65 } PdmXp;
66
67 /*
68  * PdmXp public methods
69  */
70 extern PdmXp* PdmXpNew();
71 extern Display* PdmXpOpen(PdmXp* me,
72                           char* display_spec,
73                           char* context_str);
74 extern void PdmXpClose(PdmXp* me);
75 extern void PdmXpDelete(PdmXp* me);
76 extern PdmOid PdmXpGetValue(PdmXp* me,
77                             XPAttributes type,
78                             PdmOid id_att);
79 extern const char* PdmXpGetStringValue(PdmXp* me,
80                                        XPAttributes type,
81                                        PdmOid id_att);
82 extern void PdmXpSetValue(PdmXp* me,
83                           XPAttributes type,
84                           PdmOid id_att,
85                           PdmOid id_val);
86 extern void PdmXpSetStringValue(PdmXp* me,
87                                 XPAttributes type,
88                                 PdmOid id_att,
89                                 const char* str_val);
90 extern void PdmXpUpdateAttributes(PdmXp* me);
91
92
93 #endif /* _PdmXp_h */