1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-10 05:30:01 +01:00

class EnumValueSymbols lets you specify a table...

... of EnumValueSymbol either row-wise or column-wise
This commit is contained in:
Paul Licameli
2019-04-03 08:59:05 -04:00
parent 9b67e7538f
commit 1236c5bfed
3 changed files with 81 additions and 12 deletions

View File

@@ -239,6 +239,42 @@ void FinishPreferences()
}
}
//////////
EnumValueSymbols::EnumValueSymbols(
ByColumns_t,
const wxArrayStringEx &msgids,
wxArrayStringEx internals
)
: mInternals( std::move( internals ) )
{
auto size = mInternals.size(), size2 = msgids.size();
if ( size != size2 ) {
wxASSERT( false );
size = std::min( size, size2 );
}
reserve( size );
auto iter1 = mInternals.begin();
auto iter2 = msgids.begin();
while( size-- )
emplace_back( *iter1++, *iter2++ );
}
const wxArrayStringEx &EnumValueSymbols::GetTranslations() const
{
if ( mTranslations.empty() )
mTranslations = transform_container<wxArrayStringEx>( *this,
std::mem_fn( &EnumValueSymbol::Translation ) );
return mTranslations;
}
const wxArrayStringEx &EnumValueSymbols::GetInternals() const
{
if ( mInternals.empty() )
mInternals = transform_container<wxArrayStringEx>( *this,
std::mem_fn( &EnumValueSymbol::Internal ) );
return mInternals;
}
//////////
wxString ChoiceSetting::Read() const
{
@@ -260,9 +296,9 @@ wxString ChoiceSetting::Read() const
size_t ChoiceSetting::Find( const wxString &value ) const
{
auto start = begin();
auto start = GetSymbols().begin();
return size_t(
std::find( start, end(), EnumValueSymbol{ value, {} } )
std::find( start, GetSymbols().end(), EnumValueSymbol{ value, {} } )
- start );
}
@@ -346,3 +382,5 @@ wxString WarningDialogKey(const wxString &internalDialogName)
{
return wxT("/Warnings/") + internalDialogName;
}
ByColumns_t ByColumns{};