Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / core / SkFontDescriptor.h
1 /*
2  * Copyright 2012 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7
8 #ifndef SkFontDescriptor_DEFINED
9 #define SkFontDescriptor_DEFINED
10
11 #include "SkStream.h"
12 #include "SkString.h"
13 #include "SkTypeface.h"
14
15 class SkWStream;
16
17 class SkFontDescriptor {
18 public:
19     SkFontDescriptor(SkTypeface::Style = SkTypeface::kNormal);
20     SkFontDescriptor(SkStream*);
21
22     void serialize(SkWStream*);
23
24     SkTypeface::Style getStyle() { return fStyle; }
25     void setStyle(SkTypeface::Style style) { fStyle = style; }
26
27     const char* getFamilyName() const { return fFamilyName.c_str(); }
28     const char* getFullName() const { return fFullName.c_str(); }
29     const char* getPostscriptName() const { return fPostscriptName.c_str(); }
30     const char* getFontFileName() const { return fFontFileName.c_str(); }
31     SkStream* getFontData() const { return fFontData; }
32     int getFontIndex() const { return fFontIndex; }
33
34     void setFamilyName(const char* name) { fFamilyName.set(name); }
35     void setFullName(const char* name) { fFullName.set(name); }
36     void setPostscriptName(const char* name) { fPostscriptName.set(name); }
37     void setFontFileName(const char* name) { fFontFileName.set(name); }
38     /** Set the font data only if it is necessary for serialization.
39      *  This method takes ownership of the stream (both reference and cursor).
40      */
41     void setFontData(SkStream* stream) { fFontData.reset(stream); }
42     void setFontIndex(int index) { fFontIndex = index; }
43
44 private:
45     SkString fFamilyName;
46     SkString fFullName;
47     SkString fPostscriptName;
48     SkString fFontFileName;
49     SkAutoTUnref<SkStream> fFontData;
50     int fFontIndex;
51
52     SkTypeface::Style fStyle;
53 };
54
55 #endif // SkFontDescriptor_DEFINED