#ifndef __CCListBox_H__
#define __CCListBox_H__

#include “cocos2d.h”

USING_NS_CC;

typedef void (CCObject::*CCTableViewCallback)(CCObject *cell);
class CCListBox : public CCLayer
{
public:
CCTableViewCallback m_callback;
CCTableViewCallback m_selectCallback;
CCObject *m_target;
int m_nTouchPriority;
bool m_bIsSelect;
protected:
CCTableView* m_pTableView;
public:
CCListBox();
~CCListBox();
static CCListBox* create(CCTableViewDataSource *dataSource, int nTouchPriority=0);
bool initWithParams(CCTableViewDataSource *dataSource, int nTouchPriority);
virtual bool handleScroll(CCTouch *touch);

CCTableView* getTableView(){return m_pTableView;}
virtual void dataSelect(CCObject* object);
virtual void dataCell(CCObject *cell);
virtual void selectCell(CCObject *cell);
virtual void tableCellTouched(CCTableView * table, CCTableViewCell *cell);
virtual void tableCellToucheMoved(CCTableView * table, CCTableViewCell *cell){};
virtual void tableCellToucheEnded(CCTableView * table, CCTableViewCell *cell);
virtual void tableCellHighlight(CCTableView * table, CCTableViewCell *cell);
virtual void tableCellUnhighlight(CCTableView * table, CCTableViewCell *cell);
virtual CCSize cellSizeForTable(CCTableView *table);
virtual void scrollViewDidScroll(CCScrollView* view){};
virtual void scrollViewDidZoom(CCScrollView* view){};
virtual void setSelectCallback( CCObject* target, SEL_CallFuncO selector);
virtual void setCallback( CCObject* target, SEL_CallFuncO selector);
bool getIsSelect(){return m_bIsSelect;}
virtual void onExit();
private:
CCTableViewDataSource *m_pDataSource;
};

#endif // __CCListBox_H__