diff options
Diffstat (limited to 'tools/editor')
-rw-r--r-- | tools/editor/project_settings.cpp | 42 | ||||
-rw-r--r-- | tools/editor/property_editor.cpp | 34 | ||||
-rw-r--r-- | tools/editor/property_selector.h | 4 |
3 files changed, 58 insertions, 22 deletions
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp index e8d22143ee..03eec960d2 100644 --- a/tools/editor/project_settings.cpp +++ b/tools/editor/project_settings.cpp @@ -337,7 +337,7 @@ void ProjectSettings::_add_item(int p_item){ device_index->add_item(TTR("Button 7")); device_index->add_item(TTR("Button 8")); device_index->add_item(TTR("Button 9")); - device_input->popup_centered(Size2(350,95)); + device_input->popup_centered_minsize(Size2(350,95)); } break; case InputEvent::JOYSTICK_MOTION: { @@ -349,12 +349,12 @@ void ProjectSettings::_add_item(int p_item){ String desc = _axis_names[i]; device_index->add_item(TTR("Axis")+" "+itos(i/2)+" "+(i&1?"+":"-")+desc); } - device_input->popup_centered(Size2(350,95)); + device_input->popup_centered_minsize(Size2(350,95)); } break; case InputEvent::JOYSTICK_BUTTON: { - device_id->set_val(0); + device_id->set_val(3); device_index_label->set_text(TTR("Joystick Button Index:")); device_index->clear(); @@ -362,7 +362,7 @@ void ProjectSettings::_add_item(int p_item){ device_index->add_item(itos(i)+": "+String(_button_names[i])); } - device_input->popup_centered(Size2(350,95)); + device_input->popup_centered_minsize(Size2(350,95)); } break; default:{} @@ -1432,30 +1432,32 @@ ProjectSettings::ProjectSettings(EditorData *p_data) { device_input->get_ok()->set_text(TTR("Add")); device_input->connect("confirmed",this,"_device_input_add"); - l = memnew( Label ); - l->set_text(TTR("Device:")); - l->set_pos(Point2(15,10)); - device_input->add_child(l); + hbc = memnew( HBoxContainer ); + device_input->add_child(hbc); + device_input->set_child_rect(hbc); + + VBoxContainer *vbc_left = memnew( VBoxContainer ); + hbc->add_child(vbc_left); l = memnew( Label ); - l->set_text(TTR("Index:")); - l->set_pos(Point2(90,10)); - device_input->add_child(l); - device_index_label=l; + l->set_text(TTR("Device:")); + vbc_left->add_child(l); device_id = memnew( SpinBox ); - device_id->set_pos(Point2(20,30)); - device_id->set_size(Size2(70,10)); device_id->set_val(0); + vbc_left->add_child(device_id); - device_input->add_child(device_id); + VBoxContainer *vbc_right = memnew( VBoxContainer ); + hbc->add_child(vbc_right); + vbc_right->set_h_size_flags(SIZE_EXPAND_FILL); - device_index = memnew( OptionButton ); - device_index->set_pos(Point2(95,30)); - device_index->set_size(Size2(300,10)); - device_index->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,10); + l = memnew( Label ); + l->set_text(TTR("Index:")); + vbc_right->add_child(l); + device_index_label=l; - device_input->add_child(device_index); + device_index = memnew( OptionButton ); + vbc_right->add_child(device_index); /* save = memnew( Button ); diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp index d7e527f473..9fc9d52aa1 100644 --- a/tools/editor/property_editor.cpp +++ b/tools/editor/property_editor.cpp @@ -84,6 +84,11 @@ void CustomPropertyEditor::_menu_option(int p_which) { v=val; emit_signal("variant_changed"); + } else if (hint==PROPERTY_HINT_ENUM) { + + v=p_which; + emit_signal("variant_changed"); + } } break; case Variant::OBJECT: { @@ -283,6 +288,16 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty switch(type) { + case Variant::BOOL: { + + CheckBox *c=checks20[0]; + c->set_text("True"); + c->set_pos(Vector2(4,4)); + c->set_pressed(v); + c->show(); + set_size(checks20[0]->get_pos()+checks20[0]->get_size()+Vector2(4,4)*EDSCALE); + + } break; case Variant::INT: case Variant::REAL: { @@ -323,9 +338,24 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty set_size(Size2(70,35)*EDSCALE); } + } else if (hint==PROPERTY_HINT_ENUM) { + + menu->clear(); + Vector<String> options = hint_text.split(","); + for(int i=0;i<options.size();i++) { + menu->add_item(options[i],i); + } + menu->set_pos(get_pos()); + menu->popup(); + hide(); + updating=false; + return false; + } else if (hint==PROPERTY_HINT_ALL_FLAGS) { + checks20[0]->set_text(""); + uint32_t flgs = v; for(int i=0;i<2;i++) { @@ -1117,6 +1147,10 @@ void CustomPropertyEditor::_action_pressed(int p_which) { return; switch(type) { + case Variant::BOOL: { + v=checks20[0]->is_pressed(); + emit_signal("variant_changed"); + } break; case Variant::INT: { if (hint==PROPERTY_HINT_ALL_FLAGS) { diff --git a/tools/editor/property_selector.h b/tools/editor/property_selector.h index c70b949a3b..f7f0e7e167 100644 --- a/tools/editor/property_selector.h +++ b/tools/editor/property_selector.h @@ -42,12 +42,12 @@ public: void select_method_from_base_type(const String& p_base,const String& p_current=""); void select_method_from_script(const Ref<Script>& p_script,const String& p_current=""); void select_method_from_basic_type(Variant::Type p_type,const String& p_current=""); - void select_method_from_instance(Object* p_instance, const String &p_current); + void select_method_from_instance(Object* p_instance, const String &p_current=""); void select_property_from_base_type(const String& p_base,const String& p_current=""); void select_property_from_script(const Ref<Script>& p_script,const String& p_current=""); void select_property_from_basic_type(Variant::Type p_type,InputEvent::Type p_event_type,const String& p_current=""); - void select_property_from_instance(Object* p_instance, const String &p_current); + void select_property_from_instance(Object* p_instance, const String &p_current=""); PropertySelector(); }; |