[gimp] Implement GimpItem::is_content_locked()



commit c730839c1f1cb47e8f5e68c07ec7b1b5bcfdbb4e
Author: Michael Natterer <mitch gimp org>
Date:   Sat Aug 29 15:08:06 2009 +0200

    Implement GimpItem::is_content_locked()
    
    A layer mask is locked if its parent layer is locked.

 app/core/gimplayermask.c |   48 +++++++++++++++++++++++++++++----------------
 1 files changed, 31 insertions(+), 17 deletions(-)
---
diff --git a/app/core/gimplayermask.c b/app/core/gimplayermask.c
index 4cae0e6..608b5aa 100644
--- a/app/core/gimplayermask.c
+++ b/app/core/gimplayermask.c
@@ -45,17 +45,18 @@ enum
 };
 
 
-static gboolean   gimp_layer_mask_is_attached   (GimpItem     *item);
-static GimpContainer *
-                  gimp_layer_mask_get_container (GimpItem     *item);
-static GimpItem * gimp_layer_mask_duplicate     (GimpItem     *item,
-                                                 GType         new_type);
-static gboolean   gimp_layer_mask_rename        (GimpItem     *item,
-                                                 const gchar  *new_name,
-                                                 const gchar  *undo_desc,
-                                                 GError      **error);
+static gboolean        gimp_layer_mask_is_attached       (GimpItem       *item);
+static gboolean        gimp_layer_mask_is_content_locked (const GimpItem *item);
+static GimpContainer * gimp_layer_mask_get_container     (GimpItem       *item);
+static GimpItem      * gimp_layer_mask_duplicate         (GimpItem       *item,
+                                                          GType           new_type);
+static gboolean        gimp_layer_mask_rename            (GimpItem       *item,
+                                                          const gchar    *new_name,
+                                                          const gchar    *undo_desc,
+                                                          GError        **error);
+
+static void            gimp_layer_mask_real_edit_changed (GimpLayerMask  *layer_mask);
 
-static void       gimp_layer_mask_real_edit_changed (GimpLayerMask *layer_mask);
 
 G_DEFINE_TYPE (GimpLayerMask, gimp_layer_mask, GIMP_TYPE_CHANNEL)
 
@@ -99,13 +100,14 @@ gimp_layer_mask_class_init (GimpLayerMaskClass *klass)
 
   viewable_class->default_stock_id = "gimp-layer-mask";
 
-  klass->edit_changed        = gimp_layer_mask_real_edit_changed;
+  klass->edit_changed           = gimp_layer_mask_real_edit_changed;
 
-  item_class->is_attached    = gimp_layer_mask_is_attached;
-  item_class->get_container  = gimp_layer_mask_get_container;
-  item_class->duplicate      = gimp_layer_mask_duplicate;
-  item_class->rename         = gimp_layer_mask_rename;
-  item_class->translate_desc = _("Move Layer Mask");
+  item_class->is_attached       = gimp_layer_mask_is_attached;
+  item_class->is_content_locked = gimp_layer_mask_is_content_locked;
+  item_class->get_container     = gimp_layer_mask_get_container;
+  item_class->duplicate         = gimp_layer_mask_duplicate;
+  item_class->rename            = gimp_layer_mask_rename;
+  item_class->translate_desc    = _("Move Layer Mask");
 }
 
 static void
@@ -118,6 +120,18 @@ gimp_layer_mask_init (GimpLayerMask *layer_mask)
 }
 
 static gboolean
+gimp_layer_mask_is_content_locked (const GimpItem *item)
+{
+  GimpLayerMask *mask  = GIMP_LAYER_MASK (item);
+  GimpLayer     *layer = gimp_layer_mask_get_layer (mask);
+
+  if (layer)
+    return gimp_item_is_content_locked (GIMP_ITEM (layer));
+
+  return FALSE;
+}
+
+static gboolean
 gimp_layer_mask_is_attached (GimpItem *item)
 {
   GimpLayerMask *mask  = GIMP_LAYER_MASK (item);



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