Files
wagic/projects/mtg/include/DeckMenuItem.h
2015-11-10 11:58:36 +08:00

84 lines
2.0 KiB
C++

#ifndef _DECKMENU_ITEM_H
#define _DECKMENU_ITEM_H
#include <string>
#include <JLBFont.h>
#include <JGui.h>
#include "DeckMenu.h"
using std::string;
class DeckMenuItem: public JGuiObject
{
private:
bool mHasFocus;
bool mScrollEnabled;
bool mDisplayInitialized;
bool mIsValidSelection;
DeckMenu* parent;
int fontId;
string mText;
float mX;
float mY;
float mTitleResetWidth;
string mDescription;
static float mYOffset;
float mScrollerOffset;
DeckMetaData *mMetaData;
string mImageFilename;
void checkUserClick();
public:
DeckMenuItem(DeckMenu* _parent, int id, int fontId, string text, float x, float y, bool hasFocus = false, bool autoTranslate = false, DeckMetaData *meta = NULL);
~DeckMenuItem();
virtual void Relocate(float x, float y);
virtual void RenderWithOffset(float yOffset);
virtual void Render();
virtual void Update(float dt);
virtual void Entering();
virtual bool Leaving(JButton key);
virtual bool ButtonPressed();
virtual ostream& toString(ostream& out) const;
virtual bool getTopLeft(float& top, float& left)
{
top = mY + mYOffset;
left = mX;
return true;
}
// Accessors
string getImageFilename() const { return mImageFilename; };
float getY() const { return mY; };
float getX() const { return mX; };
string getDescription() const { return mDescription; };
string getText() const { return mText; };
bool hasFocus() const { return mHasFocus; };
bool hasMetaData() const { return mMetaData == NULL ? false : true;};
float getWidth() const;
string getDeckName() const;
string getDeckStatsSummary() const
{
if (mMetaData)
return mMetaData->getStatsSummary();
return "";
}
DeckMetaData *getMetaData() const
{
return mMetaData;
}
// Setters
void setDescription( const string& description ) { mDescription = description; }
};
#endif