]> Pileus Git - ~andy/gtk/blob - gdk/x11/MwmUtil.h
7d4c5bc645c0deb620d76c01c6546be9460cea3b
[~andy/gtk] / gdk / x11 / MwmUtil.h
1 /**
2  *
3  * $Id$
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
21  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22  * Boston, MA 02111-1307, USA.
23  *
24  *
25  * * Feb 21 1999 - George Lebl (jirka@5z.com)
26  *                 Owen Taylor (otaylor@redhat.com)
27  *
28  *   Modified so that the MotifWmHints structure defined here
29  *   is suitable for client side use on 64-bit architectures.
30  *   X expects fields with a format of 32 to be longs, even
31  *   when sizeof(long) == 8.
32  **/
33
34 #ifndef MWMUTIL_H_INCLUDED
35 #define MWMUTIL_H_INCLUDED
36
37 #include <X11/Xmd.h>
38
39 G_BEGIN_DECLS
40
41 typedef struct {
42     unsigned long flags;
43     unsigned long functions;
44     unsigned long decorations;
45     long input_mode;
46     unsigned long status;
47 } MotifWmHints, MwmHints;
48
49 #define MWM_HINTS_FUNCTIONS     (1L << 0)
50 #define MWM_HINTS_DECORATIONS   (1L << 1)
51 #define MWM_HINTS_INPUT_MODE    (1L << 2)
52 #define MWM_HINTS_STATUS        (1L << 3)
53
54 #define MWM_FUNC_ALL            (1L << 0)
55 #define MWM_FUNC_RESIZE         (1L << 1)
56 #define MWM_FUNC_MOVE           (1L << 2)
57 #define MWM_FUNC_MINIMIZE       (1L << 3)
58 #define MWM_FUNC_MAXIMIZE       (1L << 4)
59 #define MWM_FUNC_CLOSE          (1L << 5)
60
61 #define MWM_DECOR_ALL           (1L << 0)
62 #define MWM_DECOR_BORDER        (1L << 1)
63 #define MWM_DECOR_RESIZEH       (1L << 2)
64 #define MWM_DECOR_TITLE         (1L << 3)
65 #define MWM_DECOR_MENU          (1L << 4)
66 #define MWM_DECOR_MINIMIZE      (1L << 5)
67 #define MWM_DECOR_MAXIMIZE      (1L << 6)
68
69 #define MWM_INPUT_MODELESS 0
70 #define MWM_INPUT_PRIMARY_APPLICATION_MODAL 1
71 #define MWM_INPUT_SYSTEM_MODAL 2
72 #define MWM_INPUT_FULL_APPLICATION_MODAL 3
73 #define MWM_INPUT_APPLICATION_MODAL MWM_INPUT_PRIMARY_APPLICATION_MODAL
74
75 #define MWM_TEAROFF_WINDOW      (1L<<0)
76
77 /*
78  * atoms
79  */
80 #define _XA_MOTIF_BINDINGS              "_MOTIF_BINDINGS"
81 #define _XA_MOTIF_WM_HINTS              "_MOTIF_WM_HINTS"
82 #define _XA_MOTIF_WM_MESSAGES           "_MOTIF_WM_MESSAGES"
83 #define _XA_MOTIF_WM_OFFSET             "_MOTIF_WM_OFFSET"
84 #define _XA_MOTIF_WM_MENU               "_MOTIF_WM_MENU"
85 #define _XA_MOTIF_WM_INFO               "_MOTIF_WM_INFO"
86 #define _XA_MWM_HINTS                   _XA_MOTIF_WM_HINTS
87 #define _XA_MWM_MESSAGES                _XA_MOTIF_WM_MESSAGES
88 #define _XA_MWM_MENU                    _XA_MOTIF_WM_MENU
89 #define _XA_MWM_INFO                    _XA_MOTIF_WM_INFO
90
91
92 /*
93  * _MWM_INFO property
94  */
95 typedef struct {
96     long flags;
97     Window wm_window;
98 } MotifWmInfo;
99
100 typedef MotifWmInfo MwmInfo;
101
102 #define MWM_INFO_STARTUP_STANDARD       (1L<<0)
103 #define MWM_INFO_STARTUP_CUSTOM         (1L<<1)
104
105 /*
106  * _MWM_HINTS property
107  */
108 typedef struct {
109     unsigned long flags;
110     unsigned long functions;
111     unsigned long decorations;
112     long inputMode;
113     unsigned long status;
114 } PropMotifWmHints;
115
116 typedef PropMotifWmHints PropMwmHints;
117
118 #define PROP_MOTIF_WM_HINTS_ELEMENTS 5
119 #define PROP_MWM_HINTS_ELEMENTS PROP_MOTIF_WM_HINTS_ELEMENTS
120
121 /*
122  * _MWM_INFO property, slight return
123  */
124 typedef struct {
125     unsigned long flags;
126     unsigned long wmWindow;
127 } PropMotifWmInfo;
128
129 typedef PropMotifWmInfo PropMwmInfo;
130
131 #define PROP_MOTIF_WM_INFO_ELEMENTS 2
132 #define PROP_MWM_INFO_ELEMENTS PROP_MOTIF_WM_INFO_ELEMENTS
133
134 G_END_DECLS
135
136 #endif /* MWMUTIL_H_INCLUDED */