/*******************************************************************************
This file is Part of the Gewi GUI Library for ZEngine.
Gewi and ZEngine Copyright (C) 2002, 2003 James Turk
Licensed under a BSD-style license. (see licensing.txt)
The maintainer of this library is James Turk (james@conceptofzero.net)
this library is found at the home of ZEngine http://zengine.sourceforge.net
*******************************************************************************/
/*!
\file ZE_ZConfigFile.h
\brief Definition file for ZConfigFile.
Definition file for ZConfigFile, an INI-style config file format.
$ id: ZE_ZConfigFile.h,v 1.9 2003/02/10 04:40:16 cozman Exp $
\author James Turk
**/
#include "GewiTextButton.h"
namespace Gewi
{
GTextButton::GTextButton(GContainer *parent) :
GButton(parent),
rXOff(0),
rYOff(0),
rFont(GewiEngine::InvalidID)
{}
void GTextButton::Create(float x, float y, float width, float height, ResourceID normalImg, ResourceID pressImg, ResourceID font,
string text, GButtonType type)
{
GButton::Create(x,y,width,height,normalImg,pressImg,type);
rFont = font;
SetText(text);
}
void GTextButton::Show()
{
GButton::Show(); //draw button before text
//TODO: calculate decent pressed offset based upon scale
if(rPressed)
rTextBuf.Draw(rBoundRect.X()+rXOff+5,rBoundRect.Y()+rYOff+3); //draw text shifted by offset + a bit (for pressed look)
else
rTextBuf.Draw(rBoundRect.X()+rXOff,rBoundRect.Y()+rYOff); //draw text shifted by offset
}
void GTextButton::SetText(string text)
{
rText = text;
rGewi->Font(rFont)->DrawText(rText,rTextBuf);
//center the text
rXOff = static_cast(rBoundRect.Width()-rTextBuf.Width())/2;
rYOff = static_cast(rBoundRect.Height()-rTextBuf.Height())/2;
}
string GTextButton::GetText()
{
return rText;
}
}