125 lines
4.1 KiB
C++
125 lines
4.1 KiB
C++
#include <stdio.h>
|
|
#include <common/purehdc.hpp>
|
|
#include <common/profile.hpp>
|
|
#include <common/commctrl.hpp>
|
|
#include <common/pointer.hpp>
|
|
#include <imagelst/mainwnd.hpp>
|
|
#include <imagelst/treeview.hpp>
|
|
|
|
char MainWindow::szClassName[]="Proto";
|
|
char MainWindow::szMenuName[]="";
|
|
|
|
MainWindow::MainWindow(HINSTANCE hInstance)
|
|
: mPaintHandler(this,&MainWindow::paintHandler),
|
|
mDestroyHandler(this,&MainWindow::destroyHandler),
|
|
mCommandHandler(this,&MainWindow::commandHandler),
|
|
mKeyDownHandler(this,&MainWindow::keyDownHandler),
|
|
mSizeHandler(this,&MainWindow::sizeHandler),
|
|
mCreateHandler(this,&MainWindow::createHandler),
|
|
mTimerHandler(this,&MainWindow::timerHandler),
|
|
mhInstance(hInstance), mlpFolderTree(0)
|
|
{
|
|
insertHandlers();
|
|
registerClass();
|
|
::CreateWindow(szClassName,szClassName,
|
|
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_DLGFRAME|WS_SIZEBOX|WS_CLIPCHILDREN,
|
|
CW_USEDEFAULT,CW_USEDEFAULT,
|
|
CW_USEDEFAULT,CW_USEDEFAULT,
|
|
NULL,NULL,mhInstance,(LPSTR)this);
|
|
show(SW_SHOW);
|
|
update();
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
if(mlpFolderTree){delete mlpFolderTree;mlpFolderTree=0;}
|
|
destroy();
|
|
}
|
|
|
|
void MainWindow::insertHandlers(void)
|
|
{
|
|
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
insertHandler(VectorHandler::TimerHandler,&mTimerHandler);
|
|
}
|
|
|
|
void MainWindow::removeHandlers(void)
|
|
{
|
|
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
removeHandler(VectorHandler::TimerHandler,&mTimerHandler);
|
|
}
|
|
|
|
void MainWindow::registerClass(void)const
|
|
{
|
|
WNDCLASS wndClass;
|
|
|
|
if(::GetClassInfo(mhInstance,className(),(WNDCLASS FAR*)&wndClass))return;
|
|
wndClass.style =CS_HREDRAW|CS_VREDRAW;
|
|
wndClass.lpfnWndProc =(WNDPROC)Window::WndProc;
|
|
wndClass.cbClsExtra =0;
|
|
wndClass.cbWndExtra =sizeof(MainWindow*);
|
|
wndClass.hInstance =mhInstance;
|
|
wndClass.hIcon =::LoadIcon(NULL,IDI_APPLICATION);
|
|
wndClass.hCursor =::LoadCursor(NULL,IDC_ARROW);
|
|
wndClass.hbrBackground =(HBRUSH)(COLOR_WINDOW+1);
|
|
wndClass.lpszMenuName =szMenuName;
|
|
wndClass.lpszClassName =szClassName;
|
|
::RegisterClass(&wndClass);
|
|
assert(0!=::GetClassInfo(mhInstance,className(),(WNDCLASS FAR*)&wndClass));
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::destroyHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
removeHandlers();
|
|
::PostQuitMessage(0);
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::sizeHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::commandHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::keyDownHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::paintHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
#define makeItemID(nodeType,itemID) MAKELPARAM(itemID,nodeType)
|
|
|
|
CallbackData::ReturnType MainWindow::timerHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
enum {RootID=0x0000};
|
|
enum NodeType{NullNode=0x0000,ImportTerminalNode=0x0001,ExportTerminalNode=0x0002,
|
|
CodeTerminalNode=0x0003,DataTerminalNode=0x0004};
|
|
|
|
killTimer(0);
|
|
mlpFolderTree=new FolderTree(*this);
|
|
mlpFolderTree->addRootNode(FolderTree::FolderClosed,"Image Sections",makeItemID(NullNode,RootID));
|
|
TreeViewItem firstItem(0,0,0,0,"foo",3,FolderTree::FolderClosed,FolderTree::FolderOpen,0,makeItemID(ImportTerminalNode,1));
|
|
mlpFolderTree->addNode(TreeView::NodeChild,firstItem,"Image Sections");
|
|
mlpFolderTree->appendNode(TreeView::NodeSibling,0,"section(foo)",0);
|
|
mlpFolderTree->appendNode(TreeView::NodeSibling,0,"section(bar)",0);
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainWindow::createHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
setTimer(0,250);
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|