|
IrrlichtEngine
|
00001 // Copyright (C) 2002-2011 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_GUI_FONT_H_INCLUDED__ 00006 #define __I_GUI_FONT_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "SColor.h" 00010 #include "rect.h" 00011 #include "irrString.h" 00012 00013 namespace irr 00014 { 00015 namespace gui 00016 { 00017 00019 enum EGUI_FONT_TYPE 00020 { 00022 EGFT_BITMAP = 0, 00023 00025 00028 EGFT_VECTOR, 00029 00031 00032 EGFT_OS, 00033 00035 EGFT_CUSTOM 00036 }; 00037 00039 class IGUIFont : public virtual IReferenceCounted 00040 { 00041 public: 00042 00044 00051 virtual void draw(const core::stringw& text, const core::rect<s32>& position, 00052 video::SColor color, bool hcenter=false, bool vcenter=false, 00053 const core::rect<s32>* clip=0) = 0; 00054 00056 00058 virtual core::dimension2d<u32> getDimension(const wchar_t* text) const = 0; 00059 00061 00065 virtual s32 getCharacterFromPos(const wchar_t* text, s32 pixel_x) const = 0; 00066 00068 virtual EGUI_FONT_TYPE getType() const { return EGFT_CUSTOM; } 00069 00071 virtual void setKerningWidth (s32 kerning) = 0; 00072 00074 virtual void setKerningHeight (s32 kerning) = 0; 00075 00077 00087 virtual s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const = 0; 00088 00090 virtual s32 getKerningHeight() const = 0; 00091 00093 00097 virtual void setInvisibleCharacters( const wchar_t *s ) = 0; 00098 }; 00099 00100 } // end namespace gui 00101 } // end namespace irr 00102 00103 #endif 00104