~ubuntu-branches/ubuntu/jaunty/gimp/jaunty-security

« back to all changes in this revision

Viewing changes to app/config/gimpguiconfig.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mto: This revision was merged to the branch mainline in revision 12.
  • Revision ID: james.westby@ubuntu.com-20070502163303-6wchheivjxgjtlna
Tags: upstream-2.3.16
ImportĀ upstreamĀ versionĀ 2.3.16

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* The GIMP -- an image manipulation program
 
1
/* GIMP - The GNU Image Manipulation Program
2
2
 * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3
3
 *
4
4
 * GimpGuiConfig class
24
24
#include <glib-object.h>
25
25
 
26
26
#include "libgimpbase/gimpbase.h"
 
27
#include "libgimpconfig/gimpconfig.h"
27
28
 
28
29
#include "config-types.h"
29
30
 
30
 
#include "gimpconfig-params.h"
31
 
#include "gimpconfig-types.h"
32
 
#include "gimpconfig-utils.h"
33
 
 
34
31
#include "gimprc-blurbs.h"
35
32
#include "gimpguiconfig.h"
36
33
 
37
34
#include "gimp-intl.h"
38
35
 
39
36
 
40
 
#define DEFAULT_GIMP_HELP_BROWSER  GIMP_HELP_BROWSER_WEB_BROWSER
 
37
#define DEFAULT_GIMP_HELP_BROWSER  GIMP_HELP_BROWSER_GIMP
41
38
#define DEFAULT_THEME              "Default"
42
39
 
43
40
#ifdef G_OS_WIN32
44
41
#  define DEFAULT_WEB_BROWSER      "not used on Windows"
45
42
#else
46
 
#  define DEFAULT_WEB_BROWSER      "mozilla %s"
 
43
#  define DEFAULT_WEB_BROWSER      "firefox %s"
47
44
#endif
48
45
 
49
46
 
50
 
static void  gimp_gui_config_class_init   (GimpGuiConfigClass *klass);
51
 
static void  gimp_gui_config_finalize     (GObject            *object);
52
 
static void  gimp_gui_config_set_property (GObject            *object,
53
 
                                           guint               property_id,
54
 
                                           const GValue       *value,
55
 
                                           GParamSpec         *pspec);
56
 
static void  gimp_gui_config_get_property (GObject            *object,
57
 
                                           guint               property_id,
58
 
                                           GValue             *value,
59
 
                                           GParamSpec         *pspec);
60
 
 
61
47
enum
62
48
{
63
49
  PROP_0,
64
50
  PROP_DEFAULT_THRESHOLD,
65
51
  PROP_MOVE_TOOL_CHANGES_ACTIVE,
66
 
  PROP_INFO_WINDOW_PER_DISPLAY,
67
52
  PROP_TRUST_DIRTY_FLAG,
68
53
  PROP_SAVE_DEVICE_STATUS,
69
54
  PROP_SAVE_SESSION_INFO,
70
55
  PROP_RESTORE_SESSION,
 
56
  PROP_SAVE_TOOL_OPTIONS,
71
57
  PROP_SHOW_TIPS,
72
 
  PROP_SHOW_TOOL_TIPS,
 
58
  PROP_SHOW_TOOLTIPS,
73
59
  PROP_TEAROFF_MENUS,
74
60
  PROP_CAN_CHANGE_ACCELS,
75
61
  PROP_SAVE_ACCELS,
89
75
  PROP_WEB_BROWSER,
90
76
  PROP_TOOLBOX_WINDOW_HINT,
91
77
  PROP_DOCK_WINDOW_HINT,
92
 
  PROP_CURSOR_FORMAT
 
78
  PROP_TRANSIENT_DOCKS,
 
79
  PROP_CURSOR_FORMAT,
 
80
 
 
81
  /* ignored, only for backward compatibility: */
 
82
  PROP_INFO_WINDOW_PER_DISPLAY,
 
83
  PROP_SHOW_TOOL_TIPS
93
84
};
94
85
 
95
 
static GObjectClass *parent_class = NULL;
96
 
 
97
 
 
98
 
GType
99
 
gimp_gui_config_get_type (void)
100
 
