khanat-opennel-code/code/ryzom/tools/leveldesign/master/ExportCBDlg.cpp

183 lines
5.1 KiB
C++

// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
// ExportCBDlg.cpp : implementation file
//
#include "stdafx.h"
#include "master.h"
#include "ExportCBDlg.h"
#ifdef _DEBUG
# ifdef new
# undef new
# endif
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CExportCB
/////////////////////////////////////////////////////////////////////////////
CExportCB::CExportCB()
{
_Canceled = false;
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::setExportCBDlg (CExportCBDlg *dlg)
{
_Dialog = dlg;
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::cancel ()
{
_Canceled = true;
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::pump()
{
MSG msg;
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
}
/////////////////////////////////////////////////////////////////////////////
bool CExportCB::isCanceled ()
{
pump();
return _Canceled;
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::dispPass (const std::string &Text)
{
_Dialog->PassText = Text.c_str();
_Dialog->ProgressBar.SetPos (0);
_Dialog->UpdateData (FALSE); // Upload
_Dialog->Invalidate();
pump();
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::dispPassProgress (float percentage)
{
_Dialog->ProgressBar.SetPos ((sint32)(100*percentage));
_Dialog->UpdateData (FALSE); // Upload
pump();
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::dispInfo (const std::string &Text)
{
_Dialog->InfoText = CString(Text.c_str()) + "\r\n" + _Dialog->InfoText;
_Dialog->UpdateData (FALSE); // Upload
pump();
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::dispWarning (const std::string &Text)
{
_Dialog->InfoText = CString("WARNING : ") + CString(Text.c_str()) + "\r\n" + _Dialog->InfoText;
_Dialog->UpdateData (FALSE); // Upload
pump();
}
/////////////////////////////////////////////////////////////////////////////
void CExportCB::dispError (const std::string &Text)
{
_Dialog->InfoText = CString("ERROR : ") + CString(Text.c_str()) + "\r\n" + _Dialog->InfoText;
_Dialog->UpdateData (FALSE); // Upload
pump();
}
/////////////////////////////////////////////////////////////////////////////
// CExportCBDlg dialog
/////////////////////////////////////////////////////////////////////////////
CExportCBDlg::CExportCBDlg(CWnd* pParent /*=NULL*/)
: CDialog(CExportCBDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CExportCBDlg)
PassText = _T("");
InfoText = _T("");
_Finished = false;
//}}AFX_DATA_INIT
}
/////////////////////////////////////////////////////////////////////////////
void CExportCBDlg::setFinishedButton ()
{
CButton *but = (CButton*)GetDlgItem (IDCANCEL);
but->SetWindowText ("FINISHED");
Invalidate ();
pump ();
}
/////////////////////////////////////////////////////////////////////////////
void CExportCBDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CExportCBDlg)
DDX_Control(pDX, IDC_EDIT1, EditCtrl);
DDX_Control(pDX, IDC_PROGRESS1, ProgressBar);
DDX_Text(pDX, IDC_PASS, PassText);
DDX_Text(pDX, IDC_EDIT1, InfoText);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CExportCBDlg, CDialog)
//{{AFX_MSG_MAP(CExportCBDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CExportCBDlg message handlers
/////////////////////////////////////////////////////////////////////////////
void CExportCBDlg::OnCancel()
{
CButton *but = (CButton*)GetDlgItem (IDCANCEL);
CString zeText;
but->GetWindowText (zeText);
if (zeText == "Cancel")
_ExportCB.cancel ();
else
_Finished = true;
//CDialog::OnCancel();
}
/////////////////////////////////////////////////////////////////////////////
BOOL CExportCBDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
_ExportCB.setExportCBDlg (this);
ProgressBar.SetRange (0, 100);
EditCtrl.SetLimitText (200);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}