From 1a0fcd5f56c347028119ec5fc5052d502277ed28 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Fri, 16 Nov 2012 12:34:38 +0100 Subject: [PATCH] NasalCanvas: Clean up and expose Element node ghost --- src/Scripting/NasalCanvas.cxx | 100 +++------------------------------- 1 file changed, 9 insertions(+), 91 deletions(-) diff --git a/src/Scripting/NasalCanvas.cxx b/src/Scripting/NasalCanvas.cxx index 1dc448ba1..64875370a 100644 --- a/src/Scripting/NasalCanvas.cxx +++ b/src/Scripting/NasalCanvas.cxx @@ -22,17 +22,10 @@ # include "config.h" #endif -#include -#include - #include "NasalCanvas.hxx" #include #include
-//#include -#include -#include -#include #include #include @@ -47,20 +40,16 @@ extern naRef propNodeGhostCreate(naContext c, SGPropertyNode* n); -//void initCanvasPython() -//{ -// using namespace boost::python; -// class_("Canvas"); -//} - namespace sc = simgear::canvas; -naRef canvasGetNode(naContext c, sc::Canvas* canvas) +template +naRef elementGetNode(naContext c, Element& element) { - return propNodeGhostCreate(c, canvas->getProps()); + return propNodeGhostCreate(c, element.getProps()); } typedef nasal::Ghost NasalCanvas; +typedef nasal::Ghost NasalElement; typedef nasal::Ghost NasalGroup; #if 0 @@ -71,12 +60,6 @@ class NasalCanvasEvent: { public: - NasalCanvasEvent(): - NasalObject("CanvasEvent") - { - _members["type"] = &NasalCanvasEvent::getEventType; - } - naRef getEventType(naContext c, const GUIEventPtr& event) { #define RET_EVENT_STR(type, str)\ @@ -102,63 +85,6 @@ class NasalCanvasEvent: } }; #endif -#if 0 -static const char* eventGhostGetMember(naContext c, void* g, naRef field, naRef* out) -{ - const char* fieldName = naStr_data(field); - osgGA::GUIEventAdapter* gea = (osgGA::GUIEventAdapter*) g; - - if (!strcmp(fieldName, "windowX")) *out = naNum(gea->getWindowX()); - else if (!strcmp(fieldName, "windowY")) *out = naNum(gea->getWindowY()); - else if (!strcmp(fieldName, "time")) *out = naNum(gea->getTime()); - else if (!strcmp(fieldName, "button")) *out = naNum(gea->getButton()); - else { - return 0; - } - - return ""; -} - -static naRef f_element_addButtonCallback(naContext c, naRef me, int argc, naRef* args) -{ - simgear::canvas::Element* e = elementGhost(me); - if (!e) { - naRuntimeError(c, "element.addButtonCallback called on non-canvas-element object"); - } - - return naNil(); -} - -static naRef f_element_addDragCallback(naContext c, naRef me, int argc, naRef* args) -{ - simgear::canvas::Element* e = elementGhost(me); - if (!e) { - naRuntimeError(c, "element.addDragCallback called on non-canvas-element object"); - } - - return naNil(); -} - -static naRef f_element_addMoveCallback(naContext c, naRef me, int argc, naRef* args) -{ - simgear::canvas::Element* e = elementGhost(me); - if (!e) { - naRuntimeError(c, "element.addMoveCallback called on non-canvas-element object"); - } - - return naNil(); -} - -static naRef f_element_addScrollCallback(naContext c, naRef me, int argc, naRef* args) -{ - simgear::canvas::Element* e = elementGhost(me); - if (!e) { - naRuntimeError(c, "element.addScrollCallback called on non-canvas-element object"); - } - - return naNil(); -} -#endif static naRef f_createCanvas(naContext c, naRef me, int argc, naRef* args) { @@ -184,23 +110,15 @@ naRef f_canvasCreateGroup( sc::Canvas& canvas, naRef initNasalCanvas(naRef globals, naContext c, naRef gcSave) { -#if 0 - elementPrototype = naNewHash(c); - hashset(c, gcSave, "elementProto", elementPrototype); - - hashset(c, elementPrototype, "addButtonCallback", naNewFunc(c, naNewCCode(c, f_element_addButtonCallback))); - hashset(c, elementPrototype, "addDragCallback", naNewFunc(c, naNewCCode(c, f_element_addDragCallback))); - hashset(c, elementPrototype, "addMoveCallback", naNewFunc(c, naNewCCode(c, f_element_addMoveCallback))); - hashset(c, elementPrototype, "addScrollCallback", naNewFunc(c, naNewCCode(c, f_element_addScrollCallback))); -#endif NasalCanvas::init("Canvas") - .member("_node_ghost", &canvasGetNode) + .member("_node_ghost", &elementGetNode) .member("size_x", &sc::Canvas::getSizeX) .member("size_y", &sc::Canvas::getSizeY) .method_func<&f_canvasCreateGroup>("createGroup"); - nasal::Ghost::init("canvas.Element"); - nasal::Ghost::init("canvas.Group") - .bases(); + NasalElement::init("canvas.Element") + .member("_node_ghost", &elementGetNode); + NasalGroup::init("canvas.Group") + .bases(); nasal::Hash globals_module(globals, c), canvas_module = globals_module.createHash("canvas"); -- 2.39.5