]>
git.saurik.com Git - wxWidgets.git/blob - utils/configtool/src/appsettings.cpp
19c0104dabc09e6a68aaad9823a61a6e6326092a
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        appsettings.cpp 
   3 // Purpose:     Implements settings-related functionality 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) 
  13 #pragma implementation "appsettings.h" 
  16 // For compilers that support precompilation, includes "wx/wx.h". 
  17 #include "wx/wxprec.h" 
  25 #include "wx/datstrm.h" 
  27 #include "wx/colordlg.h" 
  28 #include "wx/wxhtml.h" 
  29 #include "wx/effects.h" 
  30 #include "wx/spinctrl.h" 
  31 #include "wx/tooltip.h" 
  35 #include "wx/wfstream.h" 
  36 #include "wx/config.h" 
  37 #include "wx/fileconf.h" 
  38 #include "wx/valgen.h" 
  40 #include "wxconfigtool.h" 
  41 #include "appsettings.h" 
  42 #include "mainframe.h" 
  44 #include "settingsdialog.h" 
  47  * User-changeable settings 
  50 IMPLEMENT_DYNAMIC_CLASS(ctSettings
, wxObject
) 
  52 ctSettings::ctSettings() 
  56     m_showWelcomeDialog 
= true; 
  57     m_exportDir 
= wxEmptyString
; 
  59     m_frameSize 
= wxRect(10, 10, 600, 500); 
  60     // m_backgroundColour = wxColour(140, 172, 179); // blue-grey 
  61     m_editWindowFont 
= wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT
); 
  63     m_appName 
= wxT("wxWidgets Configuration Tool"); 
  64     m_appNameShort 
= wxT("Configuration Tool"); 
  65     m_showSplashScreen 
= false; 
  66     m_userName 
= wxEmptyString
; 
  67     m_frameStatus 
= ctSHOW_STATUS_NORMAL
; 
  68     m_loadLastDocument 
= true; 
  69     m_firstTimeRun 
= true; 
  70     m_smallToolbar 
= true; 
  73     m_showTrayIcon 
= true; 
  74     m_trayIconIsShown 
= false; 
  75     m_useEnvironmentVariable 
= true; 
  76     m_frameworkDir 
= wxEmptyString
; 
  77     m_matchWholeWord 
= false; 
  79     m_defaultFileKind 
= wxT("Setup file"); 
  83 ctSettings::ctSettings(const ctSettings
& settings
) 
  89 void ctSettings::operator = (const ctSettings
& settings
) 
  94 void ctSettings::Copy (const ctSettings
& settings
) 
  96     m_lastSetupSaveDir 
= settings
.m_lastSetupSaveDir
; 
  97     m_lastDocument 
= settings
.m_lastDocument
; 
  98     m_showToolBar 
= settings
.m_showToolBar
; 
  99     m_frameSize 
= settings
.m_frameSize
; 
 100     m_editWindowFont 
= settings
.m_editWindowFont
; 
 101     m_showSplashScreen 
= settings
.m_showSplashScreen
; 
 102     m_userName 
= settings
.m_userName
; 
 103     m_loadLastDocument 
= settings
.m_loadLastDocument
; 
 104     m_exportDir 
= settings
.m_exportDir
; 
 105     m_firstTimeRun 
= settings
.m_firstTimeRun
; 
 106     m_noUses 
= settings
.m_noUses
; 
 107     m_smallToolbar 
= settings
.m_smallToolbar
; 
 108     m_useToolTips 
= settings
.m_useToolTips
; 
 109     m_showWelcomeDialog 
= settings
.m_showWelcomeDialog
; 
 110     m_mainSashSize 
= settings
.m_mainSashSize
; 
 112     m_showTrayIcon 
= settings
.m_showTrayIcon
; 
 113     m_trayIconIsShown 
= settings
.m_trayIconIsShown
; 
 115     m_useEnvironmentVariable 
= settings
.m_useEnvironmentVariable
; 
 116     m_frameworkDir 
= settings
.m_frameworkDir
; 
 117     m_matchWholeWord 
= settings
.m_matchWholeWord
; 
 118     m_matchCase 