{
101
 
  static GType config_type = 0;
102
 
 
103
 
  if (! config_type)
104
 
    {
105
 
      static const GTypeInfo config_info =
106
 
      {
107
 
        sizeof (GimpGuiConfigClass),
108
 
        NULL,           /* base_init      */
109
 
        NULL,           /* base_finalize  */
110
 
        (GClassInitFunc) gimp_gui_config_class_init,
111
 
        NULL,           /* class_finalize */
112
 
        NULL,           /* class_data     */
113
 
        sizeof (GimpGuiConfig),
114
 
        0,              /* n_preallocs    */
115
 
        NULL            /* instance_init  */
116
 
      };
117
 
 
118
 
      config_type = g_type_register_static (GIMP_TYPE_DISPLAY_CONFIG,
119
 
                                            "GimpGuiConfig",
120
 
                                            &config_info, 0);
121
 
    }
122
 
 
123
 
  return config_type;
124
 
}
 
86
 
 
87
static void   gimp_gui_config_finalize     (GObject      *object);
 
88
static void   gimp_gui_config_set_property (GObject      *object,
 
89
                                            guint         property_id,
 
90
                                            const GValue *value,
 
91
                                            GParamSpec   *pspec);
 
92
static void   gimp_gui_config_get_property (GObject      *object,
 
93
                                            guint         property_id,
 
94
                                            GValue       *value,
 
95
                                            GParamSpec   *pspec);
 
96
 
 
97
 
 
98
G_DEFINE_TYPE (GimpGuiConfig, gimp_gui_config, GIMP_TYPE_DISPLAY_CONFIG)
 
99
 
 
100
#define parent_class gimp_gui_config_parent_class
 
101
 
125
102
 
126
103
static void
127
104
gimp_gui_config_class_init (GimpGuiConfigClass *klass)
128
105
{
129
 
  GObjectClass *object_class;
130
 
 
131
 
  parent_class = g_type_class_peek_parent (klass);
132
 
 
133
 
  object_class = G_OBJECT_CLASS (klass);
 
106
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
107
  gchar        *path;
134
108
 
135
109
  object_class->finalize     = gimp_gui_config_finalize;
136
110
  object_class->set_property = gimp_gui_config_set_property;
139
113
  GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_DEFAULT_THRESHOLD,
140
114
                                "default-threshold", DEFAULT_THRESHOLD_BLURB,
141
115
                                0, 255, 15,
142
 
                                0);
 
116
                                GIMP_PARAM_STATIC_STRINGS);
143
117
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_MOVE_TOOL_CHANGES_ACTIVE,
144
118
                                    "move-tool-changes-active",
145
119
                                    MOVE_TOOL_CHANGES_ACTIVE_BLURB,
146
120
                                    FALSE,
147
 
                                    0);
148
 
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_INFO_WINDOW_PER_DISPLAY,
149
 
                                    "info-window-per-display",
150
 
                                    INFO_WINDOW_PER_DISPLAY_BLURB,
151
 
                                    FALSE,
152
 
                                    GIMP_PARAM_RESTART);
 
121
                                    GIMP_PARAM_STATIC_STRINGS);
153
122
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TRUST_DIRTY_FLAG,
154
123
                                    "trust-dirty-flag",
155
124
                                    TRUST_DIRTY_FLAG_BLURB,
156
125
                                    FALSE,
157
 
                                    0);
 
126
                                    GIMP_PARAM_STATIC_STRINGS);
158
127
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SAVE_DEVICE_STATUS,
159
128
                                    "save-device-status",
160
129
                                    SAVE_DEVICE_STATUS_BLURB,
161
130
                                    FALSE,
162
 
                                    0);
 
131
                                    GIMP_PARAM_STATIC_STRINGS);
163
132
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SAVE_SESSION_INFO,
164
133
                                    "save-session-info",
165
134
                                    SAVE_SESSION_INFO_BLURB,
166
135
                                    TRUE,
167
 
                                    0);
 
136
                                    GIMP_PARAM_STATIC_STRINGS);
168
137
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_RESTORE_SESSION,
169
138
                                    "restore-session", RESTORE_SESSION_BLURB,
170
139
                                    TRUE,
171
 
                                    0);
 
140
                                    GIMP_PARAM_STATIC_STRINGS);
 
141
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SAVE_TOOL_OPTIONS,
 
142
                                    "save-tool-options",
 
143
                                    SAVE_TOOL_OPTIONS_BLURB,
 
144
                                    FALSE,
 
145
                                    GIMP_PARAM_STATIC_STRINGS);
172
146
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TIPS,
173
147
                                    "show-tips", SHOW_TIPS_BLURB,
174
148
                                    TRUE,
