mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-26 15:23:48 +01:00
Locate and position the current Audacity source code, and clear a variety of old junk out of the way into junk-branches
This commit is contained in:
181
src/prefs/GUIPrefs.cpp
Normal file
181
src/prefs/GUIPrefs.cpp
Normal file
@@ -0,0 +1,181 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
GUIPrefs.cpp
|
||||
|
||||
Brian Gunlogson
|
||||
Joshua Haberman
|
||||
Dominic Mazzoni
|
||||
James Crook
|
||||
|
||||
|
||||
*******************************************************************//**
|
||||
|
||||
\class GUIPrefs
|
||||
\brief A PrefsPanel for general GUI preferences.
|
||||
|
||||
*//*******************************************************************/
|
||||
|
||||
#include "../Audacity.h"
|
||||
|
||||
#include <wx/defs.h>
|
||||
|
||||
#include "../AudacityApp.h"
|
||||
#include "../Languages.h"
|
||||
#include "../Prefs.h"
|
||||
#include "../ShuttleGui.h"
|
||||
|
||||
#include "GUIPrefs.h"
|
||||
|
||||
GUIPrefs::GUIPrefs(wxWindow * parent)
|
||||
: PrefsPanel(parent, _("Interface"))
|
||||
{
|
||||
Populate();
|
||||
}
|
||||
|
||||
GUIPrefs::~GUIPrefs()
|
||||
{
|
||||
}
|
||||
|
||||
void GUIPrefs::Populate()
|
||||
{
|
||||
// First any pre-processing for constructing the GUI.
|
||||
GetLanguages(mLangCodes, mLangNames);
|
||||
|
||||
mHtmlHelpCodes.Add(wxT("Local"));
|
||||
mHtmlHelpCodes.Add(wxT("FromInternet"));
|
||||
|
||||
mHtmlHelpChoices.Add(_("Local"));
|
||||
mHtmlHelpChoices.Add(_("From Internet"));
|
||||
|
||||
mRangeCodes.Add(_("36"));
|
||||
mRangeCodes.Add(_("48"));
|
||||
mRangeCodes.Add(_("60"));
|
||||
mRangeCodes.Add(_("96"));
|
||||
mRangeCodes.Add(_("120"));
|
||||
mRangeCodes.Add(_("145"));
|
||||
|
||||
mRangeChoices.Add(_("-36 dB (shallow range for high-amplitude editing)"));
|
||||
mRangeChoices.Add(_("-48 dB (PCM range of 8 bit samples)"));
|
||||
mRangeChoices.Add(_("-60 dB (PCM range of 10 bit samples)"));
|
||||
mRangeChoices.Add(_("-96 dB (PCM range of 16 bit samples)"));
|
||||
mRangeChoices.Add(_("-120 dB (approximate limit of human hearing)"));
|
||||
mRangeChoices.Add(_("-145 dB (PCM range of 24 bit samples)"));
|
||||
|
||||
#if 0
|
||||
// only for testing...
|
||||
mLangCodes.Add("kg"); mLangNames.Add("Klingon");
|
||||
mLangCodes.Add("ep"); mLangNames.Add("Esperanto");
|
||||
#endif
|
||||
|
||||
//------------------------- Main section --------------------
|
||||
// Now construct the GUI itself.
|
||||
// Use 'eIsCreatingFromPrefs' so that the GUI is
|
||||
// initialised with values from gPrefs.
|
||||
ShuttleGui S(this, eIsCreatingFromPrefs);
|
||||
PopulateOrExchange(S);
|
||||
// ----------------------- End of main section --------------
|
||||
}
|
||||
|
||||
// Code duplication warning: this default is repeated in Project.cpp
|
||||
// in the destructor. -DMM
|
||||
#ifdef __WXMAC__
|
||||
const bool bQuitOnCloseDefault = false;
|
||||
#else
|
||||
const bool bQuitOnCloseDefault = true;
|
||||
#endif
|
||||
// End code duplication warning
|
||||
|
||||
void GUIPrefs::PopulateOrExchange(ShuttleGui & S)
|
||||
{
|
||||
S.SetBorder(2);
|
||||
|
||||
S.StartStatic(_("Display"));
|
||||
{
|
||||
S.TieCheckBox(_("&Ergonomic order of audio I/O buttons"),
|
||||
wxT("/GUI/ErgonomicTransportButtons"),
|
||||
true);
|
||||
S.TieCheckBox(_("S&how 'How to get Help' message at program start up"),
|
||||
wxT("/GUI/ShowSplashScreen"),
|
||||
true);
|
||||
|
||||
S.AddSpace(10);
|
||||
|
||||
S.StartMultiColumn(2);
|
||||
{
|
||||
S.TieChoice(_("Meter/Waveform dB &range:"),
|
||||
wxT("/GUI/EnvdBRange"),
|
||||
wxT("60"),
|
||||
mRangeChoices,
|
||||
mRangeCodes);
|
||||
S.SetSizeHints(mRangeChoices);
|
||||
|
||||
S.TieChoice(_("&Language:"),
|
||||
wxT("/Locale/Language"),
|
||||
wxT(""),
|
||||
mLangNames,
|
||||
mLangCodes);
|
||||
S.SetSizeHints(mLangNames);
|
||||
|
||||
S.TieChoice(_("Location of &Manual:"),
|
||||
wxT("/GUI/Help"),
|
||||
wxT("Local"),
|
||||
mHtmlHelpChoices,
|
||||
mHtmlHelpCodes);
|
||||
S.SetSizeHints(mHtmlHelpChoices);
|
||||
}
|
||||
S.EndMultiColumn();
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(_("Behaviors"));
|
||||
{
|
||||
S.TieCheckBox(_("Closing last window &quits Audacity"),
|
||||
wxT("/GUI/QuitOnClose"),
|
||||
bQuitOnCloseDefault);
|
||||
S.TieCheckBox(_("&Beep on completion of longer activities"),
|
||||
wxT("/GUI/BeepOnCompletion"),
|
||||
false);
|
||||
}
|
||||
S.EndStatic();
|
||||
|
||||
S.StartStatic(_("Modes"));
|
||||
{
|
||||
S.TieCheckBox(_("Clea&nSpeech Mode (Customized GUI)"),
|
||||
wxT("/Batch/CleanSpeechMode"),
|
||||
false);
|
||||
#ifdef __WXDEBUG__
|
||||
S.TieCheckBox(_("Don't a&pply effects in batch mode"),
|
||||
wxT("/Batch/Debug"),
|
||||
false);
|
||||
#endif
|
||||
}
|
||||
S.EndStatic();
|
||||
}
|
||||
|
||||
bool GUIPrefs::Apply()
|
||||
{
|
||||
ShuttleGui S(this, eIsSavingToPrefs);
|
||||
PopulateOrExchange(S);
|
||||
|
||||
// If language has changed, we want to change it now, not on the next reboot.
|
||||
wxString lang = gPrefs->Read(wxT("/Locale/Language"), wxT(""));
|
||||
if (lang == wxT(""))
|
||||
lang = GetSystemLanguageCode();
|
||||
wxGetApp().InitLang(lang);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
|
||||
// version control system. Please do not modify past this point.
|
||||
//
|
||||
// Local Variables:
|
||||
// c-basic-offset: 3
|
||||
// indent-tabs-mode: nil
|
||||
// End:
|
||||
//
|
||||
// vim: et sts=3 sw=3
|
||||
// arch-tag: 7e997d04-6b94-4abb-b3d6-748400f86598
|
||||
Reference in New Issue
Block a user