[dali_2.3.38] Merge branch 'devel/master'
[platform/core/uifw/dali-csharp-binder.git] / dali-csharp-binder / dali-toolkit / text-geometry-wrap.cpp
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // EXTERNAL INCLUDES
19 #include <dali-toolkit/public-api/controls/text-controls/text-label.h>
20 #include <dali-toolkit/public-api/controls/text-controls/text-editor.h>
21 #include <dali-toolkit/public-api/controls/text-controls/text-field.h>
22 #include <dali-toolkit/devel-api/controls/text-controls/text-label-devel.h>
23 #include <dali-toolkit/devel-api/controls/text-controls/text-editor-devel.h>
24 #include <dali-toolkit/devel-api/controls/text-controls/text-field-devel.h>
25 #include <dali-toolkit/devel-api/text/text-geometry-devel.h>
26
27 // INTERNAL INCLUDES
28 #include <dali-csharp-binder/common/common.h>
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextLabel_GetLineBoundingRectangle(void * pTextLabel, uint32_t lineIndex)
35 {
36   Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0;
37   void* resultRect;
38
39   textLabel = (Dali::Toolkit::TextLabel *)pTextLabel;
40   {
41     try {
42       resultRect = new Dali::Rect<float>
43       ((const Dali::Rect<float> &)(Dali::Toolkit::Text::TextGeometry::GetLineBoundingRectangle( *textLabel, lineIndex)));
44     }
45     CALL_CATCH_EXCEPTION(0);
46   }
47
48   return resultRect;
49 }
50
51 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextField_GetLineBoundingRectangle(void * pTextField, uint32_t lineIndex)
52 {
53   Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *) 0;
54   void* resultRect;
55
56   textField = (Dali::Toolkit::TextField *)pTextField;
57   {
58     try {
59       resultRect = new Dali::Rect<float>
60       ((const Dali::Rect<float> &)(Dali::Toolkit::Text::TextGeometry::GetLineBoundingRectangle( *textField, lineIndex)));
61     }
62     CALL_CATCH_EXCEPTION(0);
63   }
64
65   return resultRect;
66 }
67
68 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextEditor_GetLineBoundingRectangle(void * pTextEditor, uint32_t lineIndex)
69 {
70   Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *) 0;
71   void* resultRect;
72
73   textEditor = (Dali::Toolkit::TextEditor *)pTextEditor;
74   {
75     try {
76       resultRect = new Dali::Rect<float>
77       ((const Dali::Rect<float> &)(Dali::Toolkit::Text::TextGeometry::GetLineBoundingRectangle( *textEditor, lineIndex)));
78     }
79     CALL_CATCH_EXCEPTION(0);
80   }
81
82   return resultRect;
83 }
84
85 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextLabel_GetCharacterBoundingRectangle(void * pTextLabel, uint32_t charIndex)
86 {
87   Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0;
88   void* resultRect;
89
90   textLabel = (Dali::Toolkit::TextLabel *)pTextLabel;
91   {
92     try {
93       resultRect = new Dali::Rect<>
94       ((const Dali::Rect<> &)(Dali::Toolkit::Text::TextGeometry::GetCharacterBoundingRectangle( *textLabel, charIndex)));
95     }
96     CALL_CATCH_EXCEPTION(0);
97   }
98
99   return resultRect;
100 }
101
102 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextField_GetCharacterBoundingRectangle(void * pTextField, uint32_t charIndex)
103 {
104   Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *) 0;
105   void* resultRect;
106
107   textField = (Dali::Toolkit::TextField *)pTextField;
108   {
109     try {
110       resultRect = new Dali::Rect<>
111       ((const Dali::Rect<> &)(Dali::Toolkit::Text::TextGeometry::GetCharacterBoundingRectangle( *textField, charIndex)));
112     }
113     CALL_CATCH_EXCEPTION(0);
114   }
115
116   return resultRect;
117 }
118
119 SWIGEXPORT void * SWIGSTDCALL CSharp_TextGeometry_TextEditor_GetCharacterBoundingRectangle(void * pTextEditor, uint32_t charIndex)
120 {
121   Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *) 0;
122   void* resultRect;
123
124   textEditor = (Dali::Toolkit::TextEditor *)pTextEditor;
125   {
126     try {
127       resultRect = new Dali::Rect<>
128       ((const Dali::Rect<> &)(Dali::Toolkit::Text::TextGeometry::GetCharacterBoundingRectangle( *textEditor, charIndex)));
129     }
130     CALL_CATCH_EXCEPTION(0);
131   }
132
133   return resultRect;
134 }
135
136 SWIGEXPORT int SWIGSTDCALL CSharp_TextGeometry_TextLabel_GetCharacterIndexAtPosition(void * pTextLabel, float visualX, float visualY)
137 {
138   Dali::Toolkit::TextLabel *textLabel = (Dali::Toolkit::TextLabel *) 0;
139   int charIndex;
140
141   textLabel = (Dali::Toolkit::TextLabel *)pTextLabel;
142   {
143     try {
144       charIndex = (int)(Dali::Toolkit::Text::TextGeometry::GetCharacterIndexAtPosition( *textLabel, visualX, visualY));
145     }
146     CALL_CATCH_EXCEPTION(0);
147   }
148
149   return charIndex;
150 }
151
152 SWIGEXPORT int SWIGSTDCALL CSharp_TextGeometry_TextField_GetCharacterIndexAtPosition(void * pTextField, float visualX, float visualY)
153 {
154   Dali::Toolkit::TextField *textField = (Dali::Toolkit::TextField *) 0;
155   int charIndex;
156
157   textField = (Dali::Toolkit::TextField *)pTextField;
158   {
159     try {
160       charIndex = (int)(Dali::Toolkit::Text::TextGeometry::GetCharacterIndexAtPosition( *textField, visualX, visualY));
161     }
162     CALL_CATCH_EXCEPTION(0);
163   }
164
165   return charIndex;
166 }
167
168 SWIGEXPORT int SWIGSTDCALL CSharp_TextGeometry_TextEditor_GetCharacterIndexAtPosition(void * pTextEditor, float visualX, float visualY)
169 {
170   Dali::Toolkit::TextEditor *textEditor = (Dali::Toolkit::TextEditor *) 0;
171   int charIndex;
172
173   textEditor = (Dali::Toolkit::TextEditor *)pTextEditor;
174   {
175     try {
176       charIndex = (int)(Dali::Toolkit::Text::TextGeometry::GetCharacterIndexAtPosition( *textEditor, visualX, visualY));
177     }
178     CALL_CATCH_EXCEPTION(0);
179   }
180
181   return charIndex;
182 }
183
184 #ifdef __cplusplus
185 }
186 #endif
187