From 9950e5ec78fa88379dbfa3fdf952a0c6b578adbd Mon Sep 17 00:00:00 2001 From: Kingsley Stephens Date: Thu, 11 Sep 2014 11:59:26 +0100 Subject: [PATCH] Make radio buttons work with size negotiation, bug fixes. Change-Id: I68a375ed8311aecccd825424803f7982b36e9742 --- .../src/dali-toolkit-unmanaged/CMakeLists.txt | 1 + .../utc-Dali-RadioButton.cpp | 272 +++++++++++++++++++++ base/dali-toolkit/images/radio-button-active.png | Bin 949 -> 4843 bytes base/dali-toolkit/images/radio-button-inactive.png | Bin 795 -> 3754 bytes .../internal/controls/buttons/button-impl.cpp | 10 + .../internal/controls/buttons/button-impl.h | 6 + .../controls/buttons/check-box-button-impl.cpp | 4 +- .../internal/controls/buttons/push-button-impl.cpp | 12 +- .../internal/controls/buttons/push-button-impl.h | 6 - .../controls/buttons/radio-button-impl.cpp | 118 ++++++--- .../internal/controls/buttons/radio-button-impl.h | 9 +- .../public-api/controls/buttons/button.cpp | 6 + .../public-api/controls/buttons/button.h | 11 + .../public-api/controls/buttons/push-button.cpp | 6 - .../public-api/controls/buttons/push-button.h | 9 - .../public-api/controls/buttons/radio-button.h | 5 +- 16 files changed, 401 insertions(+), 74 deletions(-) create mode 100644 automated-tests/src/dali-toolkit-unmanaged/utc-Dali-RadioButton.cpp diff --git a/automated-tests/src/dali-toolkit-unmanaged/CMakeLists.txt b/automated-tests/src/dali-toolkit-unmanaged/CMakeLists.txt index 13c2d32..60d94aa 100644 --- a/automated-tests/src/dali-toolkit-unmanaged/CMakeLists.txt +++ b/automated-tests/src/dali-toolkit-unmanaged/CMakeLists.txt @@ -50,6 +50,7 @@ SET(TC_SOURCES utc-Dali-ScrollViewEffect.cpp utc-Dali-TextInput.cpp utc-Dali-StyleManager.cpp + utc-Dali-RadioButton.cpp ) # Append list of test harness files (Won't get parsed for test cases) diff --git a/automated-tests/src/dali-toolkit-unmanaged/utc-Dali-RadioButton.cpp b/automated-tests/src/dali-toolkit-unmanaged/utc-Dali-RadioButton.cpp new file mode 100644 index 0000000..f39ce42 --- /dev/null +++ b/automated-tests/src/dali-toolkit-unmanaged/utc-Dali-RadioButton.cpp @@ -0,0 +1,272 @@ +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include +#include +#include +#include +#include + + +using namespace Dali; +using namespace Dali::Toolkit; + +void dali_radio_button_startup(void) +{ + test_return_value = TET_UNDEF; +} + +void dali_radio_button_cleanup(void) +{ + test_return_value = TET_PASS; +} + +namespace +{ + +static bool gObjectCreatedCallBackCalled; + +static void TestCallback(BaseHandle handle) +{ + gObjectCreatedCallBackCalled = true; +} + +} + +int UtcDaliRadioButtonNew(void) +{ + ToolkitTestApplication application; + tet_infoline(" UtcDaliRadioButtonNew"); + + // Create the Slider actor + RadioButton radioButton; + + DALI_TEST_CHECK( !radioButton ); + + radioButton = RadioButton::New(); + + DALI_TEST_CHECK( radioButton ); + + RadioButton radioButton2(radioButton); + + DALI_TEST_CHECK( radioButton2 == radioButton ); + + //Additional check to ensure object is created by checking if it's registered + ObjectRegistry registry = Stage::GetCurrent().GetObjectRegistry(); + DALI_TEST_CHECK( registry ); + + gObjectCreatedCallBackCalled = false; + registry.ObjectCreatedSignal().Connect( &TestCallback ); + { + RadioButton radioButton = RadioButton::New(); + } + DALI_TEST_CHECK( gObjectCreatedCallBackCalled ); + END_TEST; +} + +int UtcDaliRadioButtonDestructor(void) +{ + ToolkitTestApplication application; + + RadioButton* radioButton = new RadioButton(); + delete radioButton; + + DALI_TEST_CHECK( true ); + END_TEST; +} + +int UtcDaliRadioButtonDownCast(void) +{ + ToolkitTestApplication application; + + Handle handle = RadioButton::New(); + + RadioButton radioButton = RadioButton::DownCast( handle ); + + DALI_TEST_CHECK( radioButton == handle ); + END_TEST; +} + +int UtcDaliRadioButtonLabelActor(void) +{ + ToolkitTestApplication application; + + TextView actor1 = TextView::New( "test actor 1" ); + + RadioButton radioButton = RadioButton::New( actor1 ); + DALI_TEST_CHECK( actor1 == radioButton.GetLabel() ); + + TextView actor2 = TextView::New( "test actor 2" ); + radioButton.SetLabel( actor2 ); + DALI_TEST_CHECK( actor2 == radioButton.GetLabel() ); + + END_TEST; +} + +int UtcDaliRadioButtonActive(void) +{ + ToolkitTestApplication application; + + RadioButton radioButton = RadioButton::New(); + + // Default active + DALI_TEST_CHECK( radioButton.IsActive() == false ); + + // False to true + radioButton.ToggleState(); + DALI_TEST_CHECK( radioButton.IsActive() == true ); + + // True to false + radioButton.ToggleState(); + DALI_TEST_CHECK( radioButton.IsActive() == false ); + + // False + radioButton.SetActive( false ); + DALI_TEST_CHECK( radioButton.IsActive() == false ); + + // True + radioButton.SetActive( true ); + DALI_TEST_CHECK( radioButton.IsActive() == true ); + + // False + radioButton.SetActive( false ); + DALI_TEST_CHECK( radioButton.IsActive() == false ); + + END_TEST; +} + +int UtcDaliRadioButtonActiveProperty(void) +{ + ToolkitTestApplication application; // Exceptions require ToolkitTestApplication + tet_infoline(" UtcDaliRadioButtonActiveProperty"); + + // Create the RadioButton actor + RadioButton radioButton = RadioButton::New(); + Stage::GetCurrent().Add( radioButton ); + radioButton.SetParentOrigin(ParentOrigin::TOP_LEFT); + radioButton.SetAnchorPoint(ParentOrigin::TOP_LEFT); + radioButton.SetPosition( 0.0f, 0.0f ); + + // Default active + DALI_TEST_CHECK( radioButton.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + + // Setting false active + radioButton.SetProperty( RadioButton::PROPERTY_ACTIVE, false ); + DALI_TEST_CHECK( radioButton.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + + // Setting true active + radioButton.SetProperty( RadioButton::PROPERTY_ACTIVE, true ); + DALI_TEST_CHECK( radioButton.GetProperty( RadioButton::PROPERTY_ACTIVE ) == true ); + + // Setting false again + radioButton.SetProperty( RadioButton::PROPERTY_ACTIVE, false ); + DALI_TEST_CHECK( radioButton.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + + // Test selecting radio buttons + RadioButton radioButton2 = RadioButton::New( "label" ); + radioButton2.SetParentOrigin(ParentOrigin::TOP_LEFT); + radioButton2.SetAnchorPoint(ParentOrigin::TOP_LEFT); + radioButton2.SetPosition( 0.0f, 0.0f ); + + RadioButton radioButton3 = RadioButton::New( "label" ); + radioButton3.SetParentOrigin(ParentOrigin::TOP_LEFT); + radioButton3.SetAnchorPoint(ParentOrigin::TOP_LEFT); + radioButton3.SetPosition( 0.0f, 40.0f ); + + Actor radioGroup = Actor::New(); + Stage::GetCurrent().Add( radioGroup ); + radioGroup.SetParentOrigin(ParentOrigin::TOP_LEFT); + radioGroup.SetAnchorPoint(ParentOrigin::TOP_LEFT); + radioGroup.SetPosition( 0.0f, 0.0f ); + radioGroup.SetSize( 400.0f, 400.0 ); + + radioGroup.Add( radioButton2 ); + radioGroup.Add( radioButton3 ); + + application.SendNotification(); + application.Render(); + + // Simulate touch events + DALI_TEST_CHECK( radioButton2.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + DALI_TEST_CHECK( radioButton3.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + + // Select first radio + { + Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent(); + + const Dali::TouchPoint pointUp( 0, TouchPoint::Up, 10.0f, 10.0f ); + event.AddPoint( pointUp ); + + application.ProcessEvent( event ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( radioButton2.GetProperty( RadioButton::PROPERTY_ACTIVE ) == true ); + DALI_TEST_CHECK( radioButton3.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + } + + // Select an already selected radio + { + Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent(); + + const Dali::TouchPoint pointDown( 0, TouchPoint::Up, 10.0f, 10.0f ); + event.AddPoint( pointDown ); + + application.ProcessEvent( event ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( radioButton2.GetProperty( RadioButton::PROPERTY_ACTIVE ) == true ); + DALI_TEST_CHECK( radioButton3.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + } + + // Select second radio + { + Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent(); + + const Dali::TouchPoint pointDown( 0, TouchPoint::Up, 10.0f, 50.0f ); + event.AddPoint( pointDown ); + + application.ProcessEvent( event ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( radioButton2.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + DALI_TEST_CHECK( radioButton3.GetProperty( RadioButton::PROPERTY_ACTIVE ) == true ); + } + + // Select outside radio group + { + Dali::Integration::TouchEvent event = Dali::Integration::TouchEvent(); + + const Dali::TouchPoint pointDown( 0, TouchPoint::Up, 10.0f, 500.0f ); + event.AddPoint( pointDown ); + + application.ProcessEvent( event ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_CHECK( radioButton2.GetProperty( RadioButton::PROPERTY_ACTIVE ) == false ); + DALI_TEST_CHECK( radioButton3.GetProperty( RadioButton::PROPERTY_ACTIVE ) == true ); + } + + END_TEST; +} diff --git a/base/dali-toolkit/images/radio-button-active.png b/base/dali-toolkit/images/radio-button-active.png index a59c43879303d6ea185ddf63b877153520df1888..d49cbb5f62a5357757c3622ce95a961dc3bb152c 100644 GIT binary patch literal 4843 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 Rdzb(K002ovPDHLkV1oLqg5v-H delta 925 zcmV;O17iH^CA9}3iBL{Q4GJ0x0000DNk~Le0000G0000G2nGNE03Y-JVUZyxe*;%Z zL_t(|+GJBpY!hb?{`TPqeuNk&c1dIh#l}u5B{52nr8HELXrK|5Qjt~);vwb0jT47n zDlQSCw_bBd#Gz8v14=P8DqN^kijqi9F;WvHienNC)W!I{@!H;JXIC6rnAIHqe`n^O z`Mz(M`T2RQuC8KaWCRX}0}R6;f1Azv>~{Mne!o9TXSPr%WNNkAN-!9F$+9e3trphT z*U{hK4`zCL8cRz{*xlWQ&1P#$CX?UrJbyV93I)AhuUW8CsUVZdys6jgcVe;Ft&Wb4 zTz7XjhKGm2Tdh`b9EV&kcT5n3yQ8C{F?t#QHJ{IiNF?H?Lf6*T*1o7#f2&_Poz6dv zT>f25TRNS-ck$B2L94}zX03(&LK?3c&!OoWj@oy4t_(~dJ|&m3F+W%+)i(TG!b zuefM5imtA%8*_7WU)$}6P|lZdZ~q4*4sIi*{DDm+iD%*yJxZUo) zy}i9VEOqedz`(#qilpH0Y8H=6zXBo$t*%3^E2gV;4V-AjTKN$&r7cKJ8R2l)IygA^ z8Q&0KF3N>i4ng)xDiw{UU-!n5aGe{&7 z{)L5wFUjSmeCZSlr(P}MgU zi{(rDksx{kny$jldN3M1O|LPKZ=q8^>s_ zn=Y5@Jkjeks4{|##A2~1(Jnj;1OnfZh&D*d<~<*e$4Ox#R#sLFb!8PrxsuQ4zw>xJ z;|9-En=6${&*|=W+QJkSGI5xkoCFCF{|Ybw%E_eCVxlxU00000NkvXXu0mjfVMVTc diff --git a/base/dali-toolkit/images/radio-button-inactive.png b/base/dali-toolkit/images/radio-button-inactive.png index 04b05da2372e6c9a6bcffa81288e3861d5875f74..6f647e882697872ae94efcddcaf275f54e35f5bc 100644 GIT binary patch delta 3752 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 SM-g|tu5ZL=xeNNFD- zi#|XKA$G_nE1_LzNYYw}P;dlI5skCesL|N({2k~bZ4X@JUjO@@^9@(Axw%P^NQ9P` zmuX~VgcJ$|WwTkcR;#^cu~?kge=AF+QmWBtgl#rkPN`H`*e9B#lO6JUl$y5JEhdnVGSTkB`fMwOWl*sZ^oWYHhpS?&l_xDL*weMN3OdB-Cm( zNs>hQe15vwY`*q-y>4`-Kg(=3lf&V#0O-;F{{F3cy?$4x(|zQ-;^#NUe?%hjc71)_ zrBbP=QLj_ERHC!9Gos;;G+Hf2&Dg;(~@)%$Y%XkIpnVH)n{);}%R3lzcv)X?1n=B}CLS*V95lro@v# z3zD$pUz~L?5%2YSJsAv!fB8%%vn?>e^~J@-tK6mCYRMN_>C0*eI{Zx=Zq3fls$DME zO))VsG0$T$02kBvXTgE*C?PLA(bGl+Q{s6cHgthsGi(E+Se;^i%g_H=;*I+RC ziZ$o~fR$!`yqJ;-OU-*|(*<|V1~)(!_R{I}XC+&NO&}BsygxWNXl`w7J!T-m2MA38_T7#~qiChecked( handle ); - // Emit signal. - mClickedSignalV2.Emit( handle ); + // Raise toggled signal + mToggledSignalV2.Emit( handle, mChecked ); } } diff --git a/base/dali-toolkit/internal/controls/buttons/push-button-impl.cpp b/base/dali-toolkit/internal/controls/buttons/push-button-impl.cpp index 46159ed..153c396 100644 --- a/base/dali-toolkit/internal/controls/buttons/push-button-impl.cpp +++ b/base/dali-toolkit/internal/controls/buttons/push-button-impl.cpp @@ -59,9 +59,8 @@ BaseHandle Create() TypeRegistration typeRegistration( typeid(Toolkit::PushButton), typeid(Toolkit::Button), Create ); -SignalConnectorType signalConnector1( typeRegistration, Toolkit::PushButton::SIGNAL_TOGGLED , &PushButton::DoConnectSignal ); -SignalConnectorType signalConnector2( typeRegistration, Toolkit::PushButton::SIGNAL_PRESSED , &PushButton::DoConnectSignal ); -SignalConnectorType signalConnector3( typeRegistration, Toolkit::PushButton::SIGNAL_RELEASED, &PushButton::DoConnectSignal ); +SignalConnectorType signalConnector1( typeRegistration, Toolkit::PushButton::SIGNAL_PRESSED , &PushButton::DoConnectSignal ); +SignalConnectorType signalConnector2( typeRegistration, Toolkit::PushButton::SIGNAL_RELEASED, &PushButton::DoConnectSignal ); TypeAction action1( typeRegistration, Toolkit::PushButton::ACTION_PUSH_BUTTON_CLICK, &PushButton::DoAction ); @@ -356,11 +355,6 @@ Actor& PushButton::GetFadeOutButtonImage() return mFadeOutButtonImage; } -Toolkit::PushButton::ToggledSignalV2& PushButton::ToggledSignal() -{ - return mToggledSignalV2; -} - Toolkit::PushButton::PressedSignalV2& PushButton::PressedSignal() { return mPressedSignalV2; @@ -584,7 +578,7 @@ void PushButton::OnButtonUp() // Notifies the painter the button has been toggled. GetPushButtonPainter( mPainter )->Toggled( handle ); - //Emit signal. + // Emit signal. mToggledSignalV2.Emit( handle, mToggled ); } else diff --git a/base/dali-toolkit/internal/controls/buttons/push-button-impl.h b/base/dali-toolkit/internal/controls/buttons/push-button-impl.h index a6c0b86..a3264ad 100644 --- a/base/dali-toolkit/internal/controls/buttons/push-button-impl.h +++ b/base/dali-toolkit/internal/controls/buttons/push-button-impl.h @@ -242,11 +242,6 @@ public: // Signals /** - * @copydoc Dali::Toolkit::PushButton::ToggledSignal() - */ - Toolkit::PushButton::ToggledSignalV2& ToggledSignal(); - - /** * @copydoc Dali::Toolkit::PushButton::PressedSignal() */ Toolkit::PushButton::PressedSignalV2& PressedSignal(); @@ -394,7 +389,6 @@ private: bool mToggled; ///< Stores the toggle state. // Signals - Toolkit::PushButton::ToggledSignalV2 mToggledSignalV2; ///< Signal emitted when the button is toggled. Toolkit::PushButton::PressedSignalV2 mPressedSignalV2; ///< Signal emitted when the button is pressed. Toolkit::PushButton::ReleasedSignalV2 mReleasedSignalV2; ///< Signal emitted when the button is released. diff --git a/base/dali-toolkit/internal/controls/buttons/radio-button-impl.cpp b/base/dali-toolkit/internal/controls/buttons/radio-button-impl.cpp index 669394a..41e4a6f 100644 --- a/base/dali-toolkit/internal/controls/buttons/radio-button-impl.cpp +++ b/base/dali-toolkit/internal/controls/buttons/radio-button-impl.cpp @@ -40,18 +40,15 @@ BaseHandle Create() return Toolkit::RadioButton::New(); } -TypeRegistration typeRegistration(typeid (Toolkit::RadioButton ), typeid (Toolkit::Button ), Create); +TypeRegistration typeRegistration( typeid( Toolkit::RadioButton ), typeid( Toolkit::Button ), Create); PropertyRegistration property1(typeRegistration, "active", Toolkit::RadioButton::PROPERTY_ACTIVE, Property::BOOLEAN, &RadioButton::SetProperty, &RadioButton::GetProperty); PropertyRegistration property2(typeRegistration, "label-actor", Toolkit::RadioButton::PROPERTY_LABEL_ACTOR, Property::MAP, &RadioButton::SetProperty, &RadioButton::GetProperty); -} -namespace -{ const char* const INACTIVE_BUTTON_IMAGE_DIR = DALI_IMAGE_DIR "radio-button-inactive.png"; const char* const ACTIVE_BUTTON_IMAGE_DIR = DALI_IMAGE_DIR "radio-button-active.png"; -const Vector3 IMAGE_WIDTH(16.f, 0.f, 0.f); -const Vector3 DISTANCE_BETWEEN_IMAGE_AND_LABEL(5.f, 0.f, 0.f); + +const Vector3 DISTANCE_BETWEEN_IMAGE_AND_LABEL(5.0f, 0.0f, 0.0f); } Dali::Toolkit::RadioButton RadioButton::New() @@ -70,14 +67,12 @@ Dali::Toolkit::RadioButton RadioButton::New() } RadioButton::RadioButton() - : Button(), - mActive(false) + : mActive(false) { - mInactiveImage = Dali::Image::New(INACTIVE_BUTTON_IMAGE_DIR); - mActiveImage = Dali::Image::New(ACTIVE_BUTTON_IMAGE_DIR); + mInactiveImage = Dali::Image::New( INACTIVE_BUTTON_IMAGE_DIR ); + mActiveImage = Dali::Image::New( ACTIVE_BUTTON_IMAGE_DIR ); - mImageActor = Dali::ImageActor::New(mInactiveImage); - mLabel = Actor::New(); + mRadioIcon = Dali::ImageActor::New( mInactiveImage ); } RadioButton::~RadioButton() @@ -86,23 +81,40 @@ RadioButton::~RadioButton() void RadioButton::SetLabel(const std::string& label) { - mLabel.Reset(); - mLabel = Actor::New(); - - Toolkit::TextView textView = Toolkit::TextView::New(label); - textView.SetWidthExceedPolicy(Toolkit::TextView::ShrinkToFit); // Make sure our text always fits inside the button - textView.SetAnchorPoint(AnchorPoint::TOP_LEFT); + TextActor textActor = TextActor::DownCast( mLabel ); + if( textActor ) + { + textActor.SetText( label ); + } + else + { + Toolkit::TextView newTextView = Toolkit::TextView::New( label ); + SetLabel( newTextView ); + } - mLabel.Add(textView); + RelayoutRequest(); } void RadioButton::SetLabel(Actor label) { if( mLabel != label ) { - Self().Remove(mLabel); + if( mLabel ) + { + mRadioIcon.Remove( mLabel ); + } + + if( label ) + { + label.SetParentOrigin( ParentOrigin::CENTER_RIGHT ); + label.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); + label.MoveBy( DISTANCE_BETWEEN_IMAGE_AND_LABEL ); + mRadioIcon.Add( label ); + } + mLabel = label; - Self().Add(mLabel); + + RelayoutRequest(); } } @@ -118,7 +130,6 @@ void RadioButton::SetActive(bool active) if( active ) { Actor parent = Self().GetParent(); - if( parent ) { for( unsigned int i = 0; i < parent.GetChildCount(); ++i ) @@ -131,14 +142,21 @@ void RadioButton::SetActive(bool active) } } } + mActive = true; - mImageActor.SetImage(mActiveImage); + mRadioIcon.SetImage(mActiveImage); } else { mActive = false; - mImageActor.SetImage(mInactiveImage); + mRadioIcon.SetImage(mInactiveImage); } + + // Raise toggled signal + Toolkit::RadioButton handle( GetOwner() ); + mToggledSignalV2.Emit( handle, mActive ); + + RelayoutRequest(); } } @@ -152,39 +170,63 @@ void RadioButton::ToggleState() SetActive(!mActive); } +void RadioButton::OnRelaidOut( Vector2 /*size*/, ActorSizeContainer& container ) +{ + Vector3 newSize( mRadioIcon.GetNaturalSize() ); + + if( mLabel ) + { + // Offset the label from the radio button image + newSize.width += DISTANCE_BETWEEN_IMAGE_AND_LABEL.width; + + // Find the size of the control using size negotiation + Vector3 actorNaturalSize( mLabel.GetNaturalSize() ); + Control::Relayout( mLabel, Vector2( actorNaturalSize.width, actorNaturalSize.height ), container ); + + Vector3 actorSize( mLabel.GetSize() ); + newSize.width += actorSize.width; + newSize.height = std::max( newSize.height, actorSize.height ); + } + + Self().SetSize( newSize ); +} + void RadioButton::OnInitialize() { - mImageActor.SetAnchorPoint(AnchorPoint::TOP_LEFT); - Self().Add(mImageActor); + mRadioIcon.SetAnchorPoint( AnchorPoint::CENTER_LEFT ); + mRadioIcon.SetParentOrigin( ParentOrigin::CENTER_LEFT ); + Self().Add( mRadioIcon ); - mLabel.SetAnchorPoint(AnchorPoint::TOP_LEFT); - mLabel.MoveBy(IMAGE_WIDTH + DISTANCE_BETWEEN_IMAGE_AND_LABEL); - Self().Add(mLabel); + RelayoutRequest(); } void RadioButton::OnButtonUp() { - ToggleState(); + // Don't allow selection on an already active radio button + if( !mActive ) + { + ToggleState(); + } } void RadioButton::SetProperty(BaseObject* object, Property::Index propertyIndex, const Property::Value& value) { - Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast(Dali::BaseHandle(object)); + Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast( Dali::BaseHandle( object ) ); if( radioButton ) { - RadioButton & radioButtonImpl(GetImplementation(radioButton)); + RadioButton& radioButtonImpl( GetImplementation( radioButton ) ); switch ( propertyIndex ) { case Toolkit::RadioButton::PROPERTY_ACTIVE: { - radioButtonImpl.SetActive(value.Get< bool >( )); + radioButtonImpl.SetActive( value.Get< bool >( ) ); break; } case Toolkit::RadioButton::PROPERTY_LABEL_ACTOR: { - radioButtonImpl.SetLabel(Scripting::NewActor(value.Get< Property::Map >( ))); + radioButtonImpl.SetLabel( Scripting::NewActor( value.Get< Property::Map >( ) ) ); break; } } @@ -195,11 +237,11 @@ Property::Value RadioButton::GetProperty(BaseObject* object, Property::Index pro { Property::Value value; - Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast(Dali::BaseHandle(object)); + Toolkit::RadioButton radioButton = Toolkit::RadioButton::DownCast( Dali::BaseHandle(object) ); if( radioButton ) { - RadioButton & radioButtonImpl(GetImplementation(radioButton)); + RadioButton& radioButtonImpl( GetImplementation( radioButton ) ); switch ( propertyIndex ) { @@ -211,7 +253,7 @@ Property::Value RadioButton::GetProperty(BaseObject* object, Property::Index pro case Toolkit::RadioButton::PROPERTY_LABEL_ACTOR: { Property::Map map; - Scripting::CreatePropertyMap(radioButtonImpl.mLabel, map); + Scripting::CreatePropertyMap( radioButtonImpl.mLabel, map ); value = map; break; } @@ -219,4 +261,4 @@ Property::Value RadioButton::GetProperty(BaseObject* object, Property::Index pro } return value; -} \ No newline at end of file +} diff --git a/base/dali-toolkit/internal/controls/buttons/radio-button-impl.h b/base/dali-toolkit/internal/controls/buttons/radio-button-impl.h index 1ee813f..5afa145 100644 --- a/base/dali-toolkit/internal/controls/buttons/radio-button-impl.h +++ b/base/dali-toolkit/internal/controls/buttons/radio-button-impl.h @@ -102,6 +102,11 @@ class RadioButton: public Button */ void ToggleState(); + /** + * @copydoc Dali::Toolkit::Control::OnRelaidOut(Vector2 size, ActorSizeContainer& container) + */ + virtual void OnRelaidOut( Vector2 size, ActorSizeContainer& container ); + public: // Properties @@ -138,7 +143,7 @@ class RadioButton: public Button Image mInactiveImage; ///< Stores the inactive image Image mActiveImage; ///< Stores the active image - ImageActor mImageActor; ///< Stores the current image + ImageActor mRadioIcon; ///< Stores the current image Actor mLabel; ///< Stores the button label bool mActive; ///< Stores the active state } ; @@ -168,4 +173,4 @@ inline const Toolkit::Internal::RadioButton& GetImplementation(const Toolkit::Ra } // namespace Toolkit } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_RADIO_BUTTON_H__ \ No newline at end of file +#endif // __DALI_TOOLKIT_INTERNAL_RADIO_BUTTON_H__ diff --git a/base/dali-toolkit/public-api/controls/buttons/button.cpp b/base/dali-toolkit/public-api/controls/buttons/button.cpp index 55764a2..cd0bf52 100644 --- a/base/dali-toolkit/public-api/controls/buttons/button.cpp +++ b/base/dali-toolkit/public-api/controls/buttons/button.cpp @@ -30,6 +30,7 @@ namespace Toolkit { const char* const Button::SIGNAL_CLICKED = "clicked"; +const char* const Button::SIGNAL_TOGGLED = "toggled"; Button::Button() {} @@ -82,6 +83,11 @@ Button::ClickedSignalV2& Button::ClickedSignal() return Dali::Toolkit::GetImplementation( *this ).ClickedSignal(); } +Button::ToggledSignalV2& Button::ToggledSignal() +{ + return Dali::Toolkit::GetImplementation( *this ).ToggledSignal(); +} + Button::Button( Internal::Button& implementation ) : Control( implementation ) { diff --git a/base/dali-toolkit/public-api/controls/buttons/button.h b/base/dali-toolkit/public-api/controls/buttons/button.h index 8d95226..980ddbd 100644 --- a/base/dali-toolkit/public-api/controls/buttons/button.h +++ b/base/dali-toolkit/public-api/controls/buttons/button.h @@ -53,6 +53,7 @@ public: // Signal Names static const char* const SIGNAL_CLICKED; ///< name "clicked" + static const char* const SIGNAL_TOGGLED; ///< name "toggled" // Properties static const Property::Index PROPERTY_DIMMED; ///< name "dimmed", @see SetDimmed(), type BOOLEAN @@ -131,10 +132,20 @@ public: //Signals typedef SignalV2< bool ( Button ) > ClickedSignalV2; /** + * @brief Button toggled signal type + */ + typedef SignalV2< bool ( Button, bool ) > ToggledSignalV2; + + /** * @brief Signal emitted when the button is touched and the touch point doesn't leave the boundary of the button. */ ClickedSignalV2& ClickedSignal(); + /** + * @brief Signal emitted when the button's state is toggled. + */ + ToggledSignalV2& ToggledSignal(); + public: // Not intended for application developers /** diff --git a/base/dali-toolkit/public-api/controls/buttons/push-button.cpp b/base/dali-toolkit/public-api/controls/buttons/push-button.cpp index 24da5ee..f6e2775 100644 --- a/base/dali-toolkit/public-api/controls/buttons/push-button.cpp +++ b/base/dali-toolkit/public-api/controls/buttons/push-button.cpp @@ -29,7 +29,6 @@ namespace Dali namespace Toolkit { -const char* const PushButton::SIGNAL_TOGGLED = "toggled"; const char* const PushButton::SIGNAL_PRESSED = "pressed"; const char* const PushButton::SIGNAL_RELEASED = "released"; @@ -219,11 +218,6 @@ Actor PushButton::GetLabelText() const return Dali::Toolkit::GetImplementation( *this ).GetLabelText(); } -PushButton::ToggledSignalV2& PushButton::ToggledSignal() -{ - return Dali::Toolkit::GetImplementation( *this ).ToggledSignal(); -} - PushButton::PressedSignalV2& PushButton::PressedSignal() { return Dali::Toolkit::GetImplementation( *this ).PressedSignal(); diff --git a/base/dali-toolkit/public-api/controls/buttons/push-button.h b/base/dali-toolkit/public-api/controls/buttons/push-button.h index 5bebddd..658dbae 100644 --- a/base/dali-toolkit/public-api/controls/buttons/push-button.h +++ b/base/dali-toolkit/public-api/controls/buttons/push-button.h @@ -80,7 +80,6 @@ class PushButton : public Button public: //Signal Names - static const char* const SIGNAL_TOGGLED; ///< name "toggled" static const char* const SIGNAL_PRESSED; ///< name "pressed" static const char* const SIGNAL_RELEASED; ///< name "released" @@ -333,9 +332,6 @@ public: public: //Signals - /// @brief PushButton Toggled signal type. - typedef SignalV2< bool ( Button, bool ) > ToggledSignalV2; - /// @brief PushButton Pressed signal type. typedef SignalV2< bool ( Button ) > PressedSignalV2; @@ -343,11 +339,6 @@ public: //Signals typedef SignalV2< bool ( Button ) > ReleasedSignalV2; /** - * @brief Signal emitted when the \e toggle property is set and the button is touched. - */ - ToggledSignalV2& ToggledSignal(); - - /** * @brief Signal emitted when the button is touched. */ PressedSignalV2& PressedSignal(); diff --git a/base/dali-toolkit/public-api/controls/buttons/radio-button.h b/base/dali-toolkit/public-api/controls/buttons/radio-button.h index 37f3860..23c370b 100644 --- a/base/dali-toolkit/public-api/controls/buttons/radio-button.h +++ b/base/dali-toolkit/public-api/controls/buttons/radio-button.h @@ -41,7 +41,7 @@ class RadioButton; * * Radio buttons are designed to select one of many option at the same time. * - * Every button have its own \e label and \e state, which can be modified by RadioButton::SetLabel and RadioBUtton::SetActive. + * Every button have its own \e label and \e state, which can be modified by RadioButton::SetLabel and RadioButton::SetActive. * * RadioButton can change its current state using RadioButton::ToggleState. * @@ -177,7 +177,8 @@ class RadioButton: public Button * @param[in] internal A pointer to the internal CustomActor. */ RadioButton(Dali::Internal::CustomActor* internal); -} ; + +}; } // namespace Toolkit -- 2.7.4