]> git.mxchange.org Git - flightgear.git/commitdiff
Expose simgear::canvas::Group::createChild to Nasal
authorThomas Geymayer <tomgey@gmail.com>
Thu, 29 Nov 2012 00:24:33 +0000 (01:24 +0100)
committerThomas Geymayer <tomgey@gmail.com>
Thu, 29 Nov 2012 00:25:01 +0000 (01:25 +0100)
src/Scripting/NasalCanvas.cxx

index 2a9faaa1b48e31ba5b51afc43f3947755f79ae35..2784bf68e26f20c0833755a24da4068caa982695 100644 (file)
@@ -150,11 +150,21 @@ static naRef f_getCanvas(naContext c, naRef me, int argc, naRef* args)
 
 naRef f_canvasCreateGroup(sc::Canvas& canvas, const nasal::CallContext& ctx)
 {
-  std::string name;
-  if( ctx.argc > 0 )
-    name = nasal::from_nasal<std::string>(ctx.c, ctx.args[0]);
+  return NasalGroup::create
+  (
+    ctx.c,
+    canvas.createGroup( ctx.get<std::string>(0) )
+  );
+}
 
-  return NasalGroup::create(ctx.c, canvas.createGroup(name));
+naRef f_groupCreateChild(sc::Group& group, const nasal::CallContext& ctx)
+{
+  return NasalElement::create
+  (
+    ctx.c,
+    group.createChild( ctx.require<std::string>(0),
+                       ctx.get<std::string>(1) )
+  );
 }
 
 naRef initNasalCanvas(naRef globals, naContext c, naRef gcSave)
@@ -171,7 +181,8 @@ naRef initNasalCanvas(naRef globals, naContext c, naRef gcSave)
     .member("_node_ghost", &elementGetNode<sc::Element>)
     .method<&sc::Element::addEventListener>("addEventListener");
   NasalGroup::init("canvas.Group")
-    .bases<NasalElement>();
+    .bases<NasalElement>()
+    .method_func<&f_groupCreateChild>("createChild");
 
   nasal::Hash globals_module(globals, c),
               canvas_module = globals_module.createHash("canvas");