#pragma once #include "UIListCommonDefine.hpp" namespace DuiLib { struct CatalogListItemInfo { bool folder; bool empty; int id; CDuiString value; }; class CCatalogListUI : public CListUI { public: enum {SCROLL_TIMERID = 10}; CCatalogListUI(CPaintManagerUI& paint_manager); ~CCatalogListUI(); bool Add(CControlUI* pControl); bool AddAt(CControlUI* pControl, int iIndex); bool Remove(CControlUI* pControl); bool RemoveAt(int iIndex); void RemoveAll(); void DoEvent(TEventUI& event); Node* GetRoot(); Node* AddNode(const CatalogListItemInfo& item, Node* parent = NULL); bool RemoveNode(Node* node); void SetChildVisible(Node* node, bool visible); bool CanExpand(Node* node) const; bool SelectItem(int iIndex, bool bTakeFocus = false); protected: Node* root_node_; LONG delay_deltaY_; DWORD delay_number_; DWORD delay_left_; CDuiRect text_padding_; int level_text_start_pos_; CDuiString level_expand_image_; CDuiString level_collapse_image_; CPaintManagerUI& paint_manager_; CDialogBuilder m_dlgBuilder; }; } // DuiLib