CCTableViewLoader.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //
  2. // CCTableViewLoader.h
  3. // redream_runtime_mac
  4. //
  5. // Created by zhuge on 2023/3/15.
  6. //
  7. #ifndef CCTableViewLoader_h
  8. #define CCTableViewLoader_h
  9. #include "CCScrollViewLoader.h"
  10. #include "extensions/GUI/CCScrollView/CCTableView.h"
  11. namespace redream {
  12. /* Forward declaration. */
  13. class REDReader;
  14. class CC_DLL TableViewLoader : public ScrollViewLoader {
  15. private:
  16. class TableViewDataSource : public cocos2d::extension::TableViewDataSource, public cocos2d::Ref {
  17. public:
  18. virtual ~TableViewDataSource() {}
  19. virtual cocos2d::Size tableCellSizeForIndex(cocos2d::extension::TableView *table, ssize_t idx) override;
  20. virtual cocos2d::extension::TableViewCell* tableCellAtIndex(cocos2d::extension::TableView *table, ssize_t idx) override;
  21. virtual cocos2d::Size cellSizeForTable(cocos2d::extension::TableView* table) override;
  22. virtual ssize_t numberOfCellsInTableView(cocos2d::extension::TableView *table) override;
  23. void addSubRedNode(cocos2d::Node* node) { _subRedNodes.pushBack(node); }
  24. private:
  25. cocos2d::Vector<cocos2d::Node*> _subRedNodes;
  26. };
  27. public:
  28. /**
  29. * @js NA
  30. * @lua NA
  31. */
  32. virtual ~TableViewLoader() {};
  33. /**
  34. * @js NA
  35. * @lua NA
  36. */
  37. RED_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(TableViewLoader, loader);
  38. protected:
  39. cocos2d::extension::TableView* createNode(cocos2d::Node * pParent, redream::REDReader * ccbReader);
  40. virtual void onHandlePropTypeREDFile(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, cocos2d::Node * pREDFileNode, REDReader * ccbReader);
  41. virtual void onHandlePropTypeTableviewRedFile(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, std::vector<cocos2d::Node*> pREDFileNodes, REDReader * ccbReader);
  42. virtual void onHandlePropTypeIntegerLabeled(cocos2d::Node * pNode, cocos2d::Node * pParent, const char * pPropertyName, int pIntegerLabeled, REDReader * ccbReader);
  43. };
  44. } // namespace
  45. #endif /* CCTableViewLoader_h */