1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/**********************************************************************
Audacity: A Digital Audio Editor
ShuttlePrefs.cpp
Dominic Mazzoni
James Crook
Implements ShuttlePrefs
********************************************************************//*!
\class ShuttlePrefs
\brief
A kind of Shuttle to exchange data with preferences e.g. the registry
This class may be used by ShuttleGui to do the two step exchange,
\verbatim
Gui -- Data -- Prefs
\endverbatim
*//*******************************************************************/
#include "ShuttlePrefs.h"
#include <wx/defs.h>
#include "WrappedType.h"
#include "Prefs.h"
bool ShuttlePrefs::TransferBool( const wxString & Name, bool & bValue, const bool & bDefault )
{
if( mbStoreInClient )
{
bValue = bDefault;
gPrefs->Read( Name, &bValue );
}
else
{
return gPrefs->Write( Name, bValue );
}
return true;
}
bool ShuttlePrefs::TransferDouble( const wxString & Name, double & dValue, const double &dDefault )
{
if( mbStoreInClient )
{
dValue = dDefault;
gPrefs->Read( Name, &dValue );
}
else
{
return gPrefs->Write( Name, dValue );
}
return true;
}
bool ShuttlePrefs::TransferInt( const wxString & Name, int & iValue, const int &iDefault )
{
if( mbStoreInClient )
{
iValue = iDefault;
gPrefs->Read( Name, &iValue );
}
else
{
return gPrefs->Write( Name, iValue );
}
return true;
}
bool ShuttlePrefs::TransferString( const wxString & Name, wxString & strValue, const wxString &strDefault )
{
if( mbStoreInClient )
{
strValue = strDefault;
gPrefs->Read( Name, &strValue );
}
else
{
return gPrefs->Write( Name, strValue );
}
return true;
}
bool ShuttlePrefs::TransferWrappedType( const wxString & Name, WrappedType & W )
{
switch( W.eWrappedType )
{
case eWrappedString:
return TransferString( Name, *W.mpStr, *W.mpStr );
break;
case eWrappedInt:
return TransferInt( Name, *W.mpInt, *W.mpInt );
break;
case eWrappedDouble:
return TransferDouble( Name, *W.mpDouble, *W.mpDouble );
break;
case eWrappedBool:
return TransferBool( Name, *W.mpBool, *W.mpBool );
break;
case eWrappedEnum:
wxASSERT( false );
break;
default:
wxASSERT( false );
break;
}
return false;
}
bool ShuttlePrefs::ExchangeWithMaster(const wxString & WXUNUSED(Name))
{
// ShuttlePrefs is unusual in that it overloads ALL the Transfer functions
// which it supports. It doesn't do any string conversion, because wxConv will
// do so if it is required.
// So, ExchangeWithMaster should never get called... Hence the ASSERT here.
wxASSERT( false );
return false;
}
|