summaryrefslogtreecommitdiffstats
path: root/plug-ins/script-fu/scripts/reverse-layers.scm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--plug-ins/script-fu/scripts/reverse-layers.scm53
1 files changed, 53 insertions, 0 deletions
diff --git a/plug-ins/script-fu/scripts/reverse-layers.scm b/plug-ins/script-fu/scripts/reverse-layers.scm
new file mode 100644
index 0000000..d7e2882
--- /dev/null
+++ b/plug-ins/script-fu/scripts/reverse-layers.scm
@@ -0,0 +1,53 @@
+; reverse-layers.scm: Reverse the order of layers in the current image.
+; Copyright (C) 2006 by Akkana Peck.
+;
+; This program is free software: you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation; either version 3 of the License, or
+; (at your option) any later version.
+;
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+(define (script-fu-reverse-layers img drawable)
+ (let* (
+ (layers (gimp-image-get-layers img))
+ (num-layers (car layers))
+ (layer-array (cadr layers))
+ (i (- num-layers 1))
+ )
+
+ (gimp-image-undo-group-start img)
+
+ (while (>= i 0)
+ (let ((layer (aref layer-array i)))
+ (if (= (car (gimp-layer-is-floating-sel layer)) FALSE)
+ (gimp-image-lower-item-to-bottom img layer))
+ )
+
+ (set! i (- i 1))
+ )
+
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ )
+)
+
+(script-fu-register "script-fu-reverse-layers"
+ _"Reverse Layer _Order"
+ _"Reverse the order of layers in the image"
+ "Akkana Peck"
+ "Akkana Peck"
+ "August 2006"
+ "*"
+ SF-IMAGE "Image" 0
+ SF-DRAWABLE "Drawable" 0
+)
+
+(script-fu-menu-register "script-fu-reverse-layers"
+ "<Image>/Layer/Stack")