1 /* GIMP - The GNU Image Manipulation Program
2  * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3  *
4  * GimpCoreConfig class
5  * Copyright (C) 2001  Sven Neumann <sven@gimp.org>
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef __GIMP_CORE_CONFIG_H__
22 #define __GIMP_CORE_CONFIG_H__
23 
24 #include "operations/operations-enums.h"
25 #include "core/core-enums.h"
26 
27 #include "config/gimpgeglconfig.h"
28 
29 
30 #define GIMP_TYPE_CORE_CONFIG            (gimp_core_config_get_type ())
31 #define GIMP_CORE_CONFIG(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_CORE_CONFIG, GimpCoreConfig))
32 #define GIMP_CORE_CONFIG_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_CORE_CONFIG, GimpCoreConfigClass))
33 #define GIMP_IS_CORE_CONFIG(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_CORE_CONFIG))
34 #define GIMP_IS_CORE_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_CORE_CONFIG))
35 
36 
37 typedef struct _GimpCoreConfigClass GimpCoreConfigClass;
38 
39 struct _GimpCoreConfig
40 {
41   GimpGeglConfig          parent_instance;
42 
43   gchar                  *language;
44   GimpInterpolationType   interpolation_type;
45   gint                    default_threshold;
46   gchar                  *plug_in_path;
47   gchar                  *module_path;
48   gchar                  *interpreter_path;
49   gchar                  *environ_path;
50   gchar                  *brush_path;
51   gchar                  *brush_path_writable;
52   gchar                  *dynamics_path;
53   gchar                  *dynamics_path_writable;
54   gchar                  *mypaint_brush_path;
55   gchar                  *mypaint_brush_path_writable;
56   gchar                  *pattern_path;
57   gchar                  *pattern_path_writable;
58   gchar                  *palette_path;
59   gchar                  *palette_path_writable;
60   gchar                  *gradient_path;
61   gchar                  *gradient_path_writable;
62   gchar                  *tool_preset_path;
63   gchar                  *tool_preset_path_writable;
64   gchar                  *font_path;
65   gchar                  *font_path_writable;  /*  unused  */
66   gchar                  *default_brush;
67   gchar                  *default_dynamics;
68   gchar                  *default_mypaint_brush;
69   gchar                  *default_pattern;
70   gchar                  *default_palette;
71   gchar                  *default_tool_preset;
72   gchar                  *default_gradient;
73   gchar                  *default_font;
74   gboolean                global_brush;
75   gboolean                global_dynamics;
76   gboolean                global_pattern;
77   gboolean                global_palette;
78   gboolean                global_gradient;
79   gboolean                global_font;
80   GimpTemplate           *default_image;
81   GimpGrid               *default_grid;
82   gint                    levels_of_undo;
83   guint64                 undo_size;
84   GimpViewSize            undo_preview_size;
85   gint                    filter_history_size;
86   gchar                  *plug_in_rc_path;
87   gboolean                layer_previews;
88   gboolean                group_layer_previews;
89   GimpViewSize            layer_preview_size;
90   GimpThumbnailSize       thumbnail_size;
91   guint64                 thumbnail_filesize_limit;
92   GimpColorConfig        *color_management;
93   gboolean                save_document_history;
94   GimpRGB                 quick_mask_color;
95   gboolean                import_promote_float;
96   gboolean                import_promote_dither;
97   gboolean                import_add_alpha;
98   gchar                  *import_raw_plug_in;
99   GimpExportFileType      export_file_type;
100   gboolean                export_color_profile;
101   gboolean                export_metadata_exif;
102   gboolean                export_metadata_xmp;
103   gboolean                export_metadata_iptc;
104   GimpDebugPolicy         debug_policy;
105 
106   gboolean                check_updates;
107   gint64                  check_update_timestamp;
108   gchar                  *last_known_release;
109   gint64                  last_release_timestamp;
110   gchar                  *last_release_comment;
111   gint                    last_revision;
112 };
113 
114 struct _GimpCoreConfigClass
115 {
116   GimpGeglConfigClass  parent_class;
117 };
118 
119 
120 GType  gimp_core_config_get_type (void) G_GNUC_CONST;
121 
122 
123 #endif /* GIMP_CORE_CONFIG_H__ */
124