- Your Widget Set For OpenGL
Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | Related Pages

ufontmetrics.hpp

00001 /*************************************************************************** 00002 LibUFO - UI For OpenGL 00003 copyright : (C) 2001-2005 by Johannes Schmidt 00004 email : schmidtjf at users.sourceforge.net 00005 ------------------- 00006 00007 file : include/ufo/font/ufontmetrics.hpp 00008 begin : Tue Oct 2 2001 00009 $Id: ufontmetrics.hpp,v 1.9 2005/05/21 15:17:23 schmidtjf Exp $ 00010 ***************************************************************************/ 00011 00012 /*************************************************************************** 00013 * This library is free software; you can redistribute it and/or * 00014 * modify it under the terms of the GNU Lesser General Public * 00015 * License as published by the Free Software Foundation; either * 00016 * version 2.1 of the License, or (at your option) any later version. * 00017 * * 00018 * This library is distributed in the hope that it will be useful, * 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00021 * Lesser General Public License for more details. * 00022 * * 00023 * You should have received a copy of the GNU Lesser General Public * 00024 * License along with this library; if not, write to the Free Software * 00025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * 00026 ***************************************************************************/ 00027 00028 #ifndef UFONTMETRICS_HPP 00029 #define UFONTMETRICS_HPP 00030 00031 #include "../uobject.hpp" 00032 00033 namespace ufo { 00034 00035 class UFontRenderer; 00036 00047 class UFO_EXPORT UFontMetrics : public UObject { 00048 UFO_DECLARE_ABSTRACT_CLASS(UFontMetrics) 00049 public: 00050 virtual UFontRenderer * getFontRenderer() const = 0; 00054 virtual int getAscent() const = 0; 00058 virtual int getDescent() const = 0; 00059 00063 virtual int getLineskip() const = 0; 00067 virtual int getHeight() const = 0; 00068 00069 virtual int getMaxAscent() const = 0; 00070 virtual int getMaxDescent() const = 0; 00071 virtual int getMaxCharWidth() const = 0; 00072 00074 virtual int getUnderlinePosition() const = 0; 00076 virtual int getUnderlineThickness() const = 0; 00077 00082 virtual int getStringWidth(const std::string & text) const { 00083 return getStringWidth(text.data(), text.length()); 00084 } 00088 virtual int getStringWidth(const char * text, unsigned int nChar) const = 0; 00089 00091 virtual int getCharWidth(const wchar_t chA) const = 0; 00092 00095 virtual unsigned int 00096 viewToModel(const std::string & text, unsigned int w) const { 00097 return viewToModel(text.data(), text.length(), w); 00098 } 00108 virtual unsigned int 00109 viewToModel(const char * text, unsigned int nChar, unsigned int w) const = 0; 00110 }; 00111 00112 } // namespace ufo 00113 00114 #endif // UFONTMETRICS_HPP

The libUFO Project - written by Johannes Schmidt