From e2cd1fbb1bf44f20c4ea6d7538a139ccc129c8b9 Mon Sep 17 00:00:00 2001 From: Taejun Date: Mon, 10 Jun 2013 18:52:14 +0900 Subject: [PATCH] Fix P130605-2383 Change-Id: I4c217787e7d6946d4ea2f2671d7dcfd4054738e8 --- src/ui/controls/FUiCtrl_Edit.cpp | 11 +- src/ui/controls/FUiCtrl_EditPresenter.cpp | 429 ++++++++++++++++++------------ src/ui/inc/FUiCtrl_EditPresenter.h | 3 +- 3 files changed, 274 insertions(+), 169 deletions(-) diff --git a/src/ui/controls/FUiCtrl_Edit.cpp b/src/ui/controls/FUiCtrl_Edit.cpp index 568b69b..c989fcd 100644 --- a/src/ui/controls/FUiCtrl_Edit.cpp +++ b/src/ui/controls/FUiCtrl_Edit.cpp @@ -506,7 +506,16 @@ _Edit::Initialize(int editStyle, InputStyle inputStyle, int limitLength, GroupSt { __pTextAccessibilityElement = new _AccessibilityElement(true); __pTextAccessibilityElement->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width, GetBoundsF().height)); - __pTextAccessibilityElement->SetLabel(GetTitleText() + GetGuideText() + GetText()); + + if ((GetEditStyle() & EDIT_STYLE_TITLE_TOP) || (GetEditStyle() & EDIT_STYLE_TITLE_LEFT)) + { + __pTextAccessibilityElement->SetLabel(GetTitleText() + GetGuideText() + GetText()); + } + else + { + __pTextAccessibilityElement->SetLabel(GetGuideText() + GetText()); + } + __pTextAccessibilityElement->SetTrait(L"Edit Field"); __pTextAccessibilityElement->SetName(L"EditText"); pEditAccessibilityContainer->AddElement(*__pTextAccessibilityElement); diff --git a/src/ui/controls/FUiCtrl_EditPresenter.cpp b/src/ui/controls/FUiCtrl_EditPresenter.cpp index 38267e3..29d1894 100755 --- a/src/ui/controls/FUiCtrl_EditPresenter.cpp +++ b/src/ui/controls/FUiCtrl_EditPresenter.cpp @@ -247,11 +247,11 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, CheckUSBKeyboardStatus(); - SysLog(NID_UI_CTRL, "[EDIT] INPUT_PANEL_SHOW_STATE_SHOW[Target:%x][Bound:%d][Usb mode:%d]", this, __isInputConnectionBound, __isUSBKeyboardConnected); + SysLog(NID_UI_CTRL, "INPUT_PANEL_SHOW_STATE_SHOW[Target:%x][Bound:%d][Usb mode:%d]", this, __isInputConnectionBound, __isUSBKeyboardConnected); if (__isInputConnectionBound) { - if (__isKeypadCommandButtonVisible) + if (__isKeypadCommandButtonVisible && __pCommandButton) { SetFooterVisible(false); } @@ -281,7 +281,7 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, } } - if ((__isUSBKeyboardConnected && __isKeypadCommandButtonVisible)) + if (__isUSBKeyboardConnected && (__isKeypadCommandButtonVisible && __pCommandButton)) { __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_BOUNDS_CHANGED); } @@ -303,7 +303,7 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, __isKeypadHiding = false; CheckUSBKeyboardStatus(); - SysLog(NID_UI_CTRL, "[EDIT] INPUT_PANEL_SHOW_STATE_HIDE[Target:%x][Bound:%d][Usb mode:%d]", this, __isInputConnectionBound, __isUSBKeyboardConnected); + SysLog(NID_UI_CTRL, "INPUT_PANEL_SHOW_STATE_HIDE[Target:%x][Bound:%d][Usb mode:%d]", this, __isInputConnectionBound, __isUSBKeyboardConnected); __isKeypadExist = false; @@ -325,7 +325,7 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, if (__isClipboardExist) { - AdjustParentPanelHeight(false, true); + AdjustParentPanelHeight(false); } else { @@ -361,7 +361,7 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, if (__isClipboardExist) { - AdjustParentPanelHeight(false, true); + AdjustParentPanelHeight(false); } else { @@ -393,7 +393,7 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); } @@ -408,11 +408,11 @@ _EditPresenter::OnInputConnectionPanelShowStateChanged(InputConnection& source, } } - if (__isKeypadCommandButtonVisible && __isInputConnectionBound) + if ((__isKeypadCommandButtonVisible && __pCommandButton) && __isInputConnectionBound) { __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_BOUNDS_CHANGED); } - else if((__isUSBKeyboardConnected && __isKeypadCommandButtonVisible && !__isInputConnectionBound) || + else if((__isUSBKeyboardConnected && (__isKeypadCommandButtonVisible &&__pCommandButton) && !__isInputConnectionBound) || (__isUSBKeyboardConnected && __isClipboardExist)) { //do nothing @@ -450,21 +450,32 @@ _EditPresenter::OnInputConnectionPanelBoundsChanged(InputConnection& source, con if ((__isUSBKeyboardConnected == false) && __isKeypadExist == false) { + SysLog(NID_UI_CTRL, "OnInputConnectionPanelBoundsChanged skipped - __isUSBKeyboardConnected:(%), __isKeypadExist:(%d)", __isUSBKeyboardConnected, __isKeypadExist); return; } if (CheckKeypadExist(__pEdit->GetOrientation()) == false)//double check keypad Exist { + SysLog(NID_UI_CTRL, "OnInputConnectionPanelBoundsChanged skipped - Keypad doesn't exist!!"); return; } + else + { + if (IsKeypadRotating(__pEdit->GetOrientation())) + { + SysLog(NID_UI_CTRL, "OnInputConnectionPanelBoundsChanged skipped - Keypad is rotating!!"); + AdjustParentPanelHeight(true); + return; + } + } - SysLog(NID_UI_CTRL, "[EDIT] OnInputConnectionPanelBoundsChanged"); + SysLog(NID_UI_CTRL, "OnInputConnectionPanelBoundsChanged"); ChangeLayoutInternal(__pEdit->GetOrientation()); - AdjustParentPanelHeight(false, true); + AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); if (__pParentForm) { - ScrollPanelToCursorPosition(); __pParentForm->Draw(); } @@ -862,18 +873,18 @@ _EditPresenter::OnClipboardPopupOpened(Tizen::Graphics::Dimension& clipboardPopu __clipboardHeight = floatClipboardPopupSize.height; - SysLog(NID_UI_CTRL, "[EDIT] clipboard height = %f, [KeypadExist:%d]keypad height = %f", floatClipboardPopupSize.height, __isKeypadExist, absKeypadBounds.height); + SysLog(NID_UI_CTRL, "clipboard height = %f, [KeypadExist:%d]keypad height = %f", floatClipboardPopupSize.height, __isKeypadExist, absKeypadBounds.height); if (__isKeypadExist) //resize as difference between clipboard height vs keypad height { if (floatClipboardPopupSize.height > absKeypadBounds.height) { ChangeLayoutInternal(__pEdit->GetOrientation()); - AdjustParentPanelHeight(false, true); + AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); if (__pParentForm) { - ScrollPanelToCursorPosition(); __pParentForm->SetClipboardShowState(true); __pParentForm->Draw(); } @@ -896,10 +907,10 @@ _EditPresenter::OnClipboardPopupOpened(Tizen::Graphics::Dimension& clipboardPopu ChangeLayoutInternal(__pEdit->GetOrientation()); AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); if (__pParentForm) { - ScrollPanelToCursorPosition(); __pParentForm->SetClipboardShowState(true); __pParentForm->Draw(); } @@ -910,10 +921,10 @@ _EditPresenter::OnClipboardPopupOpened(Tizen::Graphics::Dimension& clipboardPopu { ChangeLayoutInternal(__pEdit->GetOrientation()); AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); if (__pParentForm) { - ScrollPanelToCursorPosition(); __pParentForm->SetClipboardShowState(true); __pParentForm->Draw(); } @@ -939,7 +950,7 @@ _EditPresenter::OnClipboardPopupBoundsChanged(Tizen::Graphics::Dimension& clipbo __clipboardHeight = floatClipboardPopupSize.height; - SysLog(NID_UI_CTRL, "[EDIT] clipboard height = %f, [KeypadExist:%d]keypad height = %f", floatClipboardPopupSize.height, __isKeypadExist, absKeypadBounds.height); + SysLog(NID_UI_CTRL, "clipboard height = %f, [KeypadExist:%d]keypad height = %f", floatClipboardPopupSize.height, __isKeypadExist, absKeypadBounds.height); if (__isKeypadExist) { @@ -947,10 +958,11 @@ _EditPresenter::OnClipboardPopupBoundsChanged(Tizen::Graphics::Dimension& clipbo { ChangeLayoutInternal(__pEdit->GetOrientation()); AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); + if (__pParentForm) { __pParentForm->Draw(); - ScrollPanelToCursorPosition(); } __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_BOUNDS_CHANGED); @@ -959,10 +971,11 @@ _EditPresenter::OnClipboardPopupBoundsChanged(Tizen::Graphics::Dimension& clipbo { ChangeLayoutInternal(__pEdit->GetOrientation()); AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); + if (__pParentForm) { __pParentForm->Draw(); - ScrollPanelToCursorPosition(); } __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_BOUNDS_CHANGED); @@ -972,10 +985,11 @@ _EditPresenter::OnClipboardPopupBoundsChanged(Tizen::Graphics::Dimension& clipbo { ChangeLayoutInternal(__pEdit->GetOrientation()); AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); + if (__pParentForm) { __pParentForm->Draw(); - ScrollPanelToCursorPosition(); } __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_BOUNDS_CHANGED); @@ -1013,7 +1027,7 @@ _EditPresenter::OnClipboardPopupClosed(void) __clipboardHeight = 0.0f; - SysLog(NID_UI_CTRL, "[EDIT] clipboard closed! [KeypadExist:%d]keypad height = %f", __isKeypadExist, absKeypadBounds.height); + SysLog(NID_UI_CTRL, "clipboard closed! [KeypadExist:%d]keypad height = %f", __isKeypadExist, absKeypadBounds.height); if (__isInputConnectionBound) { @@ -1022,7 +1036,7 @@ _EditPresenter::OnClipboardPopupClosed(void) if (__isKeypadExist) { - AdjustParentPanelHeight(false, true); + AdjustParentPanelHeight(false); if (__pParentForm) { @@ -1042,7 +1056,7 @@ _EditPresenter::OnClipboardPopupClosed(void) AdjustParentPanelHeight(true); if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); __pParentForm->SetClipboardShowState(false); __pParentForm->Draw(); @@ -1105,7 +1119,7 @@ _EditPresenter::Dispose(void) if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); if (__clipboardConnected) @@ -1375,7 +1389,7 @@ _EditPresenter::Initialize(const _Control& control) } __pTextString = new (std::nothrow) String; - SysTryCatch(NID_UI_CTRL, __pTextString, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to allocate text buffer."); + SysTryCatch(NID_UI_CTRL, __pTextString, , r = E_OUT_OF_MEMORY, "Unable to allocate text buffer."); __limitLength = 0; if (__pFont == null) @@ -2440,7 +2454,7 @@ _EditPresenter::ConvertLinkType(void) EditCutlinkColor cutlinkColor; Font* pFont = _FontImpl::CloneN(const_cast (*__pFont)); - SysTryReturnResult(NID_UI_CTRL, pFont, GetLastResult(), "[EDIT] Unable to get font."); + SysTryReturnResult(NID_UI_CTRL, pFont, GetLastResult(), "Unable to get font."); _FontImpl* fontImpl = _FontImpl::GetInstance(*pFont); SysTryReturnResult(NID_UI_CTRL, fontImpl, GetLastResult(), "[E_SYSTEM] fontImpl is null."); @@ -2454,7 +2468,7 @@ _EditPresenter::ConvertLinkType(void) if (pCutLinkObject == null) { - SysLog(NID_UI_CTRL, "[EDIT] Unable to allocate cutlink object."); + SysLog(NID_UI_CTRL, "Unable to allocate cutlink object."); } else { @@ -2470,7 +2484,7 @@ _EditPresenter::ConvertLinkType(void) if (pSimpleText == null) { - SysLog(NID_UI_CTRL, "[EDIT] Unable to allocate text object."); + SysLog(NID_UI_CTRL, "Unable to allocate text object."); } else @@ -2504,7 +2518,7 @@ int _EditPresenter::GetLinkElementOffsetInTextBuffer(int elementIndex) const { const int textElementCount = __pTextObject->GetElementCount(); - SysTryReturn(NID_UI_CTRL, elementIndex >= 0 && elementIndex <= textElementCount, -1, E_OUT_OF_RANGE, "[EDIT] The Invalid argument is given."); + SysTryReturn(NID_UI_CTRL, elementIndex >= 0 && elementIndex <= textElementCount, -1, E_OUT_OF_RANGE, "The Invalid argument is given."); _Text::TextElement* pTextElement = null; int elementOffset = -1; @@ -3204,7 +3218,7 @@ _EditPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchI if (IsInternalFocused() && !tokenEditting) { __pCopyPasteManager = new (std::nothrow) _EditCopyPasteManager(*__pEdit); - SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "[EDIT] Unable to create _EditCopyPasteManager instance."); + SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "Unable to create _EditCopyPasteManager instance."); __pCopyPasteManager->AddCopyPasteEventListener(*this); __pCopyPasteManager->Show(); __isCopyPasteManagerExist = true; @@ -3567,7 +3581,7 @@ _EditPresenter::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo) UpdateComponentInformation(); SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r)); __pCopyPasteManager = new (std::nothrow) _EditCopyPasteManager(*__pEdit); - SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, true, E_OUT_OF_MEMORY, "[EDIT] Unable to create _EditCopyPasteManager instance."); + SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, true, E_OUT_OF_MEMORY, "Unable to create _EditCopyPasteManager instance."); __pCopyPasteManager->AddCopyPasteEventListener(*this); __pCopyPasteManager->CreateCopyPastePopup(); __pCopyPasteManager->Show(); @@ -4167,7 +4181,7 @@ _EditPresenter::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo) else if (__textBlockMoving) { __pCopyPasteManager = new (std::nothrow) _EditCopyPasteManager(*__pEdit); - SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, true, E_OUT_OF_MEMORY, "[EDIT] Unable to create _EditCopyPasteManager instance."); + SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, true, E_OUT_OF_MEMORY, "Unable to create _EditCopyPasteManager instance."); __pCopyPasteManager->AddCopyPasteEventListener(*this); __pCopyPasteManager->CreateCopyPastePopup(); __pCopyPasteManager->Show(); @@ -4307,7 +4321,7 @@ _EditPresenter::OnClipboardPopupClosed(const ClipboardItem* pClipboardItem) DeleteText(start, end); ReleaseTextBlock(); pSubString = new String(__limitLength - currentLength + (end - start)); - SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to allocate text buffer."); + SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "Unable to allocate text buffer."); filteredString.SubString(0, __limitLength - currentLength + (end - start), *pSubString); r = InsertTextAt(__cursorPos, pSubString->GetPointer()); @@ -4331,7 +4345,7 @@ _EditPresenter::OnClipboardPopupClosed(const ClipboardItem* pClipboardItem) } pSubString = new String(__limitLength - currentLength); - SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to allocate text buffer."); + SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "Unable to allocate text buffer."); filteredString.SubString(0, __limitLength - currentLength, *pSubString); r = InsertTextAt(__cursorPos, pSubString->GetPointer()); @@ -4361,7 +4375,7 @@ CATCH: bool _EditPresenter::OnLongPressGestureDetected(void) { - SysLog(NID_UI_CTRL, "[EDIT] OnLongPressGestureDetected"); + SysLog(NID_UI_CTRL, "OnLongPressGestureDetected"); if (__isClearIconPressed) { @@ -4408,7 +4422,7 @@ _EditPresenter::OnLongPressGestureDetected(void) GetCursorBounds(true, cursorBounds); __pCopyPasteManager = new (std::nothrow) _EditCopyPasteManager(*__pEdit); - SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "[EDIT] Unable to create _EditCopyPasteManager instance."); + SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "Unable to create _EditCopyPasteManager instance."); __pCopyPasteManager->AddCopyPasteEventListener(*this); __pCopyPasteManager->Show(); __isCopyPasteManagerExist = true; @@ -4421,7 +4435,7 @@ _EditPresenter::OnLongPressGestureDetected(void) bool _EditPresenter::OnTapGestureDetected(void) { - SysLog(NID_UI_CTRL, "[EDIT] OnTapGestureDetected"); + SysLog(NID_UI_CTRL, "OnTapGestureDetected"); if (IsInternalFocused() == false) { @@ -4471,7 +4485,7 @@ _EditPresenter::OnTapGestureDetected(void) GetCursorBounds(true, cursorBounds); __pCopyPasteManager = new (std::nothrow) _EditCopyPasteManager(*__pEdit); - SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "[EDIT] Unable to create _EditCopyPasteManager instance."); + SysTryReturn(NID_UI_CTRL, __pCopyPasteManager != null, false, E_SYSTEM, "Unable to create _EditCopyPasteManager instance."); __pCopyPasteManager->AddCopyPasteEventListener(*this); __pCopyPasteManager->Show(); __isCopyPasteManagerExist = true; @@ -4622,7 +4636,7 @@ _EditPresenter::CopyText(void) result r = E_SUCCESS; _Clipboard* pClipBoard = _Clipboard::GetInstance(); - SysTryReturnResult(NID_UI_CTRL, pClipBoard != null, E_SYSTEM, "[EDIT] Unable to get the clipboard instance."); + SysTryReturnResult(NID_UI_CTRL, pClipBoard != null, E_SYSTEM, "Unable to get the clipboard instance."); int start = 0; int end = 0; @@ -4631,7 +4645,7 @@ _EditPresenter::CopyText(void) String blockString(GetText(start, end - 1)); _ClipboardItem* pClipboardItem = _ClipboardItem::CreateInstanceN(CLIPBOARD_DATA_TYPE_TEXT, blockString); - SysTryReturnResult(NID_UI_CTRL, pClipboardItem != null, E_SYSTEM, "[EDIT] Unable to get the clipboarditem instance."); + SysTryReturnResult(NID_UI_CTRL, pClipboardItem != null, E_SYSTEM, "Unable to get the clipboarditem instance."); r = pClipBoard->CopyItem(*pClipboardItem); @@ -4663,10 +4677,10 @@ _EditPresenter::CopyText(void) continue; } const Bitmap * pImage = pImageText->GetBitmap(); - SysTryReturnResult(NID_UI_CTRL, pImage != null, E_SYSTEM, "[EDIT] Unable to get the bitmap from textobject."); + SysTryReturnResult(NID_UI_CTRL, pImage != null, E_SYSTEM, "Unable to get the bitmap from textobject."); _ClipboardItem* pClipboardImageItem = _ClipboardItem::CreateInstanceN(CLIPBOARD_DATA_TYPE_IMAGE, *pImage); - SysTryReturnResult(NID_UI_CTRL, pClipboardImageItem != null, E_SYSTEM, "[EDIT] Unable to get the clipboardImageitem instance."); + SysTryReturnResult(NID_UI_CTRL, pClipboardImageItem != null, E_SYSTEM, "Unable to get the clipboardImageitem instance."); r = pClipBoard->CopyItem(*pClipboardImageItem); @@ -4711,13 +4725,13 @@ _EditPresenter::PasteText(void) String filteredString; _Clipboard* pClipBoard = _Clipboard::GetInstance(); - SysTryReturnResult(NID_UI_CTRL, pClipBoard != null, E_SYSTEM, "[EDIT] Unable to get the clipboard instance."); + SysTryReturnResult(NID_UI_CTRL, pClipBoard != null, E_SYSTEM, "Unable to get the clipboard instance."); const _ClipboardItem* pClipboardItem = pClipBoard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT|CLIPBOARD_DATA_TYPE_AUDIO | CLIPBOARD_DATA_TYPE_VIDEO); - SysTryReturnResult(NID_UI_CTRL, pClipboardItem != null, E_SYSTEM, "[EDIT] Unable to get the clipboarditem instance."); + SysTryReturnResult(NID_UI_CTRL, pClipboardItem != null, E_SYSTEM, "Unable to get the clipboarditem instance."); const String* pClipString = dynamic_cast(pClipboardItem->GetData()); - SysTryCatch(NID_UI_CTRL, pClipString, r = E_SYSTEM, E_SYSTEM, "[EDIT] Unable to get the clipboarditem instance."); + SysTryCatch(NID_UI_CTRL, pClipString, r = E_SYSTEM, E_SYSTEM, "Unable to get the clipboarditem instance."); filteredString = *pClipString; @@ -4743,7 +4757,7 @@ _EditPresenter::PasteText(void) DeleteText(start, end); ReleaseTextBlock(); pSubString = new String(__limitLength - currentLength + (end - start)); - SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to allocate text buffer."); + SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "Unable to allocate text buffer."); filteredString.SubString(0, __limitLength - currentLength + (end - start), *pSubString); r = InsertTextAt(__cursorPos, pSubString->GetPointer()); @@ -4767,7 +4781,7 @@ _EditPresenter::PasteText(void) } pSubString = new String(__limitLength - currentLength); - SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to allocate text buffer."); + SysTryCatch(NID_UI_CTRL, pSubString, , r = E_OUT_OF_MEMORY, "Unable to allocate text buffer."); filteredString.SubString(0, __limitLength - currentLength, *pSubString); r = InsertTextAt(__cursorPos, pSubString->GetPointer()); @@ -4829,7 +4843,7 @@ bool _EditPresenter::IsClipped(void) const { _Clipboard* pClipBoard = _Clipboard::GetInstance(); - SysTryReturn(NID_UI_CTRL, pClipBoard != null, false, E_SYSTEM, "[EDIT] Unable to get the clipboard instance."); + SysTryReturn(NID_UI_CTRL, pClipBoard != null, false, E_SYSTEM, "Unable to get the clipboard instance."); const _ClipboardItem* pClipboardItem = pClipBoard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT|CLIPBOARD_DATA_TYPE_AUDIO | CLIPBOARD_DATA_TYPE_VIDEO); if (pClipboardItem == null) @@ -4866,7 +4880,7 @@ _EditPresenter::SetTextAlignment(HorizontalAlignment alignment) { r = __pTextObject->SetAlignment(textAlign | TEXT_OBJECT_ALIGNMENT_TOP); } - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[EDIT] Unable to set text alignment."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Unable to set text alignment."); __horizontalAlignment = alignment; return r; @@ -4900,11 +4914,10 @@ _EditPresenter::GetText(int start, int end) const if (start != 0 && end != -1) { SysTryReturn(NID_UI_CTRL, (start <= end), tempString, E_SYSTEM, "[E_SYSTEM] The invalid argument(start = %d, end = %d) is given.", start, end); + int textLength = GetTextLength(); + SysTryReturn(NID_UI_CTRL, (start < textLength && end < textLength), tempString, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The invalid argument(start = %d, end = %d) is given.", start, end); } - int textLength = GetTextLength(); - SysTryReturn(NID_UI_CTRL, (start < textLength && end < textLength), tempString, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The invalid argument(start = %d, end = %d) is given.", start, end); - if (__pEdit->GetEditStyle() & EDIT_STYLE_PASSWORD) { int length = end - start + 1; @@ -5015,7 +5028,7 @@ _EditPresenter::SetText(const String& text) } else { - SysTryReturnResult(NID_UI_CTRL, length <= __limitLength, E_INVALID_ARG, "[EDIT] The Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, length <= __limitLength, E_INVALID_ARG, "The Invalid argument is given."); } if (__isInputConnectionBound && __isTextComposing) @@ -5071,7 +5084,7 @@ _EditPresenter::SetCursorPosition(int position) result r = E_SUCCESS; int length = GetTextLength(); - SysTryReturnResult(NID_UI_CTRL, -1 < position && position <= length, E_INVALID_ARG, "[Edit] Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, -1 < position && position <= length, E_INVALID_ARG, "Invalid argument is given."); if (__isTouchMoving == false) { @@ -5079,7 +5092,7 @@ _EditPresenter::SetCursorPosition(int position) } r = __pTextObject->SetCursorIndex(position); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[Edit] Failed to set cursor position"); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Failed to set cursor position"); if (__cursorPos != position) { @@ -5096,7 +5109,7 @@ _EditPresenter::SetCursorPosition(int position,int rowIndex, int columnIndex) result r = E_SUCCESS; int length = GetTextLength(); - SysTryReturnResult(NID_UI_CTRL, -1 < position && position <= length, E_INVALID_ARG, "[Edit] Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, -1 < position && position <= length, E_INVALID_ARG, "Invalid argument is given."); if (__isTouchMoving == false) { @@ -5104,7 +5117,7 @@ _EditPresenter::SetCursorPosition(int position,int rowIndex, int columnIndex) } r = __pTextObject->SetCursorIndex(position); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[Edit] Failed to set cursor position"); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Failed to set cursor position"); __rowCursorIndex = rowIndex; __columnCursorIndex = columnIndex; @@ -5137,7 +5150,7 @@ _EditPresenter::InsertTextAt(int index, const String& text) String insertText = text; int i = 0; - SysTryReturnResult(NID_UI_CTRL, index >= 0 && index <= currentLength, E_OUT_OF_RANGE, "[EDIT] The Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, index >= 0 && index <= currentLength, E_OUT_OF_RANGE, "The Invalid argument is given."); if (__pEdit->GetEditStyle() & EDIT_STYLE_VIEWER) { @@ -5150,7 +5163,7 @@ _EditPresenter::InsertTextAt(int index, const String& text) } else { - SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "[EDIT] The Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "The Invalid argument is given."); } if (__pEdit->GetEditStyle() & EDIT_STYLE_SINGLE_LINE || __pEdit->GetEditStyle() & EDIT_STYLE_TOKEN ) @@ -5202,7 +5215,7 @@ _EditPresenter::InsertTextAt(int index, const String& text) __pTextObject->SetRange(index, length); r = __pTextObject->NotifyTextChanged(__pTextBuffer, 0, __pTextString->GetLength(), length); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[Edit] Failed to set length"); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Failed to set length"); __pTextObject->Compose(); @@ -5255,7 +5268,7 @@ _EditPresenter::AppendText(const String& text) } else { - SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "[EDIT] The Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "The Invalid argument is given."); } r = __pTextString->Append(text); @@ -5271,7 +5284,7 @@ _EditPresenter::AppendText(const String& text) __pTextObject->SetRange(currentLength, length); r = __pTextObject->NotifyTextChanged(__pTextBuffer, 0, __pTextString->GetLength(), length); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[Edit] Failed to set length"); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Failed to set length"); __pTextObject->Compose(); @@ -5356,8 +5369,8 @@ _EditPresenter::DeleteText(int startCursorPosition, int endCursorPosition) int length = GetTextLength(); - SysTryReturnResult(NID_UI_CTRL, -1 < startCursorPosition && startCursorPosition < endCursorPosition, E_INVALID_ARG, "[EDIT] Invalid argument is given."); - SysTryReturnResult(NID_UI_CTRL, startCursorPosition < endCursorPosition && endCursorPosition <= length, E_INVALID_ARG, "[EDIT] Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, -1 < startCursorPosition && startCursorPosition < endCursorPosition, E_INVALID_ARG, "Invalid argument is given."); + SysTryReturnResult(NID_UI_CTRL, startCursorPosition < endCursorPosition && endCursorPosition <= length, E_INVALID_ARG, "Invalid argument is given."); _Text::TextElement* pFirstTextElement = __pTextObject->GetElementAtTextIndex(startCursorPosition); const TextSimple* pFirstSimpleText = dynamic_cast (pFirstTextElement); @@ -5872,7 +5885,7 @@ _EditPresenter::InsertTextAt(int position, const String& text, const Bitmap& tex int length = text.GetLength(); int totalLength = currentLength + length; - SysTryReturnResult(NID_UI_CTRL, position >= 0 && position <= currentLength, E_OUT_OF_RANGE, "[EDIT] The given position is out-of-range."); + SysTryReturnResult(NID_UI_CTRL, position >= 0 && position <= currentLength, E_OUT_OF_RANGE, "The given position is out-of-range."); if ((__pEdit->GetEditStyle() & EDIT_STYLE_FLEXIBLE) || (__pEdit->GetEditStyle() & EDIT_STYLE_VIEWER)) { @@ -5885,7 +5898,7 @@ _EditPresenter::InsertTextAt(int position, const String& text, const Bitmap& tex } else { - SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "[EDIT] The text exceeds the limitation length."); + SysTryReturnResult(NID_UI_CTRL, totalLength <= __limitLength, E_MAX_EXCEEDED, "The text exceeds the limitation length."); } if (__isInputConnectionBound == true && __isTextComposing == true) @@ -5932,7 +5945,7 @@ _EditPresenter::InsertTextAt(int position, const String& text, const Bitmap& tex TextSimple* pSimpleText = null; pSimpleText = new (std::nothrow) TextSimple(__pTextBuffer, length, TEXT_ELEMENT_SOURCE_TYPE_EXTERNAL, GetFont()); - SysTryReturnResult(NID_UI_CTRL, pSimpleText, E_OUT_OF_MEMORY, "[Edit] Unable to allocate text simple element."); + SysTryReturnResult(NID_UI_CTRL, pSimpleText, E_OUT_OF_MEMORY, "Unable to allocate text simple element."); pSimpleText->ChangeTextOffset(__pTextBuffer, position); pSimpleText->SetBitmap((Bitmap&)textImage); @@ -6011,6 +6024,11 @@ _EditPresenter::OnFocusGained(void) if (!__pParentForm) { __pParentForm = GetParentForm(); + + if (!__pParentForm && __isKeypadCommandButtonVisible) + { + __isKeypadCommandButtonVisible = false; + } } if (__isAutoShrinkEnabled) @@ -6026,7 +6044,7 @@ _EditPresenter::OnFocusGained(void) { result r = E_SUCCESS; __pTextVisualElement = new (std::nothrow) _VisualElement; - SysTryReturn(NID_UI_CTRL, __pTextVisualElement != null, false, E_OUT_OF_MEMORY, "[EDIT] Unable to create __pTextVisualElement instance."); + SysTryReturn(NID_UI_CTRL, __pTextVisualElement != null, false, E_OUT_OF_MEMORY, "Unable to create __pTextVisualElement instance."); r = __pTextVisualElement->Construct(); SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Failed to construct", GetErrorMessage(r)); @@ -6530,7 +6548,7 @@ _EditPresenter::SetKeypadCommandButton(const FloatRectangle& bounds) { __pCommandButton->SetResizable(true); __pCommandButton->SetMovable(true); - SysLog(NID_UI_CTRL, "[EDIT]Command position changed!!!! bounds(%f, %f, %f, %f)", bounds.x, bounds.y, bounds.width, bounds.height); + SysLog(NID_UI_CTRL, "Command position changed!!!! bounds(%f, %f, %f, %f)", bounds.x, bounds.y, bounds.width, bounds.height); r = __pCommandButton->SetBounds(bounds); __pCommandButton->SetResizable(false); @@ -6541,6 +6559,7 @@ _EditPresenter::SetKeypadCommandButton(const FloatRectangle& bounds) if (__pParentForm == false) { + __isKeypadCommandButtonVisible = false; return r; } @@ -6573,7 +6592,7 @@ _EditPresenter::SetKeypadCommandButton(const FloatRectangle& bounds) __pCommandButton->SetResizable(true); __pCommandButton->SetMovable(true); - SysLog(NID_UI_CTRL, "[EDIT]Command created!!!! bounds(%f, %f, %f, %f)", bounds.x, bounds.y, bounds.width, bounds.height); + SysLog(NID_UI_CTRL, "Command created!!!! bounds(%f, %f, %f, %f)", bounds.x, bounds.y, bounds.width, bounds.height); r = __pCommandButton->SetBounds(bounds); SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r)); @@ -6633,18 +6652,18 @@ _EditPresenter::CheckInitialFooterVisibleState(void) if (pFooter->GetVisibleState() == false) { __initialFooterVisibleStatus = EDIT_FOOTER_VISIBLE_STATUS_HIDE; - SysLog(NID_UI_CTRL, "[EDIT] CheckInitialFooterVisibleState - EDIT_FOOTER_VISIBLE_STATUS_HIDE"); + SysLog(NID_UI_CTRL, "EDIT_FOOTER_VISIBLE_STATUS_HIDE"); } else { __initialFooterVisibleStatus = EDIT_FOOTER_VISIBLE_STATUS_SHOW; - SysLog(NID_UI_CTRL, "[EDIT] CheckInitialFooterVisibleState - EDIT_FOOTER_VISIBLE_STATUS_SHOW"); + SysLog(NID_UI_CTRL, "EDIT_FOOTER_VISIBLE_STATUS_SHOW"); } } else { __initialFooterVisibleStatus = EDIT_FOOTER_VISIBLE_STATUS_NONE; - SysLog(NID_UI_CTRL, "[EDIT] CheckInitialFooterVisibleState - EDIT_FOOTER_VISIBLE_STATUS_NONE"); + SysLog(NID_UI_CTRL, "EDIT_FOOTER_VISIBLE_STATUS_NONE"); } return; @@ -6666,12 +6685,12 @@ _EditPresenter::SetFooterVisible(bool isVisible) { if (isVisible) { - SysLog(NID_UI_CTRL, "[EDIT] SetFooterVisible TRUE!!!!!"); + SysLog(NID_UI_CTRL, "SetFooterVisible TRUE!!!!!"); __footerVisibleChanged = false; } else { - SysLog(NID_UI_CTRL, "[EDIT] SetFooterVisible FALSE!!!!!"); + SysLog(NID_UI_CTRL, "SetFooterVisible FALSE!!!!!"); __footerVisibleChanged = true; } @@ -6774,10 +6793,10 @@ _EditPresenter::GetKeypadBounds(FloatRectangle& bounds) const bounds = __pInputConnection->GetInputPanelBoundsF(); _CoordinateSystem* pCoordSystem = _CoordinateSystem::GetInstance(); - SysTryReturnResult(NID_UI_CTRL, pCoordSystem, E_SYSTEM, "[EDIT] Coordinate system load failed."); + SysTryReturnResult(NID_UI_CTRL, pCoordSystem, E_SYSTEM, "Coordinate system load failed."); _ICoordinateSystemTransformer* pXformer = pCoordSystem->GetInverseTransformer(); - SysTryReturnResult(NID_UI_CTRL, pXformer, E_SYSTEM, "[EDIT] Coordinate system load failed."); + SysTryReturnResult(NID_UI_CTRL, pXformer, E_SYSTEM, "Coordinate system load failed."); bounds = pXformer->Transform(bounds); @@ -6791,7 +6810,7 @@ _EditPresenter::GetClipboardHeight(void) const } bool -_EditPresenter::CheckKeypadExist(_ControlOrientation orientation) +_EditPresenter::IsKeypadRotating(_ControlOrientation orientation) { FloatDimension screenSize; FloatRectangle absKeypadBounds(0.0f, 0.0f, 0.0f, 0.0f); @@ -6810,14 +6829,52 @@ _EditPresenter::CheckKeypadExist(_ControlOrientation orientation) screenSize.width = pControlManager->GetScreenSizeF().height; } - if ((absKeypadBounds.y != screenSize.height) && (absKeypadBounds.width == screenSize.width)) + if (absKeypadBounds.width == screenSize.width) + { + return false; + } + else { - SysLog(NID_UI_CTRL, "[EDIT] CheckKeypadExist: KEYPAD EXIST!!!!Keypad(y: %f, h: %f)", absKeypadBounds.y, absKeypadBounds.height); return true; } +} + +bool +_EditPresenter::CheckKeypadExist(_ControlOrientation orientation) +{ + FloatDimension screenSize; + FloatRectangle absKeypadBounds(0.0f, 0.0f, 0.0f, 0.0f); + _ControlManager* pControlManager = _ControlManager::GetInstance(); + + GetKeypadBounds(absKeypadBounds); + + if (orientation == _CONTROL_ORIENTATION_PORTRAIT) + { + screenSize.height = pControlManager->GetScreenSizeF().height; + screenSize.width = pControlManager->GetScreenSizeF().width; + } + else + { + screenSize.height = pControlManager->GetScreenSizeF().width; + screenSize.width = pControlManager->GetScreenSizeF().height; + } + + if (absKeypadBounds.width != 0 && absKeypadBounds.height != 0) + { + if ((absKeypadBounds.y != screenSize.height)) + { + SysLog(NID_UI_CTRL, "KEYPAD EXIST!!!!Keypad(y: %f, w: %f, h: %f)", absKeypadBounds.y, absKeypadBounds.width, absKeypadBounds.height); + return true; + } + else + { + SysLog(NID_UI_CTRL, "NO KEYPAD!!!!Keypad(y: %f, w: %f, h: %f)", absKeypadBounds.y, absKeypadBounds.width, absKeypadBounds.height); + return false; + } + } else { - SysLog(NID_UI_CTRL, "[EDIT] CheckKeypadExist: NO KEYPAD!!!!Keypad(y: %f, h: %f)", absKeypadBounds.y, absKeypadBounds.height); + SysLog(NID_UI_CTRL, "NO KEYPAD!!!!Keypad(y: %f, w: %f, h: %f)", absKeypadBounds.y, absKeypadBounds.width, absKeypadBounds.height); return false; } } @@ -6886,7 +6943,7 @@ _EditPresenter::ShowKeypad(bool focus) //layout rearrange if (__isUSBKeyboardConnected) { - SysLog(NID_UI_CTRL, "[EDIT]ShowKeypad called in USB ON mode!!!!"); + SysLog(NID_UI_CTRL, "ShowKeypad called in USB ON mode!!!!"); __isKeypadExist = CheckKeypadExist(__pEdit->GetOrientation()); //prediction alreaedy exists @@ -6926,7 +6983,7 @@ _EditPresenter::ShowKeypad(bool focus) } else { - SysLog(NID_UI_CTRL, "[EDIT]ShowKeypad called in USB OFF mode!!!!"); + SysLog(NID_UI_CTRL, "ShowKeypad called in USB OFF mode!!!!"); __isKeypadExist = CheckKeypadExist(__pEdit->GetOrientation()); //call once only from here. @@ -7013,17 +7070,36 @@ _EditPresenter::ChangeLayout(_ControlOrientation orientation) __pCopyPasteManager->Release(); } + bool isScrollPanelBoundsReloaded = false; + + if (__pParentPanel) + { + _ControlImpl* pParentPanelImpl = static_cast <_ControlImpl* >(__pParentPanel->GetUserData()); + Rectangle builderBounds; + isScrollPanelBoundsReloaded= pParentPanelImpl->GetBuilderBounds(orientation, builderBounds); + } + __rotated = true; CheckUSBKeyboardStatus(); if (__isInputConnectionBound || __clipboardConnected) { - SysLog(NID_UI_CTRL, "[EDIT]-------------------ChangeLayout------------------------"); + SysLog(NID_UI_CTRL, "-------------------ChangeLayout------------------------"); + + if (!isScrollPanelBoundsReloaded) + { + SysLog(NID_UI_CTRL, "ScrollPanel bounds is not changed by UIBuilder, so forcely reset ScrollPanel's height"); + AdjustParentPanelHeight(true); + } + else + { + SysLog(NID_UI_CTRL, "ScrollPanel bounds is changed by UIBuilder"); + } if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); } @@ -7034,13 +7110,18 @@ _EditPresenter::ChangeLayout(_ControlOrientation orientation) if (__isKeypadExist && ! __isClipboardExist) //only keypad exists, already get keypadbounds before callback [Causion]this timing clipboard height is still previous height { - __initialParentHeight = 0.0f; + if (isScrollPanelBoundsReloaded) + { + __initialParentHeight = 0.0f; + } + ChangeLayoutInternal(orientation); AdjustParentPanelHeight(false); ScrollPanelToCursorPosition(); } else // if clipboard exists, boundsChanged callback will delivered after rotate callback { + /* if (__isClipboardExist) { __initialParentHeight = 0.0f; @@ -7054,6 +7135,17 @@ _EditPresenter::ChangeLayout(_ControlOrientation orientation) AdjustParentPanelHeight(false); ScrollPanelToCursorPosition(); } + }*/ + + if (!__isClipboardExist) + { + if (__isKeypadCommandButtonVisible) + { + __initialParentHeight = 0.0f; + ChangeLayoutInternal(orientation); + AdjustParentPanelHeight(false); + ScrollPanelToCursorPosition(); + } } } } @@ -7076,7 +7168,7 @@ _EditPresenter::ChangeLayoutInternal(_ControlOrientation orientation, bool defla FloatRectangle keypadBounds(0.0f, 0.0f, 0.0f, 0.0f); _ControlManager* pControlManager = _ControlManager::GetInstance(); - SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "[EDIT] Failed to get root."); + SysTryReturnResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "Failed to get root."); FloatDimension screenSize; FloatRectangle commandButtonBounds(0.0f, 0.0f, 0.0f, 0.0f); @@ -7128,11 +7220,11 @@ _EditPresenter::ChangeLayoutInternal(_ControlOrientation orientation, bool defla { commandButtonBounds.width = screenSize.width; float commandButtonHeight = 0.0f; - GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, commandButtonHeight); - commandButtonBounds.height = commandButtonHeight; if (__pParentForm) { + GET_SHAPE_CONFIG(FOOTER::HEIGHT, orientation, commandButtonHeight); + commandButtonBounds.height = commandButtonHeight; formDeflateHeight += commandButtonBounds.height; if (__isKeypadExist || __isClipboardExist) @@ -7144,26 +7236,14 @@ _EditPresenter::ChangeLayoutInternal(_ControlOrientation orientation, bool defla { commandButtonBounds.y = screenSize.height - commandButtonBounds.height - __pParentForm->GetClientBoundsF().y; } - } - else - { - if (__isKeypadExist || __isClipboardExist) - { - commandButtonBounds.y = screenSize.height - shrinkedHeight - commandButtonBounds.height; - } - else - { - commandButtonBounds.y = screenSize.height - commandButtonBounds.height; - } - } - r = SetKeypadCommandButton(commandButtonBounds); - SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + SetKeypadCommandButton(commandButtonBounds); - if (__pCommandButton) - { - __pCommandButton->SetVisibleState(true); - __pCommandButton->Invalidate(); + if (__pCommandButton) + { + __pCommandButton->SetVisibleState(true); + __pCommandButton->Invalidate(); + } } } else @@ -7180,7 +7260,7 @@ _EditPresenter::ChangeLayoutInternal(_ControlOrientation orientation, bool defla if (__pParentForm && deflateForm) { - SysLog(NID_UI_CTRL, "[EDIT]ChangeLayoutInternal: formDeflateHeight:%f, KeypadExist(%d), ClipboardExist(%d), CommandButtonVisible(%d)", + SysLog(NID_UI_CTRL, "FormDeflateHeight:%f, KeypadExist(%d), ClipboardExist(%d), CommandButtonVisible(%d)", formDeflateHeight, __isKeypadExist, __isClipboardExist, __isKeypadCommandButtonVisible); __pParentForm->DeflateClientRectHeight(formDeflateHeight); } @@ -7195,7 +7275,7 @@ _EditPresenter::OnScrollPanelBoundsChanged(void) } void -_EditPresenter::AdjustParentPanelHeight(bool restore, bool panelResizeByPrediction) +_EditPresenter::AdjustParentPanelHeight(bool restore) { if (__pParentPanel == null) { @@ -7233,15 +7313,12 @@ _EditPresenter::AdjustParentPanelHeight(bool restore, bool panelResizeByPredicti screenSize.height = pControlManager->GetScreenSizeF().width; } - if (panelResizeByPrediction) - restore = false; - if (restore) { if (__initialParentHeight) { scrollPanelBounds.height = __initialParentHeight; - + SysLog(NID_UI_CTRL, "Rollback ScrollPanel's height to %f and Set __initialParentHeight to 'Zero' ", __initialParentHeight); __initialParentHeight = 0.0f; __pParentPanel->SetBounds(scrollPanelBounds); __pParentPanel->Invalidate(); @@ -7290,51 +7367,69 @@ _EditPresenter::AdjustParentPanelHeight(bool restore, bool panelResizeByPredicti displayedPanelHeight = screenSize.height - commandButtonHeight - absScrollPanelBounds.y; gapY = (absKeypadBounds.y - commandButtonHeight)- absScrollPanelBounds.y; - if (panelResizeByPrediction) + bool isOverlapped = true; + + if ((absKeypadBounds.y - commandButtonHeight) >= (absScrollPanelBounds.y + absScrollPanelBounds.height)) + { + isOverlapped = false; + } + + SysLog(NID_UI_CTRL, "IsOverlapped:(%d), __initialParentHeight:(%f), gapY:(%f)", isOverlapped, __initialParentHeight, gapY); + + if (!__initialParentHeight) { - if ((absKeypadBounds.y - commandButtonHeight) >= (absScrollPanelBounds.y + absScrollPanelBounds.height)) + if (!isOverlapped) { return; } - if (__isUSBKeyboardConnected) + if (gapY > 0.0f) { - if (gapY > 0.0f) - { - scrollPanelBounds.height = gapY; - __pParentPanel->SetBounds(scrollPanelBounds); - __pParentPanel->Invalidate(); - } + __initialParentHeight = scrollPanelBounds.height; + + SysLog(NID_UI_CTRL, "Set ScrollPanel's height to %f and Set __initialParentHeight:(%f)", gapY, __initialParentHeight); + + scrollPanelBounds.height = gapY; + __pParentPanel->SetBounds(scrollPanelBounds); + __pParentPanel->Invalidate(); } - else + } + else + { + if (!isOverlapped) { - if ((gapY > 0.0f) && __initialParentHeight) + if ((gapY < __initialParentHeight) && (gapY > 0.0f)) { + SysLog(NID_UI_CTRL, "Set ScrollPanel's height to %f", gapY); + scrollPanelBounds.height = gapY; __pParentPanel->SetBounds(scrollPanelBounds); __pParentPanel->Invalidate(); + return; + } + else + { + if (gapY > __initialParentHeight) + { + SysLog(NID_UI_CTRL, "Set ScrollPanel's height to %f", __initialParentHeight); + + scrollPanelBounds.height = __initialParentHeight; + __pParentPanel->SetBounds(scrollPanelBounds); + __pParentPanel->Invalidate(); + } + return; } - } - } - else - { - if ((absKeypadBounds.y - commandButtonHeight) >= (absScrollPanelBounds.y + absScrollPanelBounds.height)) - { - return; } - if ((gapY > 0) && (gapY < displayedPanelHeight) && !__initialParentHeight) + if (gapY > 0.0f) { - __initialParentHeight = scrollPanelBounds.height; - + SysLog(NID_UI_CTRL, "Set ScrollPanel's height to %f", gapY); scrollPanelBounds.height = gapY; __pParentPanel->SetBounds(scrollPanelBounds); __pParentPanel->Invalidate(); } } } - - return; } result @@ -7353,7 +7448,7 @@ _EditPresenter::HideKeypad(bool focus) if (__isUSBKeyboardConnected) { - SysLog(NID_UI_CTRL, "[EDIT]HideKeypad called in USB ON mode!!!!"); + SysLog(NID_UI_CTRL, "HideKeypad called in USB ON mode!!!!"); if (__pCommandButton && __isKeypadCommandButtonVisible) { SetFooterVisible(true); @@ -7362,7 +7457,7 @@ _EditPresenter::HideKeypad(bool focus) if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); } @@ -7373,7 +7468,7 @@ _EditPresenter::HideKeypad(bool focus) } else { - SysLog(NID_UI_CTRL, "[EDIT]HideKeypad called in USB OFF mode!!!!"); + SysLog(NID_UI_CTRL, "HideKeypad called in USB OFF mode!!!!"); if (__pCommandButton && __isKeypadCommandButtonVisible) { if (!__isKeypadExist) @@ -7382,7 +7477,7 @@ _EditPresenter::HideKeypad(bool focus) if (__pParentForm) { - SysLog(NID_UI_CTRL, "[EDIT] Form deflate RESET!!!!!!!!!!"); + SysLog(NID_UI_CTRL, "Form deflate RESET!!!!!!!!!!"); __pParentForm->DeflateClientRectHeight(0.0f); } __pEdit->SendKeypadEvent(GetKeypadAction(), CORE_KEYPAD_EVENT_STATUS_CLOSE); @@ -7727,7 +7822,7 @@ _EditPresenter::SetEllipsisPosition(EllipsisPosition position) __pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV); r = __pTextObject->SetTextObjectEllipsisType(ellipsisType); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "[EDIT] Unable to Set ellipsis position."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Unable to Set ellipsis position."); return r; } @@ -7752,7 +7847,7 @@ _EditPresenter::OnFontChanged(Font* pFont) result r = E_SUCCESS; r = AdjustFont(*pFont, EDIT_FONT_CHANGE_ALL); - SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "[EDIT] Unable to set font."); + SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "Unable to set font."); __titleFontFaceName = pFont->GetFaceName(); @@ -7807,19 +7902,19 @@ _EditPresenter::SetTextSize(const int size) SysTryReturn(NID_UI_CTRL, fontImpl, r, r, "[%s] Propagating.", GetErrorMessage(r)); r = fontImpl->SetSize(size); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); if (__pTextObject) { r = __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } if (IsGuideTextActivated()) { r = __pGuideTextObject->SetFont(__pFont, 0, __pGuideTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } __contentFontSize = _CoordinateSystemUtils::ConvertToFloat(size); @@ -7835,19 +7930,19 @@ _EditPresenter::SetTextSize(const float size) SysTryReturn(NID_UI_CTRL, fontImpl, r, r, "[%s] Propagating.", GetErrorMessage(r)); r = fontImpl->SetSize(size); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); if (__pTextObject) { r = __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } if (IsGuideTextActivated()) { r = __pGuideTextObject->SetFont(__pFont, 0, __pGuideTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } __contentFontSize = size; @@ -7860,7 +7955,7 @@ _EditPresenter::SetFont(const Font& font) result r = E_SUCCESS; Font* pFont = _FontImpl::CloneN(const_cast (font)); - SysTryReturnResult(NID_UI_CTRL, pFont, GetLastResult(), "[EDIT] Unable to create font."); + SysTryReturnResult(NID_UI_CTRL, pFont, GetLastResult(), "Unable to create font."); __pFont = pFont; @@ -7868,13 +7963,13 @@ _EditPresenter::SetFont(const Font& font) { r = __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "Unable to set font."); } if (IsGuideTextActivated()) { r = __pGuideTextObject->SetFont(__pFont, 0, __pGuideTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "Unable to set font."); } return r; @@ -7895,17 +7990,17 @@ _EditPresenter::AdjustFont(Font& font, _EditFontChange fontChange) if (__pTitleTextObject) { r = fontImpl->SetSize(__titleFontSize); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); r = __pTitleTextObject->SetFont(pFont, 0, __pTitleTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } } if (fontChange == EDIT_FONT_CHANGE_CONTENT || fontChange == EDIT_FONT_CHANGE_ALL) { r = fontImpl->SetSize(__contentFontSize); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); unsigned long style = FONT_STYLE_PLAIN; @@ -7933,13 +8028,13 @@ _EditPresenter::AdjustFont(Font& font, _EditFontChange fontChange) { r = __pTextObject->SetFont(pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } if (__pGuideTextObject) { r = __pGuideTextObject->SetFont(pFont, 0, __pGuideTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } } @@ -7981,7 +8076,7 @@ _EditPresenter::SetFontType(const String& typefaceName, unsigned long styleMask) Font* pFont = null; IList* systemFontList = Font::GetSystemFontListN(); - SysTryReturnResult(NID_UI_CTRL, systemFontList, E_SYSTEM, "[EDIT] Unable to get system font list.\n"); + SysTryReturnResult(NID_UI_CTRL, systemFontList, E_SYSTEM, "Unable to get system font list.\n"); int fontListCount = systemFontList->GetCount(); String tempFontFaceName; @@ -8004,9 +8099,9 @@ _EditPresenter::SetFontType(const String& typefaceName, unsigned long styleMask) tempFontFaceName = *static_cast(systemFontList->GetAt(i)); pFont = new (std::nothrow) Font; - SysTryCatch(NID_UI_CTRL, pFont, , r = E_OUT_OF_MEMORY, "[EDIT] Unable to get text information.\n"); + SysTryCatch(NID_UI_CTRL, pFont, , r = E_OUT_OF_MEMORY, "Unable to get text information.\n"); r = pFont->Construct(tempFontFaceName, fontStyle, textSize); - SysTryCatch(NID_UI_CTRL, !IsFailed(r), , r, "[EDIT] Unable to construct Font.\n"); + SysTryCatch(NID_UI_CTRL, !IsFailed(r), , r, "Unable to construct Font.\n"); // check font face name. if (typefaceName.Equals(pFont->GetFaceName(), true)) @@ -8019,7 +8114,7 @@ _EditPresenter::SetFontType(const String& typefaceName, unsigned long styleMask) pFont = null; } - SysTryCatch(NID_UI_CTRL, isFaceNameAvailable, , r = E_INVALID_ARG, "[EDIT] The unsupported font face name is given.\n"); + SysTryCatch(NID_UI_CTRL, isFaceNameAvailable, , r = E_INVALID_ARG, "The unsupported font face name is given.\n"); if (styleMask & TEXT_BOX_TEXT_STYLE_UNDERLINE) { @@ -8043,7 +8138,7 @@ _EditPresenter::SetFontType(const String& typefaceName, unsigned long styleMask) { r = __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "Unable to set font."); } return r; @@ -8111,13 +8206,13 @@ _EditPresenter::SetTextStyle(unsigned long textStyle) { r = __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength()); __ContentTextStatus = EDIT_TEXT_STATUS_COMPOSE_NON; - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } if (IsGuideTextActivated()) { r = __pGuideTextObject->SetFont(__pFont, 0, __pGuideTextObject->GetTextLength()); - SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[EDIT] Unable to set font."); + SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Unable to set font."); } __contentTextStyle = textStyle; @@ -8222,7 +8317,7 @@ _EditPresenter::SetTitleText(const String& title) if(fontImpl) { r = fontImpl->SetSize(__titleFontSize); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); } else { @@ -8233,7 +8328,7 @@ _EditPresenter::SetTitleText(const String& title) __pTitleTextObject->SetFont(__pFont, 0, __pTitleTextObject->GetTextLength()); r = fontImpl->SetSize(__contentFontSize); - SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "[EDIT] SetSize is failed."); + SysTryReturn(NID_UI_CTRL, !(IsFailed(r)), r, r, "SetSize is failed."); __pEdit->UpdateAccessibilityElement(EDIT_ACCESSIBILITY_ELEMENT_TYPE_TEXT); @@ -9947,7 +10042,7 @@ _EditPresenter::GetTextImageRangeAt(int postion, int& startPosition, int& endPos startPosition = -1; endPosition = -1; - SysTryReturnResult(NID_UI_CTRL, postion >= 0 && postion <= length, E_OUT_OF_RANGE, "[EDIT] The given index is out-of-range."); + SysTryReturnResult(NID_UI_CTRL, postion >= 0 && postion <= length, E_OUT_OF_RANGE, "The given index is out-of-range."); _Text::TextElement* pTextElement = __pTextObject->GetElementAtTextIndex(postion); const TextSimple* pSimpleText = dynamic_cast (pTextElement); diff --git a/src/ui/inc/FUiCtrl_EditPresenter.h b/src/ui/inc/FUiCtrl_EditPresenter.h index bdacda0..d8363f0 100644 --- a/src/ui/inc/FUiCtrl_EditPresenter.h +++ b/src/ui/inc/FUiCtrl_EditPresenter.h @@ -227,6 +227,7 @@ public: result GetKeypadBounds(Tizen::Graphics::FloatRectangle& bounds) const; float GetClipboardHeight(void) const; bool CheckKeypadExist(_ControlOrientation orientation); + bool IsKeypadRotating(_ControlOrientation orientation); KeypadStyle GetKeypadStyle(void) const; int GetTextLimitLength(void) const; int GetMaxLineCount(void) const; @@ -425,7 +426,7 @@ private: result OnTitleSlidingTimerExpired(void); result OnFlickTimerExpired(void); bool IsDelimiter(wchar_t character) const; - void AdjustParentPanelHeight(bool restore, bool panelResizeByPrediction = false); + void AdjustParentPanelHeight(bool restore); result ChangeLayoutInternal(_ControlOrientation orientation, bool deflateForm = true); _Button* CreateCommandButtonItemN(int actionId, const Tizen::Base::String& text); void CheckInitialFooterVisibleState(void); -- 2.7.4