175
 
                                    0);
176
 
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOL_TIPS,
177
 
                                    "show-tool-tips", SHOW_TOOL_TIPS_BLURB,
 
149
                                    GIMP_PARAM_STATIC_STRINGS);
 
150
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOLTIPS,
 
151
                                    "show-tooltips", SHOW_TOOLTIPS_BLURB,
178
152
                                    TRUE,
179
 
                                    0);
 
153
                                    GIMP_PARAM_STATIC_STRINGS);
180
154
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TEAROFF_MENUS,
181
155
                                    "tearoff-menus", TEAROFF_MENUS_BLURB,
182
156
                                    TRUE,
183
 
                                    0);
 
157
                                    GIMP_PARAM_STATIC_STRINGS);
184
158
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CAN_CHANGE_ACCELS,
185
159
                                    "can-change-accels", CAN_CHANGE_ACCELS_BLURB,
186
160
                                    FALSE,
187
 
                                    0);
 
161
                                    GIMP_PARAM_STATIC_STRINGS);
188
162
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SAVE_ACCELS,
189
163
                                    "save-accels", SAVE_ACCELS_BLURB,
190
164
                                    TRUE,
191
 
                                    0);
 
165
                                    GIMP_PARAM_STATIC_STRINGS);
192
166
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_RESTORE_ACCELS,
193
167
                                    "restore-accels", RESTORE_ACCELS_BLURB,
194
168
                                    TRUE,
195
 
                                    0);
 
169
                                    GIMP_PARAM_STATIC_STRINGS);
196
170
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_MENU_MNEMONICS,
197
171
                                    "menu-mnemonics", MENU_MNEMONICS_BLURB,
198
172
                                    TRUE,
199
 
                                    GIMP_PARAM_RESTART);
 
173
                                    GIMP_PARAM_STATIC_STRINGS |
 
174
                                    GIMP_CONFIG_PARAM_RESTART);
200
175
  GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_LAST_OPENED_SIZE,
201
176
                                "last-opened-size", LAST_OPENED_SIZE_BLURB,
202
177
                                0, 1024, 10,
203
 
                                GIMP_PARAM_RESTART);
 
178
                                GIMP_PARAM_STATIC_STRINGS |
 
179
                                GIMP_CONFIG_PARAM_RESTART);
204
180
  GIMP_CONFIG_INSTALL_PROP_MEMSIZE (object_class, PROP_MAX_NEW_IMAGE_SIZE,
205
181
                                    "max-new-image-size",
206
182
                                    MAX_NEW_IMAGE_SIZE_BLURB,
207
 
                                    0, GIMP_MAX_MEMSIZE, 1 << 26,
208
 
                                    0);
 
183
                                    0, GIMP_MAX_MEMSIZE, 1 << 27, /* 128MB */
 
184
                                    GIMP_PARAM_STATIC_STRINGS);
209
185
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TOOLBOX_COLOR_AREA,
210
186
                                    "toolbox-color-area",
211
187
                                    TOOLBOX_COLOR_AREA_BLURB,
212
 
                                    TRUE,
213
 
                                    0);
 
188
                                    FALSE,
 
189
                                    GIMP_PARAM_STATIC_STRINGS);
214
190
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TOOLBOX_FOO_AREA,
215
191
                                    "toolbox-foo-area",
216
192
                                    TOOLBOX_FOO_AREA_BLURB,
217
 
                                    TRUE,
218
 
                                    0);
 
193
                                    FALSE,
 
194
                                    GIMP_PARAM_STATIC_STRINGS);
219
195
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TOOLBOX_IMAGE_AREA,
220
196
                                    "toolbox-image-area",
221
197
                                    TOOLBOX_IMAGE_AREA_BLURB,
222
198
                                    FALSE,
223
 
                                    0);
 
199
                                    GIMP_PARAM_STATIC_STRINGS);
 
200
  path = gimp_config_build_data_path ("themes");
224
201
  GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_THEME_PATH,
225
202
                                 "theme-path", THEME_PATH_BLURB,
226
 
                                 GIMP_PARAM_PATH_DIR_LIST,
227
 
                                 gimp_config_build_data_path ("themes"),
228
 
                                 GIMP_PARAM_RESTART);
 
203
                                 GIMP_CONFIG_PATH_DIR_LIST, path,
 
204
                                 GIMP_PARAM_STATIC_STRINGS |
 
