Tizen 2.1 base
[framework/osp/uifw.git] / src / graphics / inc / FGrp_TextCommon.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 /*
19  * @file        FGrp_TextCommon.h
20  * @brief       This file contains the declarations of text properties.
21  *
22  */
23
24 #ifndef _FGRP_INTERNAL_TEXT_COMMON_H_
25 #define _FGRP_INTERNAL_TEXT_COMMON_H_
26
27 // Includes
28 #include <FBaseDataType.h>
29 #include <FGrpColor.h>
30 #include <FGrpRectangle.h>
31 #include <FGrpBitmap.h>
32 #include <FGrpFont.h>
33
34 // Forward Declarations
35 namespace Tizen { namespace Graphics
36 {
37
38 namespace _Text
39 {
40
41 enum TextLineReturnType
42 {
43         TEXT_RETBY_NORMAL = 2,
44         TEXT_RETBY_LINEFEED,
45         TEXT_RETBY_LIMITWIDTH,
46         TEXT_RETBY_LIMITLENGTH,
47         TEXT_RETBY_OVERWIDTH,
48         TEXT_RETBY_LINEFEED_BIDI
49 };
50
51 enum TextElementType
52 {
53         TEXT_ELEMENT_TYPE_NONE = 0,
54         TEXT_ELEMENT_TYPE_TEXT,
55         TEXT_ELEMENT_TYPE_IMAGE,
56         TEXT_ELEMENT_TYPE_CUTLINK,
57         TEXT_ELEMENT_TYPE_MAX
58 };
59
60 enum TextElementSourceType
61 {
62         TEXT_ELEMENT_SOURCE_TYPE_EXTERNAL = 0,
63         TEXT_ELEMENT_SOURCE_TYPE_INTERNAL,
64         TEXT_ELEMENT_SOURCE_TYPE_MAX
65 };
66
67 enum TextObjectWrapType
68 {
69         TEXT_OBJECT_WRAP_TYPE_NONE = 0,
70         TEXT_OBJECT_WRAP_TYPE_CHARACTER,
71         TEXT_OBJECT_WRAP_TYPE_WORD
72 };
73
74 enum TextObjectEllipsisType
75 {
76         TEXT_OBJECT_ELLIPSIS_TYPE_INVALID = -1,
77         TEXT_OBJECT_ELLIPSIS_TYPE_TAIL,
78         TEXT_OBJECT_ELLIPSIS_TYPE_MIDDLE,
79         TEXT_OBJECT_ELLIPSIS_TYPE_HEAD,
80         TEXT_OBJECT_ELLIPSIS_TYPE_MAX
81 };
82
83 enum TextObjectLinkColorType
84 {
85         TEXT_OBJECT_LINK_COLOR_TYPE_NONE = -1,
86         TEXT_OBJECT_LINK_COLOR_TYPE_URL_NORMAL,
87         TEXT_OBJECT_LINK_COLOR_TYPE_URL_SELECT,
88         TEXT_OBJECT_LINK_COLOR_TYPE_EMAIL_NORMAL,
89         TEXT_OBJECT_LINK_COLOR_TYPE_EMAIL_SELECT,
90         TEXT_OBJECT_LINK_COLOR_TYPE_PHONE_NUMBER_NORMAL,
91         TEXT_OBJECT_LINK_COLOR_TYPE_PHONE_NUMBER_SELECT,
92         TEXT_OBJECT_LINK_COLOR_TYPE_MAX
93 };
94
95 enum TextObjectActionType
96 {
97         TEXT_OBJECT_ACTION_TYPE_NONE = 0,
98         TEXT_OBJECT_ACTION_TYPE_ABBREV,
99         TEXT_OBJECT_ACTION_TYPE_SLIDE_LEFT,
100         TEXT_OBJECT_ACTION_TYPE_SLIDE_UP,
101         TEXT_OBJECT_ACTION_TYPE_MAX
102
103 };
104
105 enum TextObjectSpaceHideType
106 {
107         TEXT_OBJECT_SPACE_HIDE_TYPE_NONE = 0,
108         TEXT_OBJECT_SPACE_HIDE_TYPE_ONE,
109         TEXT_OBJECT_SPACE_HIDE_TYPE_ALL
110 };
111
112 enum TextComponentInfoValueType
113 {
114         SET_FONT = 0,
115         SET_FONT_FGCOLOR,
116         SET_FONT_BGCOLOR,
117         SET_FONT_OUTLINECOLOR,
118         MAX_TEXTOBJECT_VALUE,
119         SET_IMAGE_RECT,
120         SET_IMAGE_ALIGN,
121         MAX_IMAGEOBJECT_VALUE,
122         COMMONOBJECT_VALUE_START,
123         SET_ALTERNATE_LOOK = COMMONOBJECT_VALUE_START,
124         SET_ALTERNATIVE_FGCOLOR,
125         MAX_COMMONOBJECT_VALUE,
126         SET_TEXT_OFFSET,
127         SET_CUTLINK_TYPE,
128         SET_CUTLINK_EDITABLE,
129         SET_CUTLINK_EDITING,
130         SET_ALLVALUE_CLONE = 0xFF
131 };
132
133 enum TextObjectAlignmentType
134 {
135         TEXT_OBJECT_ALIGNMENT_LEFT = 0x0001,
136         TEXT_OBJECT_ALIGNMENT_CENTER = 0x0002,
137         TEXT_OBJECT_ALIGNMENT_RIGHT = 0x0004,
138         TEXT_OBJECT_ALIGNMENT_TOP = 0x0100,
139         TEXT_OBJECT_ALIGNMENT_MIDDLE = 0x0200,
140         TEXT_OBJECT_ALIGNMENT_BOTTOM = 0x0400,
141         TEXT_OBJECT_ALIGNMENT_BASELINE = 0x0800,
142         TEXT_OBJECT_ALIGNMENT_INVALID = 0X1000
143 };
144
145 enum TextAlignMask
146 {
147         TEXT_ALIGNMASK_HORIZ = 0x0007,
148         TEXT_ALIGNMASK_VERT = 0x0F00
149 };
150
151 enum TextObjectSweepType
152 {
153         TEXT_OBJECT_SWEEP_TYPE_NONE = 0,
154         TEXT_OBJECT_SWEEP_TYPE_FORWARD,
155         TEXT_OBJECT_SWEEP_TYPE_BACKWARD,
156         TEXT_OBJECT_SWEEP_TYPE_KEYINPUT,
157         TEXT_OBJECT_SWEEP_TYPE_REPLACE,
158         TEXT_OBJECT_SWEEP_TYPE_INVALID
159 };
160
161 enum TextObjectSweepEventType
162 {
163         TEXT_OBJECT_SWEEP_EVENT_NONE = 0,
164         TEXT_OBJECT_SWEEP_EVENT_INSERT,
165         TEXT_OBJECT_SWEEP_EVENT_REMOVE
166 };
167
168 struct TextObjectSweepInfo
169 {
170         bool isValid;
171         TextObjectSweepType sweepType;
172         TextObjectSweepEventType sweepEventType;
173         int anchorTextIndex;
174         int anchorLineIndex;
175         int prevAnchorLineIndex;
176         int sweepRegionStartLineIndex;
177         int sweepRegionLineCount;
178         int insertedLineCount;
179         int deletedLineCount;
180         int widthChanged;
181 };
182
183 struct TextObjectSweepComposeLineInfo
184 {
185         bool isValid;
186         int prevLineTextOffset;
187         int prevLineTextLength;
188         int prevLineWidth;
189         int currentLineTextOffset;
190         int currentLineTextLength;
191         int currentLineWidth;
192 };
193
194 typedef int TextObjectAlignment;
195
196 //special character definistion
197 static const unsigned short TEXT_OBJ_CHARACTER = 0xFFFC;
198 static const unsigned short TEXT_LINE_FEED = 0x0A;
199 static const unsigned short TEXT_CARRIAGE_RETURN = 0x0D;
200 static const unsigned short TEXT_ABBREV_CHARACTER = 0x2026;
201 static const unsigned short TEXT_LINE_SEPARATOR = 0x2028;
202 static const unsigned short TEXT_PARAGRAPH_SEPARATOR = 0x2029;
203 static const unsigned short TEXT_TAB_CHARACTER = 0x09;
204
205 }}} // Tizen::Graphics::_Text
206
207 #endif // _FGRP_INTERNAL_TEXT_COMMON_H_
208