gdkversionmacros.h.in 13.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/* gdkversionmacros.h - version boundaries checks
 * Copyright (C) 2012 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.▸ See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
15
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
 */

#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdk.h> can be included directly."
#endif

#ifndef __GDK_VERSION_MACROS_H__
#define __GDK_VERSION_MACROS_H__

#include <glib.h>

#define GDK_MAJOR_VERSION (@GTK_MAJOR_VERSION@)
#define GDK_MINOR_VERSION (@GTK_MINOR_VERSION@)
#define GDK_MICRO_VERSION (@GTK_MICRO_VERSION@)

31 32 33 34
#ifndef _GDK_EXTERN
#define _GDK_EXTERN extern
#endif

35 36 37 38 39 40 41 42
/**
 * GDK_DISABLE_DEPRECATION_WARNINGS:
 *
 * A macro that should be defined before including the gdk.h header.
 * If it is defined, no compiler warnings will be produced for uses
 * of deprecated GDK and GTK+ APIs.
 */

43
#ifdef GDK_DISABLE_DEPRECATION_WARNINGS
44 45 46
#define GDK_DEPRECATED _GDK_EXTERN
#define GDK_DEPRECATED_FOR(f) _GDK_EXTERN
#define GDK_UNAVAILABLE(maj,min) _GDK_EXTERN
47
#else
48 49 50
#define GDK_DEPRECATED G_DEPRECATED _GDK_EXTERN
#define GDK_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GDK_EXTERN
#define GDK_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GDK_EXTERN
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
#endif

/* XXX: Every new stable minor release bump should add a macro here */

/**
 * GDK_VERSION_3_0:
 *
 * A macro that evaluates to the 3.0 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.4
 */
#define GDK_VERSION_3_0         (G_ENCODE_VERSION (3, 0))

/**
 * GDK_VERSION_3_2:
 *
 * A macro that evaluates to the 3.2 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.4
 */
#define GDK_VERSION_3_2         (G_ENCODE_VERSION (3, 2))

/**
 * GDK_VERSION_3_4:
 *
 * A macro that evaluates to the 3.4 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.4
 */
#define GDK_VERSION_3_4         (G_ENCODE_VERSION (3, 4))

85 86 87 88 89 90 91 92 93 94
/**
 * GDK_VERSION_3_6:
 *
 * A macro that evaluates to the 3.6 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.6
 */
#define GDK_VERSION_3_6         (G_ENCODE_VERSION (3, 6))

Matthias Clasen's avatar
Matthias Clasen committed
95 96 97 98 99 100 101 102 103 104
/**
 * GDK_VERSION_3_8:
 *
 * A macro that evaluates to the 3.8 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.8
 */
#define GDK_VERSION_3_8         (G_ENCODE_VERSION (3, 8))

105 106 107 108 109 110 111 112 113 114
/**
 * GDK_VERSION_3_10:
 *
 * A macro that evaluates to the 3.10 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.10
 */
#define GDK_VERSION_3_10        (G_ENCODE_VERSION (3, 10))

115 116 117 118 119 120 121 122 123 124
/**
 * GDK_VERSION_3_12:
 *
 * A macro that evaluates to the 3.12 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.12
 */
#define GDK_VERSION_3_12        (G_ENCODE_VERSION (3, 12))

Matthias Clasen's avatar
Matthias Clasen committed
125 126 127 128 129 130 131 132 133
/**
 * GDK_VERSION_3_14:
 *
 * A macro that evaluates to the 3.14 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.14
 */
#define GDK_VERSION_3_14        (G_ENCODE_VERSION (3, 14))
134

135 136 137 138 139 140 141 142 143 144
/**
 * GDK_VERSION_3_16:
 *
 * A macro that evaluates to the 3.16 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.16
 */
#define GDK_VERSION_3_16        (G_ENCODE_VERSION (3, 16))

Matthias Clasen's avatar
Matthias Clasen committed
145 146 147 148 149 150 151 152 153 154
/**
 * GDK_VERSION_3_18:
 *
 * A macro that evaluates to the 3.18 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.18
 */
#define GDK_VERSION_3_18        (G_ENCODE_VERSION (3, 18))

155 156 157 158 159 160 161 162 163 164
/**
 * GDK_VERSION_3_20:
 *
 * A macro that evaluates to the 3.20 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.18
 */
#define GDK_VERSION_3_20        (G_ENCODE_VERSION (3, 20))

165 166 167 168 169 170 171 172 173 174
/**
 * GDK_VERSION_3_22:
 *
 * A macro that evaluates to the 3.22 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.20
 */
#define GDK_VERSION_3_22        (G_ENCODE_VERSION (3, 22))

