]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/scenelib.h
Merge branch 'NateEag-master-patch-12920' into 'master'
[xonotic/netradiant.git] / libs / scenelib.h
index 08566259a4b9c0621dabec060b12b0daf4855071..d15ce8021bdd483c22d84a4dacbda5ba1852e9db 100644 (file)
@@ -22,6 +22,7 @@
 #if !defined ( INCLUDED_SCENELIB_H )
 #define INCLUDED_SCENELIB_H
 
+#include "globaldefs.h"
 #include "iscenegraph.h"
 #include "iselection.h"
 
@@ -106,9 +107,9 @@ NodeType() : m_typeId( NODETYPEID_NONE ){
 void initialise(){
        m_typeId = GlobalSceneGraph().getNodeTypeId( Name() );
 }
-typedef MemberCaller<NodeType<Type>, &NodeType<Type>::initialise> InitialiseCaller;
+typedef MemberCaller<NodeType<Type>, void(), &NodeType<Type>::initialise> InitialiseCaller;
 TypeId getTypeId(){
-#if defined( _DEBUG )
+#if GDEF_DEBUG
        ASSERT_MESSAGE( m_typeId != NODETYPEID_NONE, "node-type " << makeQuoted( Name() ) << " used before being initialised" );
 #endif
        return m_typeId;
@@ -441,9 +442,9 @@ InstanceType() : m_typeId( INSTANCETYPEID_NONE ){
 void initialise(){
        m_typeId = GlobalSceneGraph().getInstanceTypeId( Name() );
 }
-typedef MemberCaller<InstanceType<Type>, &InstanceType<Type>::initialise> InitialiseCaller;
+typedef MemberCaller<InstanceType<Type>, void(), &InstanceType<Type>::initialise> InitialiseCaller;
 TypeId getTypeId(){
-#if defined( _DEBUG )
+#if GDEF_DEBUG
        ASSERT_MESSAGE( m_typeId != INSTANCETYPEID_NONE, "instance-type " << makeQuoted( Name() ) << " used before being initialised" );
 #endif
        return m_typeId;
@@ -574,8 +575,8 @@ mutable bool m_childSelected;
 mutable bool m_childSelectedChanged;
 mutable bool m_parentSelected;
 mutable bool m_parentSelectedChanged;
-Callback m_childSelectedChangedCallback;
-Callback m_transformChangedCallback;
+Callback<void()> m_childSelectedChangedCallback;
+Callback<void()> m_transformChangedCallback;
 
 
 void evaluateTransform() const {
@@ -673,7 +674,7 @@ void transformChanged(){
        GlobalSceneGraph().traverse_subgraph( TransformChangedWalker(), m_path );
        boundsChanged();
 }
-void setTransformChangedCallback( const Callback& callback ){
+void setTransformChangedCallback( const Callback<void()>& callback ){
        m_transformChangedCallback = callback;
 }
 
@@ -710,7 +711,7 @@ bool childSelected() const {
        return m_childSelected;
 }
 
-void setChildSelectedChangedCallback( const Callback& callback ){
+void setChildSelectedChangedCallback( const Callback<void()>& callback ){
        m_childSelectedChangedCallback = callback;
 }
 void selectedChanged(){
@@ -739,6 +740,10 @@ bool parentSelected() const {
        }
        return m_parentSelected;
 }
+Instance* parent() const
+{
+       return m_parent;
+}
 };
 }
 
@@ -940,10 +945,10 @@ virtual void decrement() = 0;
 
 class SimpleCounter : public Counter
 {
-Callback m_countChanged;
+Callback<void()> m_countChanged;
 std::size_t m_count;
 public:
-void setCountChangedCallback( const Callback& countChanged ){
+void setCountChangedCallback( const Callback<void()>& countChanged ){
        m_countChanged = countChanged;
 }
 void increment(){