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

« back to all changes in this revision

Viewing changes to app/paint/gimppaintoptions.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Holbach
  • Date: 2007-05-02 16:33:03 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070502163303-bvzhjzbpw8qglc4y
Tags: 2.3.16-1ubuntu1
* Resynchronized with Debian, remaining Ubuntu changes:
  - debian/rules: i18n magic.
* debian/control.in:
  - Maintainer: Ubuntu Core Developers <ubuntu-devel@lists.ubuntu.com>
* debian/patches/02_help-message.patch,
  debian/patches/03_gimp.desktop.in.in.patch,
  debian/patches/10_dont_show_wizard.patch: updated.
* debian/patches/04_composite-signedness.patch,
  debian/patches/05_add-letter-spacing.patch: dropped, used upstream.

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-1999 Spencer Kimball and Peter Mattis
3
3
 *
4
4
 * This program is free software; you can redistribute it and/or modify
21
21
#include <glib-object.h>
22
22
 
23
23
#include "libgimpbase/gimpbase.h"
 
24
#include "libgimpmath/gimpmath.h"
 
25
#include "libgimpconfig/gimpconfig.h"
24
26
 
25
27
#include "paint-types.h"
26
28
 
27
 
#include "config/gimpconfig.h"
28
 
#include "config/gimpconfig-params.h"
29
 
 
30
29
#include "core/gimp.h"
31
30
#include "core/gimpimage.h"
32
31
#include "core/gimpgradient.h"
35
34
#include "gimppaintoptions.h"
36
35
 
37
36
 
38
 
#define DEFAULT_APPLICATION_MODE  GIMP_PAINT_CONSTANT
39
 
#define DEFAULT_HARD              FALSE
40
 
 
41
 
#define DEFAULT_PRESSURE_OPACITY  TRUE
42
 
#define DEFAULT_PRESSURE_HARDNESS FALSE
43
 
#define DEFAULT_PRESSURE_RATE     FALSE
44
 
#define DEFAULT_PRESSURE_SIZE     FALSE
45
 
#define DEFAULT_PRESSURE_COLOR    FALSE
46
 
 
47
 
#define DEFAULT_USE_FADE          FALSE
48
 
#define DEFAULT_FADE_LENGTH       100.0
49
 
#define DEFAULT_FADE_UNIT         GIMP_UNIT_PIXEL
50
 
 
51
 
#define DEFAULT_USE_GRADIENT      FALSE
52
 
#define DEFAULT_GRADIENT_REVERSE  FALSE
53
 
#define DEFAULT_GRADIENT_REPEAT   GIMP_REPEAT_TRIANGULAR
54
 
#define DEFAULT_GRADIENT_LENGTH   100.0
55
 
#define DEFAULT_GRADIENT_UNIT     GIMP_UNIT_PIXEL
 
37
#define DEFAULT_BRUSH_SCALE           1.0
 
38
#define DEFAULT_APPLICATION_MODE      GIMP_PAINT_CONSTANT
 
39
#define DEFAULT_HARD                  FALSE
 
40
 
 
41
#define DEFAULT_PRESSURE_EXPANDED     FALSE
 
42
#define DEFAULT_PRESSURE_OPACITY      TRUE
 
43
#define DEFAULT_PRESSURE_HARDNESS     FALSE
 
44
#define DEFAULT_PRESSURE_RATE         FALSE
 
45
#define DEFAULT_PRESSURE_SIZE         FALSE
 
46
#define DEFAULT_PRESSURE_INVERSE_SIZE FALSE
 
47
#define DEFAULT_PRESSURE_COLOR        FALSE
 
48
 
 
49
#define DEFAULT_USE_FADE              FALSE
 
50
#define DEFAULT_FADE_LENGTH           100.0
 
51
#define DEFAULT_FADE_UNIT             GIMP_UNIT_PIXEL
 
52
 
 
53
#define DEFAULT_USE_JITTER            FALSE
 
54
#define DEFAULT_JITTER_AMOUNT         0.2
 
55
 
 
56
#define DEFAULT_USE_GRADIENT          FALSE
 
57
#define DEFAULT_GRADIENT_REVERSE      FALSE
 
58
#define DEFAULT_GRADIENT_REPEAT       GIMP_REPEAT_TRIANGULAR
 
