Mir
common.h
Go to the documentation of this file.
1 /*
2  * Simple definitions common to client and server.
3  *
4  * Copyright © 2013-2016 Canonical Ltd.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License version 3 as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
19  */
20 
21 #ifndef MIR_COMMON_H_
22 #define MIR_COMMON_H_
23 
25 
26 //for clang
27 #ifndef __has_feature
28  #define __has_feature(x) 0 // Compatibility with non-clang
29 #endif
30 
31 //for clang
32 #ifndef __has_extension
33  #define __has_extension __has_feature // Compatibility with pre-3.0
34 #endif
35 
36 #if __GNUC__ >= 6 || \
37  (__has_extension(attribute_deprecated_with_message) && \
38  __has_extension(enumerator_attributes))
39  #define MIR_DEPRECATED_ENUM(ENUM, INSTEAD) \
40  ENUM MIR_FOR_REMOVAL_IN_VERSION_1("Use " #INSTEAD " instead")
41 #else
42  #define MIR_DEPRECATED_ENUM(ENUM, INSTEAD) \
43  ENUM
44 #endif
45 
49 /* This is C code. Not C++. */
50 
55 typedef enum MirSurfaceAttrib
56 {
57  /* Do not specify values...code relies on 0...N ordering. */
68  /* Must be last */
70 } MirSurfaceAttrib MIR_FOR_REMOVAL_IN_VERSION_1("use MirWindowAttrib");
71 
76 typedef enum MirWindowAttrib
77 {
78  /* Do not specify values...code relies on 0...N ordering. */
89  /* Must be last */
92 
93 typedef enum MirSurfaceType
94 {
107 } MirSurfaceType MIR_FOR_REMOVAL_IN_VERSION_1("use MirWindowType");
108 
109 typedef enum MirWindowType
110 {
121 } MirWindowType;
122 
123 typedef enum MirSurfaceState
124 {
130  /* mir_surface_state_semimaximized,
131  Omitted for now, since it's functionally a subset of vertmaximized and
132  differs only in the X coordinate. */
137 }