230 lines
6.9 KiB
C++
230 lines
6.9 KiB
C++
/*=========================================================================
|
|
*
|
|
* GraphInter.cpp - main implementation file for the graphic interface
|
|
*
|
|
* Version 1.0
|
|
* Revision date
|
|
*
|
|
*=======================================================================*/
|
|
#include "stdafx.h"
|
|
|
|
#include "GraphInter.h"
|
|
|
|
#include "print.h"
|
|
|
|
#include "DlgMain.h"
|
|
#include "IniData.h"
|
|
#include "Help.h"
|
|
|
|
|
|
//--- Global statics --------------------------------------------------------
|
|
|
|
// The one and only CGraphInterApp object
|
|
CGraphInterApp theApp;
|
|
|
|
// CGraphInterApp initialization
|
|
|
|
CRichEditCtrl* p_oRichEditRes;
|
|
CHARFORMAT* p_stCharFormatRes;
|
|
CRichEditCtrl* p_oRichEditCom;
|
|
CHARFORMAT* p_stCharFormatCom;
|
|
CWinThread* p_ThMain;
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: message map
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BEGIN_MESSAGE_MAP(CGraphInterApp, CWinApp)
|
|
//{{AFX_MSG_MAP(CGraphInterApp)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
// DO NOT EDIT what you see in these blocks of generated code!
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: constructor
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
CGraphInterApp::CGraphInterApp()
|
|
{
|
|
// TODO: add construction code here,
|
|
// Place all significant initialization in InitInstance
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: init the application instance
|
|
*
|
|
* Parameters:
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
BOOL CGraphInterApp::InitInstance()
|
|
{
|
|
char szHelpFile[256];
|
|
|
|
AfxEnableControlContainer();
|
|
|
|
// Standard initialization
|
|
// If you are not using these features and wish to reduce the size
|
|
// of your final executable, you should remove from the following
|
|
// the specific initialization routines you do not need.
|
|
|
|
#ifdef _AFXDLL
|
|
Enable3dControls(); // Call this when using MFC in a shared DLL
|
|
#else
|
|
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
|
#endif
|
|
|
|
// compute the name of the context help file
|
|
GetCurrentDirectory(256, szHelpFile);
|
|
strcat(szHelpFile, "\\");
|
|
strcat(szHelpFile, C_szCxtHelpFile);
|
|
// update the current context help file
|
|
fn_vChangeContextHelpFile(szHelpFile);
|
|
|
|
|
|
// create the dialog for the application
|
|
CDlgMain dlg;
|
|
|
|
m_pMainWnd = &dlg;
|
|
p_oRichEditCom = &dlg.m_oRichEditCom;
|
|
p_stCharFormatCom = &dlg.m_stCharFormatCom;
|
|
p_oRichEditRes = &dlg.m_oRichEditRes;
|
|
p_stCharFormatRes = &dlg.m_stCharFormatRes;
|
|
int nResponse = dlg.DoModal();
|
|
if (nResponse == IDOK)
|
|
{
|
|
// TODO: Place code here to handle when the dialog is
|
|
// dismissed with OK
|
|
}
|
|
else if (nResponse == IDCANCEL)
|
|
{
|
|
// TODO: Place code here to handle when the dialog is
|
|
// dismissed with Cancel
|
|
}
|
|
|
|
// Since the dialog has been closed, return FALSE so that we exit the
|
|
// application, rather than start the application's message pump.
|
|
return FALSE;
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: update the name of the context help file
|
|
*
|
|
* Parameters: _szString : string to display
|
|
* _Line : type of the line (normal, warning, error)
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void CGraphInterApp::fn_vChangeContextHelpFile (char *szNewName)
|
|
{
|
|
free((void*)m_pszHelpFilePath);
|
|
m_pszHelpFilePath=_tcsdup(_T(szNewName));
|
|
}
|
|
|
|
/****************************************************************************
|
|
* Description: display a string in the result window
|
|
*
|
|
* Parameters: _szString : string to display
|
|
* _Line : type of the line (normal, warning, error)
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void fn_vAfxOutputStringRes( char* _szString, char _Line)
|
|
{
|
|
fn_ComRes_vWriteLine( _szString, _Line ,p_oRichEditRes, p_stCharFormatRes);
|
|
}
|
|
|
|
/****************************************************************************
|
|
* Description: display a string in the command window
|
|
*
|
|
* Parameters: _szString : string to display
|
|
* _Line : type of the line (normal, warning, error)
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void fn_vAfxOutputStringCom( char* _szString, char _Line)
|
|
{
|
|
char szSingleLine[256];
|
|
char *p_szNextCom, *p_szCurrentCom;
|
|
char *p_szNextLine, *p_szCurrentLine;
|
|
BOOL bTitle, bLastLine, bLastCom = FALSE;
|
|
int iLineIndex = 0, iCommandIndex = 0;
|
|
|
|
p_szCurrentCom = _szString;
|
|
|
|
while (p_szCurrentCom)
|
|
{
|
|
// update pointers
|
|
p_szNextCom = strstr(p_szCurrentCom+2, "##");
|
|
p_szCurrentLine = p_szCurrentCom+2;
|
|
// update flags
|
|
bTitle = TRUE;
|
|
bLastCom = (p_szNextCom == NULL);
|
|
bLastLine = FALSE;
|
|
|
|
while (p_szCurrentLine)
|
|
{
|
|
// update command index
|
|
g_iCommandIndex[iLineIndex] = iCommandIndex;
|
|
|
|
p_szNextLine = strchr(p_szCurrentLine+1, '-');
|
|
|
|
if (!p_szNextLine)
|
|
{
|
|
bLastLine = TRUE;
|
|
if (!p_szNextCom)
|
|
p_szNextLine = p_szCurrentLine + strlen(p_szCurrentLine);
|
|
else
|
|
p_szNextLine = p_szNextCom;
|
|
}
|
|
|
|
else if (!bLastCom && (p_szNextLine > p_szNextCom))
|
|
{
|
|
bLastLine = TRUE;
|
|
p_szNextLine = p_szNextCom;
|
|
}
|
|
|
|
int nLenght = p_szNextLine - p_szCurrentLine;
|
|
|
|
memset(szSingleLine, 0, 256);
|
|
|
|
strcpy(szSingleLine, (bTitle ? " " : " "));
|
|
strncat(szSingleLine, p_szCurrentLine, nLenght);
|
|
if (szSingleLine[strlen(szSingleLine) - 1] != '\n')
|
|
strcat(szSingleLine+nLenght, "\n");
|
|
|
|
if (bTitle)
|
|
fn_ComRes_vWriteLine( szSingleLine, C_ComRes_cTitleLine ,p_oRichEditCom, p_stCharFormatCom);
|
|
else
|
|
fn_ComRes_vWriteLine( szSingleLine, C_ComRes_cNormalLine ,p_oRichEditCom, p_stCharFormatCom);
|
|
|
|
p_szCurrentLine = bLastLine ? NULL : p_szNextLine;
|
|
iLineIndex++;
|
|
|
|
bTitle = FALSE;
|
|
}
|
|
g_iCommandIndex[iLineIndex] = iCommandIndex;
|
|
p_szCurrentCom = p_szNextCom;
|
|
iCommandIndex++;
|
|
}
|
|
|
|
|
|
// fn_ComRes_vWriteLine( _szString, _Line ,p_oRichEditCom, p_stCharFormatCom);
|
|
}
|
|
|
|
|