From 36f7ef93aa4a08a2bb37d04cb1fac0424105e895 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Tue, 4 Mar 2014 18:00:57 +0100 Subject: [PATCH] Canvas.MouseEvent: expose button/modifier state. --- src/Scripting/NasalCanvas.cxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Scripting/NasalCanvas.cxx b/src/Scripting/NasalCanvas.cxx index f476deb40..caa57f077 100644 --- a/src/Scripting/NasalCanvas.cxx +++ b/src/Scripting/NasalCanvas.cxx @@ -197,6 +197,12 @@ naRef f_groupGetElementById(sc::Group& group, const nasal::CallContext& ctx) ); } +template +naRef f_eventGetModifier(naContext, sc::MouseEvent& event) +{ + return naNum((event.getButtonMask() & Mask) != 0); +} + naRef to_nasal_helper(naContext c, const sc::ElementWeakPtr& el) { return NasalElement::create(c, el.lock()); @@ -204,6 +210,7 @@ naRef to_nasal_helper(naContext c, const sc::ElementWeakPtr& el) naRef initNasalCanvas(naRef globals, naContext c) { + using osgGA::GUIEventAdapter; NasalEvent::init("canvas.Event") .member("type", &sc::Event::getTypeString) .member("target", &sc::Event::getTarget) @@ -219,6 +226,13 @@ naRef initNasalCanvas(naRef globals, naContext c) .member("localY", &sc::MouseEvent::getLocalY) .member("deltaX", &sc::MouseEvent::getDeltaX) .member("deltaY", &sc::MouseEvent::getDeltaY) + .member("button", &sc::MouseEvent::getButton) + .member("buttons", &sc::MouseEvent::getButtonMask) + .member("modifiers", &sc::MouseEvent::getModifiers) + .member("ctrlKey", &f_eventGetModifier) + .member("shiftKey", &f_eventGetModifier) + .member("altKey", &f_eventGetModifier) + .member("metaKey", &f_eventGetModifier) .member("click_count", &sc::MouseEvent::getCurrentClickCount); NasalCanvas::init("Canvas") .member("_node_ghost", &elementGetNode) -- 2.39.5