294 lines
10 KiB
C++
294 lines
10 KiB
C++
// EDACDgEr.cpp : implementation file
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
#include "ErO_Op.hpp"
|
|
#include "ErOTeam.hpp"
|
|
#include "ErOReprt.hpp"
|
|
#include "ErO_Priv.hpp"
|
|
|
|
#undef CPA_WANTS_IMPORT
|
|
#undef CPA_EXPORT
|
|
#define CPA_WANTS_EXPORT
|
|
#include "ErO_DgEr.hpp"
|
|
#undef CPA_WANTS_EXPORT
|
|
#define CPA_WANTS_IMPORT
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
#define ERO_C_TimerID 1069
|
|
#define ERO_C_TimerDelay 200
|
|
|
|
#include "ErO_Res.h"
|
|
|
|
extern HMODULE g_hModule;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// ERROR_Dialog_ErrorInformations dialog
|
|
|
|
BEGIN_MESSAGE_MAP(ERROR_Dialog_ErrorInformations, CDialog)
|
|
//{{AFX_MSG_MAP(ERROR_Dialog_ErrorInformations)
|
|
ON_BN_CLICKED(IDC_BUTTON_OPEN_SCRIPT, OnButtonOpenScript)
|
|
ON_BN_CLICKED(IDC_BUTTON_OPEN_SOURCE, OnButtonOpenSource)
|
|
ON_WM_TIMER()
|
|
ON_WM_CLOSE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//**********************************************************************************************
|
|
ERROR_Dialog_ErrorInformations::ERROR_Dialog_ErrorInformations()
|
|
: CDialog(IDD_DIALOG_ERROR, NULL)
|
|
{
|
|
//{{AFX_DATA_INIT(ERROR_Dialog_ErrorInformations)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_hOldInstance = AfxGetResourceHandle();
|
|
AfxSetResourceHandle( g_hModule );
|
|
|
|
m_csCurrentAction = g_csCurrentAction.IsEmpty() ? ERO_C_szUnknown : g_csCurrentAction;
|
|
|
|
CStringList clStringList;
|
|
ErO_fn_vBuildStringListForInfos(g_csAddedInfo, &clStringList);
|
|
if ( clStringList.GetCount() > 0 )
|
|
m_csErrorMoreInfo = clStringList.GetHead();
|
|
else
|
|
m_csErrorMoreInfo = ERO_C_szUnknown;
|
|
|
|
m_csCurrentFileName = g_csCurrentFileName.IsEmpty() ? ERO_C_szUnknown : g_csCurrentFileName;
|
|
m_csFunction = g_csCurrentFunction.IsEmpty() ? ERO_C_szUnknown : g_csCurrentFunction;
|
|
|
|
m_csCurrentScriptFileName = g_csCurrentScriptFileName.IsEmpty() ? ERO_C_szUnknown : g_csCurrentScriptFileName;
|
|
|
|
m_csErrorGravity = g_cslGravityMessages.GetAt(g_cslGravityMessages.FindIndex(g_eErrorGravity));
|
|
|
|
//Gets Bitmap
|
|
UINT nIDResource = 0;
|
|
switch ( g_eErrorGravity )
|
|
{
|
|
case E_ERROR_GRAVITY_FATAL:
|
|
nIDResource = IDB_BITMAP_ERROR_FATAL;
|
|
break;
|
|
case E_ERROR_GRAVITY_INSTABLE:
|
|
nIDResource = IDB_BITMAP_ERROR_INSTABLE;
|
|
break;
|
|
case E_ERROR_GRAVITY_WARNING:
|
|
nIDResource = IDB_BITMAP_ERROR_WARNING;
|
|
break;
|
|
case E_ERROR_GRAVITY_UNKNOWN:
|
|
nIDResource = IDB_BITMAP_ERROR_UNKNOWN;
|
|
break;
|
|
}
|
|
|
|
m_cbBitmap.LoadBitmap(nIDResource);
|
|
|
|
//Sets type of Statics
|
|
m_clMIS_Module.m_pub_fn_vSetType(ERO_STATIC_TYPE__MODULE);
|
|
m_clMIS_Action.m_pub_fn_vSetType(ERO_STATIC_TYPE__ACTION);
|
|
m_clMIS_Debug.m_pub_fn_vSetType(ERO_STATIC_TYPE__DEBUG);
|
|
m_clMIS_Script.m_pub_fn_vSetType(ERO_STATIC_TYPE__SCRIPT);
|
|
m_clMIS_Additionnal.m_pub_fn_vSetType(ERO_STATIC_TYPE__ADDITIONNAL);
|
|
}
|
|
|
|
//**************************************************************************
|
|
ERROR_Dialog_ErrorInformations::~ERROR_Dialog_ErrorInformations()
|
|
{
|
|
AfxSetResourceHandle(m_hOldInstance);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(ERROR_Dialog_ErrorInformations)
|
|
DDX_Control(pDX, IDC_STATIC_MORE_ON_SCRIPT, m_clMIS_Script);
|
|
DDX_Control(pDX, IDC_STATIC_MORE_ON_MODULE, m_clMIS_Module);
|
|
DDX_Control(pDX, IDC_STATIC_MORE_ON_DEBUG, m_clMIS_Debug);
|
|
DDX_Control(pDX, IDC_STATIC_MORE_ON_ADDITIONNAL, m_clMIS_Additionnal);
|
|
DDX_Control(pDX, IDC_STATIC_MORE_ON_ACTION, m_clMIS_Action);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
BOOL ERROR_Dialog_ErrorInformations::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//Loads bitmaps
|
|
m_a_cbArrayOfBitmaps[7].LoadBitmap(IDB_PLUS_1);
|
|
m_a_cbArrayOfBitmaps[6].LoadBitmap(IDB_PLUS_2);
|
|
m_a_cbArrayOfBitmaps[5].LoadBitmap(IDB_PLUS_3);
|
|
m_a_cbArrayOfBitmaps[4].LoadBitmap(IDB_PLUS_4);
|
|
m_a_cbArrayOfBitmaps[3].LoadBitmap(IDB_PLUS_5);
|
|
m_a_cbArrayOfBitmaps[2].LoadBitmap(IDB_PLUS_6);
|
|
m_a_cbArrayOfBitmaps[1].LoadBitmap(IDB_PLUS_7);
|
|
m_a_cbArrayOfBitmaps[0].LoadBitmap(IDB_PLUS_8);
|
|
|
|
SetTimer(ERO_C_TimerID, ERO_C_TimerDelay, NULL);
|
|
|
|
//Sets texts
|
|
m_fn_vSetModuleText();
|
|
m_fn_vSetCurrentActionText();
|
|
m_fn_vSetCurrentFileNameText();
|
|
m_fn_vSetFunctionText();
|
|
m_fn_vSetCurrentScriptFileNameText();
|
|
m_fn_vSetErrorGravityText();
|
|
m_fn_vSetErrorMoreInfoText();
|
|
|
|
//Sets bitmap
|
|
CStatic *pclBitmapStatic = (CStatic *)GetDlgItem(IDC_STATIC_IMAGE);
|
|
pclBitmapStatic->SetBitmap(HBITMAP(m_cbBitmap));
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::OnClose()
|
|
{
|
|
KillTimer(ERO_C_TimerID);
|
|
|
|
CDialog::OnClose();
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// ERROR_Dialog_ErrorInformations message handlers
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetModuleText(CString csTextToDisplay)
|
|
{
|
|
CString csTrueModuleName = (g_csModuleName.IsEmpty()) ? ERO_C_szUnknown : g_csModuleName;
|
|
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_STATIC_MODULE_NAME), csTrueModuleName);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetCurrentActionText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_CURRENT_ACTION),
|
|
csTextToDisplay.IsEmpty() ? m_csCurrentAction : csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetCurrentFileNameText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_FILE_NAME),
|
|
csTextToDisplay.IsEmpty() ? m_pri_fn_csExtractFileNameFromCompletePath(m_csCurrentFileName) : csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetFunctionText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_FUNCTION),
|
|
csTextToDisplay.IsEmpty() ? m_csFunction : csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetCurrentScriptFileNameText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_SCRIPT_FILE_NAME),
|
|
csTextToDisplay.IsEmpty() ? m_pri_fn_csExtractFileNameFromCompletePath(m_csCurrentScriptFileName) : csTextToDisplay);
|
|
|
|
if ( m_csCurrentScriptFileName.Compare(ERO_C_szUnknown) == 0 )
|
|
GetDlgItem(IDC_BUTTON_OPEN_SCRIPT)->EnableWindow(FALSE);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetErrorGravityText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_ERROR_GRAVITY),
|
|
csTextToDisplay.IsEmpty() ? m_csErrorGravity : csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_fn_vSetErrorMoreInfoText(CString csTextToDisplay)
|
|
{
|
|
m_pri_fn_vSetTextToFitWindow(GetDlgItem(IDC_TEXT_ERROR_MORE_INFO),
|
|
csTextToDisplay.IsEmpty() ? m_csErrorMoreInfo : csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::OnButtonOpenScript()
|
|
{
|
|
CString csCommandLine = "Notepad.exe " + m_csCurrentScriptFileName;
|
|
WinExec(csCommandLine, SW_SHOWNORMAL);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::OnButtonOpenSource()
|
|
{
|
|
CString csCommandLine = "Notepad.exe " + m_csCurrentFileName;
|
|
WinExec(csCommandLine, SW_SHOWNORMAL);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
CString ERROR_Dialog_ErrorInformations::m_pri_fn_csExtractFileNameFromCompletePath(CString _csCompletePath)
|
|
{
|
|
CString csStringToReturn;
|
|
|
|
short wIndex = _csCompletePath.ReverseFind('\\');
|
|
if ( wIndex != -1 )
|
|
csStringToReturn = _csCompletePath.Right(_csCompletePath.GetLength() - wIndex - 1);
|
|
else
|
|
csStringToReturn = _csCompletePath;
|
|
|
|
return csStringToReturn;
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::m_pri_fn_vSetTextToFitWindow(CWnd *_pclWnd, CString _csTextToDisplay)
|
|
{
|
|
//Gets window size
|
|
CRect crWindowRect;
|
|
_pclWnd->GetWindowRect(crWindowRect);
|
|
|
|
CString csDisplayedString = _csTextToDisplay;
|
|
CString csTruelyDisplayedString;
|
|
CClientDC dc(_pclWnd);
|
|
dc.SelectObject(_pclWnd->GetFont());
|
|
|
|
if ( dc.GetTextExtent(csDisplayedString).cx > crWindowRect.Width() )
|
|
{
|
|
csTruelyDisplayedString = csDisplayedString + "...";
|
|
|
|
while ( dc.GetTextExtent(csTruelyDisplayedString).cx > crWindowRect.Width() )
|
|
{
|
|
csDisplayedString = csDisplayedString.Left(csDisplayedString.GetLength() - 1);
|
|
csTruelyDisplayedString = csDisplayedString + "...";
|
|
}
|
|
|
|
//Deletes one more character
|
|
csDisplayedString = csDisplayedString.Left(csDisplayedString.GetLength() - 1);
|
|
csTruelyDisplayedString = csDisplayedString + "...";
|
|
|
|
_pclWnd->SetWindowText(csTruelyDisplayedString);
|
|
}
|
|
else
|
|
_pclWnd->SetWindowText(_csTextToDisplay);
|
|
}
|
|
|
|
//**********************************************************************************************
|
|
void ERROR_Dialog_ErrorInformations::OnTimer(UINT nIDEvent)
|
|
{
|
|
static char s_cCurrentBitmapIndex = 0;
|
|
|
|
if (nIDEvent == ERO_C_TimerID)
|
|
{
|
|
m_clMIS_Module.SetBitmap(HBITMAP(m_a_cbArrayOfBitmaps[s_cCurrentBitmapIndex]));
|
|
m_clMIS_Action.SetBitmap(HBITMAP(m_a_cbArrayOfBitmaps[(s_cCurrentBitmapIndex + 1) % ERO_C_NUMBER_OF_BITMAPS]));
|
|
m_clMIS_Debug.SetBitmap(HBITMAP(m_a_cbArrayOfBitmaps[(s_cCurrentBitmapIndex + 2) % ERO_C_NUMBER_OF_BITMAPS]));
|
|
m_clMIS_Script.SetBitmap(HBITMAP(m_a_cbArrayOfBitmaps[(s_cCurrentBitmapIndex + 3) % ERO_C_NUMBER_OF_BITMAPS]));
|
|
m_clMIS_Additionnal.SetBitmap(HBITMAP(m_a_cbArrayOfBitmaps[(s_cCurrentBitmapIndex + 4) % ERO_C_NUMBER_OF_BITMAPS]));
|
|
|
|
s_cCurrentBitmapIndex = (s_cCurrentBitmapIndex + 1) % ERO_C_NUMBER_OF_BITMAPS;
|
|
}
|
|
|
|
CDialog::OnTimer(nIDEvent);
|
|
}
|
|
|