= settings
.m_matchCase
; 
 119     m_defaultFileKind  
= settings
.m_defaultFileKind 
; 
 122 // Do some initialisation within stApp::OnInit 
 123 bool ctSettings::Init() 
 125     m_lastSetupSaveDir 
= wxEmptyString
; 
 126     if (m_userName
.empty()) 
 127         m_userName 
= wxGetUserName(); 
 132 // Create new filename 
 133 wxString 
ctSettings::GenerateFilename(const wxString
& rootName
) 
 136     if (!m_lastFilename
.empty()) 
 137         path 
= wxPathOnly(m_lastFilename
); 
 139         path 
= wxGetApp().GetAppDir(); 
 141     wxString 
filename(path
); 
 142     if (filename
.Last() != wxFILE_SEP_PATH 
) 
 143         filename 
+= wxFILE_SEP_PATH
; 
 144     filename 
+= rootName
; 
 146     wxString fullFilename 
= filename 
+ wxT(".wxs"); 
 149     while (wxFileExists(fullFilename
)) 
 152         postfixStr
.Printf(_T("%d"), i
); 
 153         fullFilename 
= filename 
+ postfixStr 
+ wxT(".wxs"); 
 156     m_lastFilename 
= fullFilename
; 
 161 bool ctSettings::LoadConfig() 
 163     wxConfig 
config(wxGetApp().GetSettings().GetAppName(), wxT("wxWidgets")); 
 165     config
.Read(wxT("Files/LastFile"), & m_lastFilename
); 
 166     config
.Read(wxT("Files/LastSetupSaveDir"), & m_lastSetupSaveDir
); 
 167     config
.Read(wxT("Files/ExportDir"), & m_exportDir
); 
 168     config
.Read(wxT("Files/FrameworkDir"), & m_frameworkDir
); 
 169     config
.Read(wxT("Files/UseEnvironmentVariable"), (bool*) & m_useEnvironmentVariable
); 
 171     config
.Read(wxT("Misc/UserName"), & m_userName
); 
 172     config
.Read(wxT("Misc/FrameStatus"), & m_frameStatus
); 
 173     config
.Read(wxT("Misc/ShowToolTips"), (bool*) & m_useToolTips
); 
 174     config
.Read(wxT("Misc/LastDocument"), & m_lastDocument
); 
 175     config
.Read(wxT("Misc/LoadLastDocument"), (bool*) & m_loadLastDocument
); 
 176     config
.Read(wxT("Misc/ShowWelcomeDialog"), (bool*) & m_showWelcomeDialog
); 
 177     config
.Read(wxT("Misc/Ran"), & m_noUses
); 
 178     config
.Read(wxT("Misc/ShowTrayIcon"), (bool*) & m_showTrayIcon
); 
 179     config
.Read(wxT("Misc/MatchWholeWord"), (bool*) & m_matchWholeWord
); 
 180     config
.Read(wxT("Misc/MatchCase"), (bool*) & m_matchCase
); 
 181     config
.Read(wxT("Misc/BuildMode"), & m_defaultFileKind 
); 
 185     config
.Read(wxT("Windows/ShowToolBar"), (bool*) & m_showToolBar
); 
 187     m_firstTimeRun 
= !(config
.Read(wxT("Windows/WindowX"), & m_frameSize
.x
)); 
 188     config
.Read(wxT("Windows/WindowY"), & m_frameSize
.y
); 
 189     config
.Read(wxT("Windows/WindowWidth"), & m_frameSize
.width
); 
 190     config
.Read(wxT("Windows/WindowHeight"), & m_frameSize
.height
); 
 191     config
.Read(wxT("Windows/ShowSplashScreen"), (bool*) & m_showSplashScreen
); 
 192     config
.Read(wxT("Windows/SmallToolbar"), (bool*) & m_smallToolbar
); 
 193     config
.Read(wxT("Windows/MainSashSize"), & m_mainSashSize
); 
 197     fontSpec 
= wxEmptyString
; 
 198     config
.Read(wxT("Style/EditWindowFont"), & fontSpec
); 
 199     if (!fontSpec
.empty()) 
 200         m_editWindowFont 
