Merge remote-tracking branch 'cnjinhao/develop' into develop

This commit is contained in:
qPCR4vir 2020-02-11 18:47:50 +01:00
commit 360c72eaf0
5 changed files with 49 additions and 6 deletions

View File

@ -22,7 +22,7 @@
# cmake 3.12 have more better modern c++ support # cmake 3.12 have more better modern c++ support
cmake_minimum_required(VERSION 3.12 FATAL_ERROR) cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
project(nana VERSION 1.7.2 project(nana VERSION 1.7.3
DESCRIPTION "C++ GUI library" DESCRIPTION "C++ GUI library"
HOMEPAGE_URL http://nanapro.org HOMEPAGE_URL http://nanapro.org
LANGUAGES CXX ) LANGUAGES CXX )

View File

@ -492,6 +492,14 @@ namespace nana
/// Gets the current hovered node. /// Gets the current hovered node.
item_proxy hovered(bool exclude_expander) const; item_proxy hovered(bool exclude_expander) const;
/// Enable/disable the interactions (selection, click, ...) on the entire line of the treebox.
/**
* @param enable bool whether to enable.
*/
void use_entire_line(bool enable);
private: private:
std::shared_ptr<scroll_operation_interface> _m_scroll_operation() override; std::shared_ptr<scroll_operation_interface> _m_scroll_operation() override;

View File

@ -1386,7 +1386,7 @@ namespace std
{ {
namespace filesystem namespace filesystem
{ {
#if defined(_MSC_VER) && ((!defined(_MSVC_LANG)) || (_MSVC_LANG < 201703)) #if defined(_MSC_VER) && ((_MSC_VER < 1900) || ((!defined(_MSVC_LANG)) || (_MSVC_LANG < 201703)))
path absolute(const path& p) path absolute(const path& p)
{ {

View File

@ -922,7 +922,25 @@ namespace nana
} }
else if (checks::option == item.style) else if (checks::option == item.style)
{ {
get_drawer_trigger().mbuilder().checked(active, true); if(active > 0)
{
do {
if(menu->items[--active]->flags.splitter)
{
++active;
break;
}
} while(active > 0);
}
while(active < menu->items.size())
{
menu_item_type &el = *(menu->items[active++]);
if(el.flags.splitter)
break;
if(checks::option == el.style)
el.flags.checked = false;
}
item.flags.checked = true;
} }
this->_m_close_all(); //means deleting this; this->_m_close_all(); //means deleting this;

View File

@ -295,7 +295,12 @@ namespace nana
if (impl_->data.comp_placer->locate(comp, node_attr_, &attr.area)) if (impl_->data.comp_placer->locate(comp, node_attr_, &attr.area))
{ {
attr.mouse_pointed = node_attr_.mouse_pointed; attr.mouse_pointed = node_attr_.mouse_pointed;
attr.area.x += pos_.x;
if(comp == component_t::bground && impl_->use_entire_line)
attr.area.width = impl_->visible_w_pixels();
else
attr.area.x += pos_.x;
attr.area.y += pos_.y; attr.area.y += pos_.y;
return true; return true;
} }
@ -362,6 +367,9 @@ namespace nana
std::size_t scroll_timestamp; std::size_t scroll_timestamp;
nana::timer timer; nana::timer timer;
}adjust; }adjust;
bool use_entire_line;
public: public:
implementation() implementation()
{ {
@ -386,6 +394,8 @@ namespace nana
adjust.offset_x_adjust = 0; adjust.offset_x_adjust = 0;
adjust.node = nullptr; adjust.node = nullptr;
adjust.scroll_timestamp = 0; adjust.scroll_timestamp = 0;
use_entire_line = false;
} }
void assign_node_attr(node_attribute& ndattr, const node_type* node) const void assign_node_attr(node_attribute& ndattr, const node_type* node) const
@ -1675,8 +1685,8 @@ namespace nana
nana::rectangle r = node_r; nana::rectangle r = node_r;
if (!comp_placer->locate(static_cast<component>(comp), node_attr_, &r)) if (!comp_placer->locate(static_cast<component>(comp), node_attr_, &r))
continue; continue;
if (r.is_hit(logic_pos)) if((comp == static_cast<int>(component::bground) && impl_->use_entire_line) || r.is_hit(logic_pos))
{ {
node_ = &node; node_ = &node;
what_ = static_cast<component>(comp); what_ = static_cast<component>(comp);
@ -2023,6 +2033,7 @@ namespace nana
{ {
case component::icon: case component::icon:
case component::text: case component::text:
case component::bground:
impl_->set_expanded(node, !node->value.second.expanded); impl_->set_expanded(node, !node->value.second.expanded);
impl_->draw(true, true, false); impl_->draw(true, true, false);
API::dev::lazy_refresh(); API::dev::lazy_refresh();
@ -2448,6 +2459,12 @@ namespace nana
return item_proxy(const_cast<drawer_trigger_t*>(dw), dw->impl()->node_state.pointed); return item_proxy(const_cast<drawer_trigger_t*>(dw), dw->impl()->node_state.pointed);
} }
void treebox::use_entire_line(bool enable)
{
auto dw = &get_drawer_trigger();
dw->impl()->use_entire_line = enable;
}
std::shared_ptr<scroll_operation_interface> treebox::_m_scroll_operation() std::shared_ptr<scroll_operation_interface> treebox::_m_scroll_operation()
{ {
internal_scope_guard lock; internal_scope_guard lock;