1 /* 2 * Copyright (C) 2006 Apple Computer, Inc. 3 * Copyright (C) 2006 Zack Rusin <zack@kde.org> 4 * Copyright (C) 2006 Dirk Mueller <mueller@kde.org> 5 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> 6 * Copyright (C) 2007 Ryan Leavengood <leavengood@gmail.com> 7 * Copyright (C) 2009 Maxime Simon <simon.maxime@gmail.com> 8 * 9 * All rights reserved. 10 * 11 * This library is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU Library General Public 13 * License as published by the Free Software Foundation; either 14 * version 2 of the License, or (at your option) any later version. 15 * 16 * This library is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 19 * Library General Public License for more details. 20 * 21 * You should have received a copy of the GNU Library General Public License 22 * along with this library; see the file COPYING.LIB. If not, write to 23 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 24 * Boston, MA 02111-1307, USA. 25 * 26 */ 27 28 #ifndef FontPlatformData_H 29 #define FontPlatformData_H 30 31 #include "FontDescription.h" 32 #include "GlyphBuffer.h" 33 #include <interface/Font.h> 34 35 namespace WebCore { 36 37 class FontPlatformData { 38 public: FontPlatformData(WTF::HashTableDeletedValueType)39 FontPlatformData(WTF::HashTableDeletedValueType) 40 : m_font(hashTableDeletedFontValue()) 41 { } 42 FontPlatformData()43 FontPlatformData() 44 : m_font(0) 45 { } 46 47 FontPlatformData(const FontDescription&, const AtomicString& family); 48 FontPlatformData(float size, bool bold, bool oblique); 49 FontPlatformData(const FontPlatformData&); 50 51 ~FontPlatformData(); 52 font()53 BFont* font() const { return m_font; } 54 55 bool isFixedPitch(); size()56 float size() const { return m_size; } bold()57 bool bold() const { return m_bold; } oblique()58 bool oblique() const { return m_oblique; } 59 60 unsigned hash() const; 61 bool isHashTableDeletedValue() const; 62 63 bool operator==(const FontPlatformData&) const; 64 65 #ifndef NDEBUG 66 String description() const; 67 #endif 68 69 BFont* m_font; 70 float m_size; 71 bool m_bold; 72 bool m_oblique; 73 74 private: hashTableDeletedFontValue()75 static BFont* hashTableDeletedFontValue() { return reinterpret_cast<BFont*>(-1); } 76 }; 77 78 } // namespace WebCore 79 80 #endif 81 82