New API for visibility in both CanvasItem and Spatial

visible (property) - access set_visible(bool) is_visible()
is_visible_in_tree() - true when visible and parents visible
show() hide() - for convenience
This commit is contained in:
Juan Linietsky 2017-01-13 10:45:50 -03:00
parent a2903fc51d
commit 04c749a1f0
72 changed files with 252 additions and 292 deletions

View file

@ -59,10 +59,10 @@ Size2 ScrollContainer::get_minimum_size() const {
}
}
if (h_scroll->is_visible()) {
if (h_scroll->is_visible_in_tree()) {
min_size.y+=h_scroll->get_minimum_size().y;
}
if (v_scroll->is_visible()) {
if (v_scroll->is_visible_in_tree()) {
min_size.x+=v_scroll->get_minimum_size().x;
}
return min_size;
@ -89,19 +89,19 @@ void ScrollContainer::_gui_input(const InputEvent& p_gui_input) {
const InputEventMouseButton &mb=p_gui_input.mouse_button;
if (mb.button_index==BUTTON_WHEEL_UP && mb.pressed) {
if (h_scroll->is_visible() && !v_scroll->is_visible()){
if (h_scroll->is_visible_in_tree() && !v_scroll->is_visible_in_tree()){
// only horizontal is enabled, scroll horizontally
h_scroll->set_value( h_scroll->get_value()-h_scroll->get_page()/8 );
} else if (v_scroll->is_visible()) {
} else if (v_scroll->is_visible_in_tree()) {
v_scroll->set_value( v_scroll->get_value()-v_scroll->get_page()/8 );
}
}
if (mb.button_index==BUTTON_WHEEL_DOWN && mb.pressed) {
if (h_scroll->is_visible() && !v_scroll->is_visible()){
if (h_scroll->is_visible_in_tree() && !v_scroll->is_visible_in_tree()){
// only horizontal is enabled, scroll horizontally
h_scroll->set_value( h_scroll->get_value()+h_scroll->get_page()/8 );
} else if (v_scroll->is_visible()) {
} else if (v_scroll->is_visible_in_tree()) {
v_scroll->set_value( v_scroll->get_value()+v_scroll->get_page()/8 );
}
}
@ -216,10 +216,10 @@ void ScrollContainer::_notification(int p_what) {
child_max_size = Size2(0, 0);
Size2 size = get_size();
if (h_scroll->is_visible())
if (h_scroll->is_visible_in_tree())
size.y-=h_scroll->get_minimum_size().y;
if (v_scroll->is_visible())
if (v_scroll->is_visible_in_tree())
size.x-=h_scroll->get_minimum_size().x;
for(int i=0;i<get_child_count();i++) {
@ -236,14 +236,14 @@ void ScrollContainer::_notification(int p_what) {
child_max_size.y = MAX(child_max_size.y, minsize.y);
Rect2 r = Rect2(-scroll,minsize);
if (!(scroll_h || h_scroll->is_visible())) {
if (!(scroll_h || h_scroll->is_visible_in_tree())) {
r.pos.x=0;
if (c->get_h_size_flags()&SIZE_EXPAND)
r.size.width=MAX(size.width,minsize.width);
else
r.size.width=minsize.width;
}
if (!(scroll_v || v_scroll->is_visible())) {
if (!(scroll_v || v_scroll->is_visible_in_tree())) {
r.pos.y=0;
r.size.height=size.height;
if (c->get_v_size_flags()&SIZE_EXPAND)