diff options
Diffstat (limited to 'scene/theme/theme_owner.h')
| -rw-r--r-- | scene/theme/theme_owner.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scene/theme/theme_owner.h b/scene/theme/theme_owner.h index 7ebd53fde8..4923ccb00b 100644 --- a/scene/theme/theme_owner.h +++ b/scene/theme/theme_owner.h @@ -36,11 +36,18 @@ class Control; class Node; +class ThemeContext; class Window; class ThemeOwner : public Object { + Node *holder = nullptr; + Control *owner_control = nullptr; Window *owner_window = nullptr; + ThemeContext *owner_context = nullptr; + + void _owner_context_changed(); + ThemeContext *_get_active_owner_context() const; Node *_get_next_owner_node(Node *p_from_node) const; Ref<Theme> _get_owner_node_theme(Node *p_owner_node) const; @@ -52,6 +59,8 @@ public: Node *get_owner_node() const; bool has_owner_node() const; + void set_owner_context(ThemeContext *p_context, bool p_propagate = true); + // Theme propagation. void assign_theme_on_parented(Node *p_for_node); @@ -69,7 +78,7 @@ public: Ref<Font> get_theme_default_font(); int get_theme_default_font_size(); - ThemeOwner() {} + ThemeOwner(Node *p_holder) { holder = p_holder; } ~ThemeOwner() {} }; |
