1 /***************************************************************************** 2 * generic_font.hpp 3 ***************************************************************************** 4 * Copyright (C) 2003 the VideoLAN team 5 * $Id: cffcef5a1e70bde7a4d798a4404ef886cfb1d5a2 $ 6 * 7 * Authors: Cyril Deguet <asmax@via.ecp.fr> 8 * Olivier Teulière <ipkiss@via.ecp.fr> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License along 21 * with this program; if not, write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 23 *****************************************************************************/ 24 25 #ifndef GENERIC_FONT_HPP 26 #define GENERIC_FONT_HPP 27 28 #include "skin_common.hpp" 29 #include "../utils/pointer.hpp" 30 31 class GenericBitmap; 32 class UString; 33 34 /// Base class for fonts 35 class GenericFont: public SkinObject 36 { 37 public: ~GenericFont()38 virtual ~GenericFont() { } 39 40 virtual bool init() = 0; 41 42 /// Render a string on a bitmap. 43 /// If maxWidth != -1, the text is truncated with '...' 44 /// The Bitmap is _not_ owned by this object 45 virtual GenericBitmap *drawString( const UString &rString, 46 uint32_t color, int maxWidth = -1 ) const = 0; 47 48 /// Get the font size 49 virtual int getSize() const = 0; 50 51 protected: GenericFont(intf_thread_t * pIntf)52 GenericFont( intf_thread_t *pIntf ): SkinObject( pIntf ) { } 53 }; 54 55 typedef CountedPtr<GenericFont> GenericFontPtr; 56 57 58 #endif 59