// EXTERNAL INCLUDES
#include <libintl.h>
+#include <string.h>
#include <cfloat>
#include <dali/public-api/animation/animation.h>
#include <dali/devel-api/images/nine-patch-image.h>
#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
#include <dali-toolkit/devel-api/controls/buttons/button-devel.h>
#include <dali-toolkit/devel-api/controls/control-depth-index-ranges.h>
+#include <dali-toolkit/devel-api/controls/control-devel.h>
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup-callback-interface.h>
#include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
const char* const OPTION_PASTE("optionPaste"); // "Paste" popup option.
const char* const OPTION_CLIPBOARD("optionClipboard"); // "Clipboard" popup option.
+const std::string IDS_LTR( "IDS_LTR" );
+const std::string RTL_DIRECTION( "RTL" );
+
BaseHandle Create()
{
return Toolkit::TextSelectionPopup::New( NULL );
case Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER:
{
Property::Map map;
- Toolkit::Visual::Base visual = impl.GetVisual( Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER );
+ Toolkit::Visual::Base visual = DevelControl::GetVisual( impl, Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER );
if( visual )
{
visual.CreatePropertyMap( map );
self.Add( mToolbar );
}
+ // Whether to mirror the list of buttons (for right to left languages)
+ bool mirror = false;
+ char* idsLtr = GET_LOCALE_TEXT( IDS_LTR.c_str() );
+ if( NULL != idsLtr )
+ {
+ mirror = ( 0 == strcmp( idsLtr, RTL_DIRECTION.c_str() ) );
+
+ if( mirror )
+ {
+ std::reverse( mOrderListOfButtons.begin(), mOrderListOfButtons.end() );
+ }
+ }
+
// Iterate list of buttons and add active ones to Toolbar
std::size_t numberOfOptionsRequired = GetNumberOfEnabledOptions();
std::size_t numberOfOptionsAdded = 0u;
AddOption( button, ( numberOfOptionsAdded < numberOfOptionsRequired ) , showIcons, showCaptions );
}
}
+
+ if( mirror )
+ {
+ mToolbar.ScrollTo( Vector2( mPopupMaxSize.x, 0.f ) );
+ }
}
void TextSelectionPopup::CreateBackgroundBorder( Property::Map& propertyMap )
{
// Removes previous image if necessary
- UnregisterVisual( Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER );
+ DevelControl::UnregisterVisual( *this, Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER );
if( ! propertyMap.Empty() )
{
if( visual )
{
- RegisterVisual( Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER, visual );
- visual.SetDepthIndex( DepthIndex::CONTENT );
+ DevelControl::RegisterVisual( *this, Toolkit::TextSelectionPopup::Property::BACKGROUND_BORDER, visual, DepthIndex::CONTENT );
}
}
}