diff options
Diffstat (limited to 'scene/gui/scroll_container.h')
-rw-r--r-- | scene/gui/scroll_container.h | 54 |
1 files changed, 30 insertions, 24 deletions
diff --git a/scene/gui/scroll_container.h b/scene/gui/scroll_container.h index 6423b36fcc..9f4ec558dc 100644 --- a/scene/gui/scroll_container.h +++ b/scene/gui/scroll_container.h @@ -5,8 +5,8 @@ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */ +/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -36,14 +36,12 @@ #include "scroll_bar.h" class ScrollContainer : public Container { - GDCLASS(ScrollContainer, Container); HScrollBar *h_scroll; VScrollBar *v_scroll; Size2 child_max_size; - Size2 scroll; void update_scrollbars(); @@ -51,39 +49,42 @@ class ScrollContainer : public Container { Vector2 drag_accum; Vector2 drag_from; Vector2 last_drag_accum; - float last_drag_time; - float time_since_motion; - bool drag_touching; - bool drag_touching_deaccel; - bool click_handled; - bool beyond_deadzone; + float time_since_motion = 0.0f; + bool drag_touching = false; + bool drag_touching_deaccel = false; + bool beyond_deadzone = false; + + bool scroll_h = true; + bool scroll_v = true; - bool scroll_h; - bool scroll_v; + bool h_scroll_visible = true; + bool v_scroll_visible = true; - int deadzone; - bool follow_focus; + int deadzone = 0; + bool follow_focus = false; void _cancel_drag(); protected: - Size2 get_minimum_size() const; + Size2 get_minimum_size() const override; - void _gui_input(const Ref<InputEvent> &p_gui_input); + virtual void gui_input(const Ref<InputEvent> &p_gui_input) override; + void _gui_focus_changed(Control *p_control); + void _update_dimensions(); void _notification(int p_what); void _scroll_moved(float); static void _bind_methods(); + bool _updating_scrollbars = false; void _update_scrollbar_position(); - void _ensure_focused_visible(Control *p_node); public: - int get_v_scroll() const; - void set_v_scroll(int p_pos); - - int get_h_scroll() const; void set_h_scroll(int p_pos); + int get_h_scroll() const; + + void set_v_scroll(int p_pos); + int get_v_scroll() const; void set_enable_h_scroll(bool p_enable); bool is_h_scroll_enabled() const; @@ -91,6 +92,12 @@ public: void set_enable_v_scroll(bool p_enable); bool is_v_scroll_enabled() const; + void set_h_scroll_visible(bool p_visible); + bool is_h_scroll_visible() const; + + void set_v_scroll_visible(bool p_visible); + bool is_v_scroll_visible() const; + int get_deadzone() const; void set_deadzone(int p_deadzone); @@ -99,10 +106,9 @@ public: HScrollBar *get_h_scrollbar(); VScrollBar *get_v_scrollbar(); + void ensure_control_visible(Control *p_control); - virtual bool clips_input() const; - - virtual String get_configuration_warning() const; + TypedArray<String> get_configuration_warnings() const override; ScrollContainer(); }; |