Integrating latest 47acbe8
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
// Original file Copyright Crytek GMBH or its affiliates, used under license.
|
||||
|
||||
// Description : Multicast multiple functors.
|
||||
|
||||
|
||||
#ifndef CRYINCLUDE_EDITOR_UTIL_FUNCTORMULTICASTER_H
|
||||
#define CRYINCLUDE_EDITOR_UTIL_FUNCTORMULTICASTER_H
|
||||
#pragma once
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
template <class _event>
|
||||
class FunctorMulticaster
|
||||
{
|
||||
public:
|
||||
typedef Functor1<_event> callback;
|
||||
|
||||
FunctorMulticaster() {}
|
||||
virtual ~FunctorMulticaster() {}
|
||||
|
||||
void AddListener(const callback& func)
|
||||
{
|
||||
m_listeners.push_back(func);
|
||||
}
|
||||
|
||||
void RemoveListener(const callback& func)
|
||||
{
|
||||
m_listeners.remove(func);
|
||||
}
|
||||
|
||||
void Call(_event evt)
|
||||
{
|
||||
typename std::list<callback>::iterator iter;
|
||||
for (iter = m_listeners.begin(); iter != m_listeners.end(); ++iter)
|
||||
{
|
||||
(*iter)(evt);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
std::list<callback> m_listeners;
|
||||
};
|
||||
|
||||
#endif // CRYINCLUDE_EDITOR_UTIL_FUNCTORMULTICASTER_H
|
||||
@@ -293,7 +293,7 @@ void CVarBlock::Unwire(CVarBlock* toVarBlock)
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarBlock::AddOnSetCallback(IVariable::OnSetCallback func)
|
||||
void CVarBlock::AddOnSetCallback(IVariable::OnSetCallback* func)
|
||||
{
|
||||
for (Variables::iterator it = m_vars.begin(); it != m_vars.end(); ++it)
|
||||
{
|
||||
@@ -303,7 +303,7 @@ void CVarBlock::AddOnSetCallback(IVariable::OnSetCallback func)
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarBlock::RemoveOnSetCallback(IVariable::OnSetCallback func)
|
||||
void CVarBlock::RemoveOnSetCallback(IVariable::OnSetCallback* func)
|
||||
{
|
||||
for (Variables::iterator it = m_vars.begin(); it != m_vars.end(); ++it)
|
||||
{
|
||||
@@ -313,7 +313,7 @@ void CVarBlock::RemoveOnSetCallback(IVariable::OnSetCallback func)
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarBlock::SetCallbackToVar(IVariable::OnSetCallback func, IVariable* pVar, bool bAdd)
|
||||
void CVarBlock::SetCallbackToVar(IVariable::OnSetCallback* func, IVariable* pVar, bool bAdd)
|
||||
{
|
||||
if (bAdd)
|
||||
{
|
||||
@@ -396,7 +396,7 @@ CVarObject::~CVarObject()
|
||||
{}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarObject::AddVariable(CVariableBase& var, const QString& varName, VarOnSetCallback cb, unsigned char dataType)
|
||||
void CVarObject::AddVariable(CVariableBase& var, const QString& varName, VarOnSetCallback* cb, unsigned char dataType)
|
||||
{
|
||||
if (!m_vars)
|
||||
{
|
||||
@@ -413,7 +413,7 @@ void CVarObject::AddVariable(CVariableBase& var, const QString& varName, VarOnSe
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarObject::AddVariable(CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback cb, unsigned char dataType)
|
||||
void CVarObject::AddVariable(CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback* cb, unsigned char dataType)
|
||||
{
|
||||
if (!m_vars)
|
||||
{
|
||||
@@ -431,7 +431,7 @@ void CVarObject::AddVariable(CVariableBase& var, const QString& varName, const Q
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void CVarObject::AddVariable(CVariableArray& table, CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback cb, unsigned char dataType)
|
||||
void CVarObject::AddVariable(CVariableArray& table, CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback* cb, unsigned char dataType)
|
||||
{
|
||||
if (!m_vars)
|
||||
{
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
|
||||
#include "RefCountBase.h"
|
||||
#include <functor.h>
|
||||
|
||||
#include "Include/EditorCoreAPI.h"
|
||||
|
||||
@@ -196,7 +195,7 @@ struct IVariable
|
||||
UI_CREATE_SPLINE = BIT(12), //!< To indicate the spline need to be re-created. This is usually because the data was changed directly through the data address
|
||||
};
|
||||
|
||||
typedef Functor1<IVariable*> OnSetCallback;
|
||||
typedef AZStd::function<void(IVariable*)> OnSetCallback;
|
||||
using OnSetEnumCallback = OnSetCallback;
|
||||
|
||||
// Store IGetCustomItems into IVariable's UserData and set datatype to
|
||||
@@ -335,15 +334,15 @@ struct IVariable
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Assign on set callback.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void AddOnSetCallback(OnSetCallback func) = 0;
|
||||
virtual void RemoveOnSetCallback(OnSetCallback func) = 0;
|
||||
virtual void AddOnSetCallback(OnSetCallback* func) = 0;
|
||||
virtual void RemoveOnSetCallback(OnSetCallback* func) = 0;
|
||||
virtual void ClearOnSetCallbacks() {}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Assign callback triggered when enums change.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual void AddOnSetEnumCallback(OnSetEnumCallback func) = 0;
|
||||
virtual void RemoveOnSetEnumCallback(OnSetCallback func) = 0;
|
||||
virtual void AddOnSetEnumCallback(OnSetEnumCallback* func) = 0;
|
||||
virtual void RemoveOnSetEnumCallback(OnSetCallback* func) = 0;
|
||||
virtual void ClearOnSetEnumCallbacks() {}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
@@ -489,7 +488,7 @@ public:
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void AddOnSetCallback(OnSetCallback func)
|
||||
void AddOnSetCallback(OnSetCallback* func)
|
||||
{
|
||||
if (!stl::find(m_onSetFuncs, func))
|
||||
{
|
||||
@@ -498,7 +497,7 @@ public:
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void RemoveOnSetCallback(OnSetCallback func)
|
||||
void RemoveOnSetCallback(OnSetCallback* func)
|
||||
{
|
||||
stl::find_and_erase(m_onSetFuncs, func);
|
||||
}
|
||||
@@ -509,7 +508,7 @@ public:
|
||||
m_onSetFuncs.clear();
|
||||
}
|
||||
|
||||
void AddOnSetEnumCallback(OnSetEnumCallback func) override
|
||||
void AddOnSetEnumCallback(OnSetEnumCallback* func) override
|
||||
{
|
||||
if (!stl::find(m_onSetEnumFuncs, func))
|
||||
{
|
||||
@@ -518,7 +517,7 @@ public:
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void RemoveOnSetEnumCallback(OnSetCallback func)
|
||||
void RemoveOnSetEnumCallback(OnSetCallback* func)
|
||||
{
|
||||
stl::find_and_erase(m_onSetEnumFuncs, func);
|
||||
}
|
||||
@@ -553,7 +552,7 @@ public:
|
||||
for (auto it = m_onSetFuncs.begin(); it != m_onSetFuncs.end(); ++it)
|
||||
{
|
||||
// Call on set callback.
|
||||
(*it)(this);
|
||||
(*it)->operator()(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -607,13 +606,13 @@ protected:
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// Variables.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
typedef std::vector<OnSetCallback> OnSetCallbackList;
|
||||
typedef std::vector<OnSetCallback*> OnSetCallbackList;
|
||||
typedef std::vector<IVariablePtr> WiredList;
|
||||
using OnSetEnumCallbackList = std::vector<OnSetEnumCallback>;
|
||||
using OnSetEnumCallbackList = std::vector<OnSetEnumCallback*>;
|
||||
|
||||
QString m_name;
|
||||
QString m_humanName;
|
||||
@@ -1637,7 +1636,7 @@ protected:
|
||||
for (auto it = m_onSetEnumFuncs.begin(); it != m_onSetEnumFuncs.end(); ++it)
|
||||
{
|
||||
// Call on set callback.
|
||||
(*it)(this);
|
||||
(*it)->operator()(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1829,9 +1828,9 @@ public:
|
||||
void Unwire(CVarBlock* varBlock);
|
||||
|
||||
//! Add this callback to every variable in block (recursively).
|
||||
void AddOnSetCallback(IVariable::OnSetCallback func);
|
||||
void AddOnSetCallback(IVariable::OnSetCallback* func);
|
||||
//! Remove this callback from every variable in block (recursively).
|
||||
void RemoveOnSetCallback(IVariable::OnSetCallback func);
|
||||
void RemoveOnSetCallback(IVariable::OnSetCallback* func);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void Serialize(XmlNodeRef vbNode, bool load);
|
||||
@@ -1848,7 +1847,7 @@ public:
|
||||
void Sort();
|
||||
|
||||
protected:
|
||||
void SetCallbackToVar(IVariable::OnSetCallback func, IVariable* pVar, bool bAdd);
|
||||
void SetCallbackToVar(IVariable::OnSetCallback* func, IVariable* pVar, bool bAdd);
|
||||
void WireVar(IVariable* src, IVariable* trg, bool bWire);
|
||||
void GatherUsedResourcesInVar(IVariable* pVar, CUsedResources& resources);
|
||||
|
||||
@@ -1874,9 +1873,9 @@ public:
|
||||
void Serialize(XmlNodeRef node, bool load);
|
||||
CVarBlock* GetVarBlock() const { return m_vars; };
|
||||
|
||||
void AddVariable(CVariableBase& var, const QString& varName, VarOnSetCallback cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void AddVariable(CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void AddVariable(CVariableArray& table, CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void AddVariable(CVariableBase& var, const QString& varName, VarOnSetCallback* cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void AddVariable(CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback* cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void AddVariable(CVariableArray& table, CVariableBase& var, const QString& varName, const QString& varHumanName, VarOnSetCallback* cb = NULL, unsigned char dataType = IVariable::DT_SIMPLE);
|
||||
void ReserveNumVariables(int numVars);
|
||||
void RemoveVariable(IVariable* var);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user