6e8fbca745
match the genesis editor version 1.3.0.653.
141 lines
1.9 KiB
C++
141 lines
1.9 KiB
C++
/*!
|
|
@file
|
|
@author Albert Semenov
|
|
@date 09/2009
|
|
*/
|
|
#ifndef __MYGUI_TEXT_VIEW_DATA_H__
|
|
#define __MYGUI_TEXT_VIEW_DATA_H__
|
|
|
|
#include "MyGUI_Prerequest.h"
|
|
|
|
namespace MyGUI
|
|
{
|
|
|
|
class CharInfo
|
|
{
|
|
public:
|
|
CharInfo() :
|
|
mIsColour(false)
|
|
{
|
|
mMetrics.mWidth = 0.0f;
|
|
mMetrics.mHeight = 0.0f;
|
|
mMetrics.mAdvance = 0.0f;
|
|
mMetrics.mBearingX = 0.0f;
|
|
mMetrics.mBearingY = 0.0f;
|
|
}
|
|
|
|
CharInfo(
|
|
const FloatRect& _rect,
|
|
float _width,
|
|
float _height,
|
|
float _advance,
|
|
float _bearingX,
|
|
float _bearingY) :
|
|
mIsColour(false),
|
|
mUVRect(_rect)
|
|
{
|
|
mMetrics.mWidth = _width;
|
|
mMetrics.mHeight = _height;
|
|
mMetrics.mAdvance = _advance;
|
|
mMetrics.mBearingX = _bearingX;
|
|
mMetrics.mBearingY = _bearingY;
|
|
}
|
|
|
|
CharInfo(uint32 _colour) :
|
|
mIsColour(true),
|
|
mColour(_colour)
|
|
{ }
|
|
|
|
bool isColour() const
|
|
{
|
|
return mIsColour;
|
|
}
|
|
|
|
float getWidth() const
|
|
{
|
|
return mMetrics.mWidth;
|
|
}
|
|
|
|
float getHeight() const
|
|
{
|
|
return mMetrics.mHeight;
|
|
}
|
|
|
|
float getAdvance() const
|
|
{
|
|
return mMetrics.mAdvance;
|
|
}
|
|
|
|
float getBearingX() const
|
|
{
|
|
return mMetrics.mBearingX;
|
|
}
|
|
|
|
float getBearingY() const
|
|
{
|
|
return mMetrics.mBearingY;
|
|
}
|
|
|
|
const FloatRect& getUVRect() const
|
|
{
|
|
return mUVRect;
|
|
}
|
|
|
|
uint32 getColour() const
|
|
{
|
|
return mColour;
|
|
}
|
|
|
|
private:
|
|
|
|
bool mIsColour;
|
|
FloatRect mUVRect;
|
|
|
|
struct Metrics
|
|
{
|
|
float mWidth;
|
|
float mHeight;
|
|
float mAdvance;
|
|
float mBearingX;
|
|
float mBearingY;
|
|
};
|
|
|
|
union
|
|
{
|
|
Metrics mMetrics;
|
|
uint32 mColour;
|
|
};
|
|
|
|
};
|
|
|
|
typedef std::vector<CharInfo> VectorCharInfo;
|
|
|
|
struct LineInfo
|
|
{
|
|
LineInfo() :
|
|
width(0),
|
|
offset(0),
|
|
count(0)
|
|
{
|
|
}
|
|
|
|
void clear()
|
|
{
|
|
width = 0;
|
|
count = 0;
|
|
simbols.clear();
|
|
offset = 0;
|
|
}
|
|
|
|
int width;
|
|
int offset;
|
|
size_t count;
|
|
VectorCharInfo simbols;
|
|
};
|
|
|
|
typedef std::vector<LineInfo> VectorLineInfo;
|
|
|
|
} // namespace MyGUI
|
|
|
|
#endif // __MYGUI_TEXT_VIEW_DATA_H__
|