diff options
author | Jonathon Jongsma <jonathon@quotidian.org> | 2009-06-30 22:17:41 -0500 |
---|---|---|
committer | Jonathon Jongsma <jonathon@quotidian.org> | 2009-06-30 22:17:41 -0500 |
commit | f2802cf768a4e10247f5ad94a67b020a954ebd70 (patch) | |
tree | 651f97747cb52d49d9dc7e2d71286f10d0df3bb4 /glib | |
parent | ac7e2dff1513c01970648ee5f27e5346e0bf9b34 (diff) | |
download | glibmm-f2802cf768a4e10247f5ad94a67b020a954ebd70.tar.gz |
Add OptionGroup::add_entry(.., double&)glibmm-2.21.1
Diffstat (limited to 'glib')
-rw-r--r-- | glib/src/optiongroup.ccg | 32 | ||||
-rw-r--r-- | glib/src/optiongroup.hg | 1 |
2 files changed, 32 insertions, 1 deletions
diff --git a/glib/src/optiongroup.ccg b/glib/src/optiongroup.ccg index 1fc845c2..c27595a3 100644 --- a/glib/src/optiongroup.ccg +++ b/glib/src/optiongroup.ccg @@ -132,6 +132,11 @@ void OptionGroup::add_entry(const OptionEntry& entry, int& arg) add_entry_with_wrapper(entry, G_OPTION_ARG_INT, &arg); } +void OptionGroup::add_entry(const OptionEntry& entry, double& arg) +{ + add_entry_with_wrapper(entry, G_OPTION_ARG_DOUBLE, &arg); +} + void OptionGroup::add_entry(const OptionEntry& entry, Glib::ustring& arg) { add_entry_with_wrapper(entry, G_OPTION_ARG_STRING, &arg); @@ -240,6 +245,14 @@ void OptionGroup::CppOptionEntry::allocate_c_arg() break; } + case G_OPTION_ARG_DOUBLE: + { + double* typed_arg = new double; + *typed_arg = 0.0; + carg_ = typed_arg; + + break; + } case G_OPTION_ARG_STRING_ARRAY: case G_OPTION_ARG_FILENAME_ARRAY: { @@ -273,6 +286,11 @@ void OptionGroup::CppOptionEntry::set_c_arg_default(void* cpp_arg) *static_cast<int*>(carg_) = *static_cast<int*>(cpp_arg); break; } + case G_OPTION_ARG_DOUBLE: + { + *static_cast<double*>(carg_) = *static_cast<double*>(cpp_arg); + break; + } case G_OPTION_ARG_NONE: { *static_cast<gboolean*>(carg_) = *static_cast<bool*>(cpp_arg); @@ -369,6 +387,13 @@ void OptionGroup::CppOptionEntry::release_c_arg() break; } + case G_OPTION_ARG_DOUBLE: + { + double* typed_arg = static_cast<double*>(carg_); + delete typed_arg; + + break; + } case G_OPTION_ARG_STRING_ARRAY: case G_OPTION_ARG_FILENAME_ARRAY: { @@ -431,7 +456,12 @@ void OptionGroup::CppOptionEntry::convert_c_to_cpp() *((int*)cpparg_) = *(static_cast<int*>(carg_)); break; } - case G_OPTION_ARG_STRING_ARRAY: + case G_OPTION_ARG_DOUBLE: + { + *((double*)cpparg_) = *(static_cast<double*>(carg_)); + break; + } + case G_OPTION_ARG_STRING_ARRAY: { char*** typed_arg = static_cast<char***>(carg_); vecustrings* typed_cpp_arg = static_cast<vecustrings*>(cpparg_); diff --git a/glib/src/optiongroup.hg b/glib/src/optiongroup.hg index 8c013376..0bc826e2 100644 --- a/glib/src/optiongroup.hg +++ b/glib/src/optiongroup.hg @@ -71,6 +71,7 @@ public: void add_entry(const OptionEntry& entry, bool& arg); void add_entry(const OptionEntry& entry, int& arg); + void add_entry(const OptionEntry& entry, double& arg); void add_entry(const OptionEntry& entry, Glib::ustring& arg); void add_entry_filename(const OptionEntry& entry, std::string& arg); void add_entry(const OptionEntry& entry, vecustrings& arg); |