mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
Replaced StringTable->insert("") with StringTable->EmptyString()
This commit is contained in:
parent
7cf20413c3
commit
332c06ae82
33 changed files with 1178 additions and 1178 deletions
|
|
@ -64,16 +64,16 @@
|
||||||
class fxFoliageItem
|
class fxFoliageItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MatrixF Transform;
|
MatrixF Transform;
|
||||||
F32 Width;
|
F32 Width;
|
||||||
F32 Height;
|
F32 Height;
|
||||||
Box3F FoliageBox;
|
Box3F FoliageBox;
|
||||||
bool Flipped;
|
bool Flipped;
|
||||||
F32 SwayPhase;
|
F32 SwayPhase;
|
||||||
F32 SwayTimeRatio;
|
F32 SwayTimeRatio;
|
||||||
F32 LightPhase;
|
F32 LightPhase;
|
||||||
F32 LightTimeRatio;
|
F32 LightTimeRatio;
|
||||||
U32 LastFrameSerialID;
|
U32 LastFrameSerialID;
|
||||||
};
|
};
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -104,9 +104,9 @@ public:
|
||||||
Box3F QuadrantBox;
|
Box3F QuadrantBox;
|
||||||
fxFoliageQuadrantNode* QuadrantChildNode[4];
|
fxFoliageQuadrantNode* QuadrantChildNode[4];
|
||||||
Vector<fxFoliageItem*> RenderList;
|
Vector<fxFoliageItem*> RenderList;
|
||||||
// Used in DrawIndexPrimitive call.
|
// Used in DrawIndexPrimitive call.
|
||||||
U32 startIndex;
|
U32 startIndex;
|
||||||
U32 primitiveCount;
|
U32 primitiveCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -152,7 +152,7 @@ protected:
|
||||||
|
|
||||||
void CreateFoliage(void);
|
void CreateFoliage(void);
|
||||||
void DestroyFoliage(void);
|
void DestroyFoliage(void);
|
||||||
void DestroyFoliageItems();
|
void DestroyFoliageItems();
|
||||||
|
|
||||||
|
|
||||||
void SyncFoliageReplicators(void);
|
void SyncFoliageReplicators(void);
|
||||||
|
|
@ -172,11 +172,11 @@ protected:
|
||||||
Vector<fxFoliageItem*> mReplicatedFoliage;
|
Vector<fxFoliageItem*> mReplicatedFoliage;
|
||||||
fxFoliageRenderList mFrustumRenderSet;
|
fxFoliageRenderList mFrustumRenderSet;
|
||||||
|
|
||||||
GFXVertexBufferHandle<GFXVertexFoliage> mVertexBuffer;
|
GFXVertexBufferHandle<GFXVertexFoliage> mVertexBuffer;
|
||||||
GFXPrimitiveBufferHandle mPrimBuffer;
|
GFXPrimitiveBufferHandle mPrimBuffer;
|
||||||
GFXShaderRef mShader;
|
GFXShaderRef mShader;
|
||||||
ShaderData* mShaderData;
|
ShaderData* mShaderData;
|
||||||
GBitmap* mAlphaLookup;
|
GBitmap* mAlphaLookup;
|
||||||
|
|
||||||
MRandomLCG RandomGen;
|
MRandomLCG RandomGen;
|
||||||
F32 mFadeInGradient;
|
F32 mFadeInGradient;
|
||||||
|
|
@ -193,8 +193,8 @@ protected:
|
||||||
U32 mNextAllocatedNodeIdx; // Next Allocated Node Index.
|
U32 mNextAllocatedNodeIdx; // Next Allocated Node Index.
|
||||||
U32 mBillboardsAcquired; // Billboards Acquired.
|
U32 mBillboardsAcquired; // Billboards Acquired.
|
||||||
|
|
||||||
// Used for alpha lookup in the pixel shader
|
// Used for alpha lookup in the pixel shader
|
||||||
GFXTexHandle mAlphaTexture;
|
GFXTexHandle mAlphaTexture;
|
||||||
|
|
||||||
GFXStateBlockRef mPlacementSB;
|
GFXStateBlockRef mPlacementSB;
|
||||||
GFXStateBlockRef mRenderSB;
|
GFXStateBlockRef mRenderSB;
|
||||||
|
|
@ -223,15 +223,15 @@ protected:
|
||||||
|
|
||||||
|
|
||||||
bool mDirty;
|
bool mDirty;
|
||||||
|
|
||||||
void SetupShader();
|
void SetupShader();
|
||||||
void SetupBuffers();
|
void SetupBuffers();
|
||||||
void renderObject(ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance*);
|
void renderObject(ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance*);
|
||||||
void renderBuffers(SceneRenderState* state);
|
void renderBuffers(SceneRenderState* state);
|
||||||
void renderArc(const F32 fRadiusX, const F32 fRadiusY);
|
void renderArc(const F32 fRadiusX, const F32 fRadiusY);
|
||||||
void renderPlacementArea(const F32 ElapsedTime);
|
void renderPlacementArea(const F32 ElapsedTime);
|
||||||
void renderQuad(fxFoliageQuadrantNode* quadNode, const MatrixF& RenderTransform, const bool UseDebug);
|
void renderQuad(fxFoliageQuadrantNode* quadNode, const MatrixF& RenderTransform, const bool UseDebug);
|
||||||
void computeAlphaTex();
|
void computeAlphaTex();
|
||||||
public:
|
public:
|
||||||
fxFoliageReplicator();
|
fxFoliageReplicator();
|
||||||
~fxFoliageReplicator();
|
~fxFoliageReplicator();
|
||||||
|
|
@ -325,7 +325,7 @@ public:
|
||||||
mUseDebugInfo = false;
|
mUseDebugInfo = false;
|
||||||
mDebugBoxHeight = 1.0f;
|
mDebugBoxHeight = 1.0f;
|
||||||
mSeed = 1376312589;
|
mSeed = 1376312589;
|
||||||
mFoliageFile = StringTable->insert("");
|
mFoliageFile = StringTable->EmptyString();
|
||||||
mFoliageTexture = GFXTexHandle();
|
mFoliageTexture = GFXTexHandle();
|
||||||
mFoliageCount = 10;
|
mFoliageCount = 10;
|
||||||
mFoliageRetries = 100;
|
mFoliageRetries = 100;
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ public:
|
||||||
{
|
{
|
||||||
// Set Defaults.
|
// Set Defaults.
|
||||||
mSeed = 1376312589;
|
mSeed = 1376312589;
|
||||||
mShapeFile = StringTable->insert("");
|
mShapeFile = StringTable->EmptyString();
|
||||||
mShapeCount = 10;
|
mShapeCount = 10;
|
||||||
mShapeRetries = 100;
|
mShapeRetries = 100;
|
||||||
mInnerRadiusX = 0;
|
mInnerRadiusX = 0;
|
||||||
|
|
|
||||||
|
|
@ -129,10 +129,10 @@ PrecipitationData::PrecipitationData()
|
||||||
{
|
{
|
||||||
soundProfile = NULL;
|
soundProfile = NULL;
|
||||||
|
|
||||||
mDropName = StringTable->insert("");
|
mDropName = StringTable->EmptyString();
|
||||||
mDropShaderName = StringTable->insert("");
|
mDropShaderName = StringTable->EmptyString();
|
||||||
mSplashName = StringTable->insert("");
|
mSplashName = StringTable->EmptyString();
|
||||||
mSplashShaderName = StringTable->insert("");
|
mSplashShaderName = StringTable->EmptyString();
|
||||||
|
|
||||||
mDropsPerSide = 4;
|
mDropsPerSide = 4;
|
||||||
mSplashesPerSide = 2;
|
mSplashesPerSide = 2;
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ RibbonData::RibbonData()
|
||||||
mUseFadeOut = false;
|
mUseFadeOut = false;
|
||||||
mFadeAwayStep = 0.032f;
|
mFadeAwayStep = 0.032f;
|
||||||
segmentsPerUpdate = 1;
|
segmentsPerUpdate = 1;
|
||||||
mMatName = StringTable->insert("");
|
mMatName = StringTable->EmptyString();
|
||||||
mTileScale = 1.0f;
|
mTileScale = 1.0f;
|
||||||
mFixedTexcoords = false;
|
mFixedTexcoords = false;
|
||||||
mSegmentSkipAmount = 0;
|
mSegmentSkipAmount = 0;
|
||||||
|
|
@ -318,7 +318,7 @@ void Ribbon::processTick(const Move* move)
|
||||||
safeDeleteObject();
|
safeDeleteObject();
|
||||||
return;
|
return;
|
||||||
//}
|
//}
|
||||||
//mSegmentPoints.pop_back();
|
//mSegmentPoints.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -456,7 +456,7 @@ void Ribbon::setShaderParams() {
|
||||||
F32 length = (F32)mDataBlock->mRibbonLength;
|
F32 length = (F32)mDataBlock->mRibbonLength;
|
||||||
Point3F radius(numSegments / length, numSegments, length);
|
Point3F radius(numSegments / length, numSegments, length);
|
||||||
MaterialParameters* matParams = mRibbonMat->getMaterialParameters();
|
MaterialParameters* matParams = mRibbonMat->getMaterialParameters();
|
||||||
matParams->setSafe( mRadiusSC, radius );
|
matParams->setSafe( mRadiusSC, radius );
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,7 @@ ConsoleDocClass( WayPoint,
|
||||||
|
|
||||||
WayPoint::WayPoint()
|
WayPoint::WayPoint()
|
||||||
{
|
{
|
||||||
mName = StringTable->insert("");
|
mName = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WayPoint::setHidden(bool hidden)
|
void WayPoint::setHidden(bool hidden)
|
||||||
|
|
@ -256,7 +256,7 @@ void WayPoint::inspectPostApply()
|
||||||
{
|
{
|
||||||
Parent::inspectPostApply();
|
Parent::inspectPostApply();
|
||||||
if(!mName || !mName[0])
|
if(!mName || !mName[0])
|
||||||
mName = StringTable->insert("");
|
mName = StringTable->EmptyString();
|
||||||
setMaskBits(UpdateNameMask|UpdateTeamMask);
|
setMaskBits(UpdateNameMask|UpdateTeamMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -281,7 +281,7 @@ void WayPoint::unpackUpdate(NetConnection * con, BitStream * stream)
|
||||||
|
|
||||||
void WayPoint::initPersistFields()
|
void WayPoint::initPersistFields()
|
||||||
{
|
{
|
||||||
addGroup("Misc");
|
addGroup("Misc");
|
||||||
addField("markerName", TypeCaseString, Offset(mName, WayPoint), "Unique name representing this waypoint");
|
addField("markerName", TypeCaseString, Offset(mName, WayPoint), "Unique name representing this waypoint");
|
||||||
endGroup("Misc");
|
endGroup("Misc");
|
||||||
Parent::initPersistFields();
|
Parent::initPersistFields();
|
||||||
|
|
@ -363,7 +363,7 @@ bool SpawnSphere::onAdd()
|
||||||
|
|
||||||
if (!isGhost())
|
if (!isGhost())
|
||||||
{
|
{
|
||||||
onAdd_callback( getId());
|
onAdd_callback( getId());
|
||||||
|
|
||||||
if (mAutoSpawn)
|
if (mAutoSpawn)
|
||||||
spawnObject();
|
spawnObject();
|
||||||
|
|
@ -527,7 +527,7 @@ ConsoleDocClass( CameraBookmark,
|
||||||
|
|
||||||
CameraBookmark::CameraBookmark()
|
CameraBookmark::CameraBookmark()
|
||||||
{
|
{
|
||||||
mName = StringTable->insert("");
|
mName = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CameraBookmark::onAdd()
|
bool CameraBookmark::onAdd()
|
||||||
|
|
@ -571,7 +571,7 @@ void CameraBookmark::inspectPostApply()
|
||||||
{
|
{
|
||||||
Parent::inspectPostApply();
|
Parent::inspectPostApply();
|
||||||
if(!mName || !mName[0])
|
if(!mName || !mName[0])
|
||||||
mName = StringTable->insert("");
|
mName = StringTable->EmptyString();
|
||||||
setMaskBits(UpdateNameMask);
|
setMaskBits(UpdateNameMask);
|
||||||
|
|
||||||
if( isMethod("onInspectPostApply") )
|
if( isMethod("onInspectPostApply") )
|
||||||
|
|
@ -595,7 +595,7 @@ void CameraBookmark::unpackUpdate(NetConnection * con, BitStream * stream)
|
||||||
|
|
||||||
void CameraBookmark::initPersistFields()
|
void CameraBookmark::initPersistFields()
|
||||||
{
|
{
|
||||||
//addGroup("Misc");
|
//addGroup("Misc");
|
||||||
//addField("name", TypeCaseString, Offset(mName, CameraBookmark));
|
//addField("name", TypeCaseString, Offset(mName, CameraBookmark));
|
||||||
//endGroup("Misc");
|
//endGroup("Misc");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -257,15 +257,15 @@ PlayerData::PlayerData()
|
||||||
firstPersonShadows = false;
|
firstPersonShadows = false;
|
||||||
|
|
||||||
// Used for third person image rendering
|
// Used for third person image rendering
|
||||||
imageAnimPrefix = StringTable->insert("");
|
imageAnimPrefix = StringTable->EmptyString();
|
||||||
|
|
||||||
allowImageStateAnimation = false;
|
allowImageStateAnimation = false;
|
||||||
|
|
||||||
// Used for first person image rendering
|
// Used for first person image rendering
|
||||||
imageAnimPrefixFP = StringTable->insert("");
|
imageAnimPrefixFP = StringTable->EmptyString();
|
||||||
for (U32 i=0; i<ShapeBase::MaxMountedImages; ++i)
|
for (U32 i=0; i<ShapeBase::MaxMountedImages; ++i)
|
||||||
{
|
{
|
||||||
shapeNameFP[i] = StringTable->insert("");
|
shapeNameFP[i] = StringTable->EmptyString();
|
||||||
mCRCFP[i] = 0;
|
mCRCFP[i] = 0;
|
||||||
mValidShapeFP[i] = false;
|
mValidShapeFP[i] = false;
|
||||||
}
|
}
|
||||||
|
|
@ -418,7 +418,7 @@ PlayerData::PlayerData()
|
||||||
|
|
||||||
jumpTowardsNormal = true;
|
jumpTowardsNormal = true;
|
||||||
|
|
||||||
physicsPlayerType = StringTable->insert("");
|
physicsPlayerType = StringTable->EmptyString();
|
||||||
|
|
||||||
dMemset( actionList, 0, sizeof(actionList) );
|
dMemset( actionList, 0, sizeof(actionList) );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,13 +152,13 @@ ShapeBaseData::ShapeBaseData()
|
||||||
shadowMaxVisibleDistance( 80.0f ),
|
shadowMaxVisibleDistance( 80.0f ),
|
||||||
shadowProjectionDistance( 10.0f ),
|
shadowProjectionDistance( 10.0f ),
|
||||||
shadowSphereAdjust( 1.0f ),
|
shadowSphereAdjust( 1.0f ),
|
||||||
shapeName( StringTable->insert("") ),
|
shapeName( StringTable->EmptyString() ),
|
||||||
cloakTexName( StringTable->insert("") ),
|
cloakTexName( StringTable->EmptyString() ),
|
||||||
cubeDescId( 0 ),
|
cubeDescId( 0 ),
|
||||||
reflectorDesc( NULL ),
|
reflectorDesc( NULL ),
|
||||||
debris( NULL ),
|
debris( NULL ),
|
||||||
debrisID( 0 ),
|
debrisID( 0 ),
|
||||||
debrisShapeName( StringTable->insert("") ),
|
debrisShapeName( StringTable->EmptyString() ),
|
||||||
explosion( NULL ),
|
explosion( NULL ),
|
||||||
explosionID( 0 ),
|
explosionID( 0 ),
|
||||||
underwaterExplosion( NULL ),
|
underwaterExplosion( NULL ),
|
||||||
|
|
@ -447,12 +447,12 @@ bool ShapeBaseData::_setMass( void* object, const char* index, const char* data
|
||||||
{
|
{
|
||||||
ShapeBaseData* shape = reinterpret_cast< ShapeBaseData* >( object );
|
ShapeBaseData* shape = reinterpret_cast< ShapeBaseData* >( object );
|
||||||
|
|
||||||
F32 mass = dAtof(data);
|
F32 mass = dAtof(data);
|
||||||
|
|
||||||
if (mass <= 0)
|
if (mass <= 0)
|
||||||
mass = 0.01f;
|
mass = 0.01f;
|
||||||
|
|
||||||
shape->mass = mass;
|
shape->mass = mass;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -935,8 +935,8 @@ ShapeBase::ShapeBase()
|
||||||
mScriptThread[i].thread = 0;
|
mScriptThread[i].thread = 0;
|
||||||
mScriptThread[i].state = Thread::Stop;
|
mScriptThread[i].state = Thread::Stop;
|
||||||
mScriptThread[i].atEnd = false;
|
mScriptThread[i].atEnd = false;
|
||||||
mScriptThread[i].timescale = 1.f;
|
mScriptThread[i].timescale = 1.f;
|
||||||
mScriptThread[i].position = -1.f;
|
mScriptThread[i].position = -1.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < MaxTriggerKeys; i++)
|
for (i = 0; i < MaxTriggerKeys; i++)
|
||||||
|
|
@ -1042,7 +1042,7 @@ bool ShapeBase::onAdd()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if(mDataBlock->cloakTexName != StringTable->insert(""))
|
if(mDataBlock->cloakTexName != StringTable->EmptyString())
|
||||||
mCloakTexture = TextureHandle(mDataBlock->cloakTexName, MeshTexture, false);
|
mCloakTexture = TextureHandle(mDataBlock->cloakTexName, MeshTexture, false);
|
||||||
*/
|
*/
|
||||||
// Accumulation and environment mapping
|
// Accumulation and environment mapping
|
||||||
|
|
@ -1512,8 +1512,8 @@ void ShapeBase::onCameraScopeQuery(NetConnection *cr, CameraScopeQuery * query)
|
||||||
eyeTransform.getColumn(1, &query->orientation);
|
eyeTransform.getColumn(1, &query->orientation);
|
||||||
|
|
||||||
// Get the visible distance.
|
// Get the visible distance.
|
||||||
if (getSceneManager() != NULL)
|
if (getSceneManager() != NULL)
|
||||||
query->visibleDistance = getSceneManager()->getVisibleDistance();
|
query->visibleDistance = getSceneManager()->getVisibleDistance();
|
||||||
|
|
||||||
Parent::onCameraScopeQuery( cr, query );
|
Parent::onCameraScopeQuery( cr, query );
|
||||||
}
|
}
|
||||||
|
|
@ -2154,18 +2154,18 @@ void ShapeBase::updateAudioPos()
|
||||||
|
|
||||||
const char *ShapeBase::getThreadSequenceName( U32 slot )
|
const char *ShapeBase::getThreadSequenceName( U32 slot )
|
||||||
{
|
{
|
||||||
Thread& st = mScriptThread[slot];
|
Thread& st = mScriptThread[slot];
|
||||||
if ( st.sequence == -1 )
|
if ( st.sequence == -1 )
|
||||||
{
|
{
|
||||||
// Invalid Animation.
|
// Invalid Animation.
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name Index
|
// Name Index
|
||||||
const U32 nameIndex = getShape()->sequences[st.sequence].nameIndex;
|
const U32 nameIndex = getShape()->sequences[st.sequence].nameIndex;
|
||||||
|
|
||||||
// Return Name.
|
// Return Name.
|
||||||
return getShape()->getName( nameIndex );
|
return getShape()->getName( nameIndex );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeBase::setThreadSequence(U32 slot, S32 seq, bool reset)
|
bool ShapeBase::setThreadSequence(U32 slot, S32 seq, bool reset)
|
||||||
|
|
@ -2200,39 +2200,39 @@ bool ShapeBase::setThreadSequence(U32 slot, S32 seq, bool reset)
|
||||||
|
|
||||||
void ShapeBase::updateThread(Thread& st)
|
void ShapeBase::updateThread(Thread& st)
|
||||||
{
|
{
|
||||||
switch (st.state)
|
switch (st.state)
|
||||||
{
|
{
|
||||||
case Thread::Stop:
|
case Thread::Stop:
|
||||||
{
|
{
|
||||||
mShapeInstance->setTimeScale( st.thread, 1.f );
|
mShapeInstance->setTimeScale( st.thread, 1.f );
|
||||||
mShapeInstance->setPos( st.thread, ( st.timescale > 0.f ) ? 1.0f : 0.0f );
|
mShapeInstance->setPos( st.thread, ( st.timescale > 0.f ) ? 1.0f : 0.0f );
|
||||||
} // Drop through to pause state
|
} // Drop through to pause state
|
||||||
|
|
||||||
case Thread::Pause:
|
case Thread::Pause:
|
||||||
{
|
{
|
||||||
mShapeInstance->setTimeScale( st.thread, 0.f );
|
mShapeInstance->setTimeScale( st.thread, 0.f );
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Thread::Play:
|
case Thread::Play:
|
||||||
{
|
{
|
||||||
if (st.atEnd)
|
if (st.atEnd)
|
||||||
{
|
{
|
||||||
mShapeInstance->setTimeScale(st.thread,1);
|
mShapeInstance->setTimeScale(st.thread,1);
|
||||||
mShapeInstance->setPos( st.thread, ( st.timescale > 0.f ) ? 1.0f : 0.0f );
|
mShapeInstance->setPos( st.thread, ( st.timescale > 0.f ) ? 1.0f : 0.0f );
|
||||||
mShapeInstance->setTimeScale(st.thread,0);
|
mShapeInstance->setTimeScale(st.thread,0);
|
||||||
st.state = Thread::Stop;
|
st.state = Thread::Stop;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( st.position != -1.f )
|
if ( st.position != -1.f )
|
||||||
{
|
{
|
||||||
mShapeInstance->setTimeScale( st.thread, 1.f );
|
mShapeInstance->setTimeScale( st.thread, 1.f );
|
||||||
mShapeInstance->setPos( st.thread, st.position );
|
mShapeInstance->setPos( st.thread, st.position );
|
||||||
}
|
}
|
||||||
|
|
||||||
mShapeInstance->setTimeScale(st.thread, st.timescale );
|
mShapeInstance->setTimeScale(st.thread, st.timescale );
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case Thread::Destroy:
|
case Thread::Destroy:
|
||||||
{
|
{
|
||||||
|
|
@ -2244,7 +2244,7 @@ void ShapeBase::updateThread(Thread& st)
|
||||||
st.thread = 0;
|
st.thread = 0;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeBase::stopThread(U32 slot)
|
bool ShapeBase::stopThread(U32 slot)
|
||||||
|
|
@ -2297,50 +2297,50 @@ bool ShapeBase::playThread(U32 slot)
|
||||||
|
|
||||||
bool ShapeBase::setThreadPosition( U32 slot, F32 pos )
|
bool ShapeBase::setThreadPosition( U32 slot, F32 pos )
|
||||||
{
|
{
|
||||||
Thread& st = mScriptThread[slot];
|
Thread& st = mScriptThread[slot];
|
||||||
if (st.sequence != -1)
|
if (st.sequence != -1)
|
||||||
{
|
{
|
||||||
setMaskBits(ThreadMaskN << slot);
|
setMaskBits(ThreadMaskN << slot);
|
||||||
st.position = pos;
|
st.position = pos;
|
||||||
st.atEnd = false;
|
st.atEnd = false;
|
||||||
updateThread(st);
|
updateThread(st);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeBase::setThreadDir(U32 slot,bool forward)
|
bool ShapeBase::setThreadDir(U32 slot,bool forward)
|
||||||
{
|
{
|
||||||
Thread& st = mScriptThread[slot];
|
Thread& st = mScriptThread[slot];
|
||||||
if (st.sequence != -1)
|
if (st.sequence != -1)
|
||||||
{
|
{
|
||||||
if ( ( st.timescale >= 0.f ) != forward )
|
if ( ( st.timescale >= 0.f ) != forward )
|
||||||
{
|
{
|
||||||
setMaskBits(ThreadMaskN << slot);
|
setMaskBits(ThreadMaskN << slot);
|
||||||
st.timescale *= -1.f ;
|
st.timescale *= -1.f ;
|
||||||
st.atEnd = false;
|
st.atEnd = false;
|
||||||
updateThread(st);
|
updateThread(st);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShapeBase::setThreadTimeScale( U32 slot, F32 timeScale )
|
bool ShapeBase::setThreadTimeScale( U32 slot, F32 timeScale )
|
||||||
{
|
{
|
||||||
Thread& st = mScriptThread[slot];
|
Thread& st = mScriptThread[slot];
|
||||||
if (st.sequence != -1)
|
if (st.sequence != -1)
|
||||||
{
|
{
|
||||||
if (st.timescale != timeScale)
|
if (st.timescale != timeScale)
|
||||||
{
|
{
|
||||||
setMaskBits(ThreadMaskN << slot);
|
setMaskBits(ThreadMaskN << slot);
|
||||||
st.timescale = timeScale;
|
st.timescale = timeScale;
|
||||||
updateThread(st);
|
updateThread(st);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeBase::advanceThreads(F32 dt)
|
void ShapeBase::advanceThreads(F32 dt)
|
||||||
|
|
@ -2349,7 +2349,7 @@ void ShapeBase::advanceThreads(F32 dt)
|
||||||
Thread& st = mScriptThread[i];
|
Thread& st = mScriptThread[i];
|
||||||
if (st.thread) {
|
if (st.thread) {
|
||||||
if (!mShapeInstance->getShape()->sequences[st.sequence].isCyclic() && !st.atEnd &&
|
if (!mShapeInstance->getShape()->sequences[st.sequence].isCyclic() && !st.atEnd &&
|
||||||
( ( st.timescale > 0.f )? mShapeInstance->getPos(st.thread) >= 1.0:
|
( ( st.timescale > 0.f )? mShapeInstance->getPos(st.thread) >= 1.0:
|
||||||
mShapeInstance->getPos(st.thread) <= 0)) {
|
mShapeInstance->getPos(st.thread) <= 0)) {
|
||||||
st.atEnd = true;
|
st.atEnd = true;
|
||||||
updateThread(st);
|
updateThread(st);
|
||||||
|
|
@ -4392,7 +4392,7 @@ DefineEngineMethod( ShapeBase, isEnabled, bool, (),,
|
||||||
|
|
||||||
DefineEngineMethod(ShapeBase, blowUp, void, (),, "@brief Explodes an object into pieces.")
|
DefineEngineMethod(ShapeBase, blowUp, void, (),, "@brief Explodes an object into pieces.")
|
||||||
{
|
{
|
||||||
object->blowUp();
|
object->blowUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( ShapeBase, applyDamage, void, ( F32 amount ),,
|
DefineEngineMethod( ShapeBase, applyDamage, void, ( F32 amount ),,
|
||||||
|
|
@ -4696,22 +4696,22 @@ void ShapeBase::consoleInit()
|
||||||
"@see ShapeBase::setDamageFlash()\n"
|
"@see ShapeBase::setDamageFlash()\n"
|
||||||
"@see ShapeBase::getDamageFlash()\n"
|
"@see ShapeBase::getDamageFlash()\n"
|
||||||
"@note Relies on the flash postFx.\n"
|
"@note Relies on the flash postFx.\n"
|
||||||
"@ingroup gameObjects\n");
|
"@ingroup gameObjects\n");
|
||||||
Con::addVariable("SB::WODec", TypeF32, &sWhiteoutDec, "Speed to reduce the whiteout effect per tick.\n\n"
|
Con::addVariable("SB::WODec", TypeF32, &sWhiteoutDec, "Speed to reduce the whiteout effect per tick.\n\n"
|
||||||
"@see ShapeBase::setWhiteOut()\n"
|
"@see ShapeBase::setWhiteOut()\n"
|
||||||
"@see ShapeBase::getWhiteOut"
|
"@see ShapeBase::getWhiteOut"
|
||||||
"@note Relies on the flash postFx.\n"
|
"@note Relies on the flash postFx.\n"
|
||||||
"@ingroup gameObjects\n");
|
"@ingroup gameObjects\n");
|
||||||
Con::addVariable("SB::FullCorrectionDistance", TypeF32, &sFullCorrectionDistance,
|
Con::addVariable("SB::FullCorrectionDistance", TypeF32, &sFullCorrectionDistance,
|
||||||
"@brief Distance at which a weapon's muzzle vector is fully corrected to match where the player is looking.\n\n"
|
"@brief Distance at which a weapon's muzzle vector is fully corrected to match where the player is looking.\n\n"
|
||||||
"When a weapon image has correctMuzzleVector set and the Player is in 1st person, the muzzle vector from the "
|
"When a weapon image has correctMuzzleVector set and the Player is in 1st person, the muzzle vector from the "
|
||||||
"weapon is modified to match where the player is looking. Beyond the FullCorrectionDistance the muzzle vector "
|
"weapon is modified to match where the player is looking. Beyond the FullCorrectionDistance the muzzle vector "
|
||||||
"is always corrected. Between FullCorrectionDistance and the player, the weapon's muzzle vector is adjusted so that "
|
"is always corrected. Between FullCorrectionDistance and the player, the weapon's muzzle vector is adjusted so that "
|
||||||
"the closer the aim point is to the player, the closer the muzzle vector is to the true (non-corrected) one.\n"
|
"the closer the aim point is to the player, the closer the muzzle vector is to the true (non-corrected) one.\n"
|
||||||
"@ingroup gameObjects\n");
|
"@ingroup gameObjects\n");
|
||||||
Con::addVariable("SB::CloakSpeed", TypeF32, &sCloakSpeed,
|
Con::addVariable("SB::CloakSpeed", TypeF32, &sCloakSpeed,
|
||||||
"@brief Time to cloak, in seconds.\n\n"
|
"@brief Time to cloak, in seconds.\n\n"
|
||||||
"@ingroup gameObjects\n");
|
"@ingroup gameObjects\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShapeBase::_updateHiddenMeshes()
|
void ShapeBase::_updateHiddenMeshes()
|
||||||
|
|
@ -4832,17 +4832,17 @@ DefineEngineMethod( ShapeBase, getTargetName, const char*, ( S32 index ),,
|
||||||
|
|
||||||
"@see getTargetCount()\n")
|
"@see getTargetCount()\n")
|
||||||
{
|
{
|
||||||
ShapeBase *obj = dynamic_cast< ShapeBase* > ( object );
|
ShapeBase *obj = dynamic_cast< ShapeBase* > ( object );
|
||||||
if(obj)
|
if(obj)
|
||||||
{
|
{
|
||||||
// Try to use the client object (so we get the reskinned targets in the Material Editor)
|
// Try to use the client object (so we get the reskinned targets in the Material Editor)
|
||||||
if ((ShapeBase*)obj->getClientObject())
|
if ((ShapeBase*)obj->getClientObject())
|
||||||
obj = (ShapeBase*)obj->getClientObject();
|
obj = (ShapeBase*)obj->getClientObject();
|
||||||
|
|
||||||
return obj->getShapeInstance()->getTargetName(index);
|
return obj->getShapeInstance()->getTargetName(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( ShapeBase, getTargetCount, S32, (),,
|
DefineEngineMethod( ShapeBase, getTargetCount, S32, (),,
|
||||||
|
|
@ -4861,7 +4861,7 @@ DefineEngineMethod( ShapeBase, getTargetCount, S32, (),,
|
||||||
|
|
||||||
if (obj->getShapeInstance() != NULL)
|
if (obj->getShapeInstance() != NULL)
|
||||||
return obj->getShapeInstance()->getTargetCount();
|
return obj->getShapeInstance()->getTargetCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
@ -4938,10 +4938,10 @@ DefineEngineMethod( ShapeBase, getModelFile, const char *, (),,
|
||||||
|
|
||||||
"@return the shape filename\n\n" )
|
"@return the shape filename\n\n" )
|
||||||
{
|
{
|
||||||
GameBaseData * datablock = object->getDataBlock();
|
GameBaseData * datablock = object->getDataBlock();
|
||||||
if( !datablock )
|
if( !datablock )
|
||||||
return String::EmptyString;
|
return String::EmptyString;
|
||||||
|
|
||||||
const char *fieldName = StringTable->insert( String("shapeFile") );
|
const char *fieldName = StringTable->insert( String("shapeFile") );
|
||||||
return datablock->getDataField( fieldName, NULL );
|
return datablock->getDataField( fieldName, NULL );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -504,13 +504,13 @@ const char* SimXMLDocument::elementValue()
|
||||||
{
|
{
|
||||||
if(m_paNode.empty())
|
if(m_paNode.empty())
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
const S32 iLastElement = m_paNode.size() - 1;
|
const S32 iLastElement = m_paNode.size() - 1;
|
||||||
TiXmlElement* pNode = m_paNode[iLastElement];
|
TiXmlElement* pNode = m_paNode[iLastElement];
|
||||||
if(!pNode)
|
if(!pNode)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return pNode->Value();
|
return pNode->Value();
|
||||||
|
|
@ -545,18 +545,18 @@ const char* SimXMLDocument::attribute(const char* rAttribute)
|
||||||
{
|
{
|
||||||
if(m_paNode.empty())
|
if(m_paNode.empty())
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
const S32 iLastElement = m_paNode.size() - 1;
|
const S32 iLastElement = m_paNode.size() - 1;
|
||||||
TiXmlElement* pNode = m_paNode[iLastElement];
|
TiXmlElement* pNode = m_paNode[iLastElement];
|
||||||
if(!pNode)
|
if(!pNode)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!pNode->Attribute(rAttribute))
|
if(!pNode->Attribute(rAttribute))
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return pNode->Attribute(rAttribute);
|
return pNode->Attribute(rAttribute);
|
||||||
|
|
@ -629,20 +629,20 @@ const char* SimXMLDocument::firstAttribute()
|
||||||
// Get the current element
|
// Get the current element
|
||||||
if(m_paNode.empty())
|
if(m_paNode.empty())
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
const S32 iLastElement = m_paNode.size() - 1;
|
const S32 iLastElement = m_paNode.size() - 1;
|
||||||
TiXmlElement* pNode = m_paNode[iLastElement];
|
TiXmlElement* pNode = m_paNode[iLastElement];
|
||||||
if(!pNode)
|
if(!pNode)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets its first attribute, if any
|
// Gets its first attribute, if any
|
||||||
m_CurrentAttribute = pNode->FirstAttribute();
|
m_CurrentAttribute = pNode->FirstAttribute();
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_CurrentAttribute->Name();
|
return m_CurrentAttribute->Name();
|
||||||
|
|
@ -666,20 +666,20 @@ const char* SimXMLDocument::lastAttribute()
|
||||||
// Get the current element
|
// Get the current element
|
||||||
if(m_paNode.empty())
|
if(m_paNode.empty())
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
const S32 iLastElement = m_paNode.size() - 1;
|
const S32 iLastElement = m_paNode.size() - 1;
|
||||||
TiXmlElement* pNode = m_paNode[iLastElement];
|
TiXmlElement* pNode = m_paNode[iLastElement];
|
||||||
if(!pNode)
|
if(!pNode)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets its last attribute, if any
|
// Gets its last attribute, if any
|
||||||
m_CurrentAttribute = pNode->LastAttribute();
|
m_CurrentAttribute = pNode->LastAttribute();
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_CurrentAttribute->Name();
|
return m_CurrentAttribute->Name();
|
||||||
|
|
@ -703,14 +703,14 @@ const char* SimXMLDocument::nextAttribute()
|
||||||
{
|
{
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets its next attribute, if any
|
// Gets its next attribute, if any
|
||||||
m_CurrentAttribute = m_CurrentAttribute->Next();
|
m_CurrentAttribute = m_CurrentAttribute->Next();
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_CurrentAttribute->Name();
|
return m_CurrentAttribute->Name();
|
||||||
|
|
@ -734,14 +734,14 @@ const char* SimXMLDocument::prevAttribute()
|
||||||
{
|
{
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets its next attribute, if any
|
// Gets its next attribute, if any
|
||||||
m_CurrentAttribute = m_CurrentAttribute->Previous();
|
m_CurrentAttribute = m_CurrentAttribute->Previous();
|
||||||
if(!m_CurrentAttribute)
|
if(!m_CurrentAttribute)
|
||||||
{
|
{
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return m_CurrentAttribute->Name();
|
return m_CurrentAttribute->Name();
|
||||||
|
|
|
||||||
|
|
@ -411,7 +411,7 @@ ObjectDeclNode *ObjectDeclNode::alloc( S32 lineNumber, ExprNode *classNameExpr,
|
||||||
if(parentObject)
|
if(parentObject)
|
||||||
ret->parentObject = parentObject;
|
ret->parentObject = parentObject;
|
||||||
else
|
else
|
||||||
ret->parentObject = StringTable->insert("");
|
ret->parentObject = StringTable->EmptyString();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -435,7 +435,7 @@ bool CodeBlock::read(StringTableEntry fileName, Stream &st)
|
||||||
if(offset < globalSize)
|
if(offset < globalSize)
|
||||||
ste = StringTable->insert(globalStrings + offset);
|
ste = StringTable->insert(globalStrings + offset);
|
||||||
else
|
else
|
||||||
ste = StringTable->insert("");
|
ste = StringTable->EmptyString();
|
||||||
U32 count;
|
U32 count;
|
||||||
st.read(&count);
|
st.read(&count);
|
||||||
while(count--)
|
while(count--)
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@ ConsoleDocClass( FieldBrushObject,
|
||||||
FieldBrushObject::FieldBrushObject()
|
FieldBrushObject::FieldBrushObject()
|
||||||
{
|
{
|
||||||
// Reset Description.
|
// Reset Description.
|
||||||
mDescription = StringTable->insert("");
|
mDescription = StringTable->EmptyString();
|
||||||
mSortName = StringTable->insert("");
|
mSortName = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -328,7 +328,7 @@ void PersistenceManager::parseObject()
|
||||||
|
|
||||||
if (mParser.tokenICmp(")"))
|
if (mParser.tokenICmp(")"))
|
||||||
{
|
{
|
||||||
mCurrentObject->name = StringTable->insert("");
|
mCurrentObject->name = StringTable->EmptyString();
|
||||||
|
|
||||||
mCurrentObject->nameLine = mParser.getCurrentLine();
|
mCurrentObject->nameLine = mParser.getCurrentLine();
|
||||||
mCurrentObject->namePosition = mParser.getTokenLineOffset();
|
mCurrentObject->namePosition = mParser.getTokenLineOffset();
|
||||||
|
|
|
||||||
|
|
@ -59,21 +59,21 @@ ConsoleDocClass( GuiIconButtonCtrl,
|
||||||
"has been clicked.\n\n"
|
"has been clicked.\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"new GuiIconButtonCtrl(TestIconButton)\n"
|
"new GuiIconButtonCtrl(TestIconButton)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" buttonMargin = \"4 4\";\n"
|
" buttonMargin = \"4 4\";\n"
|
||||||
" iconBitmap = \"art/gui/lagIcon.png\";\n"
|
" iconBitmap = \"art/gui/lagIcon.png\";\n"
|
||||||
" iconLocation = \"Center\";\n"
|
" iconLocation = \"Center\";\n"
|
||||||
" sizeIconToButton = \"0\";\n"
|
" sizeIconToButton = \"0\";\n"
|
||||||
" makeIconSquare = \"1\";\n"
|
" makeIconSquare = \"1\";\n"
|
||||||
" textLocation = \"Bottom\";\n"
|
" textLocation = \"Bottom\";\n"
|
||||||
" textMargin = \"-2\";\n"
|
" textMargin = \"-2\";\n"
|
||||||
" autoSize = \"0\";\n"
|
" autoSize = \"0\";\n"
|
||||||
" text = \"Lag Icon\";\n"
|
" text = \"Lag Icon\";\n"
|
||||||
" textID = \"\"STR_LAG\"\";\n"
|
" textID = \"\"STR_LAG\"\";\n"
|
||||||
" buttonType = \"PushButton\";\n"
|
" buttonType = \"PushButton\";\n"
|
||||||
" profile = \"GuiIconButtonProfile\";\n"
|
" profile = \"GuiIconButtonProfile\";\n"
|
||||||
"};\n"
|
"};\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@see GuiControl\n"
|
"@see GuiControl\n"
|
||||||
|
|
@ -85,7 +85,7 @@ ConsoleDocClass( GuiIconButtonCtrl,
|
||||||
|
|
||||||
GuiIconButtonCtrl::GuiIconButtonCtrl()
|
GuiIconButtonCtrl::GuiIconButtonCtrl()
|
||||||
{
|
{
|
||||||
mBitmapName = StringTable->insert("");
|
mBitmapName = StringTable->EmptyString();
|
||||||
mTextLocation = TextLocLeft;
|
mTextLocation = TextLocLeft;
|
||||||
mIconLocation = IconLocLeft;
|
mIconLocation = IconLocLeft;
|
||||||
mTextMargin = 4;
|
mTextMargin = 4;
|
||||||
|
|
@ -94,7 +94,7 @@ GuiIconButtonCtrl::GuiIconButtonCtrl()
|
||||||
mFitBitmapToButton = false;
|
mFitBitmapToButton = false;
|
||||||
mMakeIconSquare = false;
|
mMakeIconSquare = false;
|
||||||
|
|
||||||
mErrorBitmapName = StringTable->insert("");
|
mErrorBitmapName = StringTable->EmptyString();
|
||||||
mErrorTextureHandle = NULL;
|
mErrorTextureHandle = NULL;
|
||||||
|
|
||||||
mAutoSize = false;
|
mAutoSize = false;
|
||||||
|
|
@ -130,7 +130,7 @@ void GuiIconButtonCtrl::initPersistFields()
|
||||||
addField( "sizeIconToButton", TypeBool, Offset( mFitBitmapToButton, GuiIconButtonCtrl ),"If true, the icon will be scaled to be the same size as the button.\n");
|
addField( "sizeIconToButton", TypeBool, Offset( mFitBitmapToButton, GuiIconButtonCtrl ),"If true, the icon will be scaled to be the same size as the button.\n");
|
||||||
addField( "makeIconSquare", TypeBool, Offset( mMakeIconSquare, GuiIconButtonCtrl ),"If true, will make sure the icon is square.\n");
|
addField( "makeIconSquare", TypeBool, Offset( mMakeIconSquare, GuiIconButtonCtrl ),"If true, will make sure the icon is square.\n");
|
||||||
addField( "textLocation", TYPEID< TextLocation >(), Offset( mTextLocation, GuiIconButtonCtrl ),"Where to place the text on the control.\n"
|
addField( "textLocation", TYPEID< TextLocation >(), Offset( mTextLocation, GuiIconButtonCtrl ),"Where to place the text on the control.\n"
|
||||||
"Options are 0 (None), 1 (Bottom), 2 (Right), 3 (Top), 4 (Left), 5 (Center).\n");
|
"Options are 0 (None), 1 (Bottom), 2 (Right), 3 (Top), 4 (Left), 5 (Center).\n");
|
||||||
addField( "textMargin", TypeS32, Offset( mTextMargin, GuiIconButtonCtrl ),"Margin between the icon and the text.\n");
|
addField( "textMargin", TypeS32, Offset( mTextMargin, GuiIconButtonCtrl ),"Margin between the icon and the text.\n");
|
||||||
addField( "autoSize", TypeBool, Offset( mAutoSize, GuiIconButtonCtrl ),"If true, the text and icon will be automatically sized to the size of the control.\n");
|
addField( "autoSize", TypeBool, Offset( mAutoSize, GuiIconButtonCtrl ),"If true, the text and icon will be automatically sized to the size of the control.\n");
|
||||||
Parent::initPersistFields();
|
Parent::initPersistFields();
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ ConsoleDocClass( GuiToggleButtonCtrl,
|
||||||
GuiToggleButtonCtrl::GuiToggleButtonCtrl()
|
GuiToggleButtonCtrl::GuiToggleButtonCtrl()
|
||||||
{
|
{
|
||||||
setExtent(140, 30);
|
setExtent(140, 30);
|
||||||
mButtonText = StringTable->insert("");
|
mButtonText = StringTable->EmptyString();
|
||||||
mStateOn = false;
|
mStateOn = false;
|
||||||
mButtonType = ButtonTypeCheck;
|
mButtonType = ButtonTypeCheck;
|
||||||
}
|
}
|
||||||
|
|
@ -60,7 +60,7 @@ void GuiToggleButtonCtrl::onPreRender()
|
||||||
|
|
||||||
// If we have a script variable, make sure we're in sync
|
// If we have a script variable, make sure we're in sync
|
||||||
if ( mConsoleVariable[0] )
|
if ( mConsoleVariable[0] )
|
||||||
mStateOn = Con::getBoolVariable( mConsoleVariable );
|
mStateOn = Con::getBoolVariable( mConsoleVariable );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiToggleButtonCtrl::onRender(Point2I offset,
|
void GuiToggleButtonCtrl::onRender(Point2I offset,
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ ConsoleDocClass( GuiToolboxButtonCtrl,
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
GuiToolboxButtonCtrl::GuiToolboxButtonCtrl()
|
GuiToolboxButtonCtrl::GuiToolboxButtonCtrl()
|
||||||
{
|
{
|
||||||
mNormalBitmapName = StringTable->insert("");
|
mNormalBitmapName = StringTable->EmptyString();
|
||||||
mLoweredBitmapName = StringTable->insert("sceneeditor/client/images/buttondown");
|
mLoweredBitmapName = StringTable->insert("sceneeditor/client/images/buttondown");
|
||||||
mHoverBitmapName = StringTable->insert("sceneeditor/client/images/buttonup");
|
mHoverBitmapName = StringTable->insert("sceneeditor/client/images/buttonup");
|
||||||
setMinExtent(Point2I(16,16));
|
setMinExtent(Point2I(16,16));
|
||||||
|
|
@ -225,4 +225,4 @@ void GuiToolboxButtonCtrl::renderButton(GFXTexHandle &texture, Point2I &offset,
|
||||||
GFX->getDrawUtil()->drawBitmap(texture, finalOffset);
|
GFX->getDrawUtil()->drawBitmap(texture, finalOffset);
|
||||||
renderChildControls( offset, updateRect);
|
renderChildControls( offset, updateRect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,8 +50,8 @@ GuiFormCtrl::GuiFormCtrl()
|
||||||
mCaption = "[none]";
|
mCaption = "[none]";
|
||||||
mUseSmallCaption = false;
|
mUseSmallCaption = false;
|
||||||
|
|
||||||
mContentLibrary = StringTable->insert("");
|
mContentLibrary = StringTable->EmptyString();
|
||||||
mContent = StringTable->insert("");
|
mContent = StringTable->EmptyString();
|
||||||
|
|
||||||
mCanSaveFieldDictionary = true;
|
mCanSaveFieldDictionary = true;
|
||||||
mIsContainer = true;
|
mIsContainer = true;
|
||||||
|
|
@ -158,7 +158,7 @@ void GuiFormCtrl::addObject(SimObject *newObj )
|
||||||
|
|
||||||
GuiControl* parent = getParent();
|
GuiControl* parent = getParent();
|
||||||
if ( parent )
|
if ( parent )
|
||||||
parent->addObject( newObj );
|
parent->addObject( newObj );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -213,7 +213,7 @@ bool GuiFormCtrl::resize(const Point2I &newPosition, const Point2I &newExtent)
|
||||||
static char buf[256];
|
static char buf[256];
|
||||||
|
|
||||||
mUseSmallCaption = true;
|
mUseSmallCaption = true;
|
||||||
mSmallCaption = StringTable->insert("");
|
mSmallCaption = StringTable->EmptyString();
|
||||||
|
|
||||||
S32 strlen = dStrlen((const char*)mCaption);
|
S32 strlen = dStrlen((const char*)mCaption);
|
||||||
for(S32 i=strlen; i>=0; --i)
|
for(S32 i=strlen; i>=0; --i)
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ GuiPaneControl::GuiPaneControl()
|
||||||
mMouseOver = false;
|
mMouseOver = false;
|
||||||
mDepressed = false;
|
mDepressed = false;
|
||||||
mCaption = "A Pane";
|
mCaption = "A Pane";
|
||||||
mCaptionID = StringTable->insert("");
|
mCaptionID = StringTable->EmptyString();
|
||||||
mIsContainer = true;
|
mIsContainer = true;
|
||||||
|
|
||||||
mOriginalExtents.set(10,10);
|
mOriginalExtents.set(10,10);
|
||||||
|
|
@ -108,7 +108,7 @@ bool GuiPaneControl::onWake()
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mCaptionID && *mCaptionID != 0)
|
if(mCaptionID && *mCaptionID != 0)
|
||||||
setCaptionID(mCaptionID);
|
setCaptionID(mCaptionID);
|
||||||
|
|
||||||
mProfile->constructBitmapArray();
|
mProfile->constructBitmapArray();
|
||||||
if(mProfile->mUseBitmapArray && mProfile->mBitmapArrayRects.size())
|
if(mProfile->mUseBitmapArray && mProfile->mBitmapArrayRects.size())
|
||||||
|
|
@ -131,19 +131,19 @@ bool GuiPaneControl::onWake()
|
||||||
|
|
||||||
void GuiPaneControl::setCaptionID(const char *id)
|
void GuiPaneControl::setCaptionID(const char *id)
|
||||||
{
|
{
|
||||||
S32 n = Con::getIntVariable(id, -1);
|
S32 n = Con::getIntVariable(id, -1);
|
||||||
if(n != -1)
|
if(n != -1)
|
||||||
{
|
{
|
||||||
mCaptionID = StringTable->insert(id);
|
mCaptionID = StringTable->insert(id);
|
||||||
setCaptionID(n);
|
setCaptionID(n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void GuiPaneControl::setCaptionID(S32 id)
|
void GuiPaneControl::setCaptionID(S32 id)
|
||||||
{
|
{
|
||||||
mCaption = getGUIString(id);
|
mCaption = getGUIString(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,7 @@ void GuiWindowCtrl::moveFromCollapseGroup()
|
||||||
parent->mCollapseGroupVec[groupVec].first()->mCollapseGroupNum = -1;
|
parent->mCollapseGroupVec[groupVec].first()->mCollapseGroupNum = -1;
|
||||||
parent->mCollapseGroupVec[groupVec].erase(U32(0));
|
parent->mCollapseGroupVec[groupVec].erase(U32(0));
|
||||||
parent->mCollapseGroupVec[groupVec].setSize(groupVecCount - 1);
|
parent->mCollapseGroupVec[groupVec].setSize(groupVecCount - 1);
|
||||||
parent->mCollapseGroupVec.erase(groupVec);
|
parent->mCollapseGroupVec.erase(groupVec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -381,7 +381,7 @@ void GuiWindowCtrl::refreshCollapseGroups()
|
||||||
if( !parent )
|
if( !parent )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CollapseGroupNumVec collapseGroupNumVec;
|
CollapseGroupNumVec collapseGroupNumVec;
|
||||||
|
|
||||||
// iterate through the collided array, renumbering the windows pointers
|
// iterate through the collided array, renumbering the windows pointers
|
||||||
S32 assignGroupNum = 0;
|
S32 assignGroupNum = 0;
|
||||||
|
|
@ -463,7 +463,7 @@ void GuiWindowCtrl::handleCollapseGroup()
|
||||||
if( !parent )
|
if( !parent )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CollapseGroupNumVec collapseGroupNumVec;
|
CollapseGroupNumVec collapseGroupNumVec;
|
||||||
|
|
||||||
if( mIsCollapsed ) // minimize window up to its header bar
|
if( mIsCollapsed ) // minimize window up to its header bar
|
||||||
{
|
{
|
||||||
|
|
@ -529,7 +529,7 @@ void GuiWindowCtrl::handleCollapseGroup()
|
||||||
if((*iter)->mCollapseGroupNum > mCollapseGroupNum)
|
if((*iter)->mCollapseGroupNum > mCollapseGroupNum)
|
||||||
{
|
{
|
||||||
Point2I newChildPosition = (*iter)->getPosition();
|
Point2I newChildPosition = (*iter)->getPosition();
|
||||||
newChildPosition.y += moveChildYBy;
|
newChildPosition.y += moveChildYBy;
|
||||||
(*iter)->resize(newChildPosition, (*iter)->getExtent());
|
(*iter)->resize(newChildPosition, (*iter)->getExtent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -547,7 +547,7 @@ bool GuiWindowCtrl::resizeCollapseGroup(bool resizeX, bool resizeY, Point2I resi
|
||||||
if( !parent )
|
if( !parent )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CollapseGroupNumVec collapseGroupNumVec;
|
CollapseGroupNumVec collapseGroupNumVec;
|
||||||
|
|
||||||
bool canResize = true;
|
bool canResize = true;
|
||||||
CollapseGroupNumVec::iterator iter = parent->mCollapseGroupVec[mCollapseGroup].begin();
|
CollapseGroupNumVec::iterator iter = parent->mCollapseGroupVec[mCollapseGroup].begin();
|
||||||
|
|
@ -980,7 +980,7 @@ void GuiWindowCtrl::onMouseDragged(const GuiEvent &event)
|
||||||
moveWithCollapseGroup(newPosition);
|
moveWithCollapseGroup(newPosition);
|
||||||
|
|
||||||
if(mCanCollapse && mCollapseGroup >= 0 && mResizeWindow == true )
|
if(mCanCollapse && mCollapseGroup >= 0 && mResizeWindow == true )
|
||||||
{
|
{
|
||||||
// Resize the window if allowed
|
// Resize the window if allowed
|
||||||
if( newExtent.y >= getMinExtent().y && newExtent.x >= getMinExtent().x)
|
if( newExtent.y >= getMinExtent().y && newExtent.x >= getMinExtent().x)
|
||||||
{
|
{
|
||||||
|
|
@ -1212,7 +1212,7 @@ void GuiWindowCtrl::onMouseUp(const GuiEvent &event)
|
||||||
// We're either moving out of a collapse group or moving to another one
|
// We're either moving out of a collapse group or moving to another one
|
||||||
// Not valid for windows not previously in a group
|
// Not valid for windows not previously in a group
|
||||||
if( mCollapseGroup >= 0 &&
|
if( mCollapseGroup >= 0 &&
|
||||||
(snapType == -1 || (hitWindow && snapType >= 0 && mCollapseGroup != hitWindow->mCollapseGroup)))
|
(snapType == -1 || (hitWindow && snapType >= 0 && mCollapseGroup != hitWindow->mCollapseGroup)))
|
||||||
moveFromCollapseGroup();
|
moveFromCollapseGroup();
|
||||||
|
|
||||||
// No window to connect to
|
// No window to connect to
|
||||||
|
|
@ -1512,7 +1512,7 @@ void GuiWindowCtrl::setCloseCommand(const char *newCmd)
|
||||||
if (newCmd)
|
if (newCmd)
|
||||||
mCloseCommand = StringTable->insert(newCmd);
|
mCloseCommand = StringTable->insert(newCmd);
|
||||||
else
|
else
|
||||||
mCloseCommand = StringTable->insert("");
|
mCloseCommand = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
@ -1830,7 +1830,7 @@ void GuiWindowCtrl::parentResized(const RectI &oldParentRect, const RectI &newPa
|
||||||
|
|
||||||
// Only for collpasing groups, if were not, then do it like normal windows
|
// Only for collpasing groups, if were not, then do it like normal windows
|
||||||
if( mCanCollapse && mCollapseGroup >= 0 )
|
if( mCanCollapse && mCollapseGroup >= 0 )
|
||||||
{
|
{
|
||||||
bool resizeMe = false;
|
bool resizeMe = false;
|
||||||
|
|
||||||
// Only the group window should control positioning
|
// Only the group window should control positioning
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ GuiGameListMenuCtrl::GuiGameListMenuCtrl()
|
||||||
VECTOR_SET_ASSOCIATION(mRows);
|
VECTOR_SET_ASSOCIATION(mRows);
|
||||||
|
|
||||||
// initialize the control callbacks
|
// initialize the control callbacks
|
||||||
mCallbackOnA = StringTable->insert("");
|
mCallbackOnA = StringTable->EmptyString();
|
||||||
mCallbackOnB = mCallbackOnA;
|
mCallbackOnB = mCallbackOnA;
|
||||||
mCallbackOnX = mCallbackOnA;
|
mCallbackOnX = mCallbackOnA;
|
||||||
mCallbackOnY = mCallbackOnA;
|
mCallbackOnY = mCallbackOnA;
|
||||||
|
|
@ -572,7 +572,7 @@ StringTableEntry GuiGameListMenuCtrl::getRowLabel(S32 rowIndex) const
|
||||||
if (! isValidRowIndex(rowIndex))
|
if (! isValidRowIndex(rowIndex))
|
||||||
{
|
{
|
||||||
// not a valid row index, don't do anything
|
// not a valid row index, don't do anything
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
return mRows[rowIndex]->mLabel;
|
return mRows[rowIndex]->mLabel;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onMouseDragged, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Mouse is dragged across the control, causing the callback to occur.\n"
|
"// Mouse is dragged across the control, causing the callback to occur.\n"
|
||||||
"GuiListBoxCtrl::onMouseDragged(%this)\n"
|
"GuiListBoxCtrl::onMouseDragged(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever the mouse is dragged across the control\n"
|
" // Code to run whenever the mouse is dragged across the control\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -64,9 +64,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onClearSelection, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// A selected item is cleared, causing the callback to occur.\n"
|
"// A selected item is cleared, causing the callback to occur.\n"
|
||||||
"GuiListBoxCtrl::onClearSelection(%this)\n"
|
"GuiListBoxCtrl::onClearSelection(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever a selected item is cleared\n"
|
" // Code to run whenever a selected item is cleared\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -78,9 +78,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onUnSelect, void, ( S32 index, const char* i
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// A selected item is unselected, causing the callback to occur\n"
|
"// A selected item is unselected, causing the callback to occur\n"
|
||||||
"GuiListBoxCtrl::onUnSelect(%this, %indexId, %itemText)\n"
|
"GuiListBoxCtrl::onUnSelect(%this, %indexId, %itemText)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever a selected list item is unselected\n"
|
" // Code to run whenever a selected list item is unselected\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -92,9 +92,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onSelect, void, ( S32 index , const char* it
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// An item in the list is selected, causing the callback to occur\n"
|
"// An item in the list is selected, causing the callback to occur\n"
|
||||||
"GuiListBoxCtrl::onSelect(%this, %index, %itemText)\n"
|
"GuiListBoxCtrl::onSelect(%this, %index, %itemText)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever an item in the list is selected\n"
|
" // Code to run whenever an item in the list is selected\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -104,9 +104,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onDoubleClick, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// An item in the list is double clicked, causing the callback to occur.\n"
|
"// An item in the list is double clicked, causing the callback to occur.\n"
|
||||||
"GuiListBoxCtrl::onDoubleClick(%this)\n"
|
"GuiListBoxCtrl::onDoubleClick(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever an item in the control has been double clicked\n"
|
" // Code to run whenever an item in the control has been double clicked\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -121,9 +121,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onMouseUp, void, ( S32 itemHit, S32 mouseCli
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Mouse was previously clicked down, and now has been released, causing the callback to occur.\n"
|
"// Mouse was previously clicked down, and now has been released, causing the callback to occur.\n"
|
||||||
"GuiListBoxCtrl::onMouseUp(%this, %itemHit, %mouseClickCount)\n"
|
"GuiListBoxCtrl::onMouseUp(%this, %itemHit, %mouseClickCount)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to call whenever the mouse has been clicked and released on the control\n"
|
" // Code to call whenever the mouse has been clicked and released on the control\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -133,9 +133,9 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, onDeleteKey, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// The delete key on the keyboard has been pressed while this control is in focus, causing the callback to occur.\n"
|
"// The delete key on the keyboard has been pressed while this control is in focus, causing the callback to occur.\n"
|
||||||
"GuiListBoxCtrl::onDeleteKey(%this)\n"
|
"GuiListBoxCtrl::onDeleteKey(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to call whenever the delete key is pressed\n"
|
" // Code to call whenever the delete key is pressed\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -146,10 +146,10 @@ IMPLEMENT_CALLBACK( GuiListBoxCtrl, isObjectMirrored, bool, ( const char* indexI
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Engine has requested of the script level to determine if a list entry is mirrored or not.\n"
|
"// Engine has requested of the script level to determine if a list entry is mirrored or not.\n"
|
||||||
"GuiListBoxCtrl::isObjectMirrored(%this, %indexIdString)\n"
|
"GuiListBoxCtrl::isObjectMirrored(%this, %indexIdString)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Perform code required to check and see if the list item at the index id is mirrored or not.\n"
|
" // Perform code required to check and see if the list item at the index id is mirrored or not.\n"
|
||||||
" return %isMirrored;\n"
|
" return %isMirrored;\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@return A boolean value on if the list item is mirrored or not.\n\n"
|
"@return A boolean value on if the list item is mirrored or not.\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
|
|
@ -234,7 +234,7 @@ void GuiListBoxCtrl::clearItems()
|
||||||
// Free our vector lists
|
// Free our vector lists
|
||||||
mItems.clear();
|
mItems.clear();
|
||||||
mSelectedItems.clear();
|
mSelectedItems.clear();
|
||||||
mFilteredItems.clear();
|
mFilteredItems.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiListBoxCtrl, clearSelection, void, (),,
|
DefineEngineMethod( GuiListBoxCtrl, clearSelection, void, (),,
|
||||||
|
|
@ -1511,8 +1511,8 @@ void GuiListBoxCtrl::_mirror()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( U32 j = 0; j < mFilteredItems.size(); j++ )
|
for ( U32 j = 0; j < mFilteredItems.size(); j++ )
|
||||||
{
|
{
|
||||||
if ( (SimObjectId)(uintptr_t)(mFilteredItems[j]->itemData) == curId )
|
if ( (SimObjectId)(uintptr_t)(mFilteredItems[j]->itemData) == curId )
|
||||||
{
|
{
|
||||||
|
|
@ -1530,7 +1530,7 @@ void GuiListBoxCtrl::_mirror()
|
||||||
|
|
||||||
StringTableEntry GuiListBoxCtrl::_makeMirrorItemName( SimObject *inObj )
|
StringTableEntry GuiListBoxCtrl::_makeMirrorItemName( SimObject *inObj )
|
||||||
{
|
{
|
||||||
StringTableEntry outName = StringTable->insert("");
|
StringTableEntry outName = StringTable->EmptyString();
|
||||||
|
|
||||||
if ( mMakeNameCallback.isNotEmpty() )
|
if ( mMakeNameCallback.isNotEmpty() )
|
||||||
{
|
{
|
||||||
|
|
@ -1571,37 +1571,37 @@ DefineEngineMethod( GuiListBoxCtrl, addFilteredItem, void, (const char* newItem)
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl")
|
"@see GuiControl")
|
||||||
{
|
{
|
||||||
String item(newItem);
|
String item(newItem);
|
||||||
if( item == String::EmptyString )
|
if( item == String::EmptyString )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
object->addFilteredItem( item );
|
object->addFilteredItem( item );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiListBoxCtrl::addFilteredItem( String item )
|
void GuiListBoxCtrl::addFilteredItem( String item )
|
||||||
{
|
{
|
||||||
// Delete from selected items list
|
// Delete from selected items list
|
||||||
for ( S32 i = 0; i < mSelectedItems.size(); i++ )
|
for ( S32 i = 0; i < mSelectedItems.size(); i++ )
|
||||||
{
|
{
|
||||||
String itemText = mSelectedItems[i]->itemText;
|
String itemText = mSelectedItems[i]->itemText;
|
||||||
if ( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
if ( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
||||||
{
|
{
|
||||||
mSelectedItems.erase_fast( i );
|
mSelectedItems.erase_fast( i );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( S32 i = 0; i < mItems.size(); i++ )
|
for ( S32 i = 0; i < mItems.size(); i++ )
|
||||||
{
|
{
|
||||||
String itemText = mItems[i]->itemText;
|
String itemText = mItems[i]->itemText;
|
||||||
if( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
if( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
||||||
{
|
{
|
||||||
mItems[i]->isSelected = false;
|
mItems[i]->isSelected = false;
|
||||||
mFilteredItems.push_front( mItems[i] );
|
mFilteredItems.push_front( mItems[i] );
|
||||||
mItems.erase( &mItems[i] );
|
mItems.erase( &mItems[i] );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiListBoxCtrl, removeFilteredItem, void, ( const char* itemName ),,
|
DefineEngineMethod( GuiListBoxCtrl, removeFilteredItem, void, ( const char* itemName ),,
|
||||||
|
|
@ -1615,23 +1615,23 @@ DefineEngineMethod( GuiListBoxCtrl, removeFilteredItem, void, ( const char* item
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl")
|
"@see GuiControl")
|
||||||
{
|
{
|
||||||
String item(itemName);
|
String item(itemName);
|
||||||
if( item == String::EmptyString )
|
if( item == String::EmptyString )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
object->removeFilteredItem( item );
|
object->removeFilteredItem( item );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiListBoxCtrl::removeFilteredItem( String item )
|
void GuiListBoxCtrl::removeFilteredItem( String item )
|
||||||
{
|
{
|
||||||
for ( S32 i = 0; i < mFilteredItems.size(); i++ )
|
for ( S32 i = 0; i < mFilteredItems.size(); i++ )
|
||||||
{
|
{
|
||||||
String itemText = mFilteredItems[i]->itemText;
|
String itemText = mFilteredItems[i]->itemText;
|
||||||
if( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
if( dStrcmp( itemText.c_str(), item.c_str() ) == 0 )
|
||||||
{
|
{
|
||||||
mItems.push_front( mFilteredItems[i] );
|
mItems.push_front( mFilteredItems[i] );
|
||||||
mFilteredItems.erase( &mFilteredItems[i] );
|
mFilteredItems.erase( &mFilteredItems[i] );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,9 @@ IMPLEMENT_CALLBACK( GuiMLTextCtrl, onURL, void, ( const char* url ),( url ),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// A URL address was clicked on in the control, causing the callback to occur.\n"
|
"// A URL address was clicked on in the control, causing the callback to occur.\n"
|
||||||
"GuiMLTextCtrl::onUrl(%this,%url)\n"
|
"GuiMLTextCtrl::onUrl(%this,%url)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run whenever a URL was clicked on\n"
|
" // Code to run whenever a URL was clicked on\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -80,9 +80,9 @@ IMPLEMENT_CALLBACK( GuiMLTextCtrl, onResize, void, ( S32 width, S32 maxY ),( wid
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Control size changed, causing the callback to occur.\n"
|
"// Control size changed, causing the callback to occur.\n"
|
||||||
"GuiMLTextCtrl::onResize(%this,%width,%maxY)\n"
|
"GuiMLTextCtrl::onResize(%this,%width,%maxY)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to call when the control size changes\n"
|
" // Code to call when the control size changes\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
);
|
);
|
||||||
|
|
@ -191,17 +191,17 @@ DefineEngineMethod( GuiMLTextCtrl, scrollToBottom, void, (),,
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineFunction(StripMLControlChars, const char*, (const char* inString),,
|
DefineEngineFunction(StripMLControlChars, const char*, (const char* inString),,
|
||||||
"@brief Strip TorqueML control characters from the specified string, returning a 'clean' version.\n\n"
|
"@brief Strip TorqueML control characters from the specified string, returning a 'clean' version.\n\n"
|
||||||
"@param inString String to strip TorqueML control characters from.\n"
|
"@param inString String to strip TorqueML control characters from.\n"
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Define the string to strip TorqueML control characters from\n"
|
"// Define the string to strip TorqueML control characters from\n"
|
||||||
"%string = \"<font:Arial:24>How Now <color:c43c12>Brown <color:000000>Cow\";\n\n"
|
"%string = \"<font:Arial:24>How Now <color:c43c12>Brown <color:000000>Cow\";\n\n"
|
||||||
"// Request the stripped version of the string\n"
|
"// Request the stripped version of the string\n"
|
||||||
"%strippedString = StripMLControlChars(%string);\n"
|
"%strippedString = StripMLControlChars(%string);\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@return Version of the inputted string with all TorqueML characters removed.\n\n"
|
"@return Version of the inputted string with all TorqueML characters removed.\n\n"
|
||||||
"@see References\n\n"
|
"@see References\n\n"
|
||||||
"@ingroup GuiCore")
|
"@ingroup GuiCore")
|
||||||
{
|
{
|
||||||
return GuiMLTextCtrl::stripControlChars(inString);
|
return GuiMLTextCtrl::stripControlChars(inString);
|
||||||
}
|
}
|
||||||
|
|
@ -251,7 +251,7 @@ GuiMLTextCtrl::GuiMLTextCtrl()
|
||||||
mIsEditCtrl( false ),
|
mIsEditCtrl( false ),
|
||||||
mCursorPosition( false ),
|
mCursorPosition( false ),
|
||||||
mMaxBufferSize( -1 ),
|
mMaxBufferSize( -1 ),
|
||||||
mInitialText( StringTable->insert("") ),
|
mInitialText( StringTable->EmptyString() ),
|
||||||
mSelectionActive( false ),
|
mSelectionActive( false ),
|
||||||
mSelectionStart( 0 ),
|
mSelectionStart( 0 ),
|
||||||
mSelectionEnd( 0 ),
|
mSelectionEnd( 0 ),
|
||||||
|
|
@ -267,7 +267,7 @@ GuiMLTextCtrl::GuiMLTextCtrl()
|
||||||
mFontList( NULL )
|
mFontList( NULL )
|
||||||
{
|
{
|
||||||
mActive = true;
|
mActive = true;
|
||||||
//mInitialText = StringTable->insert("");
|
//mInitialText = StringTable->EmptyString();
|
||||||
Sim::findObject("InputDeniedSound", mDeniedSound);
|
Sim::findObject("InputDeniedSound", mDeniedSound);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -293,7 +293,7 @@ void GuiMLTextCtrl::initPersistFields()
|
||||||
addField("deniedSound", TypeSFXTrackName, Offset(mDeniedSound, GuiMLTextCtrl), "If the text will not fit in the control, the deniedSound is played.");
|
addField("deniedSound", TypeSFXTrackName, Offset(mDeniedSound, GuiMLTextCtrl), "If the text will not fit in the control, the deniedSound is played.");
|
||||||
addField("text", TypeCaseString, Offset( mInitialText, GuiMLTextCtrl ), "Text to display in this control.");
|
addField("text", TypeCaseString, Offset( mInitialText, GuiMLTextCtrl ), "Text to display in this control.");
|
||||||
addField("useURLMouseCursor", TypeBool, Offset(mUseURLMouseCursor, GuiMLTextCtrl), "If true, the mouse cursor will turn into a hand cursor while over a link in the text.\n"
|
addField("useURLMouseCursor", TypeBool, Offset(mUseURLMouseCursor, GuiMLTextCtrl), "If true, the mouse cursor will turn into a hand cursor while over a link in the text.\n"
|
||||||
"This is dependant on the markup language used by the GuiMLTextCtrl\n");
|
"This is dependant on the markup language used by the GuiMLTextCtrl\n");
|
||||||
|
|
||||||
endGroup( "Text" );
|
endGroup( "Text" );
|
||||||
|
|
||||||
|
|
@ -649,9 +649,9 @@ void GuiMLTextCtrl::ensureCursorOnScreen()
|
||||||
// If our parent isn't a scroll control, or we're not the only control
|
// If our parent isn't a scroll control, or we're not the only control
|
||||||
// in the content region, bail...
|
// in the content region, bail...
|
||||||
GuiControl* pParent = getParent();
|
GuiControl* pParent = getParent();
|
||||||
GuiScrollCtrl *sc = dynamic_cast<GuiScrollCtrl*>(pParent);
|
GuiScrollCtrl *sc = dynamic_cast<GuiScrollCtrl*>(pParent);
|
||||||
if(!sc)
|
if(!sc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Ok. Now we know that our parent is a scroll control. Let's find the
|
// Ok. Now we know that our parent is a scroll control. Let's find the
|
||||||
// top of the cursor, and it's bottom. We can then scroll the parent control
|
// top of the cursor, and it's bottom. We can then scroll the parent control
|
||||||
|
|
@ -661,7 +661,7 @@ void GuiMLTextCtrl::ensureCursorOnScreen()
|
||||||
ColorI color;
|
ColorI color;
|
||||||
getCursorPositionAndColor(cursorTopP, cursorBottomP, color);
|
getCursorPositionAndColor(cursorTopP, cursorBottomP, color);
|
||||||
|
|
||||||
sc->scrollRectVisible(RectI(cursorTopP.x, cursorTopP.y, 1, cursorBottomP.y - cursorTopP.y));
|
sc->scrollRectVisible(RectI(cursorTopP.x, cursorTopP.y, 1, cursorBottomP.y - cursorTopP.y));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------
|
//--------------------------------------
|
||||||
|
|
@ -840,7 +840,7 @@ void GuiMLTextCtrl::onMouseUp(const GuiEvent& event)
|
||||||
|
|
||||||
// Convert URL from UTF16 to UTF8.
|
// Convert URL from UTF16 to UTF8.
|
||||||
UTF8* url = mTextBuffer.createSubstring8(mHitURL->textStart, mHitURL->len);
|
UTF8* url = mTextBuffer.createSubstring8(mHitURL->textStart, mHitURL->len);
|
||||||
onURL_callback(url);
|
onURL_callback(url);
|
||||||
|
|
||||||
delete[] url;
|
delete[] url;
|
||||||
mHitURL = NULL;
|
mHitURL = NULL;
|
||||||
|
|
@ -1018,7 +1018,7 @@ void GuiMLTextCtrl::scrollToTag( U32 id )
|
||||||
Con::warnf( ConsoleLogEntry::General, "GuiMLTextCtrl::scrollToTag - tag id %d not found!", id );
|
Con::warnf( ConsoleLogEntry::General, "GuiMLTextCtrl::scrollToTag - tag id %d not found!", id );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pappy->scrollRectVisible(RectI(0, tag->y, 1, 1));
|
pappy->scrollRectVisible(RectI(0, tag->y, 1, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
@ -1028,7 +1028,7 @@ void GuiMLTextCtrl::scrollToTop()
|
||||||
GuiScrollCtrl *pappy = dynamic_cast<GuiScrollCtrl*>(getParent());
|
GuiScrollCtrl *pappy = dynamic_cast<GuiScrollCtrl*>(getParent());
|
||||||
if ( !pappy )
|
if ( !pappy )
|
||||||
return;
|
return;
|
||||||
pappy->scrollRectVisible(RectI(0,0,0,0));
|
pappy->scrollRectVisible(RectI(0,0,0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
@ -2134,7 +2134,7 @@ textemit:
|
||||||
emitNewLine(mScanPos);
|
emitNewLine(mScanPos);
|
||||||
setHeight( mMaxY );
|
setHeight( mMaxY );
|
||||||
onResize_callback( getWidth(), mMaxY );
|
onResize_callback( getWidth(), mMaxY );
|
||||||
|
|
||||||
//make sure the cursor is still visible - this handles if we're a child of a scroll ctrl...
|
//make sure the cursor is still visible - this handles if we're a child of a scroll ctrl...
|
||||||
ensureCursorOnScreen();
|
ensureCursorOnScreen();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -233,31 +233,31 @@ void GuiPopupTextListCtrl::onRenderCell(Point2I offset, Point2I cell, bool selec
|
||||||
IMPLEMENT_CONOBJECT(GuiPopUpMenuCtrl);
|
IMPLEMENT_CONOBJECT(GuiPopUpMenuCtrl);
|
||||||
|
|
||||||
ConsoleDocClass( GuiPopUpMenuCtrl,
|
ConsoleDocClass( GuiPopUpMenuCtrl,
|
||||||
"@brief A control that allows to select a value from a drop-down list.\n\n"
|
"@brief A control that allows to select a value from a drop-down list.\n\n"
|
||||||
|
|
||||||
"For a nearly identical GUI with additional features, use GuiPopUpMenuCtrlEx.\n\n"
|
"For a nearly identical GUI with additional features, use GuiPopUpMenuCtrlEx.\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"new GuiPopUpMenuCtrl()\n"
|
"new GuiPopUpMenuCtrl()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" maxPopupHeight = \"200\";\n"
|
" maxPopupHeight = \"200\";\n"
|
||||||
" sbUsesNAColor = \"0\";\n"
|
" sbUsesNAColor = \"0\";\n"
|
||||||
" reverseTextList = \"0\";\n"
|
" reverseTextList = \"0\";\n"
|
||||||
" bitmapBounds = \"16 16\";\n"
|
" bitmapBounds = \"16 16\";\n"
|
||||||
" maxLength = \"1024\";\n"
|
" maxLength = \"1024\";\n"
|
||||||
" position = \"56 31\";\n"
|
" position = \"56 31\";\n"
|
||||||
" extent = \"64 64\";\n"
|
" extent = \"64 64\";\n"
|
||||||
" minExtent = \"8 2\";\n"
|
" minExtent = \"8 2\";\n"
|
||||||
" profile = \"GuiPopUpMenuProfile\";\n"
|
" profile = \"GuiPopUpMenuProfile\";\n"
|
||||||
" tooltipProfile = \"GuiToolTipProfile\";\n"
|
" tooltipProfile = \"GuiToolTipProfile\";\n"
|
||||||
"};\n"
|
"};\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@note This is definitely going to be deprecated soon.\n\n"
|
"@note This is definitely going to be deprecated soon.\n\n"
|
||||||
|
|
||||||
"@see GuiPopUpMenuCtrlEx for more features and better explanations.\n"
|
"@see GuiPopUpMenuCtrlEx for more features and better explanations.\n"
|
||||||
|
|
||||||
"@ingroup GuiControls\n");
|
"@ingroup GuiControls\n");
|
||||||
|
|
||||||
GuiPopUpMenuCtrl::GuiPopUpMenuCtrl(void)
|
GuiPopUpMenuCtrl::GuiPopUpMenuCtrl(void)
|
||||||
{
|
{
|
||||||
|
|
@ -277,9 +277,9 @@ GuiPopUpMenuCtrl::GuiPopUpMenuCtrl(void)
|
||||||
mRenderScrollInNA = false; // Added
|
mRenderScrollInNA = false; // Added
|
||||||
mBackgroundCancel = false; // Added
|
mBackgroundCancel = false; // Added
|
||||||
mReverseTextList = false; // Added - Don't reverse text list if displaying up
|
mReverseTextList = false; // Added - Don't reverse text list if displaying up
|
||||||
mBitmapName = StringTable->insert(""); // Added
|
mBitmapName = StringTable->EmptyString(); // Added
|
||||||
mBitmapBounds.set(16, 16); // Added
|
mBitmapBounds.set(16, 16); // Added
|
||||||
mIdMax = -1;
|
mIdMax = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -302,11 +302,11 @@ void GuiPopUpMenuCtrl::initPersistFields(void)
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrl, add, void, (const char * name, S32 idNum, U32 scheme), ("", -1, 0), "(string name, int idNum, int scheme=0)")
|
DefineConsoleMethod( GuiPopUpMenuCtrl, add, void, (const char * name, S32 idNum, U32 scheme), ("", -1, 0), "(string name, int idNum, int scheme=0)")
|
||||||
{
|
{
|
||||||
object->addEntry(name, idNum, scheme);
|
object->addEntry(name, idNum, scheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrl, addScheme, void, (U32 id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL), ,
|
DefineConsoleMethod( GuiPopUpMenuCtrl, addScheme, void, (U32 id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL), ,
|
||||||
"(int id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL)")
|
"(int id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL)")
|
||||||
{
|
{
|
||||||
|
|
||||||
object->addScheme( id, fontColor, fontColorHL, fontColorSEL );
|
object->addScheme( id, fontColor, fontColorHL, fontColorSEL );
|
||||||
|
|
@ -492,43 +492,43 @@ void GuiPopUpMenuCtrl::clear()
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
mRevNum = 0;
|
mRevNum = 0;
|
||||||
mIdMax = -1;
|
mIdMax = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void GuiPopUpMenuCtrl::clearEntry( S32 entry )
|
void GuiPopUpMenuCtrl::clearEntry( S32 entry )
|
||||||
{
|
{
|
||||||
if( entry == -1 )
|
if( entry == -1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
U32 i = 0;
|
U32 i = 0;
|
||||||
for ( ; i < mEntries.size(); i++ )
|
for ( ; i < mEntries.size(); i++ )
|
||||||
{
|
{
|
||||||
if ( mEntries[i].id == entry )
|
if ( mEntries[i].id == entry )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mEntries.erase( i );
|
mEntries.erase( i );
|
||||||
|
|
||||||
if( mEntries.size() <= 0 )
|
if( mEntries.size() <= 0 )
|
||||||
{
|
{
|
||||||
mEntries.setSize(0);
|
mEntries.setSize(0);
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
mRevNum = 0;
|
mRevNum = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (entry < mSelIndex)
|
if (entry < mSelIndex)
|
||||||
{
|
{
|
||||||
mSelIndex--;
|
mSelIndex--;
|
||||||
}
|
}
|
||||||
else if( entry == mSelIndex )
|
else if( entry == mSelIndex )
|
||||||
{
|
{
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -620,21 +620,21 @@ void GuiPopUpMenuCtrl::addEntry( const char *buf, S32 id, U32 scheme )
|
||||||
//Con::printf( "GuiPopupMenuCtrlEx::addEntry - Invalid buffer!" );
|
//Con::printf( "GuiPopupMenuCtrlEx::addEntry - Invalid buffer!" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure that there are no other entries with exactly the same name
|
// Ensure that there are no other entries with exactly the same name
|
||||||
for ( U32 i = 0; i < mEntries.size(); i++ )
|
for ( U32 i = 0; i < mEntries.size(); i++ )
|
||||||
{
|
{
|
||||||
if ( dStrcmp( mEntries[i].buf, buf ) == 0 )
|
if ( dStrcmp( mEntries[i].buf, buf ) == 0 )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we don't give an id, create one from mIdMax
|
// If we don't give an id, create one from mIdMax
|
||||||
if( id == -1 )
|
if( id == -1 )
|
||||||
id = mIdMax + 1;
|
id = mIdMax + 1;
|
||||||
|
|
||||||
// Increase mIdMax when an id is greater than it
|
// Increase mIdMax when an id is greater than it
|
||||||
if( id > mIdMax )
|
if( id > mIdMax )
|
||||||
mIdMax = id;
|
mIdMax = id;
|
||||||
|
|
||||||
Entry e;
|
Entry e;
|
||||||
dStrcpy( e.buf, buf );
|
dStrcpy( e.buf, buf );
|
||||||
|
|
@ -802,28 +802,28 @@ void GuiPopUpMenuCtrl::setFirstSelected( bool bNotifyScript )
|
||||||
setText( mEntries[0].buf );
|
setText( mEntries[0].buf );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute the popup console command:
|
// Execute the popup console command:
|
||||||
if( bNotifyScript )
|
if( bNotifyScript )
|
||||||
{
|
{
|
||||||
if ( isMethod( "onSelect" ) )
|
if ( isMethod( "onSelect" ) )
|
||||||
Con::executef( this, "onSelect", Con::getIntArg( mEntries[ mSelIndex ].id ), mEntries[mSelIndex].buf );
|
Con::executef( this, "onSelect", Con::getIntArg( mEntries[ mSelIndex ].id ), mEntries[mSelIndex].buf );
|
||||||
|
|
||||||
execConsoleCallback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( mReplaceText ) // Only change the displayed text if appropriate.
|
|
||||||
setText("");
|
|
||||||
|
|
||||||
mSelIndex = -1;
|
|
||||||
|
|
||||||
if( bNotifyScript )
|
|
||||||
{
|
|
||||||
Con::executef( this, "onCancel" );
|
|
||||||
execConsoleCallback();
|
execConsoleCallback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( mReplaceText ) // Only change the displayed text if appropriate.
|
||||||
|
setText("");
|
||||||
|
|
||||||
|
mSelIndex = -1;
|
||||||
|
|
||||||
|
if( bNotifyScript )
|
||||||
|
{
|
||||||
|
Con::executef( this, "onCancel" );
|
||||||
|
execConsoleCallback();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -1278,11 +1278,11 @@ void GuiPopUpMenuCtrl::onAction()
|
||||||
if ( setScroll )
|
if ( setScroll )
|
||||||
{
|
{
|
||||||
// Resize the text list
|
// Resize the text list
|
||||||
Point2I cellSize;
|
Point2I cellSize;
|
||||||
mTl->getCellSize( cellSize );
|
mTl->getCellSize( cellSize );
|
||||||
cellSize.x = width - mSc->scrollBarThickness() - sbBorder;
|
cellSize.x = width - mSc->scrollBarThickness() - sbBorder;
|
||||||
mTl->setCellSize( cellSize );
|
mTl->setCellSize( cellSize );
|
||||||
mTl->setWidth( cellSize.x );
|
mTl->setWidth( cellSize.x );
|
||||||
|
|
||||||
if ( mSelIndex )
|
if ( mSelIndex )
|
||||||
mTl->scrollCellVisible( Point2I( 0, mSelIndex ) );
|
mTl->scrollCellVisible( Point2I( 0, mSelIndex ) );
|
||||||
|
|
@ -1315,7 +1315,7 @@ void GuiPopUpMenuCtrl::addChildren()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Use the children's profile rather than the parent's profile, if it exists.
|
// Use the children's profile rather than the parent's profile, if it exists.
|
||||||
mSc->setControlProfile( mProfile->getChildrenProfile() ? mProfile->getChildrenProfile() : mProfile );
|
mSc->setControlProfile( mProfile->getChildrenProfile() ? mProfile->getChildrenProfile() : mProfile );
|
||||||
}
|
}
|
||||||
|
|
||||||
mSc->setField( "hScrollBar", "AlwaysOff" );
|
mSc->setField( "hScrollBar", "AlwaysOff" );
|
||||||
|
|
|
||||||
|
|
@ -30,27 +30,27 @@
|
||||||
#include "console/engineAPI.h"
|
#include "console/engineAPI.h"
|
||||||
|
|
||||||
ConsoleDocClass( GuiPopUpMenuCtrlEx,
|
ConsoleDocClass( GuiPopUpMenuCtrlEx,
|
||||||
"@brief A control that allows to select a value from a drop-down list.\n\n"
|
"@brief A control that allows to select a value from a drop-down list.\n\n"
|
||||||
|
|
||||||
"This is essentially a GuiPopUpMenuCtrl, but with quite a few more features.\n\n"
|
"This is essentially a GuiPopUpMenuCtrl, but with quite a few more features.\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"new GuiPopUpMenuCtrlEx()\n"
|
"new GuiPopUpMenuCtrlEx()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" maxPopupHeight = \"200\";\n"
|
" maxPopupHeight = \"200\";\n"
|
||||||
" sbUsesNAColor = \"0\";\n"
|
" sbUsesNAColor = \"0\";\n"
|
||||||
" reverseTextList = \"0\";\n"
|
" reverseTextList = \"0\";\n"
|
||||||
" bitmapBounds = \"16 16\";\n"
|
" bitmapBounds = \"16 16\";\n"
|
||||||
" hotTrackCallback = \"0\";\n"
|
" hotTrackCallback = \"0\";\n"
|
||||||
" extent = \"64 64\";\n"
|
" extent = \"64 64\";\n"
|
||||||
" profile = \"GuiDefaultProfile\";\n"
|
" profile = \"GuiDefaultProfile\";\n"
|
||||||
" tooltipProfile = \"GuiToolTipProfile\";\n"
|
" tooltipProfile = \"GuiToolTipProfile\";\n"
|
||||||
"};\n"
|
"};\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@see GuiPopUpMenuCtrl\n"
|
"@see GuiPopUpMenuCtrl\n"
|
||||||
|
|
||||||
"@ingroup GuiControls\n");
|
"@ingroup GuiControls\n");
|
||||||
|
|
||||||
static ColorI colorWhite(255,255,255); // Added
|
static ColorI colorWhite(255,255,255); // Added
|
||||||
|
|
||||||
|
|
@ -328,10 +328,10 @@ GuiPopUpMenuCtrlEx::GuiPopUpMenuCtrlEx(void)
|
||||||
mRenderScrollInNA = false; // Added
|
mRenderScrollInNA = false; // Added
|
||||||
mBackgroundCancel = false; // Added
|
mBackgroundCancel = false; // Added
|
||||||
mReverseTextList = false; // Added - Don't reverse text list if displaying up
|
mReverseTextList = false; // Added - Don't reverse text list if displaying up
|
||||||
mBitmapName = StringTable->insert(""); // Added
|
mBitmapName = StringTable->EmptyString(); // Added
|
||||||
mBitmapBounds.set(16, 16); // Added
|
mBitmapBounds.set(16, 16); // Added
|
||||||
mHotTrackItems = false;
|
mHotTrackItems = false;
|
||||||
mIdMax = -1;
|
mIdMax = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -355,13 +355,13 @@ void GuiPopUpMenuCtrlEx::initPersistFields(void)
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
ConsoleDocFragment _GuiPopUpMenuCtrlExAdd(
|
ConsoleDocFragment _GuiPopUpMenuCtrlExAdd(
|
||||||
"@brief Adds an entry to the list\n\n"
|
"@brief Adds an entry to the list\n\n"
|
||||||
"@param name String containing the name of the entry\n"
|
"@param name String containing the name of the entry\n"
|
||||||
"@param idNum Numerical value assigned to the name\n"
|
"@param idNum Numerical value assigned to the name\n"
|
||||||
"@param scheme Optional ID associated with a scheme "
|
"@param scheme Optional ID associated with a scheme "
|
||||||
"for font coloring, highlight coloring, and selection coloring\n\n",
|
"for font coloring, highlight coloring, and selection coloring\n\n",
|
||||||
"GuiPopUpMenuCtrlEx",
|
"GuiPopUpMenuCtrlEx",
|
||||||
"void add(string name, S32 idNum, S32 scheme=0);"
|
"void add(string name, S32 idNum, S32 scheme=0);"
|
||||||
);
|
);
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, add, void, (const char * name, S32 idNum, U32 scheme), ("", -1, 0), "(string name, int idNum, int scheme=0)")
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, add, void, (const char * name, S32 idNum, U32 scheme), ("", -1, 0), "(string name, int idNum, int scheme=0)")
|
||||||
|
|
@ -370,23 +370,23 @@ DefineConsoleMethod( GuiPopUpMenuCtrlEx, add, void, (const char * name, S32 idNu
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, addCategory, void, (const char* text),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, addCategory, void, (const char* text),,
|
||||||
"@brief Add a category to the list.\n\n"
|
"@brief Add a category to the list.\n\n"
|
||||||
|
|
||||||
"Acts as a separator between entries, allowing for sub-lists\n\n"
|
"Acts as a separator between entries, allowing for sub-lists\n\n"
|
||||||
|
|
||||||
"@param text Name of the new category\n\n")
|
"@param text Name of the new category\n\n")
|
||||||
{
|
{
|
||||||
object->addEntry(text, -1, 0);
|
object->addEntry(text, -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, addScheme, void, (S32 id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, addScheme, void, (S32 id, ColorI fontColor, ColorI fontColorHL, ColorI fontColorSEL),,
|
||||||
"@brief Create a new scheme and add it to the list of choices for when a new text entry is added.\n\n"
|
"@brief Create a new scheme and add it to the list of choices for when a new text entry is added.\n\n"
|
||||||
"@param id Numerical id associated with this scheme\n"
|
"@param id Numerical id associated with this scheme\n"
|
||||||
"@param fontColor The base text font color. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n"
|
"@param fontColor The base text font color. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n"
|
||||||
"@param fontColorHL Color of text when being highlighted. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n"
|
"@param fontColorHL Color of text when being highlighted. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n"
|
||||||
"@param fontColorSel Color of text when being selected. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n")
|
"@param fontColorSel Color of text when being selected. Formatted as \"Red Green Blue\", each a numerical between 0 and 255.\n")
|
||||||
{
|
{
|
||||||
/*ColorI fontColor, fontColorHL, fontColorSEL;
|
/*ColorI fontColor, fontColorHL, fontColorSEL;
|
||||||
U32 r, g, b;
|
U32 r, g, b;
|
||||||
char buf[64];
|
char buf[64];
|
||||||
|
|
||||||
|
|
@ -457,127 +457,127 @@ DefineEngineMethod( GuiPopUpMenuCtrlEx, addScheme, void, (S32 id, ColorI fontCol
|
||||||
//}
|
//}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, setText, void, ( const char* text),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, setText, void, ( const char* text),,
|
||||||
"@brief Set the current text to a specified value.\n\n"
|
"@brief Set the current text to a specified value.\n\n"
|
||||||
"@param text String containing new text to set\n\n")
|
"@param text String containing new text to set\n\n")
|
||||||
{
|
{
|
||||||
object->setText(text);
|
object->setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, getText, const char*, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, getText, const char*, (),,
|
||||||
"@brief Get the.\n\n"
|
"@brief Get the.\n\n"
|
||||||
|
|
||||||
"Detailed description\n\n"
|
"Detailed description\n\n"
|
||||||
|
|
||||||
"@param param Description\n\n"
|
"@param param Description\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Comment\n"
|
"// Comment\n"
|
||||||
"code();\n"
|
"code();\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@return Returns current text in string format")
|
"@return Returns current text in string format")
|
||||||
{
|
{
|
||||||
return object->getText();
|
return object->getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, clear, void, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, clear, void, (),,
|
||||||
"@brief Clear the popup list.\n\n")
|
"@brief Clear the popup list.\n\n")
|
||||||
{
|
{
|
||||||
object->clear();
|
object->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, sort, void, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, sort, void, (),,
|
||||||
"@brief Sort the list alphabetically.\n\n")
|
"@brief Sort the list alphabetically.\n\n")
|
||||||
{
|
{
|
||||||
object->sort();
|
object->sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, sortID, void, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, sortID, void, (),,
|
||||||
"@brief Sort the list by ID.\n\n")
|
"@brief Sort the list by ID.\n\n")
|
||||||
{
|
{
|
||||||
object->sortID();
|
object->sortID();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, forceOnAction, void, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, forceOnAction, void, (),,
|
||||||
"@brief Manually for the onAction function, which updates everything in this control.\n\n")
|
"@brief Manually for the onAction function, which updates everything in this control.\n\n")
|
||||||
{
|
{
|
||||||
object->onAction();
|
object->onAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, forceClose, void, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, forceClose, void, (),,
|
||||||
"@brief Manually force this control to collapse and close.\n\n")
|
"@brief Manually force this control to collapse and close.\n\n")
|
||||||
{
|
{
|
||||||
object->closePopUp();
|
object->closePopUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, getSelected, S32, (),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, getSelected, S32, (),,
|
||||||
"@brief Get the current selection of the menu.\n\n"
|
"@brief Get the current selection of the menu.\n\n"
|
||||||
"@return Returns the ID of the currently selected entry")
|
"@return Returns the ID of the currently selected entry")
|
||||||
{
|
{
|
||||||
return object->getSelected();
|
return object->getSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
ConsoleDocFragment _GuiPopUpMenuCtrlExsetSelected(
|
ConsoleDocFragment _GuiPopUpMenuCtrlExsetSelected(
|
||||||
"brief Manually set an entry as selected int his control\n\n"
|
"brief Manually set an entry as selected int his control\n\n"
|
||||||
"@param id The ID of the entry to select\n"
|
"@param id The ID of the entry to select\n"
|
||||||
"@param scripCallback Optional boolean that forces the script callback if true\n",
|
"@param scripCallback Optional boolean that forces the script callback if true\n",
|
||||||
"GuiPopUpMenuCtrlEx",
|
"GuiPopUpMenuCtrlEx",
|
||||||
"setSelected(int id, bool scriptCallback=true);"
|
"setSelected(int id, bool scriptCallback=true);"
|
||||||
);
|
);
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setSelected, void, (S32 id, bool scriptCallback), (true), "(int id, [scriptCallback=true])"
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setSelected, void, (S32 id, bool scriptCallback), (true), "(int id, [scriptCallback=true])"
|
||||||
"@hide")
|
"@hide")
|
||||||
{
|
{
|
||||||
object->setSelected( id, scriptCallback );
|
object->setSelected( id, scriptCallback );
|
||||||
}
|
}
|
||||||
|
|
||||||
ConsoleDocFragment _GuiPopUpMenuCtrlExsetFirstSelected(
|
ConsoleDocFragment _GuiPopUpMenuCtrlExsetFirstSelected(
|
||||||
"brief Manually set the selection to the first entry\n\n"
|
"brief Manually set the selection to the first entry\n\n"
|
||||||
"@param scripCallback Optional boolean that forces the script callback if true\n",
|
"@param scripCallback Optional boolean that forces the script callback if true\n",
|
||||||
"GuiPopUpMenuCtrlEx",
|
"GuiPopUpMenuCtrlEx",
|
||||||
"setSelected(bool scriptCallback=true);"
|
"setSelected(bool scriptCallback=true);"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setFirstSelected, void, (bool scriptCallback), (true), "([scriptCallback=true])"
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setFirstSelected, void, (bool scriptCallback), (true), "([scriptCallback=true])"
|
||||||
"@hide")
|
"@hide")
|
||||||
{
|
{
|
||||||
object->setFirstSelected( scriptCallback );
|
object->setFirstSelected( scriptCallback );
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, setNoneSelected, void, ( S32 param),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, setNoneSelected, void, ( S32 param),,
|
||||||
"@brief Clears selection in the menu.\n\n")
|
"@brief Clears selection in the menu.\n\n")
|
||||||
{
|
{
|
||||||
object->setNoneSelected();
|
object->setNoneSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DefineEngineMethod( GuiPopUpMenuCtrlEx, getTextById, const char*, (S32 id),,
|
DefineEngineMethod( GuiPopUpMenuCtrlEx, getTextById, const char*, (S32 id),,
|
||||||
"@brief Get the text of an entry based on an ID.\n\n"
|
"@brief Get the text of an entry based on an ID.\n\n"
|
||||||
"@param id The ID assigned to the entry being queried\n\n"
|
"@param id The ID assigned to the entry being queried\n\n"
|
||||||
"@return String contained by the specified entry, NULL if empty or bad ID")
|
"@return String contained by the specified entry, NULL if empty or bad ID")
|
||||||
{
|
{
|
||||||
return(object->getTextById(id));
|
return(object->getTextById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, getColorById, ColorI, (S32 id), ,
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, getColorById, ColorI, (S32 id), ,
|
||||||
"@brief Get color of an entry's box\n\n"
|
"@brief Get color of an entry's box\n\n"
|
||||||
"@param id ID number of entry to query\n\n"
|
"@param id ID number of entry to query\n\n"
|
||||||
"@return ColorI in the format of \"Red Green Blue Alpha\", each of with is a value between 0 - 255")
|
"@return ColorI in the format of \"Red Green Blue Alpha\", each of with is a value between 0 - 255")
|
||||||
{
|
{
|
||||||
ColorI color;
|
ColorI color;
|
||||||
object->getColoredBox(color, id);
|
object->getColoredBox(color, id);
|
||||||
return color;
|
return color;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setEnumContent, void, ( const char * className, const char * enumName ), ,
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, setEnumContent, void, ( const char * className, const char * enumName ), ,
|
||||||
"@brief This fills the popup with a classrep's field enumeration type info.\n\n"
|
"@brief This fills the popup with a classrep's field enumeration type info.\n\n"
|
||||||
"More of a helper function than anything. If console access to the field list is added, "
|
"More of a helper function than anything. If console access to the field list is added, "
|
||||||
"at least for the enumerated types, then this should go away.\n\n"
|
"at least for the enumerated types, then this should go away.\n\n"
|
||||||
"@param class Name of the class containing the enum\n"
|
"@param class Name of the class containing the enum\n"
|
||||||
"@param enum Name of the enum value to acces\n")
|
"@param enum Name of the enum value to acces\n")
|
||||||
{
|
{
|
||||||
AbstractClassRep * classRep = AbstractClassRep::getClassList();
|
AbstractClassRep * classRep = AbstractClassRep::getClassList();
|
||||||
|
|
||||||
|
|
@ -630,24 +630,24 @@ DefineConsoleMethod( GuiPopUpMenuCtrlEx, setEnumContent, void, ( const char * cl
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, findText, S32, (const char * text), , "(string text)"
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, findText, S32, (const char * text), , "(string text)"
|
||||||
"Returns the id of the first entry containing the specified text or -1 if not found."
|
"Returns the id of the first entry containing the specified text or -1 if not found."
|
||||||
"@param text String value used for the query\n\n"
|
"@param text String value used for the query\n\n"
|
||||||
"@return Numerical ID of entry containing the text.")
|
"@return Numerical ID of entry containing the text.")
|
||||||
{
|
{
|
||||||
return( object->findText( text ) );
|
return( object->findText( text ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, size, S32, (), ,
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, size, S32, (), ,
|
||||||
"@brief Get the size of the menu\n\n"
|
"@brief Get the size of the menu\n\n"
|
||||||
"@return Number of entries in the menu\n")
|
"@return Number of entries in the menu\n")
|
||||||
{
|
{
|
||||||
return( object->getNumEntries() );
|
return( object->getNumEntries() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineConsoleMethod( GuiPopUpMenuCtrlEx, replaceText, void, (S32 boolVal), ,
|
DefineConsoleMethod( GuiPopUpMenuCtrlEx, replaceText, void, (S32 boolVal), ,
|
||||||
"@brief Flag that causes each new text addition to replace the current entry\n\n"
|
"@brief Flag that causes each new text addition to replace the current entry\n\n"
|
||||||
"@param True to turn on replacing, false to disable it")
|
"@param True to turn on replacing, false to disable it")
|
||||||
{
|
{
|
||||||
object->replaceText(boolVal);
|
object->replaceText(boolVal);
|
||||||
}
|
}
|
||||||
|
|
@ -697,43 +697,43 @@ void GuiPopUpMenuCtrlEx::clear()
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
mRevNum = 0;
|
mRevNum = 0;
|
||||||
mIdMax = -1;
|
mIdMax = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void GuiPopUpMenuCtrlEx::clearEntry( S32 entry )
|
void GuiPopUpMenuCtrlEx::clearEntry( S32 entry )
|
||||||
{
|
{
|
||||||
if( entry == -1 )
|
if( entry == -1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
U32 i = 0;
|
U32 i = 0;
|
||||||
for ( ; i < mEntries.size(); i++ )
|
for ( ; i < mEntries.size(); i++ )
|
||||||
{
|
{
|
||||||
if ( mEntries[i].id == entry )
|
if ( mEntries[i].id == entry )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mEntries.erase( i );
|
mEntries.erase( i );
|
||||||
|
|
||||||
if( mEntries.size() <= 0 )
|
if( mEntries.size() <= 0 )
|
||||||
{
|
{
|
||||||
mEntries.setSize(0);
|
mEntries.setSize(0);
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
mRevNum = 0;
|
mRevNum = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( entry == mSelIndex )
|
if( entry == mSelIndex )
|
||||||
{
|
{
|
||||||
setText("");
|
setText("");
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mSelIndex--;
|
mSelIndex--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -797,9 +797,9 @@ void GuiPopUpMenuCtrlEx::sort()
|
||||||
if( size > 0 )
|
if( size > 0 )
|
||||||
dQsort( mEntries.address(), size, sizeof(Entry), textCompare);
|
dQsort( mEntries.address(), size, sizeof(Entry), textCompare);
|
||||||
|
|
||||||
// Entries need to re-Id themselves
|
// Entries need to re-Id themselves
|
||||||
for( U32 i = 0; i < mEntries.size(); i++ )
|
for( U32 i = 0; i < mEntries.size(); i++ )
|
||||||
mEntries[i].id = i;
|
mEntries[i].id = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Added to sort by entry ID
|
// Added to sort by entry ID
|
||||||
|
|
@ -810,9 +810,9 @@ void GuiPopUpMenuCtrlEx::sortID()
|
||||||
if( size > 0 )
|
if( size > 0 )
|
||||||
dQsort( mEntries.address(), size, sizeof(Entry), idCompare);
|
dQsort( mEntries.address(), size, sizeof(Entry), idCompare);
|
||||||
|
|
||||||
// Entries need to re-Id themselves
|
// Entries need to re-Id themselves
|
||||||
for( U32 i = 0; i < mEntries.size(); i++ )
|
for( U32 i = 0; i < mEntries.size(); i++ )
|
||||||
mEntries[i].id = i;
|
mEntries[i].id = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -823,21 +823,21 @@ void GuiPopUpMenuCtrlEx::addEntry(const char *buf, S32 id, U32 scheme)
|
||||||
//Con::printf( "GuiPopupMenuCtrlEx::addEntry - Invalid buffer!" );
|
//Con::printf( "GuiPopupMenuCtrlEx::addEntry - Invalid buffer!" );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure that there are no other entries with exactly the same name
|
// Ensure that there are no other entries with exactly the same name
|
||||||
for ( U32 i = 0; i < mEntries.size(); i++ )
|
for ( U32 i = 0; i < mEntries.size(); i++ )
|
||||||
{
|
{
|
||||||
if ( dStrcmp( mEntries[i].buf, buf ) == 0 )
|
if ( dStrcmp( mEntries[i].buf, buf ) == 0 )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we don't give an id, create one from mIdMax
|
// If we don't give an id, create one from mIdMax
|
||||||
if( id == -1 )
|
if( id == -1 )
|
||||||
id = mIdMax + 1;
|
id = mIdMax + 1;
|
||||||
|
|
||||||
// Increase mIdMax when an id is greater than it
|
// Increase mIdMax when an id is greater than it
|
||||||
if( id > mIdMax )
|
if( id > mIdMax )
|
||||||
mIdMax = id;
|
mIdMax = id;
|
||||||
|
|
||||||
Entry e;
|
Entry e;
|
||||||
dStrcpy( e.buf, buf );
|
dStrcpy( e.buf, buf );
|
||||||
|
|
@ -992,20 +992,20 @@ void GuiPopUpMenuCtrlEx::setFirstSelected( bool bNotifyScript )
|
||||||
if ( isMethod( "onSelect" ) )
|
if ( isMethod( "onSelect" ) )
|
||||||
Con::executef( this, "onSelect", idval, mEntries[mSelIndex].buf );
|
Con::executef( this, "onSelect", idval, mEntries[mSelIndex].buf );
|
||||||
|
|
||||||
// Execute the popup console command:
|
// Execute the popup console command:
|
||||||
if ( bNotifyScript )
|
if ( bNotifyScript )
|
||||||
execConsoleCallback();
|
execConsoleCallback();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( mReplaceText ) // Only change the displayed text if appropriate.
|
if ( mReplaceText ) // Only change the displayed text if appropriate.
|
||||||
setText("");
|
setText("");
|
||||||
|
|
||||||
mSelIndex = -1;
|
mSelIndex = -1;
|
||||||
|
|
||||||
if ( bNotifyScript )
|
if ( bNotifyScript )
|
||||||
Con::executef( this, "onCancel" );
|
Con::executef( this, "onCancel" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
@ -1500,11 +1500,11 @@ void GuiPopUpMenuCtrlEx::onAction()
|
||||||
if ( setScroll )
|
if ( setScroll )
|
||||||
{
|
{
|
||||||
// Resize the text list
|
// Resize the text list
|
||||||
Point2I cellSize;
|
Point2I cellSize;
|
||||||
mTl->getCellSize( cellSize );
|
mTl->getCellSize( cellSize );
|
||||||
cellSize.x = width - mSc->scrollBarThickness() - sbBorder;
|
cellSize.x = width - mSc->scrollBarThickness() - sbBorder;
|
||||||
mTl->setCellSize( cellSize );
|
mTl->setCellSize( cellSize );
|
||||||
mTl->setWidth( cellSize.x );
|
mTl->setWidth( cellSize.x );
|
||||||
|
|
||||||
if ( mSelIndex )
|
if ( mSelIndex )
|
||||||
mTl->scrollCellVisible( Point2I( 0, mSelIndex ) );
|
mTl->scrollCellVisible( Point2I( 0, mSelIndex ) );
|
||||||
|
|
@ -1536,7 +1536,7 @@ void GuiPopUpMenuCtrlEx::addChildren()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Use the children's profile rather than the parent's profile, if it exists.
|
// Use the children's profile rather than the parent's profile, if it exists.
|
||||||
mSc->setControlProfile( mProfile->getChildrenProfile() ? mProfile->getChildrenProfile() : mProfile );
|
mSc->setControlProfile( mProfile->getChildrenProfile() ? mProfile->getChildrenProfile() : mProfile );
|
||||||
}
|
}
|
||||||
mSc->setField( "hScrollBar", "AlwaysOff" );
|
mSc->setField( "hScrollBar", "AlwaysOff" );
|
||||||
mSc->setField( "vScrollBar", "dynamic" );
|
mSc->setField( "vScrollBar", "dynamic" );
|
||||||
|
|
|
||||||
|
|
@ -37,13 +37,13 @@ ConsoleDocClass( GuiTextCtrl,
|
||||||
"@brief GUI control object this displays a single line of text, without TorqueML.\n\n"
|
"@brief GUI control object this displays a single line of text, without TorqueML.\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
" new GuiTextCtrl()\n"
|
" new GuiTextCtrl()\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" text = \"Hello World\";\n"
|
" text = \"Hello World\";\n"
|
||||||
" textID = \"\"STR_HELLO\"\";\n"
|
" textID = \"\"STR_HELLO\"\";\n"
|
||||||
" maxlength = \"1024\";\n"
|
" maxlength = \"1024\";\n"
|
||||||
" //Properties not specific to this control have been omitted from this example.\n"
|
" //Properties not specific to this control have been omitted from this example.\n"
|
||||||
" };\n"
|
" };\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@see GuiControl\n"
|
"@see GuiControl\n"
|
||||||
|
|
@ -54,8 +54,8 @@ ConsoleDocClass( GuiTextCtrl,
|
||||||
GuiTextCtrl::GuiTextCtrl()
|
GuiTextCtrl::GuiTextCtrl()
|
||||||
{
|
{
|
||||||
//default fonts
|
//default fonts
|
||||||
mInitialText = StringTable->insert("");
|
mInitialText = StringTable->EmptyString();
|
||||||
mInitialTextID = StringTable->insert("");
|
mInitialTextID = StringTable->EmptyString();
|
||||||
mText[0] = '\0';
|
mText[0] = '\0';
|
||||||
mMaxStrLen = GuiTextCtrl::MAX_STRING_LENGTH;
|
mMaxStrLen = GuiTextCtrl::MAX_STRING_LENGTH;
|
||||||
}
|
}
|
||||||
|
|
@ -84,7 +84,7 @@ DefineEngineMethod( GuiTextCtrl, setTextID, void, (const char* textID),,
|
||||||
"@see GuiControl"
|
"@see GuiControl"
|
||||||
"@see Localization")
|
"@see Localization")
|
||||||
{
|
{
|
||||||
object->setTextID( textID );
|
object->setTextID( textID );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiTextCtrl::initPersistFields()
|
void GuiTextCtrl::initPersistFields()
|
||||||
|
|
@ -117,7 +117,7 @@ void GuiTextCtrl::inspectPostApply()
|
||||||
{
|
{
|
||||||
Parent::inspectPostApply();
|
Parent::inspectPostApply();
|
||||||
if(mInitialTextID && *mInitialTextID != 0)
|
if(mInitialTextID && *mInitialTextID != 0)
|
||||||
setTextID(mInitialTextID);
|
setTextID(mInitialTextID);
|
||||||
else if( mConsoleVariable[ 0 ] )
|
else if( mConsoleVariable[ 0 ] )
|
||||||
setText( getVariable() );
|
setText( getVariable() );
|
||||||
else
|
else
|
||||||
|
|
@ -135,7 +135,7 @@ bool GuiTextCtrl::onWake()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(mInitialTextID && *mInitialTextID != 0)
|
if(mInitialTextID && *mInitialTextID != 0)
|
||||||
setTextID(mInitialTextID);
|
setTextID(mInitialTextID);
|
||||||
|
|
||||||
if ( mConsoleVariable[0] )
|
if ( mConsoleVariable[0] )
|
||||||
{
|
{
|
||||||
|
|
@ -202,19 +202,19 @@ void GuiTextCtrl::setText(const char *txt)
|
||||||
|
|
||||||
void GuiTextCtrl::setTextID(const char *id)
|
void GuiTextCtrl::setTextID(const char *id)
|
||||||
{
|
{
|
||||||
S32 n = Con::getIntVariable(id, -1);
|
S32 n = Con::getIntVariable(id, -1);
|
||||||
if(n != -1)
|
if(n != -1)
|
||||||
{
|
{
|
||||||
mInitialTextID = StringTable->insert(id);
|
mInitialTextID = StringTable->insert(id);
|
||||||
setTextID(n);
|
setTextID(n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void GuiTextCtrl::setTextID(S32 id)
|
void GuiTextCtrl::setTextID(S32 id)
|
||||||
{
|
{
|
||||||
const UTF8 *str = getGUIString(id);
|
const UTF8 *str = getGUIString(id);
|
||||||
if(str)
|
if(str)
|
||||||
setText((const char*)str);
|
setText((const char*)str);
|
||||||
//mInitialTextID = id;
|
//mInitialTextID = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GuiTextCtrl::onPreRender()
|
void GuiTextCtrl::onPreRender()
|
||||||
|
|
|
||||||
|
|
@ -46,17 +46,17 @@ ConsoleDocClass( GuiTextEditCtrl,
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
" new GuiTextEditCtrl(MessageHud_Edit)\n"
|
" new GuiTextEditCtrl(MessageHud_Edit)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" text = \"Hello World\";\n"
|
" text = \"Hello World\";\n"
|
||||||
" validate = \"validateCommand();\"\n"
|
" validate = \"validateCommand();\"\n"
|
||||||
" escapeCommand = \"escapeCommand();\";\n"
|
" escapeCommand = \"escapeCommand();\";\n"
|
||||||
" historySize = \"5\";\n"
|
" historySize = \"5\";\n"
|
||||||
" tabComplete = \"true\";\n"
|
" tabComplete = \"true\";\n"
|
||||||
" deniedSound = \"DeniedSoundProfile\";\n"
|
" deniedSound = \"DeniedSoundProfile\";\n"
|
||||||
" sinkAllKeyEvents = \"true\";\n"
|
" sinkAllKeyEvents = \"true\";\n"
|
||||||
" password = \"true\";\n"
|
" password = \"true\";\n"
|
||||||
" passwordMask = \"*\";\n"
|
" passwordMask = \"*\";\n"
|
||||||
" //Properties not specific to this control have been omitted from this example.\n"
|
" //Properties not specific to this control have been omitted from this example.\n"
|
||||||
" };\n"
|
" };\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
|
|
@ -72,9 +72,9 @@ IMPLEMENT_CALLBACK( GuiTextEditCtrl, onTabComplete, void, (const char* val),( va
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Tab key has been pressed, causing the callback to occur.\n"
|
"// Tab key has been pressed, causing the callback to occur.\n"
|
||||||
"GuiTextEditCtrl::onTabComplete(%this,%val)\n"
|
"GuiTextEditCtrl::onTabComplete(%this,%val)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" //Code to run when the onTabComplete callback occurs\n"
|
" //Code to run when the onTabComplete callback occurs\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiTextCtrl\n"
|
"@see GuiTextCtrl\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
|
|
@ -85,9 +85,9 @@ IMPLEMENT_CALLBACK( GuiTextEditCtrl, onReturn, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// Return or Enter key was pressed, causing the callback to occur.\n"
|
"// Return or Enter key was pressed, causing the callback to occur.\n"
|
||||||
"GuiTextEditCtrl::onReturn(%this)\n"
|
"GuiTextEditCtrl::onReturn(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run when the onReturn callback occurs\n"
|
" // Code to run when the onReturn callback occurs\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiTextCtrl\n"
|
"@see GuiTextCtrl\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
|
|
@ -98,9 +98,9 @@ IMPLEMENT_CALLBACK( GuiTextEditCtrl, onValidate, void, (),(),
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"// The control gets validated, causing the callback to occur\n"
|
"// The control gets validated, causing the callback to occur\n"
|
||||||
"GuiTextEditCtrl::onValidated(%this)\n"
|
"GuiTextEditCtrl::onValidated(%this)\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" // Code to run when the control is validated\n"
|
" // Code to run when the control is validated\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
"@see GuiTextCtrl\n"
|
"@see GuiTextCtrl\n"
|
||||||
"@see GuiControl\n\n"
|
"@see GuiControl\n\n"
|
||||||
|
|
@ -139,7 +139,7 @@ GuiTextEditCtrl::GuiTextEditCtrl()
|
||||||
mHistoryBuf = NULL;
|
mHistoryBuf = NULL;
|
||||||
|
|
||||||
#if defined(__MACOSX__)
|
#if defined(__MACOSX__)
|
||||||
UTF8 bullet[4] = { 0xE2, 0x80, 0xA2, 0 };
|
UTF8 bullet[4] = { 0xE2, 0x80, 0xA2, 0 };
|
||||||
|
|
||||||
mPasswordMask = StringTable->insert( bullet );
|
mPasswordMask = StringTable->insert( bullet );
|
||||||
#else
|
#else
|
||||||
|
|
@ -710,10 +710,10 @@ bool GuiTextEditCtrl::onKeyDown(const GuiEvent &event)
|
||||||
case KEY_TAB:
|
case KEY_TAB:
|
||||||
if ( mTabComplete )
|
if ( mTabComplete )
|
||||||
{
|
{
|
||||||
onTabComplete_callback("1");
|
onTabComplete_callback("1");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break; // We don't want to fall through if we don't handle the TAB here.
|
break; // We don't want to fall through if we don't handle the TAB here.
|
||||||
|
|
||||||
case KEY_HOME:
|
case KEY_HOME:
|
||||||
mBlockStart = 0;
|
mBlockStart = 0;
|
||||||
|
|
@ -779,10 +779,10 @@ bool GuiTextEditCtrl::onKeyDown(const GuiEvent &event)
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case KEY_RETURN:
|
case KEY_RETURN:
|
||||||
case KEY_NUMPADENTER:
|
case KEY_NUMPADENTER:
|
||||||
|
|
||||||
return dealWithEnter(false);
|
return dealWithEnter(false);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
@ -998,7 +998,7 @@ bool GuiTextEditCtrl::onKeyDown(const GuiEvent &event)
|
||||||
case KEY_RETURN:
|
case KEY_RETURN:
|
||||||
case KEY_NUMPADENTER:
|
case KEY_NUMPADENTER:
|
||||||
|
|
||||||
return dealWithEnter(true);
|
return dealWithEnter(true);
|
||||||
|
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
{
|
{
|
||||||
|
|
@ -1155,7 +1155,7 @@ dealWithBackspace:
|
||||||
case KEY_TAB:
|
case KEY_TAB:
|
||||||
if ( mTabComplete )
|
if ( mTabComplete )
|
||||||
{
|
{
|
||||||
onTabComplete_callback("0");
|
onTabComplete_callback("0");
|
||||||
return( true );
|
return( true );
|
||||||
}
|
}
|
||||||
case KEY_UP:
|
case KEY_UP:
|
||||||
|
|
@ -1208,9 +1208,9 @@ bool GuiTextEditCtrl::dealWithEnter( bool clearResponder )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( clearResponder )
|
if( clearResponder )
|
||||||
clearFirstResponder();
|
clearFirstResponder();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -1222,13 +1222,13 @@ void GuiTextEditCtrl::setFirstResponder()
|
||||||
GuiCanvas *root = getRoot();
|
GuiCanvas *root = getRoot();
|
||||||
if (root != NULL)
|
if (root != NULL)
|
||||||
{
|
{
|
||||||
root->enableKeyboardTranslation();
|
root->enableKeyboardTranslation();
|
||||||
|
|
||||||
|
|
||||||
// If the native OS accelerator keys are not disabled
|
// If the native OS accelerator keys are not disabled
|
||||||
// then some key events like Delete, ctrl+V, etc may
|
// then some key events like Delete, ctrl+V, etc may
|
||||||
// not make it down to us.
|
// not make it down to us.
|
||||||
root->setNativeAcceleratorsEnabled( false );
|
root->setNativeAcceleratorsEnabled( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1237,8 +1237,8 @@ void GuiTextEditCtrl::onLoseFirstResponder()
|
||||||
GuiCanvas *root = getRoot();
|
GuiCanvas *root = getRoot();
|
||||||
if( root )
|
if( root )
|
||||||
{
|
{
|
||||||
root->setNativeAcceleratorsEnabled( true );
|
root->setNativeAcceleratorsEnabled( true );
|
||||||
root->disableKeyboardTranslation();
|
root->disableKeyboardTranslation();
|
||||||
}
|
}
|
||||||
|
|
||||||
//execute the validate command
|
//execute the validate command
|
||||||
|
|
@ -1546,29 +1546,29 @@ void GuiTextEditCtrl::handleCharInput( U16 ascii )
|
||||||
//see if it's a number field
|
//see if it's a number field
|
||||||
if ( mProfile->mNumbersOnly )
|
if ( mProfile->mNumbersOnly )
|
||||||
{
|
{
|
||||||
if (ascii == '-')
|
if (ascii == '-')
|
||||||
{
|
{
|
||||||
//a minus sign only exists at the beginning, and only a single minus sign
|
//a minus sign only exists at the beginning, and only a single minus sign
|
||||||
if (mCursorPos != 0 && !isAllTextSelected())
|
if (mCursorPos != 0 && !isAllTextSelected())
|
||||||
{
|
{
|
||||||
invalidText();
|
invalidText();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mInsertOn && (mTextBuffer.getChar(0) == '-'))
|
if (mInsertOn && (mTextBuffer.getChar(0) == '-'))
|
||||||
{
|
{
|
||||||
invalidText();
|
invalidText();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// BJTODO: This is probably not unicode safe.
|
// BJTODO: This is probably not unicode safe.
|
||||||
else if (ascii != '.' && (ascii < '0' || ascii > '9'))
|
else if (ascii != '.' && (ascii < '0' || ascii > '9'))
|
||||||
{
|
{
|
||||||
invalidText();
|
invalidText();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
validText();
|
validText();
|
||||||
}
|
}
|
||||||
|
|
||||||
//save the current state
|
//save the current state
|
||||||
|
|
@ -1684,7 +1684,7 @@ DefineEngineMethod( GuiTextEditCtrl, getText, const char*, (),,
|
||||||
"@see GuiControl")
|
"@see GuiControl")
|
||||||
{
|
{
|
||||||
if( !object->hasText() )
|
if( !object->hasText() )
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
|
|
||||||
char *retBuffer = Con::getReturnBuffer( GuiTextEditCtrl::MAX_STRING_LENGTH );
|
char *retBuffer = Con::getReturnBuffer( GuiTextEditCtrl::MAX_STRING_LENGTH );
|
||||||
object->getText( retBuffer );
|
object->getText( retBuffer );
|
||||||
|
|
@ -1778,22 +1778,22 @@ DefineEngineMethod( GuiTextEditCtrl, forceValidateText, void, (),,
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod(GuiTextEditCtrl, invalidText, void, (bool playSound), (true),
|
DefineEngineMethod(GuiTextEditCtrl, invalidText, void, (bool playSound), (true),
|
||||||
"@brief Trigger the invalid sound and make the box red.nn"
|
"@brief Trigger the invalid sound and make the box red.nn"
|
||||||
"@param playSound Play the invalid text sound or not.n")
|
"@param playSound Play the invalid text sound or not.n")
|
||||||
{
|
{
|
||||||
object->invalidText(playSound);
|
object->invalidText(playSound);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DefineEngineMethod(GuiTextEditCtrl, validText, void, (), ,
|
DefineEngineMethod(GuiTextEditCtrl, validText, void, (), ,
|
||||||
"@brief Restores the box to normal color.nn")
|
"@brief Restores the box to normal color.nn")
|
||||||
{
|
{
|
||||||
object->validText();
|
object->validText();
|
||||||
}
|
}
|
||||||
|
|
||||||
DefineEngineMethod(GuiTextEditCtrl, isValidText, bool, (), ,
|
DefineEngineMethod(GuiTextEditCtrl, isValidText, bool, (), ,
|
||||||
"@brief Returns if the text is set to valid or not.n"
|
"@brief Returns if the text is set to valid or not.n"
|
||||||
"@Return true if text is set to valid, false if not.nn")
|
"@Return true if text is set to valid, false if not.nn")
|
||||||
{
|
{
|
||||||
return object->isValidText();
|
return object->isValidText();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,9 @@
|
||||||
IMPLEMENT_CONOBJECT(GuiTreeViewCtrl);
|
IMPLEMENT_CONOBJECT(GuiTreeViewCtrl);
|
||||||
|
|
||||||
ConsoleDocClass( GuiTreeViewCtrl,
|
ConsoleDocClass( GuiTreeViewCtrl,
|
||||||
"@brief Hierarchical list of text items with optional icons.\n\n"
|
"@brief Hierarchical list of text items with optional icons.\n\n"
|
||||||
|
|
||||||
"Can also be used to inspect SimObject hierarchies, primarily within editors.\n\n"
|
"Can also be used to inspect SimObject hierarchies, primarily within editors.\n\n"
|
||||||
|
|
||||||
"GuiTreeViewCtrls can either display arbitrary user-defined trees or can be used to display SimObject hierarchies where "
|
"GuiTreeViewCtrls can either display arbitrary user-defined trees or can be used to display SimObject hierarchies where "
|
||||||
"each parent node in the tree is a SimSet or SimGroup and each leaf node is a SimObject.\n\n"
|
"each parent node in the tree is a SimSet or SimGroup and each leaf node is a SimObject.\n\n"
|
||||||
|
|
@ -59,30 +59,30 @@ ConsoleDocClass( GuiTreeViewCtrl,
|
||||||
"Each item in the tree has a distinct numeric ID that is unique within its tree. The ID of the root item, which is always "
|
"Each item in the tree has a distinct numeric ID that is unique within its tree. The ID of the root item, which is always "
|
||||||
"present on a tree, is 0.\n\n"
|
"present on a tree, is 0.\n\n"
|
||||||
|
|
||||||
"@tsexample\n"
|
"@tsexample\n"
|
||||||
"new GuiTreeViewCtrl(DatablockEditorTree)\n"
|
"new GuiTreeViewCtrl(DatablockEditorTree)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" tabSize = \"16\";\n"
|
" tabSize = \"16\";\n"
|
||||||
" textOffset = \"2\";\n"
|
" textOffset = \"2\";\n"
|
||||||
" fullRowSelect = \"0\";\n"
|
" fullRowSelect = \"0\";\n"
|
||||||
" itemHeight = \"21\";\n"
|
" itemHeight = \"21\";\n"
|
||||||
" destroyTreeOnSleep = \"0\";\n"
|
" destroyTreeOnSleep = \"0\";\n"
|
||||||
" MouseDragging = \"0\";\n"
|
" MouseDragging = \"0\";\n"
|
||||||
" MultipleSelections = \"1\";\n"
|
" MultipleSelections = \"1\";\n"
|
||||||
" DeleteObjectAllowed = \"1\";\n"
|
" DeleteObjectAllowed = \"1\";\n"
|
||||||
" DragToItemAllowed = \"0\";\n"
|
" DragToItemAllowed = \"0\";\n"
|
||||||
" ClearAllOnSingleSelection = \"1\";\n"
|
" ClearAllOnSingleSelection = \"1\";\n"
|
||||||
" showRoot = \"1\";\n"
|
" showRoot = \"1\";\n"
|
||||||
" internalNamesOnly = \"0\";\n"
|
" internalNamesOnly = \"0\";\n"
|
||||||
" objectNamesOnly = \"0\";\n"
|
" objectNamesOnly = \"0\";\n"
|
||||||
" compareToObjectID = \"0\";\n"
|
" compareToObjectID = \"0\";\n"
|
||||||
" Profile = \"GuiTreeViewProfile\";\n"
|
" Profile = \"GuiTreeViewProfile\";\n"
|
||||||
" tooltipprofile = \"GuiToolTipProfile\";\n"
|
" tooltipprofile = \"GuiToolTipProfile\";\n"
|
||||||
" hovertime = \"1000\";\n"
|
" hovertime = \"1000\";\n"
|
||||||
"};\n"
|
"};\n"
|
||||||
"@endtsexample\n\n"
|
"@endtsexample\n\n"
|
||||||
|
|
||||||
"@ingroup GuiContainers\n");
|
"@ingroup GuiContainers\n");
|
||||||
|
|
||||||
IMPLEMENT_CALLBACK( GuiTreeViewCtrl, onDeleteObject, bool, ( SimObject* object ), ( object ), "" );
|
IMPLEMENT_CALLBACK( GuiTreeViewCtrl, onDeleteObject, bool, ( SimObject* object ), ( object ), "" );
|
||||||
IMPLEMENT_CALLBACK( GuiTreeViewCtrl, isValidDragTarget, bool, ( S32 id, const char* value ), ( id, value ), "" );
|
IMPLEMENT_CALLBACK( GuiTreeViewCtrl, isValidDragTarget, bool, ( S32 id, const char* value ), ( id, value ), "" );
|
||||||
|
|
@ -511,7 +511,7 @@ void GuiTreeViewCtrl::Item::getDisplayText(U32 bufLen, char *buf)
|
||||||
|
|
||||||
if( showInternalNameOnly() )
|
if( showInternalNameOnly() )
|
||||||
dSprintf( buf, bufLen, "%s", hasInternalName ? pInternalName : "(none)" );
|
dSprintf( buf, bufLen, "%s", hasInternalName ? pInternalName : "(none)" );
|
||||||
else if( showObjectNameOnly() )
|
else if( showObjectNameOnly() )
|
||||||
{
|
{
|
||||||
if( !hasObjectName && mState.test( ShowClassNameForUnnamed ) )
|
if( !hasObjectName && mState.test( ShowClassNameForUnnamed ) )
|
||||||
dSprintf( buf, bufLen, "%s", pClassName );
|
dSprintf( buf, bufLen, "%s", pClassName );
|
||||||
|
|
@ -801,7 +801,7 @@ GuiTreeViewCtrl::GuiTreeViewCtrl()
|
||||||
mStart = 0;
|
mStart = 0;
|
||||||
mPossibleRenameItem = NULL;
|
mPossibleRenameItem = NULL;
|
||||||
mRenamingItem = NULL;
|
mRenamingItem = NULL;
|
||||||
mTempItem = NULL;
|
mTempItem = NULL;
|
||||||
mRenameCtrl = NULL;
|
mRenameCtrl = NULL;
|
||||||
|
|
||||||
mDraggedToItem = 0;
|
mDraggedToItem = 0;
|
||||||
|
|
@ -845,7 +845,7 @@ GuiTreeViewCtrl::GuiTreeViewCtrl()
|
||||||
|
|
||||||
mClearAllOnSingleSelection = true;
|
mClearAllOnSingleSelection = true;
|
||||||
|
|
||||||
mBitmapBase = StringTable->insert("");
|
mBitmapBase = StringTable->EmptyString();
|
||||||
mTexRollover = NULL;
|
mTexRollover = NULL;
|
||||||
mTexSelected = NULL;
|
mTexSelected = NULL;
|
||||||
|
|
||||||
|
|
@ -1902,7 +1902,7 @@ void GuiTreeViewCtrl::onPreRender()
|
||||||
if(mFlags.test(RebuildVisible))
|
if(mFlags.test(RebuildVisible))
|
||||||
{
|
{
|
||||||
buildVisibleTree();
|
buildVisibleTree();
|
||||||
mFlags.clear(RebuildVisible);
|
mFlags.clear(RebuildVisible);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2084,39 +2084,39 @@ void GuiTreeViewCtrl::syncSelection()
|
||||||
}
|
}
|
||||||
else if (mVisibleItems[i]->isInspectorData())
|
else if (mVisibleItems[i]->isInspectorData())
|
||||||
{
|
{
|
||||||
if(mCompareToObjectID)
|
if(mCompareToObjectID)
|
||||||
{
|
{
|
||||||
if (mVisibleItems[i]->getObject() && mVisibleItems[i]->getObject()->getId() == mSelected[j])
|
if (mVisibleItems[i]->getObject() && mVisibleItems[i]->getObject()->getId() == mSelected[j])
|
||||||
{
|
{
|
||||||
// check to see if it is on the visible items list.
|
// check to see if it is on the visible items list.
|
||||||
bool addToSelectedItems = true;
|
bool addToSelectedItems = true;
|
||||||
for (S32 k = 0; k < mSelectedItems.size(); k++)
|
for (S32 k = 0; k < mSelectedItems.size(); k++)
|
||||||
{
|
{
|
||||||
if (mSelectedItems[k]->isInspectorData() && mSelectedItems[k]->getObject() )
|
if (mSelectedItems[k]->isInspectorData() && mSelectedItems[k]->getObject() )
|
||||||
{
|
{
|
||||||
if (mSelected[j] == mSelectedItems[k]->getObject()->getId())
|
if (mSelected[j] == mSelectedItems[k]->getObject()->getId())
|
||||||
{
|
{
|
||||||
// don't add it
|
// don't add it
|
||||||
addToSelectedItems = false;
|
addToSelectedItems = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (mSelected[j] == mSelectedItems[k]->mId)
|
if (mSelected[j] == mSelectedItems[k]->mId)
|
||||||
{
|
{
|
||||||
// don't add it
|
// don't add it
|
||||||
addToSelectedItems = false;
|
addToSelectedItems = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (addToSelectedItems)
|
if (addToSelectedItems)
|
||||||
{
|
{
|
||||||
mVisibleItems[i]->mState.set(Item::Selected, true);
|
mVisibleItems[i]->mState.set(Item::Selected, true);
|
||||||
mSelectedItems.push_front(mVisibleItems[i]);
|
mSelectedItems.push_front(mVisibleItems[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -2200,14 +2200,14 @@ void GuiTreeViewCtrl::addSelection( S32 itemOrObjectId, bool update, bool isLast
|
||||||
}
|
}
|
||||||
|
|
||||||
const S32 itemId = item->getID();
|
const S32 itemId = item->getID();
|
||||||
|
|
||||||
// Ok, we have an item to select which isn't already selected....
|
// Ok, we have an item to select which isn't already selected....
|
||||||
|
|
||||||
// Do we want to allow more than one selected item?
|
// Do we want to allow more than one selected item?
|
||||||
if( !mMultipleSelections )
|
if( !mMultipleSelections )
|
||||||
clearSelection();
|
clearSelection();
|
||||||
|
|
||||||
// Add this object id to the vector of selected objectIds
|
// Add this object id to the vector of selected objectIds
|
||||||
// if it is not already.
|
// if it is not already.
|
||||||
bool foundMatch = false;
|
bool foundMatch = false;
|
||||||
for ( S32 i = 0; i < mSelected.size(); i++)
|
for ( S32 i = 0; i < mSelected.size(); i++)
|
||||||
|
|
@ -2228,21 +2228,21 @@ void GuiTreeViewCtrl::addSelection( S32 itemOrObjectId, bool update, bool isLast
|
||||||
|
|
||||||
// Callback Start
|
// Callback Start
|
||||||
// Set and add the selection to the selected items group
|
// Set and add the selection to the selected items group
|
||||||
item->mState.set(Item::Selected, true);
|
item->mState.set(Item::Selected, true);
|
||||||
mSelectedItems.push_front(item);
|
mSelectedItems.push_front(item);
|
||||||
|
|
||||||
if ( item->isInspectorData() &&
|
if ( item->isInspectorData() &&
|
||||||
item->getObject() )
|
item->getObject() )
|
||||||
{
|
{
|
||||||
SimObject *obj = item->getObject();
|
SimObject *obj = item->getObject();
|
||||||
|
|
||||||
onAddSelection_callback( obj->getId(), isLastSelection );
|
onAddSelection_callback( obj->getId(), isLastSelection );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
onAddSelection_callback( item->mId, isLastSelection );
|
onAddSelection_callback( item->mId, isLastSelection );
|
||||||
}
|
}
|
||||||
// Callback end
|
// Callback end
|
||||||
|
|
||||||
mFlags.set( RebuildVisible );
|
mFlags.set( RebuildVisible );
|
||||||
if( update )
|
if( update )
|
||||||
|
|
@ -2262,7 +2262,7 @@ void GuiTreeViewCtrl::onItemSelected( Item *item )
|
||||||
if (item->isInspectorData())
|
if (item->isInspectorData())
|
||||||
{
|
{
|
||||||
SimObject* object = item->getObject();
|
SimObject* object = item->getObject();
|
||||||
if( object )
|
if( object )
|
||||||
onSelect_callback( object->getId() );
|
onSelect_callback( object->getId() );
|
||||||
if( !item->isParent() && object )
|
if( !item->isParent() && object )
|
||||||
onInspect_callback( object->getId() );
|
onInspect_callback( object->getId() );
|
||||||
|
|
@ -2590,9 +2590,9 @@ void GuiTreeViewCtrl::deleteSelection()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Vector<Item*> delSelection;
|
Vector<Item*> delSelection;
|
||||||
delSelection = mSelectedItems;
|
delSelection = mSelectedItems;
|
||||||
mSelectedItems.clear();
|
mSelectedItems.clear();
|
||||||
while (!delSelection.empty())
|
while (!delSelection.empty())
|
||||||
{
|
{
|
||||||
Item * item = delSelection.front();
|
Item * item = delSelection.front();
|
||||||
|
|
@ -2600,7 +2600,7 @@ void GuiTreeViewCtrl::deleteSelection()
|
||||||
if ( item->mParent )
|
if ( item->mParent )
|
||||||
_deleteItem( item );
|
_deleteItem( item );
|
||||||
|
|
||||||
delSelection.pop_front();
|
delSelection.pop_front();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2642,7 +2642,7 @@ bool GuiTreeViewCtrl::onKeyDown( const GuiEvent& event )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//call a generic bit of script that will let the subclass know that a key was pressed
|
//call a generic bit of script that will let the subclass know that a key was pressed
|
||||||
onKeyDown_callback( event.modifier, event.keyCode );
|
onKeyDown_callback( event.modifier, event.keyCode );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3028,29 +3028,29 @@ void GuiTreeViewCtrl::onMouseUp(const GuiEvent &event)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
BitSet32 hitFlags = 0;
|
BitSet32 hitFlags = 0;
|
||||||
Item *item;
|
Item *item;
|
||||||
bool hitCheck = _hitTest( event.mousePoint, item, hitFlags );
|
bool hitCheck = _hitTest( event.mousePoint, item, hitFlags );
|
||||||
mRenamingItem = NULL;
|
mRenamingItem = NULL;
|
||||||
|
|
||||||
if( hitCheck )
|
if( hitCheck )
|
||||||
{
|
{
|
||||||
if ( event.mouseClickCount == 1 && !mMouseDragged && mPossibleRenameItem != NULL )
|
if ( event.mouseClickCount == 1 && !mMouseDragged && mPossibleRenameItem != NULL )
|
||||||
{
|
{
|
||||||
if ( item == mPossibleRenameItem )
|
if ( item == mPossibleRenameItem )
|
||||||
showItemRenameCtrl( item );
|
showItemRenameCtrl( item );
|
||||||
}
|
}
|
||||||
else // If mouseUp occurs on the same item as mouse down
|
else // If mouseUp occurs on the same item as mouse down
|
||||||
{
|
{
|
||||||
bool wasSelected = isSelected( item );
|
bool wasSelected = isSelected( item );
|
||||||
bool multiSelect = getSelectedItemsCount() > 1;
|
bool multiSelect = getSelectedItemsCount() > 1;
|
||||||
if( wasSelected && multiSelect && item == mTempItem )
|
if( wasSelected && multiSelect && item == mTempItem )
|
||||||
{
|
{
|
||||||
clearSelection();
|
clearSelection();
|
||||||
addSelection( item->mId );
|
addSelection( item->mId );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mPossibleRenameItem = NULL;
|
mPossibleRenameItem = NULL;
|
||||||
|
|
||||||
|
|
@ -3482,7 +3482,7 @@ void GuiTreeViewCtrl::onMouseDragged(const GuiEvent &event)
|
||||||
if( mDragStartInSelection )
|
if( mDragStartInSelection )
|
||||||
onMouseDragged_callback();
|
onMouseDragged_callback();
|
||||||
|
|
||||||
if(!mSupportMouseDragging)
|
if(!mSupportMouseDragging)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( !mActive || !mAwake || !mVisible )
|
if( !mActive || !mAwake || !mVisible )
|
||||||
|
|
@ -3652,7 +3652,7 @@ void GuiTreeViewCtrl::onMouseDown(const GuiEvent & event)
|
||||||
|
|
||||||
mPossibleRenameItem = NULL;
|
mPossibleRenameItem = NULL;
|
||||||
mRenamingItem = NULL;
|
mRenamingItem = NULL;
|
||||||
mTempItem = NULL;
|
mTempItem = NULL;
|
||||||
|
|
||||||
//
|
//
|
||||||
if( event.modifier & SI_MULTISELECT )
|
if( event.modifier & SI_MULTISELECT )
|
||||||
|
|
@ -3704,10 +3704,10 @@ void GuiTreeViewCtrl::onMouseDown(const GuiEvent & event)
|
||||||
//select up
|
//select up
|
||||||
for (S32 j = (mCurrentDragCell); j < firstSelectedIndex; j++)
|
for (S32 j = (mCurrentDragCell); j < firstSelectedIndex; j++)
|
||||||
{
|
{
|
||||||
if( j != (firstSelectedIndex - 1) )
|
if( j != (firstSelectedIndex - 1) )
|
||||||
addSelection(mVisibleItems[j]->mId, false, false);
|
addSelection(mVisibleItems[j]->mId, false, false);
|
||||||
else
|
else
|
||||||
addSelection(mVisibleItems[j]->mId, false);
|
addSelection(mVisibleItems[j]->mId, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -3715,10 +3715,10 @@ void GuiTreeViewCtrl::onMouseDown(const GuiEvent & event)
|
||||||
// select down
|
// select down
|
||||||
for (S32 j = firstSelectedIndex+1; j < (mCurrentDragCell+1); j++)
|
for (S32 j = firstSelectedIndex+1; j < (mCurrentDragCell+1); j++)
|
||||||
{
|
{
|
||||||
if( j != mCurrentDragCell )
|
if( j != mCurrentDragCell )
|
||||||
addSelection(mVisibleItems[j]->mId, false, false);
|
addSelection(mVisibleItems[j]->mId, false, false);
|
||||||
else
|
else
|
||||||
addSelection(mVisibleItems[j]->mId, false);
|
addSelection(mVisibleItems[j]->mId, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3736,39 +3736,39 @@ void GuiTreeViewCtrl::onMouseDown(const GuiEvent & event)
|
||||||
}
|
}
|
||||||
else if ( !hitFlags.test(OnImage) )
|
else if ( !hitFlags.test(OnImage) )
|
||||||
{
|
{
|
||||||
mTempItem = item;
|
mTempItem = item;
|
||||||
|
|
||||||
bool wasSelected = isSelected( item );
|
bool wasSelected = isSelected( item );
|
||||||
bool multiSelect = getSelectedItemsCount() > 1;
|
bool multiSelect = getSelectedItemsCount() > 1;
|
||||||
|
|
||||||
if( !wasSelected || !multiSelect )
|
if( !wasSelected || !multiSelect )
|
||||||
{
|
{
|
||||||
if ( mClearAllOnSingleSelection )
|
if ( mClearAllOnSingleSelection )
|
||||||
clearSelection();
|
clearSelection();
|
||||||
|
|
||||||
if ( !wasSelected || mClearAllOnSingleSelection )
|
if ( !wasSelected || mClearAllOnSingleSelection )
|
||||||
addSelection( item->mId );
|
addSelection( item->mId );
|
||||||
|
|
||||||
if ( wasSelected &&
|
if ( wasSelected &&
|
||||||
!multiSelect &&
|
!multiSelect &&
|
||||||
mCanRenameObjects &&
|
mCanRenameObjects &&
|
||||||
hitFlags.test(OnText) &&
|
hitFlags.test(OnText) &&
|
||||||
mFlags.test(IsEditable) &&
|
mFlags.test(IsEditable) &&
|
||||||
item->isInspectorData() &&
|
item->isInspectorData() &&
|
||||||
item->getObject() &&
|
item->getObject() &&
|
||||||
item->getObject()->isNameChangeAllowed() &&
|
item->getObject()->isNameChangeAllowed() &&
|
||||||
item != mRoot &&
|
item != mRoot &&
|
||||||
event.mouseClickCount == 1 )
|
event.mouseClickCount == 1 )
|
||||||
{
|
{
|
||||||
mPossibleRenameItem = item;
|
mPossibleRenameItem = item;
|
||||||
|
|
||||||
if ( isMethod( "canRenameObject" ) )
|
if ( isMethod( "canRenameObject" ) )
|
||||||
{
|
{
|
||||||
if( canRenameObject_callback( item->getObject() ) )
|
if( canRenameObject_callback( item->getObject() ) )
|
||||||
mPossibleRenameItem = NULL;
|
mPossibleRenameItem = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4221,7 +4221,7 @@ void GuiTreeViewCtrl::onRenderCell(Point2I offset, Point2I cell, bool, bool )
|
||||||
|
|
||||||
if( item->mState.test(Item::MouseOverText) )
|
if( item->mState.test(Item::MouseOverText) )
|
||||||
{
|
{
|
||||||
fontColor = mProfile->mFontColorHL;
|
fontColor = mProfile->mFontColorHL;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer->setBitmapModulation( fontColor );
|
drawer->setBitmapModulation( fontColor );
|
||||||
|
|
@ -4551,9 +4551,9 @@ void GuiTreeViewCtrl::inspectorSearch(Item * item, Item * parent, SimSet * paren
|
||||||
|
|
||||||
bool GuiTreeViewCtrl::objectSearch( const SimObject *object, Item **item )
|
bool GuiTreeViewCtrl::objectSearch( const SimObject *object, Item **item )
|
||||||
{
|
{
|
||||||
for ( U32 i = 0; i < mItems.size(); i++ )
|
for ( U32 i = 0; i < mItems.size(); i++ )
|
||||||
{
|
{
|
||||||
Item *pItem = mItems[i];
|
Item *pItem = mItems[i];
|
||||||
|
|
||||||
if ( !pItem )
|
if ( !pItem )
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -4565,16 +4565,16 @@ bool GuiTreeViewCtrl::objectSearch( const SimObject *object, Item **item )
|
||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SimObject *pObj = pItem->getObject();
|
SimObject *pObj = pItem->getObject();
|
||||||
|
|
||||||
if ( pObj && pObj == object )
|
if ( pObj && pObj == object )
|
||||||
{
|
{
|
||||||
*item = pItem;
|
*item = pItem;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
@ -4592,7 +4592,7 @@ bool GuiTreeViewCtrl::onVirtualParentBuild(Item *item, bool bForceFullUpdate)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip the next stuff unless we're expanded...
|
// Skip the next stuff unless we're expanded...
|
||||||
if(!item->isExpanded() && !bForceFullUpdate && !( item == mRoot && !mShowRoot ) )
|
if(!item->isExpanded() && !bForceFullUpdate && !( item == mRoot && !mShowRoot ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Verify that we have all the kids we should in here...
|
// Verify that we have all the kids we should in here...
|
||||||
|
|
@ -4704,8 +4704,8 @@ S32 GuiTreeViewCtrl::findItemByName(const char *name)
|
||||||
{
|
{
|
||||||
if ( !mItems[i] )
|
if ( !mItems[i] )
|
||||||
continue;
|
continue;
|
||||||
if( mItems[i]->mState.test( Item::InspectorData ) )
|
if( mItems[i]->mState.test( Item::InspectorData ) )
|
||||||
continue;
|
continue;
|
||||||
if (mItems[i] && dStrcmp(mItems[i]->getText(),name) == 0)
|
if (mItems[i] && dStrcmp(mItems[i]->getText(),name) == 0)
|
||||||
return mItems[i]->mId;
|
return mItems[i]->mId;
|
||||||
}
|
}
|
||||||
|
|
@ -4721,10 +4721,10 @@ S32 GuiTreeViewCtrl::findItemByValue(const char *name)
|
||||||
{
|
{
|
||||||
if (!mItems[i])
|
if (!mItems[i])
|
||||||
continue;
|
continue;
|
||||||
if( mItems[i]->mState.test( Item::InspectorData ) )
|
if( mItems[i]->mState.test( Item::InspectorData ) )
|
||||||
continue;
|
continue;
|
||||||
if (mItems[i] && dStrcmp(mItems[i]->getValue(),name) == 0)
|
if (mItems[i] && dStrcmp(mItems[i]->getValue(),name) == 0)
|
||||||
return mItems[i]->mId;
|
return mItems[i]->mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -4746,13 +4746,13 @@ StringTableEntry GuiTreeViewCtrl::getTextToRoot( S32 itemId, const char * delimi
|
||||||
if(!item)
|
if(!item)
|
||||||
{
|
{
|
||||||
Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: invalid start item id!");
|
Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: invalid start item id!");
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item->isInspectorData())
|
if(item->isInspectorData())
|
||||||
{
|
{
|
||||||
Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: cannot get text to root of inspector data items");
|
Con::errorf(ConsoleLogEntry::General, "GuiTreeViewCtrl::getTextToRoot: cannot get text to root of inspector data items");
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
char bufferOne[1024];
|
char bufferOne[1024];
|
||||||
|
|
@ -4874,7 +4874,7 @@ DefineEngineMethod( GuiTreeViewCtrl, insertItem, S32, ( S32 parentId, const char
|
||||||
|
|
||||||
DefineEngineMethod( GuiTreeViewCtrl, insertObject, S32, ( S32 parentId, SimObject* obj, bool OKToEdit ), (false), "Inserts object as a child to the given parent." )
|
DefineEngineMethod( GuiTreeViewCtrl, insertObject, S32, ( S32 parentId, SimObject* obj, bool OKToEdit ), (false), "Inserts object as a child to the given parent." )
|
||||||
{
|
{
|
||||||
return object->insertObject(parentId, obj, OKToEdit);
|
return object->insertObject(parentId, obj, OKToEdit);
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -4967,10 +4967,10 @@ DefineEngineMethod( GuiTreeViewCtrl, removeChildSelectionByValue, void, ( S32 pa
|
||||||
if(parentItem)
|
if(parentItem)
|
||||||
{
|
{
|
||||||
GuiTreeViewCtrl::Item* child = parentItem->findChildByValue(value);
|
GuiTreeViewCtrl::Item* child = parentItem->findChildByValue(value);
|
||||||
if(child)
|
if(child)
|
||||||
{
|
{
|
||||||
object->removeSelection(child->getID());
|
object->removeSelection(child->getID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5038,7 +5038,7 @@ DefineEngineMethod( GuiTreeViewCtrl, open, void, ( const char * objName, bool ok
|
||||||
DefineEngineMethod( GuiTreeViewCtrl, setItemTooltip, bool, ( S32 itemId, const char* tooltip), ,
|
DefineEngineMethod( GuiTreeViewCtrl, setItemTooltip, bool, ( S32 itemId, const char* tooltip), ,
|
||||||
"Set the tooltip to show for the given item.\n\n"
|
"Set the tooltip to show for the given item.\n\n"
|
||||||
"@param itemId TreeItemID of item to set the tooltip for.\n"
|
"@param itemId TreeItemID of item to set the tooltip for.\n"
|
||||||
"@param tooltip String tooltip to set for the item."
|
"@param tooltip String tooltip to set for the item."
|
||||||
"@return True if successfully found the item, false if not")
|
"@return True if successfully found the item, false if not")
|
||||||
{
|
{
|
||||||
GuiTreeViewCtrl::Item* item = object->getItem( itemId );
|
GuiTreeViewCtrl::Item* item = object->getItem( itemId );
|
||||||
|
|
@ -5228,11 +5228,11 @@ const char* GuiTreeViewCtrl::getSelectedObjectList()
|
||||||
{
|
{
|
||||||
S32 id = item->getObject()->getId();
|
S32 id = item->getObject()->getId();
|
||||||
//get the current length of the buffer
|
//get the current length of the buffer
|
||||||
U32 len = dStrlen(buff);
|
U32 len = dStrlen(buff);
|
||||||
//the start of the buffer where we want to write
|
//the start of the buffer where we want to write
|
||||||
char* buffPart = buff+len;
|
char* buffPart = buff+len;
|
||||||
//the size of the remaining buffer (-1 cause dStrlen doesn't count the \0)
|
//the size of the remaining buffer (-1 cause dStrlen doesn't count the \0)
|
||||||
S32 size = bufSize-len-1;
|
S32 size = bufSize-len-1;
|
||||||
//write it:
|
//write it:
|
||||||
if(size < 1)
|
if(size < 1)
|
||||||
{
|
{
|
||||||
|
|
@ -5283,7 +5283,7 @@ DefineEngineMethod( GuiTreeViewCtrl, getTextToRoot, const char*, (S32 itemId, co
|
||||||
"@param delimiter (Optional) delimiter to use between each branch concatenation."
|
"@param delimiter (Optional) delimiter to use between each branch concatenation."
|
||||||
"@return text from the current node to the root.")
|
"@return text from the current node to the root.")
|
||||||
{
|
{
|
||||||
if (!dStrcmp(delimiter, "" ))
|
if (!dStrcmp(delimiter, "" ))
|
||||||
{
|
{
|
||||||
Con::warnf("GuiTreeViewCtrl::getTextToRoot - Invalid number of arguments!");
|
Con::warnf("GuiTreeViewCtrl::getTextToRoot - Invalid number of arguments!");
|
||||||
return ("");
|
return ("");
|
||||||
|
|
@ -5296,31 +5296,31 @@ DefineEngineMethod( GuiTreeViewCtrl, getSelectedItemList, const char*, (), ,
|
||||||
"@return space separated list of selected item ids.")
|
"@return space separated list of selected item ids.")
|
||||||
{
|
{
|
||||||
const U32 bufSize = 1024;
|
const U32 bufSize = 1024;
|
||||||
char* buff = Con::getReturnBuffer(bufSize);
|
char* buff = Con::getReturnBuffer(bufSize);
|
||||||
dSprintf(buff, bufSize, "");
|
dSprintf(buff, bufSize, "");
|
||||||
|
|
||||||
const Vector< S32 >& selected = object->getSelected();
|
const Vector< S32 >& selected = object->getSelected();
|
||||||
for(int i = 0; i < selected.size(); i++)
|
for(int i = 0; i < selected.size(); i++)
|
||||||
{
|
{
|
||||||
S32 id = selected[i];
|
S32 id = selected[i];
|
||||||
//get the current length of the buffer
|
//get the current length of the buffer
|
||||||
U32 len = dStrlen(buff);
|
U32 len = dStrlen(buff);
|
||||||
//the start of the buffer where we want to write
|
//the start of the buffer where we want to write
|
||||||
char* buffPart = buff+len;
|
char* buffPart = buff+len;
|
||||||
//the size of the remaining buffer (-1 cause dStrlen doesn't count the \0)
|
//the size of the remaining buffer (-1 cause dStrlen doesn't count the \0)
|
||||||
S32 size = bufSize-len-1;
|
S32 size = bufSize-len-1;
|
||||||
//write it:
|
//write it:
|
||||||
if(size < 1)
|
if(size < 1)
|
||||||
{
|
{
|
||||||
Con::errorf("GuiTreeViewCtrl::getSelectedItemList - Not enough room to return our object list");
|
Con::errorf("GuiTreeViewCtrl::getSelectedItemList - Not enough room to return our object list");
|
||||||
return buff;
|
return buff;
|
||||||
}
|
}
|
||||||
|
|
||||||
dSprintf(buffPart,size,"%d ", id);
|
dSprintf(buffPart,size,"%d ", id);
|
||||||
}
|
}
|
||||||
//mSelected
|
//mSelected
|
||||||
|
|
||||||
return buff;
|
return buff;
|
||||||
}
|
}
|
||||||
|
|
||||||
S32 GuiTreeViewCtrl::findItemByObjectId(S32 iObjId)
|
S32 GuiTreeViewCtrl::findItemByObjectId(S32 iObjId)
|
||||||
|
|
@ -5331,8 +5331,8 @@ S32 GuiTreeViewCtrl::findItemByObjectId(S32 iObjId)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
SimObject* pObj = mItems[i]->getObject();
|
SimObject* pObj = mItems[i]->getObject();
|
||||||
if( pObj && pObj->getId() == iObjId )
|
if( pObj && pObj->getId() == iObjId )
|
||||||
return mItems[i]->mId;
|
return mItems[i]->mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -5341,7 +5341,7 @@ S32 GuiTreeViewCtrl::findItemByObjectId(S32 iObjId)
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineEngineMethod( GuiTreeViewCtrl, findItemByObjectId, S32, (S32 objectId), ,
|
DefineEngineMethod( GuiTreeViewCtrl, findItemByObjectId, S32, (S32 objectId), ,
|
||||||
"Find an item by its object id and returns the Tree Item ID for it.\n\n"
|
"Find an item by its object id and returns the Tree Item ID for it.\n\n"
|
||||||
"@param objectId Object id you want the item id for."
|
"@param objectId Object id you want the item id for."
|
||||||
"@return Tree Item Id for the given object ID.")
|
"@return Tree Item Id for the given object ID.")
|
||||||
{
|
{
|
||||||
return(object->findItemByObjectId(objectId));
|
return(object->findItemByObjectId(objectId));
|
||||||
|
|
@ -5389,7 +5389,7 @@ bool GuiTreeViewCtrl::scrollVisibleByObjectId(S32 objID)
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
DefineEngineMethod( GuiTreeViewCtrl, scrollVisibleByObjectId, S32, (S32 objectId), ,
|
DefineEngineMethod( GuiTreeViewCtrl, scrollVisibleByObjectId, S32, (S32 objectId), ,
|
||||||
"Show item by object id.\n\n"
|
"Show item by object id.\n\n"
|
||||||
"@param objectId Object id you want to scroll to."
|
"@param objectId Object id you want to scroll to."
|
||||||
"@return True if successful, false if not.")
|
"@return True if successful, false if not.")
|
||||||
{
|
{
|
||||||
return(object->scrollVisibleByObjectId(objectId));
|
return(object->scrollVisibleByObjectId(objectId));
|
||||||
|
|
@ -5400,7 +5400,7 @@ DefineEngineMethod( GuiTreeViewCtrl, scrollVisibleByObjectId, S32, (S32 objectId
|
||||||
//FIXME: this clashes with SimSet.sort()
|
//FIXME: this clashes with SimSet.sort()
|
||||||
DefineEngineMethod( GuiTreeViewCtrl, sort, void, (S32 parentId, bool traverseHierarchy, bool parentsFirst, bool caseSensitive), (0, false, false, true),
|
DefineEngineMethod( GuiTreeViewCtrl, sort, void, (S32 parentId, bool traverseHierarchy, bool parentsFirst, bool caseSensitive), (0, false, false, true),
|
||||||
"Sorts all items of the given parent (or root). With 'hierarchy', traverses hierarchy."
|
"Sorts all items of the given parent (or root). With 'hierarchy', traverses hierarchy."
|
||||||
"@param parentId TreeItemID of parent/root to sort all the items under. Use 0 to sort the entire tree."
|
"@param parentId TreeItemID of parent/root to sort all the items under. Use 0 to sort the entire tree."
|
||||||
"@param traverseHierarchy True to traverse the hierarchy, false to not."
|
"@param traverseHierarchy True to traverse the hierarchy, false to not."
|
||||||
"@param parentsFirst True to sort the parents first."
|
"@param parentsFirst True to sort the parents first."
|
||||||
"@param caseSensitive True to pay attention to case, false to ignore it.")
|
"@param caseSensitive True to pay attention to case, false to ignore it.")
|
||||||
|
|
@ -5531,7 +5531,7 @@ DefineEngineMethod( GuiTreeViewCtrl, isItemSelected, bool, ( S32 id ),,
|
||||||
"@return True if the given item/object is currently selected in the tree." )
|
"@return True if the given item/object is currently selected in the tree." )
|
||||||
{
|
{
|
||||||
const Vector< GuiTreeViewCtrl::Item* >& selectedItems = object->getSelectedItems();
|
const Vector< GuiTreeViewCtrl::Item* >& selectedItems = object->getSelectedItems();
|
||||||
for( S32 i = 0; i < selectedItems.size(); ++ i )
|
for( S32 i = 0; i < selectedItems.size(); ++ i )
|
||||||
if( selectedItems[ i ]->mId == id )
|
if( selectedItems[ i ]->mId == id )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -65,10 +65,10 @@ ConsoleDocClass( GuiChunkedBitmapCtrl,
|
||||||
|
|
||||||
void GuiChunkedBitmapCtrl::initPersistFields()
|
void GuiChunkedBitmapCtrl::initPersistFields()
|
||||||
{
|
{
|
||||||
addGroup("GuiChunkedBitmapCtrl");
|
addGroup("GuiChunkedBitmapCtrl");
|
||||||
addField( "bitmap", TypeFilename, Offset( mBitmapName, GuiChunkedBitmapCtrl ), "This is the bitmap to render to the control." );
|
addField( "bitmap", TypeFilename, Offset( mBitmapName, GuiChunkedBitmapCtrl ), "This is the bitmap to render to the control." );
|
||||||
addField( "useVariable", TypeBool, Offset( mUseVariable, GuiChunkedBitmapCtrl ), "This decides whether to use the \"bitmap\" file "
|
addField( "useVariable", TypeBool, Offset( mUseVariable, GuiChunkedBitmapCtrl ), "This decides whether to use the \"bitmap\" file "
|
||||||
"or a bitmap stored in \"variable\"");
|
"or a bitmap stored in \"variable\"");
|
||||||
addField( "tile", TypeBool, Offset( mTile, GuiChunkedBitmapCtrl ), "This is no longer in use");
|
addField( "tile", TypeBool, Offset( mTile, GuiChunkedBitmapCtrl ), "This is no longer in use");
|
||||||
endGroup("GuiChunkedBitmapCtrl");
|
endGroup("GuiChunkedBitmapCtrl");
|
||||||
Parent::initPersistFields();
|
Parent::initPersistFields();
|
||||||
|
|
@ -86,7 +86,7 @@ DefineEngineMethod( GuiChunkedBitmapCtrl, setBitmap, void, (const char* filename
|
||||||
|
|
||||||
GuiChunkedBitmapCtrl::GuiChunkedBitmapCtrl()
|
GuiChunkedBitmapCtrl::GuiChunkedBitmapCtrl()
|
||||||
{
|
{
|
||||||
mBitmapName = StringTable->insert("");
|
mBitmapName = StringTable->EmptyString();
|
||||||
mUseVariable = false;
|
mUseVariable = false;
|
||||||
mTile = false;
|
mTile = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,9 @@
|
||||||
IMPLEMENT_CONOBJECT( MECreateUndoAction );
|
IMPLEMENT_CONOBJECT( MECreateUndoAction );
|
||||||
|
|
||||||
ConsoleDocClass( MECreateUndoAction,
|
ConsoleDocClass( MECreateUndoAction,
|
||||||
"@brief Material Editor create undo instance\n\n"
|
"@brief Material Editor create undo instance\n\n"
|
||||||
"Not intended for game development, for editors or internal use only.\n\n "
|
"Not intended for game development, for editors or internal use only.\n\n "
|
||||||
"@internal");
|
"@internal");
|
||||||
|
|
||||||
MECreateUndoAction::MECreateUndoAction( const UTF8* actionName )
|
MECreateUndoAction::MECreateUndoAction( const UTF8* actionName )
|
||||||
: UndoAction( actionName )
|
: UndoAction( actionName )
|
||||||
|
|
@ -62,7 +62,7 @@ DefineEngineMethod( MECreateUndoAction, addObject, void, ( SimObject* obj),,
|
||||||
"Add the object being created to an undo action.\n"
|
"Add the object being created to an undo action.\n"
|
||||||
"@param obj Object being created you want to create the undo for.")
|
"@param obj Object being created you want to create the undo for.")
|
||||||
{
|
{
|
||||||
if (obj)
|
if (obj)
|
||||||
object->addObject( obj );
|
object->addObject( obj );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -117,9 +117,9 @@ void MECreateUndoAction::redo()
|
||||||
IMPLEMENT_CONOBJECT( MEDeleteUndoAction );
|
IMPLEMENT_CONOBJECT( MEDeleteUndoAction );
|
||||||
|
|
||||||
ConsoleDocClass( MEDeleteUndoAction,
|
ConsoleDocClass( MEDeleteUndoAction,
|
||||||
"@brief Material Editor delete undo instance\n\n"
|
"@brief Material Editor delete undo instance\n\n"
|
||||||
"Not intended for game development, for editors or internal use only.\n\n "
|
"Not intended for game development, for editors or internal use only.\n\n "
|
||||||
"@internal");
|
"@internal");
|
||||||
|
|
||||||
MEDeleteUndoAction::MEDeleteUndoAction( const UTF8 *actionName )
|
MEDeleteUndoAction::MEDeleteUndoAction( const UTF8 *actionName )
|
||||||
: UndoAction( actionName )
|
: UndoAction( actionName )
|
||||||
|
|
@ -169,7 +169,7 @@ DefineEngineMethod( MEDeleteUndoAction, deleteObject, void, ( SimObject* obj),,
|
||||||
"Delete the object and add it to the undo action.\n"
|
"Delete the object and add it to the undo action.\n"
|
||||||
"@param obj Object to delete and add to the undo action.")
|
"@param obj Object to delete and add to the undo action.")
|
||||||
{
|
{
|
||||||
if (obj)
|
if (obj)
|
||||||
object->deleteObject( obj );
|
object->deleteObject( obj );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,16 +210,16 @@ void MEDeleteUndoAction::redo()
|
||||||
IMPLEMENT_CONOBJECT( InspectorFieldUndoAction );
|
IMPLEMENT_CONOBJECT( InspectorFieldUndoAction );
|
||||||
|
|
||||||
ConsoleDocClass( InspectorFieldUndoAction,
|
ConsoleDocClass( InspectorFieldUndoAction,
|
||||||
"@brief Inspector Field undo action instance\n\n"
|
"@brief Inspector Field undo action instance\n\n"
|
||||||
"Not intended for game development, for editors or internal use only.\n\n "
|
"Not intended for game development, for editors or internal use only.\n\n "
|
||||||
"@internal");
|
"@internal");
|
||||||
|
|
||||||
InspectorFieldUndoAction::InspectorFieldUndoAction()
|
InspectorFieldUndoAction::InspectorFieldUndoAction()
|
||||||
{
|
{
|
||||||
mObjId = 0;
|
mObjId = 0;
|
||||||
mField = NULL;
|
mField = NULL;
|
||||||
mSlotName = StringTable->insert("");
|
mSlotName = StringTable->EmptyString();
|
||||||
mArrayIdx = StringTable->insert("");
|
mArrayIdx = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
InspectorFieldUndoAction::InspectorFieldUndoAction( const UTF8 *actionName )
|
InspectorFieldUndoAction::InspectorFieldUndoAction( const UTF8 *actionName )
|
||||||
|
|
@ -228,8 +228,8 @@ InspectorFieldUndoAction::InspectorFieldUndoAction( const UTF8 *actionName )
|
||||||
mInspector = NULL;
|
mInspector = NULL;
|
||||||
mObjId = 0;
|
mObjId = 0;
|
||||||
mField = NULL;
|
mField = NULL;
|
||||||
mSlotName = StringTable->insert("");
|
mSlotName = StringTable->EmptyString();
|
||||||
mArrayIdx = StringTable->insert("");
|
mArrayIdx = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void InspectorFieldUndoAction::initPersistFields()
|
void InspectorFieldUndoAction::initPersistFields()
|
||||||
|
|
@ -272,4 +272,4 @@ void InspectorFieldUndoAction::undo()
|
||||||
// Now save the previous data in this UndoAction
|
// Now save the previous data in this UndoAction
|
||||||
// since an undo action must become a redo action and vice-versa
|
// since an undo action must become a redo action and vice-versa
|
||||||
mData = data;
|
mData = data;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ DefineConsoleFunction(NavMeshUpdateOne, void, (S32 meshid, S32 objid, bool remov
|
||||||
NavMesh::NavMesh()
|
NavMesh::NavMesh()
|
||||||
{
|
{
|
||||||
mTypeMask |= StaticShapeObjectType | MarkerObjectType;
|
mTypeMask |= StaticShapeObjectType | MarkerObjectType;
|
||||||
mFileName = StringTable->insert("");
|
mFileName = StringTable->EmptyString();
|
||||||
mNetFlags.clear(Ghostable);
|
mNetFlags.clear(Ghostable);
|
||||||
|
|
||||||
mSaveIntermediates = false;
|
mSaveIntermediates = false;
|
||||||
|
|
@ -211,7 +211,7 @@ NavMesh::NavMesh()
|
||||||
mLargeCharacters = false;
|
mLargeCharacters = false;
|
||||||
mVehicles = false;
|
mVehicles = false;
|
||||||
|
|
||||||
mCoverSet = StringTable->insert("");
|
mCoverSet = StringTable->EmptyString();
|
||||||
mInnerCover = false;
|
mInnerCover = false;
|
||||||
mCoverDist = 1.0f;
|
mCoverDist = 1.0f;
|
||||||
mPeekDist = 0.7f;
|
mPeekDist = 0.7f;
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ const char *NavPath::getProtectedFrom(void *obj, const char *data)
|
||||||
if(object->mFromSet)
|
if(object->mFromSet)
|
||||||
return data;
|
return data;
|
||||||
else
|
else
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *NavPath::getProtectedTo(void *obj, const char *data)
|
const char *NavPath::getProtectedTo(void *obj, const char *data)
|
||||||
|
|
@ -180,7 +180,7 @@ const char *NavPath::getProtectedTo(void *obj, const char *data)
|
||||||
if(object->mToSet)
|
if(object->mToSet)
|
||||||
return data;
|
return data;
|
||||||
else
|
else
|
||||||
return StringTable->insert("");
|
return StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
IRangeValidator ValidIterations(1, S32_MAX);
|
IRangeValidator ValidIterations(1, S32_MAX);
|
||||||
|
|
|
||||||
|
|
@ -51,10 +51,10 @@ PopupMenu::PopupMenu() : mCanvas(NULL)
|
||||||
mSubmenus = new SimSet;
|
mSubmenus = new SimSet;
|
||||||
mSubmenus->registerObject();
|
mSubmenus->registerObject();
|
||||||
|
|
||||||
mBarTitle = StringTable->insert("");
|
mBarTitle = StringTable->EmptyString();
|
||||||
mIsPopup = false;
|
mIsPopup = false;
|
||||||
|
|
||||||
mPopupGUID = sMaxPopupGUID++;
|
mPopupGUID = sMaxPopupGUID++;
|
||||||
}
|
}
|
||||||
|
|
||||||
PopupMenu::~PopupMenu()
|
PopupMenu::~PopupMenu()
|
||||||
|
|
@ -126,10 +126,10 @@ void PopupMenu::onMenuSelect()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void PopupMenu::handleSelectEvent(U32 popID, U32 command)
|
void PopupMenu::handleSelectEvent(U32 popID, U32 command)
|
||||||
{
|
{
|
||||||
if (popID == mPopupGUID && canHandleID(command))
|
if (popID == mPopupGUID && canHandleID(command))
|
||||||
if (handleSelect(command))
|
if (handleSelect(command))
|
||||||
smSelectionEventHandled = true;
|
smSelectionEventHandled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
@ -138,8 +138,8 @@ void PopupMenu::onAttachToMenuBar(GuiCanvas *canvas, S32 pos, const char *title)
|
||||||
{
|
{
|
||||||
mCanvas = canvas;
|
mCanvas = canvas;
|
||||||
|
|
||||||
// Attached menus must be notified of menu events
|
// Attached menus must be notified of menu events
|
||||||
smPopupMenuEvent.notify(this, &PopupMenu::handleSelectEvent);
|
smPopupMenuEvent.notify(this, &PopupMenu::handleSelectEvent);
|
||||||
|
|
||||||
// Pass on to sub menus
|
// Pass on to sub menus
|
||||||
for(SimSet::iterator i = mSubmenus->begin();i != mSubmenus->end();++i)
|
for(SimSet::iterator i = mSubmenus->begin();i != mSubmenus->end();++i)
|
||||||
|
|
@ -160,8 +160,8 @@ void PopupMenu::onRemoveFromMenuBar(GuiCanvas *canvas)
|
||||||
{
|
{
|
||||||
mCanvas = NULL;
|
mCanvas = NULL;
|
||||||
|
|
||||||
// We are no longer interested in select events, remove ourselves from the notification list in a safe way
|
// We are no longer interested in select events, remove ourselves from the notification list in a safe way
|
||||||
Sim::postCurrentEvent(this, new PopUpNotifyRemoveEvent());
|
Sim::postCurrentEvent(this, new PopUpNotifyRemoveEvent());
|
||||||
|
|
||||||
// Pass on to sub menus
|
// Pass on to sub menus
|
||||||
for(SimSet::iterator i = mSubmenus->begin();i != mSubmenus->end();++i)
|
for(SimSet::iterator i = mSubmenus->begin();i != mSubmenus->end();++i)
|
||||||
|
|
|
||||||
|
|
@ -48,10 +48,10 @@ FileDialogData::FileDialogData()
|
||||||
if (mDefaultPath == StringTable->lookup("") || !Platform::isDirectory(mDefaultPath))
|
if (mDefaultPath == StringTable->lookup("") || !Platform::isDirectory(mDefaultPath))
|
||||||
mDefaultPath = Platform::getCurrentDirectory();
|
mDefaultPath = Platform::getCurrentDirectory();
|
||||||
|
|
||||||
mDefaultFile = StringTable->insert("");
|
mDefaultFile = StringTable->EmptyString();
|
||||||
mFilters = StringTable->insert("");
|
mFilters = StringTable->EmptyString();
|
||||||
mFile = StringTable->insert("");
|
mFile = StringTable->EmptyString();
|
||||||
mTitle = StringTable->insert("");
|
mTitle = StringTable->EmptyString();
|
||||||
|
|
||||||
mStyle = 0;
|
mStyle = 0;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue