The font wrapper base class. More...
#include <FntWrap.h>
Classes | |
struct | GlyphMetrics_t |
Public Types | |
enum | GUIFont_t { FNT_NORMAL = 0 , FNT_ITALIC = 1 , FNT_UNDERLINED = 2 , FNT_BOLD = 4 } |
enum | TextOperation_t { RENDER_TEXT , GET_REQUIRED_SPACE } |
Public Member Functions | |
void | ChangeFont (const FontResource_t &eFontID, const eC_String &pcPath, const eC_UInt uiFontSize, const GUIFont_t &eFontStyle) |
virtual void | FittingNumChars (const eC_String *const pkText, eC_Value vWidthMax, eC_UInt &uiNumChars, const eC_Bool &bStartAtEnd=false) |
virtual eC_Int | GetAscender () const |
virtual eC_Int | GetDescender () const |
virtual void | GetGlyphMetrics (const eC_Char cChar, GlyphMetrics_t &kMetrics) |
virtual eC_Int | GetInternalLeading () const |
virtual eC_UInt | GetNOFFonts () |
CGUICommonEnums::Rotation_t | GetRotation () const |
virtual eC_Value | GetTextXPosAdjustment (const CGUIText::HorAligned_t eHorAlignment) |
virtual eC_Value | GetTextYPosAdjustment (const CGUIText::VerAligned_t eVerAlignment) |
virtual void | LoadFont (const FontResource_t &eFontID) |
virtual void | RequiredSpace (const eC_String *const pkText, eC_Value &vWidth, eC_Value &vHeight)=0 |
virtual void | SetFont (const FontResource_t &eID) |
virtual void | SetFontSpacing (const eC_Float &fSpacing) |
virtual eC_Bool | SetNOFFonts (const eC_UInt uiNOFFonts) |
void | SetRotation (const CGUICommonEnums::Rotation_t &eRotation) |
virtual void | Text (const eC_Value &vX1, const eC_Value &vY1, const eC_String *const lpString)=0 |
virtual void | UnloadFont (const FontResource_t &eFontID) |
Static Public Member Functions | |
static void | DeleteInstance () |
Protected Member Functions | |
CFntWrap () | |
Constructor. | |
virtual | ~CFntWrap () |
Destructor. | |
void * | GetWorkingMemory (const eC_UInt &uiSize) |
void | ReleaseWorkingMemory () |
release working memory | |
Protected Attributes | |
FontResource_t | m_eCurFont |
Current font id. | |
CGUICommonEnums::Rotation_t | m_eRotation |
Rotation. | |
eC_UInt | m_uiNOFFonts |
Total number of fonts. | |
eC_Value | m_vSpacing |
Font spacing, i.e the space between letters. | |
Friends | |
class | CGUIComponentManager |
The font wrapper base class.
This is the font wrapper base class. Guiliani is designed independently of a certain font engine. This class declares interfaces for handling all font functions such as loading fonts and printing text on the screen.
Please be aware that due to the cross-platform character of the framework, not all functions declared within the CFntWrap base class need to be available in all platform-specific implementations.
enum CFntWrap::GUIFont_t |
Definition of font styles.
void CFntWrap::ChangeFont | ( | const FontResource_t & | eFontID, |
const eC_String & | pcPath, | ||
const eC_UInt | uiFontSize, | ||
const GUIFont_t & | eFontStyle | ||
) |
Change the font at position eFontID with the font identified by pcPath. If the font already exists, it is unloaded first.
eFontID | id (and hence index) of the font. |
pcPath | Path or name of the font. |
uiFontSize | Size of the font. |
eFontStyle | Style of the font (italic, underline, bold, ... see GUIFont.h). |
|
static |
Delete the instance if it exists. Set the pointer NULL.
|
virtual |
Calculates number of characters that fit in a given width with the currently active font.
pkText | The text. |
vWidthMax | Maximum width for the text in pixels. |
uiNumChars | Reference value returning the number of characters that fit into that width. |
bStartAtEnd | if this is true the text will be processed the other way round (e.g. RTL-languages) |
|
inlinevirtual |
Returns the currently set font's ascender-metric. If the ascender is not supported by a given Font-Wrapper, this returns 0.
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, and CFntWrapGlyphLibGL.
|
inlinevirtual |
Returns the currently set font's descender-metric. If the descender is not supported by a given Font-Wrapper, this returns 0.
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, and CFntWrapGlyphLibGL.
|
inlinevirtual |
Get the metrics of a glyph for a specific character
cChar | character |
kMetrics | metrics of glyph |
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, and CFntWrapGlyphLibGL.
|
inlinevirtual |
Returns the currently set font's internal leading. If the internal leading is not supported by a given Font-Wrapper, this returns 0.
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, CFntWrapGlyphLibGL, and CFntWrapFreeTypeVG.
|
inlinevirtual |
Gets the number of fonts (array size).
|
inline |
Get the current rotation for text-rendering
|
inlinevirtual |
Get the x position adjustment because of platform specific font structure.
eHorAlignment | The horizontal alignment of GUIText object. |
|
inlinevirtual |
Get the Y position adjustment because of platform specific font structure.
eVerAlignment | The vertical alignment of GUIText object. |
|
protected |
Get working memory
uiSize | size of memory-block |
|
inlinevirtual |
Loads a font identified by eFontID into an array of fonts at position eFontID. If the font already exists, it's not loaded again. Should only be called by a FntWrapper.
eFontID | id (and hence index) of the font. False else. |
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, CFntWrapGlyphLibGL, and CFntWrapFreeTypeVG.
|
pure virtual |
Calculates the required space in x- and y-direction of a given text with the currently active font.
pkText | The text. |
vWidth | Reference to width of the font in pixels. |
vHeight | Reference to height of the font in pixels. |
Implemented in CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapNull, and CFntWrapFreeTypeVG.
|
virtual |
Sets a new font for the application.
eID | id (and hence index) of the font. |
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, and CFntWrapGlyphLib.
|
virtual |
Sets a new font spacing, i.e the space between letters.
fSpacing | New font spacing. |
|
virtual |
Sets the total number of fonts. This is called internally by the ResourceManager when dynamically allocated font resources require the total number of fonts to be raised. Derived classes will have to override this method and resize their internal font-storage structures according to the new number of fonts which will have to be stored.
uiNOFFonts | The number of fonts |
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapNull, CFntWrapFreeTypeGL, CFntWrapGlyphLibGL, and CFntWrapFreeTypeVG.
|
inline |
Set the current rotation for text-rendering
eRotation | rotation |
|
pure virtual |
Print the text to screen.
vX1 | Absolute x position of the top-left corner of the bounding rectangle. |
vY1 | Absolute y position of the top-left corner of the bounding rectangle. |
lpString | The string to be printed. |
Implemented in CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapNull, and CFntWrapFreeTypeVG.
|
inlinevirtual |
Removes the font from the font list. Should only be called by a FntWrapper.
eFontID | Id of font to be removed. |
Reimplemented in CFntWrapFreeTypeDAVE, CFntWrapGlyphLibDAVE, CFntWrapFreeType, CFntWrapGlyphLib, CFntWrapFreeTypeGL, CFntWrapGlyphLibGL, and CFntWrapFreeTypeVG.
|
friend |