Merge branch 'blender-v2.93-release'
[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 #pragma once
18
19 /** \file
20  * \ingroup bke
21  */
22
23 #include <stdio.h>
24
25 #include "BLI_compiler_attrs.h"
26 #include "BLI_utildefines.h"
27 #include "DNA_windowmanager_types.h"
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 /* Reporting Information and Errors
34  *
35  * These functions also accept NULL in case no error reporting
36  * is needed. */
37
38 /* report structures are stored in DNA */
39
40 void BKE_reports_init(ReportList *reports, int flag);
41 void BKE_reports_clear(ReportList *reports);
42
43 void BKE_report(ReportList *reports, ReportType type, const char *message);
44 void BKE_reportf(ReportList *reports, ReportType type, const char *format, ...)
45     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