Add custom minumus height to TreeItem
And expose the method `get_drop_section_at_pos` of Tree
This commit is contained in:
parent
dcdde2f5a9
commit
f248f06d45
2 changed files with 21 additions and 0 deletions
|
@ -333,6 +333,15 @@ bool TreeItem::is_collapsed() {
|
|||
return collapsed;
|
||||
}
|
||||
|
||||
void TreeItem::set_custom_minimum_height(int p_height) {
|
||||
custom_min_height = p_height;
|
||||
_changed_notify();
|
||||
}
|
||||
|
||||
int TreeItem::get_custom_minimum_height() const {
|
||||
return custom_min_height;
|
||||
}
|
||||
|
||||
TreeItem *TreeItem::get_next() {
|
||||
|
||||
return next;
|
||||
|
@ -703,6 +712,9 @@ void TreeItem::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_collapsed", "enable"), &TreeItem::set_collapsed);
|
||||
ClassDB::bind_method(D_METHOD("is_collapsed"), &TreeItem::is_collapsed);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_custom_minimum_height", "height"), &TreeItem::set_custom_minimum_height);
|
||||
ClassDB::bind_method(D_METHOD("get_custom_minimum_height"), &TreeItem::get_custom_minimum_height);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_next"), &TreeItem::get_next);
|
||||
ClassDB::bind_method(D_METHOD("get_prev"), &TreeItem::get_prev);
|
||||
ClassDB::bind_method(D_METHOD("get_parent"), &TreeItem::get_parent);
|
||||
|
@ -780,6 +792,7 @@ TreeItem::TreeItem(Tree *p_tree) {
|
|||
tree = p_tree;
|
||||
collapsed = false;
|
||||
disable_folding = false;
|
||||
custom_min_height = 0;
|
||||
|
||||
parent = 0; // parent item
|
||||
next = 0; // next in list
|
||||
|
@ -921,6 +934,9 @@ int Tree::compute_item_height(TreeItem *p_item) const {
|
|||
default: {}
|
||||
}
|
||||
}
|
||||
int item_min_height = p_item->get_custom_minimum_height();
|
||||
if (height < item_min_height)
|
||||
height = item_min_height;
|
||||
|
||||
height += cache.vseparation;
|
||||
|
||||
|
@ -3593,6 +3609,7 @@ void Tree::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("get_item_area_rect", "item", "column"), &Tree::_get_item_rect, DEFVAL(-1));
|
||||
ClassDB::bind_method(D_METHOD("get_item_at_pos", "pos"), &Tree::get_item_at_pos);
|
||||
ClassDB::bind_method(D_METHOD("get_column_at_pos", "pos"), &Tree::get_column_at_pos);
|
||||
ClassDB::bind_method(D_METHOD("get_drop_section_at_pos", "pos"), &Tree::get_drop_section_at_pos);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("ensure_cursor_is_visible"), &Tree::ensure_cursor_is_visible);
|
||||
|
||||
|
|
|
@ -145,6 +145,7 @@ private:
|
|||
|
||||
bool collapsed; // wont show childs
|
||||
bool disable_folding;
|
||||
int custom_min_height;
|
||||
|
||||
TreeItem *parent; // parent item
|
||||
TreeItem *next; // next in list
|
||||
|
@ -230,6 +231,9 @@ public:
|
|||
void set_collapsed(bool p_collapsed);
|
||||
bool is_collapsed();
|
||||
|
||||
void set_custom_minimum_height(int p_height);
|
||||
int get_custom_minimum_height() const;
|
||||
|
||||
TreeItem *get_prev();
|
||||
TreeItem *get_next();
|
||||
TreeItem *get_parent();
|
||||
|
|
Loading…
Reference in a new issue