DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "selectedTextStart", INTEGER, SELECTED_TEXT_START )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "selectedTextEnd", INTEGER, SELECTED_TEXT_END )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "enableEditing", BOOLEAN, ENABLE_EDITING )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "fontSizeScale", FLOAT, FONT_SIZE_SCALE )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "primaryCursorPosition", INTEGER, PRIMARY_CURSOR_POSITION )
DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED )
DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED )
impl.SetEditable( editable );
break;
}
+ case Toolkit::DevelTextField::Property::FONT_SIZE_SCALE:
+ {
+ const float scale = value.Get< float >();
+ DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p FONT_SIZE_SCALE %f\n", impl.mController.Get(), scale );
+
+ if( !Equals( impl.mController->GetFontSizeScale(), scale ) )
+ {
+ impl.mController->SetFontSizeScale( scale );
+ }
+ break;
+ }
+ case Toolkit::DevelTextField::Property::PRIMARY_CURSOR_POSITION:
+ {
+ uint32_t position = static_cast<uint32_t>(value.Get< int >());
+ DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p PRIMARY_CURSOR_POSITION %d\n", impl.mController.Get(), position );
+ if (impl.mController->SetPrimaryCursorPosition( position ))
+ {
+ impl.SetKeyInputFocus();
+ }
+ break;
+ }
} // switch
} // textfield
}
value = impl.IsEditable();
break;
}
+ case Toolkit::DevelTextField::Property::FONT_SIZE_SCALE:
+ {
+ value = impl.mController->GetFontSizeScale();
+ break;
+ }
+ case Toolkit::DevelTextField::Property::PRIMARY_CURSOR_POSITION:
+ {
+ value = static_cast<int>(impl.mController->GetPrimaryCursorPosition());
+ break;
+ }
} //switch
}
self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT );
self.OnSceneSignal().Connect( this, &TextField::OnSceneConnect );
+ //Enable highightability
+ self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
DevelControl::SetInputMethodContext( *this, mInputMethodContext );
if( Dali::Toolkit::TextField::EXCEED_POLICY_CLIP == mExceedPolicy )
EmitKeyInputFocusSignal( false ); // Calls back into the Control hence done last.
}
+bool TextField::OnAccessibilityActivated()
+{
+ SetKeyInputFocus();
+ return true;
+}
+
void TextField::OnTap( const TapGesture& gesture )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnTap %p\n", mController.Get() );
if (boundary == Dali::Accessibility::TextBoundary::LINE)
counter++;
}
- if ((counter - 1) == offset)
+ if ((counter > 0) && ((counter - 1) == offset))
{
range.content = txt.substr(start, index - start + 1);
range.startOffset = start;
Dali::Accessibility::States TextField::AccessibleImpl::CalculateStates()
{
- auto states = Control::Impl::AccessibleImpl::CalculateStates();
using namespace Dali::Accessibility;
+
+ auto states = Control::Impl::AccessibleImpl::CalculateStates();
+
states[State::EDITABLE] = true;
+ states[State::FOCUSABLE] = true;
+
+ Toolkit::Control focusControl = Toolkit::KeyInputFocusManager::Get().GetCurrentFocusControl();
+ if (self == focusControl)
+ {
+ states[State::FOCUSED] = true;
+ }
+
return states;
}