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.
19 * @file FGrp_EnrichedTextImpl.h
20 * @brief This is the header file for the _EnrichedTextImpl class.
22 * This header file contains the declarations of the %_EnrichedTextImpl class.
26 #ifndef _FGRP_INTERNAL_ENRICHED_TEXT_IMPL_H_
27 #define _FGRP_INTERNAL_ENRICHED_TEXT_IMPL_H_
33 #include <FBaseErrorDefine.h>
34 #include <FBaseString.h>
35 #include <FBaseColArrayList.h>
36 #include <FGrpEnrichedText.h>
38 #include <FBaseSysLog.h>
39 #include "FGrp_TextCommon.h"
41 namespace Tizen { namespace Graphics { namespace _Text
46 namespace Tizen { namespace Base { namespace Collection
49 }}} // Tizen::Base::Collection
51 namespace Tizen { namespace Base { namespace Utility
54 }}} // Tizen::Base::Utility
56 namespace Tizen { namespace Graphics
60 class _TextElementImpl;
62 #define TEXT_HORIZONTAL_ALIGNMENT 0x0007
63 #define TEXT_VERTICAL_ALIGNMENT 0x0f00
68 TEXT_WRAP_TYPE_NONE, //default
70 TEXT_WRAP_TYPE_WORDWRAP
73 class _EnrichedTextImpl
76 _EnrichedTextImpl(void);
77 virtual ~_EnrichedTextImpl(void);
79 result Construct(const Tizen::Graphics::Dimension& dim);
80 result InsertAt(int elementIndex, TextElement& element);
81 result RemoveAt(int elementIndex, bool deallocate);
82 result Remove(TextElement& element, bool deallocate);
83 result Add(TextElement& element);
84 result RemoveAllTextElements(bool deallocate);
85 result RemoveAll(bool deallocate);
86 TextElement* GetTextElementAt(int elementIndex) const;
87 int GetTextElementCount(void) const;
88 result SetSize(const Tizen::Graphics::Dimension& size);
89 result SetSize(int width, int height);
90 Tizen::Graphics::Dimension GetSize(void) const;
91 void GetSize(int& width, int& height) const;
92 int GetWidth(void) const;
93 int GetHeight(void) const;
94 result SetVerticalAlignment(TextVerticalAlignment alignment);
95 result SetHorizontalAlignment(TextHorizontalAlignment alignment);
96 TextVerticalAlignment GetVerticalAlignment(void) const;
97 TextHorizontalAlignment GetHorizontalAlignment(void) const;
98 result SetTextWrapStyle(TextWrap wrap);
99 TextWrap GetTextWrapStyle(void) const;
100 result SetTextAbbreviationEnabled(bool enable);
101 bool IsTextAbbreviationEnabled(void) const;
102 result SetLineSpace(int lineSpace);
103 int GetLineSpace(void) const;
105 int GetTotalLineCount(void) const;
106 int GetTotalLineHeight(void) const;
107 int GetDisplayLineCount(void) const;
108 int GetLineLength(int lineIndex) const;
109 int GetFirstTextIndex(int lineIndex) const;
110 int GetLineIndex(int textIndex) const;
111 int GetLineHeight(int lineIndex) const;
112 int GetTextLength(void) const;
113 result GetTextExtent(int startTextIndex, int textLength, int& width, int& height, int& actualLength) const;
114 result GetTextExtent(int startTextIndex, int textLength, Tizen::Graphics::Dimension& size, int &actualLength) const;
115 Tizen::Graphics::Dimension GetTextExtent(void) const;
116 result Add(const Tizen::Graphics::Bitmap& bitmap);
117 result InsertAt(int elementIndex, const Tizen::Graphics::Bitmap& bitmap);
118 result GetLinkInfoFromPosition(const Point& point, Tizen::Base::Utility::LinkInfo& linkInfo) const;
119 result GetLinkInfoFromPosition(int x, int y, Tizen::Base::Utility::LinkInfo& linkInfo) const;
120 TextVerticalAlignment GetElementVerticalAlignment(void) const;
121 result SetElementVerticalAlignment(TextVerticalAlignment alignment);
123 Tizen::Graphics::Rectangle GetBounds(void) const;
124 result IndexOfFromLinkedList(TextElement& textElement, int& index);
125 int GetTextElementIndexFromPosition(Tizen::Graphics::Point& point) const;
126 Tizen::Graphics::_Text::TextObjectAlignment ConvertHAlignment(TextHorizontalAlignment halign);
127 TextHorizontalAlignment ConvertHAlignment(Tizen::Graphics::_Text::TextObjectAlignment halign);
128 Tizen::Graphics::_Text::TextObjectAlignment ConvertVAlignment(TextVerticalAlignment valign);
129 TextVerticalAlignment ConvertVAlignment(Tizen::Graphics::_Text::TextObjectAlignment valign);
130 _TextWrapType ConvertWrapType(TextWrap warp);
131 TextWrap ConvertWrap(_TextWrapType warp) const;
133 Tizen::Graphics::_Text::TextObject* GetTextObject(void) const;
134 Tizen::Graphics::_Text::TextElementType GetTypeFromIndex(int textObjectIndex) const;
135 int GetIndexFromTouchPosition(int posX, int posY) const;
136 result RemoveFromTextObject(_TextElementImpl* pTextElementImpl);
137 result InsertAtFromTextObject(int index, _TextElementImpl* pTextElementImpl);
138 int GetTextElementIndex(_TextElementImpl* pTextElementImpl) const;
139 _EnrichedTextImpl* GetCloneN(void) const;
140 bool IsConstructed(void) const;
142 static _EnrichedTextImpl* GetInstance(EnrichedText& enrichedText);
143 static const _EnrichedTextImpl* GetInstance(const EnrichedText& enrichedText);
150 TextVerticalAlignment __verticalAlignment;
151 TextHorizontalAlignment __horizontalAlignment;
152 TextVerticalAlignment __elementVerticalAlignment;
154 std::tr1::shared_ptr<Tizen::Graphics::_Text::TextObject> __pTextObject;
155 Tizen::Base::Collection::LinkedList* __pLinkedListTextElementList;
156 Tizen::Base::Collection::ArrayList __elements;
157 TextElement* __pTextElement;
158 bool __isCopiedEnrichedText;
161 _EnrichedTextImpl(const _EnrichedTextImpl& enrichedTextImpl);
162 _EnrichedTextImpl& operator =(const _EnrichedTextImpl& rhs);
164 }; // _EnrichedTextImpl
166 }} // Tizen::Graphics
168 #endif // _FGRP_INTERNAL_ENRICHED_TEXT_IMPL_H_