Add method to check option in group

This commit is contained in:
James Bremner 2018-11-25 13:52:00 -05:00
parent 953450a868
commit e72bec2c8f
2 changed files with 20 additions and 7 deletions

View File

@ -3,8 +3,8 @@
* Nana C++ Library(http://www.nanaro.org)
* Copyright(C) 2015 Jinhao(cnjinhao@hotmail.com)
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
* @file: nana/gui/widgets/group.hpp
@ -55,9 +55,16 @@ namespace nana{
/// Enables/disables the radio mode which is single selection
group& radio_mode(bool);
/// Returns the index of option in radio_mode, it throws a logic_error if radio_mode is false.
/// Returns the index of selected option in radio_mode, it throws a logic_error if radio_mode is false.
std::size_t option() const;
/** Set check/unchecked status of specified option
@param[in] pos zero-based index of option to set
@param[in] check status required, defaults to checked
throws an out_of_range if !(pos < number of options)
*/
void option_check( std::size_t pos, bool check = true );
/// Determines whether a specified option is checked, it throws an out_of_range if !(pos < number of options)
bool option_checked(std::size_t pos) const;
@ -66,7 +73,7 @@ namespace nana{
group& collocate() throw();
group& div(const char* div_str) throw();
field_reference operator[](const char* field);
template<typename Widget, typename ...Args>
Widget* create_child(const char* field, Args && ... args)
{

View File

@ -3,8 +3,8 @@
* Nana C++ Library(http://www.nanaro.org)
* Copyright(C) 2015-2017 Jinhao(cnjinhao@hotmail.com)
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
* @file: nana/gui/widgets/group.cpp
@ -14,7 +14,7 @@
* @brief group is a widget used to visually group and layout other widgets.
*
* @contributor:
* dankan1890(https://github.com/dankan1890)
* dankan1890(https://github.com/dankan1890)
*/
@ -160,6 +160,12 @@ namespace nana{
throw std::logic_error("the radio_mode of the group is disabled");
}
void group::option_check( std::size_t pos, bool check )
{
_THROW_IF_EMPTY();
return impl_->options.at(pos)->check( check );
}
bool group::option_checked(std::size_t pos) const
{
_THROW_IF_EMPTY();