= apStringToFont(fontSpec
); 
 203     int runningProgram 
= 0; 
 204     config
.Read(wxT("Misc/RunningProgram"), & runningProgram
); 
 207     // runningProgram should be zero if all is well. If 1, 
 208     // it crashed during a run, so we should disable the auto-load 
 209     // facility just in case it's trying to load a damaged file. 
 210     if (runningProgram 
!= 0) 
 212         m_loadLastDocument 
= false; 
 216     config
.Write(wxT("Misc/RunningProgram"), (long) 1); 
 222 bool ctSettings::SaveConfig() 
 224     wxConfig 
config(wxGetApp().GetSettings().GetAppName(), wxT("wxWidgets")); 
 226     config
.Write(wxT("Files/LastFile"), m_lastFilename
); 
 227     config
.Write(wxT("Files/LastSetupSaveDir"), m_lastSetupSaveDir
); 
 228     config
.Write(wxT("Files/ExportDir"), m_exportDir
); 
 229     config
.Write(wxT("Files/FrameworkDir"), m_frameworkDir
); 
 230     config
.Write(wxT("Files/UseEnvironmentVariable"), m_useEnvironmentVariable
); 
 232     config
.Write(wxT("Misc/UserName"), m_userName
); 
 233     config
.Write(wxT("Misc/FrameStatus"), (long) m_frameStatus
); 
 234     config
.Write(wxT("Misc/ShowToolTips"), m_useToolTips
); 
 235     config
.Write(wxT("Misc/LastDocument"), m_lastDocument
); 
 236     config
.Write(wxT("Misc/LoadLastDocument"), (long) m_loadLastDocument
); 
 237     config
.Write(wxT("Misc/ShowWelcomeDialog"), (long) m_showWelcomeDialog
); 
 238     config
.Write(wxT("Misc/Ran"), m_noUses
); 
 239     config
.Write(wxT("Misc/ShowTrayIcon"), (long) m_showTrayIcon
); 
 240     config
.Write(wxT("Misc/MatchWholeWord"), (long) m_matchWholeWord
); 
 241     config
.Write(wxT("Misc/MatchCase"), (long) m_matchCase
); 
 242     config
.Write(wxT("Misc/BuildMode"), m_defaultFileKind
); 
 244     config
.Write(wxT("Windows/ShowToolBar"), m_showToolBar
); 
 245     config
.Write(wxT("Windows/WindowX"), (long) m_frameSize
.x
); 
 246     config
.Write(wxT("Windows/WindowY"), (long) m_frameSize
.y
); 
 247     config
.Write(wxT("Windows/WindowWidth"), (long) m_frameSize
.width
); 
 248     config
.Write(wxT("Windows/WindowHeight"), (long) m_frameSize
.height
); 
 250     config
.Write(wxT("Windows/ShowSplashScreen"), m_showSplashScreen
); 
 251     config
.Write(wxT("Windows/SmallToolbar"), (long) m_smallToolbar
); 
 252     config
.Write(wxT("Windows/MainSashSize"), (long) m_mainSashSize
); 
 255     wxString backgroundColour(apColourToHexString(m_backgroundColour)); 
 256     config.Write(wxT("Style/BackgroundColour"), backgroundColour); 
 259     config
.Write(wxT("Style/EditWindowFont"), apFontToString(m_editWindowFont
)); 
 261     // Indicate that we're no longer running, so we know if the program 
 262     // crashed last time around. 
 263     config
.Write(wxT("Misc/RunningProgram"), (long) 0); 
 266         config
.SetPath(wxT("FileHistory/")); 
 267         wxGetApp().GetDocManager()->FileHistorySave(config
); 
 273 void ctSettings::ShowSettingsDialog(const wxString
& WXUNUSED(page
)) 
 275     ctSettingsDialog
* dialog 
= new ctSettingsDialog(wxGetApp().GetTopWindow()); 
 276 //    if (!page.IsEmpty()) 
 277 //        dialog->GetNotebook()->SetSelection(apFindNotebookPage(dialog->GetNotebook(), page)); 
 279     /* int ret = */ dialog
->ShowModal();