1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-18 17:47:41 +02:00

62 Commits

Author SHA1 Message Date
Paul Licameli
cfbdd2d22e Type alias ManualPageID for wxString used in many places...
... eliminating many direct mentions of wxString.  A real type distinction will
be made next.
2021-07-01 13:33:04 -04:00
Paul Licameli
f1de843246 Use Settings for default sample rate and format...
... The first is an example of a Setting with a computed default value.

Also making a new file to hold them, separate from the GUI that changes them
in QualityPrefs; fewer things depend on QualityPrefs
2021-05-17 08:46:08 -04:00
Paul Licameli
c5ebc396eb Audacity.h has shrunk to nothing, now remove it! 2021-05-10 00:05:23 -05:00
Paul Licameli
4d09705a73 Change XO to XXO in many more places, with no effects at all...
... because the two macros have the same expansion, and are both checked for
in the --keyword arguments passed to msgfmt by locale/update_po_files.sh.

This commit makes ONLY such changes, and comments in Internat.h.  It is big
but quite harmless.

The intention is to introduce a type distinction in a later release, by defining
XXO differently.  XXO is used where & characters in strings (for hotkeys of menu
items or control prompts) are permitted, XO where not.
2020-05-22 13:07:50 -04:00
Paul Licameli
a333b7d35a Redefine PrefsPanel::Registration with new Registry system...
... preserving the existing ordering of pages with a combination of
preferences and ordering hints
2020-02-01 07:13:03 -05:00
Paul Licameli
e110f66ff8 PrefsPanel classes registered; PrefsDialog.cpp independent of headers 2020-01-20 00:19:13 -05:00
Paul Licameli
c9a9c06bd0 Pass AudacityProject * into preference panel factories 2020-01-04 12:37:57 -05:00
Paul Licameli
d1637c22c0 TranslatableString for explicit prompts and units in ShuttleGui 2019-12-23 19:22:03 -05:00
Paul Licameli
b404eb7800 TranslatableString for static text box captions 2019-12-23 18:52:37 -05:00
Paul Licameli
21e7b9f2de TranslatableString for prompts of choice controls 2019-12-23 15:39:49 -05:00
Paul Licameli
618fee21ec TranslatableString for ComponentInterface::GetDescription() 2019-12-16 14:21:57 -05:00
Paul Licameli
681950fc61 TranslatableString for names, labels, tooltips of wxPanelWrapper...
... and Grabber too
2019-12-16 10:58:05 -05:00
Paul Licameli
15260c2c95 TranslatableString can store a context and format arguments...
... Format arguments are substituted into the translation of the msgid, which
may not be known at the time the format arguments are captured (because locale
may change).  This allows TranslatableString with arguments to be constructed
at static initialization time.

There is also a special "verbatim" or null context which makes no translations
of msgids.

There is not yet any use of other contexts besides default or null.
2019-12-05 11:34:06 -05:00
Paul Licameli
b351eabf47 ComponentInterfaceSymbol contains TranslatableString 2019-12-01 18:08:56 -05:00
Paul Licameli
f20e4786e9 Replace ShuttleGui::SetNoMatchSelector with arg in TieNumberAsChoice 2019-11-28 14:24:43 -05:00
Paul Licameli
d4ffbe0d68 Group setting path & default value arguments of Tie...() functions 2019-11-28 13:26:23 -05:00
Paul Licameli
087ac5e6c9 Change one overload of TieChoice to expect un-translated strings...
... preparatory to removing that overload.

This overload is used in exactly these files:

DevicePrefs.cpp (displaying host names retrieved by portaudio, which are not
defined in Audacity source)

EffectsPrefs.cpp

ExportFLAC.cpp (twice)

ExportMultiple.cpp (displaying the descriptions defined in the several export
plugin classes)

