// EXTERNAL INCLUDES
#include <dali/public-api/common/stage.h>
#include <dali/public-api/object/type-registry.h>
+#include <dali/public-api/object/type-registry-helper.h>
#include <dali/public-api/render-tasks/render-task-list.h>
// INTERNAL INCLUDES
namespace Toolkit
{
-const Property::Index TextView::PROPERTY_MARKUP_ENABLED( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX );
-const Property::Index TextView::PROPERTY_TEXT( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 1 );
-const Property::Index TextView::PROPERTY_MULTILINE_POLICY( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 2 );
-const Property::Index TextView::PROPERTY_WIDTH_EXCEED_POLICY( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 3 );
-const Property::Index TextView::PROPERTY_HEIGHT_EXCEED_POLICY( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 4 );
-const Property::Index TextView::PROPERTY_LINE_JUSTIFICATION( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 5 );
-const Property::Index TextView::PROPERTY_FADE_BOUNDARY( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 6 );
-const Property::Index TextView::PROPERTY_LINE_HEIGHT_OFFSET( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 7 );
-const Property::Index TextView::PROPERTY_HORIZONTAL_ALIGNMENT( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 8 );
-const Property::Index TextView::PROPERTY_VERTICAL_ALIGNMENT( Internal::TextView::TEXTVIEW_PROPERTY_START_INDEX + 9 );
-
namespace Internal
{
namespace
{
-// Signals
-
-const char* const SIGNAL_TEXT_SCROLLED = "scrolled";
-
const char* MULTILINE_POLICY_NAME[] = {"SplitByNewLineChar", "SplitByWord", "SplitByChar"};
const char* EXCEED_POLICY_NAME[] = {"Original", "Truncate", "Fade", "Split","ShrinkToFit","EllipsizeEnd"};
const char* LINE_JUSTIFICATION_NAME[] = {"Left","Center","Right","Justified"};
// Currently on desktop machines 2k x 2k is the maximum frame buffer size, on target is 4k x 4k.
const float MAX_OFFSCREEN_RENDERING_SIZE = 2048.f;
-//Type Registration
+// Type Registration
BaseHandle Create()
{
return Toolkit::TextView::New();
}
-TypeRegistration typeRegistration( typeid( Toolkit::TextView ), typeid( Toolkit::Control ), Create );
+// Setup properties, signals and actions using the type-registry.
+DALI_TYPE_REGISTRATION_BEGIN( Toolkit::TextView, Toolkit::Control, Create );
+
+DALI_PROPERTY_REGISTRATION( TextView, "markup-enabled", BOOLEAN, MARKUP_ENABLED )
+DALI_PROPERTY_REGISTRATION( TextView, "text", STRING, TEXT )
+DALI_PROPERTY_REGISTRATION( TextView, "multiline-policy", STRING, MULTILINE_POLICY )
+DALI_PROPERTY_REGISTRATION( TextView, "width-exceed-policy", STRING, WIDTH_EXCEED_POLICY )
+DALI_PROPERTY_REGISTRATION( TextView, "height-exceed-policy", STRING, HEIGHT_EXCEED_POLICY )
+DALI_PROPERTY_REGISTRATION( TextView, "line-justification", STRING, LINE_JUSTIFICATION )
+DALI_PROPERTY_REGISTRATION( TextView, "fade-boundary", VECTOR4, FADE_BOUNDARY )
+DALI_PROPERTY_REGISTRATION( TextView, "line-height-offset", FLOAT, LINE_HEIGHT_OFFSET )
+DALI_PROPERTY_REGISTRATION( TextView, "horizontal-alignment", STRING, HORIZONTAL_ALIGNMENT )
+DALI_PROPERTY_REGISTRATION( TextView, "vertical-alignment", STRING, VERTICAL_ALIGNMENT )
-SignalConnectorType signalConnector1( typeRegistration, SIGNAL_TEXT_SCROLLED , &TextView::DoConnectSignal );
+DALI_SIGNAL_REGISTRATION( TextView, "scrolled", SIGNAL_TEXT_SCROLLED )
-PropertyRegistration property1( typeRegistration, "markup-enabled", Toolkit::TextView::PROPERTY_MARKUP_ENABLED, Property::BOOLEAN, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property2( typeRegistration, "text", Toolkit::TextView::PROPERTY_TEXT, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property3( typeRegistration, "multiline-policy", Toolkit::TextView::PROPERTY_MULTILINE_POLICY, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property4( typeRegistration, "width-exceed-policy", Toolkit::TextView::PROPERTY_WIDTH_EXCEED_POLICY, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property5( typeRegistration, "height-exceed-policy", Toolkit::TextView::PROPERTY_HEIGHT_EXCEED_POLICY, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property6( typeRegistration, "line-justification", Toolkit::TextView::PROPERTY_LINE_JUSTIFICATION, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property7( typeRegistration, "fade-boundary", Toolkit::TextView::PROPERTY_FADE_BOUNDARY, Property::VECTOR4, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property8( typeRegistration, "line-height-offset", Toolkit::TextView::PROPERTY_LINE_HEIGHT_OFFSET, Property::FLOAT, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property9( typeRegistration, "horizontal-alignment", Toolkit::TextView::PROPERTY_HORIZONTAL_ALIGNMENT, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
-PropertyRegistration property10( typeRegistration, "vertical-alignment", Toolkit::TextView::PROPERTY_VERTICAL_ALIGNMENT, Property::STRING, &TextView::SetProperty, &TextView::GetProperty );
+DALI_TYPE_REGISTRATION_END()
/**
* Whether the text-view-processor operation sets, inserts, replaces, removes text.
{
std::string value( propertyValue.Get<std::string>() );
- if( propertyIndex == Toolkit::TextView::PROPERTY_HORIZONTAL_ALIGNMENT )
+ if( propertyIndex == Toolkit::TextView::Property::HORIZONTAL_ALIGNMENT )
{
if(value == "HorizontalLeft")
{
DALI_ASSERT_ALWAYS( !"TextView::OnAlignmentPropertySet(). Invalid Property value." );
}
}
- else if( propertyIndex == Toolkit::TextView::PROPERTY_VERTICAL_ALIGNMENT )
+ else if( propertyIndex == Toolkit::TextView::Property::VERTICAL_ALIGNMENT )
{
if( value == "VerticalTop" )
{
TextView& textViewImpl( GetImpl( textView ) );
switch( index )
{
- case Toolkit::TextView::PROPERTY_MARKUP_ENABLED:
+ case Toolkit::TextView::Property::MARKUP_ENABLED:
{
textViewImpl.OnMarkupEnabledPeopertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_TEXT:
+ case Toolkit::TextView::Property::TEXT:
{
textViewImpl.SetText( value.Get<std::string>() );
break;
}
- case Toolkit::TextView::PROPERTY_MULTILINE_POLICY:
+ case Toolkit::TextView::Property::MULTILINE_POLICY:
{
textViewImpl.OnMultilinePolicyPropertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_WIDTH_EXCEED_POLICY:
+ case Toolkit::TextView::Property::WIDTH_EXCEED_POLICY:
{
textViewImpl.OnWidthExceedPolicyPropertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_HEIGHT_EXCEED_POLICY:
+ case Toolkit::TextView::Property::HEIGHT_EXCEED_POLICY:
{
textViewImpl.OnHeightExceedPolicyPropertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_LINE_JUSTIFICATION:
+ case Toolkit::TextView::Property::LINE_JUSTIFICATION:
{
textViewImpl.OnLineJustificationPropertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_FADE_BOUNDARY:
+ case Toolkit::TextView::Property::FADE_BOUNDARY:
{
textViewImpl.OnFadeBoundaryPropertySet( value );
break;
}
- case Toolkit::TextView::PROPERTY_LINE_HEIGHT_OFFSET:
+ case Toolkit::TextView::Property::LINE_HEIGHT_OFFSET:
{
Dali::PointSize pointSize( value.Get<float>() );
textViewImpl.SetLineHeightOffset(pointSize);
break;
}
- case Toolkit::TextView::PROPERTY_HORIZONTAL_ALIGNMENT:
- case Toolkit::TextView::PROPERTY_VERTICAL_ALIGNMENT:
+ case Toolkit::TextView::Property::HORIZONTAL_ALIGNMENT:
+ case Toolkit::TextView::Property::VERTICAL_ALIGNMENT:
{
textViewImpl.OnAlignmentPropertySet( index, value );
break;
TextView& textViewImpl( GetImpl( textView ) );
switch( index )
{
- case Toolkit::TextView::PROPERTY_MARKUP_ENABLED:
+ case Toolkit::TextView::Property::MARKUP_ENABLED:
{
value = textViewImpl.IsMarkupProcessingEnabled();
break;
}
- case Toolkit::TextView::PROPERTY_TEXT:
+ case Toolkit::TextView::Property::TEXT:
{
value = textViewImpl.GetText();
break;
}
- case Toolkit::TextView::PROPERTY_MULTILINE_POLICY:
+ case Toolkit::TextView::Property::MULTILINE_POLICY:
{
value = MULTILINE_POLICY_NAME[ textViewImpl.GetMultilinePolicy() ];
break;
}
- case Toolkit::TextView::PROPERTY_WIDTH_EXCEED_POLICY:
+ case Toolkit::TextView::Property::WIDTH_EXCEED_POLICY:
{
value = EXCEED_POLICY_NAME[ textViewImpl.GetWidthExceedPolicy() ];
break;
}
- case Toolkit::TextView::PROPERTY_HEIGHT_EXCEED_POLICY:
+ case Toolkit::TextView::Property::HEIGHT_EXCEED_POLICY:
{
value = EXCEED_POLICY_NAME[ textViewImpl.GetHeightExceedPolicy() ];
break;
}
- case Toolkit::TextView::PROPERTY_LINE_JUSTIFICATION:
+ case Toolkit::TextView::Property::LINE_JUSTIFICATION:
{
value = LINE_JUSTIFICATION_NAME[ textViewImpl.GetLineJustification() ];
break;
}
- case Toolkit::TextView::PROPERTY_FADE_BOUNDARY:
+ case Toolkit::TextView::Property::FADE_BOUNDARY:
{
Toolkit::TextView::FadeBoundary boundary = textViewImpl.GetFadeBoundary();
value = Vector4( static_cast<float>( boundary.mLeft.value ),
static_cast<float>( boundary.mBottom.value ) );
break;
}
- case Toolkit::TextView::PROPERTY_LINE_HEIGHT_OFFSET:
+ case Toolkit::TextView::Property::LINE_HEIGHT_OFFSET:
{
value = textViewImpl.GetLineHeightOffset().value;
break;
}
- case Toolkit::TextView::PROPERTY_HORIZONTAL_ALIGNMENT:
+ case Toolkit::TextView::Property::HORIZONTAL_ALIGNMENT:
{
value = textViewImpl.OnHorizontalAlignmentPropertyGet();
break;
}
- case Toolkit::TextView::PROPERTY_VERTICAL_ALIGNMENT:
+ case Toolkit::TextView::Property::VERTICAL_ALIGNMENT:
{
value = textViewImpl.OnVerticalAlignmentPropertyGet();
break;