#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 layout_info_; float horizontal_margin_; float vertical_margin_; }; } #endif