Merge pull request #16977 from SASUPERNOVA/master

Created a new function named get_element in GridContainer. This funct…
This commit is contained in:
Rémi Verschelde 2018-05-01 16:32:30 +02:00 committed by GitHub
commit b6a7c5693f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View file

@ -184,6 +184,8 @@ void GridContainer::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_columns", "columns"), &GridContainer::set_columns);
ClassDB::bind_method(D_METHOD("get_columns"), &GridContainer::get_columns);
ClassDB::bind_method(D_METHOD("get_child_control_at_cell", "row", "column"),
&GridContainer::get_child_control_at_cell);
ADD_PROPERTY(PropertyInfo(Variant::INT, "columns", PROPERTY_HINT_RANGE, "1,1024,1"), "set_columns", "get_columns");
}
@ -239,6 +241,21 @@ Size2 GridContainer::get_minimum_size() const {
return ms;
}
Control *GridContainer::get_child_control_at_cell(int row, int column) {
Control *c;
int grid_index = row * columns + column;
for (int i = 0; i < get_child_count(); i++) {
c = Object::cast_to<Control>(get_child(i));
if (!c || !c->is_visible_in_tree())
continue;
if (grid_index == i) {
break;
}
}
return c;
}
GridContainer::GridContainer() {
set_mouse_filter(MOUSE_FILTER_PASS);

View file

@ -47,6 +47,7 @@ public:
void set_columns(int p_columns);
int get_columns() const;
virtual Size2 get_minimum_size() const;
Control *get_child_control_at_cell(int row, int column);
GridContainer();
};