r521: no message
[ctsim.git] / src / ctsim.cpp
index b08db827d2eefd8a80742ff142842a5cb8ede643..8cd618ef323435f2f507c4ece4390b99eaa458ae 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.74 2001/02/11 04:56:38 kevin Exp $
+**  $Id: ctsim.cpp,v 1.75 2001/02/11 21:57:08 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
@@ -71,7 +71,7 @@
 #endif
 #endif
 
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.74 2001/02/11 04:56:38 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.75 2001/02/11 21:57:08 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -83,7 +83,8 @@ struct option CTSimApp::ctsimOptions[] =
 IMPLEMENT_APP(CTSimApp)
 
 CTSimApp::CTSimApp()
-: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_bAdvancedOptions(false)
+: m_docManager(NULL), m_pFrame(NULL), m_pLog(0), m_pLogDoc(0), m_pConfig(0),
+  m_bAdvancedOptions(false), m_bSetModifyNewDocs(true)
 {
        theApp = this;
 }
@@ -103,8 +104,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
@@ -183,13 +183,13 @@ CTSimApp::OnInit()
 #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
        wxString helpDir;
        if (! m_pConfig->Read("HelpDir", &helpDir))
                helpDir = ::wxGetCwd();
+#ifdef CTSIM_WINHELP
+       if (! m_pFrame->getWinHelpController().Initialize(helpDir + "/ctsim"))
+               *m_pLog << "Cannot initialize the Windows Help system" << "\n";
+#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";
@@ -198,6 +198,7 @@ CTSimApp::OnInit()
                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];
@@ -231,7 +232,7 @@ CTSimApp::usage(const char* program)
 int
 CTSimApp::OnExit()
 {
-       delete m_pConfig;
+  closeConfig();
 
 #ifdef HAVE_DMALLOC
        dmalloc_shutdown();
@@ -239,6 +240,29 @@ CTSimApp::OnExit()
        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()
 {
@@ -766,7 +790,12 @@ BitmapDialog::~BitmapDialog()
 void 
 MainFrame::OnPreferences (wxCommandEvent& WXUNUSED(event) )
 {
-  theApp->setAdvancedOptions (! theApp->getAdvancedOptions());
+  DialogPreferences dlg (this, "CTSim Preferences", theApp->getAdvancedOptions(), 
+    theApp->getAskDeleteNewDocs());
+  if (dlg.ShowModal() == wxID_OK) {
+    theApp->setAdvancedOptions (dlg.getAdvancedOptions());
+    theApp->setAskDeleteNewDocs (dlg.getAskDeleteNewDocs());
+  }
 }