Use C++ linker
[oweals/cde.git] / cde / programs / dtwm / WmOL.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: WmOL.h /main/4 1995/11/01 11:45:27 rswiston $ */
24 /* 
25  * (c) Copyright 1989 Sun Microsystems, Inc.
26  * (c) Copyright 1993 HEWLETT-PACKARD COMPANY 
27  * ALL RIGHTS RESERVED 
28  */ 
29
30 #ifndef _WM_OL_H
31 #define _WM_OL_H
32 #ifndef NO_OL_COMPAT
33
34 #ifdef REV_INFO
35 #ifndef lint
36 static char rcsid[] = ""
37 #endif
38 #endif
39
40 /*
41  * Property Names 
42  */
43 #define OL_WIN_ATTR             "_OL_WIN_ATTR"
44 #define OL_DECOR_ADD            "_OL_DECOR_ADD"
45 #define OL_DECOR_DEL            "_OL_DECOR_DEL"
46
47 /*
48  * Decoration atoms
49  */
50 #define OL_DECOR_RESIZE         "_OL_DECOR_RESIZE"
51 #define OL_DECOR_FOOTER         "_OL_DECOR_FOOTER"
52 #define OL_DECOR_HEADER         "_OL_DECOR_HEADER"
53 #define OL_DECOR_PIN            "_OL_DECOR_PIN"
54 #define OL_DECOR_CLOSE          "_OL_DECOR_CLOSE"
55 #define OL_DECOR_ICON_NAME      "_OL_DECOR_ICON_NAME"
56 #define OL_PIN_IN               "_OL_PIN_IN"
57 #define OL_PIN_OUT              "_OL_PIN_OUT"
58
59 /*
60  * Window types
61  */
62 #define OL_WT_BASE              "_OL_WT_BASE"
63 #define OL_WT_CMD               "_OL_WT_CMD"
64 #define OL_WT_NOTICE            "_OL_WT_NOTICE"
65 #define OL_WT_HELP              "_OL_WT_HELP"
66 #define OL_WT_OTHER             "_OL_WT_OTHER"
67
68 /*
69  * Menu Types
70  */
71 #define OL_MENU_LIMITED         "_OL_MENU_LIMITED"
72 #define OL_MENU_FULL            "_OL_MENU_FULL"
73
74 /*
75  * Structure of Open Look window attribute property
76  */
77 typedef struct _OLWinAttr {
78     unsigned long       flags;
79     Atom                win_type;
80     Atom                menu_type;
81     unsigned long       pin_initial_state;
82     unsigned long       cancel;
83 } OLWinAttr;
84 #define OLWINATTRLENGTH (sizeof(OLWinAttr)/sizeof(unsigned long))
85
86 typedef struct _old_OLWinAttr {
87     Atom                win_type;
88     Atom                menu_type;
89     unsigned long       pin_initial_state;
90 } old_OLWinAttr;
91 #define OLDOLWINATTRLENGTH (sizeof(old_OLWinAttr)/sizeof(unsigned long))
92
93 /* pin states */
94 #define PIN_OUT         0
95 #define PIN_IN          1
96
97 /*
98  * Values for flags in OLWinAttr
99  */
100 #define WA_WINTYPE      (1<<0)
101 #define WA_MENUTYPE     (1<<1)
102 #define WA_PINSTATE     (1<<2)
103 #define WA_CANCEL       (1<<3)
104
105 #define ENTIRE_CONTENTS         (10000000L)
106
107 /*
108  * Bit Flags for OL Window Decoration
109  */
110 #define OLDecorHeader           (1L<<0)
111 #define OLDecorFooter           (1L<<1)
112 #define OLDecorPushPin          (1L<<2)
113 #define OLDecorCloseButton      (1L<<3)
114 #define OLDecorResizeable       (1L<<4)
115 #define OLDecorIconName         (1L<<5)
116 #define OLDecorWarpToPin        (1L<<6)
117
118 /*
119  * Public Functions
120  */
121 extern Boolean HasOpenLookHints( ClientData *pCD );
122 extern OLWinAttr * GetOLWinAttr( ClientData *pCD );
123 extern Boolean GetOLDecorFlags(ClientData *pCD, Atom property,
124         unsigned long *pDecor);
125
126
127 /*
128  * Macros (public pseudo-functions)
129  */
130 #define GetOLDecorAdd(pcd,ptr) (GetOLDecorFlags(pcd,wmGD.xa_OL_DECOR_ADD,ptr))
131 #define GetOLDecorDel(pcd,ptr) (GetOLDecorFlags(pcd,wmGD.xa_OL_DECOR_DEL,ptr))
132
133
134 #endif /* NO_OL_COMPAT */
135 /* Do not add anything after the following #endif */
136 #endif /* _WM_OL_H */