Merge pull request #27389 from YeldhamDev/acceptdiag_label_wrap
Add option to enable autowrapping for label inside 'AcceptDialog'
This commit is contained in:
commit
d7af08aa95
3 changed files with 19 additions and 3 deletions
|
@ -57,12 +57,15 @@
|
|||
</method>
|
||||
</methods>
|
||||
<members>
|
||||
<member name="dialog_autowrap" type="bool" setter="set_autowrap" getter="has_autowrap">
|
||||
Sets autowrapping for the text in the dialog.
|
||||
</member>
|
||||
<member name="dialog_hide_on_ok" type="bool" setter="set_hide_on_ok" getter="get_hide_on_ok">
|
||||
If [code]true[/code], the dialog is hidden when the OK button is pressed. You can set it to [code]false[/code] if you want to do e.g. input validation when receiving the [signal confirmed] signal, and handle hiding the dialog in your own logic. Default value: [code]true[/code].
|
||||
Note: Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example [FileDialog] defaults to [code]false[/code], and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such this property can't be used in [FileDialog] to disable hiding the dialog when pressing OK.
|
||||
</member>
|
||||
<member name="dialog_text" type="String" setter="set_text" getter="get_text">
|
||||
The text displayed by this dialog.
|
||||
The text displayed by the dialog.
|
||||
</member>
|
||||
</members>
|
||||
<signals>
|
||||
|
|
|
@ -406,12 +406,20 @@ void AcceptDialog::set_hide_on_ok(bool p_hide) {
|
|||
|
||||
hide_on_ok = p_hide;
|
||||
}
|
||||
|
||||
bool AcceptDialog::get_hide_on_ok() const {
|
||||
|
||||
return hide_on_ok;
|
||||
}
|
||||
|
||||
void AcceptDialog::set_autowrap(bool p_autowrap) {
|
||||
|
||||
label->set_autowrap(p_autowrap);
|
||||
}
|
||||
bool AcceptDialog::has_autowrap() {
|
||||
|
||||
return label->has_autowrap();
|
||||
}
|
||||
|
||||
void AcceptDialog::register_text_enter(Node *p_line_edit) {
|
||||
|
||||
ERR_FAIL_NULL(p_line_edit);
|
||||
|
@ -530,6 +538,8 @@ void AcceptDialog::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("_custom_action"), &AcceptDialog::_custom_action);
|
||||
ClassDB::bind_method(D_METHOD("set_text", "text"), &AcceptDialog::set_text);
|
||||
ClassDB::bind_method(D_METHOD("get_text"), &AcceptDialog::get_text);
|
||||
ClassDB::bind_method(D_METHOD("set_autowrap", "autowrap"), &AcceptDialog::set_autowrap);
|
||||
ClassDB::bind_method(D_METHOD("has_autowrap"), &AcceptDialog::has_autowrap);
|
||||
|
||||
ADD_SIGNAL(MethodInfo("confirmed"));
|
||||
ADD_SIGNAL(MethodInfo("custom_action", PropertyInfo(Variant::STRING, "action")));
|
||||
|
@ -537,6 +547,7 @@ void AcceptDialog::_bind_methods() {
|
|||
ADD_GROUP("Dialog", "dialog");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "dialog_text", PROPERTY_HINT_MULTILINE_TEXT, "", PROPERTY_USAGE_DEFAULT_INTL), "set_text", "get_text");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "dialog_hide_on_ok"), "set_hide_on_ok", "get_hide_on_ok");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "dialog_autowrap"), "set_autowrap", "has_autowrap");
|
||||
}
|
||||
|
||||
bool AcceptDialog::swap_ok_cancel = false;
|
||||
|
@ -555,7 +566,6 @@ AcceptDialog::AcceptDialog() {
|
|||
label->set_anchor(MARGIN_BOTTOM, ANCHOR_END);
|
||||
label->set_begin(Point2(margin, margin));
|
||||
label->set_end(Point2(-margin, -button_margin - 10));
|
||||
//label->set_autowrap(true);
|
||||
add_child(label);
|
||||
|
||||
hbc = memnew(HBoxContainer);
|
||||
|
|
|
@ -145,6 +145,9 @@ public:
|
|||
void set_text(String p_text);
|
||||
String get_text() const;
|
||||
|
||||
void set_autowrap(bool p_autowrap);
|
||||
bool has_autowrap();
|
||||
|
||||
AcceptDialog();
|
||||
~AcceptDialog();
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue