[gimp] app: add gimp_image_map_set_mode()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add gimp_image_map_set_mode()
- Date: Tue, 24 Jun 2014 18:21:38 +0000 (UTC)
commit 1ff1c687f41b4d4cc3c3197725f8ee223ab48c43
Author: Michael Natterer <mitch gimp org>
Date: Tue Jun 24 20:18:34 2014 +0200
app: add gimp_image_map_set_mode()
which allows to set opacity and paint_mode on the contained
GimpApplicator.
app/core/gimpimagemap.c | 65 ++++++++++++++++++++++++++++++++--------------
app/core/gimpimagemap.h | 36 ++++++++++++++-----------
2 files changed, 65 insertions(+), 36 deletions(-)
---
diff --git a/app/core/gimpimagemap.c b/app/core/gimpimagemap.c
index 73439b0..d3d947b 100644
--- a/app/core/gimpimagemap.c
+++ b/app/core/gimpimagemap.c
@@ -60,23 +60,26 @@ enum
struct _GimpImageMap
{
- GimpObject parent_instance;
-
- GimpDrawable *drawable;
- gchar *undo_desc;
- GeglNode *operation;
- gchar *icon_name;
- GimpImageMapRegion region;
- gboolean gamma_hack;
-
- GeglRectangle filter_area;
-
- GimpFilter *filter;
- GeglNode *translate;
- GeglNode *crop;
- GeglNode *cast_before;
- GeglNode *cast_after;
- GimpApplicator *applicator;
+ GimpObject parent_instance;
+
+ GimpDrawable *drawable;
+ gchar *undo_desc;
+ GeglNode *operation;
+ gchar *icon_name;
+ GimpImageMapRegion region;
+ gboolean gamma_hack;
+
+ GeglRectangle filter_area;
+
+ gdouble opacity;
+ GimpLayerModeEffects paint_mode;
+
+ GimpFilter *filter;
+ GeglNode *translate;
+ GeglNode *crop;
+ GeglNode *cast_before;
+ GeglNode *cast_after;
+ GimpApplicator *applicator;
};
@@ -120,7 +123,9 @@ gimp_image_map_class_init (GimpImageMapClass *klass)
static void
gimp_image_map_init (GimpImageMap *image_map)
{
- image_map->region = GIMP_IMAGE_MAP_REGION_SELECTION;
+ image_map->region = GIMP_IMAGE_MAP_REGION_SELECTION;
+ image_map->opacity = GIMP_OPACITY_OPAQUE;
+ image_map->paint_mode = GIMP_REPLACE_MODE;
}
static void
@@ -222,6 +227,26 @@ gimp_image_map_set_gamma_hack (GimpImageMap *image_map,
}
void
+gimp_image_map_set_mode (GimpImageMap *image_map,
+ gdouble opacity,
+ GimpLayerModeEffects paint_mode)
+{
+ g_return_if_fail (GIMP_IS_IMAGE_MAP (image_map));
+
+ if (opacity != image_map->opacity ||
+ paint_mode != image_map->paint_mode)
+ {
+ image_map->opacity = opacity;
+ image_map->paint_mode = paint_mode;
+
+ if (image_map->applicator)
+ gimp_applicator_set_mode (image_map->applicator,
+ image_map->opacity,
+ image_map->paint_mode);
+ }
+}
+
+void
gimp_image_map_apply (GimpImageMap *image_map,
const GeglRectangle *area)
{
@@ -396,8 +421,8 @@ gimp_image_map_apply (GimpImageMap *image_map,
filter_node, "aux");
gimp_applicator_set_mode (image_map->applicator,
- GIMP_OPACITY_OPAQUE,
- GIMP_REPLACE_MODE);
+ image_map->opacity,
+ image_map->paint_mode);
}
if (image_map->region == GIMP_IMAGE_MAP_REGION_SELECTION)
diff --git a/app/core/gimpimagemap.h b/app/core/gimpimagemap.h
index c41eb6e..d06ae52 100644
--- a/app/core/gimpimagemap.h
+++ b/app/core/gimpimagemap.h
@@ -49,22 +49,26 @@ struct _GimpImageMapClass
GType gimp_image_map_get_type (void) G_GNUC_CONST;
-GimpImageMap * gimp_image_map_new (GimpDrawable *drawable,
- const gchar *undo_desc,
- GeglNode *operation,
- const gchar *icon_name);
-
-void gimp_image_map_set_region (GimpImageMap *image_map,
- GimpImageMapRegion region);
-void gimp_image_map_set_gamma_hack (GimpImageMap *image_map,
- gboolean gamma_hack);
-
-void gimp_image_map_apply (GimpImageMap *image_map,
- const GeglRectangle *area);
-
-void gimp_image_map_commit (GimpImageMap *image_map,
- GimpProgress *progress);
-void gimp_image_map_abort (GimpImageMap *image_map);
+GimpImageMap * gimp_image_map_new (GimpDrawable *drawable,
+ const gchar *undo_desc,
+ GeglNode *operation,
+ const gchar *icon_name);
+
+void gimp_image_map_set_region (GimpImageMap *image_map,
+ GimpImageMapRegion region);
+void gimp_image_map_set_gamma_hack (GimpImageMap *image_map,
+ gboolean gamma_hack);
+
+void gimp_image_map_set_mode (GimpImageMap *image_map,
+ gdouble opacity,
+ GimpLayerModeEffects paint_mode);
+
+void gimp_image_map_apply (GimpImageMap *image_map,
+ const GeglRectangle *area);
+
+void gimp_image_map_commit (GimpImageMap *image_map,
+ GimpProgress *progress);
+void gimp_image_map_abort (GimpImageMap *image_map);
#endif /* __GIMP_IMAGE_MAP_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]