result
_SearchBar::SetButtonText(const String& text)
{
- __isButtonTextChangedByApp = true;
SysTryReturn(NID_UI_CTRL, __pCancelButton, E_SYSTEM, E_SYSTEM,
"[E_SYSTEM] A system error has occurred. The cancel button instance is null.");
SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, E_SYSTEM,
"[E_SYSTEM] A system error has occurred. Failed to set text.");
+ __isButtonTextChangedByApp = true;
+
return r;
}
bool
_SearchBar::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
{
+ if (!__pEdit->IsUsbKeyboardConnected())
+ {
+ return false;
+ }
+
+ if (!__pEdit->IsSearchFieldFocused())
+ {
+ return false;
+ }
+
_KeyCode keyCode = keyInfo.GetKeyCode();
- if (keyCode == _KEY_RIGHT)
+ switch (keyCode)
{
- if (GetMode() == SEARCH_BAR_MODE_NORMAL)
- {
- __pEdit->SetFocused();
- return true;
- }
+ case _KEY_RIGHT:
+ SetFocusCallbackParameter(false);
+ if (&source == __pEdit)
+ {
+ if ((!__isButtonEnabled || !__isUsableCancelButton) && __pContentControl && __pContentControl->GetVisibleState() && __pContentControl->GetEnableState())
+ {
+ __pContentControl->SetFocused();
+ __pContentControl->OnDrawFocus();
- if (!__isButtonEnabled || __pCancelButton->IsFocused() || !__isUsableCancelButton)
- {
- return true;
- }
+ return true;
+ }
+ else if (__isButtonEnabled && __isUsableCancelButton)
+ {
+ __pCancelButton->SetFocused();
+ }
- __pCancelButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED);
- SetFocusCallBackParameter(false);
- __pCancelButton->SetFocused();
- __pCancelButton->Invalidate(true);
+ return true;
+ }
- return true;
- }
+ if (&source == __pCancelButton && __pContentControl && __pContentControl->GetVisibleState() && __pContentControl->GetEnableState())
+ {
+ __pContentControl->SetFocused();
+ __pContentControl->OnDrawFocus();
- if (keyCode == _KEY_LEFT)
- {
- if (__pCancelButton->GetButtonStatus() == _BUTTON_STATUS_HIGHLIGHTED)
- {
- __pCancelButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
- __pCancelButton->Invalidate();
- __pEdit->SetFocused();
- }
+ return true;
+ }
- if (__pCancelButton->GetButtonStatus() == _BUTTON_STATUS_DISABLED) //Searchbar Button is disabled, left arrow key is pressed
- {
- __pCancelButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
- SetButtonEnabled(false);
- __pEdit->SetFocused();
- }
+ break;
- return true;
- }
+ case _KEY_LEFT:
+ if (&source == __pCancelButton)
+ {
+ __pEdit->SetFocused();
+ return true;
+ }
+
+ if (&source == __pContentControl)
+ {
+ if ((__isButtonEnabled && __isUsableCancelButton))
+ {
+ __pCancelButton->SetFocused();
+ }
+ else
+ {
+ __pEdit->SetFocused();
+ }
+ return true;
+ }
- if (keyCode == _KEY_ENTER || keyCode == _KEY_TAB)
- {
- if (GetMode() == SEARCH_BAR_MODE_NORMAL)
- {
- return false;
- }
+ break;
- SetMode(SEARCH_BAR_MODE_NORMAL);
- __isKeyPressed = true;
- SetFocused();
+ case _KEY_ENTER:
+ if (&source == __pCancelButton)
+ {
+ SetMode(SEARCH_BAR_MODE_NORMAL);
+ __isKeyPressed = true;
+ SetFocused();
+ _Control::OnDrawFocus();
- return true;
+ return true;
+ }
+
+ break;
+
+ default:
+ return false;
}
return false;
}
void
-_SearchBar::SetFocusCallBackParameter(bool state)
+_SearchBar::SetFocusCallbackParameter(bool state)
{
__isFocusCallbackToBeFired = state;
return;
}
bool
-_SearchBar::IsFocusCallBackToBeFired(void) const
+_SearchBar::IsFocusCallbackToBeFired(void) const
{
return __isFocusCallbackToBeFired;
}