[gimp] Render a layer group's boundary in a different color



commit 27d036b75f1c5936c7cdaf1da58973542d65f1d5
Author: Michael Natterer <mitch gimp org>
Date:   Sat Aug 29 21:26:46 2009 +0200

    Render a layer group's boundary in a different color
    
    This is probably not sufficient, but better than nothing.

 app/display/gimpcanvas.c                 |   11 +++++++++++
 app/display/gimpcanvas.h                 |    1 +
 app/display/gimpdisplayshell-selection.c |   19 ++++++++++++++-----
 3 files changed, 26 insertions(+), 5 deletions(-)
---
diff --git a/app/display/gimpcanvas.c b/app/display/gimpcanvas.c
index 6da2c11..40e0f86 100644
--- a/app/display/gimpcanvas.c
+++ b/app/display/gimpcanvas.c
@@ -388,6 +388,7 @@ gimp_canvas_gc_new (GimpCanvas      *canvas,
     case GIMP_CANVAS_STYLE_SELECTION_IN:
     case GIMP_CANVAS_STYLE_SELECTION_OUT:
     case GIMP_CANVAS_STYLE_LAYER_BOUNDARY:
+    case GIMP_CANVAS_STYLE_LAYER_GROUP_BOUNDARY:
     case GIMP_CANVAS_STYLE_GUIDE_NORMAL:
     case GIMP_CANVAS_STYLE_GUIDE_ACTIVE:
     case GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE:
@@ -458,6 +459,16 @@ gimp_canvas_gc_new (GimpCanvas      *canvas,
       bg.blue  = 0x0;
       break;
 
+    case GIMP_CANVAS_STYLE_LAYER_GROUP_BOUNDARY:
+      fg.red   = 0x0;
+      fg.green = 0x0;
+      fg.blue  = 0x0;
+
+      bg.red   = 0x0;
+      bg.green = 0xffff;
+      bg.blue  = 0xffff;
+      break;
+
     case GIMP_CANVAS_STYLE_GUIDE_NORMAL:
       fg.red   = 0x0;
       fg.green = 0x0;
diff --git a/app/display/gimpcanvas.h b/app/display/gimpcanvas.h
index 50d404b..fb0e4b0 100644
--- a/app/display/gimpcanvas.h
+++ b/app/display/gimpcanvas.h
@@ -30,6 +30,7 @@ typedef enum
   GIMP_CANVAS_STYLE_SELECTION_IN,
   GIMP_CANVAS_STYLE_SELECTION_OUT,
   GIMP_CANVAS_STYLE_LAYER_BOUNDARY,
+  GIMP_CANVAS_STYLE_LAYER_GROUP_BOUNDARY,
   GIMP_CANVAS_STYLE_GUIDE_NORMAL,
   GIMP_CANVAS_STYLE_GUIDE_ACTIVE,
   GIMP_CANVAS_STYLE_SAMPLE_POINT_NORMAL,
diff --git a/app/display/gimpdisplayshell-selection.c b/app/display/gimpdisplayshell-selection.c
index 20177b7..591e0df 100644
--- a/app/display/gimpdisplayshell-selection.c
+++ b/app/display/gimpdisplayshell-selection.c
@@ -382,11 +382,20 @@ selection_layer_draw (Selection *selection)
   GimpDrawable *drawable = gimp_image_get_active_drawable (image);
 
   if (selection->segs_layer)
-    gimp_canvas_draw_segments (canvas, GIMP_IS_LAYER_MASK (drawable) ?
-                               GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE:
-                               GIMP_CANVAS_STYLE_LAYER_BOUNDARY,
-                               selection->segs_layer,
-                               selection->num_segs_layer);
+    {
+      GimpCanvasStyle style;
+
+      if (GIMP_IS_LAYER_MASK (drawable))
+        style = GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE;
+      else if (gimp_viewable_get_children (GIMP_VIEWABLE (drawable)))
+        style = GIMP_CANVAS_STYLE_LAYER_GROUP_BOUNDARY;
+      else
+        style = GIMP_CANVAS_STYLE_LAYER_BOUNDARY;
+
+      gimp_canvas_draw_segments (canvas, style,
+                                 selection->segs_layer,
+                                 selection->num_segs_layer);
+    }
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]