diff --git a/Engine/source/gui/editor/inspector/field.cpp b/Engine/source/gui/editor/inspector/field.cpp index 752ba61d2..f9bd3fc42 100644 --- a/Engine/source/gui/editor/inspector/field.cpp +++ b/Engine/source/gui/editor/inspector/field.cpp @@ -56,7 +56,8 @@ GuiInspectorField::GuiInspectorField( GuiInspector* inspector, mHeightOverride(18), mSpecialEditField(false), mVariableName(StringTable->EmptyString()), - mCallbackName(StringTable->EmptyString()) + mCallbackName(StringTable->EmptyString()), + mVariableType(StringTable->EmptyString()) { if( field != NULL ) mCaption = field->pFieldname; @@ -665,6 +666,8 @@ void GuiInspectorField::_executeSelectedCallback() { if( mField ) Con::executef( mInspector, "onFieldSelected", mField->pFieldname, ConsoleBaseType::getType(mField->type)->getTypeName(), mFieldDocs.c_str() ); + else if(mSpecialEditField) + Con::executef(mInspector, "onFieldSelected", mVariableName, mVariableType, mFieldDocs.c_str()); } //----------------------------------------------------------------------------- diff --git a/Engine/source/gui/editor/inspector/field.h b/Engine/source/gui/editor/inspector/field.h index 9b6e6d372..7ee5e1d80 100644 --- a/Engine/source/gui/editor/inspector/field.h +++ b/Engine/source/gui/editor/inspector/field.h @@ -97,6 +97,8 @@ class GuiInspectorField : public GuiControl StringTableEntry mVariableName; //Special edit field, callback name - if defined, we'll do a callback to the function listed here when editing the field StringTableEntry mCallbackName; + //Special edit field, variable type + StringTableEntry mVariableType; virtual void _registerEditControl( GuiControl *ctrl ); virtual void _executeSelectedCallback(); @@ -214,6 +216,9 @@ class GuiInspectorField : public GuiControl void setSpecialEditVariableName(StringTableEntry varName) { mVariableName = varName; } StringTableEntry getSpecialEditVariableName() { return mVariableName; } + void setSpecialEditVariableType(StringTableEntry varType) { mVariableType = varType; } + StringTableEntry getSpecialEditVariableType() { return mVariableType; } + void setSpecialEditCallbackName(StringTableEntry callName) { mCallbackName = callName; } DECLARE_CONOBJECT( GuiInspectorField ); diff --git a/Engine/source/gui/editor/inspector/group.cpp b/Engine/source/gui/editor/inspector/group.cpp index 4f2de4bff..a63652933 100644 --- a/Engine/source/gui/editor/inspector/group.cpp +++ b/Engine/source/gui/editor/inspector/group.cpp @@ -655,6 +655,7 @@ void GuiInspectorGroup::addInspectorField(StringTableEntry name, StringTableEntr StringTableEntry fieldName = StringTable->insert(name); fieldGui->setSpecialEditVariableName(fieldName); + fieldGui->setSpecialEditVariableType(typeName); fieldGui->setSpecialEditCallbackName(StringTable->insert(callbackName)); fieldGui->setInspectorField(NULL, fieldName);