59
#define DEFAULT_GRADIENT_LENGTH       100.0
 
60
#define DEFAULT_GRADIENT_UNIT         GIMP_UNIT_PIXEL
56
61
 
57
62
 
58
63
enum
59
64
{
60
65
  PROP_0,
61
66
  PROP_PAINT_INFO,
 
67
  PROP_BRUSH_SCALE,
62
68
  PROP_APPLICATION_MODE,
63
69
  PROP_HARD,
 
70
  PROP_PRESSURE_EXPANDED,
64
71
  PROP_PRESSURE_OPACITY,
65
72
  PROP_PRESSURE_HARDNESS,
66
73
  PROP_PRESSURE_RATE,
67
74
  PROP_PRESSURE_SIZE,
 
75
  PROP_PRESSURE_INVERSE_SIZE,
68
76
  PROP_PRESSURE_COLOR,
69
77
  PROP_USE_FADE,
70
78
  PROP_FADE_LENGTH,
73
81
  PROP_GRADIENT_REVERSE,
74
82
  PROP_GRADIENT_REPEAT,
75
83
  PROP_GRADIENT_LENGTH,
76
 
  PROP_GRADIENT_UNIT
 
84
  PROP_GRADIENT_UNIT,
 
85
  PROP_USE_JITTER,
 
86
  PROP_JITTER_AMOUNT,
 
87
 
 
88
  PROP_BRUSH_VIEW_TYPE,
 
89
  PROP_BRUSH_VIEW_SIZE,
 
90
  PROP_PATTERN_VIEW_TYPE,
 
91
  PROP_PATTERN_VIEW_SIZE,
 
92
  PROP_GRADIENT_VIEW_TYPE,
 
93
  PROP_GRADIENT_VIEW_SIZE
77
94
};
78
95
 
79
96
 
80
 
static void   gimp_paint_options_init         (GimpPaintOptions      *options);
81
 
static void   gimp_paint_options_class_init   (GimpPaintOptionsClass *klass);
82
 
 
83
 
static void   gimp_paint_options_finalize     (GObject         *object);
84
 
static void   gimp_paint_options_set_property (GObject         *object,
85
 
                                               guint            property_id,
86
 
                                               const GValue    *value,
87
 
                                               GParamSpec      *pspec);
88
 
static void   gimp_paint_options_get_property (GObject         *object,
89
 
                                               guint            property_id,
90
 
                                               GValue          *value,
91
 
                                               GParamSpec      *pspec);
92
 
static void   gimp_paint_options_notify       (GObject         *object,
93
 
                                               GParamSpec      *pspec);
94
 
 
95
 
 
96
 
static GimpToolOptionsClass *parent_class = NULL;
97
 
 
98
 
 
99
 
GType
100
 
gimp_paint_options_get_type (void)
101
 
{
102
 
  static GType type = 0;
103
 
 
104
 
  if (! type)
105
 
    {
106
 
      static const GTypeInfo info =
107
 
      {
108
 
        sizeof (GimpPaintOptionsClass),
109
 
        (GBaseInitFunc) NULL,
110
 
        (GBaseFinalizeFunc) NULL,
111
 
        (GClassInitFunc) gimp_paint_options_class_init,
112
 
        NULL,           /* class_finalize */
113
 
        NULL,           /* class_data     */
114
 
        sizeof (GimpPaintOptions),
115
 
        0,              /* n_preallocs    */
116
 
        (GInstanceInitFunc) gimp_paint_options_init,
117
 
      };
118
 
 
119
 
      type = g_type_register_static (GIMP_TYPE_TOOL_OPTIONS,
120
 
                                     "GimpPaintOptions",
121
 
                                     &info, 0);
122
 
    }
123
 
 
124
 
  return type;
125
 
}
 
97
static void   gimp_paint_options_finalize     (GObject      *object);
 
98
static void   gimp_paint_options_set_property (GObject      *object,
 
99
                                               guint         property_id,
 
100
                                               const GValue *value,
 
101
                                               GParamSpec   *pspec);
 
102
static void   gimp_paint_options_get_property (GObject      *object,
 
103
                                               guint         property_id,
 
104
                                               GValue       *value,
 
105
                                               GParamSpec   *pspec);
 
106
static void   gimp_paint_options_notify       (GObject      *object,
 
107
                                               GParamSpec   *pspec);
 
