| 3273 | } |
| 3274 | |
| 3275 | EditorInspectorArray::EditorInspectorArray(bool p_read_only) { |
| 3276 | read_only = p_read_only; |
| 3277 | |
| 3278 | odd_style.instantiate(); |
| 3279 | even_style.instantiate(); |
| 3280 | |
| 3281 | rmb_popup = memnew(PopupMenu); |
| 3282 | rmb_popup->set_accessibility_name(TTRC("Move")); |
| 3283 | rmb_popup->add_item(TTR("Move Up"), OPTION_MOVE_UP); |
| 3284 | rmb_popup->add_item(TTR("Move Down"), OPTION_MOVE_DOWN); |
| 3285 | rmb_popup->add_separator(); |
| 3286 | rmb_popup->add_item(TTR("Insert New Before"), OPTION_NEW_BEFORE); |
| 3287 | rmb_popup->add_item(TTR("Insert New After"), OPTION_NEW_AFTER); |
| 3288 | rmb_popup->add_separator(); |
| 3289 | rmb_popup->add_item(TTR("Remove"), OPTION_REMOVE); |
| 3290 | rmb_popup->add_separator(); |
| 3291 | rmb_popup->add_item(TTR("Clear Array"), OPTION_CLEAR_ARRAY); |
| 3292 | rmb_popup->add_item(TTR("Resize Array..."), OPTION_RESIZE_ARRAY); |
| 3293 | rmb_popup->connect(SceneStringName(id_pressed), callable_mp(this, &EditorInspectorArray::_rmb_popup_id_pressed)); |
| 3294 | add_child(rmb_popup); |
| 3295 | |
| 3296 | elements_vbox = memnew(VBoxContainer); |
| 3297 | elements_vbox->add_theme_constant_override("separation", 0); |
| 3298 | vbox->add_child(elements_vbox); |
| 3299 | |
| 3300 | add_button = memnew(EditorInspectorActionButton(TTRC("Add Element"), SNAME("Add"))); |
| 3301 | add_button->connect(SceneStringName(pressed), callable_mp(this, &EditorInspectorArray::_add_button_pressed)); |
| 3302 | add_button->set_disabled(read_only); |
| 3303 | vbox->add_child(add_button); |
| 3304 | |
| 3305 | control_dropping = memnew(Control); |
| 3306 | control_dropping->connect(SceneStringName(draw), callable_mp(this, &EditorInspectorArray::_control_dropping_draw)); |
| 3307 | control_dropping->set_mouse_filter(Control::MOUSE_FILTER_IGNORE); |
| 3308 | add_child(control_dropping); |
| 3309 | |
| 3310 | resize_dialog = memnew(AcceptDialog); |
| 3311 | resize_dialog->set_title(TTRC("Resize Array")); |
| 3312 | resize_dialog->add_cancel_button(); |
| 3313 | resize_dialog->connect(SceneStringName(confirmed), callable_mp(this, &EditorInspectorArray::_resize_dialog_confirmed)); |
| 3314 | add_child(resize_dialog); |
| 3315 | |
| 3316 | VBoxContainer *resize_dialog_vbox = memnew(VBoxContainer); |
| 3317 | resize_dialog->add_child(resize_dialog_vbox); |
| 3318 | |
| 3319 | new_size_spin_box = memnew(SpinBox); |
| 3320 | new_size_spin_box->set_accessibility_name(TTRC("New Size:")); |
| 3321 | new_size_spin_box->set_max(16384); |
| 3322 | new_size_spin_box->connect(SceneStringName(value_changed), callable_mp(this, &EditorInspectorArray::_new_size_spin_box_value_changed)); |
| 3323 | new_size_spin_box->get_line_edit()->connect(SceneStringName(text_submitted), callable_mp(this, &EditorInspectorArray::_new_size_spin_box_text_submitted)); |
| 3324 | new_size_spin_box->set_editable(!read_only); |
| 3325 | resize_dialog_vbox->add_margin_child(TTRC("New Size:"), new_size_spin_box); |
| 3326 | |
| 3327 | vbox->connect(SceneStringName(visibility_changed), callable_mp(this, &EditorInspectorArray::_vbox_visibility_changed)); |
| 3328 | } |
| 3329 | |
| 3330 | //////////////////////////////////////////////// |
| 3331 | //////////////////////////////////////////////// |
nothing calls this directly
no test coverage detected