** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: ctsim.cpp,v 1.65 2001/02/02 21:50:18 kevin Exp $
+** $Id: ctsim.cpp,v 1.73 2001/02/09 22:22:04 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
#endif
#endif
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.65 2001/02/02 21:50:18 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.73 2001/02/09 22:22:04 kevin Exp $";
struct option CTSimApp::ctsimOptions[] =
{
setpriority (PRIO_PROCESS, 0, 15); // set to low scheduling priority
#endif
- m_pConfig = new wxConfig("ctsim");
+ m_pConfig = new wxConfig("ctsim", _T(""), ".ctsim", "", wxCONFIG_USE_LOCAL_FILE);
wxConfigBase::Set(m_pConfig);
g_bRunningWXWindows = true;
m_pFrame->Show(true);
SetTopWindow (m_pFrame);
- for (int i = optind + 1; i <= argc; i++) {
- wxString filename = argv [i - 1];
- m_docManager->CreateDocument (filename, wxDOC_SILENT);
- }
-
if (m_pConfig)
m_docManager->FileHistoryLoad(*m_pConfig);
#ifdef CTSIM_MDI
-#if 1
m_pLogDoc = newTextDoc();
if (m_pLogDoc) {
m_pLog = m_pLogDoc->getTextCtrl();
m_pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
m_pLogDoc->getView()->getFrame()->Show (true);
} else
-#else
-// wxMDIChildFrame *pLogFrame = new wxMDIChildFrame (m_pFrame, -1, "Log", wxDefaultPosition, wxSize(0,0), wxTHICK_FRAME, "Log");
- m_pLog = new wxTextCtrl(m_pFrame->GetClientWindow(), -1, "", wxPoint(0,0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
- int xSize, ySize;
- m_pFrame->GetClientSize(&xSize, &ySize);
- int yLogSize = ySize / 5;
- m_pLog->SetSize (0, ySize - yLogSize, xSize, yLogSize);
- m_pLog->Show (true);
- m_pLog->Enable (true);
-#endif
#else
m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
#endif
wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog));
-
+
#ifdef CTSIM_WINHELP
if (! m_pFrame->getWinHelpController().Initialize("ctsim"))
*m_pLog << "Cannot initialize the Windows Help system" << "\n";
#endif
- if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim"))
+ wxString helpDir;
+ if (! m_pConfig->Read("HelpDir", &helpDir))
+ helpDir = ::wxGetCwd();
+ if (! m_pFrame->getHtmlHelpController().Initialize(helpDir + "/ctsim") &&
+ ! m_pFrame->getHtmlHelpController().Initialize("/usr/local/man/ctsim"))
*m_pLog << "Cannot initialize the HTML Help system" << "\n";
+ else {
+ if (::wxDirExists ("/tmp"))
+ m_pFrame->getHtmlHelpController().SetTempDir(_T("/tmp"));
+ m_pFrame->getHtmlHelpController().UseConfig (m_pConfig);
+ }
+
+ for (int i = optind + 1; i <= argc; i++) {
+ wxString filename = argv [i - 1];
+ m_docManager->CreateDocument (filename, wxDOC_SILENT);
+ }
return true;
}
int
CTSimApp::OnExit()
{
+ delete m_pConfig;
+
#ifdef HAVE_DMALLOC
dmalloc_shutdown();
#endif
#endif
wxMenu* help_menu = new wxMenu;
- help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1");
- help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T");
+ help_menu->Append (MAINMENU_HELP_CONTENTS, "&Contents\tF1");
+ help_menu->Append (MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T");
#if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG))
- help_menu->Append(MAINMENU_HELP_SECONDARY, "&Secondary Help");
+ help_menu->Append (MAINMENU_HELP_SECONDARY, "&Secondary Help");
#endif
- help_menu->Append(MAINMENU_HELP_ABOUT, "&About");
+ help_menu->Append (MAINMENU_HELP_ABOUT, "&About");
wxMenuBar* menu_bar = new wxMenuBar;
MainFrame::~MainFrame()
{
m_bShuttingDown = true; // Currently used so that Log Window will close
-
+#if 0
// delete all non-modified documents
wxList& rListDocs = theApp->getDocManager()->GetDocuments();
for (wxNode* pNode = rListDocs.GetFirst(); pNode != NULL; pNode = pNode->GetNext()) {
- wxDocument* pDoc = static_cast<wxDocument*>(pNode->GetData());
- if (! pDoc->IsModified()) {
- GetDocumentManager()->RemoveDocument(pDoc);
+ wxDocument* pDoc = dynamic_cast<wxDocument*>(pNode->GetData());
+ if (pDoc && ! pDoc->IsModified()) {
+ theApp->getDocManager()->RemoveDocument(pDoc);
delete pDoc;
}
}
+#endif
::wxYield();
if (theApp->getConfig())
- GetDocumentManager()->FileHistorySave (*theApp->getConfig());
+ theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
::wxYield();
delete theApp->getDocManager();
+
}
void