108
 
 
109
 
 
110
G_DEFINE_TYPE (GimpPaintOptions, gimp_paint_options,
 
111
               GIMP_TYPE_TOOL_OPTIONS)
 
112
 
 
113
#define parent_class gimp_paint_options_parent_class
 
114
 
126
115
 
127
116
static void
128
117
gimp_paint_options_class_init (GimpPaintOptionsClass *klass)
129
118
{
130
119
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
131
120
 
132
 
  parent_class = g_type_class_peek_parent (klass);
133
 
 
134
121
  object_class->finalize     = gimp_paint_options_finalize;
135
122
  object_class->set_property = gimp_paint_options_set_property;
136
123
  object_class->get_property = gimp_paint_options_get_property;
140
127
                                   g_param_spec_object ("paint-info",
141
128
                                                        NULL, NULL,
142
129
                                                        GIMP_TYPE_PAINT_INFO,
143
 
                                                        G_PARAM_READWRITE |
 
130
                                                        GIMP_PARAM_READWRITE |
144
131
                                                        G_PARAM_CONSTRUCT_ONLY));
145
132
 
 
133
  GIMP_CONFIG_INSTALL_PROP_DOUBLE (object_class, PROP_BRUSH_SCALE,
 
134
                                   "brush-scale", NULL,
 
135
                                   0.01, 10.0, DEFAULT_BRUSH_SCALE,
 
136
                                   GIMP_PARAM_STATIC_STRINGS);
146
137
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_APPLICATION_MODE,
147
138
                                 "application-mode", NULL,
148
139
                                 GIMP_TYPE_PAINT_APPLICATION_MODE,
149
140
                                 DEFAULT_APPLICATION_MODE,
150
 
                                 0);
 
141
                                 GIMP_PARAM_STATIC_STRINGS);
151
142
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_HARD,
152
143
                                    "hard", NULL,
153
144
                                    DEFAULT_HARD,
154
 
                                    0);
 
145
                                    GIMP_PARAM_STATIC_STRINGS);
155
146
 
 
147
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_EXPANDED,
 
148
                                    "pressure-expanded", NULL,
 
149
                                    DEFAULT_PRESSURE_EXPANDED,
 
150
                                    GIMP_PARAM_STATIC_STRINGS);
156
151
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_OPACITY,
157
152
                                    "pressure-opacity", NULL,
158
153
                                    DEFAULT_PRESSURE_OPACITY,
159
 
                                    0);
 
154
                                    GIMP_PARAM_STATIC_STRINGS);
160
155
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_HARDNESS,
161
156
                                    "pressure-hardness", NULL,
162
157
                                    DEFAULT_PRESSURE_HARDNESS,
163
 
                                    0);
 
158
                                    GIMP_PARAM_STATIC_STRINGS);
164
159
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_RATE,
165
160
                                    "pressure-rate", NULL,
166
161
                                    DEFAULT_PRESSURE_RATE,
167
 
                                    0);
 
162
                                    GIMP_PARAM_STATIC_STRINGS);
168
163
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_SIZE,
169
164
                                    "pressure-size", NULL,
170
165
                                    DEFAULT_PRESSURE_SIZE,
171
 
                                    0);
 
166
                                    GIMP_PARAM_STATIC_STRINGS);
172
167
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_COLOR,
173
168
                                    "pressure-color", NULL,
174
169
                                    DEFAULT_PRESSURE_COLOR,
175
 
                                    0);
 
170
                                    GIMP_PARAM_STATIC_STRINGS);
 
171
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_PRESSURE_INVERSE_SIZE,
 
172
                                    "pressure-inverse-size", NULL,
 
173
                                    DEFAULT_PRESSURE_INVERSE_SIZE,
 
174
                                    GIMP_PARAM_STATIC_STRINGS);
176
175
 
177
176
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_FADE,
178
177
                                    "use-fade", NULL,
179
178
                                    DEFAULT_USE_FADE,
180
 
                                    0);
 
179
                                    GIMP_PARAM_STATIC_STRINGS);
181
180
  GIMP_CONFIG_INSTALL_PROP_DOUBLE (object_class, PROP_FADE_LENGTH,
182
181
                                   "fade-length", NULL,
183
182
                                   0.0, 32767.0, DEFAULT_FADE_LENGTH,
184
 
                                   0);
 
