X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Ftext-controls%2Ftext-field-impl.cpp;h=6083974475db04a4c2dc3ee6fc75228a6c5a8b24;hp=2aff8e488016b88cb12a240e29bdd0a1f36434e5;hb=9ef24d9915312eab4d2e28814aab77fe7803d7e8;hpb=3c2a5c792a154d11bd97cf587ae142b277ad45c0 diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp index 2aff8e4..6083974 100644 --- a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include #include #include @@ -32,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -135,6 +138,8 @@ DALI_PROPERTY_REGISTRATION( Toolkit, TextField, "emboss", DALI_PROPERTY_REGISTRATION( Toolkit, TextField, "inputEmboss", MAP, INPUT_EMBOSS ) DALI_PROPERTY_REGISTRATION( Toolkit, TextField, "outline", MAP, OUTLINE ) DALI_PROPERTY_REGISTRATION( Toolkit, TextField, "inputOutline", MAP, INPUT_OUTLINE ) +DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "hiddenInputSettings", MAP, HIDDEN_INPUT_SETTINGS ) +DALI_DEVEL_PROPERTY_REGISTRATION( Toolkit, TextField, "pixelSize", FLOAT, PIXEL_SIZE ) DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "textChanged", SIGNAL_TEXT_CHANGED ) DALI_SIGNAL_REGISTRATION( Toolkit, TextField, "maxLengthReached", SIGNAL_MAX_LENGTH_REACHED ) @@ -252,9 +257,9 @@ void TextField::SetProperty( BaseObject* object, Property::Index index, const Pr const float pointSize = value.Get< float >(); DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p POINT_SIZE %f\n", impl.mController.Get(), pointSize ); - if( !Equals( impl.mController->GetDefaultPointSize(), pointSize ) ) + if( !Equals( impl.mController->GetDefaultFontSize( Text::Controller::POINT_SIZE ), pointSize ) ) { - impl.mController->SetDefaultPointSize( pointSize ); + impl.mController->SetDefaultFontSize( pointSize, Text::Controller::POINT_SIZE ); } } break; @@ -723,6 +728,29 @@ void TextField::SetProperty( BaseObject* object, Property::Index index, const Pr } break; } + case Toolkit::DevelTextField::Property::HIDDEN_INPUT_SETTINGS: + { + const Property::Map* map = value.GetMap(); + if (map) + { + impl.mController->SetHiddenInputOption(*map); + } + break; + } + case Toolkit::DevelTextField::Property::PIXEL_SIZE: + { + if( impl.mController ) + { + const float pixelSize = value.Get< float >(); + DALI_LOG_INFO( gLogFilter, Debug::General, "TextField %p PIXEL_SIZE %f\n", impl.mController.Get(), pixelSize ); + + if( !Equals( impl.mController->GetDefaultFontSize( Text::Controller::PIXEL_SIZE ), pixelSize ) ) + { + impl.mController->SetDefaultFontSize( pixelSize, Text::Controller::PIXEL_SIZE ); + } + } + break; + } } // switch } // textfield } @@ -792,7 +820,7 @@ Property::Value TextField::GetProperty( BaseObject* object, Property::Index inde { if( impl.mController ) { - value = impl.mController->GetDefaultPointSize(); + value = impl.mController->GetDefaultFontSize( Text::Controller::POINT_SIZE ); } break; } @@ -1086,6 +1114,21 @@ Property::Value TextField::GetProperty( BaseObject* object, Property::Index inde GetOutlineProperties( impl.mController, value, Text::EffectStyle::INPUT ); break; } + case Toolkit::DevelTextField::Property::HIDDEN_INPUT_SETTINGS: + { + Property::Map map; + impl.mController->GetHiddenInputOption(map); + value = map; + break; + } + case Toolkit::DevelTextField::Property::PIXEL_SIZE: + { + if( impl.mController ) + { + value = impl.mController->GetDefaultFontSize( Text::Controller::PIXEL_SIZE ); + } + break; + } } //switch } @@ -1162,6 +1205,9 @@ void TextField::OnInitialize() // Disable the smooth handle panning. mController->SetSmoothHandlePanEnabled( false ); + mController->SetNoTextDoubleTapAction( Controller::NoTextTap::HIGHLIGHT ); + mController->SetNoTextLongPressAction( Controller::NoTextTap::HIGHLIGHT ); + // Forward input events to controller EnableGestureDetection( static_cast( Gesture::Tap | Gesture::Pan | Gesture::LongPress ) ); GetTapGestureDetector().SetMaximumTapsRequired( 2 ); @@ -1206,20 +1252,25 @@ void TextField::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange:: const std::string& newFont = GetImpl( styleManager ).GetDefaultFontFamily(); // Property system did not set the font so should update it. mController->UpdateAfterFontChange( newFont ); + RelayoutRequest(); break; } case StyleChange::DEFAULT_FONT_SIZE_CHANGE: { GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) ); + RelayoutRequest(); break; } case StyleChange::THEME_CHANGE: { - GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) ); + // Nothing to do, let control base class handle this break; } } + + // Up call to Control + Control::OnStyleChange( styleManager, change ); } Vector3 TextField::GetNaturalSize() @@ -1312,6 +1363,7 @@ void TextField::RenderText( Text::Controller::UpdateTextType updateTextType ) ++it ) { self.Add( *it ); + DevelActor::LowerToBottom(*it); } mClippingDecorationActors.clear(); @@ -1402,10 +1454,14 @@ bool TextField::OnKeyEvent( const KeyEvent& event ) { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnKeyEvent %p keyCode %d\n", mController.Get(), event.keyCode ); - if( Dali::DALI_KEY_ESCAPE == event.keyCode || - "Return" == event.keyPressedName ) // Make a Dali key code for this + if( Dali::DALI_KEY_ESCAPE == event.keyCode ) // Make a Dali key code for this { - ClearKeyInputFocus(); + // Make sure ClearKeyInputFocus when only key is up + if( event.state == KeyEvent::Up ) + { + ClearKeyInputFocus(); + } + return true; }