14#ifndef OSG_APPLICATIONUSAGE
15#define OSG_APPLICATIONUSAGE 1
35 typedef std::map<std::string,std::string>
UsageMap;
50 COMMAND_LINE_OPTION = 0x1,
51 ENVIRONMENTAL_VARIABLE = 0x2,
52 KEYBOARD_MOUSE_BINDING = 0x4,
53 HELP_ALL = KEYBOARD_MOUSE_BINDING|ENVIRONMENTAL_VARIABLE|COMMAND_LINE_OPTION
62 void addCommandLineOption(
const std::string& option,
const std::string& explanation,
const std::string &defaultValue =
"");
92 void write(std::ostream& output,
unsigned int type=COMMAND_LINE_OPTION,
unsigned int widthOfOutput=80,
bool showDefaults=
false);
Definition ApplicationUsage:112
ApplicationUsageProxy(ApplicationUsage::Type type, const std::string &option, const std::string &explanation)
Definition ApplicationUsage:116
Definition ApplicationUsage:26
void setEnvironmentalVariablesDefaults(const UsageMap &usageMap)
Definition ApplicationUsage:76
UsageMap _commandLineOptions
Definition ApplicationUsage:103
const std::string & getDescription() const
Definition ApplicationUsage:45
const std::string & getApplicationName() const
Definition ApplicationUsage:40
void addKeyboardMouseBinding(int key, const std::string &explanation)
void setCommandLineUsage(const std::string &explanation)
Definition ApplicationUsage:58
const UsageMap & getCommandLineOptionsDefaults() const
Definition ApplicationUsage:68
const UsageMap & getEnvironmentalVariablesDefaults() const
Definition ApplicationUsage:77
void addUsageExplanation(Type type, const std::string &option, const std::string &explanation)
std::string _commandLineUsage
Definition ApplicationUsage:102
void setCommandLineOptions(const UsageMap &usageMap)
Definition ApplicationUsage:64
void write(std::ostream &output, const UsageMap &um, unsigned int widthOfOutput=80, bool showDefaults=false, const UsageMap &ud=UsageMap())
UsageMap _environmentalVariablesDefaults
Definition ApplicationUsage:106
void writeEnvironmentSettings(std::ostream &output)
void addCommandLineOption(const std::string &option, const std::string &explanation, const std::string &defaultValue="")
void write(std::ostream &output, unsigned int type=COMMAND_LINE_OPTION, unsigned int widthOfOutput=80, bool showDefaults=false)
const UsageMap & getEnvironmentalVariables() const
Definition ApplicationUsage:74
void setEnvironmentalVariables(const UsageMap &usageMap)
Definition ApplicationUsage:73
virtual ~ApplicationUsage()
Definition ApplicationUsage:98
ApplicationUsage()
Definition ApplicationUsage:31
const UsageMap & getCommandLineOptions() const
Definition ApplicationUsage:65
void getFormattedString(std::string &str, const UsageMap &um, unsigned int widthOfOutput=80, bool showDefaults=false, const UsageMap &ud=UsageMap())
std::map< std::string, std::string > UsageMap
Definition ApplicationUsage:35
void setKeyboardMouseBindings(const UsageMap &usageMap)
Definition ApplicationUsage:84
std::string _description
Definition ApplicationUsage:101
UsageMap _commandLineOptionsDefaults
Definition ApplicationUsage:107
ApplicationUsage(const std::string &commandLineUsage)
void setDescription(const std::string &desc)
Definition ApplicationUsage:44
const UsageMap & getKeyboardMouseBindings() const
Definition ApplicationUsage:85
void addEnvironmentalVariable(const std::string &option, const std::string &explanation, const std::string &defaultValue="")
void addKeyboardMouseBinding(const std::string &prefix, int key, const std::string &explanation)
void setCommandLineOptionsDefaults(const UsageMap &usageMap)
Definition ApplicationUsage:67
UsageMap _keyboardMouse
Definition ApplicationUsage:105
Type
Definition ApplicationUsage:48
void setApplicationName(const std::string &name)
Definition ApplicationUsage:39
void addKeyboardMouseBinding(const std::string &option, const std::string &explanation)
UsageMap _environmentalVariables
Definition ApplicationUsage:104
const std::string & getCommandLineUsage() const
Definition ApplicationUsage:59
static ApplicationUsage * instance()
std::string _applicationName
Definition ApplicationUsage:100
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
#define OSG_EXPORT
Definition osg/Export:39