#ifndef __CCCONTROL_SLIDER_H__
#define __CCCONTROL_SLIDER_H__
#include "CCControl.h"
#include "CCInvocation.h"
NS_CC_EXT_BEGIN
/**
* @addtogroup GUI
* @{
* @addtogroup control_extension
* @{
*/
class CCControlSlider: public CCControl
{
//maunally put in the setters
/** Contains the receiver°Øs current value. */
CC_SYNTHESIZE_READONLY(float, m_value, Value);
virtual void setValue(float val);
/** Contains the minimum value of the receiver.
* The default value of this property is 0.0. */
CC_SYNTHESIZE_READONLY(float, m_minimumValue, MinimumValue);
virtual void setMinimumValue(float val);
/** Contains the maximum value of the receiver.
* The default value of this property is 1.0. */
CC_SYNTHESIZE_READONLY(float, m_maximumValue, MaximumValue);
virtual void setMaximumValue(float val);
virtual void setEnabled(bool enabled);
virtual bool isTouchInside(CCTouch * touch);
CCPoint locationFromTouch(CCTouch* touch);
CC_SYNTHESIZE(float, m_minimumAllowedValue, MinimumAllowedValue);
CC_SYNTHESIZE(float, m_maximumAllowedValue, MaximumAllowedValue);
// maybe this should be read-only
CC_SYNTHESIZE_RETAIN(CCSprite*, m_thumbSprite, ThumbSprite);
CC_SYNTHESIZE_RETAIN(CCSprite*, m_progressSprite, ProgressSprite);
CC_SYNTHESIZE_RETAIN(CCSprite*, m_backgroundSprite, BackgroundSprite);
public:
CCControlSlider();
virtual ~CCControlSlider();
/**
* Initializes a slider with a background sprite, a progress bar and a thumb
* item.
*
* @param backgroundSprite CCSprite, that is used as a background.
* @param progressSprite CCSprite, that is used as a progress bar.
* @param thumbItem CCSprite, that is used as a thumb.
*/
virtual bool initWithSprites(CCSprite * backgroundSprite, CCSprite* progressSprite, CCSprite* thumbSprite);
/**
* Creates slider with a background filename, a progress filename and a
* thumb image filename.
*/
static CCControlSlider* create(const char* bgFile, const char* progressFile, const char* thumbFile);
/**
* Creates a slider with a given background sprite and a progress bar and a
* thumb item.
*
* @see initWithBackgroundSprite:progressSprite:thumbMenuItem:
*/
static CCControlSlider* create(CCSprite * backgroundSprite, CCSprite* pogressSprite, CCSprite* thumbSprite);
virtual void needsLayout();
protected:
void sliderBegan(CCPoint location);
void sliderMoved(CCPoint location);
void sliderEnded(CCPoint location);
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
/** Returns the value for the given location. */
float valueForLocation(CCPoint location);
};
// end of GUI group
/// @}
/// @}
NS_CC_EXT_END
#endif