#include <glibmm.h>
{
public:
ExampleOptionGroup();
private:
bool on_option_arg_string(
bool on_option_arg_filename(
public:
int m_arg_foo;
bool m_arg_boolean;
};
ExampleOptionGroup::ExampleOptionGroup()
"example_group", "description of example group", "help description of example group"),
m_arg_foo(0),
m_arg_boolean(false)
{
add_entry(entry1, m_arg_foo);
add_entry_filename(entry2, m_arg_filename);
m_arg_goo = "default-goo-value";
add_entry(entry3, m_arg_goo);
add_entry(entry4, m_arg_boolean);
add_entry(entry5, m_arg_list);
m_arg_x_string = "not specified";
add_entry(entry6, sigc::mem_fun(*this, &ExampleOptionGroup::on_option_arg_string));
m_arg_x_filename = "not specified";
add_entry_filename(entry7, sigc::mem_fun(*this, &ExampleOptionGroup::on_option_arg_filename));
add_entry(entry_remaining, m_remaining_list);
}
bool
{
return true;
}
bool
ExampleOptionGroup::on_post_parse(
{
return true;
}
void
{
}
bool
ExampleOptionGroup::on_option_arg_string(
{
if (option_name != "-x" && option_name != "--x-string")
{
m_arg_x_string = "on_option_arg_string called with unexpected option_name: " + option_name;
}
if (!has_value)
{
m_arg_x_string = "no value";
return true;
}
{
m_arg_x_string = "empty string";
return true;
}
m_arg_x_string = value;
if (value == "error")
{
}
return value != "false";
}
bool
ExampleOptionGroup::on_option_arg_filename(
{
if (option_name != "-X" && option_name != "--x-filename")
{
m_arg_x_filename = "on_option_arg_filename called with unexpected option_name: " + option_name;
}
if (!has_value)
{
m_arg_x_filename = "no value";
return true;
}
if (value.empty())
{
m_arg_x_filename = "empty string";
return true;
}
m_arg_x_filename = value;
if (value == "error")
{
"on_option_arg_filename called with value = " + m_arg_x_filename);
}
return value != "false";
}
int
main(int argc, char** argv)
{
ExampleOptionGroup group;
try
{
context.
parse(argc, argv);
}
{
}
<<
" filename = " << group.m_arg_filename <<
std::endl
<< " activate_something = " << (group.m_arg_boolean ? "enabled" : "disabled")
<<
" x-string = " << group.m_arg_x_string <<
std::endl
<<
" x-filename = " << group.m_arg_x_filename <<
std::endl;
for (const auto& i : group.m_arg_list)
{
}
for (const auto& i : group.m_remaining_list)
{
}
return 0;
}