74 lines
2.4 KiB
C++
Executable File
74 lines
2.4 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#include "console/console.h"
|
|
#include "dgl/dgl.h"
|
|
#include "gui/core/guiCanvas.h"
|
|
#include "gui/controls/guiCheckBoxCtrl.h"
|
|
#include "console/consoleTypes.h"
|
|
|
|
IMPLEMENT_CONOBJECT(GuiCheckBoxCtrl);
|
|
|
|
//---------------------------------------------------------------------------
|
|
GuiCheckBoxCtrl::GuiCheckBoxCtrl()
|
|
{
|
|
mBounds.extent.set(140, 30);
|
|
mStateOn = false;
|
|
mIndent = 0;
|
|
mButtonType = ButtonTypeCheck;
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
bool GuiCheckBoxCtrl::onWake()
|
|
{
|
|
if(!Parent::onWake())
|
|
return false;
|
|
|
|
// make sure there is a bitmap array for this control type
|
|
// if it is declared as such in the control
|
|
mProfile->constructBitmapArray();
|
|
|
|
return true;
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
void GuiCheckBoxCtrl::onRender(Point2I offset, const RectI &updateRect)
|
|
{
|
|
ColorI backColor = mActive ? mProfile->mFillColor : mProfile->mFillColorNA;
|
|
ColorI fontColor = mMouseOver ? mProfile->mFontColorHL : mProfile->mFontColor;
|
|
ColorI insideBorderColor = isFirstResponder() ? mProfile->mBorderColorHL : mProfile->mBorderColor;
|
|
|
|
// just draw the check box and the text:
|
|
S32 xOffset = 0;
|
|
dglClearBitmapModulation();
|
|
if(mProfile->mBitmapArrayRects.size() >= 4)
|
|
{
|
|
S32 index = mStateOn;
|
|
if(!mActive)
|
|
index = 2;
|
|
else if(mDepressed)
|
|
index += 2;
|
|
xOffset = mProfile->mBitmapArrayRects[0].extent.x + 2 + mIndent;
|
|
S32 y = (mBounds.extent.y - mProfile->mBitmapArrayRects[0].extent.y) / 2;
|
|
dglDrawBitmapSR(mProfile->mTextureHandle, offset + Point2I(mIndent, y), mProfile->mBitmapArrayRects[index]);
|
|
}
|
|
|
|
if(mButtonText[0] != NULL)
|
|
{
|
|
dglSetBitmapModulation( fontColor );
|
|
renderJustifiedText(Point2I(offset.x + xOffset, offset.y),
|
|
Point2I(mBounds.extent.x - mBounds.extent.y, mBounds.extent.y),
|
|
mButtonText);
|
|
}
|
|
//render the children
|
|
renderChildControls(offset, updateRect);
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
// EOF //
|
|
|
|
|