|
|
// LogSessionOptionsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "TraceView.h"
#include "DisplayDlg.h"
#include "LogSession.h"
#include "LogSessionOptionsDlg.h"
// CLogSessionOptionsDlg dialog
IMPLEMENT_DYNAMIC(CLogSessionOptionsDlg, CDialog) CLogSessionOptionsDlg::CLogSessionOptionsDlg(CWnd* pParent, CLogSession *pLogSession) : CDialog(CLogSessionOptionsDlg::IDD, pParent) { m_pLogSession = pLogSession; }
CLogSessionOptionsDlg::~CLogSessionOptionsDlg() { }
int CLogSessionOptionsDlg::OnInitDialog() { LONG displayEnableFlags; CString str; int retVal = CDialog::OnInitDialog();
// Hide all of the non-Tab1 items
m_DisplayMaxBuf.ShowWindow(SW_HIDE); m_DisplayMinBuf.ShowWindow(SW_HIDE); m_DisplayBufferSize.ShowWindow(SW_HIDE); m_DisplayFlushTime.ShowWindow(SW_HIDE); m_DisplayTraceLevel.ShowWindow(SW_HIDE); m_DisplayDecayTime.ShowWindow(SW_HIDE); m_DisplayNewFile.ShowWindow(SW_HIDE); m_DisplayCir.ShowWindow(SW_HIDE); m_DisplaySeq.ShowWindow(SW_HIDE); m_DisplayFlags.ShowWindow(SW_HIDE); m_MaxBufValue.ShowWindow(SW_HIDE); m_MinBufValue.ShowWindow(SW_HIDE); m_BufferSizeValue.ShowWindow(SW_HIDE); m_FlushTimeValue.ShowWindow(SW_HIDE); m_TraceLevelValue.ShowWindow(SW_HIDE); m_DecayTimeValue.ShowWindow(SW_HIDE); m_NewFileValue.ShowWindow(SW_HIDE); m_CirValue.ShowWindow(SW_HIDE); m_SeqValue.ShowWindow(SW_HIDE); m_FlagsValue.ShowWindow(SW_HIDE);
GetDlgItem(IDC_MAXBUF_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_MINBUF_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUFFERSIZE_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FLUSHTIME_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TRACELEVEL_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DECAYTIME_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_NEWFILE_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CIR_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_SEQ_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FLAGS_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DISPLAY1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_OPTION1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_VALUE1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DISPLAY2_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_OPTION2_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_VALUE2_STATIC)->ShowWindow(SW_HIDE);
// Setup the tab control
((CTabCtrl *)GetDlgItem(IDC_TAB1))->InsertItem(0, "Session Information"); ((CTabCtrl *)GetDlgItem(IDC_TAB1))->InsertItem(1, "Display Options");
// Handle the session name
if(m_pLogSession->GetDisplayName() == "") { str.Format("Trace%d", m_pLogSession->GetLogSessionID()); m_pLogSession->SetDisplayName(str); } else { m_LogSessionName.EnableWindow(FALSE); m_LogFileName.EnableWindow(FALSE); m_AppendToLogFile.EnableWindow(FALSE); GetDlgItem(IDC_LOGFILE_BROWSE_BUTTON)->EnableWindow(FALSE); }
// Set the defaults
displayEnableFlags = m_pLogSession->GetDisplayEnableFlags();
m_DisplayMaxBuf.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_MAXBUF); m_DisplayMinBuf.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_MINBUF); m_DisplayBufferSize.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_BUFFERSIZE); m_DisplayTraceLevel.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_TRACELEVEL); m_DisplayFlushTime.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_FLUSHTIME); m_DisplayDecayTime.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_DECAYTIME); m_DisplayNewFile.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_NEWFILE); m_DisplayCir.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_CIR); m_DisplaySeq.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_SEQ); m_DisplayFlags.SetCheck(displayEnableFlags & LOGSESSION_DISPLAY_FLAGS); m_LogSessionName.SetWindowText(m_pLogSession->GetDisplayName());
m_LogFileName.SetWindowText(m_pLogSession->m_OutputFileName);
return retVal; }
void CLogSessionOptionsDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_DISPLAY_MAXBUF_CHECK, m_DisplayMaxBuf); DDX_Control(pDX, IDC_DISPLAY_MINBUF_CHECK, m_DisplayMinBuf); DDX_Control(pDX, IDC_DISPLAY_BUFSIZ_CHECK, m_DisplayBufferSize); DDX_Control(pDX, IDC_DISPLAY_FLUSHTIME_CHECK, m_DisplayFlushTime); DDX_Control(pDX, IDC_DISPLAY_TRCLVL_CHECK, m_DisplayTraceLevel); DDX_Control(pDX, IDC_DISPLAY_DECAYTIME_CHECK, m_DisplayDecayTime); DDX_Control(pDX, IDC_DISPLAY_NEWFILE_CHECK, m_DisplayNewFile); DDX_Control(pDX, IDC_DISPLAY_CIR_CHECK, m_DisplayCir); DDX_Control(pDX, IDC_DISPLAY_SEQ_CHECK, m_DisplaySeq); DDX_Control(pDX, IDC_DISPLAY_FLAGS_CHECK, m_DisplayFlags); DDX_Control(pDX, IDC_LOG_NAME_EDIT, m_LogSessionName); DDX_Control(pDX, IDC_MAXBUF_VAL_EDIT, m_MaxBufValue); DDX_Control(pDX, IDC_MINBUF_VAL_EDIT, m_MinBufValue); DDX_Control(pDX, IDC_BUFSIZ_VAL_EDIT, m_BufferSizeValue); DDX_Control(pDX, IDC_FLUSHTIME_VAL_EDIT, m_FlushTimeValue); DDX_Control(pDX, IDC_TRCLVL_VAL_EDIT, m_TraceLevelValue); DDX_Control(pDX, IDC_DECAYTIME_VAL_EDIT, m_DecayTimeValue); DDX_Control(pDX, IDC_NEWFILE_VAL_EDIT, m_NewFileValue); DDX_Control(pDX, IDC_CIR_VAL_EDIT, m_CirValue); DDX_Control(pDX, IDC_FLAGS_VAL_EDIT, m_FlagsValue); DDX_Control(pDX, IDC_LOGFILE_EDIT, m_LogFileName); DDX_Control(pDX, IDC_APPEND_CHECK, m_AppendToLogFile); DDX_Control(pDX, IDC_SEQ_VAL_EDIT3, m_SeqValue); }
BEGIN_MESSAGE_MAP(CLogSessionOptionsDlg, CDialog) ON_BN_CLICKED(IDOK, OnBnClickedOk) ON_BN_CLICKED(IDC_LOGFILE_BROWSE_BUTTON, OnBnClickedLogfileBrowseButton) ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1) END_MESSAGE_MAP()
void CLogSessionOptionsDlg::OnBnClickedOk() { CString str; CString strBogus; LONG length; TCHAR logSessionName[500];
m_LogFileName.GetWindowText(m_pLogSession->m_OutputFileName);
// Warn the user that no logfile was specified
if((m_LogFileName.IsWindowEnabled()) && (m_pLogSession->m_OutputFileName.IsEmpty())) { if(IDCANCEL == AfxMessageBox("No Log File Specified\n\nTrace Data Will Not Be Saved \n", MB_OKCANCEL)) { return; } }
m_DisplayEnableFlags = 0;
if(m_DisplayMaxBuf.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_MAXBUF; };
if(m_DisplayMinBuf.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_MINBUF; };
if(m_DisplayBufferSize.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_BUFFERSIZE; };
if(m_DisplayTraceLevel.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_TRACELEVEL; };
if(m_DisplayFlushTime.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_FLUSHTIME; };
if(m_DisplayDecayTime.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_DECAYTIME; };
if(m_DisplayNewFile.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_NEWFILE; };
if(m_DisplayCir.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_CIR; };
if(m_DisplaySeq.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_SEQ; };
if(m_DisplayFlags.GetCheck()) { m_DisplayEnableFlags |= LOGSESSION_DISPLAY_FLAGS; };
m_pLogSession->SetDisplayEnableFlags(m_DisplayEnableFlags);
// Update the log session name if changed
length = m_LogSessionName.LineLength(0);
memset((void *)logSessionName, 0, length + 2);
m_LogSessionName.GetLine(0, logSessionName, length);
str = logSessionName;
m_pLogSession->SetDisplayName(str);
OnOK(); }
void CLogSessionOptionsDlg::OnBnClickedLogfileBrowseButton() { char fileName[260] = ""; // buffer for file name
OPENFILENAME openFile;
ZeroMemory(&openFile, sizeof(OPENFILENAME));
openFile.lStructSize = sizeof(OPENFILENAME); //openFile.hwndOwner = GetSafeHwnd();
openFile.lpstrCustomFilter = NULL; openFile.nMaxCustFilter = 0; openFile.nFilterIndex = 1; openFile.lpstrFile = fileName; openFile.nMaxFile = 500; openFile.lpstrFileTitle = NULL; openFile.nMaxFileTitle = 0; openFile.lpstrInitialDir = NULL; openFile.lpstrTitle = "Open Log File"; if(m_AppendToLogFile.GetCheck()) { openFile.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; } else { openFile.Flags = OFN_CREATEPROMPT; } openFile.lpstrDefExt = "log"; openFile.lpstrFilter = "log files (*.log)\0*.log\0all files (*.*)\0*.*\0"; openFile.lCustData = NULL; openFile.lpfnHook = NULL; openFile.lpTemplateName = NULL;
if(!GetOpenFileName(&openFile)) { AfxMessageBox("Failed To Open Logfile"); } else { m_pLogSession->m_OutputFileName = fileName; m_LogFileName.SetWindowText(fileName); } } CTabCtrl void CLogSessionOptionsDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult) { // Hide all of the non-Tab1 items
m_DisplayMaxBuf.ShowWindow(SW_HIDE); m_DisplayMinBuf.ShowWindow(SW_HIDE); m_DisplayBufferSize.ShowWindow(SW_HIDE); m_DisplayFlushTime.ShowWindow(SW_HIDE); m_DisplayTraceLevel.ShowWindow(SW_HIDE); m_DisplayDecayTime.ShowWindow(SW_HIDE); m_DisplayNewFile.ShowWindow(SW_HIDE); m_DisplayCir.ShowWindow(SW_HIDE); m_DisplaySeq.ShowWindow(SW_HIDE); m_DisplayFlags.ShowWindow(SW_HIDE); m_MaxBufValue.ShowWindow(SW_HIDE); m_MinBufValue.ShowWindow(SW_HIDE); m_BufferSizeValue.ShowWindow(SW_HIDE); m_FlushTimeValue.ShowWindow(SW_HIDE); m_TraceLevelValue.ShowWindow(SW_HIDE); m_DecayTimeValue.ShowWindow(SW_HIDE); m_NewFileValue.ShowWindow(SW_HIDE); m_CirValue.ShowWindow(SW_HIDE); m_SeqValue.ShowWindow(SW_HIDE); m_FlagsValue.ShowWindow(SW_HIDE);
GetDlgItem(IDC_MAXBUF_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_MINBUF_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUFFERSIZE_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FLUSHTIME_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TRACELEVEL_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DECAYTIME_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_NEWFILE_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CIR_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_SEQ_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_FLAGS_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DISPLAY1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_OPTION1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_VALUE1_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_DISPLAY2_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_OPTION2_STATIC)->ShowWindow(SW_HIDE); GetDlgItem(IDC_VALUE2_STATIC)->ShowWindow(SW_HIDE);
*pResult = 0; }
|