Files
wagic/projects/mtg/src/DeckMenuItem.cpp

89 lines
1.6 KiB
C++

#include "PrecompiledHeader.h"
#include "DeckMenuItem.h"
#include "Translate.h"
#include "WResourceManager.h"
DeckMenuItem::DeckMenuItem(DeckMenu* _parent, int id, int fontId, string text, float x, float y, bool hasFocus, bool autoTranslate, DeckMetaData *deckMetaData)
: JGuiObject(id), parent(_parent), fontId(fontId), mX(x), mY(y)
{
if (autoTranslate)
mText = _(text);
else
mText = text;
mHasFocus = hasFocus;
if (hasFocus)
Entering();
meta = deckMetaData;
if ( meta && meta->getAvatarFilename().size() > 0 )
this->imageFilename = meta->getAvatarFilename();
else
this->imageFilename = "avatar.jpg";
}
void DeckMenuItem::RenderWithOffset(float yOffset)
{
WFont * mFont = resources.GetWFont(fontId);
string displayName = mText;
mFont->DrawString(displayName.c_str(), mX, mY + yOffset, JGETEXT_CENTER);
}
void DeckMenuItem::Render()
{
RenderWithOffset(0);
}
void DeckMenuItem::Entering()
{
mHasFocus = true;
parent->selectionTargetY = mY;
}
bool DeckMenuItem::Leaving(JButton key)
{
mHasFocus = false;
return true;
}
bool DeckMenuItem::ButtonPressed()
{
return true;
}
void DeckMenuItem::Relocate(float x, float y)
{
mX = x;
mY = y;
}
float DeckMenuItem::GetWidth()
{
WFont * mFont = resources.GetWFont(fontId);
return mFont->GetStringWidth(mText.c_str());
}
bool DeckMenuItem::hasFocus()
{
return mHasFocus;
}
ostream& DeckMenuItem::toString(ostream& out) const
{
return out << "DeckMenuItem ::: mHasFocus : " << mHasFocus
<< " ; parent : " << parent
<< " ; mText : " << mText
<< " ; mX,mY : " << mX << "," << mY;
}
DeckMenuItem::~DeckMenuItem()
{
meta = NULL;
}