diff options
author | Hop311 <Hop3114@gmail.com> | 2024-08-30 23:30:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-30 23:30:12 +0200 |
commit | 2e0bc5b556b9c6df46a8cdd48d3f109e0ac76b63 (patch) | |
tree | 2c521b99fe6cd0a7fd5d6a29e55645b3415792b3 /extension/src/openvic-extension/singletons/AssetManager.cpp | |
parent | f54e454afb90f8868e7c62529e2a388fdaadf20b (diff) | |
parent | bdc2ba527bc02e7cdf977f6040f2ca85aa4f9a94 (diff) |
Merge pull request #253 from OpenVicProject/tooltip
Tooltips
Diffstat (limited to 'extension/src/openvic-extension/singletons/AssetManager.cpp')
-rw-r--r-- | extension/src/openvic-extension/singletons/AssetManager.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/extension/src/openvic-extension/singletons/AssetManager.cpp b/extension/src/openvic-extension/singletons/AssetManager.cpp index d17edd0..3b37c8c 100644 --- a/extension/src/openvic-extension/singletons/AssetManager.cpp +++ b/extension/src/openvic-extension/singletons/AssetManager.cpp @@ -120,6 +120,29 @@ Ref<ImageTexture> AssetManager::get_texture(StringName const& path, LoadFlags lo } } +Ref<StyleBoxTexture> AssetManager::make_stylebox_texture(Ref<Texture2D> const& texture, Vector2 const& border) { + ERR_FAIL_NULL_V(texture, nullptr); + + Ref<StyleBoxTexture> stylebox; + stylebox.instantiate(); + ERR_FAIL_NULL_V(stylebox, nullptr); + + stylebox->set_texture(texture); + + static const StringName changed_signal = "changed"; + static const StringName emit_changed_func = "emit_changed"; + texture->connect(changed_signal, Callable { *stylebox, emit_changed_func }, Object::CONNECT_PERSIST); + + if (border != Vector2 {}) { + stylebox->set_texture_margin(SIDE_LEFT, border.x); + stylebox->set_texture_margin(SIDE_RIGHT, border.x); + stylebox->set_texture_margin(SIDE_TOP, border.y); + stylebox->set_texture_margin(SIDE_BOTTOM, border.y); + } + + return stylebox; +} + Ref<FontFile> AssetManager::get_font(StringName const& name) { const font_map_t::const_iterator it = fonts.find(name); if (it != fonts.end()) { |