#include <dali/public-api/text-abstraction/text-abstraction.h>
// INTERNAL INCLUDES
+#include "shared/multi-language-strings.h"
#include "shared/view.h"
using namespace Dali;
using namespace Dali::Toolkit;
+using namespace MultiLanguageStrings;
namespace
{
-const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
+ const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
-const float BORDER_WIDTH = 4.0f;
+ const float BORDER_WIDTH = 4.0f;
+
+ const unsigned int KEY_ZERO = 10;
+ const unsigned int KEY_ONE = 11;
+ const unsigned int KEY_F = 41;
+ const unsigned int KEY_H = 43;
+ const unsigned int KEY_V = 55;
+ const unsigned int KEY_M = 58;
+ const unsigned int KEY_L = 46;
+ const unsigned int KEY_S = 39;
+ const unsigned int KEY_PLUS = 21;
+ const unsigned int KEY_MINUS = 20;
+
+ const char* H_ALIGNMENT_STRING_TABLE[] =
+ {
+ "BEGIN",
+ "CENTER",
+ "END"
+ };
+
+ const unsigned int H_ALIGNMENT_STRING_COUNT = sizeof( H_ALIGNMENT_STRING_TABLE ) / sizeof( H_ALIGNMENT_STRING_TABLE[0u] );
+
+ const char* V_ALIGNMENT_STRING_TABLE[] =
+ {
+ "TOP",
+ "CENTER",
+ "BOTTOM"
+ };
+
+ const unsigned int V_ALIGNMENT_STRING_COUNT = sizeof( V_ALIGNMENT_STRING_TABLE ) / sizeof( V_ALIGNMENT_STRING_TABLE[0u] );
} // unnamed namespace
public:
TextFieldExample( Application& application )
- : mApplication( application )
+ : mApplication( application ),
+ mLanguageId( 0u ),
+ mAlignment( 0u )
{
// Connect to the Application's Init signal
mApplication.InitSignal().Connect( this, &TextFieldExample::Create );
Stage stage = Stage::GetCurrent();
+ mTapGestureDetector = TapGestureDetector::New();
+ mTapGestureDetector.Attach( stage.GetRootLayer() );
+ mTapGestureDetector.DetectedSignal().Connect( this, &TextFieldExample::OnTap );
+
stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent);
Vector2 stageSize = stage.GetSize();
- mContainer = Control::New();
- mContainer.SetName( "Container" );
- mContainer.SetParentOrigin( ParentOrigin::CENTER );
- mContainer.SetSize( Vector2(stageSize.width*0.6f, stageSize.width*0.6f) );
- mContainer.SetBackgroundImage( ResourceImage::New( BACKGROUND_IMAGE ) );
- mContainer.GetChildAt(0).SetZ(-1.0f);
- stage.Add( mContainer );
+ Control container = Control::New();
+ container.SetName( "Container" );
+ container.SetParentOrigin( ParentOrigin::CENTER );
+ container.SetSize( Vector2(stageSize.width*0.6f, stageSize.width*0.6f) );
+ container.SetBackgroundColor( Color::WHITE );
+ container.GetChildAt(0).SetZ(-1.0f);
+ stage.Add( container );
- TextField field = TextField::New();
- field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- field.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
- field.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+ mField = TextField::New();
+ mField.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ mField.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+ mField.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+ mField.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed folder" );
+ mField.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( BORDER_WIDTH, BORDER_WIDTH, stageSize.width - BORDER_WIDTH*2, stageSize.height - BORDER_WIDTH*2 ) );
- mContainer.Add( field );
+ container.Add( mField );
- field.SetProperty( TextField::Property::TEXT, "Hello" );
- field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( BORDER_WIDTH, BORDER_WIDTH, stageSize.width - BORDER_WIDTH*2, stageSize.height - BORDER_WIDTH*2 ) );
-
- Property::Value fieldText = field.GetProperty( TextField::Property::TEXT );
+ Property::Value fieldText = mField.GetProperty( TextField::Property::TEXT );
std::cout << "Displaying text: " << fieldText.Get< std::string >() << std::endl;
}
+ void OnTap( Actor actor, const TapGesture& tapGesture )
+ {
+ mField.ClearKeyInputFocus();
+ }
+
/**
* Main key event handler
*/
{
mApplication.Quit();
}
+ else if( event.IsCtrlModifier() )
+ {
+ switch( event.keyCode )
+ {
+ // Select rendering back-end
+ case KEY_ZERO: // fall through
+ case KEY_ONE:
+ {
+ mField.SetProperty( TextField::Property::RENDERING_BACKEND, event.keyCode - 10 );
+ break;
+ }
+ case KEY_H: // Horizontal alignment
+ {
+ if( ++mAlignment >= H_ALIGNMENT_STRING_COUNT )
+ {
+ mAlignment = 0u;
+ }
+
+ mField.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, H_ALIGNMENT_STRING_TABLE[ mAlignment ] );
+ break;
+ }
+ case KEY_V: // Vertical alignment
+ {
+ if( ++mAlignment >= V_ALIGNMENT_STRING_COUNT )
+ {
+ mAlignment = 0u;
+ }
+
+ mField.SetProperty( TextField::Property::VERTICAL_ALIGNMENT, V_ALIGNMENT_STRING_TABLE[ mAlignment ] );
+ break;
+ }
+ case KEY_L: // Language
+ {
+ const Language& language = LANGUAGES[ mLanguageId ];
+
+ mField.SetProperty( TextField::Property::TEXT, language.text );
+
+ if( ++mLanguageId >= NUMBER_OF_LANGUAGES )
+ {
+ mLanguageId = 0u;
+ }
+ break;
+ }
+ case KEY_S: // Shadow color
+ {
+ if( Color::BLACK == mField.GetProperty<Vector4>( TextField::Property::SHADOW_COLOR ) )
+ {
+ mField.SetProperty( TextField::Property::SHADOW_COLOR, Color::RED );
+ }
+ else
+ {
+ mField.SetProperty( TextField::Property::SHADOW_COLOR, Color::BLACK );
+ }
+ break;
+ }
+ case KEY_PLUS: // Increase shadow offset
+ {
+ mField.SetProperty( TextField::Property::SHADOW_OFFSET, mField.GetProperty<Vector2>( TextField::Property::SHADOW_OFFSET ) + Vector2( 1.0f, 1.0f ) );
+ break;
+ }
+ case KEY_MINUS: // Decrease shadow offset
+ {
+ mField.SetProperty( TextField::Property::SHADOW_OFFSET, mField.GetProperty<Vector2>( TextField::Property::SHADOW_OFFSET ) - Vector2( 1.0f, 1.0f ) );
+ break;
+ }
+ }
+ }
}
}
Application& mApplication;
- Control mContainer;
+ TextField mField;
+
+ TapGestureDetector mTapGestureDetector;
+
+ unsigned int mLanguageId;
+ unsigned int mAlignment;
};
void RunTest( Application& application )
const char* DEFAULT_TEXT_STYLE_FONT_FAMILY("HelveticaNue");
const char* DEFAULT_TEXT_STYLE_FONT_STYLE("Regular");
const float DEFAULT_TEXT_STYLE_POINT_SIZE( 8.0f );
-const Dali::Vector4 DEFAULT_TEXT_STYLE_COLOR(0.0f, 0.0f, 0.0f, 1.0f);
const Dali::Toolkit::Alignment::Padding DEFAULT_PLAY_PADDING(12.0f, 12.0f, 12.0f, 12.0f);
const Dali::Toolkit::Alignment::Padding DEFAULT_MODE_SWITCH_PADDING(8.0f, 8.0f, 8.0f, 8.0f);
label.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
label.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
label.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::HEIGHT );
- label.SetColor( DEFAULT_TEXT_STYLE_COLOR );
// Add title to the tool bar.
const float padding( style.mToolBarPadding );
label.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
label.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
label.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::HEIGHT );
- label.SetColor( DEFAULT_TEXT_STYLE_COLOR );
return label;
}