1 // Generated by gmmproc 2.64.2 -- DO NOT MODIFY!
2 #ifndef _GLIBMM_ENUMS_H
3 #define _GLIBMM_ENUMS_H
4 
5 
6 /* Copyright (C) 2016 The gtkmm Development Team
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 
23 #include <glib.h>
24 
25 namespace Glib
26 {
27 /** @addtogroup glibmmEnums glibmm Enums and Flags */
28 
29 /**
30  *  @var ParamFlags PARAM_READABLE
31  * The parameter is readable.
32  *
33  *  @var ParamFlags PARAM_WRITABLE
34  * The parameter is writable.
35  *
36  *  @var ParamFlags PARAM_READWRITE
37  * Alias for PARAM_READABLE | PARAM_WRITABLE.
38  *
39  *  @var ParamFlags PARAM_CONSTRUCT
40  * The parameter will be set upon object construction.
41  *
42  *  @var ParamFlags PARAM_CONSTRUCT_ONLY
43  * The parameter can only be set upon object construction.
44  *
45  *  @var ParamFlags PARAM_LAX_VALIDATION
46  * Upon parameter conversion (see g_param_value_convert())
47  * strict validation is not required.
48  *
49  *  @var ParamFlags PARAM_STATIC_NAME
50  * The string used as name when constructing the
51  * parameter is guaranteed to remain valid and
52  * unmodified for the lifetime of the parameter.
53  * @newin{2,8}
54  *
55  *  @var ParamFlags PARAM_STATIC_NICK
56  * The string used as nick when constructing the
57  * parameter is guaranteed to remain valid and
58  * unmmodified for the lifetime of the parameter.
59  * @newin{2,8}
60  *
61  *  @var ParamFlags PARAM_STATIC_BLURB
62  * The string used as blurb when constructing the
63  * parameter is guaranteed to remain valid and
64  * unmodified for the lifetime of the parameter.
65  * @newin{2,8}
66  *
67  *  @var ParamFlags PARAM_EXPLICIT_NOTIFY
68  * Calls to g_object_set_property() for this
69  * property will not automatically result in a "notify" signal being
70  * emitted: the implementation must call g_object_notify() themselves
71  * in case the property actually changes.  @newin{2,42}
72  *
73  *  @var ParamFlags PARAM_PRIVATE
74  * Internal.
75  *
76  *  @var ParamFlags PARAM_DEPRECATED
77  * The parameter is deprecated and will be removed
78  * in a future version. A warning will be generated if it is used
79  * while running with G_ENABLE_DIAGNOSTIC=1.
80  * @newin{2,26}
81  *
82  *  @enum ParamFlags
83  *
84  * Through the ParamFlags flag values, certain aspects of parameters
85  * can be configured. See also G_PARAM_STATIC_STRINGS.
86  *
87  * @ingroup glibmmEnums
88  * @par Bitwise operators:
89  * <tt>%ParamFlags operator|(ParamFlags, ParamFlags)</tt><br>
90  * <tt>%ParamFlags operator&(ParamFlags, ParamFlags)</tt><br>
91  * <tt>%ParamFlags operator^(ParamFlags, ParamFlags)</tt><br>
92  * <tt>%ParamFlags operator~(ParamFlags)</tt><br>
93  * <tt>%ParamFlags& operator|=(ParamFlags&, ParamFlags)</tt><br>
94  * <tt>%ParamFlags& operator&=(ParamFlags&, ParamFlags)</tt><br>
95  * <tt>%ParamFlags& operator^=(ParamFlags&, ParamFlags)</tt><br>
96  */
97 enum ParamFlags
98 {
99   PARAM_READABLE = 1 << 0,
100   PARAM_WRITABLE = 1 << 1,
101   PARAM_READWRITE = 0x3,
102   PARAM_CONSTRUCT = 1 << 2,
103   PARAM_CONSTRUCT_ONLY = 1 << 3,
104   PARAM_LAX_VALIDATION = 1 << 4,
105   PARAM_STATIC_NAME = 1 << 5,
106   PARAM_PRIVATE = 0x20,
107   PARAM_STATIC_NICK = 1 << 6,
108   PARAM_STATIC_BLURB = 1 << 7,
109   PARAM_EXPLICIT_NOTIFY = 1 << 30,
110   PARAM_DEPRECATED = (gint)(1u << 31)
111 };
112 
113 /** @ingroup glibmmEnums */
114 inline ParamFlags operator|(ParamFlags lhs, ParamFlags rhs)
115   { return static_cast<ParamFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
116 
117 /** @ingroup glibmmEnums */
118 inline ParamFlags operator&(ParamFlags lhs, ParamFlags rhs)
119   { return static_cast<ParamFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
120 
121 /** @ingroup glibmmEnums */
122 inline ParamFlags operator^(ParamFlags lhs, ParamFlags rhs)
123   { return static_cast<ParamFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
124 
125 /** @ingroup glibmmEnums */
126 inline ParamFlags operator~(ParamFlags flags)
127   { return static_cast<ParamFlags>(~static_cast<unsigned>(flags)); }
128 
129 /** @ingroup glibmmEnums */
130 inline ParamFlags& operator|=(ParamFlags& lhs, ParamFlags rhs)
131   { return (lhs = static_cast<ParamFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
132 
133 /** @ingroup glibmmEnums */
134 inline ParamFlags& operator&=(ParamFlags& lhs, ParamFlags rhs)
135   { return (lhs = static_cast<ParamFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
136 
137 /** @ingroup glibmmEnums */
138 inline ParamFlags& operator^=(ParamFlags& lhs, ParamFlags rhs)
139   { return (lhs = static_cast<ParamFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
140 
141 
142 } //namespace Glib
143 
144 
145 #endif /* _GLIBMM_ENUMS_H */
146 
147