183
                                   GIMP_PARAM_STATIC_STRINGS);
185
184
  GIMP_CONFIG_INSTALL_PROP_UNIT (object_class, PROP_FADE_UNIT,
186
185
                                 "fade-unit", NULL,
187
186
                                 TRUE, TRUE, DEFAULT_FADE_UNIT,
188
 
                                 0);
 
187
                                 GIMP_PARAM_STATIC_STRINGS);
 
188
 
 
189
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_JITTER,
 
190
                                    "use-jitter", NULL,
 
191
                                    DEFAULT_USE_JITTER,
 
192
                                    GIMP_PARAM_STATIC_STRINGS);
 
193
  GIMP_CONFIG_INSTALL_PROP_DOUBLE (object_class, PROP_JITTER_AMOUNT,
 
194
                                   "jitter-amount", NULL,
 
195
                                   0.0, 50.0, DEFAULT_JITTER_AMOUNT,
 
196
                                   GIMP_PARAM_STATIC_STRINGS);
189
197
 
190
198
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_USE_GRADIENT,
191
199
                                    "use-gradient", NULL,
192
 
                                    DEFAULT_USE_GRADIENT, 0);
 
200
                                    DEFAULT_USE_GRADIENT,
 
201
                                    GIMP_PARAM_STATIC_STRINGS);
193
202
  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_GRADIENT_REVERSE,
194
203
                                    "gradient-reverse", NULL,
195
 
                                    DEFAULT_GRADIENT_REVERSE, 0);
 
204
                                    DEFAULT_GRADIENT_REVERSE,
 
205
                                    GIMP_PARAM_STATIC_STRINGS);
196
206
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_GRADIENT_REPEAT,
197
207
                                 "gradient-repeat", NULL,
198
208
                                 GIMP_TYPE_REPEAT_MODE,
199
209
                                 DEFAULT_GRADIENT_REPEAT,
200
 
                                 0);
 
210
                                 GIMP_PARAM_STATIC_STRINGS);
201
211
  GIMP_CONFIG_INSTALL_PROP_DOUBLE (object_class, PROP_GRADIENT_LENGTH,
202
212
                                   "gradient-length", NULL,
203
213
                                   0.0, 32767.0, DEFAULT_GRADIENT_LENGTH,
204
 
                                   0);
 
214
                                   GIMP_PARAM_STATIC_STRINGS);
205
215
  GIMP_CONFIG_INSTALL_PROP_UNIT (object_class, PROP_GRADIENT_UNIT,
206
216
                                 "gradient-unit", NULL,
207
217
                                 TRUE, TRUE, DEFAULT_GRADIENT_UNIT,
208
 
                                 0);
 
218
                                 GIMP_PARAM_STATIC_STRINGS);
 
219
 
 
220
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_BRUSH_VIEW_TYPE,
 
221
                                 "brush-view-type", NULL,
 
222
                                 GIMP_TYPE_VIEW_TYPE,
 
223
                                 GIMP_VIEW_TYPE_GRID,
 
224
                                 GIMP_PARAM_STATIC_STRINGS);
 
225
  GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_BRUSH_VIEW_SIZE,
 
226
                                "brush-view-size", NULL,
 
227
                                GIMP_VIEW_SIZE_TINY,
 
228
                                GIMP_VIEWABLE_MAX_BUTTON_SIZE,
 
229
                                GIMP_VIEW_SIZE_SMALL,
 
230
                                GIMP_PARAM_STATIC_STRINGS);
 
231
 
 
232
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_PATTERN_VIEW_TYPE,
 
233
                                 "pattern-view-type", NULL,
 
234
                                 GIMP_TYPE_VIEW_TYPE,
 
235
                                 GIMP_VIEW_TYPE_GRID,
 
236
                                 GIMP_PARAM_STATIC_STRINGS);
 
237
  GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_PATTERN_VIEW_SIZE,
 
238
                                "pattern-view-size", NULL,
 
239
                                GIMP_VIEW_SIZE_TINY,
 
240
                                GIMP_VIEWABLE_MAX_BUTTON_SIZE,
 
241
                                GIMP_VIEW_SIZE_SMALL,
 
242
                                GIMP_PARAM_STATIC_STRINGS);
 
