2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
20 * @brief This is the header file for the _Font class.
22 * This header file contains the declarations of the %_Font class.
26 #ifndef _FGRP_INTERNAL_FONT_H_
27 #define _FGRP_INTERNAL_FONT_H_
32 #include <FBaseObject.h>
33 #include <FGrpFontCommon.h>
35 #include "FGrp_IFont.h"
37 #include "util/FGrp_UtilTemplate.h"
38 #include "util/FGrp_UtilType.h"
40 namespace Tizen { namespace Base
46 namespace Tizen { namespace Base { namespace Collection
49 }}} // Tizen::Base::Collection
51 namespace Tizen { namespace Graphics
76 style = FONT_STYLE_MIN;
90 : public Tizen::Base::Object
93 typedef unsigned long SystemPixel;
97 _Font(const _Font& obj);
100 result Construct(int style, int size);
101 result Construct(const Tizen::Base::String& fontName, int style, int pcSize, bool isPathEnabled = true);
102 result Construct(const Tizen::Base::ByteBuffer& fontData, int style, int pcSize);
104 bool IsConstructed(void) const;
106 int GetMaxHeight(void) const;
107 int GetMaxWidth(void) const;
108 int GetAscender(void) const;
109 int GetDescender(void) const;
111 result GetLeftBear(wchar_t character, int& leftBear) const;
112 result GetRightBear(wchar_t character, int& rightBear) const;
113 result GetTextExtent(const Tizen::Base::String& text, int length, Dimension& dim) const;
115 bool IsBold(void) const;
116 bool IsItalic(void) const;
117 bool IsPlain(void) const;
118 bool IsStrikeOut(void) const;
119 bool IsUnderlined(void) const;
120 bool IsEmoji(void) const;
121 int GetSize(void) const;
122 void SetStrikeOut(bool strikeOut);
123 void SetUnderline(bool underline);
124 void SetCharSpace(int space);
125 int GetCharSpace(void) const;
126 int GetLineThickness(void) const;
127 Tizen::Base::String GetFaceName(void) const;
128 static Tizen::Base::Collection::IList* GetSystemFontListN(void);
129 static Tizen::Base::String GetFaceName(const Tizen::Base::String& filePath);
131 _IFont* GetNativeFont(void) const;
133 bool ApplyAttribute(void);
135 result GetTextExtent(int width, const Tizen::Base::String& text, int startIndex, int length, bool outline, int& count, Dimension& dim) const;
136 result GetTextExtent(int width, const Tizen::Base::String& text, int startIndex, int length, bool outline, const Tizen::Base::String& delimiter, int& count, Dimension& dim) const;
138 result SetSize(int pcSize);
139 result SetStyle(int style);
141 int GetStyle(void) const;
142 int GetLeading(void) const;
144 // native font interface
145 bool SetAttrib(const _IFont::Attrib& fontAttrib);
146 bool GetAttrib(_IFont::Attrib& fontAttrib) const;
147 bool GetKerning(unsigned long character1, unsigned long character2, long& xVector, long& yVector) const;
148 bool GetFontProperty(_IFont::Property& property) const;
149 bool LoadGlyph(unsigned long character, _IFont::Glyph** ppFontGlyphData);
150 bool UnloadGlyph(_IFont::Glyph** ppFontGlyphData);
151 unsigned long CheckGlyph(unsigned long character);
153 static result DrawText(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length);
154 static result DrawText(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length, const Color& outlineColor);
156 static _Font* GetInstance(_FontImpl& font);
157 static const _Font* GetInstance(const _FontImpl& font);
159 static bool UpdateDefaultFont(const Tizen::Base::String& key);
162 _Font& operator =(const _Font& rhs);
163 void __UpdateFontAttribute(int style, int size);
165 result __DrawText(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length);
166 result __DrawText(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length, const Color& outlineColor);
168 static result __DrawTextLastFallback(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length);
169 static result __DrawTextDefault(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length);
170 static result __DrawTextDefault(_Canvas& canvas, const Point& point, const Tizen::Base::String& text, int startIndex, int length, const Color& outlineColor);
172 _IFont* __GetFont(wchar_t character);
173 bool __GetFallbackFontFileList(wchar_t character, Tizen::Base::Collection::IListT<Tizen::Base::String>& out);
176 std::tr1::shared_ptr <_IFont> __sharedFont;
177 _FontAttribute __fontAttrib;
181 }} // Tizen::Graphics
183 #endif // _FGRP_INTERNAL_FONT_H_