// ***************************************************************************
//
//   Generated automatically by genwrapper.
//   Please DO NOT EDIT this file!
//
// ***************************************************************************

#include <osgIntrospection/ReflectionMacros>
#include <osgIntrospection/TypedMethodInfo>
#include <osgIntrospection/Attributes>

#include <osg/ApplicationUsage>

// Must undefine IN and OUT macros defined in Windows headers
#ifdef IN
#undef IN
#endif
#ifdef OUT
#undef OUT
#endif

TYPE_NAME_ALIAS(std::map< std::string COMMA  std::string >, osg::ApplicationUsage::UsageMap);

BEGIN_ENUM_REFLECTOR(osg::ApplicationUsage::Type)
	I_EnumLabel(osg::ApplicationUsage::COMMAND_LINE_OPTION);
	I_EnumLabel(osg::ApplicationUsage::ENVIRONMENTAL_VARIABLE);
	I_EnumLabel(osg::ApplicationUsage::KEYBOARD_MOUSE_BINDING);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ApplicationUsage)
	I_Constructor0();
	I_Constructor1(IN, const std::string &, commandLineUsage);
	I_Method1(void, setApplicationName, IN, const std::string &, name);
	I_Method0(const std::string &, getApplicationName);
	I_Method1(void, setDescription, IN, const std::string &, desc);
	I_Method0(const std::string &, getDescription);
	I_Method3(void, addUsageExplanation, IN, osg::ApplicationUsage::Type, type, IN, const std::string &, option, IN, const std::string &, explanation);
	I_Method1(void, setCommandLineUsage, IN, const std::string &, explanation);
	I_Method0(const std::string &, getCommandLineUsage);
	I_MethodWithDefaults3(void, addCommandLineOption, IN, const std::string &, option, , IN, const std::string &, explanation, , IN, const std::string &, defaultValue, "");
	I_Method1(void, setCommandLineOptions, IN, const osg::ApplicationUsage::UsageMap &, usageMap);
	I_Method0(const osg::ApplicationUsage::UsageMap &, getCommandLineOptions);
	I_Method1(void, setCommandLineOptionsDefaults, IN, const osg::ApplicationUsage::UsageMap &, usageMap);
	I_Method0(const osg::ApplicationUsage::UsageMap &, getCommandLineOptionsDefaults);
	I_MethodWithDefaults3(void, addEnvironmentalVariable, IN, const std::string &, option, , IN, const std::string &, explanation, , IN, const std::string &, defaultValue, "");
	I_Method1(void, setEnvironmentalVariables, IN, const osg::ApplicationUsage::UsageMap &, usageMap);
	I_Method0(const osg::ApplicationUsage::UsageMap &, getEnvironmentalVariables);
	I_Method1(void, setEnvironmentalVariablesDefaults, IN, const osg::ApplicationUsage::UsageMap &, usageMap);
	I_Method0(const osg::ApplicationUsage::UsageMap &, getEnvironmentalVariablesDefaults);
	I_Method2(void, addKeyboardMouseBinding, IN, const std::string &, option, IN, const std::string &, explanation);
	I_Method1(void, setKeyboardMouseBindings, IN, const osg::ApplicationUsage::UsageMap &, usageMap);
	I_Method0(const osg::ApplicationUsage::UsageMap &, getKeyboardMouseBindings);
	I_MethodWithDefaults5(void, getFormattedString, IN, std::string &, str, , IN, const osg::ApplicationUsage::UsageMap &, um, , IN, unsigned int, widthOfOutput, 80, IN, bool, showDefaults, false, IN, const osg::ApplicationUsage::UsageMap &, ud, osg::ApplicationUsage::UsageMap());
	I_MethodWithDefaults5(void, write, IN, std::ostream &, output, , IN, const osg::ApplicationUsage::UsageMap &, um, , IN, unsigned int, widthOfOutput, 80, IN, bool, showDefaults, false, IN, const osg::ApplicationUsage::UsageMap &, ud, osg::ApplicationUsage::UsageMap());
	I_MethodWithDefaults4(void, write, IN, std::ostream &, output, , IN, unsigned int, type, osg::ApplicationUsage::COMMAND_LINE_OPTION, IN, unsigned int, widthOfOutput, 80, IN, bool, showDefaults, false);
	I_Method1(void, writeEnvironmentSettings, IN, std::ostream &, output);
	I_Property(const std::string &, ApplicationName);
	I_Property(const osg::ApplicationUsage::UsageMap &, CommandLineOptions);
	I_Property(const osg::ApplicationUsage::UsageMap &, CommandLineOptionsDefaults);
	I_Property(const std::string &, CommandLineUsage);
	I_Property(const std::string &, Description);
	I_Property(const osg::ApplicationUsage::UsageMap &, EnvironmentalVariables);
	I_Property(const osg::ApplicationUsage::UsageMap &, EnvironmentalVariablesDefaults);
	I_Property(const osg::ApplicationUsage::UsageMap &, KeyboardMouseBindings);
END_REFLECTOR

BEGIN_VALUE_REFLECTOR(osg::ApplicationUsageProxy)
	I_Constructor3(IN, osg::ApplicationUsage::Type, type, IN, const std::string &, option, IN, const std::string &, explanation);
END_REFLECTOR

STD_MAP_REFLECTOR(std::map< std::string COMMA  std::string >);

