X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fctsim.cpp;h=35ab913bd63e2680c3b015a826da5db52c1c84a0;hb=50fd2b2fb2ff63871986e6853dbebad0ecd00698;hp=b591cfa9e6443cb835401b338f8596a6743e7790;hpb=69f17e3b960107d7d0f0224acd860d3a212e602a;p=ctsim.git diff --git a/src/ctsim.cpp b/src/ctsim.cpp index b591cfa..35ab913 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.70 2001/02/09 21:27:51 kevin Exp $ +** $Id: ctsim.cpp,v 1.79 2001/02/16 02:36:18 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,9 @@ #include "wx/image.h" #include "wx/filesys.h" #include "wx/fs_zip.h" +#ifdef __WXMSW__ +#include "wx/msw/helpchm.h" +#endif #if !wxUSE_DOC_VIEW_ARCHITECTURE #error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! @@ -51,7 +54,6 @@ #include "ct.h" #include "ctsim.h" -#include "ctsim-map.h" #include "docs.h" #include "views.h" #include "dialogs.h" @@ -70,7 +72,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.70 2001/02/09 21:27:51 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.79 2001/02/16 02:36:18 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -82,7 +84,8 @@ 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_pConfig(0), + m_bAdvancedOptions(false), m_bSetModifyNewDocs(true) { theApp = this; } @@ -102,8 +105,7 @@ CTSimApp::OnInit() setpriority (PRIO_PROCESS, 0, 15); // set to low scheduling priority #endif - m_pConfig = new wxConfig("ctsim", _T(""), "~/.ctsim", "", wxCONFIG_USE_LOCAL_FILE); - wxConfigBase::Set(m_pConfig); + openConfig(); g_bRunningWXWindows = true; // process options @@ -181,14 +183,24 @@ CTSimApp::OnInit() 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)); - + + wxString helpDir; + if (! m_pConfig->Read("HelpDir", &helpDir)) + helpDir = ::wxGetCwd(); #ifdef CTSIM_WINHELP - if (! m_pFrame->getWinHelpController().Initialize("ctsim")) + if (! m_pFrame->getWinHelpController().Initialize(helpDir + "/ctsim")) *m_pLog << "Cannot initialize the Windows Help system" << "\n"; -#endif - if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim")) +#else + 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); + } +#endif + for (int i = optind + 1; i <= argc; i++) { wxString filename = argv [i - 1]; m_docManager->CreateDocument (filename, wxDOC_SILENT); @@ -221,12 +233,37 @@ CTSimApp::usage(const char* program) int CTSimApp::OnExit() { + closeConfig(); + #ifdef HAVE_DMALLOC dmalloc_shutdown(); #endif return 0; } +void +CTSimApp::openConfig() +{ +#ifdef MSVC + m_pConfig = new wxConfig("ctsim", "Kevin Rosenberg", "", "", wxCONFIG_USE_LOCAL_FILE); +#else + m_pConfig = new wxConfig("ctsim", "Kevin Rosenberg", ".ctsim", "", wxCONFIG_USE_LOCAL_FILE); +#endif + + wxConfigBase::Set(m_pConfig); + m_pConfig->Read ("AdvancedOptions", &m_bAdvancedOptions); + m_pConfig->Read ("SetModifyNewDocs", &m_bSetModifyNewDocs); +} + +void +CTSimApp::closeConfig() +{ + m_pConfig->Write ("AdvancedOptions", m_bAdvancedOptions); + m_pConfig->Write ("SetModifyNewDocs", m_bSetModifyNewDocs); + delete m_pConfig; +} + + wxString CTSimApp::getUntitledFilename() { @@ -251,9 +288,20 @@ 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) +EVT_BUTTON(IDH_DLG_RASTERIZE, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_PROJECTIONS, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_RECONSTRUCTION, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_FILTER, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_MINMAX, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_EXPORT, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_PHANTOM, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_COMPARISON, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_PREFERENCES, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_POLAR, MainFrame::OnHelpButton) +EVT_BUTTON(IDH_DLG_AUTOSCALE, MainFrame::OnHelpButton) EVT_SIZE(MainFrame::OnSize) #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) @@ -306,6 +354,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, "Prefere&nces..."); file_menu->Append(MAINMENU_FILE_EXIT, "E&xit"); // history of files visited @@ -319,7 +368,6 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxMenu* help_menu = new wxMenu; 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"); #endif @@ -356,7 +404,6 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxAcceleratorEntry accelEntries[15]; accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); - accelEntries[1].Set (wxACCEL_CTRL, static_cast('H'), MAINMENU_HELP_TOPICS); accelEntries[2].Set (wxACCEL_CTRL, static_cast('P'), MAINMENU_FILE_CREATE_PHANTOM); accelEntries[3].Set (wxACCEL_CTRL, static_cast('F'), MAINMENU_FILE_CREATE_FILTER); #ifndef CTSIM_MDI @@ -487,14 +534,15 @@ CTSimApp::getCompatibleImages (const ImageFileDocument* pIFDoc, std::vectorgetLog() << "Unknown help command # " << commandID << "\n"; - break; } } @@ -755,6 +793,18 @@ BitmapDialog::~BitmapDialog() {} +void +MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) ) +{ + DialogPreferences dlg (this, "CTSim Preferences", theApp->getAdvancedOptions(), + theApp->getAskDeleteNewDocs()); + if (dlg.ShowModal() == wxID_OK) { + theApp->setAdvancedOptions (dlg.getAdvancedOptions()); + theApp->setAskDeleteNewDocs (dlg.getAskDeleteNewDocs()); + } +} + + #include "./splash.xpm" void MainFrame::OnAbout(wxCommandEvent& WXUNUSED(event) )