1/* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * 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 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 */
24
25#ifndef __GTK_DEBUG_H__
26#define __GTK_DEBUG_H__
27
28#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
29#error "Only <gtk/gtk.h> can be included directly."
30#endif
31
32#include <glib.h>
33#include <gdk/gdk.h>
34
35G_BEGIN_DECLS
36
37typedef enum {
38 GTK_DEBUG_MISC = 1 << 0,
39 GTK_DEBUG_PLUGSOCKET = 1 << 1,
40 GTK_DEBUG_TEXT = 1 << 2,
41 GTK_DEBUG_TREE = 1 << 3,
42 GTK_DEBUG_UPDATES = 1 << 4,
43 GTK_DEBUG_KEYBINDINGS = 1 << 5,
44 GTK_DEBUG_MULTIHEAD = 1 << 6,
45 GTK_DEBUG_MODULES = 1 << 7,
46 GTK_DEBUG_GEOMETRY = 1 << 8,
47 GTK_DEBUG_ICONTHEME = 1 << 9,
48 GTK_DEBUG_PRINTING = 1 << 10,
49 GTK_DEBUG_BUILDER = 1 << 11,
50 GTK_DEBUG_SIZE_REQUEST = 1 << 12,
51 GTK_DEBUG_NO_CSS_CACHE = 1 << 13,
52 GTK_DEBUG_BASELINES = 1 << 14,
53 GTK_DEBUG_PIXEL_CACHE = 1 << 15,
54 GTK_DEBUG_NO_PIXEL_CACHE = 1 << 16,
55 GTK_DEBUG_INTERACTIVE = 1 << 17,
56 GTK_DEBUG_TOUCHSCREEN = 1 << 18,
57 GTK_DEBUG_ACTIONS = 1 << 19,
58 GTK_DEBUG_RESIZE = 1 << 20,
59 GTK_DEBUG_LAYOUT = 1 << 21
60} GtkDebugFlag;
61
62#ifdef G_ENABLE_DEBUG
63
64#define GTK_DEBUG_CHECK(type) G_UNLIKELY (gtk_get_debug_flags () & GTK_DEBUG_##type)
65
66#define GTK_NOTE(type,action) G_STMT_START { \
67 if (GTK_DEBUG_CHECK (type)) \
68 { action; }; } G_STMT_END
69
70#else /* !G_ENABLE_DEBUG */
71
72#define GTK_DEBUG_CHECK(type) 0
73#define GTK_NOTE(type, action)
74
75#endif /* G_ENABLE_DEBUG */
76
77GDK_AVAILABLE_IN_ALL
78guint gtk_get_debug_flags (void);
79GDK_AVAILABLE_IN_ALL
80void gtk_set_debug_flags (guint flags);
81
82G_END_DECLS
83
84#endif /* __GTK_DEBUG_H__ */
85