1 /**
2  *
3  * $Id: MwmUtil.h,v 1.1 1997/03/30 14:03:34 root Exp $
4  *
5  * Copyright (C) 1995 Free Software Foundation, Inc.
6  *
7  * This file is part of the GNU LessTif Library.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public
20  * License along with this library; if not, write to the Free
21  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  **/
24 
25 #ifndef MWMUTIL_H_INCLUDED
26 #define MWMUTIL_H_INCLUDED
27 
28 #include <X11/Xmd.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 typedef struct {
35     CARD32 flags;
36     CARD32 functions;
37     CARD32 decorations;
38     INT32 input_mode;
39     CARD32 status;
40 } MotifWmHints, MwmHints;
41 
42 #define MWM_HINTS_FUNCTIONS     (1L << 0)
43 #define MWM_HINTS_DECORATIONS   (1L << 1)
44 #define MWM_HINTS_INPUT_MODE    (1L << 2)
45 #define MWM_HINTS_STATUS        (1L << 3)
46 
47 #define MWM_FUNC_ALL            (1L << 0)
48 #define MWM_FUNC_RESIZE         (1L << 1)
49 #define MWM_FUNC_MOVE           (1L << 2)
50 #define MWM_FUNC_MINIMIZE       (1L << 3)
51 #define MWM_FUNC_MAXIMIZE       (1L << 4)
52 #define MWM_FUNC_CLOSE          (1L << 5)
53 
54 #define MWM_DECOR_ALL           (1L << 0)
55 #define MWM_DECOR_BORDER        (1L << 1)
56 #define MWM_DECOR_RESIZEH       (1L << 2)
57 #define MWM_DECOR_TITLE         (1L << 3)
58 #define MWM_DECOR_MENU          (1L << 4)
59 #define MWM_DECOR_MINIMIZE      (1L << 5)
60 #define MWM_DECOR_MAXIMIZE      (1L << 6)
61 
62 #define MWM_INPUT_MODELESS 0
63 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1
64 #define MWM_INPUT_SYSTEM_MODAL 2
65 #define MWM_INPUT_FULL_APPLICATION_MODAL 3
66 #define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL
67 
68 #define MWM_TEAROFF_WINDOW	(1L<<0)
69 
70 /*
71  * atoms
72  */
73 #define _XA_MOTIF_BINDINGS		"_MOTIF_BINDINGS"
74 #define _XA_MOTIF_WM_HINTS		"_MOTIF_WM_HINTS"
75 #define _XA_MOTIF_WM_MESSAGES		"_MOTIF_WM_MESSAGES"
76 #define _XA_MOTIF_WM_OFFSET		"_MOTIF_WM_OFFSET"
77 #define _XA_MOTIF_WM_MENU		"_MOTIF_WM_MENU"
78 #define _XA_MOTIF_WM_INFO		"_MOTIF_WM_INFO"
79 #define _XA_MWM_HINTS			_XA_MOTIF_WM_HINTS
80 #define _XA_MWM_MESSAGES		_XA_MOTIF_WM_MESSAGES
81 #define _XA_MWM_MENU			_XA_MOTIF_WM_MENU
82 #define _XA_MWM_INFO			_XA_MOTIF_WM_INFO
83 
84 
85 /*
86  * _MWM_INFO property
87  */
88 typedef struct {
89     long flags;
90     Window wm_window;
91 } MotifWmInfo;
92 
93 typedef MotifWmInfo MwmInfo;
94 
95 #define MWM_INFO_STARTUP_STANDARD	(1L<<0)
96 #define MWM_INFO_STARTUP_CUSTOM		(1L<<1)
97 
98 /*
99  * _MWM_HINTS property
100  */
101 typedef struct {
102     CARD32 flags;
103     CARD32 functions;
104     CARD32 decorations;
105     INT32 inputMode;
106     CARD32 status;
107 } PropMotifWmHints;
108 
109 typedef PropMotifWmHints PropMwmHints;
110 
111 #define PROP_MOTIF_WM_HINTS_ELEMENTS 5
112 #define PROP_MWM_HINTS_ELEMENTS PROP_MOTIF_WM_HINTS_ELEMENTS
113 
114 /*
115  * _MWM_INFO property, slight return
116  */
117 typedef struct {
118     CARD32 flags;
119     CARD32 wmWindow;
120 } PropMotifWmInfo;
121 
122 typedef PropMotifWmInfo PropMwmInfo;
123 
124 #define PROP_MOTIF_WM_INFO_ELEMENTS 2
125 #define PROP_MWM_INFO_ELEMENTS PROP_MOTIF_WM_INFO_ELEMENTS
126 
127 #ifdef __cplusplus
128 }
129 #endif
130 
131 #endif /* MWMUTIL_H_INCLUDED */
132