// // CCTableViewLoader.h // redream_runtime_mac // // Created by zhuge on 2023/3/15. // #ifndef CCTableViewLoader_h #define CCTableViewLoader_h #include "CCScrollViewLoader.h" #include "extensions/GUI/CCScrollView/CCTableView.h" namespace redream { /* Forward declaration. */ class REDReader; class CC_DLL TableViewLoader : public ScrollViewLoader { private: class TableViewDataSource : public cocos2d::extension::TableViewDataSource, public cocos2d::Ref { public: virtual ~TableViewDataSource() {} virtual cocos2d::Size tableCellSizeForIndex(cocos2d::extension::TableView *table, ssize_t idx) override; virtual cocos2d::extension::TableViewCell* tableCellAtIndex(cocos2d::extension::TableView *table, ssize_t idx) override; virtual cocos2d::Size cellSizeForTable(cocos2d::extension::TableView* table) override; virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView *table) override; void addSubRedNode(cocos2d::Node* node) { _subRedNodes.pushBack(node); } private: cocos2d::Vector _subRedNodes; }; public: /** * @js NA * @lua NA */ virtual ~TableViewLoader() {}; /** * @js NA * @lua NA */ RED_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(TableViewLoader, loader); protected: cocos2d::extension::TableView* createNode(cocos2d::Node * pParent, redream::REDReader * ccbReader); virtual void onHandlePropTypeREDFile(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, cocos2d::Node * pREDFileNode, REDReader * ccbReader); virtual void onHandlePropTypeTableviewRedFile(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, std::vector pREDFileNodes, REDReader * ccbReader); virtual void onHandlePropTypeIntegerLabeled(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, int pIntegerLabeled, REDReader * ccbReader); }; } // namespace #endif /* CCTableViewLoader_h */