243
 
 
244
  GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_GRADIENT_VIEW_TYPE,
 
245
                                 "gradient-view-type", NULL,
 
246
                                 GIMP_TYPE_VIEW_TYPE,
 
247
                                 GIMP_VIEW_TYPE_LIST,
 
248
                                 GIMP_PARAM_STATIC_STRINGS);
 
249
  GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_GRADIENT_VIEW_SIZE,
 
250
                                "gradient-view-size", NULL,
 
251
                                GIMP_VIEW_SIZE_TINY,
 
252
                                GIMP_VIEWABLE_MAX_BUTTON_SIZE,
 
253
                                GIMP_VIEW_SIZE_LARGE,
 
254
                                GIMP_PARAM_STATIC_STRINGS);
209
255
}
210
256
 
211
257
static void
216
262
  options->pressure_options = g_new0 (GimpPressureOptions, 1);
217
263
  options->fade_options     = g_new0 (GimpFadeOptions,     1);
218
264
  options->gradient_options = g_new0 (GimpGradientOptions, 1);
 
265
  options->jitter_options   = g_new0 (GimpJitterOptions,   1);
219
266
}
220
267
 
221
268
static void
229
276
  g_free (options->pressure_options);
230
277
  g_free (options->fade_options);
231
278
  g_free (options->gradient_options);
 
279
  g_free (options->jitter_options);
232
280
 
233
281
  G_OBJECT_CLASS (parent_class)->finalize (object);
234
282
}
243
291
  GimpPressureOptions *pressure_options;
244
292
  GimpFadeOptions     *fade_options;
245
293
  GimpGradientOptions *gradient_options;
 
294
  GimpJitterOptions   *jitter_options;
246
295
 
247
296
  pressure_options = options->pressure_options;
248
297
  fade_options     = options->fade_options;
249
298
  gradient_options = options->gradient_options;
 
299
  jitter_options   = options->jitter_options;
250
300
 
251
301
  switch (property_id)
