#ifndef _SPLITTER_NEWSTREE_HPP_ #define _SPLITTER_NEWSTREE_HPP_ #ifndef _IMAGELIST_FOLDERTREE_HPP_ #include #endif class NewsTree : public FolderTree { public: NewsTree(GUIWindow &parentWindow,const Rect &winRect,int controlID); virtual ~NewsTree(); private: enum ItemType{GroupNode=1,RootNode,NewsNode}; CallbackData::ReturnType selChangedHandler(CallbackData &cbData); CallbackData::ReturnType selChangingHandler(CallbackData &cbData); CallbackData::ReturnType itemExpandingHandler(CallbackData &cbData); CallbackData::ReturnType itemExpandedHandler(CallbackData &cbData); CallbackData::ReturnType beginDragHandler(CallbackData &cbData); DWORD makeItemID(int id,int index); ItemType getItemType(DWORD itemID); DWORD getIndex(DWORD itemID); void addItems(); void loadGroups(Block &strLines); Callback mSelChangedHandler; Callback mSelChangingHandler; Callback mItemExpandingHandler; Callback mItemExpandedHandler; Callback mBeginDragHandler; }; inline DWORD NewsTree::makeItemID(int id,int index) { return (id<<16)|index; } inline NewsTree::ItemType NewsTree::getItemType(DWORD itemID) { return ItemType(itemID>>16); } inline DWORD NewsTree::getIndex(DWORD itemID) { return (itemID&0xFFFF); } #endif