Matthias Clasen's avatar
Matthias Clasen committed
175 176 177 178 179 180 181 182 183 184
/**
 * GDK_VERSION_3_24:
 *
 * A macro that evaluates to the 3.24 version of GDK, in a format
 * that can be used by the C pre-processor.
 *
 * Since: 3.24
 */
#define GDK_VERSION_3_24        (G_ENCODE_VERSION (3, 24))

185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
/* evaluates to the current stable version; for development cycles,
 * this means the next stable target
 */
#if (GDK_MINOR_VERSION % 2)
#define GDK_VERSION_CUR_STABLE         (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION + 1))
#else
#define GDK_VERSION_CUR_STABLE         (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION))
#endif

/* evaluates to the previous stable version */
#if (GDK_MINOR_VERSION % 2)
#define GDK_VERSION_PREV_STABLE        (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 1))
#else
#define GDK_VERSION_PREV_STABLE        (G_ENCODE_VERSION (GDK_MAJOR_VERSION, GDK_MINOR_VERSION - 2))
#endif

/**
 * GDK_VERSION_MIN_REQUIRED:
 *
 * A macro that should be defined by the user prior to including
 * the gdk.h header.
 * The definition should be one of the predefined GDK version
 * macros: %GDK_VERSION_3_0, %GDK_VERSION_3_2,...
 *
209
 * This macro defines the lower bound for the GDK API to use.
210 211 212 213 214 215 216 217
 *
 * If a function has been deprecated in a newer version of GDK,
 * it is possible to use this symbol to avoid the compiler warnings
 * without disabling warning for every deprecated function.
 *
 * Since: 3.4
 */
#ifndef GDK_VERSION_MIN_REQUIRED
218
# define GDK_VERSION_MIN_REQUIRED      (GDK_VERSION_CUR_STABLE)
219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
#endif

/**
 * GDK_VERSION_MAX_ALLOWED:
 *
 * A macro that should be defined by the user prior to including
 * the gdk.h header.
 * The definition should be one of the predefined GDK version
 * macros: %GDK_VERSION_3_0, %GDK_VERSION_3_2,...
 *
 * This macro defines the upper bound for the GDK API to use.
 *
 * If a function has been introduced in a newer version of GDK,
 * it is possible to use this symbol to get compiler warnings when
 * trying to use that function.
 *
 * Since: 3.4
 */
#ifndef GDK_VERSION_MAX_ALLOWED
# if GDK_VERSION_MIN_REQUIRED > GDK_VERSION_PREV_STABLE
#  define GDK_VERSION_MAX_ALLOWED      GDK_VERSION_MIN_REQUIRED
# else
#  define GDK_VERSION_MAX_ALLOWED      GDK_VERSION_CUR_STABLE
# endif
#endif

/* sanity checks */
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_MIN_REQUIRED
#error "GDK_VERSION_MAX_ALLOWED must be >= GDK_VERSION_MIN_REQUIRED"
#endif
#if GDK_VERSION_MIN_REQUIRED < GDK_VERSION_3_0
#error "GDK_VERSION_MIN_REQUIRED must be >= GDK_VERSION_3_0"
#endif

253
#define GDK_AVAILABLE_IN_ALL                  _GDK_EXTERN
254

255 256 257 258 259 260
/* XXX: Every new stable minor release should add a set of macros here */

#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_0
# define GDK_DEPRECATED_IN_3_0                GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_0_FOR(f)         GDK_DEPRECATED_FOR(f)
#else
261 262
# define GDK_DEPRECATED_IN_3_0                _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_0_FOR(f)         _GDK_EXTERN
263 264 265 266 267
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_0
# define GDK_AVAILABLE_IN_3_0                 GDK_UNAVAILABLE(3, 0)
#else
268
# define GDK_AVAILABLE_IN_3_0                 _GDK_EXTERN
269 270 271 272 273 274
#endif

#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_2
# define GDK_DEPRECATED_IN_3_2                GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_2_FOR(f)         GDK_DEPRECATED_FOR(f)
#else
275 276
# define GDK_DEPRECATED_IN_3_2                _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_2_FOR(f)         _GDK_EXTERN
277 278 279 280 281
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_2
# define GDK_AVAILABLE_IN_3_2                 GDK_UNAVAILABLE(3, 2)
#else
282
# define GDK_AVAILABLE_IN_3_2                 _GDK_EXTERN
283 284 285 286 287 288
#endif

#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_4
# define GDK_DEPRECATED_IN_3_4                GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_4_FOR(f)         GDK_DEPRECATED_FOR(f)
#else
289 290
# define GDK_DEPRECATED_IN_3_4                _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_4_FOR(f)         _GDK_EXTERN
291 292 293 294 295
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_4
# define GDK_AVAILABLE_IN_3_4                 GDK_UNAVAILABLE(3, 4)
#else
296
# define GDK_AVAILABLE_IN_3_4                 _GDK_EXTERN
297 298
#endif

