[aseprite] 07/64: script: add Sprite.select/selectAll functions

Tobias Hansen thansen at moszumanska.debian.org
Tue Jun 21 14:43:00 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 207bc6c98b7caedf84486f04a14e31f43b80d4d5
Author: David Capello <davidcapello at gmail.com>
Date:   Fri May 6 16:52:07 2016 -0300

    script: add Sprite.select/selectAll functions
---
 src/app/script/sprite_class.cpp | 43 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/src/app/script/sprite_class.cpp b/src/app/script/sprite_class.cpp
index ee8d33b..856fb27 100644
--- a/src/app/script/sprite_class.cpp
+++ b/src/app/script/sprite_class.cpp
@@ -11,6 +11,7 @@
 
 #include "app/script/sprite_class.h"
 
+#include "app/cmd/set_mask.h"
 #include "app/cmd/set_sprite_size.h"
 #include "app/commands/commands.h"
 #include "app/commands/params.h"
@@ -22,6 +23,7 @@
 #include "app/transaction.h"
 #include "app/ui/document_view.h"
 #include "app/ui_context.h"
+#include "doc/mask.h"
 #include "doc/palette.h"
 #include "doc/site.h"
 #include "doc/sprite.h"
@@ -50,6 +52,45 @@ script::result_t Sprite_ctor(script::ContextHandle handle)
   return 0;
 }
 
+script::result_t Sprite_select(script::ContextHandle handle)
+{
+  script::Context ctx(handle);
+  int x = ctx.requireInt(0);
+  int y = ctx.requireInt(1);
+  int w = ctx.requireInt(2);
+  int h = ctx.requireInt(3);
+
+  auto wrap = (SpriteWrap*)ctx.getThis();
+  if (wrap) {
+    Document* doc = wrap->document();
+
+    Mask newMask;
+    if (w > 0 && h > 0)
+      newMask.replace(gfx::Rect(x, y, w, h));
+
+    wrap->transaction().execute(new cmd::SetMask(doc, &newMask));
+  }
+
+  return 0;
+}
+
+script::result_t Sprite_selectAll(script::ContextHandle handle)
+{
+  script::Context ctx(handle);
+
+  auto wrap = (SpriteWrap*)ctx.getThis();
+  if (wrap) {
+    Document* doc = wrap->document();
+
+    Mask newMask;
+    newMask.replace(doc->sprite()->bounds());
+
+    wrap->transaction().execute(new cmd::SetMask(doc, &newMask));
+  }
+
+  return 0;
+}
+
 script::result_t Sprite_resize(script::ContextHandle handle)
 {
   script::Context ctx(handle);
@@ -208,6 +249,8 @@ script::result_t Sprite_set_height(script::ContextHandle handle)
 }
 
 const script::FunctionEntry Sprite_methods[] = {
+  { "select", Sprite_select, 4 },
+  { "selectAll", Sprite_selectAll, 0 },
   { "resize", Sprite_resize, 2 },
   { "crop", Sprite_crop, 4 },
   { "save", Sprite_save, 2 },

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list