+void PushButton::SetProperty( BaseObject* object, Property::Index propertyIndex, const Property::Value& value )
+{
+ Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( Dali::BaseHandle( object ) );
+
+ if ( pushButton )
+ {
+ PushButton& pushButtonImpl( GetImplementation( pushButton ) );
+
+ switch ( propertyIndex )
+ {
+ case Toolkit::PushButton::PROPERTY_AUTO_REPEATING:
+ {
+ pushButtonImpl.SetAutoRepeating( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_INITIAL_AUTO_REPEATING_DELAY:
+ {
+ pushButtonImpl.SetInitialAutoRepeatingDelay( value.Get< float >() );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_NEXT_AUTO_REPEATING_DELAY:
+ {
+ pushButtonImpl.SetNextAutoRepeatingDelay( value.Get< float >() );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_TOGGLABLE:
+ {
+ pushButtonImpl.SetToggleButton( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_TOGGLE:
+ {
+ pushButtonImpl.SetToggled( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_BUTTON_IMAGE:
+ {
+ Image image = Image::New( value.Get<std::string>() );
+ pushButtonImpl.SetButtonImage( image );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_PRESSED_IMAGE:
+ {
+ Image image = Image::New( value.Get<std::string>() );
+ pushButtonImpl.SetPressedImage( image );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_DIMMED_IMAGE:
+ {
+ Image image = Image::New( value.Get<std::string>() );
+ pushButtonImpl.SetDimmedImage( image );
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_LABEL_TEXT:
+ {
+ pushButtonImpl.SetLabelText( value.Get< std::string >() );
+ break;
+ }
+ }
+ }
+}
+
+Property::Value PushButton::GetProperty( BaseObject* object, Property::Index propertyIndex )
+{
+ Property::Value value;
+
+ Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( Dali::BaseHandle( object ) );
+
+ if ( pushButton )
+ {
+ PushButton& pushButtonImpl( GetImplementation( pushButton ) );
+
+ switch ( propertyIndex )
+ {
+ case Toolkit::PushButton::PROPERTY_AUTO_REPEATING:
+ {
+ value = pushButtonImpl.mAutoRepeating;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_INITIAL_AUTO_REPEATING_DELAY:
+ {
+ value = pushButtonImpl.mInitialAutoRepeatingDelay;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_NEXT_AUTO_REPEATING_DELAY:
+ {
+ value = pushButtonImpl.mNextAutoRepeatingDelay;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_TOGGLABLE:
+ {
+ value = pushButtonImpl.mToggleButton;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_TOGGLE:
+ {
+ value = pushButtonImpl.mToggled;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_BUTTON_IMAGE:
+ {
+ std::string path;
+ GetImageActorFilename( pushButtonImpl.mButtonImage, path );
+ value = path;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_PRESSED_IMAGE:
+ {
+ std::string path;
+ GetImageActorFilename( pushButtonImpl.mPressedImage, path );
+ value = path;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_DIMMED_IMAGE:
+ {
+ std::string path;
+ GetImageActorFilename( pushButtonImpl.mDimmedImage, path );
+ value = path;
+ break;
+ }
+
+ case Toolkit::PushButton::PROPERTY_LABEL_TEXT:
+ {
+ value = ""; // Just return an empty string if not using a TextView
+
+ if ( pushButtonImpl.mLabel )
+ {
+ Toolkit::TextView textView = Toolkit::TextView::DownCast( pushButtonImpl.mLabel );
+ if ( textView )
+ {
+ value = textView.GetText();
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ return value;
+}
+