299 300 301 302
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_6
# define GDK_DEPRECATED_IN_3_6                GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_6_FOR(f)         GDK_DEPRECATED_FOR(f)
#else
303 304
# define GDK_DEPRECATED_IN_3_6                _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_6_FOR(f)         _GDK_EXTERN
305 306 307 308 309
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_6
# define GDK_AVAILABLE_IN_3_6                 GDK_UNAVAILABLE(3, 6)
#else
310
# define GDK_AVAILABLE_IN_3_6                 _GDK_EXTERN
311 312
#endif

313 314 315 316
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_8
# define GDK_DEPRECATED_IN_3_8                GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_8_FOR(f)         GDK_DEPRECATED_FOR(f)
#else
317 318
# define GDK_DEPRECATED_IN_3_8                _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_8_FOR(f)         _GDK_EXTERN
319 320 321 322 323
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_8
# define GDK_AVAILABLE_IN_3_8                 GDK_UNAVAILABLE(3, 8)
#else
324
# define GDK_AVAILABLE_IN_3_8                 _GDK_EXTERN
325 326
#endif

327 328 329 330
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_10
# define GDK_DEPRECATED_IN_3_10               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_10_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
331 332
# define GDK_DEPRECATED_IN_3_10               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_10_FOR(f)        _GDK_EXTERN
333 334 335 336 337
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_10
# define GDK_AVAILABLE_IN_3_10                GDK_UNAVAILABLE(3, 10)
#else
338
# define GDK_AVAILABLE_IN_3_10                _GDK_EXTERN
339 340
#endif

341 342 343 344 345 346 347 348 349 350 351 352 353 354
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_12
# define GDK_DEPRECATED_IN_3_12               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_12_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_12               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_12_FOR(f)        _GDK_EXTERN
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_12
# define GDK_AVAILABLE_IN_3_12                GDK_UNAVAILABLE(3, 12)
#else
# define GDK_AVAILABLE_IN_3_12                _GDK_EXTERN
#endif

355 356 357 358 359 360 361 362 363 364 365 366 367 368
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_14
# define GDK_DEPRECATED_IN_3_14               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_14_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_14               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_14_FOR(f)        _GDK_EXTERN
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_14
# define GDK_AVAILABLE_IN_3_14                GDK_UNAVAILABLE(3, 14)
#else
# define GDK_AVAILABLE_IN_3_14                _GDK_EXTERN
#endif

369 370 371 372 373 374 375 376
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_16
# define GDK_DEPRECATED_IN_3_16               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_16_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_16               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_16_FOR(f)        _GDK_EXTERN
#endif

377 378 379 380 381 382
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_16
# define GDK_AVAILABLE_IN_3_16                GDK_UNAVAILABLE(3, 16)
#else
# define GDK_AVAILABLE_IN_3_16                _GDK_EXTERN
#endif

Matthias Clasen's avatar
Matthias Clasen committed
383 384 385 386 387 388 389 390 391 392 393 394 395 396
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_18
# define GDK_DEPRECATED_IN_3_18               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_18_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_18               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_18_FOR(f)        _GDK_EXTERN
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_18
# define GDK_AVAILABLE_IN_3_18                GDK_UNAVAILABLE(3, 18)
#else
# define GDK_AVAILABLE_IN_3_18                _GDK_EXTERN
#endif

397 398 399 400 401 402 403 404 405 406 407 408 409 410
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_20
# define GDK_DEPRECATED_IN_3_20               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_20_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_20               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_20_FOR(f)        _GDK_EXTERN
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_20
# define GDK_AVAILABLE_IN_3_20                GDK_UNAVAILABLE(3, 20)
#else
# define GDK_AVAILABLE_IN_3_20                _GDK_EXTERN
#endif

411 412 413 414 415 416 417 418 419 420 421 422 423 424
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_22
# define GDK_DEPRECATED_IN_3_22               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_22_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_22               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_22_FOR(f)        _GDK_EXTERN
#endif

#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_22
# define GDK_AVAILABLE_IN_3_22                GDK_UNAVAILABLE(3, 22)
#else
# define GDK_AVAILABLE_IN_3_22                _GDK_EXTERN
#endif

425 426 427 428 429 430 431 432
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_24
# define GDK_DEPRECATED_IN_3_24               GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_24_FOR(f)        GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_24               _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_24_FOR(f)        _GDK_EXTERN
#endif

Matthias Clasen's avatar
Matthias Clasen committed
433 434 435 436 437 438
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_24
# define GDK_AVAILABLE_IN_3_24                GDK_UNAVAILABLE(3, 24)
#else
# define GDK_AVAILABLE_IN_3_24                _GDK_EXTERN
#endif

439
#endif  /* __GDK_VERSION_MACROS_H__ */
440