}
result
-_EditPresenter::DeleteText(int start, int end)
+_EditPresenter::DeleteText(int startCursorPosition, int endCursorPosition)
{
result r = E_SUCCESS;
int length = GetTextLength();
- SysTryReturnResult(NID_UI_CTRL, -1 < start && start < end, E_INVALID_ARG, "[EDIT] Invalid argument is given.");
- SysTryReturnResult(NID_UI_CTRL, start < end && end <= length, E_INVALID_ARG, "[EDIT] Invalid argument is given.");
+ 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.");
- _Text::TextElement* pFirstTextElement = __pTextObject->GetElementAtTextIndex(start);
+ _Text::TextElement* pFirstTextElement = __pTextObject->GetElementAtTextIndex(startCursorPosition);
const TextSimple* pFirstSimpleText = dynamic_cast <const TextSimple*>(pFirstTextElement);
if (pFirstSimpleText != null && pFirstSimpleText->GetBitmap() != null)
{
- if (pFirstSimpleText->GetTextOffset() < start)
+ if (pFirstSimpleText->GetTextOffset() < startCursorPosition)
{
- start = pFirstSimpleText->GetTextOffset();
+ startCursorPosition = pFirstSimpleText->GetTextOffset();
}
}
- _Text::TextElement* pLastTextElement = __pTextObject->GetElementAtTextIndex(end - 1);
+ _Text::TextElement* pLastTextElement = __pTextObject->GetElementAtTextIndex(endCursorPosition - 1);
const TextSimple* pLastSimpleText = dynamic_cast <const TextSimple*>(pLastTextElement);
if (pLastSimpleText != null && pLastSimpleText->GetBitmap() != null)
{
- if( (pLastSimpleText->GetTextOffset() + pLastSimpleText->GetTextLength()) > end)
+ if( (pLastSimpleText->GetTextOffset() + pLastSimpleText->GetTextLength()) > endCursorPosition)
{
- end = pLastSimpleText->GetTextOffset() + pLastSimpleText->GetTextLength();
+ endCursorPosition = pLastSimpleText->GetTextOffset() + pLastSimpleText->GetTextLength();
}
}
- r = __pTextString->Remove(start, end - start);
+ r = __pTextString->Remove(startCursorPosition, endCursorPosition - startCursorPosition);
SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
int currentLength = __pTextString->GetLength();
- for (int i = start; i < length; i++)
+ for (int i = startCursorPosition; i < length; i++)
{
+ if ((i + length - currentLength) >= length)
+ {
+ break;
+ }
__pTextBuffer[i] = __pTextBuffer[i + (length - currentLength)];
}
__pTextBuffer[i] = 0;
}
- SetCursorPosition(start);
+ SetCursorPosition(startCursorPosition);
- __pTextObject->SetRange(start, end - start);
- r = __pTextObject->NotifyTextChanged(__pTextBuffer, 0, currentLength, -(end - start));
+ __pTextObject->SetRange(startCursorPosition, endCursorPosition - startCursorPosition);
+ r = __pTextObject->NotifyTextChanged(__pTextBuffer, 0, currentLength, -(endCursorPosition - startCursorPosition));
r = __pTextObject->Compose();
if (__pEdit->GetEditStyle() & EDIT_STYLE_FLEXIBLE)