X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fctsim.cpp;h=b08db827d2eefd8a80742ff142842a5cb8ede643;hp=6a1e1117abff5458f4284552796b6ce0e3c86f68;hb=d3fa225aa232e132cc198672c4fc148f96a1ab8c;hpb=56a484768937a8cb38203516f85106c778aaa97b diff --git a/src/ctsim.cpp b/src/ctsim.cpp index 6a1e111..b08db82 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.64 2001/01/31 01:01:22 kevin Exp $ +** $Id: ctsim.cpp,v 1.74 2001/02/11 04:56:38 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 @@ -43,6 +43,7 @@ #include "wx/image.h" #include "wx/filesys.h" #include "wx/fs_zip.h" +#include "wx/msw/helpchm.h" #if !wxUSE_DOC_VIEW_ARCHITECTURE #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! @@ -70,7 +71,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.64 2001/01/31 01:01:22 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.74 2001/02/11 04:56:38 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -82,7 +83,7 @@ struct option CTSimApp::ctsimOptions[] = IMPLEMENT_APP(CTSimApp) CTSimApp::CTSimApp() -: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0) +: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_bAdvancedOptions(false) { theApp = this; } @@ -102,7 +103,7 @@ CTSimApp::OnInit() 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; @@ -161,16 +162,10 @@ CTSimApp::OnInit() 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(); @@ -183,27 +178,31 @@ CTSimApp::OnInit() 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; } @@ -232,6 +231,8 @@ CTSimApp::usage(const char* program) int CTSimApp::OnExit() { + delete m_pConfig; + #ifdef HAVE_DMALLOC dmalloc_shutdown(); #endif @@ -262,6 +263,7 @@ IMPLEMENT_CLASS(MainFrame, wxDocParentFrame) BEGIN_EVENT_TABLE(MainFrame, wxDocParentFrame) #endif +EVT_MENU(MAINMENU_FILE_PREFERENCES, MainFrame::OnPreferences) EVT_MENU(MAINMENU_HELP_ABOUT, MainFrame::OnAbout) EVT_MENU(MAINMENU_HELP_CONTENTS, MainFrame::OnHelpContents) EVT_MENU(MAINMENU_HELP_TOPICS, MainFrame::OnHelpTopics) @@ -317,6 +319,7 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const file_menu->Append(wxID_OPEN, "&Open...\tCtrl-O"); file_menu->AppendSeparator(); + file_menu->Append (MAINMENU_FILE_PREFERENCES, "Pr&eferences..."); file_menu->Append(MAINMENU_FILE_EXIT, "E&xit"); // history of files visited @@ -329,12 +332,12 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const #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; @@ -385,10 +388,23 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const 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 = dynamic_cast(pNode->GetData()); + if (pDoc && ! pDoc->IsModified()) { + theApp->getDocManager()->RemoveDocument(pDoc); + delete pDoc; + } + } +#endif + ::wxYield(); if (theApp->getConfig()) theApp->getDocManager()->FileHistorySave (*theApp->getConfig()); - delete theApp->getDocManager(); - + ::wxYield(); + delete theApp->getDocManager(); + } void @@ -508,12 +524,6 @@ MainFrame::OnHelpSecondary (wxCommandEvent& event) void MainFrame::showHelp (int commandID) { -#ifdef CTSIM_WINHELP - m_winHelp.LoadFile(); -#else - m_htmlHelp.LoadFile(); -#endif - switch (commandID) { case MAINMENU_HELP_CONTENTS: @@ -753,6 +763,13 @@ BitmapDialog::~BitmapDialog() {} +void +MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) ) +{ + theApp->setAdvancedOptions (! theApp->getAdvancedOptions()); +} + + #include "./splash.xpm" void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )