]> www.fi.muni.cz Git - evince.git/blob - libdocument/ev-debug.h
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / libdocument / ev-debug.h
1 /*
2  * ev-debug.h
3  * This file is part of Evince
4  *
5  * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
6  * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
7  * Copyright (C) 2002 - 2005 Paolo Maggi  
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program 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
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
22  * Boston, MA 02110-1301, USA.
23  */
24  
25 /*
26  * Modified by the gedit Team, 1998-2005. See the AUTHORS file for a 
27  * list of people on the gedit Team.  
28  * See the ChangeLog files for a list of changes.
29  *
30  * $Id: gedit-debug.h 4809 2006-04-08 14:46:31Z pborelli $
31  */
32
33 /* Modified by Evince Team */
34
35 #if !defined (EVINCE_COMPILATION)
36 #error "This is a private header."
37 #endif
38
39 #ifndef __EV_DEBUG_H__
40 #define __EV_DEBUG_H__
41
42 #include <glib-object.h>
43
44 #define EV_GET_TYPE_NAME(instance) g_type_name_from_instance ((gpointer)instance)
45
46 #ifndef EV_ENABLE_DEBUG
47
48 #define _ev_debug_init()
49 #define _ev_debug_shutdown()
50 #if defined(G_HAVE_GNUC_VARARGS)
51 #define ev_debug_message(section, format, args...) G_STMT_START { } G_STMT_END
52 #define ev_profiler_start(format, args...) G_STMT_START { } G_STMT_END
53 #define ev_profiler_stop(format, args...) G_STMT_START { } G_STMT_END
54 #elif defined(G_HAVE_ISO_VARARGS)
55 #define ev_debug_message(...) G_STMT_START { } G_STMT_END
56 #define ev_profiler_start(...) G_STMT_START { } G_STMT_END
57 #define ev_profiler_stop(...) G_STMT_START { } G_STMT_END
58 #else /* no varargs macros */
59 static void ev_debug_message(EvDebugSection section, const gchar *file, gint line, const gchar *function, const gchar *format, ...) {}
60 static void ev_profiler_start(EvProfileSection section, const gchar *format, ...) {}
61 static void ev_profiler_stop(EvProfileSection section, const gchar *format, ...) {}
62 #endif
63
64 #else /* ENABLE_DEBUG */
65
66 G_BEGIN_DECLS
67
68 /*
69  * Set an environmental var of the same name to turn on
70  * debugging output. Setting EV_DEBUG will turn on all
71  * sections.
72  */
73 typedef enum {
74         EV_NO_DEBUG          = 0,
75         EV_DEBUG_JOBS        = 1 << 0
76 } EvDebugSection;
77
78 #define DEBUG_JOBS      EV_DEBUG_JOBS,    __FILE__, __LINE__, G_STRFUNC
79
80 /*
81  * Set an environmental var of the same name to turn on
82  * profiling. Setting EV_PROFILE will turn on all
83  * sections.
84  */
85 typedef enum {
86         EV_NO_PROFILE   = 0,
87         EV_PROFILE_JOBS = 1 << 0
88 } EvProfileSection;
89
90 void _ev_debug_init     (void);
91 void _ev_debug_shutdown (void);
92
93 void ev_debug_message  (EvDebugSection   section,
94                         const gchar     *file,
95                         gint             line,
96                         const gchar     *function,
97                         const gchar     *format, ...) G_GNUC_PRINTF(5, 6);
98 void ev_profiler_start (EvProfileSection section,
99                         const gchar     *format, ...) G_GNUC_PRINTF(2, 3);
100 void ev_profiler_stop  (EvProfileSection section,
101                         const gchar     *format, ...) G_GNUC_PRINTF(2, 3);
102
103 G_END_DECLS
104
105 #endif /* EV_ENABLE_DEBUG */
106 #endif /* __EV_DEBUG_H__ */