Files
Work/splitter/NewsTree.hpp
2024-08-07 09:16:27 -04:00

51 lines
1.3 KiB
C++

#ifndef _SPLITTER_NEWSTREE_HPP_
#define _SPLITTER_NEWSTREE_HPP_
#ifndef _IMAGELIST_FOLDERTREE_HPP_
#include <imagelst/ftree.hpp>
#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<String> &strLines);
Callback<NewsTree> mSelChangedHandler;
Callback<NewsTree> mSelChangingHandler;
Callback<NewsTree> mItemExpandingHandler;
Callback<NewsTree> mItemExpandedHandler;
Callback<NewsTree> 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