summaryrefslogtreecommitdiffstats
path: root/scene/gui/text_edit.cpp
diff options
context:
space:
mode:
authorjeffVenancius <jefferson.venancius@gmail.com>2023-02-07 20:02:48 -0300
committerJeffVenancius <jefferson.venancius@gmail.com>2023-04-07 22:27:01 -0300
commit97c21335487e145e2fd9ad4a502c8120ab67724f (patch)
treef138310c6c7073a05a06d8530adb9f01480e49ad /scene/gui/text_edit.cpp
parentc151d3231f8e5d207f64055c60c70967dd5351b5 (diff)
downloadredot-engine-97c21335487e145e2fd9ad4a502c8120ab67724f.tar.gz
Add an option to show a TextEdit caret when editable is disabled
Update doc/classes/TextEdit.xml
Diffstat (limited to 'scene/gui/text_edit.cpp')
-rw-r--r--scene/gui/text_edit.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 02dbb086ee..0839e4066d 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -526,7 +526,7 @@ void TextEdit::_notification(int p_what) {
theme_cache.style_normal->draw(ci, Rect2(Point2(), size));
if (!editable) {
theme_cache.style_readonly->draw(ci, Rect2(Point2(), size));
- draw_caret = false;
+ draw_caret = is_drawing_caret_when_editable_disabled();
}
if (has_focus()) {
theme_cache.style_focus->draw(ci, Rect2(Point2(), size));
@@ -4489,6 +4489,18 @@ void TextEdit::set_caret_blink_interval(const float p_interval) {
caret_blink_timer->set_wait_time(p_interval);
}
+void TextEdit::set_draw_caret_when_editable_disabled(bool p_enable) {
+ if (draw_caret_when_editable_disabled == p_enable) {
+ return;
+ }
+ draw_caret_when_editable_disabled = p_enable;
+ queue_redraw();
+}
+
+bool TextEdit::is_drawing_caret_when_editable_disabled() const {
+ return draw_caret_when_editable_disabled;
+}
+
void TextEdit::set_move_caret_on_right_click_enabled(const bool p_enabled) {
move_caret_on_right_click = p_enabled;
}
@@ -6195,6 +6207,9 @@ void TextEdit::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_caret_blink_interval", "interval"), &TextEdit::set_caret_blink_interval);
ClassDB::bind_method(D_METHOD("get_caret_blink_interval"), &TextEdit::get_caret_blink_interval);
+ ClassDB::bind_method(D_METHOD("set_draw_caret_when_editable_disabled", "enable"), &TextEdit::set_draw_caret_when_editable_disabled);
+ ClassDB::bind_method(D_METHOD("is_drawing_caret_when_editable_disabled"), &TextEdit::is_drawing_caret_when_editable_disabled);
+
ClassDB::bind_method(D_METHOD("set_move_caret_on_right_click_enabled", "enable"), &TextEdit::set_move_caret_on_right_click_enabled);
ClassDB::bind_method(D_METHOD("is_move_caret_on_right_click_enabled"), &TextEdit::is_move_caret_on_right_click_enabled);
@@ -6436,6 +6451,7 @@ void TextEdit::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "caret_type", PROPERTY_HINT_ENUM, "Line,Block"), "set_caret_type", "get_caret_type");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_blink"), "set_caret_blink_enabled", "is_caret_blink_enabled");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "caret_blink_interval", PROPERTY_HINT_RANGE, "0.1,10,0.01,suffix:s"), "set_caret_blink_interval", "get_caret_blink_interval");
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_draw_when_editable_disabled"), "set_draw_caret_when_editable_disabled", "is_drawing_caret_when_editable_disabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_move_on_right_click"), "set_move_caret_on_right_click_enabled", "is_move_caret_on_right_click_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_mid_grapheme"), "set_caret_mid_grapheme_enabled", "is_caret_mid_grapheme_enabled");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "caret_multiple"), "set_multiple_carets_enabled", "is_multiple_carets_enabled");