Merge branch 'blender2.7'
[blender.git] / source / blender / blenkernel / BKE_report.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16
17 #ifndef __BKE_REPORT_H__
18 #define __BKE_REPORT_H__
19
20 /** \file
21  * \ingroup bke
22  */
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 #include <stdio.h>
29
30 #include "DNA_windowmanager_types.h"
31 #include "BLI_compiler_attrs.h"
32 #include "BLI_utildefines.h"
33
34 /* Reporting Information and Errors
35  *
36  * These functions also accept NULL in case no error reporting
37  * is needed. */
38
39 /* report structures are stored in DNA */
40
41 void BKE_reports_init(ReportList *reports, int flag);
42 void BKE_reports_clear(ReportList *reports);
43
44 void BKE_report(ReportList *reports, ReportType type, const char *message);
45 void BKE_reportf(ReportList *reports, ReportType type, const char *format, ...) ATTR_PRINTF_FORMAT(3, 4);
46
47 void BKE_reports_prepend(ReportList *reports, const char *prepend);
48 void BKE_reports_prependf(ReportList *reports, const char *prepend, ...) ATTR_PRINTF_FORMAT(2, 3);
49
50 ReportType BKE_report_print_level(ReportList *reports);
51 void BKE_report_print_level_set(ReportList *reports, ReportType level);
52
53 ReportType BKE_report_store_level(ReportList *reports);
54 void BKE_report_store_level_set(ReportList *reports, ReportType level);
55
56 char *BKE_reports_string(ReportList *reports, ReportType level);
57 void BKE_reports_print(ReportList *reports, ReportType level);
58
59 Report *BKE_reports_last_displayable(ReportList *reports);
60
61 bool BKE_reports_contain(ReportList *reports, ReportType level);
62
63 const char *BKE_report_type_str(ReportType type);
64
65 bool BKE_report_write_file_fp(FILE *fp, ReportList *reports, const char *header);
66 bool BKE_report_write_file(const char *filepath, ReportList *reports, const char *header);
67
68 #ifdef __cplusplus
69 }
70 #endif
71
72 #endif