summaryrefslogtreecommitdiffstats
path: root/scene/gui/rich_text_label.h
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/rich_text_label.h')
-rw-r--r--scene/gui/rich_text_label.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h
index 42f21c62d1..2f48600583 100644
--- a/scene/gui/rich_text_label.h
+++ b/scene/gui/rich_text_label.h
@@ -98,12 +98,28 @@ public:
CUSTOM_FONT,
};
+ enum ImageUpdateMask {
+ UPDATE_TEXTURE = 1 << 0,
+ UPDATE_SIZE = 1 << 1,
+ UPDATE_COLOR = 1 << 2,
+ UPDATE_ALIGNMENT = 1 << 3,
+ UPDATE_REGION = 1 << 4,
+ UPDATE_PAD = 1 << 5,
+ UPDATE_TOOLTIP = 1 << 6,
+ UPDATE_WIDTH_IN_PERCENT = 1 << 7,
+ };
+
protected:
virtual void _update_theme_item_cache() override;
void _notification(int p_what);
static void _bind_methods();
+#ifndef DISABLE_DEPRECATED
+ void _add_image_bind_compat_80410(const Ref<Texture2D> &p_image, const int p_width, const int p_height, const Color &p_color, InlineAlignment p_alignment, const Rect2 &p_region);
+ static void _bind_compatibility_methods();
+#endif
+
private:
struct Item;
@@ -189,8 +205,14 @@ private:
struct ItemImage : public Item {
Ref<Texture2D> image;
InlineAlignment inline_align = INLINE_ALIGNMENT_CENTER;
+ bool pad = false;
+ bool size_in_percent = false;
+ Rect2 region;
Size2 size;
+ Size2 rq_size;
Color color;
+ Variant key;
+ String tooltip;
ItemImage() { type = ITEM_IMAGE; }
};
@@ -544,6 +566,8 @@ private:
Ref<RichTextEffect> _get_custom_effect_by_code(String p_bbcode_identifier);
virtual Dictionary parse_expressions_for_values(Vector<String> p_expressions);
+ Size2 _get_image_size(const Ref<Texture2D> &p_image, int p_width = 0, int p_height = 0, const Rect2 &p_region = Rect2());
+
void _draw_fbg_boxes(RID p_ci, RID p_rid, Vector2 line_off, Item *it_from, Item *it_to, int start, int end, int fbg_flag);
#ifndef DISABLE_DEPRECATED
// Kept for compatibility from 3.x to 4.0.
@@ -601,7 +625,8 @@ private:
public:
String get_parsed_text() const;
void add_text(const String &p_text);
- void add_image(const Ref<Texture2D> &p_image, const int p_width = 0, const int p_height = 0, const Color &p_color = Color(1.0, 1.0, 1.0), InlineAlignment p_alignment = INLINE_ALIGNMENT_CENTER, const Rect2 &p_region = Rect2(0, 0, 0, 0));
+ void add_image(const Ref<Texture2D> &p_image, int p_width = 0, int p_height = 0, const Color &p_color = Color(1.0, 1.0, 1.0), InlineAlignment p_alignment = INLINE_ALIGNMENT_CENTER, const Rect2 &p_region = Rect2(), const Variant &p_key = Variant(), bool p_pad = false, const String &p_tooltip = String(), bool p_size_in_percent = false);
+ void update_image(const Variant &p_key, BitField<ImageUpdateMask> p_mask, const Ref<Texture2D> &p_image, int p_width = 0, int p_height = 0, const Color &p_color = Color(1.0, 1.0, 1.0), InlineAlignment p_alignment = INLINE_ALIGNMENT_CENTER, const Rect2 &p_region = Rect2(), bool p_pad = false, const String &p_tooltip = String(), bool p_size_in_percent = false);
void add_newline();
bool remove_paragraph(const int p_paragraph);
void push_dropcap(const String &p_string, const Ref<Font> &p_font, int p_size, const Rect2 &p_dropcap_margins = Rect2(), const Color &p_color = Color(1, 1, 1), int p_ol_size = 0, const Color &p_ol_color = Color(0, 0, 0, 0));
@@ -779,5 +804,6 @@ public:
VARIANT_ENUM_CAST(RichTextLabel::ListType);
VARIANT_ENUM_CAST(RichTextLabel::MenuItems);
+VARIANT_BITFIELD_CAST(RichTextLabel::ImageUpdateMask);
#endif // RICH_TEXT_LABEL_H