Initial
This commit is contained in:
95
splitter/NewsTree.cpp
Normal file
95
splitter/NewsTree.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
#include <splitter/NewsTree.hpp>
|
||||
#include <common/file.hpp>
|
||||
#include <common/qsort.hpp>
|
||||
|
||||
NewsTree::NewsTree(GUIWindow &parentWindow,const Rect &winRect,int controlID)
|
||||
: FolderTree(parentWindow,winRect,controlID)
|
||||
{
|
||||
mSelChangedHandler.setCallback(this,&NewsTree::selChangedHandler);
|
||||
mSelChangingHandler.setCallback(this,&NewsTree::selChangingHandler);
|
||||
mItemExpandingHandler.setCallback(this,&NewsTree::itemExpandingHandler);
|
||||
mItemExpandedHandler.setCallback(this,&NewsTree::itemExpandedHandler);
|
||||
mBeginDragHandler.setCallback(this,&NewsTree::beginDragHandler);
|
||||
insertHandler(FolderTree::SelChangedHandler,&mSelChangedHandler);
|
||||
insertHandler(FolderTree::SelChangingHandler,&mSelChangingHandler);
|
||||
insertHandler(FolderTree::ItemExpandingHandler,&mItemExpandingHandler);
|
||||
insertHandler(FolderTree::ItemExpandedHandler,&mItemExpandedHandler);
|
||||
insertHandler(FolderTree::BeginDragHandler,&mBeginDragHandler);
|
||||
addItems();
|
||||
}
|
||||
|
||||
NewsTree::~NewsTree()
|
||||
{
|
||||
}
|
||||
|
||||
CallbackData::ReturnType NewsTree::selChangedHandler(CallbackData &cbData)
|
||||
{
|
||||
String currentSelection;
|
||||
|
||||
::OutputDebugString("MainFrame::selChangedHandler\n");
|
||||
currentSelection=this->currentSelection();
|
||||
ItemType itemType=getItemType(cbData.lParam());
|
||||
if(GroupNode==itemType)::OutputDebugString("GroupNode");
|
||||
else if(RootNode==itemType)::OutputDebugString("RootNode");
|
||||
else if(NewsNode==itemType)::OutputDebugString("NewsNode");
|
||||
return false;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType NewsTree::selChangingHandler(CallbackData &cbData)
|
||||
{
|
||||
::OutputDebugString("MainFrame::selChangingHandler\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType NewsTree::itemExpandingHandler(CallbackData &cbData)
|
||||
{
|
||||
::OutputDebugString("MainFrame::itemExpandingHandler\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType NewsTree::itemExpandedHandler(CallbackData &cbData)
|
||||
{
|
||||
::OutputDebugString("MainFrame::itemExpandedHandler\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType NewsTree::beginDragHandler(CallbackData &cbData)
|
||||
{
|
||||
::OutputDebugString("MainFrame::beginDragHandler\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// ********************************************************************************
|
||||
|
||||
void NewsTree::addItems()
|
||||
{
|
||||
Block<String> groupNames;
|
||||
TreeView::NodeType nodeType;
|
||||
|
||||
String rootNodeName("news.optonline.net");
|
||||
addRootNode(0,rootNodeName,makeItemID(RootNode,0));
|
||||
loadGroups(groupNames);
|
||||
for(int index=0;index<groupNames.size();index++)
|
||||
{
|
||||
if(!index)nodeType=TreeView::NodeChild;
|
||||
else nodeType=TreeView::NodeSibling;
|
||||
String item(groupNames[index]);
|
||||
TreeViewItem insertItem(0,0,0,0,(char*)item.str(),item.length(),FolderTree::FolderClosed,FolderTree::FolderOpen,0,makeItemID(GroupNode,index+1));
|
||||
addNode(nodeType,insertItem,rootNodeName);
|
||||
}
|
||||
}
|
||||
|
||||
void NewsTree::loadGroups(Block<String> &strLines)
|
||||
{
|
||||
QuickSort<String> stringSorter;
|
||||
File inFile("newssrc","rb");
|
||||
String strLine;
|
||||
int max=4;
|
||||
int count=0;
|
||||
|
||||
if(!inFile.isOkay())return;
|
||||
strLines.remove();
|
||||
while(inFile.readLine(strLine)&&count++<max)strLines.insert(&strLine);
|
||||
stringSorter.sortItems(strLines);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user