mirror of https://github.com/axmolengine/axmol.git
60 lines
1.6 KiB
C
60 lines
1.6 KiB
C
|
#ifndef __NDCX_LIST_ITEM_H_
|
||
|
#define __NDCX_LIST_ITEM_H_
|
||
|
|
||
|
#include "ControlDefine.h"
|
||
|
#include "cocos2d.h"
|
||
|
|
||
|
using namespace cocos2d;
|
||
|
|
||
|
namespace NdCxControl {
|
||
|
|
||
|
#define NdCxListItemChild CCNode
|
||
|
|
||
|
class NdCxListItem : public CCLayerColor
|
||
|
{
|
||
|
friend class NdCxList;
|
||
|
protected:
|
||
|
NdCxListItem(void);
|
||
|
virtual ~NdCxListItem(void);
|
||
|
|
||
|
public:
|
||
|
static NdCxListItem *itemWithColor(const ccColor3B &color);
|
||
|
|
||
|
CCRect rect(void);
|
||
|
void selected(void);
|
||
|
void unselected(void);
|
||
|
void setItemColor(const ccColor3B &color);
|
||
|
void setMargin(CCSize margin);
|
||
|
CCSize getMargin(void);
|
||
|
|
||
|
public:
|
||
|
void addChild(NdCxListItemChild *child, const LayoutParam &layout);
|
||
|
void addChild(NdCxListItemChild *child, const LayoutParam &layout, int tag);
|
||
|
NdCxListItemChild *getChildByTag(int tag);
|
||
|
void setDrawTopLine(bool value) { draw_top_line_ = value; }
|
||
|
void setDrawBottomLine(bool value) { draw_bottom_line_ = value; }
|
||
|
|
||
|
protected:
|
||
|
bool initWithWidthHeight(GLfloat width, GLfloat height);
|
||
|
void requestLayout(void);
|
||
|
void setLineColor(const ccColor3B &color);
|
||
|
void setSelectedColor(const ccColor3B &start_color, const ccColor3B &end_color);
|
||
|
void updateColor(void);
|
||
|
|
||
|
virtual void draw(void);
|
||
|
|
||
|
private:
|
||
|
bool selected_;
|
||
|
ccColor3B line_color_;
|
||
|
ccColor3B sel_item_start_color_;
|
||
|
ccColor3B sel_item_end_color_;
|
||
|
bool draw_top_line_;
|
||
|
bool draw_bottom_line_;
|
||
|
std::map<CCNode *, LayoutParam> layout_info_;
|
||
|
float horizontal_margin_;
|
||
|
float vertical_margin_;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|