#include #include #include #include #include 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 SPLITTER_FILE_OPEN : break; case SPLITTER_FILE_BROWSE : break; case SPLITTER_FILE_EXIT : 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*/) { show(SW_SHOW); update(); mControl2=::new Control(); mControl2.disposition(PointerDisposition::Delete); mControl2->createControl("EDIT","pane2",WS_VISIBLE,Rect(CW_USEDEFAULT,CW_USEDEFAULT,100,100),*this,102); mNewsTree=::new NewsTree(*this,Rect(0,0,100,100),105); mNewsTree.disposition(PointerDisposition::Delete); mSplitterWnd=::new SplitterWnd(*this,*mNewsTree,*mControl2); mSplitterWnd.disposition(PointerDisposition::Delete); 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) { return (CallbackData::ReturnType)FALSE; } // ** virtuals void MainFrame::mdiDestroy(MDIWindow &mdiWindow) { } void MainFrame::mdiActivate(MDIWindow &mdiWindow) { } void MainFrame::mdiDeactivate(MDIWindow &mdiWindow) { }