205
                                 GIMP_CONFIG_PARAM_RESTART);
 
206
  g_free (path);
229
207
  GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_THEME,
230
208
                                   "theme", THEME_BLURB,
231
209
                                   DEFAULT_THEME,
232
 
                                   0);
 
210
                                   GIMP_PARAM_STATIC_STRINGS);
233
211
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_HELP,
234
212
                                    "use-help", USE_HELP_BLURB,
235
213
                                    TRUE,
236
 
                                    0);
 
214
                                    GIMP_PARAM_STATIC_STRINGS);
237
215
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_HELP_BUTTON,
238
216
                                    "show-help-button", SHOW_HELP_BUTTON_BLURB,
239
217
                                    TRUE,
240
 
                                    0);
 
218
                                    GIMP_PARAM_STATIC_STRINGS);
241
219
  GIMP_CONFIG_INSTALL_PROP_STRING (object_class, PROP_HELP_LOCALES,
242
220
                                   "help-locales", HELP_LOCALES_BLURB,
243
221
                                   "",
244
 
                                   0);
 
222
                                   GIMP_PARAM_STATIC_STRINGS);
245
223
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_HELP_BROWSER,
246
224
                                 "help-browser", HELP_BROWSER_BLURB,
247
225
                                 GIMP_TYPE_HELP_BROWSER_TYPE,
248
226
                                 DEFAULT_GIMP_HELP_BROWSER,
249
 
                                 0);
 
227
                                 GIMP_PARAM_STATIC_STRINGS);
250
228
  GIMP_CONFIG_INSTALL_PROP_PATH (object_class, PROP_WEB_BROWSER,
251
229
                                 "web-browser", WEB_BROWSER_BLURB,
252
 
                                 GIMP_PARAM_PATH_FILE,
 
230
                                 GIMP_CONFIG_PATH_FILE,
253
231
                                 DEFAULT_WEB_BROWSER,
254
 
                                 0);
 
232
                                 GIMP_PARAM_STATIC_STRINGS);
255
233
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_TOOLBOX_WINDOW_HINT,
256
234
                                 "toolbox-window-hint",
257
235
                                 TOOLBOX_WINDOW_HINT_BLURB,
258
236
                                 GIMP_TYPE_WINDOW_HINT,
259
237
                                 GIMP_WINDOW_HINT_NORMAL,
260
 
                                 GIMP_PARAM_RESTART);
 
238
                                 GIMP_PARAM_STATIC_STRINGS |
 
239
                                 GIMP_CONFIG_PARAM_RESTART);
261
240
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_DOCK_WINDOW_HINT,
262
241
                                 "dock-window-hint",
263
242
                                 DOCK_WINDOW_HINT_BLURB,
264
243
                                 GIMP_TYPE_WINDOW_HINT,
265
244
                                 GIMP_WINDOW_HINT_NORMAL,
266
 
                                 GIMP_PARAM_RESTART);
 
245
                                 GIMP_PARAM_STATIC_STRINGS |
 
246
                                 GIMP_CONFIG_PARAM_RESTART);
 
247
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TRANSIENT_DOCKS,
 
248
                                    "transient-docks", TRANSIENT_DOCKS_BLURB,
 
249
                                    FALSE,
 
250
                                    GIMP_PARAM_STATIC_STRINGS);
267
251
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_CURSOR_FORMAT,
268
252
                                 "cursor-format", CURSOR_FORMAT_BLURB,
269
253
                                 GIMP_TYPE_CURSOR_FORMAT,
270
254
                                 GIMP_CURSOR_FORMAT_PIXBUF,
271
 
                                 0);
 
255
                                 GIMP_PARAM_STATIC_STRINGS);
 
256
 
 
257
  /*  only for backward compatibility:  */
 
258
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_INFO_WINDOW_PER_DISPLAY,
 
259
                                    "info-window-per-display",
 
260
                                    NULL,
 
261
                                    FALSE,
 
262
                                    GIMP_PARAM_STATIC_STRINGS |
 
263
                                    GIMP_CONFIG_PARAM_IGNORE);
 
264
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOL_TIPS,
 
265
                                    "show-tool-tips", NULL,
 
266
                                    TRUE,
 
267
                                    GIMP_PARAM_STATIC_STRINGS |
 
268
                                    GIMP_CONFIG_PARAM_IGNORE);
 
269
}
 
270
 
 
271
static void
 
272
gimp_gui_config_init (GimpGuiConfig *config)
 
