Changed indicator bg color.
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrlEditField.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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        FUiCtrlEditField.cpp
20  * @brief       This file contains implementation of EditField class
21  */
22
23 #include <FUiCtrlEditField.h>
24 #include <FBaseSysLog.h>
25 #include "FUiCtrl_EditFieldImpl.h"
26
27 using namespace Tizen::Base;
28 using namespace Tizen::Base::Utility;
29 using namespace Tizen::Graphics;
30 using namespace Tizen::Locales;
31 using namespace Tizen::Security;
32 using namespace Tizen::Ui;
33
34 namespace Tizen { namespace Ui { namespace Controls
35 {
36
37 EditField::EditField(void)
38 {
39 }
40
41 EditField::~EditField(void)
42 {
43 }
44
45 result
46 EditField::Construct(const Rectangle& rect, EditFieldStyle style, InputStyle inputStyle, bool showTitle,
47                                          int limitLength,
48                                          GroupStyle groupStyle)
49 {
50         result r = E_SUCCESS;
51
52         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
53         SysAssertf(pEditFieldImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
54
55         EditFieldTitleStyle titleStyle = EDIT_FIELD_TITLE_STYLE_NONE;
56         bool enableClear = false;
57
58         if (showTitle == true)
59         {
60                 titleStyle = EDIT_FIELD_TITLE_STYLE_TOP;
61         }
62
63         pEditFieldImpl = _EditFieldImpl::CreateEditFieldImplN(this, rect, style, titleStyle);
64         if (pEditFieldImpl == null)
65         {
66                 r = GetLastResult();
67                 return r;
68         }
69
70         _pControlImpl = pEditFieldImpl;
71
72         r = pEditFieldImpl->Initialize(style, inputStyle, titleStyle, enableClear, limitLength, groupStyle);
73         if (r != E_SUCCESS)
74         {
75                 goto CATCH;
76         }
77
78         SetBounds(rect.x, rect.y, rect.width, rect.height);
79
80         return r;
81
82 CATCH:
83         delete pEditFieldImpl;
84         _pControlImpl = null;
85
86         return r;
87 }
88
89 result
90 EditField::Construct(const FloatRectangle& rect, EditFieldStyle style, InputStyle inputStyle, bool showTitle,
91                                         int limitLength,
92                                         GroupStyle groupStyle)
93 {
94         result r = E_SUCCESS;
95
96         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
97         SysAssertf(pEditFieldImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
98
99         EditFieldTitleStyle titleStyle = EDIT_FIELD_TITLE_STYLE_NONE;
100         bool enableClear = false;
101
102         if (showTitle == true)
103         {
104                 titleStyle = EDIT_FIELD_TITLE_STYLE_TOP;
105         }
106
107         pEditFieldImpl = _EditFieldImpl::CreateEditFieldImplN(this, rect, style, titleStyle);
108         if (pEditFieldImpl == null)
109         {
110                 r = GetLastResult();
111                 return r;
112         }
113
114         _pControlImpl = pEditFieldImpl;
115
116         r = pEditFieldImpl->Initialize(style, inputStyle, titleStyle, enableClear, limitLength, groupStyle);
117         if (r != E_SUCCESS)
118         {
119                 goto CATCH;
120         }
121
122         SetBounds(rect.x, rect.y, rect.width, rect.height);
123
124         return r;
125
126 CATCH:
127         delete pEditFieldImpl;
128         _pControlImpl = null;
129
130         return r;
131 }
132
133 result
134 EditField::Construct(const Rectangle& rect, EditFieldStyle style, InputStyle inputStyle,
135                                          EditFieldTitleStyle titleStyle, bool enableClear, int limitLength,
136                                          GroupStyle groupStyle)
137 {
138         result r = E_SUCCESS;
139
140         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
141         SysAssertf(pEditFieldImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
142
143         pEditFieldImpl = _EditFieldImpl::CreateEditFieldImplN(this, rect, style, titleStyle);
144         if (pEditFieldImpl == null)
145         {
146                 r = GetLastResult();
147                 return r;
148         }
149
150         _pControlImpl = pEditFieldImpl;
151
152         r = pEditFieldImpl->Initialize(style, inputStyle, titleStyle, enableClear, limitLength, groupStyle);
153         if (r != E_SUCCESS)
154         {
155                 goto CATCH;
156         }
157
158         r = SetBounds(rect.x, rect.y, rect.width, rect.height);
159         if (r != E_SUCCESS)
160         {
161                 goto CATCH;
162         }
163
164         return r;
165
166 CATCH:
167         delete pEditFieldImpl;
168         _pControlImpl = null;
169
170         return r;
171 }
172
173 result
174 EditField::Construct(const FloatRectangle& rect, EditFieldStyle style, InputStyle inputStyle,
175                                          EditFieldTitleStyle titleStyle, bool enableClear, int limitLength,
176                                          GroupStyle groupStyle)
177 {
178         result r = E_SUCCESS;
179
180         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
181         SysAssertf(pEditFieldImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
182
183         pEditFieldImpl = _EditFieldImpl::CreateEditFieldImplN(this, rect, style, titleStyle);
184         if (pEditFieldImpl == null)
185         {
186                 r = GetLastResult();
187                 return r;
188         }
189
190         _pControlImpl = pEditFieldImpl;
191
192         r = pEditFieldImpl->Initialize(style, inputStyle, titleStyle, enableClear, limitLength, groupStyle);
193         if (r != E_SUCCESS)
194         {
195                 goto CATCH;
196         }
197
198         r = SetBounds(rect.x, rect.y, rect.width, rect.height);
199         if (r != E_SUCCESS)
200         {
201                 goto CATCH;
202         }
203
204         return r;
205
206 CATCH:
207         delete pEditFieldImpl;
208         _pControlImpl = null;
209
210         return r;
211 }
212
213 HorizontalAlignment
214 EditField::GetTextAlignment(void) const
215 {
216         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
217         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
218
219         return pEditFieldImpl->GetTextAlignment();
220 }
221
222 result
223 EditField::SetTextAlignment(HorizontalAlignment alignment)
224 {
225         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
226         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
227
228         return pEditFieldImpl->SetTextAlignment(alignment);
229 }
230
231 bool
232 EditField::IsViewModeEnabled(void) const
233 {
234         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
235         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
236
237         return pEditFieldImpl->IsViewModeEnabled();
238 }
239
240 result
241 EditField::SetViewModeEnabled(bool enable)
242 {
243         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
244         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
245
246         return pEditFieldImpl->SetViewModeEnabled(enable);
247 }
248
249 result
250 EditField::SetAutoLinkMask(unsigned long autoLinks)
251 {
252         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
253         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
254
255         return pEditFieldImpl->SetAutoLinkMask(autoLinks);
256 }
257
258 unsigned long
259 EditField::GetAutoLinkMask(void) const
260 {
261         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
262         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
263
264         return pEditFieldImpl->GetAutoLinkMask();
265 }
266
267 int
268 EditField::GetMargin(EditMarginType marginType) const
269 {
270         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
271         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
272
273         return pEditFieldImpl->GetMargin(marginType);
274 }
275
276 float
277 EditField::GetMarginF(EditMarginType marginType) const
278 {
279         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
280         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
281
282         return pEditFieldImpl->GetMarginF(marginType);
283 }
284
285 result
286 EditField::SetMargin(EditMarginType marginType, int margin)
287 {
288         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
289         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
290
291         return pEditFieldImpl->SetMargin(marginType, margin);
292 }
293
294 result
295 EditField::SetMargin(EditMarginType marginType, float margin)
296 {
297         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
298         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
299
300         return pEditFieldImpl->SetMargin(marginType, margin);
301 }
302
303 result
304 EditField::SetKeypadActionEnabled(bool enable)
305 {
306         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
307         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
308
309         return pEditFieldImpl->SetKeypadActionEnabled(enable);
310 }
311
312 bool
313 EditField::IsKeypadActionEnabled(void) const
314 {
315         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
316         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
317
318         return pEditFieldImpl->IsKeypadActionEnabled();
319 }
320
321 KeypadAction
322 EditField::GetKeypadAction(void) const
323 {
324         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
325         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
326
327         return pEditFieldImpl->GetKeypadAction();
328 }
329
330 result
331 EditField::SetKeypadAction(KeypadAction keypadAction)
332 {
333         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
334         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
335
336         return pEditFieldImpl->SetKeypadAction(keypadAction);
337 }
338
339 result
340 EditField::SetOverlayKeypadCommandButtonVisible(bool visible)
341 {
342         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
343         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
344
345         return pEditFieldImpl->SetOverlayKeypadCommandButtonVisible(visible);
346 }
347
348 bool
349 EditField::IsOverlayCommandButtonVisible(void) const
350 {
351         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
352         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
353
354         return pEditFieldImpl->IsOverlayCommandButtonVisible();
355 }
356
357 result
358 EditField::HideKeypad(void)
359 {
360         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
361         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
362
363         return pEditFieldImpl->HideKeypad();
364 }
365
366 EllipsisPosition
367 EditField::GetEllipsisPosition(void) const
368 {
369         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
370         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
371
372         return pEditFieldImpl->GetEllipsisPosition();
373 }
374
375 result
376 EditField::SetEllipsisPosition(EllipsisPosition position)
377 {
378         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
379         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
380
381         return pEditFieldImpl->SetEllipsisPosition(position);
382 }
383
384 int
385 EditField::GetTextSize(void) const
386 {
387         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
388         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
389
390         return pEditFieldImpl->GetTextSize();
391 }
392
393 float
394 EditField::GetTextSizeF(void) const
395 {
396         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
397         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
398
399         return pEditFieldImpl->GetTextSizeF();
400 }
401
402 result
403 EditField::SetTextSize(int size)
404 {
405         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
406         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
407
408         return pEditFieldImpl->SetTextSize(size);
409 }
410
411 result
412 EditField::SetTextSize(float size)
413 {
414         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
415         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
416
417         return pEditFieldImpl->SetTextSize(size);
418 }
419
420 Color
421 EditField::GetColor(EditStatus status) const
422 {
423         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
424         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
425
426         return pEditFieldImpl->GetColor(status);
427 }
428
429 Color
430 EditField::GetTextColor(EditTextColor type) const
431 {
432         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
433         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
434
435         return pEditFieldImpl->GetTextColor(type);
436 }
437
438 result
439 EditField::SetBackgroundBitmap(EditStatus status, const Bitmap& bitmap)
440 {
441         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
442         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
443
444         return pEditFieldImpl->SetBackgroundBitmap(status, bitmap);
445 }
446
447 result
448 EditField::SetColor(EditStatus status, const Color& color)
449 {
450         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
451         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
452
453         return pEditFieldImpl->SetColor(status, color);
454 }
455
456 result
457 EditField::SetTextColor(EditTextColor type, const Color& color)
458 {
459         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
460         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
461
462         return pEditFieldImpl->SetTextColor(type, color);
463 }
464
465 String
466 EditField::GetText(int start, int end) const
467 {
468         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
469         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
470
471         return pEditFieldImpl->GetText(start, end);
472 }
473
474 void
475 EditField::AddUiLinkEventListener(IUiLinkEventListener& listener)
476 {
477         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
478         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
479
480         result r = pEditFieldImpl->AddUiLinkEventListener(listener);
481         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
482 }
483
484 void
485 EditField::RemoveUiLinkEventListener(IUiLinkEventListener& listener)
486 {
487         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
488         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
489
490         result r = pEditFieldImpl->RemoveUiLinkEventListener(listener);
491         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
492 }
493
494 void
495 EditField::AddKeypadEventListener(IKeypadEventListener& listener)
496 {
497         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
498         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
499
500         result r = pEditFieldImpl->AddKeypadEventListener(listener);
501         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
502 }
503
504 void
505 EditField::RemoveKeypadEventListener(IKeypadEventListener& listener)
506 {
507         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
508         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
509
510         result r = pEditFieldImpl->RemoveKeypadEventListener(listener);
511         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
512 }
513
514 void
515 EditField::AddTextBlockEventListener(ITextBlockEventListener& listener)
516 {
517         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
518         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
519
520         result r = pEditFieldImpl->AddTextBlockEventListener(listener);
521         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
522 }
523
524 void
525 EditField::RemoveTextBlockEventListener(ITextBlockEventListener& listener)
526 {
527         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
528         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
529
530         result r = pEditFieldImpl->RemoveTextBlockEventListener(listener);
531         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
532 }
533
534 void
535 EditField::AddTextEventListener(ITextEventListener& listener)
536 {
537         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
538         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
539
540         pEditFieldImpl->AddTextEventListener(listener);
541 }
542
543 void
544 EditField::RemoveTextEventListener(ITextEventListener& listener)
545 {
546         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
547         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
548
549         pEditFieldImpl->RemoveTextEventListener(listener);
550 }
551
552 void
553 EditField::AddScrollPanelEventListener(IScrollPanelEventListener& listener)
554 {
555         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
556         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
557
558         result r = pEditFieldImpl->AddScrollPanelEventListener(listener);
559         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
560 }
561
562 void
563 EditField::RemoveScrollPanelEventListener(IScrollPanelEventListener& listener)
564 {
565         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
566         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
567
568         result r = pEditFieldImpl->RemoveScrollPanelEventListener(listener);
569         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
570 }
571
572 void
573 EditField::AddActionEventListener(IActionEventListener& listener)
574 {
575         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
576         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
577
578         result r = pEditFieldImpl->AddActionEventListener(listener);
579         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
580 }
581
582 void
583 EditField::RemoveActionEventListener(IActionEventListener& listener)
584 {
585         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
586         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
587
588         result r = pEditFieldImpl->RemoveActionEventListener(listener);
589         SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
590 }
591
592 void
593 EditField::AddLanguageEventListener(ILanguageEventListener& listener)
594 {
595         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
596
597         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
598
599         pEditFieldImpl->AddLanguageEventListener(listener);
600 }
601
602 void
603 EditField::RemoveLanguageEventListener(ILanguageEventListener& listener)
604 {
605         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
606         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
607
608         pEditFieldImpl->RemoveLanguageEventListener(listener);
609 }
610
611 int
612 EditField::GetRemainingLength(void) const
613 {
614         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
615         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
616
617         return pEditFieldImpl->GetRemainingLength();
618 }
619
620 void
621 EditField::SetLowerCaseModeEnabled(bool enable)
622 {
623         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
624         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
625
626         pEditFieldImpl->SetLowerCaseModeEnabled(enable);
627 }
628
629 bool
630 EditField::IsLowerCaseModeEnabled(void) const
631 {
632         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
633         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
634
635         return pEditFieldImpl->IsLowerCaseModeEnabled();
636 }
637
638 result
639 EditField::SetInputModeCategory(unsigned long categories, bool enable)
640 {
641         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
642         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
643
644         return pEditFieldImpl->SetInputModeCategory(categories, enable);
645 }
646
647 result
648 EditField::SetCurrentInputModeCategory(EditInputModeCategory inputModeCategory)
649 {
650         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
651         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
652
653         return pEditFieldImpl->SetCurrentInputModeCategory(inputModeCategory);
654 }
655
656 unsigned long
657 EditField::GetInputModeCategory(void) const
658 {
659         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
660         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
661
662         return pEditFieldImpl->GetInputModeCategory();
663 }
664
665 EditInputModeCategory
666 EditField::GetCurrentInputModeCategory(void) const
667 {
668         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
669         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
670
671         return pEditFieldImpl->GetCurrentInputModeCategory();
672 }
673
674 result
675 EditField::SetCursorPosition(int position)
676 {
677         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
678         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
679
680         return pEditFieldImpl->SetCursorPosition(position);
681 }
682
683 int
684 EditField::GetCursorPosition(void) const
685 {
686         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
687         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
688
689         return pEditFieldImpl->GetCursorPosition();
690 }
691
692 String
693 EditField::GetText(void) const
694 {
695         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
696         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
697
698         return pEditFieldImpl->GetText();
699 }
700
701 int
702 EditField::GetTextLength(void) const
703 {
704         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
705         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
706
707         return pEditFieldImpl->GetTextLength();
708 }
709
710 result
711 EditField::SetText(const String& text)
712 {
713         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
714         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
715
716         return pEditFieldImpl->SetText(text);
717 }
718
719 result
720 EditField::InsertTextAtCursorPosition(const String& text)
721 {
722         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
723         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
724
725         return pEditFieldImpl->InsertTextAtCursorPosition(text);
726 }
727
728 result
729 EditField::AppendText(const String& text)
730 {
731         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
732         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
733
734         return pEditFieldImpl->AppendText(text);
735 }
736
737 result
738 EditField::AppendCharacter(const Character& character)
739 {
740         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
741         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
742
743         return pEditFieldImpl->AppendCharacter(character);
744 }
745
746 result
747 EditField::Clear(void)
748 {
749         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
750         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
751
752         return pEditFieldImpl->Clear();
753 }
754
755 result
756 EditField::DeleteCharacterAtCursorPosition(void)
757 {
758         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
759         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
760
761         return pEditFieldImpl->DeleteCharacterAtCursorPosition();
762 }
763
764 void
765 EditField::GetCurrentTextRange(int& start, int& end) const
766 {
767         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
768         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
769
770         return pEditFieldImpl->GetCurrentTextRange(start, end);
771 }
772
773 void
774 EditField::SetGuideText(const String& guideText)
775 {
776         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
777         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
778
779         return pEditFieldImpl->SetGuideText(guideText);
780 }
781
782 String
783 EditField::GetGuideText(void) const
784 {
785         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
786         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
787
788         return pEditFieldImpl->GetGuideText();
789 }
790
791 Color
792 EditField::GetGuideTextColor(void) const
793 {
794         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
795         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
796
797         return pEditFieldImpl->GetGuideTextColor();
798 }
799
800 result
801 EditField::SetGuideTextColor(const Color& color)
802 {
803         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
804         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
805
806         return pEditFieldImpl->SetGuideTextColor(color);
807 }
808
809 void
810 EditField::SetKeypadEnabled(bool enable)
811 {
812         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
813         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
814
815         pEditFieldImpl->SetKeypadEnabled(enable);
816
817         return;
818 }
819
820 bool
821 EditField::IsKeypadEnabled(void) const
822 {
823         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
824         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
825
826         return pEditFieldImpl->IsKeypadEnabled();
827 }
828
829 bool
830 EditField::IsTextPredictionEnabled(void) const
831 {
832         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
833         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
834
835         return pEditFieldImpl->IsTextPredictionEnabled();
836 }
837
838 result
839 EditField::SetTextPredictionEnabled(bool enable)
840 {
841         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
842         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
843
844         return pEditFieldImpl->SetTextPredictionEnabled(enable);
845 }
846
847 result
848 EditField::ShowKeypad(void)
849 {
850         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
851         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
852
853         return pEditFieldImpl->ShowKeypad();
854 }
855
856 void
857 EditField::GetBlockRange(int& start, int& end) const
858 {
859         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
860         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
861
862         pEditFieldImpl->GetBlockRange(start, end);
863 }
864
865 result
866 EditField::BeginBlock(void)
867 {
868         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
869         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
870
871         return pEditFieldImpl->BeginBlock();
872 }
873
874 result
875 EditField::ReleaseBlock(void)
876 {
877         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
878         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
879
880         return pEditFieldImpl->ReleaseBlock();
881 }
882
883 bool
884 EditField::IsBlocked(void) const
885 {
886         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
887         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
888
889         return pEditFieldImpl->IsBlocked();
890 }
891
892 result
893 EditField::Copy(void)
894 {
895         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
896         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
897
898         return pEditFieldImpl->Copy();
899 }
900
901 result
902 EditField::Cut(void)
903 {
904         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
905         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
906
907         return pEditFieldImpl->Cut();
908 }
909
910 result
911 EditField::Paste(void)
912 {
913         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
914         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
915
916         return pEditFieldImpl->Paste();
917 }
918
919 result
920 EditField::Remove(void)
921 {
922         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
923         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
924
925         return pEditFieldImpl->Remove();
926 }
927
928 bool
929 EditField::IsClipped(void) const
930 {
931         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
932         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
933
934         return pEditFieldImpl->IsClipped();
935 }
936
937 result
938 EditField::SetTitleText(const String& title)
939 {
940         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
941         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
942
943         return pEditFieldImpl->SetTitleText(title);
944 }
945
946 String
947 EditField::GetTitleText(void) const
948 {
949         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
950         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
951
952         return pEditFieldImpl->GetTitleText();
953 }
954
955 result
956 EditField::SetTitleTextColor(EditStatus status, const Color& color)
957 {
958         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
959         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
960
961         return pEditFieldImpl->SetTitleTextColor(status, color);
962 }
963
964 Color
965 EditField::GetTitleTextColor(EditStatus status) const
966 {
967         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
968         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
969
970         return pEditFieldImpl->GetTitleTextColor(status);
971 }
972
973 result
974 EditField::SetOverlayKeypadCommandButton(CommandButtonPosition position, const String& text, int actionId)
975 {
976         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
977         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
978
979         return pEditFieldImpl->SetOverlayKeypadCommandButton(position, text, actionId);
980 }
981
982 String
983 EditField::GetOverlayKeypadCommandButtonText(CommandButtonPosition position) const
984 {
985         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
986         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
987
988         return pEditFieldImpl->GetOverlayKeypadCommandButtonText(position);
989 }
990
991 int
992 EditField::GetOverlayKeypadCommandButtonActionId(CommandButtonPosition position) const
993 {
994         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
995         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
996
997         return pEditFieldImpl->GetOverlayKeypadCommandButtonActionId(position);
998 }
999
1000 result
1001 EditField::SetCurrentLanguage(LanguageCode languageCode)
1002 {
1003         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1004         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1005
1006         return pEditFieldImpl->SetCurrentLanguage(languageCode);
1007 }
1008
1009 result
1010 EditField::GetCurrentLanguage(LanguageCode& language) const
1011 {
1012         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1013         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1014
1015         return pEditFieldImpl->GetCurrentLanguage(language);
1016 }
1017
1018 void
1019 EditField::SetEditTextFilter(IEditTextFilter* pFilter)
1020 {
1021         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1022         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1023
1024         pEditFieldImpl->SetEditTextFilter(pFilter);
1025
1026         return;
1027 }
1028
1029 void
1030 EditField::SendOpaqueCommand (const String& command)
1031 {
1032         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1033         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1034
1035         pEditFieldImpl->SendOpaqueCommand(command);
1036
1037         return;
1038 }
1039
1040 result
1041 EditField::SetPasswordVisible(bool visible)
1042 {
1043         _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1044         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1045
1046         return pEditFieldImpl->SetPasswordVisible(visible);
1047 }
1048
1049 bool
1050 EditField::IsPasswordVisible(void) const
1051 {
1052         const _EditFieldImpl* pEditFieldImpl = _EditFieldImpl::GetInstance(*this);
1053         SysAssertf(pEditFieldImpl != null, "Not yet constructed. Construct() should be called before use.");
1054
1055         return pEditFieldImpl->IsPasswordVisible();
1056 }
1057
1058 }}} // Tizen::Ui::Controls