12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include "editor_name_dialog.h"
- #include "core/class_db.h"
- #include "core/os/keyboard.h"
- void EditorNameDialog::_line_gui_input(const Ref<InputEvent> &p_event) {
- Ref<InputEventKey> k = p_event;
- if (k.is_valid()) {
- if (!k->is_pressed())
- return;
- switch (k->get_scancode()) {
- case KEY_KP_ENTER:
- case KEY_ENTER: {
- if (get_hide_on_ok())
- hide();
- ok_pressed();
- accept_event();
- } break;
- case KEY_ESCAPE: {
- hide();
- accept_event();
- } break;
- }
- }
- }
- void EditorNameDialog::_post_popup() {
- ConfirmationDialog::_post_popup();
- name->clear();
- name->grab_focus();
- }
- void EditorNameDialog::ok_pressed() {
- if (name->get_text() != "") {
- emit_signal("name_confirmed", name->get_text());
- }
- }
- void EditorNameDialog::_bind_methods() {
- ClassDB::bind_method("_line_gui_input", &EditorNameDialog::_line_gui_input);
- ADD_SIGNAL(MethodInfo("name_confirmed", PropertyInfo(Variant::STRING, "name")));
- }
- EditorNameDialog::EditorNameDialog() {
- makevb = memnew(VBoxContainer);
- add_child(makevb);
- name = memnew(LineEdit);
- makevb->add_child(name);
- name->set_margin(MARGIN_TOP, 5);
- name->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 5);
- name->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -5);
- name->connect("gui_input", this, "_line_gui_input");
- }
|