1 /**********************************************************************
2 
3   Audacity: A Digital Audio Editor
4 
5   GUIPrefs.h
6 
7   Brian Gunlogson
8   Joshua Haberman
9   James Crook
10 
11 **********************************************************************/
12 
13 #ifndef __AUDACITY_GUI_PREFS__
14 #define __AUDACITY_GUI_PREFS__
15 
16 #include <wx/defs.h>
17 
18 #include "PrefsPanel.h"
19 
20 class ChoiceSetting;
21 class ShuttleGui;
22 
23 #define GUI_PREFS_PLUGIN_SYMBOL ComponentInterfaceSymbol{ XO("GUI") }
24 
25 class AUDACITY_DLL_API GUIPrefs final : public PrefsPanel
26 {
27  public:
28    GUIPrefs(wxWindow * parent, wxWindowID winid);
29    ~GUIPrefs();
30    ComponentInterfaceSymbol GetSymbol() override;
31    TranslatableString GetDescription() override;
32 
33    bool Commit() override;
34    ManualPageID HelpPageName() override;
35    void PopulateOrExchange(ShuttleGui & S) override;
36 
37    static void GetRangeChoices(
38       TranslatableStrings *pChoices,
39       wxArrayStringEx *pCodes,
40       int *pDefaultRangeIndex = nullptr
41    );
42 
43    // If no input language given, defaults to system language.
44    // Returns the language actually used which is not lang if lang cannot be found.
45    static wxString SetLang( const wxString & lang );
46 
47  private:
48    void Populate();
49 
50    wxArrayStringEx mLangCodes;
51    TranslatableStrings mLangNames;
52 
53    wxArrayStringEx mRangeCodes;
54    TranslatableStrings mRangeChoices;
55    int mDefaultRangeIndex;
56 };
57 
58 AUDACITY_DLL_API
59 int ShowClippingPrefsID();
60 AUDACITY_DLL_API
61 int ShowTrackNameInWaveformPrefsID();
62 
63 extern AUDACITY_DLL_API ChoiceSetting
64      GUIManualLocation
65 ;
66 
67 #endif
68