252
302
    {
254
304
      options->paint_info = (GimpPaintInfo *) g_value_dup_object (value);
255
305
      break;
256
306
 
 
307
    case PROP_BRUSH_SCALE:
 
308
      options->brush_scale = g_value_get_double (value);
 
309
      break;
257
310
    case PROP_APPLICATION_MODE:
258
311
      options->application_mode = g_value_get_enum (value);
259
312
      break;
261
314
      options->hard = g_value_get_boolean (value);
262
315
      break;
263
316
 
 
317
    case PROP_PRESSURE_EXPANDED:
 
318
      pressure_options->expanded = g_value_get_boolean (value);
 
319
      break;
264
320
    case PROP_PRESSURE_OPACITY:
265
321
      pressure_options->opacity = g_value_get_boolean (value);
266
322
      break;
273
329
    case PROP_PRESSURE_SIZE:
274
330
      pressure_options->size = g_value_get_boolean (value);
275
331
      break;
 
332
    case PROP_PRESSURE_INVERSE_SIZE:
 
333
      pressure_options->inverse_size = g_value_get_boolean (value);
 
334
      break;
276
335
    case PROP_PRESSURE_COLOR:
277
336
      pressure_options->color = g_value_get_boolean (value);
278
337
      break;
287
346
      fade_options->fade_unit = g_value_get_int (value);
288
347
      break;
289
348
 
 
349
    case PROP_USE_JITTER:
 
350
      jitter_options->use_jitter = g_value_get_boolean (value);
 
351
      break;
 
352
    case PROP_JITTER_AMOUNT:
 
353
      jitter_options->jitter_amount = g_value_get_double (value);
 
354
      break;
 
355
 
290
356
    case PROP_USE_GRADIENT:
291
357
      gradient_options->use_gradient = g_value_get_boolean (value);
292
358
      break;
303
369
      gradient_options->gradient_unit = g_value_get_int (value);
304
370
      break;
305
371
 
 
372
    case PROP_BRUSH_VIEW_TYPE:
 
373
      options->brush_view_type = g_value_get_enum (value);
 
374
      break;
 
375
    case PROP_BRUSH_VIEW_SIZE:
 
376
      options->brush_view_size = g_value_get_int (value);
 
377
      break;
 
378
 
 
379
    case PROP_PATTERN_VIEW_TYPE:
 
380
      options->pattern_view_type = g_value_get_enum (value);
 
381
      break;
 
382
    case PROP_PATTERN_VIEW_SIZE:
 
383
      options->pattern_view_size = g_value_get_int (value);
 
384
      break;
 
385
 
 
386
    case PROP_GRADIENT_VIEW_TYPE:
 
387
      options->gradient_view_type = g_value_get_enum (value);
 
388
      break;
 
389
    case PROP_GRADIENT_VIEW_SIZE:
 
390
      options->gradient_view_size = g_value_get_int (value);
 
391
      break;
 
392
 
306
393
    default:
307
394
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
308
395
      break;
319
406
  GimpPressureOptions *pressure_options;
320
407
  GimpFadeOptions     *fade_options;
321
408
  GimpGradientOptions *gradient_options;
 
409
  GimpJitterOptions   *jitter_options;
322
410
 
323
411
  pressure_options = options->pressure_options;
324
412
  fade_options     = options->fade_options;
325
413
  gradient_options = options->gradient_options;
 
414
  jitter_options   = options->jitter_options;
326
415
 
327
416
  switch (property_id)
328
417
    {
330
419
      g_value_set_object (value, options->paint_info);
331
420
      break;
332
421
 
 
422
    case PROP_BRUSH_SCALE:
 
423
      g_value_set_double (value, options->brush_scale);
 
424
      break;
333
425
    case PROP_APPLICATION_MODE:
334
426
      g_value_set_enum (value, options->application_mode);
335
427
      break;
337
429
      g_value_set_boolean (value, options->hard);
338
430
      break;
339
431
 
 
432
    case PROP_PRESSURE_EXPANDED:
 
433
      g_value_set_boolean (value, pressure_options->expanded);
 
434
      break;
340
435
    case PROP_PRESSURE_OPACITY:
341
436
      g_value_set_boolean (value, pressure_options->opacity);
342
437
      break;
349
444
    case PROP_PRESSURE_SIZE:
350
445
      g_value_set_boolean (value, pressure_options->size);
351
446
      break;
 
447
    case PROP_PRESSURE_INVERSE_SIZE:
 
448
      g_value_set_boolean (value, pressure_options->inverse_size);
 
449
      break;
352
450
    case PROP_PRESSURE_COLOR:
353
451
      g_value_set_boolean (value, pressure_options->color);
354
452
      break;
363
461
      g_value_set_int (value, fade_options->fade_unit);
364
462
      break;
365
463
 
 
464
    case PROP_USE_JITTER:
 
465
      g_value_set_boolean (value, jitter_options->use_jitter);
 
466
      break;
 
467
    case PROP_JITTER_AMOUNT:
 
468
      g_value_set_double (value, jitter_options->jitter_amount);
 
469
      break;
 
470
 
366
471
    case PROP_USE_GRADIENT:
367
472
      g_value_set_boolean (value, gradient_options->use_gradient);
368
473
      break;
379
484
      g_value_set_int (value, gradient_options->gradient_unit);
380
485
      break;
381
486
 
 
487
    case PROP_BRUSH_VIEW_TYPE:
 
488
      g_value_set_enum (value, options->brush_view_type);
 
489
      break;
 
490
    case PROP_BRUSH_VIEW_SIZE:
 
491
      g_value_set_int (value, options->brush_view_size);
 
492
      break;
 
493
 
 
494
    case PROP_PATTERN_VIEW_TYPE:
 
495
      g_value_set_enum (value, options->pattern_view_type);
 
496
      break;
 
497
    case PROP_PATTERN_VIEW_SIZE:
 
498
      g_value_set_int (value, options->pattern_view_size);
 
499
      break;
 
500
 
 
501
    case PROP_GRADIENT_VIEW_TYPE:
 
502
      g_value_set_enum (value, options->gradient_view_type);
 
503
      break;
 
504
    case PROP_GRADIENT_VIEW_SIZE:
 
505
      g_value_set_int (value, options->gradient_view_size);
 
506
      break;
 
507
 
382
508
    default:
383
509
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
384
510
      break;
427
553
 
428
554
gdouble
429
555
gimp_paint_options_get_fade (GimpPaintOptions *paint_options,
430
 
                             GimpImage        *gimage,
 
556
                             GimpImage        *image,
431
557
                             gdouble           pixel_dist)
432
558
{
433
559
  GimpFadeOptions *fade_options;
434
560
 
435
561
  g_return_val_if_fail (GIMP_IS_PAINT_OPTIONS (paint_options),
436
562
                        GIMP_OPACITY_OPAQUE);
437
 
  g_return_val_if_fail (GIMP_IS_IMAGE (gimage), GIMP_OPACITY_OPAQUE);
 
563
  g_return_val_if_fail (GIMP_IS_IMAGE (image), GIMP_OPACITY_OPAQUE);
438
564
 
439
565
  fade_options = paint_options->fade_options;
440
566
 
449
575
          fade_out = fade_options->fade_length;
450
576
          break;
451
577
        case GIMP_UNIT_PERCENT:
452
 
          fade_out = (MAX (gimage->width, gimage->height) *
 
578
          fade_out = (MAX (image->width, image->height) *
453
579
                      fade_options->fade_length / 100);
454
580
          break;
455
581
        default:
456
582
          unit_factor = gimp_unit_get_factor (fade_options->fade_unit);
457
583
          fade_out    = (fade_options->fade_length *
458
 
                         MAX (gimage->xresolution,
459
 
                              gimage->yresolution) / unit_factor);
 
584
                         MAX (image->xresolution,
 
585
                              image->yresolution) / unit_factor);
460
586
          break;
461
587
        }
462
588
 
477
603
  return GIMP_OPACITY_OPAQUE;
478
604
}
479
605
 
 
606
gdouble
 
607
gimp_paint_options_get_jitter (GimpPaintOptions *paint_options,
 
608
                               GimpImage        *image)
 
609
{
 
610
  GimpJitterOptions *jitter_options;
 
611
 
 
612
  jitter_options = paint_options->jitter_options;
 
613
 
 
614
  if (jitter_options->use_jitter)
 
615
    return jitter_options->jitter_amount;
 
616
 
 
617
  return 0.0;
 
618
}
 
619
 
480
620
gboolean
481
621
gimp_paint_options_get_gradient_color (GimpPaintOptions *paint_options,
482
 
                                       GimpImage        *gimage,
 
622
                                       GimpImage        *image,
483
623
                                       gdouble           pressure,
484
624
                                       gdouble           pixel_dist,
485
625
                                       GimpRGB          *color)
489
629
  GimpGradient        *gradient;
490
630
 
491
631
  g_return_val_if_fail (GIMP_IS_PAINT_OPTIONS (paint_options), FALSE);
492
 
  g_return_val_if_fail (GIMP_IS_IMAGE (gimage), FALSE);
 
632
  g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
493
633
  g_return_val_if_fail (color != NULL, FALSE);
494
634
 
495
635
  pressure_options = paint_options->pressure_options;
499
639
 
500
640
  if (pressure_options->color)
501
641
    {
502
 
      gimp_gradient_get_color_at (gradient, pressure,
 
642
      gimp_gradient_get_color_at (gradient, GIMP_CONTEXT (paint_options),
 
643
                                  NULL, pressure,
503
644
                                  gradient_options->gradient_reverse,
504
645
                                  color);
505
646
 
517
658
          gradient_length = gradient_options->gradient_length;
518
659
          break;
519
660
        case GIMP_UNIT_PERCENT:
520
 
          gradient_length = (MAX (gimage->width, gimage->height) *
 
661
          gradient_length = (MAX (image->width, image->height) *
521
662
                             gradient_options->gradient_length / 100);
522
663
          break;
523
664
        default:
524
665
          unit_factor = gimp_unit_get_factor (gradient_options->gradient_unit);
525
666
          gradient_length = (gradient_options->gradient_length *
526
 
                             MAX (gimage->xresolution,
527
 
                                  gimage->yresolution) / unit_factor);
 
667
                             MAX (image->xresolution,
 
668
                                  image->yresolution) / unit_factor);
528
669
          break;
529
670
        }
530
671
 
543
684
      else
544
685
        pos = pos - (gint) pos;
545
686
 
546
 
      gimp_gradient_get_color_at (gradient, pos,
 
687
      gimp_gradient_get_color_at (gradient, GIMP_CONTEXT (paint_options),
 
688
                                  NULL, pos,
547
689
                                  gradient_options->gradient_reverse,
548
690
                                  color);
549
691