openMSX
Public Types | Public Member Functions | List of all members
openmsx::EnumSetting< T > Class Template Referencefinal

#include <EnumSetting.hh>

Inheritance diagram for openmsx::EnumSetting< T >:
Inheritance graph
[legend]
Collaboration diagram for openmsx::EnumSetting< T >:
Collaboration graph
[legend]

Public Types

using Map = EnumSettingBase::Map
 
- Public Types inherited from openmsx::EnumSettingBase
using Map = std::vector< MapEntry >
 
- Public Types inherited from openmsx::Setting
enum  SaveSetting { SAVE , DONT_SAVE , DONT_TRANSFER }
 

Public Member Functions

 EnumSetting (CommandController &commandController, std::string_view name, static_string_view description, T initialValue, Map &&map_, SaveSetting save=SAVE)
 
std::string_view getTypeString () const override
 Returns a string describing the setting type (integer, string, ..) Could be used in a GUI to pick an appropriate setting widget.
 
void additionalInfo (TclObject &result) const override
 Helper method for info().
 
void tabCompletion (std::vector< std::string > &tokens) const override
 Complete a partly typed value.
 
getEnum () const noexcept
 
void setEnum (T e)
 
std::string_view getString () const
 
bool getEnum () const noexcept
 
- Public Member Functions inherited from openmsx::EnumSettingBase
const auto & getMap () const
 
- Public Member Functions inherited from openmsx::Setting
 Setting (const Setting &)=delete
 
Settingoperator= (const Setting &)=delete
 
virtual ~Setting ()
 
const TclObjectgetValue () const final
 Gets the current value of this setting as a TclObject.
 
std::optional< TclObjectgetOptionalValue () const final
 Like getValue(), but in case of error returns an empty optional instead of throwing an exception.
 
void setChecker (std::function< void(TclObject &)> checkFunc_)
 Set value-check-callback.
 
void setValue (const TclObject &newValue) final
 Change the value of this setting to the given value.
 
std::string_view getDescription () const final
 pure virtual methods ///
 
TclObject getDefaultValue () const final
 Get the default value of this setting.
 
void setValueDirect (const TclObject &newValue) final
 Similar to setValue(), but doesn't trigger Tcl traces.
 
void tabCompletion (std::vector< std::string > &tokens) const override
 Complete a partly typed value.
 
bool needLoadSave () const final
 Does this setting need to be loaded or saved (settings.xml).
 
void additionalInfo (TclObject &result) const override
 Helper method for info().
 
bool needTransfer () const final
 Does this setting need to be transfered on reverse.
 
CommandControllergetCommandController () const
 
InterpretergetInterpreter () const
 
- Public Member Functions inherited from openmsx::BaseSetting
const TclObjectgetFullNameObj () const
 Get the name of this setting.
 
const TclObjectgetBaseNameObj () const
 
std::string_view getFullName () const
 
std::string_view getBaseName () const
 
void setPrefix (std::string_view prefix)
 Set a machine specific prefix.
 
void info (TclObject &result) const
 For SettingInfo.
 
- Public Member Functions inherited from openmsx::Subject< Setting >
void attach (Observer< Setting > &observer)
 
void detach (Observer< Setting > &observer)
 
bool anyObservers () const
 

Additional Inherited Members

- Protected Member Functions inherited from openmsx::EnumSettingBase
 EnumSettingBase (Map &&m)
 
int fromStringBase (std::string_view str) const
 
std::string_view toStringBase (int value) const
 
auto getPossibleValues () const
 
void additionalInfoBase (TclObject &result) const
 
void tabCompletionBase (std::vector< std::string > &tokens) const
 
- Protected Member Functions inherited from openmsx::Setting
 Setting (CommandController &commandController, std::string_view name, static_string_view description, const TclObject &initialValue, SaveSetting save=SAVE)
 
void init ()
 
void notifyPropertyChange () const
 
- Protected Member Functions inherited from openmsx::BaseSetting
 BaseSetting (std::string_view name)
 
 BaseSetting (TclObject name)
 
 ~BaseSetting ()=default
 
- Protected Member Functions inherited from openmsx::Subject< Setting >
 Subject ()=default
 
 ~Subject ()
 
void notify () const
 

Detailed Description

template<EnumSettingValue T>
class openmsx::EnumSetting< T >

Definition at line 55 of file EnumSetting.hh.

Member Typedef Documentation

◆ Map

template<EnumSettingValue T>
using openmsx::EnumSetting< T >::Map = EnumSettingBase::Map

Definition at line 58 of file EnumSetting.hh.

Constructor & Destructor Documentation

◆ EnumSetting()

template<EnumSettingValue T>
openmsx::EnumSetting< T >::EnumSetting ( CommandController commandController,
std::string_view  name,
static_string_view  description,
initialValue,
Map &&  map_,
SaveSetting  save = SAVE 
)

Member Function Documentation

◆ additionalInfo()

template<EnumSettingValue T>
void openmsx::EnumSetting< T >::additionalInfo ( TclObject result) const
overridevirtual

Helper method for info().

Implements openmsx::BaseSetting.

Definition at line 102 of file EnumSetting.hh.

References openmsx::EnumSettingBase::additionalInfoBase().

◆ getEnum() [1/2]

template<EnumSettingValue T>
T openmsx::EnumSetting< T >::getEnum ( ) const
noexcept

◆ getEnum() [2/2]

bool openmsx::EnumSetting< bool >::getEnum ( ) const
inlinenoexcept

◆ getString()

template<EnumSettingValue T>
std::string_view openmsx::EnumSetting< T >::getString ( ) const

◆ getTypeString()

template<EnumSettingValue T>
std::string_view openmsx::EnumSetting< T >::getTypeString ( ) const
overridevirtual

Returns a string describing the setting type (integer, string, ..) Could be used in a GUI to pick an appropriate setting widget.

Implements openmsx::BaseSetting.

Definition at line 96 of file EnumSetting.hh.

◆ setEnum()

template<EnumSettingValue T>
void openmsx::EnumSetting< T >::setEnum ( e)

Definition at line 125 of file EnumSetting.hh.

References openmsx::Setting::setValue().

◆ tabCompletion()

template<EnumSettingValue T>
void openmsx::EnumSetting< T >::tabCompletion ( std::vector< std::string > &  tokens) const
overridevirtual

Complete a partly typed value.

Default implementation does not complete anything, subclasses can override this to complete according to their specific value type.

Implements openmsx::BaseSetting.

Definition at line 108 of file EnumSetting.hh.

References openmsx::EnumSettingBase::tabCompletionBase().


The documentation for this class was generated from the following file: