Initial
This commit is contained in:
246
remotepsapp/Mainfrm.cpp
Normal file
246
remotepsapp/Mainfrm.cpp
Normal file
@@ -0,0 +1,246 @@
|
||||
#include <remotepsapp/mainfrm.hpp>
|
||||
#include <remotepsapp/remoteps.hpp>
|
||||
#include <remotepsapp/connectiondialog.hpp>
|
||||
#include <remotepsapp/processview.hpp>
|
||||
#include <common/puremenu.hpp>
|
||||
#include <statbar/statbarx.hpp>
|
||||
|
||||
MainFrame::MainFrame(void)
|
||||
{
|
||||
mQueryEndSessionHandler.setCallback(this,&MainFrame::queryEndSessionHandler);
|
||||
mCloseHandler.setCallback(this,&MainFrame::closeHandler);
|
||||
mSizeHandler.setCallback(this,&MainFrame::sizeHandler);
|
||||
mCommandHandler.setCallback(this,&MainFrame::commandHandler);
|
||||
mCreateHandler.setCallback(this,&MainFrame::createHandler);
|
||||
mDestroyHandler.setCallback(this,&MainFrame::destroyHandler);
|
||||
insertHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
|
||||
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
||||
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
||||
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
}
|
||||
|
||||
MainFrame::~MainFrame()
|
||||
{
|
||||
removeHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
|
||||
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
||||
removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
||||
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
||||
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
|
||||
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
||||
}
|
||||
|
||||
CallbackData::ReturnType MainFrame::queryEndSessionHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
if(getClient().hasChildren())return (CallbackData::ReturnType)FALSE;
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType MainFrame::destroyHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
postQuitMessage();
|
||||
::WinHelp(*this,0,HELP_QUIT,0);
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType MainFrame::closeHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
destroy();
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
CallbackData::ReturnType MainFrame::createHandler(CallbackData &someCallbackData)
|
||||
{
|
||||
mStatusControl=::new StatusBarEx(*this,getClient(),StatusControlID);
|
||||
mStatusControl.disposition(PointerDisposition::Delete);
|
||||
setParts(SinglePart);
|
||||
setText("Ready");
|
||||
setCaption();
|
||||
bringWindowToTop();
|
||||
return (CallbackData::ReturnType)TRUE;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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 PSMENU_FILEOPEN :
|
||||
handleFileOpen();
|
||||
break;
|
||||
case PSMENU_FILECLOSE :
|
||||
handleFileClose();
|
||||
break;
|
||||
case PSMENU_FILESAVE :
|
||||
handleFileSave();
|
||||
break;
|
||||
case PSMENU_FILESAVEAS :
|
||||
handleFileSaveAs();
|
||||
break;
|
||||
case PSMENU_FILEPRINT :
|
||||
handleFilePrint();
|
||||
break;
|
||||
case PSMENU_FILEQUIT :
|
||||
handleFileQuit();
|
||||
break;
|
||||
case PSMENU_SINGLECONNECTION :
|
||||
handleFileOpenSingleConnection();
|
||||
break;
|
||||
case PSMENU_SELECTGROUP :
|
||||
handleFileSelectGroup();
|
||||
break;
|
||||
}
|
||||
// if(someCallbackData.wParam()>=StartDynamicID)handleFileOpenEvent(someCallbackData);
|
||||
return (CallbackData::ReturnType)FALSE;
|
||||
}
|
||||
|
||||
void MainFrame::setParts(int numParts)
|
||||
{
|
||||
GlobalData<int> statParts;
|
||||
if(1==numParts){statParts.size(1);*((int*)&statParts[0])=FirstPartWidth;}
|
||||
else {statParts.size(2);*((int*)&statParts[0])=FirstPartWidth;*((int*)&statParts[0]+1)=SecondPartWidth;}
|
||||
mStatusControl->setParts(statParts);
|
||||
}
|
||||
|
||||
|
||||
void MainFrame::setText(const String &strText)
|
||||
{
|
||||
if(!mStatusControl.isOkay())return;
|
||||
mStatusControl->setText(strText);
|
||||
mStatusControl->update();
|
||||
}
|
||||
|
||||
void MainFrame::splash(void)
|
||||
{
|
||||
// SplashScreen splashScreen("APISPY","",3000);
|
||||
// splashScreen.perform();
|
||||
}
|
||||
|
||||
void MainFrame::setCaption(String strText)
|
||||
{
|
||||
String strCaption;
|
||||
|
||||
windowText(strCaption);
|
||||
FrameWindow::setCaption(strCaption);
|
||||
}
|
||||
|
||||
void MainFrame::handleFileOpen(void)
|
||||
{
|
||||
GDIPoint cursorPos;
|
||||
|
||||
cursorPos.x(0);
|
||||
cursorPos.y(0);
|
||||
PureMenu popupMenu(PureMenu::PopupMenu);
|
||||
popupMenu.insertMenu(0,PureMenu::ItemString,PSMENU_SINGLECONNECTION,"Single &Connection...");
|
||||
popupMenu.insertMenu(1,PureMenu::ItemString,PSMENU_SELECTGROUP,"Select &Group...");
|
||||
popupMenu.trackPopupMenu(*this,cursorPos,PureMenu::CenterAlign|PureMenu::TopAlign);
|
||||
}
|
||||
|
||||
void MainFrame::handleFileOpenSingleConnection(void)
|
||||
{
|
||||
SmartPointer<MDIWindow> mdiWindow;
|
||||
ProcessView *processView;
|
||||
ConnectionDialog connectionDialog;
|
||||
String strComputerName;
|
||||
|
||||
if(!connectionDialog.perform(*this,strComputerName))return;
|
||||
processView=::new ProcessView;
|
||||
processView->createWindow(*this,String(STRING_PROCESSVIEWCLASSNAME),"ProcessView","viewMenu","psicon");
|
||||
insert(*processView);
|
||||
processView->connect(strComputerName);
|
||||
}
|
||||
|
||||
void MainFrame::handleFileSelectGroup(void)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::handleFileClose(void)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::handleFileSave(void)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::handleFileSaveAs(void)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::handleFilePrint(void)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::handleFileQuit(void)
|
||||
{
|
||||
postMessage(*this,WM_CLOSE,0,0L);
|
||||
}
|
||||
|
||||
// *** virtuals
|
||||
|
||||
void MainFrame::mdiDestroy(MDIWindow &mdiWindow)
|
||||
{
|
||||
}
|
||||
|
||||
void MainFrame::mdiActivate(MDIWindow &mdiWindow)
|
||||
{
|
||||
#if 0
|
||||
String strWindowText;
|
||||
|
||||
mdiWindow.windowText(strWindowText);
|
||||
if(strWindowText.betweenString(0,' ')==String("Definitions"))setParts(DoublePart);
|
||||
*mStatusControl=mdiWindow.getMenu();
|
||||
mStatusControl->setSequentialResourceDescriptors(SPYMENU_FILEOPEN,STRING_DESCRIPTORFILEOPEN,(STRING_DESCRIPTORHELPABOUT-STRING_DESCRIPTORFILEOPEN)+1);
|
||||
|
||||
removeHistory(mdiWindow.getMenu());
|
||||
applyHistory(mdiWindow.getMenu());
|
||||
|
||||
if(mAPIDebug.isOkay()&&mAPIDebug->isDebugging())
|
||||
{
|
||||
enableMenuItems(0,SPYMENU_FILECLOSE,PureMenu::ByCommand,PureMenu::ItemEnabled);
|
||||
enableMenuItems(0,SPYMENU_FILEOPEN,PureMenu::ByCommand,PureMenu::InsertFlags(PureMenu::ItemDisabled|PureMenu::ItemGrayed));
|
||||
}
|
||||
else if((mAPIDebug.isOkay()&&!mAPIDebug->isDebugging())||!mAPIDebug.isOkay())
|
||||
{
|
||||
enableMenuItems(0,SPYMENU_FILECLOSE,PureMenu::ByCommand,PureMenu::InsertFlags(PureMenu::ItemDisabled|PureMenu::ItemGrayed));
|
||||
enableMenuItems(0,SPYMENU_FILEOPEN,PureMenu::ByCommand,PureMenu::ItemEnabled);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void MainFrame::mdiDeactivate(MDIWindow &mdiWindow)
|
||||
{
|
||||
// String strWindowText;
|
||||
// mdiWindow.windowText(strWindowText);
|
||||
// if(strWindowText.betweenString(0,' ')==String("Definitions"))setParts(SinglePart);
|
||||
// mStatusControl->setText(" ");
|
||||
}
|
||||
Reference in New Issue
Block a user