134 lines
4.1 KiB
C++
134 lines
4.1 KiB
C++
#include <remotepsapp/viewdialog.hpp>
|
|
#include <remotepsapp/remoteps.hpp>
|
|
#include <remotepsapp/windowview.hpp>
|
|
#include <common/stdio.hpp>
|
|
#include <common/mdifrm.hpp>
|
|
#include <com/cominit.hpp>
|
|
#include <statbar/statbarx.hpp>
|
|
|
|
ViewDialog::ViewDialog(void)
|
|
{
|
|
mInitHandler.setCallback(this,&ViewDialog::initHandler);
|
|
mDestroyHandler.setCallback(this,&ViewDialog::destroyHandler);
|
|
mCommandHandler.setCallback(this,&ViewDialog::commandHandler);
|
|
mCloseHandler.setCallback(this,&ViewDialog::closeHandler);
|
|
mSizeHandler.setCallback(this,&ViewDialog::sizeHandler);
|
|
DWindow::insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
DWindow::insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
DWindow::insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
DWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
DWindow::insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
}
|
|
|
|
ViewDialog::ViewDialog(const ViewDialog &/*someViewDialog*/)
|
|
{ // private implementation
|
|
}
|
|
|
|
ViewDialog::~ViewDialog()
|
|
{
|
|
DWindow::removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
|
|
DWindow::removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
|
|
DWindow::removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
|
|
DWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
|
|
DWindow::removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
|
|
}
|
|
|
|
ViewDialog &ViewDialog::operator=(const ViewDialog &/*someViewDialog*/)
|
|
{ // private implementation
|
|
return *this;
|
|
}
|
|
|
|
void ViewDialog::connect(const String &serverName)
|
|
{
|
|
handleConnect(serverName);
|
|
}
|
|
|
|
bool ViewDialog::perform(MDIWindow &parentWindow,SmartPointer<StatusBarEx> &statusBar)
|
|
{
|
|
mStatusBar=statusBar;
|
|
mMDIParent=&parentWindow;
|
|
createDialogParam(*(parentWindow.getFrame()),parentWindow,String("VIEWDIALOG"),(LPARAM)(DWindow*)this);
|
|
return isValid();
|
|
}
|
|
|
|
CallbackData::ReturnType ViewDialog::initHandler(CallbackData &someCallbackData)
|
|
{
|
|
mCloseButton.assumeControl(getItem(IDOK),IDOK,false);
|
|
mRefreshButton.assumeControl(getItem(VIEWDIALOG_REFRESHNOW),VIEWDIALOG_REFRESHNOW,false);
|
|
mWindowView=::new WindowView;
|
|
mWindowView.disposition(PointerDisposition::Delete);
|
|
// mWindowView->create(*mMDIParent,*mMDIParent,Rect(10,height()+10,mMDIParent->width()-20,mMDIParent->height()-105),WindowViewControlID);
|
|
mWindowView->create(*this,*this,Rect(10,75,width()-20,height()-75),WindowViewControlID);
|
|
if(!mWindowView->isValid())return false;
|
|
mWindowView->show(SW_SHOW);
|
|
return FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType ViewDialog::sizeHandler(CallbackData &someCallbackData)
|
|
{
|
|
mCloseButton.move(Point(width()-mCloseButton.width(),10));
|
|
mRefreshButton.move(Point(width()-mRefreshButton.width(),35));
|
|
mWindowView->moveWindow(Rect(10,75,width(),height()));
|
|
return false;
|
|
}
|
|
|
|
CallbackData::ReturnType ViewDialog::commandHandler(CallbackData &someCallbackData)
|
|
{
|
|
switch(someCallbackData.wmCommandID())
|
|
{
|
|
case IDOK :
|
|
if(isInConnect())break;
|
|
GUIWindow::postMessage(parent(),WM_CLOSE,0,0L);
|
|
endDialog(true);
|
|
break;
|
|
case IDCANCEL :
|
|
if(isInConnect())break;
|
|
GUIWindow::postMessage(parent(),WM_CLOSE,0,0L);
|
|
endDialog(false);
|
|
break;
|
|
case VIEWDIALOG_REFRESHNOW :
|
|
handleRefreshNow();
|
|
break;
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType ViewDialog::closeHandler(CallbackData &someCallbackData)
|
|
{
|
|
if(isInConnect())return TRUE;
|
|
return FALSE;
|
|
}
|
|
|
|
CallbackData::ReturnType ViewDialog::destroyHandler(CallbackData &someCallbackData)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
void ViewDialog::handleRefreshNow(void)
|
|
{
|
|
handleConnect(serverName());
|
|
}
|
|
|
|
// virtuals
|
|
|
|
void ViewDialog::preConnect(const String &strServerName)
|
|
{
|
|
mStatusBar->setText(String("Connecting to '")+strServerName+String("'"));
|
|
}
|
|
|
|
void ViewDialog::connectionHandler(RemoteProcessInfo &remoteProcessInfo)
|
|
{
|
|
mStatusBar->setText("Retrieving desktop image.");
|
|
remoteProcessInfo.getDesktopWindow(*mWindowView);
|
|
}
|
|
|
|
void ViewDialog::preDisconnect(const String &strServerName)
|
|
{
|
|
mStatusBar->setText(String("Disconnected from '")+strServerName+String("'"));
|
|
}
|
|
|
|
void ViewDialog::errorHandler(void)
|
|
{
|
|
mStatusBar->setText(String("Remote activation failed '"));
|
|
}
|