Merge "Make radio buttons work with size negotiation, bug fixes." into tizen
authorKimmo Hoikka <kimmo.hoikka@samsung.com>
Thu, 25 Sep 2014 14:19:01 +0000 (07:19 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Thu, 25 Sep 2014 14:19:01 +0000 (07:19 -0700)
1  2 
automated-tests/src/dali-toolkit-unmanaged/CMakeLists.txt
base/dali-toolkit/internal/controls/buttons/button-impl.cpp
base/dali-toolkit/internal/controls/buttons/button-impl.h
base/dali-toolkit/internal/controls/buttons/push-button-impl.cpp
base/dali-toolkit/internal/controls/buttons/push-button-impl.h

@@@ -50,11 -50,13 +50,12 @@@ SET(TC_SOURCE
   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)
  LIST(APPEND TC_SOURCES
     ../dali-toolkit/dali-toolkit-test-utils/toolkit-accessibility-manager.cpp
 -   ../dali-toolkit/dali-toolkit-test-utils/toolkit-adaptor.cpp
     ../dali-toolkit/dali-toolkit-test-utils/toolkit-application.cpp
     ../dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard.cpp
     ../dali-toolkit/dali-toolkit-test-utils/toolkit-imf-manager.cpp
@@@ -47,6 -47,7 +47,7 @@@ BaseHandle Create(
  TypeRegistration typeRegistration( typeid(Toolkit::Button), typeid(Toolkit::Control), Create );
  
  SignalConnectorType signalConnector1( typeRegistration, Toolkit::Button::SIGNAL_CLICKED, &Button::DoConnectSignal );
+ SignalConnectorType signalConnector2( typeRegistration, Toolkit::Button::SIGNAL_TOGGLED, &Button::DoConnectSignal );
  
  PropertyRegistration property1( typeRegistration, "dimmed", Toolkit::Button::PROPERTY_DIMMED, Property::BOOLEAN, &Button::SetProperty, &Button::GetProperty );
  
@@@ -106,6 -107,11 +107,11 @@@ Toolkit::Button::ClickedSignalV2& Butto
    return mClickedSignalV2;
  }
  
+ Toolkit::Button::ToggledSignalV2& Button::ToggledSignal()
+ {
+   return mToggledSignalV2;
+ }
  bool Button::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
  {
    Dali::BaseHandle handle( object );
    {
      button.ClickedSignal().Connect( tracker, functor );
    }
+   else if( Dali::Toolkit::Button::SIGNAL_TOGGLED == signalName )
+   {
+     button.ToggledSignal().Connect( tracker, functor );
+   }
    else
    {
      // signalName does not match any signal
@@@ -224,10 -234,13 +234,10 @@@ void Button::OnTap(Actor actor, TapGest
    // Do nothing.
  }
  
 -void Button::OnStageDisconnection()
 +void Button::OnControlStageDisconnection()
  {
 -  if( ButtonUp != mState )
 -  {
 -    OnTouchPointLeave(); // Notification for derived classes.
 -    mState = ButtonUp;
 -  }
 +  OnButtonStageDisconnection(); // Notification for derived classes.
 +  mState = ButtonUp;
  }
  
  void Button::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
@@@ -130,12 -130,6 +130,12 @@@ private
     */
    virtual float OnAnimationTimeRequested() const;
  
 +  /**
 +   * This method is called when the button is removed from the stage.
 +   * Could be reimplemented in subclasses to provide specific behaviour.
 +   */
 +  virtual void OnButtonStageDisconnection() { }
 +
  public:
  
    /**
    Toolkit::Button::ClickedSignalV2& ClickedSignal();
  
    /**
+    * @copydoc Dali::Toolkit::Button::ToggledSignal()
+    */
+   Toolkit::Button::ToggledSignalV2& ToggledSignal();
+   /**
     * Connects a callback function with the object's signals.
     * @param[in] object The object providing the signal.
     * @param[in] tracker Used to disconnect the signal.
@@@ -191,12 -190,6 +196,12 @@@ private: // From Contro
     */
    virtual void OnControlSizeSet( const Vector3& targetSize );
  
 +  /**
 +   * Callback received when the button is disconnected from the stage.
 +   * It resets the button status.
 +   */
 +  void OnControlStageDisconnection();
 +
  private:
  
    /**
  
  private:
  
 -  /**
 -   * Callback received when the button is disconected from the stage.
 -   * It resets the button status.
 -   */
 -  void OnStageDisconnection();
 -
 -private:
 -
    // Undefined
    Button( const Button& );
  
@@@ -232,6 -233,7 +237,7 @@@ protected: // Signal
    ButtonPainterPtr mPainter;              ///< Pointer to a ButtonPainter base class.
  
    Toolkit::Button::ClickedSignalV2 mClickedSignalV2; ///< Signal emitted when the button is clicked.
+   Toolkit::Button::ToggledSignalV2 mToggledSignalV2; ///< Signal emitted when the button is toggled.
  
    TapGestureDetector mTapDetector;
  };
@@@ -59,9 -59,8 +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 +355,6 @@@ Actor& PushButton::GetFadeOutButtonImag
    return mFadeOutButtonImage;
  }
  
- Toolkit::PushButton::ToggledSignalV2& PushButton::ToggledSignal()
- {
-   return mToggledSignalV2;
- }
  Toolkit::PushButton::PressedSignalV2& PushButton::PressedSignal()
  {
    return mPressedSignalV2;
@@@ -584,7 -578,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
@@@ -644,25 -638,6 +638,25 @@@ float PushButton::OnAnimationTimeReques
    return GetPushButtonPainter( mPainter )->GetAnimationTime();
  }
  
 +void PushButton::OnButtonStageDisconnection()
 +{
 +  if( ButtonDown == mState )
 +  {
 +    if( !mToggleButton )
 +    {
 +      Toolkit::PushButton handle( GetOwner() );
 +
 +      // Notifies the painter the button has been released.
 +      GetPushButtonPainter( mPainter )->Released( handle );
 +
 +      if( mAutoRepeating )
 +      {
 +        mAutoRepeatingTimer.Reset();
 +      }
 +    }
 +  }
 +}
 +
  PushButton::PushButton()
  : Button(),
    mAutoRepeating( false ),
@@@ -242,11 -242,6 +242,6 @@@ public
    // Signals
  
    /**
-    * @copydoc Dali::Toolkit::PushButton::ToggledSignal()
-    */
-   Toolkit::PushButton::ToggledSignalV2& ToggledSignal();
-   /**
     * @copydoc Dali::Toolkit::PushButton::PressedSignal()
     */
    Toolkit::PushButton::PressedSignalV2& PressedSignal();
@@@ -321,11 -316,6 +316,11 @@@ protected: // From Butto
     */
    virtual float OnAnimationTimeRequested() const;
  
 +  /**
 +   * This method is called when the button is removed from the stage.
 +   */
 +  virtual void OnButtonStageDisconnection();
 +
  protected: // From Control
  
    /**
@@@ -399,7 -389,6 +394,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.