add methods to get/set sortability of listbox
This commit is contained in:
parent
458c6b1d3c
commit
77c039be42
@ -552,6 +552,9 @@ By \a clicking on a header the list get \a reordered, first up, and then down al
|
|||||||
_m_ease_key(&key);
|
_m_ease_key(&key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool sortable() const;
|
||||||
|
void sortable(bool enable);
|
||||||
|
|
||||||
///Sets a strict weak ordering comparer for a column
|
///Sets a strict weak ordering comparer for a column
|
||||||
void set_sort_compare(size_type col, std::function<bool(const nana::string&, nana::any*,
|
void set_sort_compare(size_type col, std::function<bool(const nana::string&, nana::any*,
|
||||||
const nana::string&, nana::any*, bool reverse)> strick_ordering);
|
const nana::string&, nana::any*, bool reverse)> strick_ordering);
|
||||||
|
@ -348,6 +348,16 @@ namespace nana
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool sortable() const
|
||||||
|
{
|
||||||
|
return sortable_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sortable(bool enable)
|
||||||
|
{
|
||||||
|
sortable_ = enable;
|
||||||
|
}
|
||||||
|
|
||||||
std::function<bool(const nana::string&, nana::any*, const nana::string&, nana::any*, bool reverse)> fetch_comp(std::size_t index) const
|
std::function<bool(const nana::string&, nana::any*, const nana::string&, nana::any*, bool reverse)> fetch_comp(std::size_t index) const
|
||||||
{
|
{
|
||||||
if(index < cont_.size())
|
if(index < cont_.size())
|
||||||
@ -507,6 +517,7 @@ namespace nana
|
|||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
bool visible_{true};
|
bool visible_{true};
|
||||||
|
bool sortable_{true};
|
||||||
container cont_;
|
container cont_;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3183,7 +3194,7 @@ namespace nana
|
|||||||
auto prev_state = essence_->ptr_state;
|
auto prev_state = essence_->ptr_state;
|
||||||
essence_->ptr_state = item_state::highlighted;
|
essence_->ptr_state = item_state::highlighted;
|
||||||
//Do sort
|
//Do sort
|
||||||
if (essence_->pointer_where.first == parts::header && prev_state == item_state::pressed)
|
if (essence_->header.sortable() && essence_->pointer_where.first == parts::header && prev_state == item_state::pressed)
|
||||||
{
|
{
|
||||||
if(essence_->pointer_where.second < essence_->header.cont().size())
|
if(essence_->pointer_where.second < essence_->header.cont().size())
|
||||||
{
|
{
|
||||||
@ -4018,6 +4029,16 @@ namespace nana
|
|||||||
return item_proxy(ess);
|
return item_proxy(ess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool listbox::sortable() const
|
||||||
|
{
|
||||||
|
return _m_ess().header.sortable();
|
||||||
|
}
|
||||||
|
|
||||||
|
void listbox::sortable(bool enable)
|
||||||
|
{
|
||||||
|
_m_ess().header.sortable(enable);
|
||||||
|
}
|
||||||
|
|
||||||
void listbox::set_sort_compare(size_type col, std::function<bool(const nana::string&, nana::any*, const nana::string&, nana::any*, bool reverse)> strick_ordering)
|
void listbox::set_sort_compare(size_type col, std::function<bool(const nana::string&, nana::any*, const nana::string&, nana::any*, bool reverse)> strick_ordering)
|
||||||
{
|
{
|
||||||
_m_ess().header.column(col).weak_ordering = std::move(strick_ordering);
|
_m_ess().header.column(col).weak_ordering = std::move(strick_ordering);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user