GUIPrefs.cpp (four times: languages, manual location, theme, and meter DB
range; the language names themselves don't have localizations!)

MidiIOPrefs.cpp (displaying host names retrieved by portmidi)

TracksBehaviorsPrefs.cpp (for solo button choices)

There is also TieNumberAsChoice, used in QualityPrefs and elsewhere, which
calls through to that overload.
2019-11-27 13:38:16 -05:00
Paul Licameli
dc3e872ca6 Reimplement TieNumberAsChoice and fix some comments...
... Make the array of integer choices optional, and call through to the
non-deprecated overload of TieChoice, which uses strings.

In 2.3.3 this function is only used in the Quality preferences dialog.
2019-11-27 13:38:06 -05:00
Paul Licameli
0d910bbe02 EnumSetting has a template parameter 2019-11-27 13:37:24 -05:00
Paul Licameli
9b67e7538f ChoiceSetting contains vectors; simplify constructions of it 2019-11-27 13:37:23 -05:00
Paul Licameli
42a4f55ffe Prepare to split AudioIOBase from AudioIO...
... New files, but (almost) empty; don't use the global variable gAudioIO,
but use one of two accessor function names (which are the same function for
now).

AudioIOBase will have fewer dependencies than AudioIO -- in particular, no
dependency on tracks.

It won't include StartStream.  It will contain functions to query the
present state of streams, and device capabilities.
2019-06-10 20:48:38 -04:00
Paul Licameli
82f4948360 Dither.cpp and SampleFormat.cpp have fewer dependencies...
... Notably they longer depend indirectly on AudioIO.cpp (via QualityPrefs)

This frees nine files from dependency cycles
2019-05-18 20:29:25 -04:00
Paul Licameli
6c57948d8f Remove unnecessary #include-s from .cpp files...
... Unnecessary because transitively included.

But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
2019-05-16 17:21:00 -04:00
Paul Licameli
bf005c0dec PrefsPanel::Factory is a specialization of std::function...
... We don't need to define a class for it
2019-05-16 12:14:51 -04:00
James Crook
3b312f9d1b Add ComponentInterface to PrefsPanel
This is so that we can have plug-in prefs panels loaded from a dll, and introspect what we have.
2019-04-15 13:26:18 +01:00
Paul Licameli
1649e3669e Rename EnumSetting -> ChoiceSetting, EncodedEnumSetting -> EnumSetting 2019-04-07 16:42:11 -04:00
Paul Licameli
f3e8620756 Consistent default for /SamplingRate/DefaultProjectSampleRate 2019-04-05 17:43:22 -04:00
Paul Licameli
44d664c7bb Remove ErrorDialog.h from .h files (one function moves out of line) 2019-03-31 15:39:55 -04:00
Paul Licameli
803d8b9559 Remove wx/filename.h, wx/choice.h, wxFileNameWrapper.h from headers 2019-03-28 03:12:42 -04:00
Paul Licameli
da895783fd A few more uses of type alias EnumValueSymbol where more proper 2019-03-19 15:15:09 -04:00
Paul Licameli
dfeb7e18aa Type aliases for some uses of ComponentInterfaceSymbol...
... to be replaced later with distinct types

Also changing FamilyId => Family in function names

Also NumericFormatId => NumericFormatSymbol
2019-03-14 17:26:20 -04:00
Paul Licameli
2db49dc1f0 Use standard library style members of wxArrayString (and wxString) ...
... which will make it easier to change the types of those containers to
std::vectors of other string-like classes

for wxString,

IsEmpty => empty
Clear => clear
Alloc => reserve

for wxArrayString,

Count => size
GetCount => size
IsEmpty => empty
Add => push_back
Clear => clear
Empty => clear
Sort => std::sort (only with default comparator)
SetCount => resize
Last => back
Item => operator []
Alloc => reserve
2019-03-10 14:43:57 -04:00
James Crook
466e9c179e Create ComponentInterface
It combines the old IdentInterface with the ParamsInterface, providing an identifier and parameters (if needed).
The main purpose of the change is to make the class hierarchy (as viewed via doxygen) much easier to follow.
2018-11-02 17:04:43 +00:00
James Crook
602be9bea6 Fix MSVC build. 2018-03-25 21:41:55 +01:00
Paul Licameli
17cc8a495f Define and use TieNumberAsChoice for Quality sample rate setting 2018-03-25 14:48:52 -04:00
Paul Licameli
24e651fe37 Redo dither method choices in Quality preferences 2018-03-25 14:48:48 -04:00
Paul Licameli
a3d12e1658 Make enum class for dither type 2018-03-25 14:48:01 -04:00
Paul Licameli
bccf8f92cd Redo resampler method choices in Quality preferences 2018-03-25 14:47:58 -04:00
Paul Licameli
2ea5741e2e Redo format setting choices in Quality preferences 2018-03-25 14:46:53 -04:00
Paul Licameli
f7f721b52d Automatic setting size hints in all choice controls in ShuttleGui...
... excpet in a few places that populate the choice control late and then
do it explicitly
2018-03-20 14:42:36 -04:00
Paul Licameli
8be1e8fdad Remove wxArray(Int|Long|Double) except where wxWidgets fns need it 2018-02-21 19:33:31 -05:00
Paul Licameli
228388a63c Follow wxWidgets argument conventions for PrefsPanel factories 2018-02-21 19:21:04 -05:00
James Crook
a019addafb All preferences in scrollers
We now do not need to worry about the preference dialogs getting too big for small screens.
2018-01-17 20:41:40 +00:00
Paul Licameli
c6696f1b49 Move definition of _ and related into Internat.h 2018-01-06 21:03:32 -05:00
Paul Licameli
80a958f8a4 Rewrite empty prompts to ShuttleGUI functions as {} ...
... so we might more easily redefine the type of the function argument,
some other day (not this release)
2018-01-01 22:51:25 -05:00
Paul Licameli
66d5861360 i18n-hints 2017-11-06 11:01:05 -05:00
Paul Licameli
48202284b2 Change virtual function interface of PrefsPanel 2017-06-25 11:42:20 -04:00
Steve Daulton
e16f6f9221 Add small help button to Prefs pages 2017-05-14 19:02:36 +01:00
Paul Licameli
df6a7c5464 More uses of safenew for classes we derive from wxWindow classes...
... Also removed some unnecessary deletes of widgets that are managed by parent
windows
2016-02-14 20:39:28 -05:00
Paul Licameli
d39eaa4e65 Remove WaveTrack.h from other headers 2015-07-28 10:02:05 -04:00