273
{
272
274
}
273
275
 
274
276
static void
300
302
    case PROP_MOVE_TOOL_CHANGES_ACTIVE:
301
303
      gui_config->move_tool_changes_active = g_value_get_boolean (value);
302
304
      break;
303
 
    case PROP_INFO_WINDOW_PER_DISPLAY:
304
 
      gui_config->info_window_per_display = g_value_get_boolean (value);
305
 
      break;
306
305
    case PROP_TRUST_DIRTY_FLAG:
307
306
      gui_config->trust_dirty_flag = g_value_get_boolean (value);
308
307
      break;
315
314
    case PROP_RESTORE_SESSION:
316
315
      gui_config->restore_session = g_value_get_boolean (value);
317
316
      break;
 
317
    case PROP_SAVE_TOOL_OPTIONS:
 
318
      gui_config->save_tool_options = g_value_get_boolean (value);
 
319
      break;
318
320
    case PROP_SHOW_TIPS:
319
321
      gui_config->show_tips = g_value_get_boolean (value);
320
322
      break;
321
 
    case PROP_SHOW_TOOL_TIPS:
322
 
      gui_config->show_tool_tips = g_value_get_boolean (value);
 
323
    case PROP_SHOW_TOOLTIPS:
 
324
      gui_config->show_tooltips = g_value_get_boolean (value);
323
325
      break;
324
326
    case PROP_TEAROFF_MENUS:
325
327
      gui_config->tearoff_menus = g_value_get_boolean (value);
382
384
    case PROP_DOCK_WINDOW_HINT:
383
385
      gui_config->dock_window_hint = g_value_get_enum (value);
384
386
      break;
 
387
    case PROP_TRANSIENT_DOCKS:
 
388
      gui_config->transient_docks = g_value_get_boolean (value);
 
389
      break;
385
390
    case PROP_CURSOR_FORMAT:
386
391
      gui_config->cursor_format = g_value_get_enum (value);
387
392
      break;
388
393
 
 
394
    case PROP_INFO_WINDOW_PER_DISPLAY:
 
395
    case PROP_SHOW_TOOL_TIPS:
 
396
      /* ignored */
 
397
      break;
 
398
 
389
399
    default:
390
400
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
391
401
      break;
408
418
    case PROP_MOVE_TOOL_CHANGES_ACTIVE:
409
419
      g_value_set_boolean (value, gui_config->move_tool_changes_active);
410
420
      break;
411
 
    case PROP_INFO_WINDOW_PER_DISPLAY:
412
 
      g_value_set_boolean (value, gui_config->info_window_per_display);
413
 
      break;
414
421
    case PROP_TRUST_DIRTY_FLAG:
415
422
      g_value_set_boolean (value, gui_config->trust_dirty_flag);
416
423
      break;
423
430
    case PROP_RESTORE_SESSION:
424
431
      g_value_set_boolean (value, gui_config->restore_session);
425
432
      break;
 
433
    case PROP_SAVE_TOOL_OPTIONS:
 
434
      g_value_set_boolean (value, gui_config->save_tool_options);
 
435
      break;
426
436
    case PROP_SHOW_TIPS:
427
437
      g_value_set_boolean (value, gui_config->show_tips);
428
438
      break;
429
 
    case PROP_SHOW_TOOL_TIPS:
430
 
      g_value_set_boolean (value, gui_config->show_tool_tips);
 
439
    case PROP_SHOW_TOOLTIPS:
 
440
      g_value_set_boolean (value, gui_config->show_tooltips);
431
441
      break;
432
442
    case PROP_TEAROFF_MENUS:
433
443
      g_value_set_boolean (value, gui_config->tearoff_menus);
486
496
    case PROP_DOCK_WINDOW_HINT:
487
497
      g_value_set_enum (value, gui_config->dock_window_hint);
488
498
      break;
 
499
    case PROP_TRANSIENT_DOCKS:
 
500
      g_value_set_boolean (value, gui_config->transient_docks);
 
501
      break;
489
502
    case PROP_CURSOR_FORMAT:
490
503
      g_value_set_enum (value, gui_config->cursor_format);
491
504
      break;
492
505
 
 
506
    case PROP_INFO_WINDOW_PER_DISPLAY:
 
507
    case PROP_SHOW_TOOL_TIPS:
 
508
      /* ignored */
 
509
      break;
 
510
 
493
511
    default:
494
512
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
495
513
      break;