DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextLabel, "textFit", MAP, TEXT_FIT )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextLabel, "minLineSize", FLOAT, MIN_LINE_SIZE )
DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextLabel, "renderingBackend", INTEGER, RENDERING_BACKEND )
+DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextLabel, "fontSizeScale", FLOAT, FONT_SIZE_SCALE )
DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT( Toolkit, TextLabel, "textColor", Color::BLACK, TEXT_COLOR )
DALI_ANIMATABLE_PROPERTY_COMPONENT_REGISTRATION( Toolkit, TextLabel, "textColorRed", TEXT_COLOR_RED, TEXT_COLOR, 0 )
DALI_ANIMATABLE_PROPERTY_COMPONENT_REGISTRATION( Toolkit, TextLabel, "textColorGreen", TEXT_COLOR_GREEN, TEXT_COLOR, 1 )
impl.mTextUpdateNeeded = impl.mController->SetDefaultLineSize( lineSize ) || impl.mTextUpdateNeeded;
break;
}
+ case Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE:
+ {
+ const float scale = value.Get< float >();
+ DALI_LOG_INFO( gLogFilter, Debug::General, "TextLabel %p FONT_SIZE_SCALE %f\n", impl.mController.Get(), scale );
+
+ if( !Equals( impl.mController->GetFontSizeScale(), scale ) )
+ {
+ impl.mController->SetFontSizeScale( scale );
+ }
+ break;
+ }
}
// Request relayout when text update is needed. It's necessary to call it
value = impl.mController->GetDefaultLineSize();
break;
}
+ case Toolkit::DevelTextLabel::Property::FONT_SIZE_SCALE:
+ {
+ value = impl.mController->GetFontSizeScale();
+ break;
+ }
}
}
self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
self.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+ // Enable highlightability
+ self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
// Enable the text ellipsis.
mController->SetTextElideEnabled( true ); // If false then text larger than control will overflow
Layout::Engine& engine = mController->GetLayoutEngine();
engine.SetCursorWidth( 0u ); // Do not layout space for the cursor.
+
+ DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) {
+ return std::unique_ptr< Dali::Accessibility::Accessible >(
+ new AccessibleImpl( actor, Dali::Accessibility::Role::LABEL ) );
+ } );
}
void TextLabel::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change )
mRenderingBackend( DEFAULT_RENDERING_BACKEND ),
mTextUpdateNeeded( false )
{
- DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) {
- return std::unique_ptr< Dali::Accessibility::Accessible >(
- new AccessibleImpl( actor, Dali::Accessibility::Role::LABEL ) );
- } );
}
TextLabel::~TextLabel()
return slf.GetProperty( Toolkit::TextLabel::Property::TEXT ).Get< std::string >();
}
+Property::Index TextLabel::AccessibleImpl::GetNamePropertyIndex()
+{
+ return Toolkit::TextLabel::Property::TEXT;
+}
+
std::string TextLabel::AccessibleImpl::GetText( size_t startOffset,
size_t endOffset )
{
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;