173 lines
5.0 KiB
C++
173 lines
5.0 KiB
C++
#include <browse/mainfrm.hpp>
|
|
#include <browse/browse.hpp>
|
|
#include <browse/brwsview.hpp>
|
|
#include <statbar/statbarx.hpp>
|
|
|
|
MainFrame::MainFrame(void)
|
|
{
|
|
mPaintHandler.setCallback(this,&MainFrame::paintHandler);
|
|
mCloseHandler.setCallback(this,&MainFrame::closeHandler);
|
|
mQueryEndSessionHandler.setCallback(this,&MainFrame::queryEndSessionHandler);
|
|
mDestroyHandler.setCallback(this,&MainFrame::destroyHandler);
|
|
mCommandHandler.setCallback(this,&MainFrame::commandHandler);
|
|
mKeyDownHandler.setCallback(this,&MainFrame::keyDownHandler);
|
|
mSizeHandler.setCallback(this,&MainFrame::sizeHandler);
|
|
mCreateHandler.setCallback(this,&MainFrame::createHandler);
|
|
insertHandlers();
|
|
}
|
|
|
|
MainFrame::~MainFrame()
|
|
{
|
|
removeHandlers();
|
|
}
|
|
|
|
void MainFrame::insertHandlers(void)
|
|
{
|
|
FrameWindow::insertHandler(MainFrame::DestroyHandler,&mDestroyHandler);
|
|
FrameWindow::insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
FrameWindow::insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
FrameWindow::insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
FrameWindow::insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
|
|
FrameWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
FrameWindow::insertHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
|
|
FrameWindow::insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
}
|
|
|
|
void MainFrame::removeHandlers(void)
|
|
{
|
|
FrameWindow::removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
FrameWindow::removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
|
|
FrameWindow::removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
FrameWindow::removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
FrameWindow::removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
|
|
FrameWindow::removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
|
FrameWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
FrameWindow::removeHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::commandHandler(CallbackData &someCallbackData)
|
|
{
|
|
switch(someCallbackData.wParam())
|
|
{
|
|
case IDM_CASCADE :
|
|
cascade();
|
|
break;
|
|
case IDM_TILE :
|
|
tile();
|
|
break;
|
|
case IDM_ARRANGE :
|
|
arrange();
|
|
break;
|
|
case IDM_CLOSEALL :
|
|
closeAll();
|
|
break;
|
|
case IDM_MINIMIZEALL :
|
|
minimizeAll();
|
|
break;
|
|
case IDM_RESTOREALL :
|
|
restoreAll();
|
|
break;
|
|
case FILE_BROWSE :
|
|
handleFileBrowse();
|
|
break;
|
|
default :
|
|
break;
|
|
}
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::keyDownHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::paintHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::createHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
createControls();
|
|
show(SW_SHOW);
|
|
update();
|
|
mStatusControl->setText("Ready.");
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::queryEndSessionHandler(CallbackData &someCallbackData)
|
|
{
|
|
if(getClient().hasChildren())return (CallbackData::ReturnType)FALSE;
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::closeHandler(CallbackData &someCallbackData)
|
|
{
|
|
destroy();
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::destroyHandler(CallbackData &/*someCallbackData*/)
|
|
{
|
|
removeHandlers();
|
|
::PostQuitMessage(0);
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType MainFrame::sizeHandler(CallbackData &someCallbackData)
|
|
{
|
|
Rect statusRect;
|
|
Rect cRect;
|
|
|
|
mStatusControl->windowRect(statusRect);
|
|
cRect.right(someCallbackData.loWord());
|
|
cRect.bottom(someCallbackData.hiWord());
|
|
getClient().moveWindow(0,0,cRect.right(),cRect.bottom()-(statusRect.bottom()-statusRect.top()));
|
|
return (CallbackData::ReturnType)FALSE;
|
|
}
|
|
|
|
void MainFrame::createControls(void)
|
|
{
|
|
Rect controlRect;
|
|
Rect statusRect;
|
|
|
|
mStatusControl=::new StatusBarEx(*this,StatusBarID);
|
|
mStatusControl.disposition(PointerDisposition::Delete);
|
|
mStatusControl->clientRect(statusRect);
|
|
controlRect.bottom(height()/2-statusRect.bottom());
|
|
}
|
|
|
|
BrowseView &MainFrame::createBrowseView(void)
|
|
{
|
|
SmartPointer<MDIWindow> mdiWindow;
|
|
BrowseView *pBrowseView;
|
|
|
|
if(getDocumentClass("BrowseView",mdiWindow)){mdiWindow->top();return (BrowseView&)*mdiWindow;}
|
|
insert(*(pBrowseView=::new BrowseView));
|
|
operator[](size()-1).createWindow(*this,"BrowseView","Browse","mainMenu","PAINT");
|
|
return *pBrowseView;
|
|
}
|
|
|
|
void MainFrame::handleFileBrowse(void)
|
|
{
|
|
BrowseView &browseView=createBrowseView();
|
|
// browseView.browse("d:\\download\\altbin~1.den");
|
|
browseView.browse("d:\\download\\altbin~1.den");
|
|
// browseView.browse("d:\\download\\altbin~1.pho");
|
|
// browseView.browse("c:\\work\\nntp\\news\\altbin~1.den");
|
|
}
|
|
|
|
// ** virtuals
|
|
|
|
void MainFrame::mdiDestroy(MDIWindow &mdiWindow)
|
|
{
|
|
}
|
|
|
|
void MainFrame::mdiActivate(MDIWindow &mdiWindow)
|
|
{
|
|
}
|
|
|
|
void MainFrame::mdiDeactivate(MDIWindow &mdiWindow)
|
|
{
|
|
}
|