summaryrefslogtreecommitdiff
path: root/tools/editor
diff options
context:
space:
mode:
Diffstat (limited to 'tools/editor')
-rw-r--r--tools/editor/addon_editor_plugin.cpp16
-rw-r--r--tools/editor/animation_editor.cpp28
-rw-r--r--tools/editor/call_dialog.cpp4
-rw-r--r--tools/editor/code_editor.cpp534
-rw-r--r--tools/editor/code_editor.h77
-rw-r--r--tools/editor/connections_dialog.cpp111
-rw-r--r--tools/editor/connections_dialog.h11
-rw-r--r--tools/editor/create_dialog.cpp36
-rw-r--r--tools/editor/create_dialog.h1
-rw-r--r--tools/editor/dependency_editor.cpp32
-rw-r--r--tools/editor/editor_file_dialog.cpp11
-rw-r--r--tools/editor/editor_file_system.cpp73
-rw-r--r--tools/editor/editor_file_system.h8
-rw-r--r--tools/editor/editor_fonts.cpp105
-rw-r--r--tools/editor/editor_help.cpp73
-rw-r--r--tools/editor/editor_help.h1
-rw-r--r--tools/editor/editor_import_export.cpp47
-rw-r--r--tools/editor/editor_import_export.h3
-rw-r--r--tools/editor/editor_node.cpp515
-rw-r--r--tools/editor/editor_node.h32
-rw-r--r--tools/editor/editor_plugin.cpp8
-rw-r--r--tools/editor/editor_plugin.h3
-rw-r--r--tools/editor/editor_plugin_settings.cpp9
-rw-r--r--tools/editor/editor_profiler.cpp753
-rw-r--r--tools/editor/editor_profiler.h145
-rw-r--r--tools/editor/editor_reimport_dialog.cpp4
-rw-r--r--tools/editor/editor_resource_preview.cpp99
-rw-r--r--tools/editor/editor_resource_preview.h5
-rw-r--r--tools/editor/editor_run_script.cpp10
-rw-r--r--tools/editor/editor_scale.cpp14
-rw-r--r--tools/editor/editor_scale.h8
-rw-r--r--tools/editor/editor_settings.cpp437
-rw-r--r--tools/editor/editor_settings.h25
-rw-r--r--tools/editor/editor_sub_scene.cpp2
-rw-r--r--tools/editor/groups_editor.cpp20
-rw-r--r--tools/editor/groups_editor.h4
-rw-r--r--tools/editor/icons/2x/icon_accept_dialog.pngbin0 -> 637 bytes
-rw-r--r--tools/editor/icons/2x/icon_add.pngbin0 -> 207 bytes
-rw-r--r--tools/editor/icons/2x/icon_add_track.pngbin0 -> 207 bytes
-rw-r--r--tools/editor/icons/2x/icon_anchor.pngbin0 -> 872 bytes
-rw-r--r--tools/editor/icons/2x/icon_animated_sprite.pngbin0 -> 1268 bytes
-rw-r--r--tools/editor/icons/2x/icon_animated_sprite_3d.pngbin0 -> 1181 bytes
-rw-r--r--tools/editor/icons/2x/icon_animation.pngbin0 -> 963 bytes
-rw-r--r--tools/editor/icons/2x/icon_animation_player.pngbin0 -> 230 bytes
-rw-r--r--tools/editor/icons/2x/icon_animation_tree.pngbin0 -> 527 bytes
-rw-r--r--tools/editor/icons/2x/icon_animation_tree_player.pngbin0 -> 527 bytes
-rw-r--r--tools/editor/icons/2x/icon_area.pngbin0 -> 287 bytes
-rw-r--r--tools/editor/icons/2x/icon_area_2d.pngbin0 -> 267 bytes
-rw-r--r--tools/editor/icons/2x/icon_arrow_left.pngbin0 -> 389 bytes
-rw-r--r--tools/editor/icons/2x/icon_arrow_right.pngbin0 -> 364 bytes
-rw-r--r--tools/editor/icons/2x/icon_arrow_up.pngbin0 -> 349 bytes
-rw-r--r--tools/editor/icons/2x/icon_atlas_texture.pngbin0 -> 438 bytes
-rw-r--r--tools/editor/icons/2x/icon_audio_stream_gibberish.pngbin0 -> 493 bytes
-rw-r--r--tools/editor/icons/2x/icon_auto_play.pngbin0 -> 752 bytes
-rw-r--r--tools/editor/icons/2x/icon_back.pngbin0 -> 379 bytes
-rw-r--r--tools/editor/icons/2x/icon_back_buffer_copy.pngbin0 -> 246 bytes
-rw-r--r--tools/editor/icons/2x/icon_bake.pngbin0 -> 323 bytes
-rw-r--r--tools/editor/icons/2x/icon_baked_light.pngbin0 -> 323 bytes
-rw-r--r--tools/editor/icons/2x/icon_baked_light_instance.pngbin0 -> 320 bytes
-rw-r--r--tools/editor/icons/2x/icon_bitmap_font.pngbin0 -> 311 bytes
-rw-r--r--tools/editor/icons/2x/icon_blend.pngbin0 -> 1147 bytes
-rw-r--r--tools/editor/icons/2x/icon_bone.pngbin0 -> 653 bytes
-rw-r--r--tools/editor/icons/2x/icon_bone_attachment.pngbin0 -> 632 bytes
-rw-r--r--tools/editor/icons/2x/icon_bone_track.pngbin0 -> 621 bytes
-rw-r--r--tools/editor/icons/2x/icon_bool.pngbin0 -> 227 bytes
-rw-r--r--tools/editor/icons/2x/icon_box_shape.pngbin0 -> 653 bytes
-rw-r--r--tools/editor/icons/2x/icon_button.pngbin0 -> 242 bytes
-rw-r--r--tools/editor/icons/2x/icon_button_group.pngbin0 -> 307 bytes
-rw-r--r--tools/editor/icons/2x/icon_camera.pngbin0 -> 408 bytes
-rw-r--r--tools/editor/icons/2x/icon_camera_2d.pngbin0 -> 420 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_item.pngbin0 -> 765 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_item_material.pngbin0 -> 696 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_item_shader.pngbin0 -> 772 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_item_shader_graph.pngbin0 -> 763 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_layer.pngbin0 -> 913 bytes
-rw-r--r--tools/editor/icons/2x/icon_canvas_modulate.pngbin0 -> 592 bytes
-rw-r--r--tools/editor/icons/2x/icon_capsule_shape.pngbin0 -> 428 bytes
-rw-r--r--tools/editor/icons/2x/icon_center_container.pngbin0 -> 534 bytes
-rw-r--r--tools/editor/icons/2x/icon_check_box.pngbin0 -> 621 bytes
-rw-r--r--tools/editor/icons/2x/icon_check_button.pngbin0 -> 584 bytes
-rw-r--r--tools/editor/icons/2x/icon_class_list.pngbin0 -> 248 bytes
-rw-r--r--tools/editor/icons/2x/icon_close.pngbin0 -> 517 bytes
-rw-r--r--tools/editor/icons/2x/icon_collapse.pngbin0 -> 439 bytes
-rw-r--r--tools/editor/icons/2x/icon_collision_2d.pngbin0 -> 463 bytes
-rw-r--r--tools/editor/icons/2x/icon_collision_polygon.pngbin0 -> 453 bytes
-rw-r--r--tools/editor/icons/2x/icon_collision_polygon_2d.pngbin0 -> 463 bytes
-rw-r--r--tools/editor/icons/2x/icon_collision_shape.pngbin0 -> 495 bytes
-rw-r--r--tools/editor/icons/2x/icon_collision_shape_2d.pngbin0 -> 291 bytes
-rw-r--r--tools/editor/icons/2x/icon_color.pngbin0 -> 1435 bytes
-rw-r--r--tools/editor/icons/2x/icon_color_pick.pngbin0 -> 878 bytes
-rw-r--r--tools/editor/icons/2x/icon_color_picker.pngbin0 -> 893 bytes
-rw-r--r--tools/editor/icons/2x/icon_color_picker_button.pngbin0 -> 998 bytes
-rw-r--r--tools/editor/icons/2x/icon_color_ramp.pngbin0 -> 398 bytes
-rw-r--r--tools/editor/icons/2x/icon_concave_polygon_shape.pngbin0 -> 765 bytes
-rw-r--r--tools/editor/icons/2x/icon_confirmation_dialog.pngbin0 -> 750 bytes
-rw-r--r--tools/editor/icons/2x/icon_connect.pngbin0 -> 307 bytes
-rw-r--r--tools/editor/icons/2x/icon_connection_and_groups.pngbin0 -> 453 bytes
-rw-r--r--tools/editor/icons/2x/icon_container.pngbin0 -> 375 bytes
-rw-r--r--tools/editor/icons/2x/icon_control.pngbin0 -> 881 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_bottom_center.pngbin0 -> 223 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_bottom_left.pngbin0 -> 220 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_bottom_right.pngbin0 -> 220 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_bottom_wide.pngbin0 -> 222 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_center.pngbin0 -> 235 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_center_left.pngbin0 -> 186 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_center_right.pngbin0 -> 183 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_left_center.pngbin0 -> 234 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_left_wide.pngbin0 -> 209 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_right_center.pngbin0 -> 236 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_right_wide.pngbin0 -> 207 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_top_center.pngbin0 -> 231 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_top_left.pngbin0 -> 226 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_top_right.pngbin0 -> 232 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_top_wide.pngbin0 -> 223 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_align_wide.pngbin0 -> 208 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_hcenter_wide.pngbin0 -> 232 bytes
-rw-r--r--tools/editor/icons/2x/icon_control_vcenter_wide.pngbin0 -> 213 bytes
-rw-r--r--tools/editor/icons/2x/icon_convex_polygon_shape.pngbin0 -> 704 bytes
-rw-r--r--tools/editor/icons/2x/icon_create_new_scene_from.pngbin0 -> 669 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_close.pngbin0 -> 666 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_constant.pngbin0 -> 218 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_create.pngbin0 -> 754 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_curve.pngbin0 -> 800 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_delete.pngbin0 -> 982 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_edit.pngbin0 -> 1010 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_in.pngbin0 -> 505 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_in_out.pngbin0 -> 550 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_linear.pngbin0 -> 339 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_out.pngbin0 -> 515 bytes
-rw-r--r--tools/editor/icons/2x/icon_curve_out_in.pngbin0 -> 545 bytes
-rw-r--r--tools/editor/icons/2x/icon_damped_spring_joint_2d.pngbin0 -> 552 bytes
-rw-r--r--tools/editor/icons/2x/icon_debug_continue.pngbin0 -> 581 bytes
-rw-r--r--tools/editor/icons/2x/icon_debug_next.pngbin0 -> 340 bytes
-rw-r--r--tools/editor/icons/2x/icon_debug_step.pngbin0 -> 373 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_changed.pngbin0 -> 787 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_changed_hl.pngbin0 -> 657 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_local_changed.pngbin0 -> 1160 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_local_changed_hl.pngbin0 -> 982 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_ok.pngbin0 -> 1071 bytes
-rw-r--r--tools/editor/icons/2x/icon_dependency_ok_hl.pngbin0 -> 892 bytes
-rw-r--r--tools/editor/icons/2x/icon_directional_light.pngbin0 -> 812 bytes
-rw-r--r--tools/editor/icons/2x/icon_duplicate.pngbin0 -> 265 bytes
-rw-r--r--tools/editor/icons/2x/icon_dynamic_font.pngbin0 -> 439 bytes
-rw-r--r--tools/editor/icons/2x/icon_dynamic_font_data.pngbin0 -> 414 bytes
-rw-r--r--tools/editor/icons/2x/icon_edit.pngbin0 -> 581 bytes
-rw-r--r--tools/editor/icons/2x/icon_edit_key.pngbin0 -> 697 bytes
-rw-r--r--tools/editor/icons/2x/icon_edit_pivot.pngbin0 -> 651 bytes
-rw-r--r--tools/editor/icons/2x/icon_edit_resource.pngbin0 -> 454 bytes
-rw-r--r--tools/editor/icons/2x/icon_editor_3d_handle.pngbin0 -> 761 bytes
-rw-r--r--tools/editor/icons/2x/icon_editor_handle.pngbin0 -> 483 bytes
-rw-r--r--tools/editor/icons/2x/icon_editor_pivot.pngbin0 -> 254 bytes
-rw-r--r--tools/editor/icons/2x/icon_editor_plugin.pngbin0 -> 525 bytes
-rw-r--r--tools/editor/icons/2x/icon_enum.pngbin0 -> 193 bytes
-rw-r--r--tools/editor/icons/2x/icon_error.pngbin0 -> 160 bytes
-rw-r--r--tools/editor/icons/2x/icon_error_sign.pngbin0 -> 497 bytes
-rw-r--r--tools/editor/icons/2x/icon_event_player.pngbin0 -> 223 bytes
-rw-r--r--tools/editor/icons/2x/icon_favorites.pngbin0 -> 758 bytes
-rw-r--r--tools/editor/icons/2x/icon_file.pngbin0 -> 252 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_big.pngbin0 -> 561 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_dialog.pngbin0 -> 398 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_list.pngbin0 -> 193 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_server.pngbin0 -> 228 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_server_active.pngbin0 -> 229 bytes
-rw-r--r--tools/editor/icons/2x/icon_file_thumbnail.pngbin0 -> 193 bytes
-rw-r--r--tools/editor/icons/2x/icon_filesystem.pngbin0 -> 248 bytes
-rw-r--r--tools/editor/icons/2x/icon_fixed_material.pngbin0 -> 792 bytes
-rw-r--r--tools/editor/icons/2x/icon_folder.pngbin0 -> 284 bytes
-rw-r--r--tools/editor/icons/2x/icon_folder_big.pngbin0 -> 1047 bytes
-rw-r--r--tools/editor/icons/2x/icon_font.pngbin0 -> 425 bytes
-rw-r--r--tools/editor/icons/2x/icon_forward.pngbin0 -> 382 bytes
-rw-r--r--tools/editor/icons/2x/icon_g_d_script.pngbin0 -> 815 bytes
-rw-r--r--tools/editor/icons/2x/icon_gizmo_directional_light.pngbin0 -> 1426 bytes
-rw-r--r--tools/editor/icons/2x/icon_gizmo_light.pngbin0 -> 1547 bytes
-rw-r--r--tools/editor/icons/2x/icon_gizmo_spatial_sample_player.pngbin0 -> 582 bytes
-rw-r--r--tools/editor/icons/2x/icon_gizmo_spatial_stream_player.pngbin0 -> 951 bytes
-rw-r--r--tools/editor/icons/2x/icon_godot.pngbin0 -> 1601 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_color_ramp.pngbin0 -> 398 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_comment.pngbin0 -> 208 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_cube_uniform.pngbin0 -> 851 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_curve_map.pngbin0 -> 643 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_default_texture.pngbin0 -> 310 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_edit.pngbin0 -> 843 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_input.pngbin0 -> 577 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_node.pngbin0 -> 685 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_rgb.pngbin0 -> 1007 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_rgb_op.pngbin0 -> 275 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_rgb_uniform.pngbin0 -> 752 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_scalar.pngbin0 -> 517 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_scalar_interp.pngbin0 -> 363 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_scalar_op.pngbin0 -> 446 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_scalar_uniform.pngbin0 -> 626 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_scalars_to_vec.pngbin0 -> 311 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_texscreen.pngbin0 -> 273 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_texture_uniform.pngbin0 -> 450 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_time.pngbin0 -> 875 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_dp.pngbin0 -> 538 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_interp.pngbin0 -> 363 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_length.pngbin0 -> 569 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_op.pngbin0 -> 443 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_scalar_op.pngbin0 -> 487 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vec_to_scalars.pngbin0 -> 313 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vecs_to_xform.pngbin0 -> 336 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vector.pngbin0 -> 676 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_vector_uniform.pngbin0 -> 774 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform.pngbin0 -> 436 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_mult.pngbin0 -> 377 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_scalar_func.pngbin0 -> 523 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_to_vecs.pngbin0 -> 337 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_uniform.pngbin0 -> 582 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_vec_func.pngbin0 -> 532 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_vec_imult.pngbin0 -> 657 bytes
-rw-r--r--tools/editor/icons/2x/icon_graph_xform_vec_mult.pngbin0 -> 656 bytes
-rw-r--r--tools/editor/icons/2x/icon_grid.pngbin0 -> 250 bytes
-rw-r--r--tools/editor/icons/2x/icon_grid_container.pngbin0 -> 385 bytes
-rw-r--r--tools/editor/icons/2x/icon_grid_map.pngbin0 -> 194 bytes
-rw-r--r--tools/editor/icons/2x/icon_groove_joint_2d.pngbin0 -> 235 bytes
-rw-r--r--tools/editor/icons/2x/icon_group.pngbin0 -> 838 bytes
-rw-r--r--tools/editor/icons/2x/icon_groups.pngbin0 -> 409 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_box_container.pngbin0 -> 363 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_button_array.pngbin0 -> 280 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_scroll_bar.pngbin0 -> 380 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_separator.pngbin0 -> 204 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_slider.pngbin0 -> 416 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_split_container.pngbin0 -> 455 bytes
-rw-r--r--tools/editor/icons/2x/icon_h_t_t_p_request.pngbin0 -> 236 bytes
-rw-r--r--tools/editor/icons/2x/icon_help.pngbin0 -> 1182 bytes
-rw-r--r--tools/editor/icons/2x/icon_hidden.pngbin0 -> 696 bytes
-rw-r--r--tools/editor/icons/2x/icon_history.pngbin0 -> 870 bytes
-rw-r--r--tools/editor/icons/2x/icon_hsize.pngbin0 -> 303 bytes
-rw-r--r--tools/editor/icons/2x/icon_image.pngbin0 -> 460 bytes
-rw-r--r--tools/editor/icons/2x/icon_image_texture.pngbin0 -> 318 bytes
-rw-r--r--tools/editor/icons/2x/icon_immediate_geometry.pngbin0 -> 762 bytes
-rw-r--r--tools/editor/icons/2x/icon_import_check.pngbin0 -> 442 bytes
-rw-r--r--tools/editor/icons/2x/icon_import_fail.pngbin0 -> 558 bytes
-rw-r--r--tools/editor/icons/2x/icon_instance.pngbin0 -> 873 bytes
-rw-r--r--tools/editor/icons/2x/icon_instance_options.pngbin0 -> 764 bytes
-rw-r--r--tools/editor/icons/2x/icon_integer.pngbin0 -> 203 bytes
-rw-r--r--tools/editor/icons/2x/icon_interp_cubic.pngbin0 -> 539 bytes
-rw-r--r--tools/editor/icons/2x/icon_interp_linear.pngbin0 -> 454 bytes
-rw-r--r--tools/editor/icons/2x/icon_interp_raw.pngbin0 -> 277 bytes
-rw-r--r--tools/editor/icons/2x/icon_invalid_key.pngbin0 -> 441 bytes
-rw-r--r--tools/editor/icons/2x/icon_inverse_kinematics.pngbin0 -> 515 bytes
-rw-r--r--tools/editor/icons/2x/icon_item_list.pngbin0 -> 394 bytes
-rw-r--r--tools/editor/icons/2x/icon_joy_axis.pngbin0 -> 481 bytes
-rw-r--r--tools/editor/icons/2x/icon_joy_button.pngbin0 -> 555 bytes
-rw-r--r--tools/editor/icons/2x/icon_joystick.pngbin0 -> 436 bytes
-rw-r--r--tools/editor/icons/2x/icon_key.pngbin0 -> 628 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_hover.pngbin0 -> 432 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_invalid.pngbin0 -> 441 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_next.pngbin0 -> 590 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_selected.pngbin0 -> 409 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_value.pngbin0 -> 436 bytes
-rw-r--r--tools/editor/icons/2x/icon_key_xform.pngbin0 -> 444 bytes
-rw-r--r--tools/editor/icons/2x/icon_keyboard.pngbin0 -> 542 bytes
-rw-r--r--tools/editor/icons/2x/icon_kinematic_body.pngbin0 -> 253 bytes
-rw-r--r--tools/editor/icons/2x/icon_kinematic_body_2d.pngbin0 -> 260 bytes
-rw-r--r--tools/editor/icons/2x/icon_label.pngbin0 -> 426 bytes
-rw-r--r--tools/editor/icons/2x/icon_light_2d.pngbin0 -> 725 bytes
-rw-r--r--tools/editor/icons/2x/icon_light_occluder_2d.pngbin0 -> 231 bytes
-rw-r--r--tools/editor/icons/2x/icon_line_edit.pngbin0 -> 379 bytes
-rw-r--r--tools/editor/icons/2x/icon_link_button.pngbin0 -> 830 bytes
-rw-r--r--tools/editor/icons/2x/icon_list_select.pngbin0 -> 709 bytes
-rw-r--r--tools/editor/icons/2x/icon_load.pngbin0 -> 284 bytes
-rw-r--r--tools/editor/icons/2x/icon_lock.pngbin0 -> 497 bytes
-rw-r--r--tools/editor/icons/2x/icon_loop.pngbin0 -> 862 bytes
-rw-r--r--tools/editor/icons/2x/icon_main_play.pngbin0 -> 415 bytes
-rw-r--r--tools/editor/icons/2x/icon_main_stop.pngbin0 -> 253 bytes
-rw-r--r--tools/editor/icons/2x/icon_margin_container.pngbin0 -> 421 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_cube.pngbin0 -> 618 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_cube_off.pngbin0 -> 654 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_light_1.pngbin0 -> 780 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_light_1_off.pngbin0 -> 652 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_light_2.pngbin0 -> 796 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_light_2_off.pngbin0 -> 899 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_sphere.pngbin0 -> 760 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_preview_sphere_off.pngbin0 -> 574 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_shader.pngbin0 -> 824 bytes
-rw-r--r--tools/editor/icons/2x/icon_material_shader_graph.pngbin0 -> 763 bytes
-rw-r--r--tools/editor/icons/2x/icon_matrix.pngbin0 -> 241 bytes
-rw-r--r--tools/editor/icons/2x/icon_menu_button.pngbin0 -> 352 bytes
-rw-r--r--tools/editor/icons/2x/icon_mesh.pngbin0 -> 638 bytes
-rw-r--r--tools/editor/icons/2x/icon_mesh_instance.pngbin0 -> 619 bytes
-rw-r--r--tools/editor/icons/2x/icon_mirror_x.pngbin0 -> 303 bytes
-rw-r--r--tools/editor/icons/2x/icon_mirror_y.pngbin0 -> 296 bytes
-rw-r--r--tools/editor/icons/2x/icon_mouse.pngbin0 -> 532 bytes
-rw-r--r--tools/editor/icons/2x/icon_move_down.pngbin0 -> 413 bytes
-rw-r--r--tools/editor/icons/2x/icon_move_point.pngbin0 -> 1251 bytes
-rw-r--r--tools/editor/icons/2x/icon_move_up.pngbin0 -> 402 bytes
-rw-r--r--tools/editor/icons/2x/icon_multi_edit.pngbin0 -> 614 bytes
-rw-r--r--tools/editor/icons/2x/icon_multi_line.pngbin0 -> 222 bytes
-rw-r--r--tools/editor/icons/2x/icon_multi_mesh.pngbin0 -> 647 bytes
-rw-r--r--tools/editor/icons/2x/icon_multi_mesh_instance.pngbin0 -> 709 bytes
-rw-r--r--tools/editor/icons/2x/icon_multi_node_edit.pngbin0 -> 614 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation.pngbin0 -> 590 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation_2d.pngbin0 -> 614 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation_mesh_instance.pngbin0 -> 923 bytes
-rw-r--r--tools/editor/icons/2x/icon_navigation_polygon_instance.pngbin0 -> 768 bytes
-rw-r--r--tools/editor/icons/2x/icon_new.pngbin0 -> 252 bytes
-rw-r--r--tools/editor/icons/2x/icon_node.pngbin0 -> 844 bytes
-rw-r--r--tools/editor/icons/2x/icon_node_2d.pngbin0 -> 920 bytes
-rw-r--r--tools/editor/icons/2x/icon_node_warning.pngbin0 -> 501 bytes
-rw-r--r--tools/editor/icons/2x/icon_non_favorite.pngbin0 -> 1002 bytes
-rw-r--r--tools/editor/icons/2x/icon_object.pngbin0 -> 731 bytes
-rw-r--r--tools/editor/icons/2x/icon_occluder_polygon_2d.pngbin0 -> 440 bytes
-rw-r--r--tools/editor/icons/2x/icon_omni_light.pngbin0 -> 715 bytes
-rw-r--r--tools/editor/icons/2x/icon_option_button.pngbin0 -> 422 bytes
-rw-r--r--tools/editor/icons/2x/icon_p_hash_translation.pngbin0 -> 341 bytes
-rw-r--r--tools/editor/icons/2x/icon_packed_scene.pngbin0 -> 625 bytes
-rw-r--r--tools/editor/icons/2x/icon_panel.pngbin0 -> 333 bytes
-rw-r--r--tools/editor/icons/2x/icon_panel_container.pngbin0 -> 365 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_1.pngbin0 -> 180 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_2.pngbin0 -> 183 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_2_alt.pngbin0 -> 190 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_3.pngbin0 -> 197 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_3_alt.pngbin0 -> 208 bytes
-rw-r--r--tools/editor/icons/2x/icon_panels_4.pngbin0 -> 192 bytes
-rw-r--r--tools/editor/icons/2x/icon_parallax_background.pngbin0 -> 391 bytes
-rw-r--r--tools/editor/icons/2x/icon_parallax_layer.pngbin0 -> 525 bytes
-rw-r--r--tools/editor/icons/2x/icon_particle_attractor_2d.pngbin0 -> 1634 bytes
-rw-r--r--tools/editor/icons/2x/icon_particles.pngbin0 -> 742 bytes
-rw-r--r--tools/editor/icons/2x/icon_particles_2d.pngbin0 -> 784 bytes
-rw-r--r--tools/editor/icons/2x/icon_patch_9_frame.pngbin0 -> 218 bytes
-rw-r--r--tools/editor/icons/2x/icon_path.pngbin0 -> 722 bytes
-rw-r--r--tools/editor/icons/2x/icon_path_2d.pngbin0 -> 743 bytes
-rw-r--r--tools/editor/icons/2x/icon_path_follow.pngbin0 -> 781 bytes
-rw-r--r--tools/editor/icons/2x/icon_path_follow_2d.pngbin0 -> 781 bytes
-rw-r--r--tools/editor/icons/2x/icon_pause.pngbin0 -> 250 bytes
-rw-r--r--tools/editor/icons/2x/icon_pin.pngbin0 -> 378 bytes
-rw-r--r--tools/editor/icons/2x/icon_pin_joint.pngbin0 -> 742 bytes
-rw-r--r--tools/editor/icons/2x/icon_pin_joint_2d.pngbin0 -> 775 bytes
-rw-r--r--tools/editor/icons/2x/icon_pin_pressed.pngbin0 -> 378 bytes
-rw-r--r--tools/editor/icons/2x/icon_plane.pngbin0 -> 362 bytes
-rw-r--r--tools/editor/icons/2x/icon_plane_shape.pngbin0 -> 372 bytes
-rw-r--r--tools/editor/icons/2x/icon_play.pngbin0 -> 451 bytes
-rw-r--r--tools/editor/icons/2x/icon_play_backwards.pngbin0 -> 480 bytes
-rw-r--r--tools/editor/icons/2x/icon_play_custom.pngbin0 -> 628 bytes
-rw-r--r--tools/editor/icons/2x/icon_play_scene.pngbin0 -> 742 bytes
-rw-r--r--tools/editor/icons/2x/icon_play_start.pngbin0 -> 519 bytes
-rw-r--r--tools/editor/icons/2x/icon_play_start_backwards.pngbin0 -> 553 bytes
-rw-r--r--tools/editor/icons/2x/icon_polygon_2d.pngbin0 -> 463 bytes
-rw-r--r--tools/editor/icons/2x/icon_popup.pngbin0 -> 385 bytes
-rw-r--r--tools/editor/icons/2x/icon_popup_dialog.pngbin0 -> 403 bytes
-rw-r--r--tools/editor/icons/2x/icon_popup_menu.pngbin0 -> 357 bytes
-rw-r--r--tools/editor/icons/2x/icon_popup_panel.pngbin0 -> 335 bytes
-rw-r--r--tools/editor/icons/2x/icon_portal.pngbin0 -> 911 bytes
-rw-r--r--tools/editor/icons/2x/icon_position_2d.pngbin0 -> 208 bytes
-rw-r--r--tools/editor/icons/2x/icon_position_3d.pngbin0 -> 207 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_1.pngbin0 -> 837 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_2.pngbin0 -> 841 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_3.pngbin0 -> 856 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_4.pngbin0 -> 864 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_5.pngbin0 -> 863 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_6.pngbin0 -> 849 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_7.pngbin0 -> 871 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_8.pngbin0 -> 847 bytes
-rw-r--r--tools/editor/icons/2x/icon_progress_bar.pngbin0 -> 384 bytes
-rw-r--r--tools/editor/icons/2x/icon_proximity_group.pngbin0 -> 382 bytes
-rw-r--r--tools/editor/icons/2x/icon_quad.pngbin0 -> 345 bytes
-rw-r--r--tools/editor/icons/2x/icon_quat.pngbin0 -> 724 bytes
-rw-r--r--tools/editor/icons/2x/icon_range.pngbin0 -> 233 bytes
-rw-r--r--tools/editor/icons/2x/icon_ray_cast.pngbin0 -> 364 bytes
-rw-r--r--tools/editor/icons/2x/icon_ray_cast_2d.pngbin0 -> 393 bytes
-rw-r--r--tools/editor/icons/2x/icon_ray_shape.pngbin0 -> 597 bytes
-rw-r--r--tools/editor/icons/2x/icon_rayito.pngbin0 -> 505 bytes
-rw-r--r--tools/editor/icons/2x/icon_real.pngbin0 -> 479 bytes
-rw-r--r--tools/editor/icons/2x/icon_reference_frame.pngbin0 -> 216 bytes
-rw-r--r--tools/editor/icons/2x/icon_region_edit.pngbin0 -> 214 bytes
-rw-r--r--tools/editor/icons/2x/icon_reload.pngbin0 -> 842 bytes
-rw-r--r--tools/editor/icons/2x/icon_reload_small.pngbin0 -> 812 bytes
-rw-r--r--tools/editor/icons/2x/icon_remote.pngbin0 -> 880 bytes
-rw-r--r--tools/editor/icons/2x/icon_remote_transform_2d.pngbin0 -> 1253 bytes
-rw-r--r--tools/editor/icons/2x/icon_remove.pngbin0 -> 327 bytes
-rw-r--r--tools/editor/icons/2x/icon_rename.pngbin0 -> 271 bytes
-rw-r--r--tools/editor/icons/2x/icon_reparent.pngbin0 -> 687 bytes
-rw-r--r--tools/editor/icons/2x/icon_resource_preloader.pngbin0 -> 665 bytes
-rw-r--r--tools/editor/icons/2x/icon_rich_text_label.pngbin0 -> 369 bytes
-rw-r--r--tools/editor/icons/2x/icon_rigid_body.pngbin0 -> 1195 bytes
-rw-r--r--tools/editor/icons/2x/icon_rigid_body_2d.pngbin0 -> 1262 bytes
-rw-r--r--tools/editor/icons/2x/icon_room.pngbin0 -> 722 bytes
-rw-r--r--tools/editor/icons/2x/icon_rotate_0.pngbin0 -> 934 bytes
-rw-r--r--tools/editor/icons/2x/icon_rotate_180.pngbin0 -> 769 bytes
-rw-r--r--tools/editor/icons/2x/icon_rotate_270.pngbin0 -> 722 bytes
-rw-r--r--tools/editor/icons/2x/icon_rotate_90.pngbin0 -> 861 bytes
-rw-r--r--tools/editor/icons/2x/icon_sample.pngbin0 -> 253 bytes
-rw-r--r--tools/editor/icons/2x/icon_sample_player.pngbin0 -> 401 bytes
-rw-r--r--tools/editor/icons/2x/icon_sample_player_2d.pngbin0 -> 432 bytes
-rw-r--r--tools/editor/icons/2x/icon_save.pngbin0 -> 522 bytes
-rw-r--r--tools/editor/icons/2x/icon_script.pngbin0 -> 521 bytes
-rw-r--r--tools/editor/icons/2x/icon_scroll_bar.pngbin0 -> 380 bytes
-rw-r--r--tools/editor/icons/2x/icon_scroll_container.pngbin0 -> 539 bytes
-rw-r--r--tools/editor/icons/2x/icon_shader.pngbin0 -> 824 bytes
-rw-r--r--tools/editor/icons/2x/icon_shader_material.pngbin0 -> 824 bytes
-rw-r--r--tools/editor/icons/2x/icon_signal.pngbin0 -> 383 bytes
-rw-r--r--tools/editor/icons/2x/icon_skeleton.pngbin0 -> 705 bytes
-rw-r--r--tools/editor/icons/2x/icon_slider_joint.pngbin0 -> 236 bytes
-rw-r--r--tools/editor/icons/2x/icon_slot.pngbin0 -> 398 bytes
-rw-r--r--tools/editor/icons/2x/icon_snap.pngbin0 -> 605 bytes
-rw-r--r--tools/editor/icons/2x/icon_sound_room_params.pngbin0 -> 431 bytes
-rw-r--r--tools/editor/icons/2x/icon_spatial.pngbin0 -> 891 bytes
-rw-r--r--tools/editor/icons/2x/icon_spatial_sample_player.pngbin0 -> 409 bytes
-rw-r--r--tools/editor/icons/2x/icon_spatial_stream_player.pngbin0 -> 318 bytes
-rw-r--r--tools/editor/icons/2x/icon_sphere_shape.pngbin0 -> 768 bytes
-rw-r--r--tools/editor/icons/2x/icon_spin_box.pngbin0 -> 492 bytes
-rw-r--r--tools/editor/icons/2x/icon_spot_light.pngbin0 -> 770 bytes
-rw-r--r--tools/editor/icons/2x/icon_sprite.pngbin0 -> 897 bytes
-rw-r--r--tools/editor/icons/2x/icon_sprite_3d.pngbin0 -> 894 bytes
-rw-r--r--tools/editor/icons/2x/icon_static_body.pngbin0 -> 453 bytes
-rw-r--r--tools/editor/icons/2x/icon_static_body_2d.pngbin0 -> 473 bytes
-rw-r--r--tools/editor/icons/2x/icon_stream_player.pngbin0 -> 319 bytes
-rw-r--r--tools/editor/icons/2x/icon_string.pngbin0 -> 273 bytes
-rw-r--r--tools/editor/icons/2x/icon_tab_container.pngbin0 -> 386 bytes
-rw-r--r--tools/editor/icons/2x/icon_tabs.pngbin0 -> 266 bytes
-rw-r--r--tools/editor/icons/2x/icon_test_cube.pngbin0 -> 668 bytes
-rw-r--r--tools/editor/icons/2x/icon_text_edit.pngbin0 -> 385 bytes
-rw-r--r--tools/editor/icons/2x/icon_texture.pngbin0 -> 318 bytes
-rw-r--r--tools/editor/icons/2x/icon_texture_button.pngbin0 -> 246 bytes
-rw-r--r--tools/editor/icons/2x/icon_texture_frame.pngbin0 -> 257 bytes
-rw-r--r--tools/editor/icons/2x/icon_texture_progress.pngbin0 -> 400 bytes
-rw-r--r--tools/editor/icons/2x/icon_tile_map.pngbin0 -> 195 bytes
-rw-r--r--tools/editor/icons/2x/icon_timer.pngbin0 -> 965 bytes
-rw-r--r--tools/editor/icons/2x/icon_tool_move.pngbin0 -> 409 bytes
-rw-r--r--tools/editor/icons/2x/icon_tool_pan.pngbin0 -> 535 bytes
-rw-r--r--tools/editor/icons/2x/icon_tool_rotate.pngbin0 -> 842 bytes
-rw-r--r--tools/editor/icons/2x/icon_tool_scale.pngbin0 -> 618 bytes
-rw-r--r--tools/editor/icons/2x/icon_tool_select.pngbin0 -> 715 bytes
-rw-r--r--tools/editor/icons/2x/icon_tools.pngbin0 -> 815 bytes
-rw-r--r--tools/editor/icons/2x/icon_touch_screen_button.pngbin0 -> 567 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_add_key.pngbin0 -> 181 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_add_key_hl.pngbin0 -> 182 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_continuous.pngbin0 -> 490 bytes
-rw-r--r--tools/editor/icons/2x/icon_track_discrete.pngbin0 -> 252 bytes
-rw-r--r--tools/editor/icons/2x/icon_translation.pngbin0 -> 341 bytes
-rw-r--r--tools/editor/icons/2x/icon_transpose.pngbin0 -> 266 bytes
-rw-r--r--tools/editor/icons/2x/icon_tree.pngbin0 -> 473 bytes
-rw-r--r--tools/editor/icons/2x/icon_tween.pngbin0 -> 371 bytes
-rw-r--r--tools/editor/icons/2x/icon_unbone.pngbin0 -> 717 bytes
-rw-r--r--tools/editor/icons/2x/icon_ungroup.pngbin0 -> 356 bytes
-rw-r--r--tools/editor/icons/2x/icon_unlock.pngbin0 -> 444 bytes
-rw-r--r--tools/editor/icons/2x/icon_uv.pngbin0 -> 558 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_box_container.pngbin0 -> 383 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_button_array.pngbin0 -> 287 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_scroll_bar.pngbin0 -> 384 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_separator.pngbin0 -> 210 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_slider.pngbin0 -> 447 bytes
-rw-r--r--tools/editor/icons/2x/icon_v_split_container.pngbin0 -> 481 bytes
-rw-r--r--tools/editor/icons/2x/icon_vector.pngbin0 -> 326 bytes
-rw-r--r--tools/editor/icons/2x/icon_vector2.pngbin0 -> 197 bytes
-rw-r--r--tools/editor/icons/2x/icon_vehicle_body.pngbin0 -> 466 bytes
-rw-r--r--tools/editor/icons/2x/icon_vehicle_wheel.pngbin0 -> 1325 bytes
-rw-r--r--tools/editor/icons/2x/icon_video_player.pngbin0 -> 557 bytes
-rw-r--r--tools/editor/icons/2x/icon_viewport.pngbin0 -> 405 bytes
-rw-r--r--tools/editor/icons/2x/icon_viewport_sprite.pngbin0 -> 460 bytes
-rw-r--r--tools/editor/icons/2x/icon_visibility_enabler.pngbin0 -> 1162 bytes
-rw-r--r--tools/editor/icons/2x/icon_visibility_enabler_2d.pngbin0 -> 1170 bytes
-rw-r--r--tools/editor/icons/2x/icon_visibility_notifier.pngbin0 -> 888 bytes
-rw-r--r--tools/editor/icons/2x/icon_visibility_notifier_2d.pngbin0 -> 900 bytes
-rw-r--r--tools/editor/icons/2x/icon_visible.pngbin0 -> 1050 bytes
-rw-r--r--tools/editor/icons/2x/icon_vu_empty.pngbin0 -> 508 bytes
-rw-r--r--tools/editor/icons/2x/icon_vu_full.pngbin0 -> 411 bytes
-rw-r--r--tools/editor/icons/2x/icon_warning.pngbin0 -> 160 bytes
-rw-r--r--tools/editor/icons/2x/icon_window_dialog.pngbin0 -> 367 bytes
-rw-r--r--tools/editor/icons/2x/icon_world_environment.pngbin0 -> 1435 bytes
-rw-r--r--tools/editor/icons/2x/icon_y_sort.pngbin0 -> 349 bytes
-rw-r--r--tools/editor/icons/2x/icon_zoom.pngbin0 -> 818 bytes
-rw-r--r--tools/editor/icons/SCsub5
-rw-r--r--tools/editor/icons/icon_accept_dialog.pngbin419 -> 392 bytes
-rw-r--r--tools/editor/icons/icon_add.pngbin351 -> 185 bytes
-rw-r--r--tools/editor/icons/icon_add_track.pngbin165 -> 185 bytes
-rw-r--r--tools/editor/icons/icon_anchor.pngbin428 -> 497 bytes
-rw-r--r--tools/editor/icons/icon_animated_sprite.pngbin760 -> 640 bytes
-rw-r--r--tools/editor/icons/icon_animated_sprite_3d.pngbin753 -> 608 bytes
-rw-r--r--tools/editor/icons/icon_animation.pngbin595 -> 456 bytes
-rw-r--r--tools/editor/icons/icon_animation_player.pngbin273 -> 209 bytes
-rw-r--r--tools/editor/icons/icon_animation_tree.pngbin518 -> 335 bytes
-rw-r--r--tools/editor/icons/icon_animation_tree_player.pngbin518 -> 335 bytes
-rw-r--r--tools/editor/icons/icon_area.pngbin246 -> 252 bytes
-rw-r--r--tools/editor/icons/icon_area_2d.pngbin240 -> 238 bytes
-rw-r--r--tools/editor/icons/icon_arrow_left.pngbin243 -> 267 bytes
-rw-r--r--tools/editor/icons/icon_arrow_right.pngbin263 -> 271 bytes
-rw-r--r--tools/editor/icons/icon_arrow_up.pngbin259 -> 279 bytes
-rw-r--r--tools/editor/icons/icon_atlas_texture.pngbin402 -> 342 bytes
-rw-r--r--tools/editor/icons/icon_audio_stream_gibberish.pngbin406 -> 306 bytes
-rw-r--r--tools/editor/icons/icon_auto_play.pngbin181 -> 431 bytes
-rw-r--r--tools/editor/icons/icon_back.pngbin180 -> 279 bytes
-rw-r--r--tools/editor/icons/icon_back_buffer_copy.pngbin204 -> 214 bytes
-rw-r--r--tools/editor/icons/icon_bake.pngbin374 -> 236 bytes
-rw-r--r--tools/editor/icons/icon_baked_light.pngbin419 -> 236 bytes
-rw-r--r--tools/editor/icons/icon_baked_light_instance.pngbin380 -> 235 bytes
-rw-r--r--tools/editor/icons/icon_bitmap_font.pngbin362 -> 274 bytes
-rw-r--r--tools/editor/icons/icon_blend.pngbin443 -> 634 bytes
-rw-r--r--tools/editor/icons/icon_bone.pngbin297 -> 405 bytes
-rw-r--r--tools/editor/icons/icon_bone_attachment.pngbin433 -> 389 bytes
-rw-r--r--tools/editor/icons/icon_bone_track.pngbin383 -> 399 bytes
-rw-r--r--tools/editor/icons/icon_bool.pngbin164 -> 210 bytes
-rw-r--r--tools/editor/icons/icon_box_shape.pngbin540 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_button.pngbin516 -> 219 bytes
-rw-r--r--tools/editor/icons/icon_button_group.pngbin0 -> 221 bytes
-rw-r--r--tools/editor/icons/icon_camera.pngbin539 -> 281 bytes
-rw-r--r--tools/editor/icons/icon_camera_2d.pngbin397 -> 285 bytes
-rw-r--r--tools/editor/icons/icon_canvas_item.pngbin434 -> 467 bytes
-rw-r--r--tools/editor/icons/icon_canvas_item_material.pngbin835 -> 406 bytes
-rw-r--r--tools/editor/icons/icon_canvas_item_shader.pngbin568 -> 471 bytes
-rw-r--r--tools/editor/icons/icon_canvas_item_shader_graph.pngbin575 -> 496 bytes
-rw-r--r--tools/editor/icons/icon_canvas_layer.pngbin0 -> 534 bytes
-rw-r--r--tools/editor/icons/icon_canvas_modulate.pngbin441 -> 404 bytes
-rw-r--r--tools/editor/icons/icon_capsule_shape.pngbin794 -> 281 bytes
-rw-r--r--tools/editor/icons/icon_center_container.pngbin259 -> 350 bytes
-rw-r--r--tools/editor/icons/icon_check_box.pngbin344 -> 460 bytes
-rw-r--r--tools/editor/icons/icon_check_button.pngbin420 -> 339 bytes
-rw-r--r--tools/editor/icons/icon_checkerboard.pngbin0 -> 253 bytes
-rw-r--r--tools/editor/icons/icon_class_list.pngbin241 -> 213 bytes
-rw-r--r--tools/editor/icons/icon_close.pngbin398 -> 381 bytes
-rw-r--r--tools/editor/icons/icon_collapse.pngbin351 -> 286 bytes
-rw-r--r--tools/editor/icons/icon_collision_2d.pngbin694 -> 337 bytes
-rw-r--r--tools/editor/icons/icon_collision_polygon.pngbin419 -> 343 bytes
-rw-r--r--tools/editor/icons/icon_collision_polygon_2d.pngbin662 -> 337 bytes
-rw-r--r--tools/editor/icons/icon_collision_shape.pngbin562 -> 334 bytes
-rw-r--r--tools/editor/icons/icon_collision_shape_2d.pngbin316 -> 220 bytes
-rw-r--r--tools/editor/icons/icon_color.pngbin301 -> 646 bytes
-rw-r--r--tools/editor/icons/icon_color_pick.pngbin0 -> 472 bytes
-rw-r--r--tools/editor/icons/icon_color_picker.pngbin329 -> 488 bytes
-rw-r--r--tools/editor/icons/icon_color_picker_button.pngbin441 -> 604 bytes
-rw-r--r--tools/editor/icons/icon_color_ramp.pngbin290 -> 278 bytes
-rw-r--r--tools/editor/icons/icon_concave_polygon_shape.pngbin629 -> 505 bytes
-rw-r--r--tools/editor/icons/icon_confirmation_dialog.pngbin491 -> 386 bytes
-rw-r--r--tools/editor/icons/icon_connect.pngbin592 -> 226 bytes
-rw-r--r--tools/editor/icons/icon_connection_and_groups.pngbin0 -> 284 bytes
-rw-r--r--tools/editor/icons/icon_container.pngbin0 -> 244 bytes
-rw-r--r--tools/editor/icons/icon_control.pngbin308 -> 470 bytes
-rw-r--r--tools/editor/icons/icon_control_align_bottom_center.pngbin174 -> 194 bytes
-rw-r--r--tools/editor/icons/icon_control_align_bottom_left.pngbin172 -> 194 bytes
-rw-r--r--tools/editor/icons/icon_control_align_bottom_right.pngbin174 -> 196 bytes
-rw-r--r--tools/editor/icons/icon_control_align_bottom_wide.pngbin174 -> 198 bytes
-rw-r--r--tools/editor/icons/icon_control_align_center.pngbin181 -> 206 bytes
-rw-r--r--tools/editor/icons/icon_control_align_center_left.pngbin172 -> 172 bytes
-rw-r--r--tools/editor/icons/icon_control_align_center_right.pngbin171 -> 173 bytes
-rw-r--r--tools/editor/icons/icon_control_align_left_center.pngbin183 -> 205 bytes
-rw-r--r--tools/editor/icons/icon_control_align_left_wide.pngbin166 -> 185 bytes
-rw-r--r--tools/editor/icons/icon_control_align_right_center.pngbin181 -> 206 bytes
-rw-r--r--tools/editor/icons/icon_control_align_right_wide.pngbin167 -> 185 bytes
-rw-r--r--tools/editor/icons/icon_control_align_top_center.pngbin181 -> 202 bytes
-rw-r--r--tools/editor/icons/icon_control_align_top_left.pngbin176 -> 196 bytes
-rw-r--r--tools/editor/icons/icon_control_align_top_right.pngbin183 -> 205 bytes
-rw-r--r--tools/editor/icons/icon_control_align_top_wide.pngbin179 -> 198 bytes
-rw-r--r--tools/editor/icons/icon_control_align_wide.pngbin165 -> 184 bytes
-rw-r--r--tools/editor/icons/icon_control_hcenter_wide.pngbin182 -> 204 bytes
-rw-r--r--tools/editor/icons/icon_control_vcenter_wide.pngbin171 -> 190 bytes
-rw-r--r--tools/editor/icons/icon_convex_polygon_shape.pngbin602 -> 460 bytes
-rw-r--r--tools/editor/icons/icon_create_new_scene_from.pngbin588 -> 378 bytes
-rw-r--r--tools/editor/icons/icon_curve_close.pngbin591 -> 407 bytes
-rw-r--r--tools/editor/icons/icon_curve_constant.pngbin222 -> 170 bytes
-rw-r--r--tools/editor/icons/icon_curve_create.pngbin585 -> 431 bytes
-rw-r--r--tools/editor/icons/icon_curve_curve.pngbin561 -> 468 bytes
-rw-r--r--tools/editor/icons/icon_curve_delete.pngbin702 -> 513 bytes
-rw-r--r--tools/editor/icons/icon_curve_edit.pngbin514 -> 544 bytes
-rw-r--r--tools/editor/icons/icon_curve_in.pngbin319 -> 313 bytes
-rw-r--r--tools/editor/icons/icon_curve_in_out.pngbin326 -> 338 bytes
-rw-r--r--tools/editor/icons/icon_curve_linear.pngbin275 -> 275 bytes
-rw-r--r--tools/editor/icons/icon_curve_out.pngbin319 -> 319 bytes
-rw-r--r--tools/editor/icons/icon_curve_out_in.pngbin318 -> 344 bytes
-rw-r--r--tools/editor/icons/icon_damped_spring_joint_2d.pngbin383 -> 372 bytes
-rw-r--r--tools/editor/icons/icon_debug_continue.pngbin325 -> 358 bytes
-rw-r--r--tools/editor/icons/icon_debug_next.pngbin275 -> 276 bytes
-rw-r--r--tools/editor/icons/icon_debug_step.pngbin261 -> 275 bytes
-rw-r--r--tools/editor/icons/icon_dependency_changed.pngbin651 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_dependency_changed_hl.pngbin630 -> 386 bytes
-rw-r--r--tools/editor/icons/icon_dependency_local_changed.pngbin792 -> 627 bytes
-rw-r--r--tools/editor/icons/icon_dependency_local_changed_hl.pngbin769 -> 516 bytes
-rw-r--r--tools/editor/icons/icon_dependency_ok.pngbin685 -> 574 bytes
-rw-r--r--tools/editor/icons/icon_dependency_ok_hl.pngbin674 -> 469 bytes
-rw-r--r--tools/editor/icons/icon_directional_light.pngbin522 -> 482 bytes
-rw-r--r--tools/editor/icons/icon_down.pngbin317 -> 186 bytes
-rw-r--r--tools/editor/icons/icon_duplicate.pngbin327 -> 225 bytes
-rw-r--r--tools/editor/icons/icon_dynamic_font.pngbin414 -> 295 bytes
-rw-r--r--tools/editor/icons/icon_dynamic_font_data.pngbin397 -> 293 bytes
-rw-r--r--tools/editor/icons/icon_edit.pngbin475 -> 402 bytes
-rw-r--r--tools/editor/icons/icon_edit_key.pngbin478 -> 461 bytes
-rw-r--r--tools/editor/icons/icon_edit_pivot.pngbin407 -> 383 bytes
-rw-r--r--tools/editor/icons/icon_edit_resource.pngbin234 -> 288 bytes
-rw-r--r--tools/editor/icons/icon_editor_3d_handle.pngbin778 -> 406 bytes
-rw-r--r--tools/editor/icons/icon_editor_handle.pngbin250 -> 270 bytes
-rw-r--r--tools/editor/icons/icon_editor_pivot.pngbin296 -> 233 bytes
-rw-r--r--tools/editor/icons/icon_editor_plugin.pngbin0 -> 304 bytes
-rw-r--r--tools/editor/icons/icon_enum.pngbin193 -> 179 bytes
-rw-r--r--tools/editor/icons/icon_error.pngbin230 -> 153 bytes
-rw-r--r--tools/editor/icons/icon_error_sign.pngbin1501 -> 311 bytes
-rw-r--r--tools/editor/icons/icon_event_player.pngbin299 -> 198 bytes
-rw-r--r--tools/editor/icons/icon_favorites.pngbin412 -> 441 bytes
-rw-r--r--tools/editor/icons/icon_file.pngbin466 -> 213 bytes
-rw-r--r--tools/editor/icons/icon_file_big.pngbin986 -> 373 bytes
-rw-r--r--tools/editor/icons/icon_file_dialog.pngbin498 -> 276 bytes
-rw-r--r--tools/editor/icons/icon_file_list.pngbin288 -> 179 bytes
-rw-r--r--tools/editor/icons/icon_file_server.pngbin563 -> 201 bytes
-rw-r--r--tools/editor/icons/icon_file_server_active.pngbin632 -> 201 bytes
-rw-r--r--tools/editor/icons/icon_file_thumbnail.pngbin296 -> 172 bytes
-rw-r--r--tools/editor/icons/icon_filesystem.pngbin241 -> 213 bytes
-rw-r--r--tools/editor/icons/icon_fixed_material.pngbin851 -> 433 bytes
-rw-r--r--tools/editor/icons/icon_folder.pngbin428 -> 226 bytes
-rw-r--r--tools/editor/icons/icon_folder_big.pngbin1215 -> 538 bytes
-rw-r--r--tools/editor/icons/icon_font.pngbin248 -> 271 bytes
-rw-r--r--tools/editor/icons/icon_forward.pngbin191 -> 280 bytes
-rw-r--r--tools/editor/icons/icon_g_d_script.pngbin580 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_gizmo_directional_light.pngbin1350 -> 839 bytes
-rw-r--r--tools/editor/icons/icon_gizmo_light.pngbin2719 -> 786 bytes
-rw-r--r--tools/editor/icons/icon_gizmo_spatial_sample_player.pngbin907 -> 367 bytes
-rw-r--r--tools/editor/icons/icon_gizmo_spatial_stream_player.pngbin1193 -> 557 bytes
-rw-r--r--tools/editor/icons/icon_godot.pngbin671 -> 751 bytes
-rw-r--r--tools/editor/icons/icon_graph_color_ramp.pngbin290 -> 278 bytes
-rw-r--r--tools/editor/icons/icon_graph_comment.pngbin310 -> 181 bytes
-rw-r--r--tools/editor/icons/icon_graph_cube_uniform.pngbin652 -> 501 bytes
-rw-r--r--tools/editor/icons/icon_graph_curve_map.pngbin619 -> 386 bytes
-rw-r--r--tools/editor/icons/icon_graph_default_texture.pngbin326 -> 252 bytes
-rw-r--r--tools/editor/icons/icon_graph_edit.pngbin0 -> 508 bytes
-rw-r--r--tools/editor/icons/icon_graph_input.pngbin585 -> 324 bytes
-rw-r--r--tools/editor/icons/icon_graph_node.pngbin0 -> 431 bytes
-rw-r--r--tools/editor/icons/icon_graph_rgb.pngbin174 -> 499 bytes
-rw-r--r--tools/editor/icons/icon_graph_rgb_op.pngbin280 -> 221 bytes
-rw-r--r--tools/editor/icons/icon_graph_rgb_uniform.pngbin419 -> 402 bytes
-rw-r--r--tools/editor/icons/icon_graph_scalar.pngbin328 -> 325 bytes
-rw-r--r--tools/editor/icons/icon_graph_scalar_interp.pngbin352 -> 292 bytes
-rw-r--r--tools/editor/icons/icon_graph_scalar_op.pngbin238 -> 322 bytes
-rw-r--r--tools/editor/icons/icon_graph_scalar_uniform.pngbin392 -> 363 bytes
-rw-r--r--tools/editor/icons/icon_graph_scalars_to_vec.pngbin300 -> 228 bytes
-rw-r--r--tools/editor/icons/icon_graph_texscreen.pngbin578 -> 207 bytes
-rw-r--r--tools/editor/icons/icon_graph_texture_uniform.pngbin358 -> 293 bytes
-rw-r--r--tools/editor/icons/icon_graph_time.pngbin678 -> 454 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_dp.pngbin279 -> 314 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_interp.pngbin332 -> 285 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_length.pngbin303 -> 361 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_op.pngbin256 -> 322 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_scalar_op.pngbin267 -> 355 bytes
-rw-r--r--tools/editor/icons/icon_graph_vec_to_scalars.pngbin306 -> 237 bytes
-rw-r--r--tools/editor/icons/icon_graph_vecs_to_xform.pngbin288 -> 242 bytes
-rw-r--r--tools/editor/icons/icon_graph_vector.pngbin480 -> 401 bytes
-rw-r--r--tools/editor/icons/icon_graph_vector_uniform.pngbin531 -> 446 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform.pngbin262 -> 297 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_mult.pngbin311 -> 279 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_scalar_func.pngbin378 -> 331 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_to_vecs.pngbin272 -> 249 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_uniform.pngbin346 -> 366 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_vec_func.pngbin389 -> 333 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_vec_imult.pngbin430 -> 383 bytes
-rw-r--r--tools/editor/icons/icon_graph_xform_vec_mult.pngbin422 -> 392 bytes
-rw-r--r--tools/editor/icons/icon_grid.pngbin354 -> 221 bytes
-rw-r--r--tools/editor/icons/icon_grid_container.pngbin458 -> 272 bytes
-rw-r--r--tools/editor/icons/icon_grid_map.pngbin159 -> 178 bytes
-rw-r--r--tools/editor/icons/icon_groove_joint_2d.pngbin353 -> 206 bytes
-rw-r--r--tools/editor/icons/icon_group.pngbin357 -> 462 bytes
-rw-r--r--tools/editor/icons/icon_groups.pngbin507 -> 250 bytes
-rw-r--r--tools/editor/icons/icon_h_box_container.pngbin357 -> 257 bytes
-rw-r--r--tools/editor/icons/icon_h_button_array.pngbin403 -> 219 bytes
-rw-r--r--tools/editor/icons/icon_h_scroll_bar.pngbin348 -> 261 bytes
-rw-r--r--tools/editor/icons/icon_h_separator.pngbin148 -> 187 bytes
-rw-r--r--tools/editor/icons/icon_h_slider.pngbin358 -> 260 bytes
-rw-r--r--tools/editor/icons/icon_h_split_container.pngbin256 -> 315 bytes
-rw-r--r--tools/editor/icons/icon_h_t_t_p_request.pngbin573 -> 210 bytes
-rw-r--r--tools/editor/icons/icon_help.pngbin841 -> 634 bytes
-rw-r--r--tools/editor/icons/icon_hidden.pngbin500 -> 401 bytes
-rw-r--r--tools/editor/icons/icon_history.pngbin572 -> 493 bytes
-rw-r--r--tools/editor/icons/icon_hsize.pngbin182 -> 222 bytes
-rw-r--r--tools/editor/icons/icon_image.pngbin403 -> 319 bytes
-rw-r--r--tools/editor/icons/icon_image_texture.pngbin315 -> 256 bytes
-rw-r--r--tools/editor/icons/icon_immediate_geometry.pngbin363 -> 467 bytes
-rw-r--r--tools/editor/icons/icon_import_check.pngbin382 -> 322 bytes
-rw-r--r--tools/editor/icons/icon_import_fail.pngbin449 -> 401 bytes
-rw-r--r--tools/editor/icons/icon_instance.pngbin446 -> 498 bytes
-rw-r--r--tools/editor/icons/icon_instance_options.pngbin483 -> 421 bytes
-rw-r--r--tools/editor/icons/icon_integer.pngbin162 -> 182 bytes
-rw-r--r--tools/editor/icons/icon_interp_cubic.pngbin340 -> 337 bytes
-rw-r--r--tools/editor/icons/icon_interp_linear.pngbin134 -> 327 bytes
-rw-r--r--tools/editor/icons/icon_interp_raw.pngbin127 -> 212 bytes
-rw-r--r--tools/editor/icons/icon_inverse_kinematics.pngbin0 -> 318 bytes
-rw-r--r--tools/editor/icons/icon_item_list.pngbin341 -> 272 bytes
-rw-r--r--tools/editor/icons/icon_joy_axis.pngbin395 -> 316 bytes
-rw-r--r--tools/editor/icons/icon_joy_button.pngbin443 -> 328 bytes
-rw-r--r--tools/editor/icons/icon_joystick.pngbin666 -> 295 bytes
-rw-r--r--tools/editor/icons/icon_key.pngbin450 -> 341 bytes
-rw-r--r--tools/editor/icons/icon_key_hover.pngbin403 -> 262 bytes
-rw-r--r--tools/editor/icons/icon_key_invalid.pngbin239 -> 261 bytes
-rw-r--r--tools/editor/icons/icon_key_next.pngbin499 -> 358 bytes
-rw-r--r--tools/editor/icons/icon_key_selected.pngbin215 -> 259 bytes
-rw-r--r--tools/editor/icons/icon_key_value.pngbin265 -> 266 bytes
-rw-r--r--tools/editor/icons/icon_key_xform.pngbin265 -> 269 bytes
-rw-r--r--tools/editor/icons/icon_keyboard.pngbin786 -> 355 bytes
-rw-r--r--tools/editor/icons/icon_kinematic_body.pngbin474 -> 201 bytes
-rw-r--r--tools/editor/icons/icon_kinematic_body_2d.pngbin475 -> 203 bytes
-rw-r--r--tools/editor/icons/icon_label.pngbin182 -> 296 bytes
-rw-r--r--tools/editor/icons/icon_light_2d.pngbin342 -> 418 bytes
-rw-r--r--tools/editor/icons/icon_light_occluder_2d.pngbin516 -> 202 bytes
-rw-r--r--tools/editor/icons/icon_line_edit.pngbin284 -> 257 bytes
-rw-r--r--tools/editor/icons/icon_link_button.pngbin376 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_list_select.pngbin470 -> 405 bytes
-rw-r--r--tools/editor/icons/icon_load.pngbin428 -> 226 bytes
-rw-r--r--tools/editor/icons/icon_lock.pngbin362 -> 327 bytes
-rw-r--r--tools/editor/icons/icon_loop.pngbin366 -> 468 bytes
-rw-r--r--tools/editor/icons/icon_main_play.pngbin311 -> 290 bytes
-rw-r--r--tools/editor/icons/icon_main_stop.pngbin263 -> 200 bytes
-rw-r--r--tools/editor/icons/icon_margin_container.pngbin294 -> 289 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_cube.pngbin0 -> 430 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_cube_off.pngbin0 -> 457 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_light_1.pngbin0 -> 415 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_light_1_off.pngbin0 -> 361 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_light_2.pngbin0 -> 410 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_light_2_off.pngbin0 -> 499 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_sphere.pngbin0 -> 415 bytes
-rw-r--r--tools/editor/icons/icon_material_preview_sphere_off.pngbin0 -> 339 bytes
-rw-r--r--tools/editor/icons/icon_material_shader.pngbin844 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_material_shader_graph.pngbin949 -> 496 bytes
-rw-r--r--tools/editor/icons/icon_matrix.pngbin382 -> 194 bytes
-rw-r--r--tools/editor/icons/icon_menu_button.pngbin531 -> 269 bytes
-rw-r--r--tools/editor/icons/icon_mesh.pngbin707 -> 399 bytes
-rw-r--r--tools/editor/icons/icon_mesh_instance.pngbin740 -> 370 bytes
-rw-r--r--tools/editor/icons/icon_mirror_x.pngbin187 -> 222 bytes
-rw-r--r--tools/editor/icons/icon_mirror_y.pngbin215 -> 224 bytes
-rw-r--r--tools/editor/icons/icon_mouse.pngbin678 -> 312 bytes
-rw-r--r--tools/editor/icons/icon_move_down.pngbin239 -> 324 bytes
-rw-r--r--tools/editor/icons/icon_move_point.pngbin315 -> 600 bytes
-rw-r--r--tools/editor/icons/icon_move_up.pngbin225 -> 325 bytes
-rw-r--r--tools/editor/icons/icon_multi_edit.pngbin576 -> 414 bytes
-rw-r--r--tools/editor/icons/icon_multi_line.pngbin186 -> 196 bytes
-rw-r--r--tools/editor/icons/icon_multi_mesh.pngbin457 -> 403 bytes
-rw-r--r--tools/editor/icons/icon_multi_mesh_instance.pngbin461 -> 432 bytes
-rw-r--r--tools/editor/icons/icon_multi_node_edit.pngbin576 -> 414 bytes
-rw-r--r--tools/editor/icons/icon_navigation.pngbin598 -> 400 bytes
-rw-r--r--tools/editor/icons/icon_navigation_2d.pngbin541 -> 419 bytes
-rw-r--r--tools/editor/icons/icon_navigation_mesh_instance.pngbin455 -> 536 bytes
-rw-r--r--tools/editor/icons/icon_navigation_polygon_instance.pngbin391 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_new.pngbin298 -> 213 bytes
-rw-r--r--tools/editor/icons/icon_node.pngbin257 -> 459 bytes
-rw-r--r--tools/editor/icons/icon_node_2d.pngbin255 -> 483 bytes
-rw-r--r--tools/editor/icons/icon_node_warning.pngbin0 -> 380 bytes
-rw-r--r--tools/editor/icons/icon_non_favorite.pngbin469 -> 531 bytes
-rw-r--r--tools/editor/icons/icon_object.pngbin781 -> 496 bytes
-rw-r--r--tools/editor/icons/icon_occluder_polygon_2d.pngbin581 -> 330 bytes
-rw-r--r--tools/editor/icons/icon_omni_light.pngbin452 -> 403 bytes
-rw-r--r--tools/editor/icons/icon_option_button.pngbin367 -> 274 bytes
-rw-r--r--tools/editor/icons/icon_p_hash_translation.pngbin234 -> 250 bytes
-rw-r--r--tools/editor/icons/icon_packed_scene.pngbin485 -> 345 bytes
-rw-r--r--tools/editor/icons/icon_panel.pngbin178 -> 231 bytes
-rw-r--r--tools/editor/icons/icon_panel_container.pngbin0 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_panels_1.pngbin154 -> 160 bytes
-rw-r--r--tools/editor/icons/icon_panels_2.pngbin157 -> 164 bytes
-rw-r--r--tools/editor/icons/icon_panels_2_alt.pngbin156 -> 172 bytes
-rw-r--r--tools/editor/icons/icon_panels_3.pngbin166 -> 179 bytes
-rw-r--r--tools/editor/icons/icon_panels_3_alt.pngbin167 -> 186 bytes
-rw-r--r--tools/editor/icons/icon_panels_4.pngbin159 -> 176 bytes
-rw-r--r--tools/editor/icons/icon_parallax_background.pngbin0 -> 274 bytes
-rw-r--r--tools/editor/icons/icon_parallax_layer.pngbin0 -> 338 bytes
-rw-r--r--tools/editor/icons/icon_particle_attractor_2d.pngbin574 -> 685 bytes
-rw-r--r--tools/editor/icons/icon_particles.pngbin464 -> 426 bytes
-rw-r--r--tools/editor/icons/icon_particles_2d.pngbin351 -> 447 bytes
-rw-r--r--tools/editor/icons/icon_patch_9_frame.pngbin431 -> 184 bytes
-rw-r--r--tools/editor/icons/icon_path.pngbin388 -> 409 bytes
-rw-r--r--tools/editor/icons/icon_path_2d.pngbin309 -> 415 bytes
-rw-r--r--tools/editor/icons/icon_path_follow.pngbin417 -> 443 bytes
-rw-r--r--tools/editor/icons/icon_path_follow_2d.pngbin332 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_pause.pngbin228 -> 203 bytes
-rw-r--r--tools/editor/icons/icon_pin.pngbin428 -> 283 bytes
-rw-r--r--tools/editor/icons/icon_pin_joint.pngbin334 -> 474 bytes
-rw-r--r--tools/editor/icons/icon_pin_joint_2d.pngbin427 -> 484 bytes
-rw-r--r--tools/editor/icons/icon_pin_pressed.pngbin346 -> 283 bytes
-rw-r--r--tools/editor/icons/icon_plane.pngbin368 -> 291 bytes
-rw-r--r--tools/editor/icons/icon_plane_shape.pngbin613 -> 285 bytes
-rw-r--r--tools/editor/icons/icon_play.pngbin260 -> 293 bytes
-rw-r--r--tools/editor/icons/icon_play_backwards.pngbin256 -> 301 bytes
-rw-r--r--tools/editor/icons/icon_play_custom.pngbin500 -> 338 bytes
-rw-r--r--tools/editor/icons/icon_play_scene.pngbin600 -> 406 bytes
-rw-r--r--tools/editor/icons/icon_play_start.pngbin282 -> 325 bytes
-rw-r--r--tools/editor/icons/icon_play_start_backwards.pngbin289 -> 335 bytes
-rw-r--r--tools/editor/icons/icon_polygon_2d.pngbin405 -> 337 bytes
-rw-r--r--tools/editor/icons/icon_popup.pngbin405 -> 266 bytes
-rw-r--r--tools/editor/icons/icon_popup_dialog.pngbin427 -> 277 bytes
-rw-r--r--tools/editor/icons/icon_popup_menu.pngbin237 -> 272 bytes
-rw-r--r--tools/editor/icons/icon_popup_panel.pngbin205 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_portal.pngbin409 -> 508 bytes
-rw-r--r--tools/editor/icons/icon_position_2d.pngbin265 -> 188 bytes
-rw-r--r--tools/editor/icons/icon_position_3d.pngbin276 -> 187 bytes
-rw-r--r--tools/editor/icons/icon_progress_1.pngbin842 -> 524 bytes
-rw-r--r--tools/editor/icons/icon_progress_2.pngbin839 -> 511 bytes
-rw-r--r--tools/editor/icons/icon_progress_3.pngbin844 -> 518 bytes
-rw-r--r--tools/editor/icons/icon_progress_4.pngbin832 -> 531 bytes
-rw-r--r--tools/editor/icons/icon_progress_5.pngbin846 -> 510 bytes
-rw-r--r--tools/editor/icons/icon_progress_6.pngbin843 -> 521 bytes
-rw-r--r--tools/editor/icons/icon_progress_7.pngbin838 -> 517 bytes
-rw-r--r--tools/editor/icons/icon_progress_8.pngbin832 -> 519 bytes
-rw-r--r--tools/editor/icons/icon_progress_bar.pngbin422 -> 264 bytes
-rw-r--r--tools/editor/icons/icon_proximity_group.pngbin171 -> 279 bytes
-rw-r--r--tools/editor/icons/icon_quad.pngbin346 -> 307 bytes
-rw-r--r--tools/editor/icons/icon_quat.pngbin239 -> 397 bytes
-rw-r--r--tools/editor/icons/icon_range.pngbin0 -> 207 bytes
-rw-r--r--tools/editor/icons/icon_ray_cast.pngbin214 -> 272 bytes
-rw-r--r--tools/editor/icons/icon_ray_cast_2d.pngbin216 -> 270 bytes
-rw-r--r--tools/editor/icons/icon_ray_shape.pngbin423 -> 419 bytes
-rw-r--r--tools/editor/icons/icon_rayito.pngbin256 -> 356 bytes
-rw-r--r--tools/editor/icons/icon_real.pngbin162 -> 321 bytes
-rw-r--r--tools/editor/icons/icon_reference_frame.pngbin182 -> 184 bytes
-rw-r--r--tools/editor/icons/icon_region_edit.pngbin171 -> 197 bytes
-rw-r--r--tools/editor/icons/icon_reload.pngbin519 -> 476 bytes
-rw-r--r--tools/editor/icons/icon_reload_small.pngbin447 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_remote.pngbin707 -> 450 bytes
-rw-r--r--tools/editor/icons/icon_remote_transform_2d.pngbin640 -> 608 bytes
-rw-r--r--tools/editor/icons/icon_remove.pngbin519 -> 240 bytes
-rw-r--r--tools/editor/icons/icon_rename.pngbin269 -> 216 bytes
-rw-r--r--tools/editor/icons/icon_reparent.pngbin474 -> 376 bytes
-rw-r--r--tools/editor/icons/icon_resource_preloader.pngbin716 -> 447 bytes
-rw-r--r--tools/editor/icons/icon_rich_text_label.pngbin284 -> 292 bytes
-rw-r--r--tools/editor/icons/icon_rigid_body.pngbin719 -> 587 bytes
-rw-r--r--tools/editor/icons/icon_rigid_body_2d.pngbin484 -> 615 bytes
-rw-r--r--tools/editor/icons/icon_room.pngbin337 -> 389 bytes
-rw-r--r--tools/editor/icons/icon_rotate_0.pngbin207 -> 492 bytes
-rw-r--r--tools/editor/icons/icon_rotate_180.pngbin303 -> 432 bytes
-rw-r--r--tools/editor/icons/icon_rotate_270.pngbin343 -> 413 bytes
-rw-r--r--tools/editor/icons/icon_rotate_90.pngbin256 -> 468 bytes
-rw-r--r--tools/editor/icons/icon_sample.pngbin436 -> 208 bytes
-rw-r--r--tools/editor/icons/icon_sample_player.pngbin415 -> 290 bytes
-rw-r--r--tools/editor/icons/icon_sample_player_2d.pngbin447 -> 308 bytes
-rw-r--r--tools/editor/icons/icon_save.pngbin473 -> 308 bytes
-rw-r--r--tools/editor/icons/icon_script.pngbin272 -> 318 bytes
-rw-r--r--tools/editor/icons/icon_scroll_bar.pngbin422 -> 261 bytes
-rw-r--r--tools/editor/icons/icon_scroll_container.pngbin310 -> 360 bytes
-rw-r--r--tools/editor/icons/icon_shader.pngbin820 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_shader_material.pngbin866 -> 465 bytes
-rw-r--r--tools/editor/icons/icon_signal.pngbin458 -> 302 bytes
-rw-r--r--tools/editor/icons/icon_skeleton.pngbin549 -> 402 bytes
-rw-r--r--tools/editor/icons/icon_slider_joint.pngbin283 -> 206 bytes
-rw-r--r--tools/editor/icons/icon_slot.pngbin526 -> 302 bytes
-rw-r--r--tools/editor/icons/icon_snap.pngbin477 -> 378 bytes
-rw-r--r--tools/editor/icons/icon_sound_room_params.pngbin534 -> 304 bytes
-rw-r--r--tools/editor/icons/icon_spatial.pngbin319 -> 475 bytes
-rw-r--r--tools/editor/icons/icon_spatial_sample_player.pngbin642 -> 295 bytes
-rw-r--r--tools/editor/icons/icon_spatial_stream_player.pngbin461 -> 239 bytes
-rw-r--r--tools/editor/icons/icon_sphere_shape.pngbin801 -> 418 bytes
-rw-r--r--tools/editor/icons/icon_spin_box.pngbin427 -> 345 bytes
-rw-r--r--tools/editor/icons/icon_spot_light.pngbin493 -> 415 bytes
-rw-r--r--tools/editor/icons/icon_sprite.pngbin630 -> 475 bytes
-rw-r--r--tools/editor/icons/icon_sprite_3d.pngbin604 -> 464 bytes
-rw-r--r--tools/editor/icons/icon_static_body.pngbin538 -> 285 bytes
-rw-r--r--tools/editor/icons/icon_static_body_2d.pngbin390 -> 293 bytes
-rw-r--r--tools/editor/icons/icon_stream_player.pngbin327 -> 239 bytes
-rw-r--r--tools/editor/icons/icon_string.pngbin136 -> 216 bytes
-rw-r--r--tools/editor/icons/icon_tab_container.pngbin434 -> 271 bytes
-rw-r--r--tools/editor/icons/icon_tabs.pngbin0 -> 203 bytes
-rw-r--r--tools/editor/icons/icon_test_cube.pngbin675 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_text_edit.pngbin346 -> 263 bytes
-rw-r--r--tools/editor/icons/icon_texture.pngbin292 -> 256 bytes
-rw-r--r--tools/editor/icons/icon_texture_button.pngbin434 -> 215 bytes
-rw-r--r--tools/editor/icons/icon_texture_frame.pngbin577 -> 214 bytes
-rw-r--r--tools/editor/icons/icon_texture_progress.pngbin422 -> 269 bytes
-rw-r--r--tools/editor/icons/icon_tile_map.pngbin162 -> 169 bytes
-rw-r--r--tools/editor/icons/icon_timer.pngbin551 -> 503 bytes
-rw-r--r--tools/editor/icons/icon_tool_move.pngbin275 -> 273 bytes
-rw-r--r--tools/editor/icons/icon_tool_pan.pngbin1654 -> 337 bytes
-rw-r--r--tools/editor/icons/icon_tool_rotate.pngbin567 -> 476 bytes
-rw-r--r--tools/editor/icons/icon_tool_scale.pngbin366 -> 405 bytes
-rw-r--r--tools/editor/icons/icon_tool_select.pngbin311 -> 432 bytes
-rw-r--r--tools/editor/icons/icon_tools.pngbin589 -> 448 bytes
-rw-r--r--tools/editor/icons/icon_touch_screen_button.pngbin434 -> 369 bytes
-rw-r--r--tools/editor/icons/icon_track_add_key.pngbin347 -> 169 bytes
-rw-r--r--tools/editor/icons/icon_track_add_key_hl.pngbin331 -> 169 bytes
-rw-r--r--tools/editor/icons/icon_track_continuous.pngbin231 -> 321 bytes
-rw-r--r--tools/editor/icons/icon_track_discrete.pngbin118 -> 181 bytes
-rw-r--r--tools/editor/icons/icon_translation.pngbin241 -> 250 bytes
-rw-r--r--tools/editor/icons/icon_transpose.pngbin244 -> 221 bytes
-rw-r--r--tools/editor/icons/icon_tree.pngbin325 -> 299 bytes
-rw-r--r--tools/editor/icons/icon_tween.pngbin0 -> 304 bytes
-rw-r--r--tools/editor/icons/icon_unbone.pngbin303 -> 439 bytes
-rw-r--r--tools/editor/icons/icon_ungroup.pngbin478 -> 232 bytes
-rw-r--r--tools/editor/icons/icon_unlock.pngbin337 -> 318 bytes
-rw-r--r--tools/editor/icons/icon_up.pngbin327 -> 185 bytes
-rw-r--r--tools/editor/icons/icon_uv.pngbin343 -> 338 bytes
-rw-r--r--tools/editor/icons/icon_v_box_container.pngbin357 -> 263 bytes
-rw-r--r--tools/editor/icons/icon_v_button_array.pngbin315 -> 203 bytes
-rw-r--r--tools/editor/icons/icon_v_scroll_bar.pngbin336 -> 274 bytes
-rw-r--r--tools/editor/icons/icon_v_separator.pngbin147 -> 186 bytes
-rw-r--r--tools/editor/icons/icon_v_slider.pngbin389 -> 287 bytes
-rw-r--r--tools/editor/icons/icon_v_split_container.pngbin240 -> 333 bytes
-rw-r--r--tools/editor/icons/icon_vector.pngbin183 -> 264 bytes
-rw-r--r--tools/editor/icons/icon_vector2.pngbin172 -> 178 bytes
-rw-r--r--tools/editor/icons/icon_vehicle_body.pngbin443 -> 292 bytes
-rw-r--r--tools/editor/icons/icon_vehicle_wheel.pngbin528 -> 593 bytes
-rw-r--r--tools/editor/icons/icon_video_player.pngbin442 -> 358 bytes
-rw-r--r--tools/editor/icons/icon_viewport.pngbin287 -> 254 bytes
-rw-r--r--tools/editor/icons/icon_viewport_sprite.pngbin0 -> 287 bytes
-rw-r--r--tools/editor/icons/icon_visibility_enabler.pngbin630 -> 605 bytes
-rw-r--r--tools/editor/icons/icon_visibility_enabler_2d.pngbin575 -> 606 bytes
-rw-r--r--tools/editor/icons/icon_visibility_notifier.pngbin601 -> 483 bytes
-rw-r--r--tools/editor/icons/icon_visibility_notifier_2d.pngbin542 -> 487 bytes
-rw-r--r--tools/editor/icons/icon_visible.pngbin502 -> 553 bytes
-rw-r--r--tools/editor/icons/icon_vu_empty.pngbin736 -> 343 bytes
-rw-r--r--tools/editor/icons/icon_vu_full.pngbin897 -> 288 bytes
-rw-r--r--tools/editor/icons/icon_warning.pngbin232 -> 153 bytes
-rw-r--r--tools/editor/icons/icon_window_dialog.pngbin295 -> 256 bytes
-rw-r--r--tools/editor/icons/icon_world_environment.pngbin841 -> 604 bytes
-rw-r--r--tools/editor/icons/icon_y_sort.pngbin392 -> 286 bytes
-rw-r--r--tools/editor/icons/icon_zoom.pngbin537 -> 460 bytes
-rw-r--r--tools/editor/icons/source/icon_accept_dialog.svg77
-rw-r--r--tools/editor/icons/source/icon_add_track.svg87
-rw-r--r--tools/editor/icons/source/icon_anchor.svg96
-rw-r--r--tools/editor/icons/source/icon_animated_sprite.svg87
-rw-r--r--tools/editor/icons/source/icon_animated_sprite_3d.svg87
-rw-r--r--tools/editor/icons/source/icon_animation.svg118
-rw-r--r--tools/editor/icons/source/icon_animation_player.svg78
-rw-r--r--tools/editor/icons/source/icon_animation_tree_player.svg77
-rw-r--r--tools/editor/icons/source/icon_area.svg164
-rw-r--r--tools/editor/icons/source/icon_area_2d.svg164
-rw-r--r--tools/editor/icons/source/icon_arrow_left.svg97
-rw-r--r--tools/editor/icons/source/icon_arrow_right.svg77
-rw-r--r--tools/editor/icons/source/icon_arrow_up.svg77
-rw-r--r--tools/editor/icons/source/icon_atlas_texture.svg82
-rw-r--r--tools/editor/icons/source/icon_audio_stream_gibberish.svg83
-rw-r--r--tools/editor/icons/source/icon_auto_play.svg109
-rw-r--r--tools/editor/icons/source/icon_back.svg79
-rw-r--r--tools/editor/icons/source/icon_back_buffer_copy.svg124
-rw-r--r--tools/editor/icons/source/icon_bake.svg92
-rw-r--r--tools/editor/icons/source/icon_baked_light.svg92
-rw-r--r--tools/editor/icons/source/icon_baked_light_instance.svg92
-rw-r--r--tools/editor/icons/source/icon_bitmap_font.svg130
-rw-r--r--tools/editor/icons/source/icon_blend.svg81
-rw-r--r--tools/editor/icons/source/icon_bone.svg78
-rw-r--r--tools/editor/icons/source/icon_bone_attachment.svg78
-rw-r--r--tools/editor/icons/source/icon_bone_track.svg78
-rw-r--r--tools/editor/icons/source/icon_bool.svg77
-rw-r--r--tools/editor/icons/source/icon_box_shape.svg99
-rw-r--r--tools/editor/icons/source/icon_button.svg94
-rw-r--r--tools/editor/icons/source/icon_button_group.svg178
-rw-r--r--tools/editor/icons/source/icon_camera.svg119
-rw-r--r--tools/editor/icons/source/icon_camera_2d.svg119
-rw-r--r--tools/editor/icons/source/icon_canvas_item.svg83
-rw-r--r--tools/editor/icons/source/icon_canvas_item_material.svg150
-rw-r--r--tools/editor/icons/source/icon_canvas_item_shader.svg143
-rw-r--r--tools/editor/icons/source/icon_canvas_item_shader_graph.svg143
-rw-r--r--tools/editor/icons/source/icon_canvas_layer.svg108
-rw-r--r--tools/editor/icons/source/icon_canvas_modulate.svg107
-rw-r--r--tools/editor/icons/source/icon_capsule_shape.svg101
-rw-r--r--tools/editor/icons/source/icon_center_container.svg85
-rw-r--r--tools/editor/icons/source/icon_check_box.svg84
-rw-r--r--tools/editor/icons/source/icon_check_button.svg84
-rw-r--r--tools/editor/icons/source/icon_class_list.svg121
-rw-r--r--tools/editor/icons/source/icon_close.svg93
-rw-r--r--tools/editor/icons/source/icon_collapse.svg77
-rw-r--r--tools/editor/icons/source/icon_collision_2d.svg78
-rw-r--r--tools/editor/icons/source/icon_collision_polygon.svg78
-rw-r--r--tools/editor/icons/source/icon_collision_shape.svg89
-rw-r--r--tools/editor/icons/source/icon_collision_shape_2d.svg77
-rw-r--r--tools/editor/icons/source/icon_color.svg268
-rw-r--r--tools/editor/icons/source/icon_color_pick.svg77
-rw-r--r--tools/editor/icons/source/icon_color_picker.svg77
-rw-r--r--tools/editor/icons/source/icon_color_picker_button.svg92
-rw-r--r--tools/editor/icons/source/icon_color_ramp.svg102
-rw-r--r--tools/editor/icons/source/icon_concave_polygon_shape.svg122
-rw-r--r--tools/editor/icons/source/icon_confirmation_dialog.svg77
-rw-r--r--tools/editor/icons/source/icon_connect.svg119
-rw-r--r--tools/editor/icons/source/icon_connection_and_groups.svg164
-rw-r--r--tools/editor/icons/source/icon_container.svg77
-rw-r--r--tools/editor/icons/source/icon_control.svg78
-rw-r--r--tools/editor/icons/source/icon_control_align_bottom_center.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_bottom_left.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_bottom_right.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_bottom_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_center.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_center_left.svg80
-rw-r--r--tools/editor/icons/source/icon_control_align_center_right.svg80
-rw-r--r--tools/editor/icons/source/icon_control_align_left_center.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_left_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_right_center.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_right_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_top_center.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_top_left.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_top_right.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_top_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_align_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_hcenter_wide.svg94
-rw-r--r--tools/editor/icons/source/icon_control_vcenter_wide.svg95
-rw-r--r--tools/editor/icons/source/icon_convex_polygon_shape.svg98
-rw-r--r--tools/editor/icons/source/icon_create_new_scene_from.svg84
-rw-r--r--tools/editor/icons/source/icon_curve_close.svg123
-rw-r--r--tools/editor/icons/source/icon_curve_constant.svg81
-rw-r--r--tools/editor/icons/source/icon_curve_create.svg117
-rw-r--r--tools/editor/icons/source/icon_curve_curve.svg107
-rw-r--r--tools/editor/icons/source/icon_curve_delete.svg107
-rw-r--r--tools/editor/icons/source/icon_curve_edit.svg108
-rw-r--r--tools/editor/icons/source/icon_curve_in.svg79
-rw-r--r--tools/editor/icons/source/icon_curve_in_out.svg79
-rw-r--r--tools/editor/icons/source/icon_curve_linear.svg79
-rw-r--r--tools/editor/icons/source/icon_curve_out.svg79
-rw-r--r--tools/editor/icons/source/icon_curve_out_in.svg79
-rw-r--r--tools/editor/icons/source/icon_damped_spring_joint_2d.svg86
-rw-r--r--tools/editor/icons/source/icon_debug_continue.svg109
-rw-r--r--tools/editor/icons/source/icon_debug_next.svg132
-rw-r--r--tools/editor/icons/source/icon_debug_step.svg140
-rw-r--r--tools/editor/icons/source/icon_dependency_changed.svg82
-rw-r--r--tools/editor/icons/source/icon_dependency_changed_hl.svg92
-rw-r--r--tools/editor/icons/source/icon_dependency_local_changed.svg82
-rw-r--r--tools/editor/icons/source/icon_dependency_local_changed_hl.svg77
-rw-r--r--tools/editor/icons/source/icon_dependency_ok.svg82
-rw-r--r--tools/editor/icons/source/icon_dependency_ok_hl.svg77
-rw-r--r--tools/editor/icons/source/icon_directional_light.svg157
-rw-r--r--tools/editor/icons/source/icon_duplicate.svg92
-rw-r--r--tools/editor/icons/source/icon_dynamic_font.svg82
-rw-r--r--tools/editor/icons/source/icon_dynamic_font_data.svg82
-rw-r--r--tools/editor/icons/source/icon_edit.svg78
-rw-r--r--tools/editor/icons/source/icon_edit_key.svg85
-rw-r--r--tools/editor/icons/source/icon_edit_pivot.svg89
-rw-r--r--tools/editor/icons/source/icon_edit_resource.svg81
-rw-r--r--tools/editor/icons/source/icon_editor_3d_handle.svg84
-rw-r--r--tools/editor/icons/source/icon_editor_handle.svg86
-rw-r--r--tools/editor/icons/source/icon_editor_pivot.svg82
-rw-r--r--tools/editor/icons/source/icon_editor_plugin.svg109
-rw-r--r--tools/editor/icons/source/icon_error.svg80
-rw-r--r--tools/editor/icons/source/icon_error_sign.svg92
-rw-r--r--tools/editor/icons/source/icon_event_player.svg96
-rw-r--r--tools/editor/icons/source/icon_favorites.svg82
-rw-r--r--tools/editor/icons/source/icon_file_big.svg87
-rw-r--r--tools/editor/icons/source/icon_file_dialog.svg77
-rw-r--r--tools/editor/icons/source/icon_file_list.svg114
-rw-r--r--tools/editor/icons/source/icon_file_server.svg91
-rw-r--r--tools/editor/icons/source/icon_file_server_active.svg91
-rw-r--r--tools/editor/icons/source/icon_file_thumbnail.svg100
-rw-r--r--tools/editor/icons/source/icon_fixed_material.svg92
-rw-r--r--tools/editor/icons/source/icon_folder.svg114
-rw-r--r--tools/editor/icons/source/icon_folder_big.svg147
-rw-r--r--tools/editor/icons/source/icon_font.svg130
-rw-r--r--tools/editor/icons/source/icon_forward.svg79
-rw-r--r--tools/editor/icons/source/icon_g_d_script.svg77
-rw-r--r--tools/editor/icons/source/icon_gizmo_directional_light.svg173
-rw-r--r--tools/editor/icons/source/icon_gizmo_light.svg90
-rw-r--r--tools/editor/icons/source/icon_gizmo_spatial_sample_player.svg96
-rw-r--r--tools/editor/icons/source/icon_gizmo_spatial_stream_player.svg81
-rw-r--r--tools/editor/icons/source/icon_godot.svg150
-rw-r--r--tools/editor/icons/source/icon_graph_comment.svg100
-rw-r--r--tools/editor/icons/source/icon_graph_cube_uniform.svg77
-rw-r--r--tools/editor/icons/source/icon_graph_curve_map.svg86
-rw-r--r--tools/editor/icons/source/icon_graph_default_texture.svg80
-rw-r--r--tools/editor/icons/source/icon_graph_edit.svg94
-rw-r--r--tools/editor/icons/source/icon_graph_input.svg81
-rw-r--r--tools/editor/icons/source/icon_graph_node.svg89
-rw-r--r--tools/editor/icons/source/icon_graph_rgb.svg118
-rw-r--r--tools/editor/icons/source/icon_graph_rgb_op.svg119
-rw-r--r--tools/editor/icons/source/icon_graph_rgb_uniform.svg119
-rw-r--r--tools/editor/icons/source/icon_graph_scalar.svg78
-rw-r--r--tools/editor/icons/source/icon_graph_scalar_interp.svg78
-rw-r--r--tools/editor/icons/source/icon_graph_scalar_op.svg103
-rw-r--r--tools/editor/icons/source/icon_graph_scalar_uniform.svg78
-rw-r--r--tools/editor/icons/source/icon_graph_scalars_to_vec.svg94
-rw-r--r--tools/editor/icons/source/icon_graph_texscreen.svg86
-rw-r--r--tools/editor/icons/source/icon_graph_texture_uniform.svg80
-rw-r--r--tools/editor/icons/source/icon_graph_time.svg96
-rw-r--r--tools/editor/icons/source/icon_graph_vec_dp.svg94
-rw-r--r--tools/editor/icons/source/icon_graph_vec_interp.svg78
-rw-r--r--tools/editor/icons/source/icon_graph_vec_length.svg96
-rw-r--r--tools/editor/icons/source/icon_graph_vec_op.svg80
-rw-r--r--tools/editor/icons/source/icon_graph_vec_scalar_op.svg85
-rw-r--r--tools/editor/icons/source/icon_graph_vec_to_scalars.svg94
-rw-r--r--tools/editor/icons/source/icon_graph_vecs_to_xform.svg86
-rw-r--r--tools/editor/icons/source/icon_graph_vector.svg82
-rw-r--r--tools/editor/icons/source/icon_graph_vector_uniform.svg90
-rw-r--r--tools/editor/icons/source/icon_graph_xform.svg123
-rw-r--r--tools/editor/icons/source/icon_graph_xform_mult.svg93
-rw-r--r--tools/editor/icons/source/icon_graph_xform_scalar_func.svg112
-rw-r--r--tools/editor/icons/source/icon_graph_xform_to_vecs.svg86
-rw-r--r--tools/editor/icons/source/icon_graph_xform_uniform.svg80
-rw-r--r--tools/editor/icons/source/icon_graph_xform_vec_func.svg112
-rw-r--r--tools/editor/icons/source/icon_graph_xform_vec_imult.svg94
-rw-r--r--tools/editor/icons/source/icon_graph_xform_vec_mult.svg94
-rw-r--r--tools/editor/icons/source/icon_grid.svg134
-rw-r--r--tools/editor/icons/source/icon_grid_container.svg107
-rw-r--r--tools/editor/icons/source/icon_grid_map.svg135
-rw-r--r--tools/editor/icons/source/icon_groove_joint_2d.svg77
-rw-r--r--tools/editor/icons/source/icon_group.svg78
-rw-r--r--tools/editor/icons/source/icon_groups.svg93
-rw-r--r--tools/editor/icons/source/icon_h_box_container.svg93
-rw-r--r--tools/editor/icons/source/icon_h_button_array.svg97
-rw-r--r--tools/editor/icons/source/icon_h_scroll_bar.svg97
-rw-r--r--tools/editor/icons/source/icon_h_separator.svg94
-rw-r--r--tools/editor/icons/source/icon_h_slider.svg99
-rw-r--r--tools/editor/icons/source/icon_h_split_container.svg96
-rw-r--r--tools/editor/icons/source/icon_h_t_t_p_request.svg149
-rw-r--r--tools/editor/icons/source/icon_help.svg110
-rw-r--r--tools/editor/icons/source/icon_hidden.svg109
-rw-r--r--tools/editor/icons/source/icon_history.svg109
-rw-r--r--tools/editor/icons/source/icon_hsize.svg79
-rw-r--r--tools/editor/icons/source/icon_image.svg86
-rw-r--r--tools/editor/icons/source/icon_image_texture.svg137
-rw-r--r--tools/editor/icons/source/icon_immediate_geometry.svg83
-rw-r--r--tools/editor/icons/source/icon_import_check.svg82
-rw-r--r--tools/editor/icons/source/icon_import_fail.svg81
-rw-r--r--tools/editor/icons/source/icon_instance.svg84
-rw-r--r--tools/editor/icons/source/icon_instance_options.svg84
-rw-r--r--tools/editor/icons/source/icon_integer.svg94
-rw-r--r--tools/editor/icons/source/icon_interp_cubic.svg83
-rw-r--r--tools/editor/icons/source/icon_interp_linear.svg83
-rw-r--r--tools/editor/icons/source/icon_interp_raw.svg83
-rw-r--r--tools/editor/icons/source/icon_invalid_key.svg78
-rw-r--r--tools/editor/icons/source/icon_inverse_kinematics.svg123
-rw-r--r--tools/editor/icons/source/icon_item_list.svg142
-rw-r--r--tools/editor/icons/source/icon_joy_axis.svg94
-rw-r--r--tools/editor/icons/source/icon_joy_button.svg88
-rw-r--r--tools/editor/icons/source/icon_joystick.svg81
-rw-r--r--tools/editor/icons/source/icon_key.svg91
-rw-r--r--tools/editor/icons/source/icon_key_hover.svg77
-rw-r--r--tools/editor/icons/source/icon_key_invalid.svg78
-rw-r--r--tools/editor/icons/source/icon_key_next.svg91
-rw-r--r--tools/editor/icons/source/icon_key_selected.svg77
-rw-r--r--tools/editor/icons/source/icon_key_value.svg77
-rw-r--r--tools/editor/icons/source/icon_key_xform.svg77
-rw-r--r--tools/editor/icons/source/icon_keyboard.svg93
-rw-r--r--tools/editor/icons/source/icon_kinematic_body.svg77
-rw-r--r--tools/editor/icons/source/icon_kinematic_body_2d.svg77
-rw-r--r--tools/editor/icons/source/icon_label.svg81
-rw-r--r--tools/editor/icons/source/icon_light_2d.svg78
-rw-r--r--tools/editor/icons/source/icon_light_occluder_2d.svg122
-rw-r--r--tools/editor/icons/source/icon_line_edit.svg90
-rw-r--r--tools/editor/icons/source/icon_link_button.svg86
-rw-r--r--tools/editor/icons/source/icon_list_select.svg88
-rw-r--r--tools/editor/icons/source/icon_lock.svg102
-rw-r--r--tools/editor/icons/source/icon_loop.svg81
-rw-r--r--tools/editor/icons/source/icon_main_play.svg81
-rw-r--r--tools/editor/icons/source/icon_main_stop.svg81
-rw-r--r--tools/editor/icons/source/icon_margin_container.svg85
-rw-r--r--tools/editor/icons/source/icon_material_preview_cube.svg99
-rw-r--r--tools/editor/icons/source/icon_material_preview_cube_off.svg104
-rw-r--r--tools/editor/icons/source/icon_material_preview_light_1.svg82
-rw-r--r--tools/editor/icons/source/icon_material_preview_light_1_off.svg82
-rw-r--r--tools/editor/icons/source/icon_material_preview_light_2.svg82
-rw-r--r--tools/editor/icons/source/icon_material_preview_light_2_off.svg87
-rw-r--r--tools/editor/icons/source/icon_material_preview_sphere.svg82
-rw-r--r--tools/editor/icons/source/icon_material_preview_sphere_off.svg82
-rw-r--r--tools/editor/icons/source/icon_matrix.svg180
-rw-r--r--tools/editor/icons/source/icon_menu_button.svg83
-rw-r--r--tools/editor/icons/source/icon_mesh.svg78
-rw-r--r--tools/editor/icons/source/icon_mesh_instance.svg132
-rw-r--r--tools/editor/icons/source/icon_mirror_x.svg79
-rw-r--r--tools/editor/icons/source/icon_mirror_y.svg78
-rw-r--r--tools/editor/icons/source/icon_mouse.svg77
-rw-r--r--tools/editor/icons/source/icon_move_down.svg80
-rw-r--r--tools/editor/icons/source/icon_move_point.svg94
-rw-r--r--tools/editor/icons/source/icon_move_up.svg80
-rw-r--r--tools/editor/icons/source/icon_multi_edit.svg99
-rw-r--r--tools/editor/icons/source/icon_multi_line.svg115
-rw-r--r--tools/editor/icons/source/icon_multi_mesh.svg78
-rw-r--r--tools/editor/icons/source/icon_multi_mesh_instance.svg83
-rw-r--r--tools/editor/icons/source/icon_navigation.svg78
-rw-r--r--tools/editor/icons/source/icon_navigation_2d.svg78
-rw-r--r--tools/editor/icons/source/icon_navigation_mesh_instance.svg97
-rw-r--r--tools/editor/icons/source/icon_navigation_polygon_instance.svg82
-rw-r--r--tools/editor/icons/source/icon_new.svg86
-rw-r--r--tools/editor/icons/source/icon_node.svg78
-rw-r--r--tools/editor/icons/source/icon_node_2d.svg78
-rw-r--r--tools/editor/icons/source/icon_node_warning.svg86
-rw-r--r--tools/editor/icons/source/icon_non_favorite.svg82
-rw-r--r--tools/editor/icons/source/icon_object.svg100
-rw-r--r--tools/editor/icons/source/icon_occluder_polygon_2d.svg87
-rw-r--r--tools/editor/icons/source/icon_omni_light.svg78
-rw-r--r--tools/editor/icons/source/icon_option_button.svg90
-rw-r--r--tools/editor/icons/source/icon_packed_scene.svg96
-rw-r--r--tools/editor/icons/source/icon_panel.svg79
-rw-r--r--tools/editor/icons/source/icon_panel_container.svg79
-rw-r--r--tools/editor/icons/source/icon_panels_1.svg80
-rw-r--r--tools/editor/icons/source/icon_panels_2.svg87
-rw-r--r--tools/editor/icons/source/icon_panels_2_alt.svg87
-rw-r--r--tools/editor/icons/source/icon_panels_3.svg94
-rw-r--r--tools/editor/icons/source/icon_panels_3_alt.svg94
-rw-r--r--tools/editor/icons/source/icon_panels_4.svg101
-rw-r--r--tools/editor/icons/source/icon_parallax_background.svg167
-rw-r--r--tools/editor/icons/source/icon_parallax_layer.svg99
-rw-r--r--tools/editor/icons/source/icon_particle_attractor_2d.svg103
-rw-r--r--tools/editor/icons/source/icon_particles.svg120
-rw-r--r--tools/editor/icons/source/icon_particles_2d.svg120
-rw-r--r--tools/editor/icons/source/icon_patch_9_frame.svg130
-rw-r--r--tools/editor/icons/source/icon_path.svg91
-rw-r--r--tools/editor/icons/source/icon_path_2d.svg90
-rw-r--r--tools/editor/icons/source/icon_path_follow.svg89
-rw-r--r--tools/editor/icons/source/icon_path_follow_2d.svg89
-rw-r--r--tools/editor/icons/source/icon_pause.svg104
-rw-r--r--tools/editor/icons/source/icon_pin.svg99
-rw-r--r--tools/editor/icons/source/icon_pin_joint.svg100
-rw-r--r--tools/editor/icons/source/icon_pin_joint_2d.svg100
-rw-r--r--tools/editor/icons/source/icon_pin_pressed.svg99
-rw-r--r--tools/editor/icons/source/icon_plane.svg82
-rw-r--r--tools/editor/icons/source/icon_plane_shape.svg82
-rw-r--r--tools/editor/icons/source/icon_play.svg81
-rw-r--r--tools/editor/icons/source/icon_play_backwards.svg81
-rw-r--r--tools/editor/icons/source/icon_play_custom.svg87
-rw-r--r--tools/editor/icons/source/icon_play_scene.svg99
-rw-r--r--tools/editor/icons/source/icon_play_start.svg101
-rw-r--r--tools/editor/icons/source/icon_play_start_backwards.svg99
-rw-r--r--tools/editor/icons/source/icon_popup.svg77
-rw-r--r--tools/editor/icons/source/icon_popup_dialog.svg77
-rw-r--r--tools/editor/icons/source/icon_popup_menu.svg83
-rw-r--r--tools/editor/icons/source/icon_popup_panel.svg85
-rw-r--r--tools/editor/icons/source/icon_portal.svg78
-rw-r--r--tools/editor/icons/source/icon_position_2d.svg101
-rw-r--r--tools/editor/icons/source/icon_position_3d.svg78
-rw-r--r--tools/editor/icons/source/icon_progress_1.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_2.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_3.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_4.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_5.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_6.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_7.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_8.svg104
-rw-r--r--tools/editor/icons/source/icon_progress_bar.svg104
-rw-r--r--tools/editor/icons/source/icon_proximity_group.svg121
-rw-r--r--tools/editor/icons/source/icon_quad.svg78
-rw-r--r--tools/editor/icons/source/icon_quat.svg82
-rw-r--r--tools/editor/icons/source/icon_range.svg107
-rw-r--r--tools/editor/icons/source/icon_ray_cast.svg85
-rw-r--r--tools/editor/icons/source/icon_ray_cast_2d.svg85
-rw-r--r--tools/editor/icons/source/icon_ray_shape.svg107
-rw-r--r--tools/editor/icons/source/icon_rayito.svg90
-rw-r--r--tools/editor/icons/source/icon_real.svg120
-rw-r--r--tools/editor/icons/source/icon_reference_frame.svg100
-rw-r--r--tools/editor/icons/source/icon_region_edit.svg135
-rw-r--r--tools/editor/icons/source/icon_reload_small.svg95
-rw-r--r--tools/editor/icons/source/icon_remote.svg93
-rw-r--r--tools/editor/icons/source/icon_remote_transform_2d.svg124
-rw-r--r--tools/editor/icons/source/icon_remove.svg91
-rw-r--r--tools/editor/icons/source/icon_rename.svg77
-rw-r--r--tools/editor/icons/source/icon_reparent.svg112
-rw-r--r--tools/editor/icons/source/icon_resource_preloader.svg89
-rw-r--r--tools/editor/icons/source/icon_rich_text_label.svg120
-rw-r--r--tools/editor/icons/source/icon_rigid_body.svg87
-rw-r--r--tools/editor/icons/source/icon_rigid_body_2d.svg124
-rw-r--r--tools/editor/icons/source/icon_room.svg95
-rw-r--r--tools/editor/icons/source/icon_rotate_0.svg84
-rw-r--r--tools/editor/icons/source/icon_rotate_180.svg106
-rw-r--r--tools/editor/icons/source/icon_rotate_270.svg113
-rw-r--r--tools/editor/icons/source/icon_rotate_90.svg99
-rw-r--r--tools/editor/icons/source/icon_sample.svg128
-rw-r--r--tools/editor/icons/source/icon_sample_player.svg78
-rw-r--r--tools/editor/icons/source/icon_sample_player_2d.svg78
-rw-r--r--tools/editor/icons/source/icon_save.svg94
-rw-r--r--tools/editor/icons/source/icon_script.svg90
-rw-r--r--tools/editor/icons/source/icon_scroll_bar.svg97
-rw-r--r--tools/editor/icons/source/icon_scroll_container.svg103
-rw-r--r--tools/editor/icons/source/icon_shader.svg275
-rw-r--r--tools/editor/icons/source/icon_signal.svg118
-rw-r--r--tools/editor/icons/source/icon_skeleton.svg105
-rw-r--r--tools/editor/icons/source/icon_slider_joint.svg77
-rw-r--r--tools/editor/icons/source/icon_slot.svg102
-rw-r--r--tools/editor/icons/source/icon_snap.svg105
-rw-r--r--tools/editor/icons/source/icon_sound_room_params.svg100
-rw-r--r--tools/editor/icons/source/icon_spatial.svg78
-rw-r--r--tools/editor/icons/source/icon_spatial_sample_player.svg78
-rw-r--r--tools/editor/icons/source/icon_spatial_stream_player.svg83
-rw-r--r--tools/editor/icons/source/icon_sphere_shape.svg89
-rw-r--r--tools/editor/icons/source/icon_spin_box.svg100
-rw-r--r--tools/editor/icons/source/icon_spot_light.svg118
-rw-r--r--tools/editor/icons/source/icon_sprite.svg77
-rw-r--r--tools/editor/icons/source/icon_sprite_3d.svg77
-rw-r--r--tools/editor/icons/source/icon_static_body.svg138
-rw-r--r--tools/editor/icons/source/icon_static_body_2d.svg122
-rw-r--r--tools/editor/icons/source/icon_stream_player.svg83
-rw-r--r--tools/editor/icons/source/icon_string.svg77
-rw-r--r--tools/editor/icons/source/icon_tab_container.svg96
-rw-r--r--tools/editor/icons/source/icon_tabs.svg155
-rw-r--r--tools/editor/icons/source/icon_test_cube.svg94
-rw-r--r--tools/editor/icons/source/icon_text_edit.svg102
-rw-r--r--tools/editor/icons/source/icon_texture.svg137
-rw-r--r--tools/editor/icons/source/icon_texture_button.svg94
-rw-r--r--tools/editor/icons/source/icon_texture_frame.svg105
-rw-r--r--tools/editor/icons/source/icon_texture_progress.svg104
-rw-r--r--tools/editor/icons/source/icon_tile_map.svg250
-rw-r--r--tools/editor/icons/source/icon_timer.svg108
-rw-r--r--tools/editor/icons/source/icon_tool_move.svg77
-rw-r--r--tools/editor/icons/source/icon_tool_pan.svg136
-rw-r--r--tools/editor/icons/source/icon_tool_rotate.svg95
-rw-r--r--tools/editor/icons/source/icon_tool_scale.svg77
-rw-r--r--tools/editor/icons/source/icon_tool_select.svg88
-rw-r--r--tools/editor/icons/source/icon_tools.svg77
-rw-r--r--tools/editor/icons/source/icon_touch_screen_button.svg174
-rw-r--r--tools/editor/icons/source/icon_track_add_key.svg77
-rw-r--r--tools/editor/icons/source/icon_track_add_key_hl.svg77
-rw-r--r--tools/editor/icons/source/icon_track_continuous.svg83
-rw-r--r--tools/editor/icons/source/icon_track_discrete.svg95
-rw-r--r--tools/editor/icons/source/icon_translation.svg78
-rw-r--r--tools/editor/icons/source/icon_transpose.svg127
-rw-r--r--tools/editor/icons/source/icon_tree.svg129
-rw-r--r--tools/editor/icons/source/icon_tween.svg98
-rw-r--r--tools/editor/icons/source/icon_unbone.svg78
-rw-r--r--tools/editor/icons/source/icon_ungroup.svg78
-rw-r--r--tools/editor/icons/source/icon_unlock.svg97
-rw-r--r--tools/editor/icons/source/icon_uv.svg80
-rw-r--r--tools/editor/icons/source/icon_v_box_container.svg77
-rw-r--r--tools/editor/icons/source/icon_v_button_array.svg100
-rw-r--r--tools/editor/icons/source/icon_v_scroll_bar.svg98
-rw-r--r--tools/editor/icons/source/icon_v_separator.svg77
-rw-r--r--tools/editor/icons/source/icon_v_slider.svg87
-rw-r--r--tools/editor/icons/source/icon_v_split_container.svg97
-rw-r--r--tools/editor/icons/source/icon_vector.svg87
-rw-r--r--tools/editor/icons/source/icon_vector2.svg81
-rw-r--r--tools/editor/icons/source/icon_vehicle_body.svg90
-rw-r--r--tools/editor/icons/source/icon_vehicle_wheel.svg83
-rw-r--r--tools/editor/icons/source/icon_video_player.svg100
-rw-r--r--tools/editor/icons/source/icon_viewport.svg96
-rw-r--r--tools/editor/icons/source/icon_viewport_sprite.svg117
-rw-r--r--tools/editor/icons/source/icon_visibility_enabler.svg99
-rw-r--r--tools/editor/icons/source/icon_visibility_enabler_2d.svg99
-rw-r--r--tools/editor/icons/source/icon_visibility_notifier.svg96
-rw-r--r--tools/editor/icons/source/icon_visibility_notifier_2d.svg96
-rw-r--r--tools/editor/icons/source/icon_visible.svg87
-rw-r--r--tools/editor/icons/source/icon_vu_empty.svg115
-rw-r--r--tools/editor/icons/source/icon_vu_full.svg110
-rw-r--r--tools/editor/icons/source/icon_warning.svg80
-rw-r--r--tools/editor/icons/source/icon_window_dialog.svg77
-rw-r--r--tools/editor/icons/source/icon_world_environment.svg108
-rw-r--r--tools/editor/icons/source/icon_y_sort.svg99
-rw-r--r--tools/editor/icons/source/icon_zoom.svg87
-rw-r--r--tools/editor/icons/svgs_2_pngs.py76
-rw-r--r--tools/editor/import_settings.cpp4
-rw-r--r--tools/editor/io_plugins/editor_bitmask_import_plugin.cpp357
-rw-r--r--tools/editor/io_plugins/editor_bitmask_import_plugin.h41
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.cpp47
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.h1
-rw-r--r--tools/editor/io_plugins/editor_mesh_import_plugin.cpp47
-rw-r--r--tools/editor/io_plugins/editor_mesh_import_plugin.h1
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.cpp63
-rw-r--r--tools/editor/io_plugins/editor_sample_import_plugin.h3
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.cpp637
-rw-r--r--tools/editor/io_plugins/editor_scene_import_plugin.h18
-rw-r--r--tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp30
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.cpp436
-rw-r--r--tools/editor/io_plugins/editor_texture_import_plugin.h14
-rw-r--r--tools/editor/io_plugins/editor_translation_import_plugin.cpp38
-rw-r--r--tools/editor/io_plugins/editor_translation_import_plugin.h1
-rw-r--r--tools/editor/multi_node_edit.cpp2
-rw-r--r--tools/editor/node_dock.cpp104
-rw-r--r--tools/editor/node_dock.h38
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.cpp26
-rw-r--r--tools/editor/plugins/animation_player_editor_plugin.h2
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/animation_tree_editor_plugin.h2
-rw-r--r--tools/editor/plugins/baked_light_baker.cpp4
-rw-r--r--tools/editor/plugins/canvas_item_editor_plugin.cpp30
-rw-r--r--tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp6
-rw-r--r--tools/editor/plugins/collision_polygon_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/color_ramp_editor_plugin.cpp15
-rw-r--r--tools/editor/plugins/color_ramp_editor_plugin.h2
-rw-r--r--tools/editor/plugins/control_editor_plugin.cpp12
-rw-r--r--tools/editor/plugins/control_editor_plugin.h2
-rw-r--r--tools/editor/plugins/cube_grid_theme_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/editor_preview_plugins.cpp9
-rw-r--r--tools/editor/plugins/item_list_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/light_occluder_2d_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/material_editor_plugin.cpp381
-rw-r--r--tools/editor/plugins/material_editor_plugin.h71
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.cpp349
-rw-r--r--tools/editor/plugins/mesh_editor_plugin.h60
-rw-r--r--tools/editor/plugins/mesh_instance_editor_plugin.cpp300
-rw-r--r--tools/editor/plugins/mesh_instance_editor_plugin.h69
-rw-r--r--tools/editor/plugins/multimesh_editor_plugin.cpp20
-rw-r--r--tools/editor/plugins/navigation_polygon_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/particles_2d_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/particles_editor_plugin.cpp2
-rw-r--r--tools/editor/plugins/path_2d_editor_plugin.cpp10
-rw-r--r--tools/editor/plugins/path_editor_plugin.cpp6
-rw-r--r--tools/editor/plugins/polygon_2d_editor_plugin.cpp6
-rw-r--r--tools/editor/plugins/resource_preloader_editor_plugin.cpp12
-rw-r--r--tools/editor/plugins/rich_text_editor_plugin.cpp4
-rw-r--r--tools/editor/plugins/rich_text_editor_plugin.h2
-rw-r--r--tools/editor/plugins/sample_editor_plugin.cpp9
-rw-r--r--tools/editor/plugins/sample_library_editor_plugin.cpp8
-rw-r--r--tools/editor/plugins/script_editor_plugin.cpp211
-rw-r--r--tools/editor/plugins/script_editor_plugin.h20
-rw-r--r--tools/editor/plugins/shader_editor_plugin.cpp23
-rw-r--r--tools/editor/plugins/shader_editor_plugin.h2
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.cpp243
-rw-r--r--tools/editor/plugins/shader_graph_editor_plugin.h8
-rw-r--r--tools/editor/plugins/spatial_editor_plugin.cpp40
-rw-r--r--tools/editor/plugins/sprite_frames_editor_plugin.cpp16
-rw-r--r--tools/editor/plugins/stream_editor_plugin.h2
-rw-r--r--tools/editor/plugins/texture_editor_plugin.cpp141
-rw-r--r--tools/editor/plugins/texture_editor_plugin.h49
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.cpp (renamed from tools/editor/plugins/sprite_region_editor_plugin.cpp)344
-rw-r--r--tools/editor/plugins/texture_region_editor_plugin.h (renamed from tools/editor/plugins/sprite_region_editor_plugin.h)59
-rw-r--r--tools/editor/plugins/theme_editor_plugin.cpp16
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.cpp30
-rw-r--r--tools/editor/plugins/tile_map_editor_plugin.h4
-rw-r--r--tools/editor/plugins/tile_set_editor_plugin.cpp2
-rw-r--r--tools/editor/progress_dialog.cpp6
-rw-r--r--tools/editor/project_export.cpp52
-rw-r--r--tools/editor/project_manager.cpp39
-rw-r--r--tools/editor/project_settings.cpp170
-rw-r--r--tools/editor/project_settings.h2
-rw-r--r--tools/editor/property_editor.cpp105
-rw-r--r--tools/editor/property_editor.h2
-rw-r--r--tools/editor/pvrtc_compress.cpp6
-rw-r--r--tools/editor/register_exporters.h2
-rw-r--r--tools/editor/reparent_dialog.cpp4
-rw-r--r--tools/editor/run_settings_dialog.cpp2
-rw-r--r--tools/editor/scene_tree_dock.cpp230
-rw-r--r--tools/editor/scene_tree_dock.h12
-rw-r--r--tools/editor/scene_tree_editor.cpp95
-rw-r--r--tools/editor/scene_tree_editor.h8
-rw-r--r--tools/editor/scenes_dock.cpp454
-rw-r--r--tools/editor/scenes_dock.h14
-rw-r--r--tools/editor/script_create_dialog.cpp26
-rw-r--r--tools/editor/script_editor_debugger.cpp953
-rw-r--r--tools/editor/script_editor_debugger.h40
-rw-r--r--tools/editor/settings_config_dialog.cpp208
-rw-r--r--tools/editor/settings_config_dialog.h13
-rw-r--r--tools/editor/spatial_editor_gizmos.cpp16
1402 files changed, 47904 insertions, 2486 deletions
diff --git a/tools/editor/addon_editor_plugin.cpp b/tools/editor/addon_editor_plugin.cpp
index 3b74330c1e..ee0b4b595f 100644
--- a/tools/editor/addon_editor_plugin.cpp
+++ b/tools/editor/addon_editor_plugin.cpp
@@ -1085,7 +1085,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
- search_hb->add_child( memnew( Label(TTR("Search: "))));
+ search_hb->add_child( memnew( Label(TTR("Search:")+" ")));
filter =memnew( LineEdit );
search_hb->add_child(filter);
filter->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -1112,7 +1112,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
HBoxContainer *search_hb2 = memnew( HBoxContainer );
library_main->add_child(search_hb2);
- search_hb2->add_child( memnew( Label("Sort: ")));
+ search_hb2->add_child( memnew( Label(TTR("Sort:")+" ")));
sort = memnew( OptionButton );
for(int i=0;i<SORT_MAX;i++) {
sort->add_item(sort_text[i]);
@@ -1123,26 +1123,26 @@ EditorAddonLibrary::EditorAddonLibrary() {
sort->set_h_size_flags(SIZE_EXPAND_FILL);
reverse = memnew( CheckBox);
- reverse->set_text("Reverse");
+ reverse->set_text(TTR("Reverse"));
search_hb2->add_child(reverse);
search_hb2->add_child(memnew(VSeparator));
//search_hb2->add_spacer();
- search_hb2->add_child( memnew( Label("Category: ")));
+ search_hb2->add_child( memnew( Label(TTR("Category:")+" ")));
categories = memnew( OptionButton );
- categories->add_item("All");
+ categories->add_item(TTR("All"));
search_hb2->add_child(categories);
categories->set_h_size_flags(SIZE_EXPAND_FILL);
//search_hb2->add_spacer();
search_hb2->add_child(memnew(VSeparator));
- search_hb2->add_child( memnew( Label("Site: ")));
+ search_hb2->add_child( memnew( Label(TTR("Site:")+" ")));
repository = memnew( OptionButton );
- repository->add_item(TTR("Godot"));
+ repository->add_item("Godot");
search_hb2->add_child(repository);
repository->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -1232,7 +1232,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
asset_open = memnew( EditorFileDialog );
asset_open->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
- asset_open->add_filter("*.zip ; Assets ZIP File");
+ asset_open->add_filter("*.zip ; "+TTR("Assets ZIP File"));
asset_open->set_mode(EditorFileDialog::MODE_OPEN_FILE);
add_child(asset_open);
asset_open->connect("file_selected",this,"_asset_file_selected");
diff --git a/tools/editor/animation_editor.cpp b/tools/editor/animation_editor.cpp
index f4fda7ba6e..08b90b5408 100644
--- a/tools/editor/animation_editor.cpp
+++ b/tools/editor/animation_editor.cpp
@@ -889,7 +889,7 @@ void AnimationKeyEditor::_menu_track(int p_type) {
case TRACK_MENU_SET_ALL_TRANS_OUTIN: t=-2.0; break;
}
- undo_redo->create_action(TTR("Set Transitions to: ")+rtos(t));
+ undo_redo->create_action(TTR("Set Transitions to:")+" "+rtos(t));
for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) {
@@ -2096,7 +2096,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
/*
if (ofsx < remove_icon->get_width()) {
- undo_redo->create_action(TTR("Remove Anim Track"));
+ undo_redo->create_action("Remove Anim Track");
undo_redo->add_do_method(animation.ptr(),"remove_track",idx);
undo_redo->add_undo_method(animation.ptr(),"add_track",animation->track_get_type(idx),idx);
undo_redo->add_undo_method(animation.ptr(),"track_set_path",idx,animation->track_get_path(idx));
@@ -2129,7 +2129,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (ofsx < move_down_icon->get_width()) {
if (idx < animation->get_track_count() -1) {
- undo_redo->create_action(TTR("Move Anim Track Down"));
+ undo_redo->create_action("Move Anim Track Down");
undo_redo->add_do_method(animation.ptr(),"track_move_up",idx);
undo_redo->add_undo_method(animation.ptr(),"track_move_down",idx+1);
undo_redo->commit_action();
@@ -2142,7 +2142,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (ofsx < move_up_icon->get_width()) {
if (idx >0) {
- undo_redo->create_action(TTR("Move Anim Track Up"));
+ undo_redo->create_action("Move Anim Track Up");
undo_redo->add_do_method(animation.ptr(),"track_move_down",idx);
undo_redo->add_undo_method(animation.ptr(),"track_move_up",idx-1);
undo_redo->commit_action();
@@ -2893,7 +2893,7 @@ void AnimationKeyEditor::_notification(int p_what) {
optimize_dialog->connect("confirmed",this,"_animation_optimize");
menu_track->get_popup()->add_child(tpp);
- //menu_track->get_popup()->add_submenu_item(TTR("Set Transitions.."),"Transitions");
+ //menu_track->get_popup()->add_submenu_item("Set Transitions..","Transitions");
//menu_track->get_popup()->add_separator();
menu_track->get_popup()->add_item(TTR("Optimize Animation"),TRACK_MENU_OPTIMIZE);
menu_track->get_popup()->add_item(TTR("Clean-Up Animation"),TRACK_MENU_CLEAN_UP);
@@ -3113,9 +3113,9 @@ void AnimationKeyEditor::_query_insert(const InsertData& p_id) {
if (bool(EDITOR_DEF("animation/confirm_insert_track",true))) {
//potential new key, does not exist
if (insert_data.size()==1)
- insert_confirm->set_text(TTR("Create NEW track for ")+p_id.query+TTR(" and insert key?"));
+ insert_confirm->set_text(vformat(TTR("Create NEW track for %s and insert key?"),p_id.query));
else
- insert_confirm->set_text(TTR("Create ")+itos(insert_data.size())+TTR(" NEW tracks and insert keys?"));
+ insert_confirm->set_text(vformat(TTR("Create %d NEW tracks and insert keys?"),insert_data.size()));
insert_confirm->get_ok()->set_text(TTR("Create"));
insert_confirm->popup_centered_minsize();
@@ -3510,7 +3510,7 @@ void AnimationKeyEditor::_insert_delay() {
return;
}
- undo_redo->create_action(TTR("Anim Insert"));
+ undo_redo->create_action(TTR("Anim Insert"));
int last_track = animation->get_track_count();
bool advance=false;
@@ -3818,7 +3818,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
hb->add_child( memnew( VSeparator ) );
Label *l = memnew( Label );
- l->set_text(TTR("Len(s):"));
+ l->set_text(TTR("Length (s):"));
hb->add_child(l);
length = memnew( SpinBox );
@@ -3833,7 +3833,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
length->connect("value_changed",this,"_animation_len_changed");
l = memnew( Label );
- l->set_text(TTR("Step(s):"));
+ l->set_text(TTR("Step (s):"));
hb->add_child(l);
step = memnew( SpinBox );
@@ -3929,7 +3929,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
/*keying = memnew( Button );
keying->set_toggle_mode(true);
- //keying->set_text(TTR("Keys"));
+ //keying->set_text("Keys");
keying->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_END,60);
keying->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,10);
keying->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,55);
@@ -3939,7 +3939,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
*/
/* l = memnew( Label );
- l->set_text(TTR("Base: "));
+ l->set_text("Base: ");
l->set_pos(Point2(0,3));
// dr_panel->add_child(l);*/
@@ -4089,10 +4089,10 @@ AnimationKeyEditor::AnimationKeyEditor() {
cleanup_vb->add_child(cleanup_tracks);
cleanup_all = memnew( CheckButton );
- cleanup_all->set_text(TTR("Clean-Up all animations"));
+ cleanup_all->set_text(TTR("Clean-up all animations"));
cleanup_vb->add_child(cleanup_all);
- cleanup_dialog->set_title(TTR("Clean up Animation(s) (NO UNDO!)"));
+ cleanup_dialog->set_title(TTR("Clean-Up Animation(s) (NO UNDO!)"));
cleanup_dialog->get_ok()->set_text(TTR("Clean-Up"));
cleanup_dialog->connect("confirmed",this,"_menu_track",varray(TRACK_MENU_CLEAN_UP_CONFIRM));
diff --git a/tools/editor/call_dialog.cpp b/tools/editor/call_dialog.cpp
index 2ab9a79d3b..0c6c64a33b 100644
--- a/tools/editor/call_dialog.cpp
+++ b/tools/editor/call_dialog.cpp
@@ -239,7 +239,7 @@ void CallDialog::set_object(Object *p_object,StringName p_selected) {
return_value->clear();
_update_method_list();
- method_label->set_text(TTR("Method List For ' ")+p_object->get_type()+" ':");
+ method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_type()));
}
CallDialog::CallDialog() {
@@ -323,7 +323,7 @@ CallDialog::CallDialog() {
label->set_begin( Point2( 15,54) );
label->set_end( Point2( 16,44) );
- label->set_text(TTR("Parameters:"));
+ label->set_text("Parameters:");
add_child(label);
*/
diff --git a/tools/editor/code_editor.cpp b/tools/editor/code_editor.cpp
index 970a0477c1..f62209fafa 100644
--- a/tools/editor/code_editor.cpp
+++ b/tools/editor/code_editor.cpp
@@ -30,6 +30,7 @@
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
#include "scene/gui/separator.h"
+#include "os/keyboard.h"
void GotoLineDialog::popup_find_line(TextEdit *p_edit) {
@@ -76,6 +77,470 @@ GotoLineDialog::GotoLineDialog() {
}
+void FindReplaceBar::_notification(int p_what) {
+
+ if (p_what == NOTIFICATION_READY) {
+
+ find_prev->set_icon(get_icon("MoveUp", "EditorIcons"));
+ find_next->set_icon(get_icon("MoveDown", "EditorIcons"));
+ hide_button->set_normal_texture(get_icon("Close","EditorIcons"));
+ hide_button->set_hover_texture(get_icon("CloseHover","EditorIcons"));
+ hide_button->set_pressed_texture(get_icon("Close","EditorIcons"));
+
+ } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) {
+
+ set_process_unhandled_input(is_visible());
+ }
+}
+
+void FindReplaceBar::_unhandled_input(const InputEvent &p_event) {
+
+ if (p_event.type == InputEvent::KEY) {
+
+ const InputEventKey& k = p_event.key;
+
+ if (k.pressed && (text_edit->has_focus() || text_vbc->is_a_parent_of(get_focus_owner()))) {
+
+ bool accepted = true;
+
+ switch (k.scancode) {
+
+ case KEY_ESCAPE: {
+
+ _hide_bar();
+ } break;
+ default: {
+
+ accepted = false;
+ } break;
+ }
+
+ if (accepted) {
+ accept_event();
+ }
+ }
+ }
+}
+
+bool FindReplaceBar::_search(uint32_t p_flags, int p_from_line, int p_from_col) {
+
+ int line, col;
+ String text=get_search_text();
+
+ bool found=text_edit->search(text,p_flags,p_from_line,p_from_col,line,col);
+
+ if (found) {
+ if (!preserve_cursor) {
+ text_edit->cursor_set_line(line);
+ text_edit->cursor_set_column(col+text.length());
+ }
+
+ text_edit->set_search_text(text);
+ text_edit->set_search_flags(p_flags);
+ text_edit->set_current_search_result(line,col);
+
+ result_line=line;
+ result_col=col;
+
+ set_error("");
+ } else {
+ result_line=-1;
+ result_col=-1;
+ text_edit->set_search_text("");
+ set_error(text.empty()?"":TTR("No Matches"));
+ }
+
+ return found;
+}
+
+void FindReplaceBar::_replace() {
+
+ if (result_line!=-1 && result_col!=-1) {
+ text_edit->begin_complex_operation();
+
+ text_edit->select(result_line,result_col,result_line,result_col+get_search_text().length());
+ text_edit->insert_text_at_cursor(get_replace_text());
+
+ text_edit->end_complex_operation();
+ }
+
+ search_current();
+}
+
+void FindReplaceBar::_replace_all() {
+
+ // line as x so it gets priority in comparison, column as y
+ Point2i orig_cursor(text_edit->cursor_get_line(),text_edit->cursor_get_column());
+ Point2i prev_match=Point2(-1,-1);
+
+ bool selection_enabled = text_edit->is_selection_active();
+ Point2i selection_begin,selection_end;
+ if (selection_enabled) {
+ selection_begin=Point2i(text_edit->get_selection_from_line(),text_edit->get_selection_from_column());
+ selection_end=Point2i(text_edit->get_selection_to_line(),text_edit->get_selection_to_column());
+ }
+
+ int vsval = text_edit->get_v_scroll();
+
+ text_edit->cursor_set_line(0);
+ text_edit->cursor_set_column(0);
+
+ int search_text_len=get_search_text().length();
+ int rc=0;
+
+ replace_all_mode = true;
+
+ text_edit->begin_complex_operation();
+
+ while (search_next()) {
+
+ // replace area
+ Point2i match_from(result_line,result_col);
+ Point2i match_to(result_line,result_col+search_text_len);
+
+ if (match_from < prev_match)
+ break; // done
+
+ prev_match=match_to;
+
+ text_edit->select(result_line,result_col,result_line,match_to.y);
+
+ if (selection_enabled && is_selection_only()) {
+
+ if (match_from<selection_begin || match_to>selection_end)
+ continue;
+
+ // replace but adjust selection bounds
+ text_edit->insert_text_at_cursor(get_replace_text());
+ if (match_to.x==selection_end.x)
+ selection_end.y+=get_replace_text().length() - get_search_text().length();
+ } else {
+ // just replace
+ text_edit->insert_text_at_cursor(get_replace_text());
+ }
+
+ rc++;
+ }
+
+ text_edit->end_complex_operation();
+
+ replace_all_mode = false;
+
+ // restore editor state (selection, cursor, scroll)
+ text_edit->cursor_set_line(orig_cursor.x);
+ text_edit->cursor_set_column(orig_cursor.y);
+
+ if (selection_enabled && is_selection_only()) {
+ // reselect
+ text_edit->select(selection_begin.x,selection_begin.y,selection_end.x,selection_end.y);
+ } else {
+ text_edit->deselect();
+ }
+
+ text_edit->set_v_scroll(vsval);
+ set_error(vformat(TTR("Replaced %d Ocurrence(s)."), rc));
+}
+
+void FindReplaceBar::_get_search_from(int& r_line, int& r_col) {
+
+ r_line=text_edit->cursor_get_line();
+ r_col=text_edit->cursor_get_column();
+
+ if (text_edit->is_selection_active() && !replace_all_mode) {
+ r_line=text_edit->get_selection_from_line();
+ r_col=text_edit->get_selection_to_column();
+ }
+
+ if (r_line==result_line && r_col>=result_col && r_col<=result_col+get_search_text().length()) {
+ r_col=result_col;
+ }
+}
+
+bool FindReplaceBar::search_current() {
+
+ uint32_t flags=0;
+
+ if (is_whole_words())
+ flags|=TextEdit::SEARCH_WHOLE_WORDS;
+ if (is_case_sensitive())
+ flags|=TextEdit::SEARCH_MATCH_CASE;
+
+ int line, col;
+ _get_search_from(line, col);
+
+ return _search(flags,line,col);
+}
+
+bool FindReplaceBar::search_prev() {
+
+ uint32_t flags=0;
+ String text = get_search_text();
+
+ if (is_whole_words())
+ flags|=TextEdit::SEARCH_WHOLE_WORDS;
+ if (is_case_sensitive())
+ flags|=TextEdit::SEARCH_MATCH_CASE;
+
+ flags|=TextEdit::SEARCH_BACKWARDS;
+
+ int line, col;
+ _get_search_from(line, col);
+
+ col-=text.length();
+ if (col<0) {
+ line-=1;
+ if (line<0)
+ line=text_edit->get_line_count()-1;
+ col=text_edit->get_line(line).length();
+ }
+
+ return _search(flags,line,col);
+}
+
+bool FindReplaceBar::search_next() {
+
+ uint32_t flags=0;
+ String text = get_search_text();
+
+ if (is_whole_words())
+ flags|=TextEdit::SEARCH_WHOLE_WORDS;
+ if (is_case_sensitive())
+ flags|=TextEdit::SEARCH_MATCH_CASE;
+
+ int line, col;
+ _get_search_from(line, col);
+
+ if (line==result_line && col==result_col) {
+ col+=text.length();
+ if (col>text_edit->get_line(line).length()) {
+ line+=1;
+ if (line>=text_edit->get_line_count())
+ line=0;
+ col=0;
+ }
+ }
+
+ return _search(flags,line,col);
+}
+
+void FindReplaceBar::_hide_bar() {
+
+ if (replace_text->has_focus() || search_text->has_focus())
+ text_edit->grab_focus();
+
+ text_edit->set_search_text("");
+ result_line = -1;
+ result_col = -1;
+ replace_hbc->hide();
+ replace_options_hbc->hide();
+ hide();
+}
+
+void FindReplaceBar::_show_search() {
+
+ show();
+ search_text->grab_focus();
+
+ if (text_edit->is_selection_active()) {
+ search_text->set_text(text_edit->get_selection_text());
+ }
+
+ if (!get_search_text().empty()) {
+ search_text->select_all();
+ search_text->set_cursor_pos(search_text->get_text().length());
+ search_current();
+ }
+}
+
+void FindReplaceBar::popup_search() {
+
+ replace_hbc->hide();
+ replace_options_hbc->hide();
+ _show_search();
+}
+
+void FindReplaceBar::popup_replace() {
+
+ if (!replace_hbc->is_visible() || !replace_options_hbc->is_visible()) {
+ replace_text->clear();
+ replace_hbc->show();
+ replace_options_hbc->show();
+ }
+
+ _show_search();
+}
+
+void FindReplaceBar::_search_options_changed(bool p_pressed) {
+
+ search_current();
+}
+
+void FindReplaceBar::_editor_text_changed() {
+
+ if (is_visible()) {
+ preserve_cursor=true;
+ search_current();
+ preserve_cursor=false;
+ }
+}
+
+void FindReplaceBar::_search_text_changed(const String& p_text) {
+
+ search_current();
+}
+
+void FindReplaceBar::_search_text_entered(const String& p_text) {
+
+ search_next();
+}
+
+String FindReplaceBar::get_search_text() const {
+
+ return search_text->get_text();
+}
+
+String FindReplaceBar::get_replace_text() const {
+
+ return replace_text->get_text();
+}
+
+bool FindReplaceBar::is_case_sensitive() const {
+
+ return case_sensitive->is_pressed();
+}
+
+bool FindReplaceBar::is_whole_words() const {
+
+ return whole_words->is_pressed();
+}
+
+bool FindReplaceBar::is_selection_only() const {
+
+ return selection_only->is_pressed();
+}
+
+void FindReplaceBar::set_error(const String &p_label) {
+
+ error_label->set_text(p_label);
+}
+
+void FindReplaceBar::set_text_edit(TextEdit *p_text_edit) {
+
+ text_edit = p_text_edit;
+ text_edit->connect("text_changed",this,"_editor_text_changed");
+}
+
+void FindReplaceBar::_bind_methods() {
+
+ ObjectTypeDB::bind_method("_unhandled_input",&FindReplaceBar::_unhandled_input);
+
+ ObjectTypeDB::bind_method("_editor_text_changed",&FindReplaceBar::_editor_text_changed);
+ ObjectTypeDB::bind_method("_search_text_changed",&FindReplaceBar::_search_text_changed);
+ ObjectTypeDB::bind_method("_search_text_entered",&FindReplaceBar::_search_text_entered);
+ ObjectTypeDB::bind_method("_search_current",&FindReplaceBar::search_current);
+ ObjectTypeDB::bind_method("_search_next",&FindReplaceBar::search_next);
+ ObjectTypeDB::bind_method("_search_prev",&FindReplaceBar::search_prev);
+ ObjectTypeDB::bind_method("_replace_pressed",&FindReplaceBar::_replace);
+ ObjectTypeDB::bind_method("_replace_all_pressed",&FindReplaceBar::_replace_all);
+ ObjectTypeDB::bind_method("_search_options_changed",&FindReplaceBar::_search_options_changed);
+ ObjectTypeDB::bind_method("_hide_pressed",&FindReplaceBar::_hide_bar);
+
+ ADD_SIGNAL(MethodInfo("search"));
+}
+
+FindReplaceBar::FindReplaceBar() {
+
+ replace_all_mode=false;
+ preserve_cursor=false;
+
+ text_vbc = memnew(VBoxContainer);
+ add_child(text_vbc);
+
+ HBoxContainer *search_hbc = memnew(HBoxContainer);
+ text_vbc->add_child(search_hbc);
+
+ search_text = memnew(LineEdit);
+ search_hbc->add_child(search_text);
+ search_text->set_custom_minimum_size(Size2(200, 0));
+ search_text->connect("text_changed",this,"_search_text_changed");
+ search_text->connect("text_entered",this,"_search_text_entered");
+
+ find_prev = memnew(ToolButton);
+ search_hbc->add_child(find_prev);
+ find_prev->set_focus_mode(FOCUS_NONE);
+ find_prev->connect("pressed",this,"_search_prev");
+
+ find_next = memnew(ToolButton);
+ search_hbc->add_child(find_next);
+ find_next->set_focus_mode(FOCUS_NONE);
+ find_next->connect("pressed",this,"_search_next");
+
+ replace_hbc = memnew(HBoxContainer);
+ text_vbc->add_child(replace_hbc);
+ replace_hbc->hide();
+
+ replace_text = memnew(LineEdit);
+ replace_hbc->add_child(replace_text);
+ replace_text->set_custom_minimum_size(Size2(200, 0));
+ replace_text->connect("text_entered",this,"_search_text_entered");
+
+ replace = memnew(ToolButton);
+ replace_hbc->add_child(replace);
+ replace->set_text(TTR("Replace"));
+ replace->set_focus_mode(FOCUS_NONE);
+ replace->connect("pressed",this,"_replace_pressed");
+
+ replace_all = memnew(ToolButton);
+ replace_hbc->add_child(replace_all);
+ replace_all->set_text(TTR("Replace All"));
+ replace_all->set_focus_mode(FOCUS_NONE);
+ replace_all->connect("pressed",this,"_replace_all_pressed");
+
+ Control *spacer_split = memnew( Control );
+ spacer_split->set_custom_minimum_size(Size2(0, 1));
+ text_vbc->add_child(spacer_split);
+
+ VBoxContainer *options_vbc = memnew(VBoxContainer);
+ add_child(options_vbc);
+ options_vbc->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ HBoxContainer *search_options = memnew(HBoxContainer);
+ options_vbc->add_child(search_options);
+
+ case_sensitive = memnew(CheckBox);
+ search_options->add_child(case_sensitive);
+ case_sensitive->set_text(TTR("Match Case"));
+ case_sensitive->set_focus_mode(FOCUS_NONE);
+ case_sensitive->connect("toggled",this,"_search_options_changed");
+
+ whole_words = memnew(CheckBox);
+ search_options->add_child(whole_words);
+ whole_words->set_text(TTR("Whole Words"));
+ whole_words->set_focus_mode(FOCUS_NONE);
+ whole_words->connect("toggled",this,"_search_options_changed");
+
+ error_label = memnew(Label);
+ search_options->add_child(error_label);
+
+ search_options->add_spacer();
+
+ hide_button = memnew(TextureButton);
+ search_options->add_child(hide_button);
+ hide_button->set_focus_mode(FOCUS_NONE);
+ hide_button->connect("pressed",this,"_hide_pressed");
+
+ replace_options_hbc = memnew(HBoxContainer);
+ options_vbc->add_child(replace_options_hbc);
+ replace_options_hbc->hide();
+
+ selection_only = memnew(CheckBox);
+ replace_options_hbc->add_child(selection_only);
+ selection_only->set_text(TTR("Selection Only"));
+ selection_only->set_focus_mode(FOCUS_NONE);
+ selection_only->connect("toggled",this,"_search_options_changed");
+}
+
+
void FindReplaceDialog::popup_search() {
set_title(TTR("Search"));
@@ -216,7 +681,7 @@ void FindReplaceDialog::_replace() {
text_edit->set_v_scroll(vsval);
// text_edit->set_h_scroll(hsval);
- error_label->set_text(TTR("Replaced ")+itos(rc)+TTR(" ocurrence(s)."));
+ error_label->set_text(vformat(TTR("Replaced %d ocurrence(s)."),rc));
//hide();
@@ -274,7 +739,7 @@ bool FindReplaceDialog::_search() {
return true;
} else {
- set_error(TTR("Not Found!"));
+ set_error(TTR("Not found!"));
return false;
}
@@ -498,7 +963,7 @@ FindReplaceDialog::FindReplaceDialog() {
void CodeTextEditor::_line_col_changed() {
- String text = String()+TTR("Line: ")+itos(text_editor->cursor_get_line()+1)+TTR(", Col: ")+itos(text_editor->cursor_get_column());
+ String text = String()+TTR("Line:")+" "+itos(text_editor->cursor_get_line()+1)+", "+TTR("Col:")+" "+itos(text_editor->cursor_get_column());
line_col->set_text(text);
}
@@ -544,7 +1009,7 @@ void CodeTextEditor::set_error(const String& p_error) {
}
-void CodeTextEditor::_on_settings_change() {
+void CodeTextEditor::_update_font() {
// FONTS
String editor_font = EDITOR_DEF("text_editor/font", "");
@@ -557,7 +1022,12 @@ void CodeTextEditor::_on_settings_change() {
}
}
if(!font_overrode)
- text_editor->add_font_override("font",get_font("source","Fonts"));
+ text_editor->add_font_override("font",get_font("source","EditorFonts"));
+}
+
+void CodeTextEditor::_on_settings_change() {
+
+ _update_font();
// AUTO BRACE COMPLETION
text_editor->set_auto_brace_completion(
@@ -588,6 +1058,9 @@ void CodeTextEditor::_notification(int p_what) {
if (p_what==EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED)
_load_theme_settings();
+ if (p_what==NOTIFICATION_ENTER_TREE) {
+ _update_font();
+ }
}
void CodeTextEditor::_bind_methods() {
@@ -602,35 +1075,32 @@ void CodeTextEditor::_bind_methods() {
CodeTextEditor::CodeTextEditor() {
+ find_replace_bar = memnew( FindReplaceBar );
+ add_child(find_replace_bar);
+ find_replace_bar->set_h_size_flags(SIZE_EXPAND_FILL);
+ find_replace_bar->hide();
+
text_editor = memnew( TextEdit );
add_child(text_editor);
- text_editor->set_area_as_parent_rect();
- text_editor->set_margin(MARGIN_BOTTOM,20);
+ text_editor->set_v_size_flags(SIZE_EXPAND_FILL);
- String editor_font = EDITOR_DEF("text_editor/font", "");
- bool font_overrode = false;
- if (editor_font!="") {
- Ref<Font> fnt = ResourceLoader::load(editor_font);
- if (fnt.is_valid()) {
- text_editor->add_font_override("font",fnt);
- font_overrode = true;
- }
- }
-
- if (!font_overrode)
- text_editor->add_font_override("font",get_font("source","Fonts"));
+ find_replace_bar->set_text_edit(text_editor);
text_editor->set_show_line_numbers(true);
text_editor->set_brace_matching(true);
text_editor->set_auto_indent(true);
- line_col = memnew( Label );
- add_child(line_col);
- line_col->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_END,135);
- line_col->set_anchor_and_margin(MARGIN_TOP,ANCHOR_END,15);
- line_col->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_END,1);
- line_col->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,5);
- //line_col->set_align(Label::ALIGN_RIGHT);
+ MarginContainer *status_mc = memnew( MarginContainer );
+ add_child(status_mc);
+ status_mc->set("custom_constants/margin_left", 2);
+ status_mc->set("custom_constants/margin_top", 5);
+ status_mc->set("custom_constants/margin_right", 2);
+ status_mc->set("custom_constants/margin_bottom", 1);
+
+ HBoxContainer *status_bar = memnew( HBoxContainer );
+ status_mc->add_child(status_bar);
+ status_bar->set_h_size_flags(SIZE_EXPAND_FILL);
+
idle = memnew( Timer );
add_child(idle);
idle->set_one_shot(true);
@@ -644,14 +1114,16 @@ CodeTextEditor::CodeTextEditor() {
code_complete_timer->set_wait_time(EDITOR_DEF("text_editor/code_complete_delay",.3f));
error = memnew( Label );
- add_child(error);
- error->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_BEGIN,5);
- error->set_anchor_and_margin(MARGIN_TOP,ANCHOR_END,15);
- error->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_END,1);
- error->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,130);
+ status_bar->add_child(error);
error->hide();
+ error->set_valign(Label::VALIGN_CENTER);
error->add_color_override("font_color",Color(1,0.7,0.6,0.9));
+ status_bar->add_spacer();
+
+ line_col = memnew( Label );
+ status_bar->add_child(line_col);
+ line_col->set_valign(Label::VALIGN_CENTER);
text_editor->connect("cursor_changed", this,"_line_col_changed");
diff --git a/tools/editor/code_editor.h b/tools/editor/code_editor.h
index e28517c601..2e1bf46c02 100644
--- a/tools/editor/code_editor.h
+++ b/tools/editor/code_editor.h
@@ -33,7 +33,9 @@
#include "scene/gui/text_edit.h"
#include "scene/gui/dialogs.h"
#include "scene/main/timer.h"
+#include "scene/gui/tool_button.h"
#include "scene/gui/check_button.h"
+#include "scene/gui/check_box.h"
#include "scene/gui/line_edit.h"
@@ -58,8 +60,76 @@ public:
GotoLineDialog();
};
+class FindReplaceBar : public HBoxContainer {
+ OBJ_TYPE(FindReplaceBar,HBoxContainer);
+ LineEdit *search_text;
+ ToolButton *find_prev;
+ ToolButton *find_next;
+ CheckBox *case_sensitive;
+ CheckBox *whole_words;
+ Label *error_label;
+ TextureButton *hide_button;
+
+ LineEdit *replace_text;
+ ToolButton *replace;
+ ToolButton *replace_all;
+ CheckBox *selection_only;
+
+ VBoxContainer *text_vbc;
+ HBoxContainer *replace_hbc;
+ HBoxContainer *replace_options_hbc;
+
+ TextEdit *text_edit;
+
+ int result_line;
+ int result_col;
+
+ bool replace_all_mode;
+ bool preserve_cursor;
+
+ void _get_search_from(int& r_line, int& r_col);
+
+ void _show_search();
+ void _hide_bar();
+
+ void _editor_text_changed();
+ void _search_options_changed(bool p_pressed);
+ void _search_text_changed(const String& p_text);
+ void _search_text_entered(const String& p_text);
+
+protected:
+ void _notification(int p_what);
+ void _unhandled_input(const InputEvent &p_event);
+
+ bool _search(uint32_t p_flags, int p_from_line, int p_from_col);
+
+ void _replace();
+ void _replace_all();
+
+ static void _bind_methods();
+
+public:
+ String get_search_text() const;
+ String get_replace_text() const;
+
+ bool is_case_sensitive() const;
+ bool is_whole_words() const;
+ bool is_selection_only() const;
+ void set_error(const String& p_label);
+
+ void set_text_edit(TextEdit *p_text_edit);
+
+ void popup_search();
+ void popup_replace();
+
+ bool search_current();
+ bool search_prev();
+ bool search_next();
+
+ FindReplaceBar();
+};
class FindReplaceDialog : public ConfirmationDialog {
@@ -119,11 +189,12 @@ public:
};
-class CodeTextEditor : public Control {
+class CodeTextEditor : public VBoxContainer {
- OBJ_TYPE(CodeTextEditor,Control);
+ OBJ_TYPE(CodeTextEditor,VBoxContainer);
TextEdit *text_editor;
+ FindReplaceBar *find_replace_bar;
Label *line_col;
Label *info;
@@ -135,6 +206,7 @@ class CodeTextEditor : public Control {
void _on_settings_change();
+ void _update_font();
void _complete_request();
protected:
@@ -157,6 +229,7 @@ protected:
public:
TextEdit *get_text_edit() { return text_editor; }
+ FindReplaceBar *get_find_replace_bar() { return find_replace_bar; }
virtual void apply_code() {}
CodeTextEditor();
diff --git a/tools/editor/connections_dialog.cpp b/tools/editor/connections_dialog.cpp
index 3795860472..e2b8f2884f 100644
--- a/tools/editor/connections_dialog.cpp
+++ b/tools/editor/connections_dialog.cpp
@@ -94,8 +94,8 @@ void ConnectDialog::_notification(int p_what) {
if (p_what==NOTIFICATION_DRAW) {
- RID ci = get_canvas_item();
- get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
+ //RID ci = get_canvas_item();
+ //get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
}
if (p_what==NOTIFICATION_ENTER_TREE) {
@@ -294,8 +294,8 @@ void ConnectDialog::_bind_methods() {
ConnectDialog::ConnectDialog() {
- int margin = get_constant("margin",TTR("Dialogs"));
- int button_margin = get_constant("button_margin",TTR("Dialogs"));
+ int margin = get_constant("margin","Dialogs");
+ int button_margin = get_constant("button_margin","Dialogs");
Label * label = memnew( Label );
@@ -416,7 +416,7 @@ ConnectDialog::ConnectDialog() {
/*dst_method_list = memnew( MenuButton );
- dst_method_list->set_text(TTR("List.."));
+ dst_method_list->set_text("List..");
dst_method_list->set_anchor( MARGIN_RIGHT, ANCHOR_END );
dst_method_list->set_anchor( MARGIN_LEFT, ANCHOR_END );
dst_method_list->set_anchor( MARGIN_TOP, ANCHOR_END );
@@ -429,7 +429,7 @@ ConnectDialog::ConnectDialog() {
make_callback = memnew( CheckButton );
make_callback->set_toggle_mode(true);
make_callback->set_pressed( EDITOR_DEF("text_editor/create_signal_callbacks",true));
- make_callback->set_text(TTR("Make Function "));
+ make_callback->set_text(TTR("Make Function"));
dstm_hb->add_child(make_callback);
deferred = memnew( CheckButton );
@@ -447,7 +447,7 @@ ConnectDialog::ConnectDialog() {
realtime->set_anchor( MARGIN_RIGHT, ANCHOR_END );
realtime->set_begin( Point2( 120, button_margin-10 ) );
realtime->set_end( Point2( 80, margin ) );
- realtime->set_text(TTR("Realtime"));
+ realtime->set_text("Realtime");
add_child(realtime);
*/
@@ -465,7 +465,7 @@ ConnectDialog::ConnectDialog() {
add_child(error);
error->get_ok()->set_text(TTR("Close"));
get_ok()->set_text(TTR("Connect"));
-// error->get_cancel()->set_text(TTR("Close"));
+// error->get_cancel()->set_text("Close");
@@ -480,21 +480,21 @@ ConnectDialog::~ConnectDialog()
-void ConnectionsDialog::_notification(int p_what) {
+void ConnectionsDock::_notification(int p_what) {
if (p_what==NOTIFICATION_DRAW) {
- RID ci = get_canvas_item();
- get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
+ //RID ci = get_canvas_item();
+ //get_stylebox("panel","PopupMenu")->draw(ci,Rect2(Point2(),get_size()));
}
}
-void ConnectionsDialog::_close() {
+void ConnectionsDock::_close() {
hide();
}
-void ConnectionsDialog::_connect() {
+void ConnectionsDock::_connect() {
TreeItem *it = tree->get_selected();
ERR_FAIL_COND(!it);
@@ -511,11 +511,14 @@ void ConnectionsDialog::_connect() {
StringArray args = it->get_metadata(0).operator Dictionary()["args"];
int flags = CONNECT_PERSIST | (defer?CONNECT_DEFERRED:0) | (oshot?CONNECT_ONESHOT:0);
- undo_redo->create_action(TTR("Connect '")+signal+"' to '"+String(dst_method)+"'");
+ undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"),signal,String(dst_method)));
undo_redo->add_do_method(node,"connect",signal,target,dst_method,binds,flags);
undo_redo->add_undo_method(node,"disconnect",signal,target,dst_method);
undo_redo->add_do_method(this,"update_tree");
undo_redo->add_undo_method(this,"update_tree");
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
+ undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
+
undo_redo->commit_action();
@@ -533,13 +536,13 @@ void ConnectionsDialog::_connect() {
-void ConnectionsDialog::ok_pressed() {
+void ConnectionsDock::_connect_pressed() {
TreeItem *item = tree->get_selected();
if (!item) {
//no idea how this happened, but disable
- get_ok()->set_disabled(true);
+ connect_button->set_disabled(true);
return;
}
if (item->get_parent()==tree->get_root() || item->get_parent()->get_parent()==tree->get_root()) {
@@ -577,6 +580,8 @@ void ConnectionsDialog::ok_pressed() {
undo_redo->add_undo_method(node,"connect",c.signal,c.target,c.method,Vector<Variant>(),c.flags);
undo_redo->add_do_method(this,"update_tree");
undo_redo->add_undo_method(this,"update_tree");
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
+ undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
undo_redo->commit_action();
c.source->disconnect(c.signal,c.target,c.method);
@@ -584,7 +589,7 @@ void ConnectionsDialog::ok_pressed() {
}
}
/*
-void ConnectionsDialog::_remove() {
+void ConnectionsDock::_remove() {
if (!tree->get_selected())
return;
@@ -600,7 +605,7 @@ void ConnectionsDialog::_remove() {
}
*/
/*
-void ConnectionsDialog::_remove_confirm() {
+void ConnectionsDock::_remove_confirm() {
if (!tree->get_selected())
return;
@@ -610,7 +615,7 @@ void ConnectionsDialog::_remove_confirm() {
Dictionary meta=selected->get_metadata(0);
- undo_redo->create_action(TTR("Remove Subscription"));
+ undo_redo->create_action("Remove Subscription");
undo_redo->add_do_method(node,"unsubscribe_path_event",meta["from_event"].operator String(),meta["from_path"].operator NodePath(),meta["to_method"].operator String());
undo_redo->add_undo_method(node,"subscribe_path_event_persist",meta["from_event"].operator String(),meta["from_path"].operator NodePath(),meta["to_method"].operator String(),Array(),false);
undo_redo->add_do_method(this,"update_tree");
@@ -620,18 +625,16 @@ void ConnectionsDialog::_remove_confirm() {
}
*/
-struct _ConnectionsDialogMethodInfoSort {
+struct _ConnectionsDockMethodInfoSort {
_FORCE_INLINE_ bool operator()(const MethodInfo& a, const MethodInfo& b) const {
return a.name < b.name;
}
};
-void ConnectionsDialog::update_tree() {
+void ConnectionsDock::update_tree() {
- if (!is_visible())
- return; //don't update if not visible, of course
- tree->clear();
+ tree->clear();
if (!node)
return;
@@ -643,7 +646,7 @@ void ConnectionsDialog::update_tree() {
node->get_signal_list(&node_signals);
- //node_signals.sort_custom<_ConnectionsDialogMethodInfoSort>();
+ //node_signals.sort_custom<_ConnectionsDockMethodInfoSort>();
bool did_script=false;
StringName base = node->get_type();
@@ -773,68 +776,72 @@ void ConnectionsDialog::update_tree() {
}
}
- get_ok()->set_text(TTR("Connect"));
- get_ok()->set_disabled(true);
+ connect_button->set_text(TTR("Connect"));
+ connect_button->set_disabled(true);
}
-void ConnectionsDialog::set_node(Node* p_node) {
+void ConnectionsDock::set_node(Node* p_node) {
node=p_node;
update_tree();
}
-void ConnectionsDialog::_something_selected() {
+void ConnectionsDock::_something_selected() {
TreeItem *item = tree->get_selected();
if (!item) {
//no idea how this happened, but disable
- get_ok()->set_text(TTR("Connect.."));
- get_ok()->set_disabled(true);
+ connect_button->set_text(TTR("Connect.."));
+ connect_button->set_disabled(true);
} else if (item->get_parent()==tree->get_root() || item->get_parent()->get_parent()==tree->get_root()) {
//a signal - connect
- get_ok()->set_text(TTR("Connect.."));
- get_ok()->set_disabled(false);
+ connect_button->set_text(TTR("Connect.."));
+ connect_button->set_disabled(false);
} else {
//a slot- disconnect
- get_ok()->set_text(TTR("Disconnect"));
- get_ok()->set_disabled(false);
+ connect_button->set_text(TTR("Disconnect"));
+ connect_button->set_disabled(false);
}
}
-void ConnectionsDialog::_bind_methods() {
+void ConnectionsDock::_bind_methods() {
- ObjectTypeDB::bind_method("_connect",&ConnectionsDialog::_connect);
- ObjectTypeDB::bind_method("_something_selected",&ConnectionsDialog::_something_selected);
- ObjectTypeDB::bind_method("_close",&ConnectionsDialog::_close);
-// ObjectTypeDB::bind_method("_remove_confirm",&ConnectionsDialog::_remove_confirm);
- ObjectTypeDB::bind_method("update_tree",&ConnectionsDialog::update_tree);
+ ObjectTypeDB::bind_method("_connect",&ConnectionsDock::_connect);
+ ObjectTypeDB::bind_method("_something_selected",&ConnectionsDock::_something_selected);
+ ObjectTypeDB::bind_method("_close",&ConnectionsDock::_close);
+ ObjectTypeDB::bind_method("_connect_pressed",&ConnectionsDock::_connect_pressed);
+ ObjectTypeDB::bind_method("update_tree",&ConnectionsDock::update_tree);
}
-ConnectionsDialog::ConnectionsDialog(EditorNode *p_editor) {
+ConnectionsDock::ConnectionsDock(EditorNode *p_editor) {
editor=p_editor;
- set_title(TTR("Edit Connections.."));
- set_hide_on_ok(false);
-
- VBoxContainer *vbc = memnew( VBoxContainer );
- add_child(vbc);
- set_child_rect(vbc);
+ set_name(TTR("Signals"));
+ VBoxContainer *vbc = this;
tree = memnew( Tree );
tree->set_columns(1);
tree->set_select_mode(Tree::SELECT_ROW);
tree->set_hide_root(true);
- vbc->add_margin_child(TTR("Connections:"),tree,true);
-
+ vbc->add_child(tree);
+ tree->set_v_size_flags(SIZE_EXPAND_FILL);
+
+ connect_button = memnew( Button );
+ connect_button->set_text("Connect");
+ HBoxContainer *hb = memnew( HBoxContainer);
+ vbc->add_child(hb);
+ hb->add_spacer();
+ hb->add_child(connect_button);
+ connect_button->connect("pressed",this,"_connect_pressed");
// add_child(tree);
connect_dialog = memnew( ConnectDialog );
@@ -858,12 +865,12 @@ ConnectionsDialog::ConnectionsDialog(EditorNode *p_editor) {
remove_confirm->connect("confirmed", this,"_remove_confirm");
connect_dialog->connect("connected", this,"_connect");
tree->connect("item_selected", this,"_something_selected");
- get_cancel()->set_text(TTR("Close"));
+ add_constant_override("separation",3*EDSCALE);
}
-ConnectionsDialog::~ConnectionsDialog()
+ConnectionsDock::~ConnectionsDock()
{
}
diff --git a/tools/editor/connections_dialog.h b/tools/editor/connections_dialog.h
index 575bcf54d7..96ebaf85b0 100644
--- a/tools/editor/connections_dialog.h
+++ b/tools/editor/connections_dialog.h
@@ -95,10 +95,11 @@ public:
};
-class ConnectionsDialog : public ConfirmationDialog {
+class ConnectionsDock : public VBoxContainer {
- OBJ_TYPE( ConnectionsDialog , ConfirmationDialog );
+ OBJ_TYPE( ConnectionsDock , VBoxContainer );
+ Button *connect_button;
EditorNode *editor;
Node *node;
Tree *tree;
@@ -114,7 +115,7 @@ class ConnectionsDialog : public ConfirmationDialog {
protected:
- virtual void ok_pressed();
+ void _connect_pressed();
void _notification(int p_what);
static void _bind_methods();
public:
@@ -124,8 +125,8 @@ public:
void set_node(Node* p_node);
String get_selected_type();
- ConnectionsDialog(EditorNode *p_editor=NULL);
- ~ConnectionsDialog();
+ ConnectionsDock(EditorNode *p_editor=NULL);
+ ~ConnectionsDock();
};
diff --git a/tools/editor/create_dialog.cpp b/tools/editor/create_dialog.cpp
index c156b1b2de..b6137ddac0 100644
--- a/tools/editor/create_dialog.cpp
+++ b/tools/editor/create_dialog.cpp
@@ -36,6 +36,8 @@
#if 1
#include "os/keyboard.h"
+#include "editor_settings.h"
+#include "editor_help.h"
void CreateDialog::popup(bool p_dontclear) {
@@ -107,6 +109,21 @@ void CreateDialog::add_type(const String& p_type,HashMap<String,TreeItem*>& p_ty
}
+ if (bool(EditorSettings::get_singleton()->get("scenetree_editor/start_create_dialog_fully_expanded"))) {
+ item->set_collapsed(false);
+ } else {
+ // don't collapse search results
+ bool collapse = (search_box->get_text() == "");
+ // don't collapse the root node
+ collapse &= (item != p_root);
+ // don't collapse abstract nodes on the first tree level
+ collapse &= ((parent != p_root) || (ObjectTypeDB::can_instance(p_type)));
+ item->set_collapsed(collapse);
+ }
+
+ const String& description = EditorHelp::get_doc_data()->class_list[p_type].brief_description;
+ item->set_tooltip(0,description);
+
if (has_icon(p_type,"EditorIcons")) {
@@ -251,10 +268,19 @@ void CreateDialog::_notification(int p_what) {
void CreateDialog::set_base_type(const String& p_base) {
base_type=p_base;
- set_title(TTR("Create New ")+p_base);
+ set_title(TTR("Create New")+" "+p_base);
_update_search();
}
+String CreateDialog::get_selected_type() {
+
+ TreeItem *selected = search_options->get_selected();
+ if (selected)
+ return selected->get_text(0);
+ else
+ return String();
+}
+
Object *CreateDialog::instance_selected() {
TreeItem *selected = search_options->get_selected();
@@ -541,7 +567,7 @@ void CreateDialog::_bind_methods() {
void CreateDialog::set_base_type(const String& p_base) {
- set_title(TTR("Create ")+p_base+" Type");
+ set_title(vformat("Create %s Type",p_base));
if (base==p_base)
return;
@@ -562,14 +588,14 @@ CreateDialog::CreateDialog() {
add_child(vbc);
set_child_rect(vbc);
- get_ok()->set_text(TTR("Create"));
+ get_ok()->set_text("Create");
tree = memnew( Tree );
- vbc->add_margin_child(TTR("Type:"),tree,true);
+ vbc->add_margin_child("Type:",tree,true);
//tree->set_hide_root(true);
filter = memnew( LineEdit );
- vbc->add_margin_child(TTR("Filter:"),filter);
+ vbc->add_margin_child("Filter:",filter);
base="Node";
set_as_toplevel(true);
diff --git a/tools/editor/create_dialog.h b/tools/editor/create_dialog.h
index a46ff5ae06..8957479beb 100644
--- a/tools/editor/create_dialog.h
+++ b/tools/editor/create_dialog.h
@@ -66,6 +66,7 @@ protected:
public:
Object *instance_selected();
+ String get_selected_type();
void set_base_type(const String& p_base);
String get_base_type() const;
diff --git a/tools/editor/dependency_editor.cpp b/tools/editor/dependency_editor.cpp
index 784315522c..a702d3c687 100644
--- a/tools/editor/dependency_editor.cpp
+++ b/tools/editor/dependency_editor.cpp
@@ -27,7 +27,7 @@ void DependencyEditor::_load_pressed(Object* p_item,int p_cell,int p_button){
String fname = ti->get_text(0);
replacing = ti->get_text(1);
- search->set_title(TTR("Search Replacement For: ")+replacing.get_file());
+ search->set_title(TTR("Search Replacement For:")+" "+replacing.get_file());
search->clear_filters();
List<String> ext;
@@ -180,7 +180,7 @@ void DependencyEditor::_update_list() {
String name = path.get_file();
Ref<Texture> icon;
- if (has_icon(type,TTR("EditorIcons"))) {
+ if (has_icon(type,"EditorIcons")) {
icon=get_icon(type,"EditorIcons");
} else {
icon=get_icon("Object","EditorIcons");
@@ -209,15 +209,15 @@ void DependencyEditor::edit(const String& p_path) {
editing=p_path;
- set_title(TTR("Dependencies For: ")+p_path.get_file());
+ set_title(TTR("Dependencies For:")+" "+p_path.get_file());
_update_list();
popup_centered_ratio();
if (EditorNode::get_singleton()->is_scene_open(p_path)) {
- EditorNode::get_singleton()->show_warning(TTR("Scene '")+p_path.get_file()+"' is currently being edited.\nChanges will not take effect unless reloaded.");
+ EditorNode::get_singleton()->show_warning(vformat(TTR("Scene '%s' is currently being edited.\nChanges will not take effect unless reloaded."),p_path.get_file()));
} else if (ResourceCache::has(p_path)) {
- EditorNode::get_singleton()->show_warning(TTR("Resource '")+p_path.get_file()+"' is in use.\nChanges will take effect when reloaded.");
+ EditorNode::get_singleton()->show_warning(vformat(TTR("Resource '%s' is in use.\nChanges will take effect when reloaded."),p_path.get_file()));
}
}
@@ -240,8 +240,8 @@ DependencyEditor::DependencyEditor() {
tree = memnew( Tree );
tree->set_columns(2);
tree->set_column_titles_visible(true);
- tree->set_column_title(0,"Resource");
- tree->set_column_title(1,"Path");
+ tree->set_column_title(0,TTR("Resource"));
+ tree->set_column_title(1,TTR("Path"));
tree->set_hide_root(true);
tree->connect("button_pressed",this,"_load_pressed");
@@ -301,7 +301,7 @@ void DependencyEditorOwners::_fill_owners(EditorFileSystemDirectory *efsd) {
Ref<Texture> icon;
String type=efsd->get_file_type(i);
- if (!has_icon(type,TTR("EditorIcons"))) {
+ if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@@ -319,7 +319,7 @@ void DependencyEditorOwners::show(const String& p_path) {
_fill_owners(EditorFileSystem::get_singleton()->get_filesystem());
popup_centered_ratio();
- set_title(TTR("Owners Of: ")+p_path.get_file());
+ set_title(TTR("Owners Of:")+" "+p_path.get_file());
}
@@ -362,7 +362,7 @@ void DependencyRemoveDialog::_fill_owners(EditorFileSystemDirectory *efsd) {
Ref<Texture> icon;
String type=efsd->get_file_type(i);
- if (!has_icon(type,TTR("EditorIcons"))) {
+ if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@@ -401,7 +401,7 @@ void DependencyRemoveDialog::show(const Vector<String> &to_erase) {
if (exist) {
owners->show();
- text->set_text("The files being removed are required by other resources in order for them to work.\nRemove them anyway? (no undo)");
+ text->set_text(TTR("The files being removed are required by other resources in order for them to work.\nRemove them anyway? (no undo)"));
popup_centered_minsize(Size2(500,220));
} else {
owners->hide();
@@ -448,7 +448,7 @@ void DependencyErrorDialog::show(const String& p_for_file,const Vector<String> &
for_file=p_for_file;
- set_title(TTR("Error loading: ")+p_for_file.get_file());
+ set_title(TTR("Error loading:")+" "+p_for_file.get_file());
files->clear();
TreeItem *root = files->create_item(NULL);
@@ -461,7 +461,7 @@ void DependencyErrorDialog::show(const String& p_for_file,const Vector<String> &
type=report[i].get_slice("::",1);
Ref<Texture> icon;
- if (!has_icon(type,TTR("EditorIcons"))) {
+ if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@@ -523,7 +523,7 @@ void OrphanResourcesDialog::ok_pressed() {
if (paths.empty())
return;
- delete_confirm->set_text(TTR("Permanently Delete ")+itos(paths.size())+" Item(s) ? (No Undo!!)");
+ delete_confirm->set_text(vformat(TTR("Permanently delete %d item(s)? (No undo!)"),paths.size()));
delete_confirm->popup_centered_minsize();
}
@@ -580,7 +580,7 @@ bool OrphanResourcesDialog::_fill_owners(EditorFileSystemDirectory *efsd,HashMap
String type=efsd->get_file_type(i);
Ref<Texture> icon;
- if (has_icon(type,TTR("EditorIcons"))) {
+ if (has_icon(type,"EditorIcons")) {
icon=get_icon(type,"EditorIcons");
} else {
icon=get_icon("Object","EditorIcons");
@@ -675,7 +675,7 @@ OrphanResourcesDialog::OrphanResourcesDialog(){
files->set_column_min_width(1,100);
files->set_column_expand(0,true);
files->set_column_expand(1,false);
- files->set_column_title(0,"Resource");
+ files->set_column_title(0,TTR("Resource"));
files->set_column_title(1,TTR("Owns"));
files->set_hide_root(true);
vbc->add_margin_child(TTR("Resources Without Explicit Ownership:"),files,true);
diff --git a/tools/editor/editor_file_dialog.cpp b/tools/editor/editor_file_dialog.cpp
index 8c16955d9f..185ec17459 100644
--- a/tools/editor/editor_file_dialog.cpp
+++ b/tools/editor/editor_file_dialog.cpp
@@ -7,7 +7,7 @@
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
#include "os/file_access.h"
-
+#include "editor_scale.h"
EditorFileDialog::GetIconFunc EditorFileDialog::get_icon_func=NULL;
EditorFileDialog::GetIconFunc EditorFileDialog::get_large_icon_func=NULL;
@@ -347,7 +347,7 @@ void EditorFileDialog::_action_pressed() {
if (!valid) {
- exterr->popup_centered_minsize(Size2(250,80));
+ exterr->popup_centered_minsize(Size2(250,80)*EDSCALE);
return;
}
@@ -431,6 +431,7 @@ void EditorFileDialog::update_file_list() {
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
Ref<Texture> folder_thumbnail;
Ref<Texture> file_thumbnail;
@@ -677,7 +678,7 @@ void EditorFileDialog::update_filters() {
if (max_filters<filters.size())
all_filters+=", ...";
- filter->add_item(TTR("All Recognized ( ")+all_filters+" )");
+ filter->add_item(TTR("All Recognized")+" ( "+all_filters+" )");
}
for(int i=0;i<filters.size();i++) {
@@ -840,7 +841,7 @@ void EditorFileDialog::_make_dir_confirm() {
_push_history();
} else {
- mkdirerr->popup_centered_minsize(Size2(250,50));
+ mkdirerr->popup_centered_minsize(Size2(250,50)*EDSCALE);
}
makedirname->set_text(""); // reset label
}
@@ -848,7 +849,7 @@ void EditorFileDialog::_make_dir_confirm() {
void EditorFileDialog::_make_dir() {
- makedialog->popup_centered_minsize(Size2(250,80));
+ makedialog->popup_centered_minsize(Size2(250,80)*EDSCALE);
makedirname->grab_focus();
}
diff --git a/tools/editor/editor_file_system.cpp b/tools/editor/editor_file_system.cpp
index 6423b75abc..c5c92b5228 100644
--- a/tools/editor/editor_file_system.cpp
+++ b/tools/editor/editor_file_system.cpp
@@ -149,6 +149,41 @@ bool EditorFileSystemDirectory::is_missing_sources(int p_idx) const {
return false;
}
+bool EditorFileSystemDirectory::have_sources_changed(int p_idx) const {
+
+ ERR_FAIL_INDEX_V(p_idx,files.size(),false);
+ return files[p_idx]->meta.sources_changed;
+
+}
+
+int EditorFileSystemDirectory::get_source_count(int p_idx) const {
+
+ ERR_FAIL_INDEX_V(p_idx,files.size(),0);
+ if (!files[p_idx]->meta.enabled)
+ return 0;
+ return files[p_idx]->meta.sources.size();
+}
+String EditorFileSystemDirectory::get_source_file(int p_idx,int p_source) const {
+
+ ERR_FAIL_INDEX_V(p_idx,files.size(),String());
+ ERR_FAIL_INDEX_V(p_source,files[p_idx]->meta.sources.size(),String());
+ if (!files[p_idx]->meta.enabled)
+ return String();
+
+ return files[p_idx]->meta.sources[p_source].path;
+
+}
+bool EditorFileSystemDirectory::is_source_file_missing(int p_idx,int p_source) const {
+
+ ERR_FAIL_INDEX_V(p_idx,files.size(),false);
+ ERR_FAIL_INDEX_V(p_source,files[p_idx]->meta.sources.size(),false);
+ if (!files[p_idx]->meta.enabled)
+ return false;
+
+ return files[p_idx]->meta.sources[p_source].missing;
+}
+
+
StringName EditorFileSystemDirectory::get_file_type(int p_idx) const {
ERR_FAIL_INDEX_V(p_idx,files.size(),"");
@@ -210,8 +245,11 @@ EditorFileSystemDirectory::ImportMeta EditorFileSystem::_get_meta(const String&
EditorFileSystemDirectory::ImportMeta m;
if (imd.is_null()) {
m.enabled=false;
+ m.sources_changed=false;
} else {
m.enabled=true;
+ m.sources_changed=false;
+
for(int i=0;i<imd->get_source_count();i++) {
EditorFileSystemDirectory::ImportMeta::Source s;
s.path=imd->get_source_path(i);
@@ -314,7 +352,7 @@ void EditorFileSystem::_scan_filesystem() {
- EditorProgressBG scan_progress("efs",TTR("ScanFS"),1000);
+ EditorProgressBG scan_progress("efs","ScanFS",1000);
ScanProgress sp;
sp.low=0;
@@ -609,7 +647,7 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess
da->change_dir("..");
} else {
- ERR_PRINTS(TTR("Can't go into subdir: ")+E->get());
+ ERR_PRINTS(TTR("Cannot go into subdir:")+" "+E->get());
}
p_progress.update(idx,total);
@@ -649,7 +687,13 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess
ia.dir=p_dir;
ia.file=E->get();
scan_actions.push_back(ia);
+ fi->meta.sources_changed=true;
+ } else {
+ fi->meta.sources_changed=false;
}
+
+ } else {
+ fi->meta.sources_changed=true;
}
p_dir->files.push_back(fi);
@@ -764,6 +808,9 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir,const S
ia.dir=p_dir;
ia.file=f;
scan_actions.push_back(ia);
+ fi->meta.sources_changed=true;
+ } else {
+ fi->meta.sources_changed=false;
}
} else {
@@ -800,6 +847,9 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir,const S
ia.dir=p_dir;
ia.file=p_dir->files[i]->file;
scan_actions.push_back(ia);
+ p_dir->files[i]->meta.sources_changed=true;
+ } else {
+ p_dir->files[i]->meta.sources_changed=false;
}
}
@@ -1113,6 +1163,25 @@ String EditorFileSystem::get_file_type(const String& p_file) const {
}
+EditorFileSystemDirectory* EditorFileSystem::find_file(const String& p_file,int* r_index) const {
+
+ if (!filesystem || scanning)
+ return NULL;
+
+ EditorFileSystemDirectory *fs=NULL;
+ int cpos=-1;
+ if (!_find_file(p_file,&fs,cpos)) {
+
+ return NULL;
+ }
+
+
+ if (r_index)
+ *r_index=cpos;
+
+ return fs;
+}
+
EditorFileSystemDirectory *EditorFileSystem::get_path(const String& p_path) {
diff --git a/tools/editor/editor_file_system.h b/tools/editor/editor_file_system.h
index 254dd68c14..b96e947569 100644
--- a/tools/editor/editor_file_system.h
+++ b/tools/editor/editor_file_system.h
@@ -55,7 +55,7 @@ class EditorFileSystemDirectory : public Object {
String path;
String md5;
uint64_t modified_time;
- bool missing;
+ bool missing;
};
@@ -63,6 +63,7 @@ class EditorFileSystemDirectory : public Object {
String import_editor;
Vector<String> deps;
bool enabled;
+ bool sources_changed;
};
@@ -102,8 +103,12 @@ public:
StringName get_file_type(int p_idx) const;
bool get_file_meta(int p_idx) const;
bool is_missing_sources(int p_idx) const;
+ bool have_sources_changed(int p_idx) const;
Vector<String> get_missing_sources(int p_idx) const;
Vector<String> get_file_deps(int p_idx) const;
+ int get_source_count(int p_idx) const;
+ String get_source_file(int p_idx,int p_source) const;
+ bool is_source_file_missing(int p_idx,int p_source) const;
EditorFileSystemDirectory *get_parent();
@@ -230,6 +235,7 @@ public:
String find_resource_from_source(const String& p_path) const;
EditorFileSystemDirectory *get_path(const String& p_path);
String get_file_type(const String& p_file) const;
+ EditorFileSystemDirectory* find_file(const String& p_file,int* r_index) const;
EditorFileSystem();
~EditorFileSystem();
};
diff --git a/tools/editor/editor_fonts.cpp b/tools/editor/editor_fonts.cpp
index a3ec08f986..7ec22a4068 100644
--- a/tools/editor/editor_fonts.cpp
+++ b/tools/editor/editor_fonts.cpp
@@ -30,6 +30,11 @@
#include "doc_font.h"
#include "doc_title_font.h"
#include "doc_code_font.h"
+#include "builtin_fonts.h"
+#include "editor_settings.h"
+#include "scene/resources/dynamic_font.h"
+#include "editor_scale.h"
+#include "scene/resources/default_theme/default_theme.h"
static Ref<BitmapFont> make_font(int p_height,int p_ascent, int p_valign, int p_charcount, const int *p_chars,const Ref<Texture> &p_texture) {
@@ -61,15 +66,103 @@ static Ref<BitmapFont> make_font(int p_height,int p_ascent, int p_valign, int p_
return font;
}
+#define MAKE_FALLBACKS(m_name)\
+ m_name->add_fallback(DroidSansFallback);\
+ m_name->add_fallback(DroidSansJapanese);\
+ m_name->add_fallback(DroidSansArabic);\
+ m_name->add_fallback(DroidSansHebrew);\
+ m_name->add_fallback(DroidSansThai);
+
+#define MAKE_DROID_SANS(m_name,m_size) \
+ Ref<DynamicFont> m_name;\
+ m_name.instance();\
+ m_name->set_size(m_size);\
+ m_name->set_font_data(DroidSans);\
+ MAKE_FALLBACKS(m_name);
+
void editor_register_fonts(Ref<Theme> p_theme) {
+ /* Droid Sans */
+
+ Ref<DynamicFontData> DroidSans;
+ DroidSans.instance();
+ DroidSans->set_font_ptr(_font_DroidSans,_font_DroidSans_size);
+ DroidSans->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFontData> DroidSansFallback;
+ DroidSansFallback.instance();
+ DroidSansFallback->set_font_ptr(_font_DroidSansFallback,_font_DroidSansFallback_size);
+ DroidSansFallback->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFontData> DroidSansJapanese;
+ DroidSansJapanese.instance();
+ DroidSansJapanese->set_font_ptr(_font_DroidSansJapanese,_font_DroidSansJapanese_size);
+ DroidSansJapanese->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFontData> DroidSansArabic;
+ DroidSansArabic.instance();
+ DroidSansArabic->set_font_ptr(_font_DroidSansArabic,_font_DroidSansArabic_size);
+ DroidSansArabic->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFontData> DroidSansHebrew;
+ DroidSansHebrew.instance();
+ DroidSansHebrew->set_font_ptr(_font_DroidSansHebrew,_font_DroidSansHebrew_size);
+ DroidSansHebrew->set_force_autohinter(true); //just looks better..i think?
+
+ Ref<DynamicFontData> DroidSansThai;
+ DroidSansThai.instance();
+ DroidSansThai->set_font_ptr(_font_DroidSansThai,_font_DroidSansThai_size);
+ DroidSansThai->set_force_autohinter(true); //just looks better..i think?
+
+ /* Source Code Pro */
+
+
+ Ref<DynamicFontData> dfmono;
+ dfmono.instance();
+ dfmono->set_font_ptr(_font_source_code_pro,_font_source_code_pro_size);
+ //dfd->set_force_autohinter(true); //just looks better..i think?
+
+ MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("global/font_size"))*EDSCALE);
+
+ p_theme->set_default_theme_font(df);
- Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
- Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
- Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
- p_theme->set_font("doc","EditorFonts",doc_font);
- p_theme->set_font("doc_code","EditorFonts",doc_code_font);
- p_theme->set_font("doc_title","EditorFonts",doc_title_font);
+// Ref<BitmapFont> doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons"));
+// Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
+// Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
+
+ MAKE_DROID_SANS(df_title,int(EDITOR_DEF("help/help_title_font_size",18))*EDSCALE);
+
+ MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("help/help_font_size",16))*EDSCALE);
+
+
+ p_theme->set_font("doc","EditorFonts",df_doc);
+ p_theme->set_font("doc_title","EditorFonts",df_title);
+
+
+ Ref<DynamicFont> df_code;
+ df_code.instance();
+ df_code->set_size(int(EditorSettings::get_singleton()->get("global/source_font_size"))*EDSCALE);
+ df_code->set_font_data(dfmono);
+ MAKE_FALLBACKS(df_code);
+
+ p_theme->set_font("source","EditorFonts",df_code);
+
+ Ref<DynamicFont> df_doc_code;
+ df_doc_code.instance();
+ df_doc_code->set_size(int(EDITOR_DEF("help/help_source_font_size",14))*EDSCALE);
+ df_doc_code->set_font_data(dfmono);
+ MAKE_FALLBACKS(df_doc_code);
+
+
+ p_theme->set_font("doc_source","EditorFonts",df_doc_code);
+
+ if (editor_is_hidpi()) {
+ //replace default theme
+ Ref<Texture> di;
+ Ref<StyleBox> ds;
+ fill_default_theme(p_theme,df,df_doc,di,ds,true);
+
+ }
}
diff --git a/tools/editor/editor_help.cpp b/tools/editor/editor_help.cpp
index a8cb1a5730..2d0a8a80b0 100644
--- a/tools/editor/editor_help.cpp
+++ b/tools/editor/editor_help.cpp
@@ -130,6 +130,7 @@ void EditorHelpSearch::_update_search() {
else
cicon=def_icon;
+
for(int i=0;i<c.methods.size();i++) {
if( (term.begins_with(".") && c.methods[i].name.begins_with(term.right(1)))
|| (term.ends_with("(") && c.methods[i].name.ends_with(term.left(term.length()-1).strip_edges()))
@@ -519,7 +520,7 @@ EditorHelpIndex::EditorHelpIndex() {
search_box->connect("input_event", this, "_sbox_input");
class_list = memnew( Tree );
- vbc->add_margin_child(TTR("Class List: "), class_list, true);
+ vbc->add_margin_child(TTR("Class List:")+" ", class_list, true);
class_list->set_v_size_flags(SIZE_EXPAND_FILL);
class_list->connect("item_activated",this,"_tree_item_selected");
@@ -643,6 +644,13 @@ void EditorHelp::_class_desc_select(const String& p_select) {
}
+void EditorHelp::_class_desc_input(const InputEvent& p_input) {
+ if (p_input.type==InputEvent::MOUSE_BUTTON && p_input.mouse_button.pressed && p_input.mouse_button.button_index==1) {
+ class_desc->set_selection_enabled(false);
+ class_desc->set_selection_enabled(true);
+ }
+}
+
void EditorHelp::_add_type(const String& p_type) {
String t = p_type;
@@ -697,20 +705,20 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
//edited_class->show();
- DocData::ClassDoc &cd=doc->class_list[p_class];
+ DocData::ClassDoc cd=doc->class_list[p_class]; //make a copy, so we can sort without worrying
Color h_color;
- Ref<Font> doc_font = get_font("normal","Fonts");
- Ref<Font> doc_code_font = get_font("source","Fonts");
- Ref<Font> doc_title_font = get_font("large","Fonts");
+ Ref<Font> doc_font = get_font("doc","EditorFonts");
+ Ref<Font> doc_title_font = get_font("doc_title","EditorFonts");
+ Ref<Font> doc_code_font = get_font("doc_source","EditorFonts");
h_color=Color(1,1,1,1);
class_desc->push_font(doc_title_font);
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
- class_desc->add_text(TTR("Class: "));
+ class_desc->add_text(TTR("Class:")+" ");
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
_add_text(p_class);
class_desc->pop();
@@ -722,7 +730,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
- class_desc->add_text(TTR("Inherits: "));
+ class_desc->add_text(TTR("Inherits:")+" ");
class_desc->pop();
class_desc->pop();
@@ -756,7 +764,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (!found) {
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
- class_desc->add_text("Inherited by: ");
+ class_desc->add_text(TTR("Inherited by:")+" ");
class_desc->pop();
class_desc->pop();
@@ -794,7 +802,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
//class_desc->add_newline();
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.brief_description);
class_desc->pop();
@@ -805,9 +813,14 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
}
bool method_descr=false;
+ bool sort_methods = EditorSettings::get_singleton()->get("help/sort_functions_alphabetically");
+
if (cd.methods.size()) {
+ if (sort_methods)
+ cd.methods.sort();
+
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Public Methods:"));
@@ -979,6 +992,9 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
}
if (cd.signals.size()) {
+ if (sort_methods) {
+ cd.signals.sort();
+ }
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Signals:"));
@@ -1098,7 +1114,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.description);
class_desc->pop();
@@ -1168,7 +1184,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->add_newline();
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/text_color"));
- class_desc->push_font( get_font("normal","Fonts") );
+ class_desc->push_font( doc_font );
class_desc->push_indent(1);
_add_text(cd.methods[i].description);
class_desc->pop();
@@ -1248,9 +1264,12 @@ void EditorHelp::_add_text(const String& p_bbcode) {
class_desc->push_indent(1);*/
int pos = 0;
+ Ref<Font> doc_font = get_font("doc","EditorFonts");
+ Ref<Font> doc_code_font = get_font("doc_source","EditorFonts");
+
String bbcode=p_bbcode.replace("\t"," ").replace("\r"," ").strip_edges();
- //find double newlines, keep them
+ //change newlines for double newlines
for(int i=0;i<bbcode.length();i++) {
//find valid newlines (double)
@@ -1269,10 +1288,13 @@ void EditorHelp::_add_text(const String& p_bbcode) {
if (dnl) {
bbcode[i]=0xFFFF;
+ //keep
i=j;
} else {
- bbcode[i]=' ';
- i=j-1;
+ bbcode=bbcode.insert(i,"\n");
+ i++;
+ //bbcode[i]=' ';
+ //i=j-1;
}
}
}
@@ -1280,7 +1302,7 @@ void EditorHelp::_add_text(const String& p_bbcode) {
//remove double spaces or spaces after newlines
for(int i=0;i<bbcode.length();i++) {
- if (bbcode[i]==' ' || bbcode[i]==0xFFFF) {
+ if (bbcode[i]==' ' || bbcode[i]=='\n' || bbcode[i]==0xFFFF) {
for(int j=i+1;j<p_bbcode.length();j++) {
if (bbcode[j]==' ') {
@@ -1353,35 +1375,45 @@ void EditorHelp::_add_text(const String& p_bbcode) {
} else if (tag.begins_with("method ")) {
String m = tag.substr(7,tag.length());
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_meta("@"+m);
class_desc->add_text(m+"()");
class_desc->pop();
+ class_desc->pop();
pos=brk_end+1;
} else if (doc->class_list.has(tag)) {
+ class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_meta("#"+tag);
class_desc->add_text(tag);
class_desc->pop();
+ class_desc->pop();
pos=brk_end+1;
} else if (tag=="b") {
//use bold font
- class_desc->push_font(get_font("source","Fonts"));
+ class_desc->push_font(doc_code_font);
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="i") {
//use italics font
- class_desc->push_font(get_font("italic","Fonts"));
+ Color text_color = EditorSettings::get_singleton()->get("text_editor/text_color");
+ //no italics so emphasize with color
+ text_color.r*=1.1;
+ text_color.g*=1.1;
+ text_color.b*=1.1;
+ class_desc->push_color(text_color);
+ //class_desc->push_font(get_font("italic","Fonts"));
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="code" || tag=="codeblock") {
//use monospace font
- class_desc->push_font(get_font("source","EditorFonts"));
+ class_desc->push_font(doc_code_font);
pos=brk_end+1;
tag_stack.push_front(tag);
} else if (tag=="center") {
@@ -1496,7 +1528,7 @@ void EditorHelp::_add_text(const String& p_bbcode) {
if (font.is_valid())
class_desc->push_font(font);
else {
- class_desc->push_font(get_font("source","rFonts"));
+ class_desc->push_font(doc_font);
}
pos=brk_end+1;
@@ -1600,6 +1632,7 @@ void EditorHelp::_bind_methods() {
ObjectTypeDB::bind_method("_class_list_select",&EditorHelp::_class_list_select);
ObjectTypeDB::bind_method("_class_desc_select",&EditorHelp::_class_desc_select);
+ ObjectTypeDB::bind_method("_class_desc_input",&EditorHelp::_class_desc_input);
// ObjectTypeDB::bind_method("_button_pressed",&EditorHelp::_button_pressed);
ObjectTypeDB::bind_method("_scroll_changed",&EditorHelp::_scroll_changed);
ObjectTypeDB::bind_method("_request_help",&EditorHelp::_request_help);
@@ -1618,6 +1651,7 @@ EditorHelp::EditorHelp() {
VBoxContainer *vbc = this;
+ EDITOR_DEF("help/sort_functions_alphabetically",true);
//class_list->connect("meta_clicked",this,"_class_list_select");
//class_list->set_selection_enabled(true);
@@ -1633,6 +1667,7 @@ EditorHelp::EditorHelp() {
pc->add_child(class_desc);
class_desc->set_area_as_parent_rect(8);
class_desc->connect("meta_clicked",this,"_class_desc_select");
+ class_desc->connect("input_event",this,"_class_desc_input");
}
class_desc->get_v_scroll()->connect("value_changed",this,"_scroll_changed");
diff --git a/tools/editor/editor_help.h b/tools/editor/editor_help.h
index f6dda9f545..c3d19894df 100644
--- a/tools/editor/editor_help.h
+++ b/tools/editor/editor_help.h
@@ -157,6 +157,7 @@ class EditorHelp : public VBoxContainer {
void _scroll_changed(double p_scroll);
void _class_list_select(const String& p_select);
void _class_desc_select(const String& p_select);
+ void _class_desc_input(const InputEvent& p_input);
Error _goto_desc(const String& p_class, int p_vscr=-1);
//void _update_history_buttons();
diff --git a/tools/editor/editor_import_export.cpp b/tools/editor/editor_import_export.cpp
index 91357e0f80..f9b9c0b41c 100644
--- a/tools/editor/editor_import_export.cpp
+++ b/tools/editor/editor_import_export.cpp
@@ -85,6 +85,9 @@ void EditorImportPlugin::_bind_methods() {
ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_dialog",PropertyInfo(Variant::STRING,"from")));
ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::INT,"import",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"from",PROPERTY_HINT_RESOURCE_TYPE,"ResourceImportMetadata")));
ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::RAW_ARRAY,"custom_export",PropertyInfo(Variant::STRING,"path"),PropertyInfo(Variant::OBJECT,"platform",PROPERTY_HINT_RESOURCE_TYPE,"EditorExportPlatform")));
+ ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("import_from_drop",PropertyInfo(Variant::STRING_ARRAY,"files"),PropertyInfo(Variant::STRING,"dest_path")));
+ ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo("reimport_multiple_files",PropertyInfo(Variant::STRING_ARRAY,"files")));
+ ObjectTypeDB::add_virtual_method(get_type_static(),MethodInfo(Variant::BOOL,"can_reimport_multiple_files"));
// BIND_VMETHOD( mi );
}
@@ -130,13 +133,37 @@ Error EditorImportPlugin::import(const String& p_path, const Ref<ResourceImportM
Vector<uint8_t> EditorImportPlugin::custom_export(const String& p_path, const Ref<EditorExportPlatform> &p_platform) {
- if (get_script_instance() && get_script_instance()->has_method("_custom_export")) {
- get_script_instance()->call("_custom_export",p_path,p_platform);
+ if (get_script_instance() && get_script_instance()->has_method("custom_export")) {
+ get_script_instance()->call("custom_export",p_path,p_platform);
}
return Vector<uint8_t>();
}
+bool EditorImportPlugin::can_reimport_multiple_files() const {
+
+ if (get_script_instance() && get_script_instance()->has_method("can_reimport_multiple_files")) {
+ return get_script_instance()->call("can_reimport_multiple_files");
+ }
+
+ return false;
+}
+void EditorImportPlugin::reimport_multiple_files(const Vector<String>& p_list) {
+
+ if (get_script_instance() && get_script_instance()->has_method("reimport_multiple_files")) {
+ get_script_instance()->call("reimport_multiple_files",p_list);
+ }
+
+}
+
+void EditorImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+ if (get_script_instance() && get_script_instance()->has_method("import_from_drop")) {
+ get_script_instance()->call("import_from_drop",p_drop,p_dest_path);
+ }
+
+}
+
EditorImportPlugin::EditorImportPlugin() {
@@ -240,12 +267,12 @@ static void _edit_files_with_filter(DirAccess *da,const List<String>& p_filters,
for(const List<String>::Element *F=p_filters.front();F;F=F->next()) {
if (fullpath.matchn(F->get())) {
- String act = TTR("Added: ");
+ String act = TTR("Added:")+" ";
if (!exclude) {
r_list.insert(fullpath);
} else {
- act = TTR("Removed: ");
+ act = TTR("Removed:")+" ";
r_list.erase(fullpath);
}
@@ -862,11 +889,11 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
- Ref<EditorTextureImportPlugin> plugin = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture_atlas");
+ Ref<EditorTextureImportPlugin> plugin = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture");
Error err = plugin->import2(dst_file,imd,get_image_compression(),true);
if (err) {
- EditorNode::add_io_error(TTR("Error saving atlas! ")+dst_file.get_file());
+ EditorNode::add_io_error(TTR("Error saving atlas:")+" "+dst_file.get_file());
return ERR_CANT_CREATE;
}
@@ -916,7 +943,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
String path = EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmpatlas.atex";
Error err = ResourceSaver::save(path,atex);
if (err!=OK) {
- EditorNode::add_io_error(TTR("Could not save atlas subtexture: ")+path);
+ EditorNode::add_io_error(TTR("Could not save atlas subtexture:")+" "+path);
return ERR_CANT_CREATE;
}
Vector<uint8_t> data = FileAccess::get_file_as_array(path);
@@ -1157,7 +1184,7 @@ Error EditorExportPlatform::save_pack_file(void *p_userdata,const String& p_path
MD5Final(&ctx);
pd->f->store_buffer(ctx.digest,16);
}
- pd->ep->step(TTR("Storing File: ")+p_path,2+p_file*100/p_total,false);
+ pd->ep->step(TTR("Storing File:")+" "+p_path,2+p_file*100/p_total,false);
pd->count++;
pd->ftmp->store_buffer(p_data.ptr(),p_data.size());
if (pd->alignment > 1) {
@@ -1195,7 +1222,7 @@ Error EditorExportPlatform::save_zip_file(void *p_userdata,const String& p_path,
zipWriteInFileInZip(zip,p_data.ptr(),p_data.size());
zipCloseFileInZip(zip);
- zd->ep->step(TTR("Storing File: ")+p_path,2+p_file*100/p_total,false);
+ zd->ep->step(TTR("Storing File:")+" "+p_path,2+p_file*100/p_total,false);
zd->count++;
return OK;
@@ -1309,7 +1336,7 @@ Error EditorExportPlatformPC::export_project(const String& p_path, bool p_debug,
- EditorProgress ep("export",TTR("Exporting for ")+get_name(),102);
+ EditorProgress ep("export",vformat(TTR("Exporting for %s"),get_name()),102);
const int BUFSIZE = 32768;
diff --git a/tools/editor/editor_import_export.h b/tools/editor/editor_import_export.h
index 5e09d674d1..e21fd8c8f8 100644
--- a/tools/editor/editor_import_export.h
+++ b/tools/editor/editor_import_export.h
@@ -60,6 +60,9 @@ public:
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ virtual void import_from_drop(const Vector<String>& p_drop,const String& p_dest_path);
+ virtual void reimport_multiple_files(const Vector<String>& p_list);
+ virtual bool can_reimport_multiple_files() const;
virtual Vector<uint8_t> custom_export(const String& p_path,const Ref<EditorExportPlatform> &p_platform);
EditorImportPlugin();
diff --git a/tools/editor/editor_node.cpp b/tools/editor/editor_node.cpp
index fc676bda7e..01a6e3514c 100644
--- a/tools/editor/editor_node.cpp
+++ b/tools/editor/editor_node.cpp
@@ -59,11 +59,13 @@
// plugins
#include "plugins/sprite_frames_editor_plugin.h"
-#include "plugins/sprite_region_editor_plugin.h"
+#include "plugins/texture_region_editor_plugin.h"
#include "plugins/canvas_item_editor_plugin.h"
#include "addon_editor_plugin.h"
#include "plugins/spatial_editor_plugin.h"
#include "plugins/sample_editor_plugin.h"
+#include "plugins/texture_editor_plugin.h"
+#include "plugins/material_editor_plugin.h"
#include "plugins/sample_library_editor_plugin.h"
#include "plugins/sample_player_editor_plugin.h"
#include "plugins/camera_editor_plugin.h"
@@ -72,6 +74,7 @@
#include "plugins/item_list_editor_plugin.h"
#include "plugins/stream_editor_plugin.h"
#include "plugins/multimesh_editor_plugin.h"
+#include "plugins/mesh_instance_editor_plugin.h"
#include "plugins/mesh_editor_plugin.h"
#include "plugins/theme_editor_plugin.h"
@@ -103,6 +106,7 @@
#include "tools/editor/io_plugins/editor_font_import_plugin.h"
#include "tools/editor/io_plugins/editor_sample_import_plugin.h"
#include "tools/editor/io_plugins/editor_translation_import_plugin.h"
+#include "tools/editor/io_plugins/editor_bitmask_import_plugin.h"
#include "tools/editor/io_plugins/editor_mesh_import_plugin.h"
#include "tools/editor/io_plugins/editor_export_scene.h"
@@ -185,10 +189,22 @@ void EditorNode::_unhandled_input(const InputEvent& p_event) {
if (!p_event.key.mod.shift && !p_event.key.mod.command)
_editor_select(EDITOR_SCRIPT);
break;
- case KEY_F5: _menu_option_confirm((p_event.key.mod.control&&p_event.key.mod.shift)?RUN_PLAY_CUSTOM_SCENE:RUN_PLAY,true); break;
+ /* case KEY_F5: _menu_option_confirm((p_event.key.mod.control&&p_event.key.mod.shift)?RUN_PLAY_CUSTOM_SCENE:RUN_PLAY,true); break;
case KEY_F6: _menu_option_confirm(RUN_PLAY_SCENE,true); break;
- case KEY_F7: _menu_option_confirm(RUN_PAUSE,true); break;
- case KEY_F8: _menu_option_confirm(RUN_STOP,true); break;
+ //case KEY_F7: _menu_option_confirm(RUN_PAUSE,true); break;
+ case KEY_F8: _menu_option_confirm(RUN_STOP,true); break;*/
+ case KEY_F11: {
+ if (p_event.key.mod.shift) {
+ if (p_event.key.mod.control) {
+ set_distraction_free_mode(!get_distraction_free_mode());
+ } else if (distraction_free_mode) {
+ distraction_free_mode = false;
+ _update_top_menu_visibility();
+ } else {
+ set_docks_visible(!get_docks_visible());
+ }
+ }
+ } break;
}
}
@@ -285,6 +301,7 @@ void EditorNode::_notification(int p_what) {
get_tree()->get_root()->set_as_audio_listener(false);
get_tree()->get_root()->set_as_audio_listener_2d(false);
get_tree()->set_auto_accept_quit(false);
+ get_tree()->connect("files_dropped",this,"_dropped_files");
//VisualServer::get_singleton()->viewport_set_hide_canvas(editor->get_scene_root()->get_viewport(),false);
//import_monitor->scan_changes();
@@ -372,6 +389,7 @@ void EditorNode::_notification(int p_what) {
_menu_option_confirm(DEPENDENCY_LOAD_CHANGED_IMAGES,true);
}
+ waiting_for_sources_changed=true;
EditorFileSystem::get_singleton()->scan_sources();
}
@@ -409,6 +427,42 @@ void EditorNode::_fs_changed() {
void EditorNode::_sources_changed(bool p_exist) {
+ if (p_exist && bool(EditorSettings::get_singleton()->get("import/automatic_reimport_on_sources_changed"))) {
+ p_exist=false;
+
+ List<String> changed_sources;
+ EditorFileSystem::get_singleton()->get_changed_sources(&changed_sources);
+
+
+ EditorProgress ep("reimport",TTR("Re-Importing"),changed_sources.size());
+ int step_idx=0;
+
+ for(List<String>::Element *E=changed_sources.front();E;E=E->next()) {
+
+ ep.step(TTR("Importing:")+" "+E->get(),step_idx++);
+
+ Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(E->get());
+ ERR_CONTINUE(rimd.is_null());
+ String editor = rimd->get_editor();
+ if (editor.begins_with("texture_")) {
+ editor="texture"; //compatibility fix for old versions
+ }
+ Ref<EditorImportPlugin> eip = EditorImportExport::get_singleton()->get_import_plugin_by_name(editor);
+ ERR_CONTINUE(eip.is_null());
+ Error err = eip->import(E->get(),rimd);
+ if (err!=OK) {
+ EditorNode::add_io_error("Error Re Importing:\n "+E->get());
+ }
+
+ }
+
+ EditorFileSystem::get_singleton()->scan_sources();
+ waiting_for_sources_changed=false;
+
+ return;
+ }
+
+
if (p_exist) {
sources_button->set_icon(gui_base->get_icon("DependencyChanged","EditorIcons"));
@@ -421,6 +475,8 @@ void EditorNode::_sources_changed(bool p_exist) {
}
+ waiting_for_sources_changed=false;
+
}
void EditorNode::_vp_resized() {
@@ -432,13 +488,13 @@ void EditorNode::_rebuild_import_menu()
{
PopupMenu* p = import_menu->get_popup();
p->clear();
- p->add_item(TTR("Node from scene"), FILE_IMPORT_SUBSCENE);
- p->add_separator();
+ //p->add_item(TTR("Node From Scene"), FILE_IMPORT_SUBSCENE);
+ //p->add_separator();
for (int i = 0; i < editor_import_export->get_import_plugin_count(); i++) {
p->add_item(editor_import_export->get_import_plugin(i)->get_visible_name(), IMPORT_PLUGIN_BASE + i);
}
- p->add_separator();
- p->add_item(TTR("Re-Import.."), SETTINGS_IMPORT);
+ //p->add_separator();
+ //p->add_item(TTR("Re-Import.."), SETTINGS_IMPORT);
}
void EditorNode::_node_renamed() {
@@ -606,15 +662,15 @@ void EditorNode::_dialog_display_file_error(String p_file,Error p_error) {
case ERR_FILE_CANT_WRITE: {
- accept->set_text(TTR("Can't open file for writing: ")+p_file.extension());
+ accept->set_text(TTR("Can't open file for writing:")+" "+p_file.extension());
} break;
case ERR_FILE_UNRECOGNIZED: {
- accept->set_text(TTR("File format requested unknown: ")+p_file.extension());
+ accept->set_text(TTR("Requested file format unknown:")+" "+p_file.extension());
} break;
default: {
- accept->set_text(TTR("Error Saving."));
+ accept->set_text(TTR("Error while saving."));
}break;
}
@@ -941,6 +997,7 @@ void EditorNode::_save_scene_with_preview(String p_file) {
save.step(TTR("Creating Thumbnail"),3);
Image img = VS::get_singleton()->viewport_get_screen_capture(viewport);
int preview_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");;
+ preview_size*=EDSCALE;
int width,height;
if (img.get_width() > preview_size && img.get_width() >= img.get_height()) {
@@ -1071,8 +1128,8 @@ void EditorNode::_import_action(const String& p_action) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(TTR("Error importing scene."));
+ accept->get_ok()->set_text("Ugh");
+ accept->set_text("Error importing scene.");
accept->popup_centered(Size2(300,70));;
return;
}
@@ -1087,8 +1144,8 @@ void EditorNode::_import_action(const String& p_action) {
memdelete(src);
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(TTR("Error load scene to update."));
+ accept->get_ok()->set_text("Ugh");
+ accept->set_text("Error load scene to update.");
accept->popup_centered(Size2(300,70));;
return;
}
@@ -1128,8 +1185,8 @@ void EditorNode::_import(const String &p_file) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(TTR("Error importing scene."));
+ accept->get_ok()->set_text("Ugh");
+ accept->set_text("Error importing scene.");
accept->popup_centered(Size2(300,70));;
return;
}
@@ -1251,7 +1308,7 @@ void EditorNode::_dialog_action(String p_file) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Can't load MeshLibrary for merging!."));
+ accept->set_text(TTR("Can't load MeshLibrary for merging!"));
accept->popup_centered_minsize();
return;
}
@@ -1268,7 +1325,7 @@ void EditorNode::_dialog_action(String p_file) {
if (err) {
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Error saving MeshLibrary!."));
+ accept->set_text(TTR("Error saving MeshLibrary!"));
accept->popup_centered_minsize();
return;
}
@@ -1286,7 +1343,7 @@ void EditorNode::_dialog_action(String p_file) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Can't load TileSet for merging!."));
+ accept->set_text(TTR("Can't load TileSet for merging!"));
accept->popup_centered_minsize();
return;
}
@@ -1304,7 +1361,7 @@ void EditorNode::_dialog_action(String p_file) {
if (err) {
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Error saving TileSet!."));
+ accept->set_text(TTR("Error saving TileSet!"));
accept->popup_centered_minsize();
return;
}
@@ -1328,7 +1385,7 @@ void EditorNode::_dialog_action(String p_file) {
}
int ret = unzGoToFirstFile(pkg);
- int fc=0; //coun them
+ int fc=0; //count them
while(ret==UNZ_OK) {
fc++;
@@ -1368,7 +1425,7 @@ void EditorNode::_dialog_action(String p_file) {
file=file.get_file();
- p.step(TTR("Importing: ")+file,fc);
+ p.step(TTR("Importing:")+" "+file,fc);
print_line("IMPORT "+file);
FileAccess *f = FileAccess::open(EditorSettings::get_singleton()->get_settings_path()+"/templates/"+file,FileAccess::WRITE);
@@ -1454,7 +1511,7 @@ void EditorNode::_dialog_action(String p_file) {
_update_layouts_menu();
if (p_file=="Default") {
- show_warning(TTR("Restored Default layout to base settings."));
+ show_warning(TTR("Restored default layout to base settings."));
}
} break;
@@ -1477,6 +1534,7 @@ void EditorNode::push_item(Object *p_object,const String& p_property) {
if (!p_object) {
property_editor->edit(NULL);
+ node_dock->set_node(NULL);
scene_tree_dock->set_selected(NULL);
return;
}
@@ -1622,6 +1680,7 @@ void EditorNode::_edit_current() {
scene_tree_dock->set_selected(NULL);
property_editor->edit( NULL );
+ node_dock->set_node(NULL);
object_menu->set_disabled(true);
_display_top_editors(false);
@@ -1641,6 +1700,7 @@ void EditorNode::_edit_current() {
ERR_FAIL_COND(!current_res);
scene_tree_dock->set_selected(NULL);
property_editor->edit( current_res );
+ node_dock->set_node(NULL);
object_menu->set_disabled(false);
//resources_dock->add_resource(Ref<Resource>(current_res));
@@ -1657,6 +1717,7 @@ void EditorNode::_edit_current() {
property_editor->edit( current_node );
+ node_dock->set_node( current_node );
scene_tree_dock->set_selected(current_node);
object_menu->get_popup()->clear();
@@ -1665,6 +1726,7 @@ void EditorNode::_edit_current() {
} else {
property_editor->edit( current_obj );
+ node_dock->set_node(NULL);
//scene_tree_dock->set_selected(current_node);
//object_menu->get_popup()->clear();
@@ -1712,7 +1774,7 @@ void EditorNode::_edit_current() {
_set_top_editors(sub_plugins);
_set_editing_top_editors(current_obj);
_display_top_editors(true);
-
+
} else if (!editor_plugins_over->get_plugins_list().empty()) {
_hide_top_editors();
@@ -1733,18 +1795,18 @@ void EditorNode::_edit_current() {
PopupMenu *p=object_menu->get_popup();
p->clear();
- p->add_item(TTR("Copy Params"),OBJECT_COPY_PARAMS);
- p->add_item(TTR("Set Params"),OBJECT_PASTE_PARAMS);
+ p->add_shortcut(ED_SHORTCUT("property_editor/copy_params",TTR("Copy Params")),OBJECT_COPY_PARAMS);
+ p->add_shortcut(ED_SHORTCUT("property_editor/paste_params",TTR("Paste Params")),OBJECT_PASTE_PARAMS);
p->add_separator();
- p->add_item(TTR("Paste Resource"),RESOURCE_PASTE);
+ p->add_shortcut(ED_SHORTCUT("property_editor/paste_resource",TTR("Paste Resource")),RESOURCE_PASTE);
if (is_resource) {
- p->add_item(TTR("Copy Resource"),RESOURCE_COPY);
- p->add_item(TTR("Make Built-In"),RESOURCE_UNREF);
+ p->add_shortcut(ED_SHORTCUT("property_editor/copy_resource",TTR("Copy Resource")),RESOURCE_COPY);
+ p->add_shortcut(ED_SHORTCUT("property_editor/unref_resource",TTR("Make Built-In")),RESOURCE_UNREF);
}
p->add_separator();
- p->add_item(TTR("Make Sub-Resources Unique"),OBJECT_UNIQUE_RESOURCES);
+ p->add_shortcut(ED_SHORTCUT("property_editor/make_subresources_unique",TTR("Make Sub-Resources Unique")),OBJECT_UNIQUE_RESOURCES);
p->add_separator();
- p->add_icon_item(gui_base->get_icon("Help","EditorIcons"),"Class Reference",OBJECT_REQUEST_HELP);
+ p->add_icon_shortcut(gui_base->get_icon("Help","EditorIcons"),ED_SHORTCUT("property_editor/open_help",TTR("Open in Help")),OBJECT_REQUEST_HELP);
List<MethodInfo> methods;
current_obj->get_method_list(&methods);
@@ -1769,7 +1831,7 @@ void EditorNode::_edit_current() {
}
//p->add_separator();
- //p->add_item(TTR("All Methods"),OBJECT_CALL_METHOD);
+ //p->add_item("All Methods",OBJECT_CALL_METHOD);
update_keying();
@@ -1832,7 +1894,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("No scene to run exists."));
+ accept->set_text(TTR("There is no defined scene to run."));
accept->popup_centered_minsize();
return;
}
@@ -1896,7 +1958,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Current scene was never saved, please save scene before running."));
+ accept->set_text(TTR("Current scene was never saved, please save it prior to running."));
accept->popup_centered_minsize();
return;
}
@@ -1998,11 +2060,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
switch( p_option ) {
case FILE_NEW_SCENE: {
+ // TODO: Drop such obsolete commented code
/*
if (!p_confirmed) {
- confirmation->get_ok()->set_text(TTR("Yes"));
+ confirmation->get_ok()->set_text("Yes");
//confirmation->get_cancel()->show();
- confirmation->set_text(TTR("Start a New Scene? (Current will be lost)"));
+ confirmation->set_text("Start a New Scene? (Current will be lost)");
confirmation->popup_centered_minsize();
break;
}*/
@@ -2058,7 +2121,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//quick_open->popup("Resource", false, true);
- //quick_open->set_title(TTR("Quick Search File.."));
+ //quick_open->set_title("Quick Search File..");
scenes_dock->focus_on_filter();
} break;
@@ -2150,7 +2213,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String existing;
if (extensions.size()) {
- existing="new_scene."+extensions.front()->get().to_lower();
+ String root_name(get_edited_scene()->get_name());
+ existing=root_name+"."+extensions.front()->get().to_lower();
}
file->set_current_path(existing);
@@ -2221,7 +2285,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//confirmation->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
+ accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a tree root.");
accept->popup_centered(Size2(300,70));;
break;
@@ -2243,8 +2307,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} else {
current_option=-1;
//confirmation->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Please save the scene first."));
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Please save the scene first.");
accept->popup_centered(Size2(300,70));;
break;
@@ -2259,7 +2323,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String target = export_db->get_current_platform();
Ref<EditorExporter> exporter = export_db->get_exporter(target);
if (exporter.is_null()) {
- accept->set_text(TTR("No exporter for platform '")+target+"' yet.");
+ accept->set_text("No exporter for platform '"+target+"' yet.");
accept->popup_centered(Size2(300,70));;
return;
}
@@ -2343,8 +2407,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
confirmation->get_ok()->set_text(TTR("Quit"));
//confirmation->get_cancel()->show();
- confirmation->set_text(TTR("Exit the Editor?"));
- confirmation->popup_centered(Size2(180,70));
+ confirmation->set_text(TTR("Exit the editor?"));
+ confirmation->popup_centered(Size2(180,70)*EDSCALE);
break;
}
@@ -2411,7 +2475,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String filename = scene->get_filename();
if (filename==String()) {
- show_warning(TTR("Can't reload a scene that was never saved.."));
+ show_warning(TTR("Can't reload a scene that was never saved."));
break;
}
@@ -2440,7 +2504,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
+ accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
accept->popup_centered(Size2(300,70));;
break;
@@ -2452,7 +2516,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//confirmation->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
+ accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
accept->popup_centered(Size2(300,70));;
break;
@@ -2464,8 +2528,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(String(TTR("Error loading scene from "))+external_file);
+ accept->get_ok()->set_text("Ugh");
+ accept->set_text("Error loading scene from "+external_file);
accept->popup_centered(Size2(300,70));;
return;
}
@@ -2473,7 +2537,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
instanced_scene->generate_instance_state();
instanced_scene->set_filename( Globals::get_singleton()->localize_path(external_file) );
- editor_data.get_undo_redo().create_action(TTR("Instance Scene"));
+ editor_data.get_undo_redo().create_action("Instance Scene");
editor_data.get_undo_redo().add_do_method(parent,"add_child",instanced_scene);
editor_data.get_undo_redo().add_do_method(instanced_scene,"set_owner",edited_scene);
editor_data.get_undo_redo().add_do_reference(instanced_scene);
@@ -2636,11 +2700,6 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
}
} break;
- case RUN_PAUSE: {
-
- emit_signal("pause_pressed");
-
- } break;
case RUN_STOP: {
if (editor_run.get_status()==EditorRun::STATUS_STOP)
@@ -2682,7 +2741,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (!p_confirmed) {
confirmation->get_ok()->set_text(TTR("Yes"));
- confirmation->set_text("Open Project Manager? \n(Unsaved changes will be lost)");
+ confirmation->set_text(TTR("Open Project Manager? \n(Unsaved changes will be lost)"));
confirmation->popup_centered_minsize();
break;
}
@@ -2692,8 +2751,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String exec = OS::get_singleton()->get_executable_path();
List<String> args;
- //args.push_back ( "-path" );
- //args.push_back (exec.get_base_dir() );
+ args.push_back("-path");
+ args.push_back(exec.get_base_dir());
args.push_back("-pm");
OS::ProcessID pid=0;
@@ -2707,12 +2766,14 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (ischecked) {
file_server->stop();
+ run_native->set_deploy_dumb(false);
//debug_button->set_icon(gui_base->get_icon("FileServer","EditorIcons"));
- //debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),TTR("Enable File Server"));
+ //debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),"Enable File Server");
} else {
file_server->start();
+ run_native->set_deploy_dumb(true);
//debug_button->set_icon(gui_base->get_icon("FileServerActive","EditorIcons"));
- //debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),TTR("Disable File Server"));
+ //debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),"Disable File Server");
}
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),!ischecked);
@@ -2726,13 +2787,13 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
ScriptEditor::get_singleton()->get_debugger()->set_live_debugging(!ischecked);
} break;
- case RUN_DEPLOY_DUMB_CLIENTS: {
+ /*case RUN_DEPLOY_DUMB_CLIENTS: {
bool ischecked = debug_button->get_popup()->is_item_checked( debug_button->get_popup()->get_item_index(RUN_DEPLOY_DUMB_CLIENTS));
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_DEPLOY_DUMB_CLIENTS),!ischecked);
run_native->set_deploy_dumb(!ischecked);
- } break;
+ } break;*/
case RUN_DEPLOY_REMOTE_DEBUG: {
bool ischecked = debug_button->get_popup()->is_item_checked( debug_button->get_popup()->get_item_index(RUN_DEPLOY_REMOTE_DEBUG));
@@ -2754,6 +2815,14 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
run_native->set_debug_navigation(!ischecked);
editor_run.set_debug_navigation(!ischecked);
} break;
+ case RUN_RELOAD_SCRIPTS: {
+
+
+ bool ischecked = debug_button->get_popup()->is_item_checked( debug_button->get_popup()->get_item_index(RUN_RELOAD_SCRIPTS));
+ debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_RELOAD_SCRIPTS),!ischecked);
+
+ ScriptEditor::get_singleton()->set_live_auto_reload_running_scripts(!ischecked);
+ } break;
case SETTINGS_UPDATE_ALWAYS: {
update_menu->get_popup()->set_item_checked(0,true);
@@ -2786,7 +2855,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} break;
case SETTINGS_ABOUT: {
- about->popup_centered(Size2(500,130));
+ about->popup_centered(Size2(500,130)*EDSCALE);
} break;
case SOURCES_REIMPORT: {
@@ -2824,9 +2893,9 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (!p_confirmed) {
- confirmation->get_ok()->set_text(TTR("Open"));
+ confirmation->get_ok()->set_text("Open");
//confirmation->get_cancel()->show();
- confirmation->set_text(TTR("Current scene changed, save and re-import ?"));
+ confirmation->set_text("Current scene changed, save and re-import ?");
confirmation->popup_centered(Size2(300,70));
break;
@@ -2839,8 +2908,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Can't import if edited scene was not saved.")); //i dont think this code will ever run
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Can't import if edited scene was not saved."); //i dont think this code will ever run
accept->popup_centered(Size2(300,70));;
break;
@@ -2858,6 +2927,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} break;
+
default: {
if (p_option>=OBJECT_METHOD_BASE) {
@@ -3256,7 +3326,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (!get_edited_scene()) {
get_scene()->quit();
- ERR_EXPLAIN(TTR("No scene to optimize (loading failed?"));
+ ERR_EXPLAIN("No scene to optimize (loading failed?)");
ERR_FAIL_V(ERR_FILE_NOT_FOUND);
}
@@ -3281,10 +3351,10 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (!Globals::get_singleton()->has(preset)) {
//accept->"()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Optimizer preset not found: ")+p_preset);
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Optimizer preset not found: "+p_preset);
accept->popup_centered(Size2(300,70));;
- ERR_EXPLAIN(TTR("Optimizer preset not found: ")+p_preset);
+ ERR_EXPLAIN("Optimizer preset not found: "+p_preset);
ERR_FAIL_V(ERR_INVALID_PARAMETER);
}
@@ -3304,7 +3374,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
}
}
- ERR_EXPLAIN(TTR("Preset '")+p_preset+"' references nonexistent saver: "+type);
+ ERR_EXPLAIN("Preset '"+p_preset+"' references nonexistent saver: "+type);
ERR_FAIL_COND_V(saver.is_null(),ERR_INVALID_DATA);
List<Variant> keys;
@@ -3339,8 +3409,8 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."));
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied.");
accept->popup_centered(Size2(300,70));;
return ERR_INVALID_DATA;
@@ -3350,8 +3420,8 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (err) {
//accept->"()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Error saving optimized scene: ")+path);
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Error saving optimized scene: "+path);
accept->popup_centered(Size2(300,70));;
ERR_FAIL_COND_V(err,err);
@@ -3640,7 +3710,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
for (Map<String,Set<String> >::Element *E=dependency_errors.front();E;E=E->next()) {
- String txt=TTR("Scene '")+E->key()+"' has broken dependencies:\n";
+ String txt=vformat(TTR("Scene '%s' has broken dependencies:"),E->key())+"\n";
for(Set<String>::Element *F=E->get().front();F;F=F->next()) {
txt+="\t"+F->get()+"\n";
}
@@ -3753,6 +3823,10 @@ ScenesDock *EditorNode::get_scenes_dock() {
return scenes_dock;
}
+SceneTreeDock *EditorNode::get_scene_tree_dock() {
+
+ return scene_tree_dock;
+}
void EditorNode::_instance_request(const String& p_path){
@@ -3921,8 +3995,8 @@ void EditorNode::_save_optimized() {
if (err) {
//accept->"()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text(TTR("Error saving optimized scene: ")+path);
+ accept->get_ok()->set_text("I see..");
+ accept->set_text("Error saving optimized scene: "+path);
accept->popup_centered(Size2(300,70));;
return;
@@ -4476,32 +4550,59 @@ void EditorNode::_update_dock_slots_visibility() {
right_hsplit,
};
- for(int i=0;i<DOCK_SLOT_MAX;i++) {
+ if (!docks_visible) {
- if (dock_slot[i]->get_tab_count())
- dock_slot[i]->show();
- else
+ for(int i=0;i<DOCK_SLOT_MAX;i++) {
dock_slot[i]->hide();
+ }
- }
+ for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
+ splits[i]->hide();
+ }
+ right_hsplit->hide();
+ bottom_panel->hide();
+ } else {
+ for(int i=0;i<DOCK_SLOT_MAX;i++) {
- for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
- bool in_use = dock_slot[i*2+0]->get_tab_count() || dock_slot[i*2+1]->get_tab_count();
- if (in_use)
- splits[i]->show();
- else
- splits[i]->hide();
- }
+ if (dock_slot[i]->get_tab_count())
+ dock_slot[i]->show();
+ else
+ dock_slot[i]->hide();
- for(int i=0;i<DOCK_SLOT_MAX;i++) {
+ }
- if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) {
- dock_slot[i]->set_current_tab(0);
+
+ for(int i=0;i<DOCK_SLOT_MAX/2;i++) {
+ bool in_use = dock_slot[i*2+0]->get_tab_count() || dock_slot[i*2+1]->get_tab_count();
+ if (in_use)
+ splits[i]->show();
+ else
+ splits[i]->hide();
}
+
+ for(int i=0;i<DOCK_SLOT_MAX;i++) {
+
+ if (!dock_slot[i]->is_hidden() && dock_slot[i]->get_tab_count()) {
+ dock_slot[i]->set_current_tab(0);
+ }
+ }
+ bottom_panel->show();
+ right_hsplit->show();
}
}
+void EditorNode::_update_top_menu_visibility() {
+ if (distraction_free_mode) {
+ play_cc->hide();
+ menu_hb->hide();
+ scene_tabs->hide();
+ } else {
+ play_cc->show();
+ menu_hb->show();
+ scene_tabs->show();
+ }
+}
void EditorNode::_load_docks_from_config(Ref<ConfigFile> p_layout, const String& p_section) {
@@ -4600,10 +4701,10 @@ void EditorNode::_update_layouts_menu() {
overridden_default_layout=-1;
editor_layouts->set_size(Vector2());
- editor_layouts->add_item(TTR("Save Layout"), SETTINGS_LAYOUT_SAVE);
- editor_layouts->add_item(TTR("Delete Layout"), SETTINGS_LAYOUT_DELETE);
+ editor_layouts->add_shortcut(ED_SHORTCUT("layout/save",TTR("Save Layout")), SETTINGS_LAYOUT_SAVE);
+ editor_layouts->add_shortcut(ED_SHORTCUT("layout/load",TTR("Load Layout")), SETTINGS_LAYOUT_DELETE);
editor_layouts->add_separator();
- editor_layouts->add_item(TTR("Default"), SETTINGS_LAYOUT_DEFAULT);
+ editor_layouts->add_shortcut(ED_SHORTCUT("property_editor/reset",TTR("Default")), SETTINGS_LAYOUT_DEFAULT);
Ref<ConfigFile> config;
config.instance();
@@ -4867,6 +4968,31 @@ void EditorNode::_bottom_panel_switch(bool p_enable,int p_idx) {
}
}
+void EditorNode::set_docks_visible(bool p_show) {
+ docks_visible = p_show;
+ _update_dock_slots_visibility();
+}
+
+bool EditorNode::get_docks_visible() const {
+ return docks_visible;
+}
+
+void EditorNode::set_distraction_free_mode(bool p_enter) {
+ distraction_free_mode = p_enter;
+
+ if (p_enter) {
+ if (docks_visible) {
+ set_docks_visible(false);
+ }
+ } else {
+ set_docks_visible(true);
+ }
+ _update_top_menu_visibility();
+}
+
+bool EditorNode::get_distraction_free_mode() const {
+ return distraction_free_mode;
+}
void EditorNode::add_control_to_dock(DockSlot p_slot,Control* p_control) {
ERR_FAIL_INDEX(p_slot,DOCK_SLOT_MAX);
@@ -4899,6 +5025,7 @@ Variant EditorNode::drag_resource(const Ref<Resource>& p_res,Control* p_from) {
TextureFrame *drag_preview = memnew( TextureFrame );
Label* label=memnew( Label );
+ waiting_for_sources_changed=true; //
Ref<Texture> preview;
{
@@ -4954,7 +5081,7 @@ Variant EditorNode::drag_files(const Vector<String>& p_files, Control *p_from){
if (p_files.size()>max_files) {
Label* label=memnew( Label );
- label->set_text(itos(p_files.size()-max_files)+" "+TTR("More File(s)"));
+ label->set_text(vformat(TTR("%d more file(s)"), p_files.size()-max_files));
files->add_child(label);
}
@@ -4985,7 +5112,7 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control *
if (p_files.size()>max_files) {
Label* label=memnew( Label );
- label->set_text(itos(p_files.size()-max_files)+" "+TTR("More File(s) and/or Directory(s)"));
+ label->set_text(vformat(TTR("%d more file(s) or folder(s)"), p_files.size()-max_files));
files->add_child(label);
}
@@ -5000,6 +5127,15 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control *
}
+
+void EditorNode::_dropped_files(const Vector<String>& p_files,int p_screen) {
+
+ String cur_path = scenes_dock->get_current_path();
+ for(int i=0;i<EditorImportExport::get_singleton()->get_import_plugin_count();i++) {
+ EditorImportExport::get_singleton()->get_import_plugin(i)->import_from_drop(p_files,cur_path);
+ }
+}
+
void EditorNode::_bind_methods() {
@@ -5067,6 +5203,9 @@ void EditorNode::_bind_methods() {
ObjectTypeDB::bind_method("_toggle_search_bar",&EditorNode::_toggle_search_bar);
ObjectTypeDB::bind_method("_clear_search_box",&EditorNode::_clear_search_box);
ObjectTypeDB::bind_method("_clear_undo_history",&EditorNode::_clear_undo_history);
+ ObjectTypeDB::bind_method("_dropped_files",&EditorNode::_dropped_files);
+
+
ObjectTypeDB::bind_method(_MD("add_editor_import_plugin", "plugin"), &EditorNode::add_editor_import_plugin);
ObjectTypeDB::bind_method(_MD("remove_editor_import_plugin", "plugin"), &EditorNode::remove_editor_import_plugin);
@@ -5108,6 +5247,8 @@ EditorNode::EditorNode() {
last_checked_version=0;
changing_scene=false;
_initializing_addons=false;
+ docks_visible = true;
+ distraction_free_mode=false;
FileAccess::set_backup_save(true);
@@ -5116,6 +5257,19 @@ EditorNode::EditorNode() {
// load settings
if (!EditorSettings::get_singleton())
EditorSettings::create();
+ {
+ int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode");
+ print_line("DPI MODE: "+itos(dpi_mode));
+ if (dpi_mode==0) {
+ editor_set_hidpi( OS::get_singleton()->get_screen_dpi(0) > 150 );
+ } else if (dpi_mode==2) {
+ editor_set_hidpi(true);
+ } else {
+ editor_set_hidpi(false);
+ }
+ }
+
+
ResourceLoader::set_abort_on_missing_resources(false);
FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
@@ -5156,7 +5310,7 @@ EditorNode::EditorNode() {
ObjectTypeDB::set_type_enabled("CollisionShape",true);
ObjectTypeDB::set_type_enabled("CollisionShape2D",true);
ObjectTypeDB::set_type_enabled("CollisionPolygon2D",true);
- //ObjectTypeDB::set_type_enabled(TTR("BodyVolumeConvexPolygon"),true);
+ //ObjectTypeDB::set_type_enabled("BodyVolumeConvexPolygon",true);
gui_base = memnew( Panel );
add_child(gui_base);
@@ -5171,7 +5325,7 @@ EditorNode::EditorNode() {
//theme->set_icon("folder","EditorFileDialog",Theme::get_default()->get_icon("folder","EditorFileDialog"));
//theme->set_color("files_disabled","EditorFileDialog",Color(0,0,0,0.7));
- String global_font = EditorSettings::get_singleton()->get("global/font");
+ String global_font = EditorSettings::get_singleton()->get("global/custom_font");
if (global_font!="") {
Ref<Font> fnt = ResourceLoader::load(global_font);
if (fnt.is_valid()) {
@@ -5327,7 +5481,7 @@ EditorNode::EditorNode() {
dock_vb->add_child(dock_hb);
dock_select = memnew( Control );
- dock_select->set_custom_minimum_size(Size2(128,64));
+ dock_select->set_custom_minimum_size(Size2(128,64)*EDSCALE);
dock_select->connect("input_event",this,"_dock_select_input");
dock_select->connect("draw",this,"_dock_select_draw");
dock_select->connect("mouse_exit",this,"_dock_popup_exit");
@@ -5342,7 +5496,7 @@ EditorNode::EditorNode() {
//dock_select_popoup->set_(Size2(20,20));
for(int i=0;i<DOCK_SLOT_MAX;i++) {
- dock_slot[i]->set_custom_minimum_size(Size2(230,220));
+ dock_slot[i]->set_custom_minimum_size(Size2(230,220)*EDSCALE);
dock_slot[i]->set_v_size_flags(Control::SIZE_EXPAND_FILL);
dock_slot[i]->set_popup(dock_select_popoup);
dock_slot[i]->connect("pre_popup_pressed",this,"_dock_pre_popup",varray(i));
@@ -5382,7 +5536,7 @@ EditorNode::EditorNode() {
srt->add_child(scene_tabs);
scene_root_parent = memnew( PanelContainer );
- scene_root_parent->set_custom_minimum_size(Size2(0,80));
+ scene_root_parent->set_custom_minimum_size(Size2(0,80)*EDSCALE);
//Ref<StyleBox> sp = scene_root_parent->get_stylebox("panel","TabContainer");
@@ -5448,21 +5602,21 @@ EditorNode::EditorNode() {
file_menu->set_tooltip(TTR("Operations with scene files."));
p=file_menu->get_popup();
- p->add_item(TTR("New Scene"),FILE_NEW_SCENE);
- p->add_item(TTR("New Inherited Scene.."),FILE_NEW_INHERITED_SCENE);
- p->add_item(TTR("Open Scene.."),FILE_OPEN_SCENE,KEY_MASK_CMD+KEY_O);
+ p->add_shortcut(ED_SHORTCUT("editor/new_scene",TTR("New Scene")),FILE_NEW_SCENE);
+ p->add_shortcut(ED_SHORTCUT("editor/new_inherited_scene",TTR("New Inherited Scene..")),FILE_NEW_INHERITED_SCENE);
+ p->add_shortcut(ED_SHORTCUT("editor/open_scene",TTR("Open Scene.."),KEY_MASK_CMD+KEY_O),FILE_OPEN_SCENE);
p->add_separator();
- p->add_item(TTR("Save Scene"),FILE_SAVE_SCENE,KEY_MASK_CMD+KEY_S);
- p->add_item(TTR("Save Scene As.."),FILE_SAVE_AS_SCENE,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_S);
+ p->add_shortcut(ED_SHORTCUT("editor/save_scene",TTR("Save Scene"),KEY_MASK_CMD+KEY_S),FILE_SAVE_SCENE);
+ p->add_shortcut(ED_SHORTCUT("editor/save_scene_as",TTR("Save Scene As.."),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_S),FILE_SAVE_AS_SCENE);
p->add_separator();
- p->add_item(TTR("Close Scene"),FILE_CLOSE,KEY_MASK_SHIFT+KEY_MASK_CTRL+KEY_W);
+ p->add_shortcut(ED_SHORTCUT("editor/close_scene",TTR("Close Scene"),KEY_MASK_SHIFT+KEY_MASK_CTRL+KEY_W),FILE_CLOSE);
p->add_separator();
- p->add_item(TTR("Close Goto Prev. Scene"),FILE_OPEN_PREV,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_P);
+ //p->add_shortcut(ED_SHORTCUT("editor/save_scene",TTR("Close Goto Prev. Scene")),FILE_OPEN_PREV,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_P);
p->add_submenu_item(TTR("Open Recent"),"RecentScenes",FILE_OPEN_RECENT);
p->add_separator();
- p->add_item(TTR("Quick Open Scene.."),FILE_QUICK_OPEN_SCENE,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_O);
- p->add_item(TTR("Quick Open Script.."),FILE_QUICK_OPEN_SCRIPT,KEY_MASK_ALT+KEY_MASK_CMD+KEY_O);
- p->add_item(TTR("Quick Search File.."),FILE_QUICK_OPEN_FILE,KEY_MASK_ALT+KEY_MASK_CMD+KEY_P);
+ p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene",TTR("Quick Open Scene.."),KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCENE);
+ p->add_shortcut(ED_SHORTCUT("editor/quick_open_script",TTR("Quick Open Script.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_O),FILE_QUICK_OPEN_SCRIPT);
+ p->add_shortcut(ED_SHORTCUT("editor/quick_filter_files",TTR("Quick Filter Files.."),KEY_MASK_ALT+KEY_MASK_CMD+KEY_P),FILE_QUICK_OPEN_FILE);
p->add_separator();
PopupMenu *pm_export = memnew(PopupMenu );
@@ -5499,7 +5653,7 @@ EditorNode::EditorNode() {
{
Control *sp = memnew( Control );
- sp->set_custom_minimum_size(Size2(30,0));
+ sp->set_custom_minimum_size(Size2(30,0)*EDSCALE);
menu_hb->add_child(sp);
}
@@ -5517,20 +5671,20 @@ EditorNode::EditorNode() {
menu_panel->add_child( node_menu );
p=node_menu->get_popup();
- p->add_item(TTR("Create"),NODE_CREATE);
- p->add_item(TTR("Instance"),NODE_INSTANCE);
+ p->add_item("Create",NODE_CREATE);
+ p->add_item("Instance",NODE_INSTANCE);
p->add_separator();
- p->add_item(TTR("Reparent"),NODE_REPARENT);
- p->add_item(TTR("Move Up"),NODE_MOVE_UP);
- p->add_item(TTR("Move Down"),NODE_MOVE_DOWN);
+ p->add_item("Reparent",NODE_REPARENT);
+ p->add_item("Move Up",NODE_MOVE_UP);
+ p->add_item("Move Down",NODE_MOVE_DOWN);
p->add_separator();
- p->add_item(TTR("Duplicate"),NODE_DUPLICATE);
+ p->add_item("Duplicate",NODE_DUPLICATE);
p->add_separator();
- p->add_item(TTR("Remove (Branch)"),NODE_REMOVE_BRANCH);
- p->add_item(TTR("Remove (Element)"),NODE_REMOVE_ELEMENT);
+ p->add_item("Remove (Branch)",NODE_REMOVE_BRANCH);
+ p->add_item("Remove (Element)",NODE_REMOVE_ELEMENT);
p->add_separator();
- p->add_item(TTR("Edit Subscriptions.."),NODE_CONNECTIONS);
- p->add_item(TTR("Edit Groups.."),NODE_GROUPS);
+ p->add_item("Edit Subscriptions..",NODE_CONNECTIONS);
+ p->add_item("Edit Groups..",NODE_GROUPS);
resource_menu = memnew( MenuButton );
resource_menu->set_text("Resource");
@@ -5548,7 +5702,7 @@ EditorNode::EditorNode() {
p->connect("item_pressed",this,"_menu_option");
tool_menu = memnew( MenuButton );
- tool_menu->set_tooltip(TTR("Miscelaneous project or scene wide tools."));
+ tool_menu->set_tooltip(TTR("Miscellaneous project or scene-wide tools."));
tool_menu->set_text(TTR("Tools"));
//tool_menu->set_icon(gui_base->get_icon("Save","EditorIcons"));
@@ -5573,7 +5727,7 @@ EditorNode::EditorNode() {
//s1->set_size(Point2(10,15));
- CenterContainer *play_cc = memnew( CenterContainer );
+ play_cc = memnew( CenterContainer );
play_cc->set_ignore_mouse(true);
gui_base->add_child( play_cc );
play_cc->set_area_as_parent_rect();
@@ -5593,25 +5747,31 @@ EditorNode::EditorNode() {
play_button->set_icon(gui_base->get_icon("MainPlay","EditorIcons"));
play_button->set_focus_mode(Control::FOCUS_NONE);
play_button->connect("pressed", this,"_menu_option",make_binds(RUN_PLAY));
- play_button->set_tooltip(TTR("Play the project (F5)."));
+ play_button->set_tooltip(TTR("Play the project."));
+ play_button->set_shortcut(ED_SHORTCUT("editor/play",TTR("Play"),KEY_F5));
- /*pause_button = memnew( ToolButton );
+ pause_button = memnew( ToolButton );
//menu_panel->add_child(pause_button); - not needed for now?
pause_button->set_toggle_mode(true);
pause_button->set_icon(gui_base->get_icon("Pause","EditorIcons"));
pause_button->set_focus_mode(Control::FOCUS_NONE);
- pause_button->connect("pressed", this,"_menu_option",make_binds(RUN_PAUSE));
- pause_button->set_tooltip(TTR("Pause the scene (F7)."));
-*/
+ //pause_button->connect("pressed", this,"_menu_option",make_binds(RUN_PAUSE));
+ pause_button->set_tooltip(TTR("Pause the scene"));
+ pause_button->set_disabled(true);
+ play_hb->add_child(pause_button);
+ pause_button->set_shortcut(ED_SHORTCUT("editor/pause_scene",TTR("Pause Scene"),KEY_F7));
+
+
stop_button = memnew( ToolButton );
play_hb->add_child(stop_button);
//stop_button->set_toggle_mode(true);
stop_button->set_focus_mode(Control::FOCUS_NONE);
stop_button->set_icon(gui_base->get_icon("MainStop","EditorIcons"));
stop_button->connect("pressed", this,"_menu_option",make_binds(RUN_STOP));
- stop_button->set_tooltip(TTR("Stop the scene (F8)."));
+ stop_button->set_tooltip(TTR("Stop the scene."));
+ stop_button->set_shortcut(ED_SHORTCUT("editor/stop",TTR("Stop"),KEY_F8));
run_native = memnew( EditorRunNative);
play_hb->add_child(run_native);
@@ -5631,7 +5791,8 @@ EditorNode::EditorNode() {
play_scene_button->set_focus_mode(Control::FOCUS_NONE);
play_scene_button->set_icon(gui_base->get_icon("PlayScene","EditorIcons"));
play_scene_button->connect("pressed", this,"_menu_option",make_binds(RUN_PLAY_SCENE));
- play_scene_button->set_tooltip(TTR("Play the edited scene (F6)."));
+ play_scene_button->set_tooltip(TTR("Play the edited scene."));
+ play_scene_button->set_shortcut(ED_SHORTCUT("editor/play_scene",TTR("Play Scene"),KEY_F6));
play_custom_scene_button = memnew( ToolButton );
play_hb->add_child(play_custom_scene_button);
@@ -5639,7 +5800,7 @@ EditorNode::EditorNode() {
play_custom_scene_button->set_focus_mode(Control::FOCUS_NONE);
play_custom_scene_button->set_icon(gui_base->get_icon("PlayCustom","EditorIcons"));
play_custom_scene_button->connect("pressed", this,"_menu_option",make_binds(RUN_PLAY_CUSTOM_SCENE));
- play_custom_scene_button->set_tooltip(TTR("Play custom scene (")+keycode_get_string(KEY_MASK_CMD|KEY_MASK_SHIFT|KEY_F5)+").");
+ play_custom_scene_button->set_tooltip(TTR("Play custom scene")+" ("+keycode_get_string(KEY_MASK_CMD|KEY_MASK_SHIFT|KEY_F5)+").");
debug_button = memnew( MenuButton );
debug_button->set_flat(true);
@@ -5648,17 +5809,23 @@ EditorNode::EditorNode() {
debug_button->set_focus_mode(Control::FOCUS_NONE);
debug_button->set_icon(gui_base->get_icon("Remote","EditorIcons"));
//debug_button->connect("pressed", this,"_menu_option",make_binds(RUN_LIVE_DEBUG));
- debug_button->set_tooltip(TTR("Debug Options"));
+ debug_button->set_tooltip(TTR("Debug options"));
p=debug_button->get_popup();
- p->add_check_item(TTR("Live Editing"),RUN_LIVE_DEBUG);
- p->add_check_item(TTR("File Server"),RUN_FILE_SERVER);
- p->add_separator();
- p->add_check_item(TTR("Deploy Remote Debug"),RUN_DEPLOY_REMOTE_DEBUG);
- p->add_check_item(TTR("Deploy File Server Clients"),RUN_DEPLOY_DUMB_CLIENTS);
+ p->add_check_item(TTR("Deploy with Remote Debug"),RUN_DEPLOY_REMOTE_DEBUG);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("When exporting or deploying, the resulting executable will attempt to connect to the IP of this computer in order to be debugged."));
+ p->add_check_item(TTR("Small Deploy with Network FS"),RUN_FILE_SERVER);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is enabled, export or deploy will produce a minimal executable.\nThe filesystem will be provided from the project by the editor over the network.\nOn Android, deploy will use the USB cable for faster performance. This option speeds up testing for games with a large footprint."));
p->add_separator();
p->add_check_item(TTR("Visible Collision Shapes"),RUN_DEBUG_COLLISONS);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("Collision shapes and raycast nodes (for 2D and 3D) will be visible on the running game if this option is turned on."));
p->add_check_item(TTR("Visible Navigation"),RUN_DEBUG_NAVIGATION);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("Navigation meshes and polygons will be visible on the running game if this option is turned on."));
+ p->add_separator();
+ p->add_check_item(TTR("Sync Scene Changes"),RUN_LIVE_DEBUG);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any changes made to the scene in the editor will be replicated in the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
+ p->add_check_item(TTR("Sync Script Changes"),RUN_RELOAD_SCRIPTS);
+ p->set_item_tooltip(p->get_item_count()-1,TTR("When this option is turned on, any script that is saved will be reloaded on the running game.\nWhen used remotely on a device, this is more efficient with network filesystem."));
p->connect("item_pressed",this,"_menu_option");
/*
@@ -5685,7 +5852,7 @@ EditorNode::EditorNode() {
{
Control *sp = memnew( Control );
- sp->set_custom_minimum_size(Size2(30,0));
+ sp->set_custom_minimum_size(Size2(30,0)*EDSCALE);
menu_hb->add_child(sp);
}
@@ -5707,7 +5874,7 @@ EditorNode::EditorNode() {
{
Control *sp = memnew( Control );
- sp->set_custom_minimum_size(Size2(30,0));
+ sp->set_custom_minimum_size(Size2(30,0)*EDSCALE);
menu_hb->add_child(sp);
}
@@ -5726,9 +5893,9 @@ EditorNode::EditorNode() {
right_menu_hb->add_child( settings_menu );
p=settings_menu->get_popup();
- //p->add_item(TTR("Export Settings"),SETTINGS_EXPORT_PREFERENCES);
+ //p->add_item("Export Settings",SETTINGS_EXPORT_PREFERENCES);
p->add_item(TTR("Editor Settings"),SETTINGS_PREFERENCES);
- //p->add_item(TTR("Optimization Presets"),SETTINGS_OPTIMIZED_PRESETS);
+ //p->add_item("Optimization Presets",SETTINGS_OPTIMIZED_PRESETS);
p->add_separator();
editor_layouts = memnew( PopupMenu );
editor_layouts->set_name("Layouts");
@@ -5743,7 +5910,7 @@ EditorNode::EditorNode() {
layout_dialog = memnew( EditorNameDialog );
gui_base->add_child(layout_dialog);
layout_dialog->set_hide_on_ok(false);
- layout_dialog->set_size(Size2(175, 70));
+ layout_dialog->set_size(Size2(175, 70)*EDSCALE);
layout_dialog->connect("name_confirmed", this,"_dialog_action");
sources_button = memnew( ToolButton );
@@ -5783,15 +5950,15 @@ EditorNode::EditorNode() {
scene_tree_dock = memnew( SceneTreeDock(this,scene_root,editor_selection,editor_data) );
scene_tree_dock->set_name(TTR("Scene"));
//top_pallete->add_child(scene_tree_dock);
- dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scene_tree_dock);
+ dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(scene_tree_dock);
#if 0
resources_dock = memnew( ResourcesDock(this) );
- resources_dock->set_name(TTR("Resources"));
+ resources_dock->set_name("Resources");
//top_pallete->add_child(resources_dock);
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(resources_dock);
//top_pallete->set_v_size_flags(Control::SIZE_EXPAND_FILL);
#endif
- dock_slot[DOCK_SLOT_RIGHT_BL]->hide();
+ dock_slot[DOCK_SLOT_LEFT_BR]->hide();
/*Control *editor_spacer = memnew( Control );
editor_spacer->set_custom_minimum_size(Size2(260,200));
editor_spacer->set_v_size_flags(Control::SIZE_EXPAND_FILL);
@@ -5813,28 +5980,29 @@ EditorNode::EditorNode() {
VBoxContainer *prop_editor_base = memnew( VBoxContainer );
prop_editor_base->set_name(TTR("Inspector")); // Properties?
- dock_slot[DOCK_SLOT_RIGHT_UL]->add_child(prop_editor_base);
+ dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(prop_editor_base);
HBoxContainer *prop_editor_hb = memnew( HBoxContainer );
prop_editor_base->add_child(prop_editor_hb);
+ prop_editor_vb=prop_editor_base;
resource_new_button = memnew( ToolButton );
- resource_new_button->set_tooltip(TTR("Create a new resource in memory and edit it"));
+ resource_new_button->set_tooltip(TTR("Create a new resource in memory and edit it."));
resource_new_button->set_icon(gui_base->get_icon("New","EditorIcons"));
prop_editor_hb->add_child(resource_new_button);
resource_new_button->connect("pressed",this,"_menu_option",varray(RESOURCE_NEW));
resource_new_button->set_focus_mode(Control::FOCUS_NONE);
resource_load_button = memnew( ToolButton );
- resource_load_button->set_tooltip(TTR("Load an existing resource from disk and edit it"));
+ resource_load_button->set_tooltip(TTR("Load an existing resource from disk and edit it."));
resource_load_button->set_icon(gui_base->get_icon("Load","EditorIcons"));
prop_editor_hb->add_child(resource_load_button);
resource_load_button->connect("pressed",this,"_menu_option",varray(RESOURCE_LOAD));
resource_load_button->set_focus_mode(Control::FOCUS_NONE);
resource_save_button = memnew( MenuButton );
- resource_save_button->set_tooltip(TTR("Save the currently edited resource"));
+ resource_save_button->set_tooltip(TTR("Save the currently edited resource."));
resource_save_button->set_icon(gui_base->get_icon("Save","EditorIcons"));
prop_editor_hb->add_child(resource_save_button);
resource_save_button->get_popup()->add_item(TTR("Save"),RESOURCE_SAVE);
@@ -5863,7 +6031,7 @@ EditorNode::EditorNode() {
editor_history_menu = memnew( MenuButton );
- editor_history_menu->set_tooltip(TTR("History of recently edited objects"));
+ editor_history_menu->set_tooltip(TTR("History of recently edited objects."));
editor_history_menu->set_icon( gui_base->get_icon("History","EditorIcons"));
prop_editor_hb->add_child(editor_history_menu);
editor_history_menu->connect("about_to_show",this,"_prepare_history");
@@ -5899,7 +6067,7 @@ EditorNode::EditorNode() {
prop_editor_base->add_child(search_bar);
search_bar->hide();
- Label *l = memnew( Label(TTR("Search: ")) );
+ Label *l = memnew( Label(TTR("Search:")+" ") );
search_bar->add_child(l);
search_box = memnew( LineEdit );
@@ -5924,10 +6092,14 @@ EditorNode::EditorNode() {
property_editor->set_undo_redo(&editor_data.get_undo_redo());
+ node_dock = memnew( NodeDock );
+ //node_dock->set_undoredo(&editor_data.get_undo_redo());
+ dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(node_dock);
+
scenes_dock = memnew( ScenesDock(this) );
scenes_dock->set_name(TTR("FileSystem"));
scenes_dock->set_use_thumbnails(int(EditorSettings::get_singleton()->get("file_dialog/display_mode"))==EditorFileDialog::DISPLAY_THUMBNAILS);
- dock_slot[DOCK_SLOT_LEFT_BR]->add_child(scenes_dock);
+ dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scenes_dock);
//prop_pallete->add_child(scenes_dock);
scenes_dock->connect("open",this,"open_request");
scenes_dock->connect("instance",this,"_instance_request");
@@ -6084,7 +6256,7 @@ EditorNode::EditorNode() {
about = memnew( AcceptDialog );
- about->set_title(TTR("Thanks so Much!"));
+ about->set_title(TTR("Thanks from the Godot community!"));
//about->get_cancel()->hide();
about->get_ok()->set_text(TTR("Thanks!"));
about->set_hide_on_ok(true);
@@ -6104,7 +6276,7 @@ EditorNode::EditorNode() {
file_templates = memnew( FileDialog );
- file_templates->set_title(TTR("Import Templates from ZIP file"));
+ file_templates->set_title(TTR("Import Templates From ZIP File"));
gui_base->add_child( file_templates );
file_templates->set_mode(FileDialog::MODE_OPEN_FILE);
@@ -6181,10 +6353,7 @@ EditorNode::EditorNode() {
file_server = memnew( EditorFileServer );
- editor_import_export->add_import_plugin( Ref<EditorTextureImportPlugin>( memnew(EditorTextureImportPlugin(this,EditorTextureImportPlugin::MODE_TEXTURE_2D) )));
- editor_import_export->add_import_plugin( Ref<EditorTextureImportPlugin>( memnew(EditorTextureImportPlugin(this,EditorTextureImportPlugin::MODE_ATLAS) )));
- editor_import_export->add_import_plugin( Ref<EditorTextureImportPlugin>( memnew(EditorTextureImportPlugin(this,EditorTextureImportPlugin::MODE_LARGE) )));
- editor_import_export->add_import_plugin( Ref<EditorTextureImportPlugin>( memnew(EditorTextureImportPlugin(this,EditorTextureImportPlugin::MODE_TEXTURE_3D) )));
+ editor_import_export->add_import_plugin( Ref<EditorTextureImportPlugin>( memnew(EditorTextureImportPlugin(this) )));
Ref<EditorSceneImportPlugin> _scene_import = memnew(EditorSceneImportPlugin(this) );
Ref<EditorSceneImporterCollada> _collada_import = memnew( EditorSceneImporterCollada);
_scene_import->add_importer(_collada_import);
@@ -6197,6 +6366,8 @@ EditorNode::EditorNode() {
editor_import_export->add_import_plugin( Ref<EditorFontImportPlugin>( memnew(EditorFontImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorSampleImportPlugin>( memnew(EditorSampleImportPlugin(this))));
editor_import_export->add_import_plugin( Ref<EditorTranslationImportPlugin>( memnew(EditorTranslationImportPlugin(this))));
+ editor_import_export->add_import_plugin( Ref<EditorBitMaskImportPlugin>( memnew(EditorBitMaskImportPlugin(this))));
+
editor_import_export->add_export_plugin( Ref<EditorTextureExportPlugin>( memnew(EditorTextureExportPlugin)));
editor_import_export->add_export_plugin( Ref<EditorSampleExportPlugin>( memnew(EditorSampleExportPlugin)));
@@ -6223,9 +6394,9 @@ EditorNode::EditorNode() {
add_editor_plugin( memnew( MultiMeshEditorPlugin(this) ) );
add_editor_plugin( memnew( MeshInstanceEditorPlugin(this) ) );
add_editor_plugin( memnew( AnimationTreeEditorPlugin(this) ) );
- add_editor_plugin( memnew( SamplePlayerEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( SamplePlayerEditorPlugin(this) ) ); - this is kind of useless at this point
add_editor_plugin( memnew( MeshLibraryEditorPlugin(this) ) );
- add_editor_plugin( memnew( StreamEditorPlugin(this) ) );
+ //add_editor_plugin( memnew( StreamEditorPlugin(this) ) );
add_editor_plugin( memnew( StyleBoxEditorPlugin(this) ) );
add_editor_plugin( memnew( ParticlesEditorPlugin(this) ) );
add_editor_plugin( memnew( ResourcePreloaderEditorPlugin(this) ) );
@@ -6236,7 +6407,7 @@ EditorNode::EditorNode() {
add_editor_plugin( memnew( TileSetEditorPlugin(this) ) );
add_editor_plugin( memnew( TileMapEditorPlugin(this) ) );
add_editor_plugin( memnew( SpriteFramesEditorPlugin(this) ) );
- add_editor_plugin( memnew( SpriteRegionEditorPlugin(this) ) );
+ add_editor_plugin( memnew( TextureRegionEditorPlugin(this) ) );
add_editor_plugin( memnew( Particles2DEditorPlugin(this) ) );
add_editor_plugin( memnew( Path2DEditorPlugin(this) ) );
add_editor_plugin( memnew( PathEditorPlugin(this) ) );
@@ -6244,9 +6415,11 @@ EditorNode::EditorNode() {
add_editor_plugin( memnew( Polygon2DEditorPlugin(this) ) );
add_editor_plugin( memnew( LightOccluder2DEditorPlugin(this) ) );
add_editor_plugin( memnew( NavigationPolygonEditorPlugin(this) ) );
- add_editor_plugin( memnew( ColorRampEditorPlugin(this,true) ) );
- add_editor_plugin( memnew( ColorRampEditorPlugin(this,false) ) );
+ add_editor_plugin( memnew( ColorRampEditorPlugin(this) ) );
add_editor_plugin( memnew( CollisionShape2DEditorPlugin(this) ) );
+ add_editor_plugin( memnew( TextureEditorPlugin(this) ) );
+ add_editor_plugin( memnew( MaterialEditorPlugin(this) ) );
+ add_editor_plugin( memnew( MeshEditorPlugin(this) ) );
for(int i=0;i<EditorPlugins::get_plugin_count();i++)
add_editor_plugin( EditorPlugins::create(i,this) );
@@ -6395,11 +6568,12 @@ EditorNode::EditorNode() {
_load_docks();
+
}
EditorNode::~EditorNode() {
-
+
memdelete( EditorHelp::get_doc_data() );
memdelete(editor_selection);
memdelete(editor_plugins_over);
@@ -6465,6 +6639,3 @@ EditorPluginList::EditorPluginList() {
EditorPluginList::~EditorPluginList() {
}
-
-
-
diff --git a/tools/editor/editor_node.h b/tools/editor/editor_node.h
index 8fa6cfefcf..7d9b11ed83 100644
--- a/tools/editor/editor_node.h
+++ b/tools/editor/editor_node.h
@@ -49,6 +49,7 @@
#include "tools/editor/call_dialog.h"
#include "tools/editor/reparent_dialog.h"
#include "tools/editor/connections_dialog.h"
+#include "tools/editor/node_dock.h"
#include "tools/editor/settings_config_dialog.h"
#include "tools/editor/groups_editor.h"
#include "tools/editor/editor_data.h"
@@ -85,6 +86,7 @@
#include "progress_dialog.h"
+#include "editor_scale.h"
/**
@author Juan Linietsky <reduzio@gmail.com>
*/
@@ -159,7 +161,7 @@ private:
OBJECT_CALL_METHOD,
OBJECT_REQUEST_HELP,
RUN_PLAY,
- RUN_PAUSE,
+
RUN_STOP,
RUN_PLAY_SCENE,
RUN_PLAY_NATIVE,
@@ -168,11 +170,12 @@ private:
RUN_SETTINGS,
RUN_PROJECT_MANAGER,
RUN_FILE_SERVER,
- RUN_DEPLOY_DUMB_CLIENTS,
+ //RUN_DEPLOY_DUMB_CLIENTS,
RUN_LIVE_DEBUG,
RUN_DEBUG_COLLISONS,
RUN_DEBUG_NAVIGATION,
RUN_DEPLOY_REMOTE_DEBUG,
+ RUN_RELOAD_SCRIPTS,
SETTINGS_UPDATE_ALWAYS,
SETTINGS_UPDATE_CHANGES,
SETTINGS_IMPORT,
@@ -236,6 +239,7 @@ private:
//HSplitContainer *editor_hsplit;
//VSplitContainer *editor_vsplit;
+ CenterContainer *play_cc;
HBoxContainer *menu_hb;
Control *viewport;
MenuButton *file_menu;
@@ -269,6 +273,8 @@ private:
SceneTreeDock *scene_tree_dock;
//ResourcesDock *resources_dock;
PropertyEditor *property_editor;
+ NodeDock *node_dock;
+ VBoxContainer *prop_editor_vb;
ScenesDock *scenes_dock;
EditorRunNative *run_native;
@@ -348,6 +354,8 @@ private:
ToolButton *dock_tab_move_right;
int dock_popup_selected;
Timer *dock_drag_timer;
+ bool docks_visible;
+ bool distraction_free_mode;
String _tmp_import_path;
@@ -365,6 +373,8 @@ private:
String open_navigate;
bool changing_scene;
+ bool waiting_for_sources_changed;
+
uint32_t circle_step_msec;
uint64_t circle_step_frame;
int circle_step;
@@ -451,7 +461,7 @@ private:
void _display_top_editors(bool p_display);
void _set_top_editors(Vector<EditorPlugin*> p_editor_plugins_over);
void _set_editing_top_editors(Object * p_current_object);
-
+
void _quick_opened();
void _quick_run();
@@ -463,6 +473,7 @@ private:
void _add_to_recent_scenes(const String& p_scene);
void _update_recent_scenes();
void _open_recent_scene(int p_idx);
+ void _dropped_files(const Vector<String>& p_files,int p_screen);
//void _open_recent_scene_confirm();
String _recent_scene;
@@ -551,7 +562,7 @@ private:
void _save_docks_to_config(Ref<ConfigFile> p_layout, const String& p_section);
void _load_docks_from_config(Ref<ConfigFile> p_layout, const String& p_section);
void _update_dock_slots_visibility();
-
+ void _update_top_menu_visibility();
void _update_layouts_menu();
void _layout_menu_option(int p_idx);
@@ -580,6 +591,7 @@ public:
EditorPlugin *get_editor_plugin_screen() { return editor_plugin_screen; }
EditorPluginList *get_editor_plugins_over() { return editor_plugins_over; }
PropertyEditor *get_property_editor() { return property_editor; }
+ VBoxContainer *get_property_editor_vb() { return prop_editor_vb; }
static void add_editor_plugin(EditorPlugin *p_editor);
static void remove_editor_plugin(EditorPlugin *p_editor);
@@ -587,6 +599,11 @@ public:
void new_inherited_scene() { _menu_option_confirm(FILE_NEW_INHERITED_SCENE,false); }
+ void set_docks_visible(bool p_show);
+ bool get_docks_visible() const;
+
+ void set_distraction_free_mode(bool p_enter);
+ bool get_distraction_free_mode() const;
void add_control_to_dock(DockSlot p_slot,Control* p_control);
void remove_control_from_dock(Control* p_control);
@@ -605,6 +622,8 @@ public:
void save_resource(const Ref<Resource>& p_resource);
void save_resource_as(const Ref<Resource>& p_resource, const String &p_at_path=String());
+ void merge_from_scene() { _menu_option_confirm(FILE_IMPORT_SUBSCENE,false); }
+
static bool has_unsaved_changes() { return singleton->unsaved_cache; }
static HBoxContainer *get_menu_hb() { return singleton->menu_hb; }
@@ -647,6 +666,7 @@ public:
void request_instance_scene(const String &p_path);
ScenesDock *get_scenes_dock();
+ SceneTreeDock *get_scene_tree_dock();
static UndoRedo* get_undo_redo() { return &singleton->editor_data.get_undo_redo(); }
EditorSelection *get_editor_selection() { return editor_selection; }
@@ -692,6 +712,8 @@ public:
void update_keying();
+ ToolButton *get_pause_button() { return pause_button; }
+
ToolButton* add_bottom_panel_item(String p_text,Control *p_item);
bool are_bottom_panels_hidden() const;
@@ -746,7 +768,7 @@ public:
EditorPluginList();
~EditorPluginList();
-} ;
+} ;
struct EditorProgressBG {
diff --git a/tools/editor/editor_plugin.cpp b/tools/editor/editor_plugin.cpp
index dc46361251..138e532ce8 100644
--- a/tools/editor/editor_plugin.cpp
+++ b/tools/editor/editor_plugin.cpp
@@ -110,6 +110,12 @@ void EditorPlugin::add_control_to_container(CustomControlContainer p_location,Co
CanvasItemEditor::get_singleton()->get_bottom_split()->add_child(p_control);
} break;
+ case CONTAINER_PROPERTY_EDITOR_BOTTOM: {
+
+ EditorNode::get_singleton()->get_property_editor_vb()->add_child(p_control);
+
+ } break;
+
}
}
@@ -319,6 +325,8 @@ void EditorPlugin::_bind_methods() {
BIND_CONSTANT( CONTAINER_SPATIAL_EDITOR_BOTTOM );
BIND_CONSTANT( CONTAINER_CANVAS_EDITOR_MENU );
BIND_CONSTANT( CONTAINER_CANVAS_EDITOR_SIDE );
+ BIND_CONSTANT( CONTAINER_PROPERTY_EDITOR_BOTTOM );
+
BIND_CONSTANT( DOCK_SLOT_LEFT_UL );
BIND_CONSTANT( DOCK_SLOT_LEFT_BL );
diff --git a/tools/editor/editor_plugin.h b/tools/editor/editor_plugin.h
index c572ab210e..b93b6624d0 100644
--- a/tools/editor/editor_plugin.h
+++ b/tools/editor/editor_plugin.h
@@ -73,7 +73,8 @@ public:
CONTAINER_SPATIAL_EDITOR_BOTTOM,
CONTAINER_CANVAS_EDITOR_MENU,
CONTAINER_CANVAS_EDITOR_SIDE,
- CONTAINER_CANVAS_EDITOR_BOTTOM
+ CONTAINER_CANVAS_EDITOR_BOTTOM,
+ CONTAINER_PROPERTY_EDITOR_BOTTOM
};
enum DockSlot {
diff --git a/tools/editor/editor_plugin_settings.cpp b/tools/editor/editor_plugin_settings.cpp
index 3eefe10448..1a6be05af3 100644
--- a/tools/editor/editor_plugin_settings.cpp
+++ b/tools/editor/editor_plugin_settings.cpp
@@ -150,7 +150,7 @@ void EditorPluginSettings::_bind_methods() {
EditorPluginSettings::EditorPluginSettings() {
HBoxContainer *title_hb = memnew( HBoxContainer );
- title_hb->add_child(memnew( Label("Installed Plugins:")));
+ title_hb->add_child(memnew( Label(TTR("Installed Plugins:"))));
title_hb->add_spacer();
update_list = memnew( Button(TTR("Update")) );
update_list->connect("pressed",this,"update_plugins");
@@ -162,9 +162,9 @@ EditorPluginSettings::EditorPluginSettings() {
plugin_list->set_columns(4);
plugin_list->set_column_titles_visible(true);
plugin_list->set_column_title(0,TTR("Name:"));
- plugin_list->set_column_title(1,"Version:");
- plugin_list->set_column_title(2,"Author:");
- plugin_list->set_column_title(3,"Status:");
+ plugin_list->set_column_title(1,TTR("Version:"));
+ plugin_list->set_column_title(2,TTR("Author:"));
+ plugin_list->set_column_title(3,TTR("Status:"));
plugin_list->set_column_expand(0,true);
plugin_list->set_column_expand(1,false);
plugin_list->set_column_expand(2,false);
@@ -185,4 +185,3 @@ EditorPluginSettings::EditorPluginSettings() {
updating=false;
}
-
diff --git a/tools/editor/editor_profiler.cpp b/tools/editor/editor_profiler.cpp
new file mode 100644
index 0000000000..c9ee60cd54
--- /dev/null
+++ b/tools/editor/editor_profiler.cpp
@@ -0,0 +1,753 @@
+#include "editor_profiler.h"
+#include "editor_settings.h"
+#include "os/os.h"
+
+void EditorProfiler::_make_metric_ptrs(Metric& m) {
+
+ for(int i=0;i<m.categories.size();i++) {
+ m.category_ptrs[m.categories[i].signature]=&m.categories[i];
+ for(int j=0;j<m.categories[i].items.size();j++) {
+ m.item_ptrs[m.categories[i].items[j].signature]=&m.categories[i].items[j];
+ }
+ }
+}
+
+void EditorProfiler::add_frame_metric(const Metric& p_metric,bool p_final) {
+
+ ++last_metric;
+ if (last_metric>=frame_metrics.size())
+ last_metric=0;
+
+
+ frame_metrics[last_metric]=p_metric;
+ _make_metric_ptrs(frame_metrics[last_metric]);
+
+ updating_frame=true;
+ cursor_metric_edit->set_max(frame_metrics[last_metric].frame_number);
+ cursor_metric_edit->set_min(MAX(frame_metrics[last_metric].frame_number-frame_metrics.size(),0));
+
+
+ if (!seeking) {
+ cursor_metric_edit->set_val(frame_metrics[last_metric].frame_number);
+ if (hover_metric!=-1) {
+ hover_metric++;
+ if (hover_metric>=frame_metrics.size()) {
+ hover_metric=0;
+ }
+ }
+
+ }
+ updating_frame=false;
+
+ if (!frame_delay->is_processing()) {
+
+ frame_delay->set_wait_time(p_final?0.1:1);
+ frame_delay->start();
+ }
+
+ if (!plot_delay->is_processing()) {
+ plot_delay->set_wait_time(0.1);
+ plot_delay->start();
+ }
+
+}
+
+
+
+void EditorProfiler::clear() {
+
+ int metric_size=EditorSettings::get_singleton()->get("debugger/profiler_frame_history_size");
+ metric_size = CLAMP(metric_size,60,1024);
+ frame_metrics.clear();
+ frame_metrics.resize(metric_size);
+ last_metric=-1;
+ variables->clear();
+ //activate->set_pressed(false);
+ plot_sigs.clear();
+ plot_sigs.insert("fixed_frame_time");
+ plot_sigs.insert("category_frame_time");
+
+ updating_frame=true;
+ cursor_metric_edit->set_min(0);
+ cursor_metric_edit->set_max(0);
+ cursor_metric_edit->set_val(0);
+ updating_frame=false;
+ hover_metric=-1;
+ seeking=false;
+}
+
+static String _get_percent_txt(float p_value,float p_total) {
+ if (p_total==0)
+ p_total=0.00001;
+ return String::num((p_value/p_total)*100,1)+"%";
+}
+
+
+String EditorProfiler::_get_time_as_text(Metric &m,float p_time,int p_calls) {
+
+ int dmode = display_mode->get_selected();
+
+
+ if (dmode==DISPLAY_FRAME_TIME) {
+ return rtos(p_time);
+ } else if (dmode==DISPLAY_AVERAGE_TIME) {
+ if (p_calls==0)
+ return "0";
+ else
+ return rtos(p_time/p_calls);
+ } else if (dmode==DISPLAY_FRAME_PERCENT) {
+ return _get_percent_txt(p_time,m.frame_time);
+ } else if (dmode==DISPLAY_FIXED_FRAME_PERCENT) {
+
+ return _get_percent_txt(p_time,m.fixed_frame_time);
+ }
+
+ return "err";
+}
+
+Color EditorProfiler::_get_color_from_signature(const StringName& p_signature) const {
+
+ double rot = ABS(double(p_signature.hash())/double(0x7FFFFFFF));
+ Color c;
+ c.set_hsv(rot,1,1);
+ return c;
+
+}
+
+void EditorProfiler::_item_edited() {
+
+ if (updating_frame)
+ return;
+
+ TreeItem *item=variables->get_edited();
+ if (!item)
+ return;
+ StringName signature=item->get_metadata(0);
+ bool checked=item->is_checked(0);
+
+
+ if (checked)
+ plot_sigs.insert(signature);
+ else
+ plot_sigs.erase(signature);
+
+ if (!frame_delay->is_processing()) {
+ frame_delay->set_wait_time(0.1);
+ frame_delay->start();
+ }
+}
+
+void EditorProfiler::_update_plot() {
+
+ int w = graph->get_size().width;
+ int h = graph->get_size().height;
+
+ bool reset_texture=false;
+
+ int desired_len = w * h * 4;
+
+ if (graph_image.size()!=desired_len) {
+ reset_texture=true;
+ graph_image.resize(desired_len);
+ }
+
+
+ DVector<uint8_t>::Write wr = graph_image.write();
+
+
+
+ //clear
+ for(int i=0;i<desired_len;i+=4) {
+ wr[i+0]=0;
+ wr[i+1]=0;
+ wr[i+2]=0;
+ wr[i+3]=255;
+ }
+
+
+ //find highest value
+
+ bool use_self = display_time->get_selected()==DISPLAY_SELF_TIME;
+ float highest=0;
+
+ for(int i=0;i<frame_metrics.size();i++) {
+ Metric &m = frame_metrics[i];
+ if (!m.valid)
+ continue;
+
+ for (Set<StringName>::Element *E=plot_sigs.front();E;E=E->next()) {
+
+ Map<StringName,Metric::Category*>::Element *F=m.category_ptrs.find(E->get());
+ if (F) {
+ highest=MAX(F->get()->total_time,highest);
+ }
+
+ Map<StringName,Metric::Category::Item*>::Element *G=m.item_ptrs.find(E->get());
+ if (G) {
+ if (use_self) {
+ highest=MAX(G->get()->self,highest);
+ } else {
+ highest=MAX(G->get()->total,highest);
+ }
+ }
+ }
+ }
+
+ if (highest>0) {
+ //means some data exists..
+ highest*=1.2; //leave some upper room
+ graph_height=highest;
+
+ Vector<int> columnv;
+ columnv.resize(h*4);
+
+ int *column = columnv.ptr();
+
+ Map<StringName,int> plot_prev;
+ //Map<StringName,int> plot_max;
+
+ uint64_t time = OS::get_singleton()->get_ticks_usec();
+
+ for(int i=0;i<w;i++) {
+
+
+ for(int j=0;j<h*4;j++) {
+ column[j]=0;
+ }
+
+ int current = i*frame_metrics.size()/w;
+ int next = (i+1)*frame_metrics.size()/w;
+ if (next>frame_metrics.size()) {
+ next=frame_metrics.size();
+ }
+ if (next==current)
+ next=current+1; //just because for loop must work
+
+ for (Set<StringName>::Element *E=plot_sigs.front();E;E=E->next()) {
+
+ int plot_pos=-1;
+
+ for(int j=current;j<next;j++) {
+
+ //wrap
+ int idx = last_metric+1+j;
+ while( idx >= frame_metrics.size() ) {
+ idx-=frame_metrics.size();
+ }
+
+ //get
+ Metric &m = frame_metrics[idx];
+ if (m.valid==false)
+ continue; //skip because invalid
+
+
+ float value=0;
+
+ Map<StringName,Metric::Category*>::Element *F=m.category_ptrs.find(E->get());
+ if (F) {
+ value=F->get()->total_time;
+ }
+
+ Map<StringName,Metric::Category::Item*>::Element *G=m.item_ptrs.find(E->get());
+ if (G) {
+ if (use_self) {
+ value=G->get()->self;
+ } else {
+ value=G->get()->total;
+ }
+ }
+
+
+ plot_pos = MAX( CLAMP(int(value*h/highest),0,h-1), plot_pos );
+
+
+ }
+
+ int prev_plot=plot_pos;
+ Map<StringName,int>::Element *H=plot_prev.find(E->get());
+ if (H) {
+ prev_plot=H->get();
+ H->get()=plot_pos;
+ } else {
+ plot_prev[E->get()]=plot_pos;
+ }
+
+ if (plot_pos==-1 && prev_plot==-1) {
+ //don't bother drawing
+ continue;
+ }
+
+ if (prev_plot!=-1 && plot_pos==-1) {
+
+ plot_pos=prev_plot;
+ }
+
+ if (prev_plot==-1 && plot_pos!=-1) {
+ prev_plot=plot_pos;
+ }
+
+ plot_pos = h- plot_pos -1;
+ prev_plot = h- prev_plot -1;
+
+ if (prev_plot > plot_pos) {
+ SWAP(prev_plot,plot_pos);
+ }
+
+ Color col = _get_color_from_signature(E->get());
+
+ for(int j=prev_plot;j<=plot_pos;j++) {
+
+ column[j*4+0]+=Math::fast_ftoi(CLAMP(col.r*255,0,255));
+ column[j*4+1]+=Math::fast_ftoi(CLAMP(col.g*255,0,255));
+ column[j*4+2]+=Math::fast_ftoi(CLAMP(col.b*255,0,255));
+ column[j*4+3]+=1;
+
+ }
+ }
+
+
+ for(int j=0;j<h*4;j+=4) {
+
+ int a = column[j+3];
+ if (a>0) {
+ column[j+0]/=a;
+ column[j+1]/=a;
+ column[j+2]/=a;
+
+ }
+
+ uint8_t r = uint8_t(column[j+0]);
+ uint8_t g = uint8_t(column[j+1]);
+ uint8_t b = uint8_t(column[j+2]);
+
+ int widx = ((j>>2)*w+i)*4;
+ wr[widx+0]=r;
+ wr[widx+1]=g;
+ wr[widx+2]=b;
+ wr[widx+3]=255;
+ }
+ }
+
+ time = OS::get_singleton()->get_ticks_usec() - time;
+ //print_line("Taken: "+rtos(USEC_TO_SEC(time)));
+
+ }
+
+
+ wr = DVector<uint8_t>::Write();
+
+ Image img(w,h,0,Image::FORMAT_RGBA,graph_image);
+
+ if (reset_texture) {
+
+ if (graph_texture.is_null()) {
+ graph_texture.instance();
+ }
+ graph_texture->create(img.get_width(),img.get_height(),img.get_format(),Texture::FLAG_VIDEO_SURFACE);
+
+ }
+
+ graph_texture->set_data(img);;
+
+
+ graph->set_texture(graph_texture);
+ graph->update();
+
+}
+
+void EditorProfiler::_update_frame() {
+
+ int cursor_metric = _get_cursor_index();
+
+
+ ERR_FAIL_INDEX(cursor_metric,frame_metrics.size());
+
+ updating_frame=true;
+ variables->clear();
+
+ TreeItem* root = variables->create_item();
+ Metric &m = frame_metrics[cursor_metric];
+
+
+ int dtime = display_time->get_selected();
+
+
+ for(int i=0;i<m.categories.size();i++) {
+
+ TreeItem *category = variables->create_item(root);
+ category->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
+ category->set_editable(0,true);
+ category->set_metadata(0,m.categories[i].signature);
+ category->set_text(0,String(m.categories[i].name));
+ category->set_text(1,_get_time_as_text(m,m.categories[i].total_time,1));
+
+ if (plot_sigs.has(m.categories[i].signature)) {
+ category->set_checked(0,true);
+ category->set_custom_bg_color(0,Color(0,0,0));
+ category->set_custom_color(0,_get_color_from_signature(m.categories[i].signature));
+ }
+
+
+ for(int j=0;j<m.categories[i].items.size();j++) {
+ Metric::Category::Item &it = m.categories[i].items[j];
+
+ TreeItem *item = variables->create_item(category);
+ item->set_cell_mode(0,TreeItem::CELL_MODE_CHECK);
+ item->set_editable(0,true);
+ item->set_text(0,it.name);
+ item->set_metadata(0,it.signature);
+ item->set_metadata(1,it.script);
+ item->set_metadata(2,it.line);
+ item->set_tooltip(0,it.script+":"+itos(it.line));
+
+ float time = dtime == DISPLAY_SELF_TIME ? it.self : it.total;
+
+ item->set_text(1,_get_time_as_text(m,time,it.calls));
+
+ item->set_text(2,itos(it.calls));
+
+ if (plot_sigs.has(it.signature)) {
+ item->set_checked(0,true);
+ item->set_custom_bg_color(0,Color(0,0,0));
+ item->set_custom_color(0,_get_color_from_signature(it.signature));
+ }
+
+ }
+ }
+
+ updating_frame=false;
+
+}
+
+
+void EditorProfiler::_activate_pressed() {
+
+ if (activate->is_pressed()) {
+ clear();
+ activate->set_icon(get_icon("Stop","EditorIcons"));
+ activate->set_text(TTR("Stop Profiling"));
+ } else {
+ activate->set_icon(get_icon("Play","EditorIcons"));
+ activate->set_text(TTR("Start Profiling"));
+
+
+ }
+ emit_signal("enable_profiling",activate->is_pressed());
+
+}
+
+
+void EditorProfiler::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_ENTER_TREE) {
+ activate->set_icon(get_icon("Play","EditorIcons"));
+ }
+}
+
+void EditorProfiler::_graph_tex_draw() {
+
+ if (last_metric<0)
+ return;
+ if (seeking) {
+
+ int max_frames = frame_metrics.size();
+ int frame = cursor_metric_edit->get_val() - (frame_metrics[last_metric].frame_number-max_frames+1);
+ if (frame<0)
+ frame=0;
+
+ int cur_x = frame * graph->get_size().x / max_frames;
+
+
+ graph->draw_line(Vector2(cur_x,0),Vector2(cur_x,graph->get_size().y),Color(1,1,1,0.8));
+ }
+
+
+ if (hover_metric!=-1 && frame_metrics[hover_metric].valid) {
+
+
+
+ int max_frames = frame_metrics.size();
+ int frame = frame_metrics[hover_metric].frame_number - (frame_metrics[last_metric].frame_number-max_frames+1);
+ if (frame<0)
+ frame=0;
+
+ int cur_x = frame * graph->get_size().x / max_frames;
+
+ graph->draw_line(Vector2(cur_x,0),Vector2(cur_x,graph->get_size().y),Color(1,1,1,0.4));
+
+
+ }
+
+}
+
+void EditorProfiler::_graph_tex_mouse_exit() {
+
+ hover_metric=-1;
+ graph->update();
+}
+
+
+void EditorProfiler::_cursor_metric_changed(double) {
+ if (updating_frame)
+ return;
+
+
+ graph->update();
+ _update_frame();
+
+}
+
+void EditorProfiler::_graph_tex_input(const InputEvent& p_ev){
+
+ if (last_metric<0)
+ return;
+
+ if (
+ (p_ev.type==InputEvent::MOUSE_BUTTON && p_ev.mouse_button.button_index==BUTTON_LEFT && p_ev.mouse_button.pressed) ||
+ (p_ev.type==InputEvent::MOUSE_MOTION) ) {
+
+ int x = p_ev.mouse_button.x;
+ x=x*frame_metrics.size()/graph->get_size().width;
+
+ bool show_hover = x>=0 && x<frame_metrics.size();
+
+ if (x<0) {
+ x=0;
+ }
+
+ if (x>=frame_metrics.size()) {
+ x=frame_metrics.size()-1;
+ }
+
+
+
+ int metric=frame_metrics.size()-x-1;
+ metric = last_metric-metric;
+ while(metric<0) {
+ metric+=frame_metrics.size();
+ }
+
+
+
+ if (show_hover) {
+
+ hover_metric=metric;
+
+ } else {
+ hover_metric=-1;
+ }
+
+
+ if (p_ev.type==InputEvent::MOUSE_BUTTON || p_ev.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
+ //cursor_metric=x;
+ updating_frame=true;
+
+ //metric may be invalid, so look for closest metric that is valid, this makes snap feel better
+ bool valid=false;
+ for(int i=0;i<frame_metrics.size();i++) {
+
+ if (frame_metrics[metric].valid) {
+ valid=true;
+ break;
+ }
+
+ metric++;
+ if (metric>=frame_metrics.size())
+ metric=0;
+ }
+
+ if (valid)
+ cursor_metric_edit->set_val(frame_metrics[metric].frame_number);
+
+ updating_frame=false;
+
+ if (activate->is_pressed()) {
+ if (!seeking) {
+ emit_signal("break_request");
+ }
+ }
+
+ seeking=true;
+
+ if (!frame_delay->is_processing()) {
+ frame_delay->set_wait_time(0.1);
+ frame_delay->start();
+ }
+ }
+
+ graph->update();
+
+ }
+
+}
+
+int EditorProfiler::_get_cursor_index() const {
+
+ if (last_metric<0)
+ return 0;
+ if (!frame_metrics[last_metric].valid)
+ return 0;
+
+ int diff = (frame_metrics[last_metric].frame_number-cursor_metric_edit->get_val());
+
+ int idx = last_metric - diff;
+ while (idx<0) {
+ idx+=frame_metrics.size();
+ }
+
+
+ return idx;
+
+}
+
+void EditorProfiler::disable_seeking() {
+
+ seeking=false;
+ graph->update();
+
+}
+
+void EditorProfiler::_combo_changed(int) {
+
+ _update_frame();
+ _update_plot();
+}
+
+void EditorProfiler::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("_update_frame"),&EditorProfiler::_update_frame);
+ ObjectTypeDB::bind_method(_MD("_update_plot"),&EditorProfiler::_update_plot);
+ ObjectTypeDB::bind_method(_MD("_activate_pressed"),&EditorProfiler::_activate_pressed);
+ ObjectTypeDB::bind_method(_MD("_graph_tex_draw"),&EditorProfiler::_graph_tex_draw);
+ ObjectTypeDB::bind_method(_MD("_graph_tex_input"),&EditorProfiler::_graph_tex_input);
+ ObjectTypeDB::bind_method(_MD("_graph_tex_mouse_exit"),&EditorProfiler::_graph_tex_mouse_exit);
+ ObjectTypeDB::bind_method(_MD("_cursor_metric_changed"),&EditorProfiler::_cursor_metric_changed);
+ ObjectTypeDB::bind_method(_MD("_combo_changed"),&EditorProfiler::_combo_changed);
+
+ ObjectTypeDB::bind_method(_MD("_item_edited"),&EditorProfiler::_item_edited);
+ ADD_SIGNAL( MethodInfo("enable_profiling",PropertyInfo(Variant::BOOL,"enable")));
+ ADD_SIGNAL( MethodInfo("break_request"));
+
+}
+
+void EditorProfiler::set_enabled(bool p_enable) {
+
+ activate->set_disabled(!p_enable);
+}
+
+bool EditorProfiler::is_profiling() {
+ return activate->is_pressed();
+}
+
+EditorProfiler::EditorProfiler()
+{
+
+ HBoxContainer *hb = memnew( HBoxContainer );
+ add_child(hb);
+ activate = memnew( Button );
+ activate->set_toggle_mode(true);
+ activate->set_text(TTR("Start Profiling"));
+ activate->connect("pressed",this,"_activate_pressed");
+ hb->add_child(activate);
+
+ hb->add_child( memnew( Label(TTR("Measure:") ) ) );
+
+ display_mode = memnew( OptionButton );
+ display_mode->add_item(TTR("Frame Time (sec)"));
+ display_mode->add_item(TTR("Average Time (sec)"));
+ display_mode->add_item(TTR("Frame %"));
+ display_mode->add_item(TTR("Fixed Frame %"));
+ display_mode->connect("item_selected",this,"_combo_changed");
+
+ hb->add_child( display_mode );
+
+ hb->add_child( memnew( Label(TTR("Time:") ) ) );
+
+ display_time = memnew( OptionButton );
+ display_time->add_item(TTR("Inclusive"));
+ display_time->add_item(TTR("Self"));
+ display_time->connect("item_selected",this,"_combo_changed");
+
+ hb->add_child(display_time);
+
+ hb->add_spacer();
+
+ hb->add_child( memnew( Label(TTR("Frame #:") ) ) );
+
+ cursor_metric_edit = memnew( SpinBox );
+ cursor_metric_edit->set_h_size_flags(SIZE_FILL);
+ hb->add_child(cursor_metric_edit);
+ cursor_metric_edit->connect("value_changed",this,"_cursor_metric_changed");
+
+ hb->add_constant_override("separation",8);
+
+
+
+ h_split = memnew( HSplitContainer );
+ add_child(h_split);
+ h_split->set_v_size_flags(SIZE_EXPAND_FILL);
+
+ variables = memnew( Tree );
+ variables->set_custom_minimum_size(Size2(300,0));
+ variables->set_hide_folding(true);
+ h_split->add_child(variables);
+ variables->set_hide_root(true);
+ variables->set_columns(3);
+ variables->set_column_titles_visible(true);
+ variables->set_column_title(0,"Name");
+ variables->set_column_expand(0,true);
+ variables->set_column_min_width(0,60);
+ variables->set_column_title(1,"Time");
+ variables->set_column_expand(1,false);
+ variables->set_column_min_width(1,60);
+ variables->set_column_title(2,"Calls");
+ variables->set_column_expand(2,false);
+ variables->set_column_min_width(2,60);
+ variables->connect("item_edited",this,"_item_edited");
+
+
+ graph = memnew( TextureFrame );
+ graph->set_expand(true);
+ graph->set_stop_mouse(true);
+ graph->set_ignore_mouse(false);
+ graph->connect("draw",this,"_graph_tex_draw");
+ graph->connect("input_event",this,"_graph_tex_input");
+ graph->connect("mouse_exit",this,"_graph_tex_mouse_exit");
+
+ h_split->add_child(graph);
+ graph->set_h_size_flags(SIZE_EXPAND_FILL);
+
+ add_constant_override("separation",3);
+
+ int metric_size=CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size",600)),60,1024);
+ frame_metrics.resize(metric_size);
+ last_metric=-1;
+// cursor_metric=-1;
+ hover_metric=-1;
+
+
+ EDITOR_DEF("debugger/profiler_frame_max_functions",64);
+
+ //display_mode=DISPLAY_FRAME_TIME;
+
+ frame_delay = memnew( Timer );
+ frame_delay->set_wait_time(0.1);
+ frame_delay->set_one_shot(true);
+ add_child(frame_delay);
+ frame_delay->connect("timeout",this,"_update_frame");
+
+ plot_delay = memnew( Timer );
+ plot_delay->set_wait_time(0.1);
+ plot_delay->set_one_shot(true);
+ add_child(plot_delay);
+ plot_delay->connect("timeout",this,"_update_plot");
+
+ plot_sigs.insert("fixed_frame_time");
+ plot_sigs.insert("category_frame_time");
+
+ seeking=false;
+ graph_height=1;
+
+// activate->set_disabled(true);
+
+}
diff --git a/tools/editor/editor_profiler.h b/tools/editor/editor_profiler.h
new file mode 100644
index 0000000000..f5cea118ce
--- /dev/null
+++ b/tools/editor/editor_profiler.h
@@ -0,0 +1,145 @@
+#ifndef EDITORPROFILER_H
+#define EDITORPROFILER_H
+
+
+#include "scene/gui/box_container.h"
+#include "scene/gui/texture_frame.h"
+#include "scene/gui/button.h"
+#include "scene/gui/label.h"
+#include "scene/gui/tree.h"
+#include "scene/gui/split_container.h"
+#include "scene/gui/option_button.h"
+#include "scene/gui/spin_box.h"
+
+
+class EditorProfiler : public VBoxContainer {
+
+ OBJ_TYPE(EditorProfiler,VBoxContainer)
+
+public:
+
+ struct Metric {
+
+ bool valid;
+
+ int frame_number;
+ float frame_time;
+ float idle_time;
+ float fixed_time;
+ float fixed_frame_time;
+
+ struct Category {
+
+ StringName signature;
+ String name;
+ float total_time; //total for category
+
+ struct Item {
+
+ StringName signature;
+ String name;
+ String script;
+ int line;
+ float self;
+ float total;
+ int calls;
+ };
+
+ Vector<Item> items;
+ };
+
+ Vector<Category> categories;
+
+ Map<StringName,Category*> category_ptrs;
+ Map<StringName,Category::Item*> item_ptrs;
+
+
+ Metric() { valid=false; frame_number=0; }
+ };
+
+ enum DisplayMode {
+ DISPLAY_FRAME_TIME,
+ DISPLAY_AVERAGE_TIME,
+ DISPLAY_FRAME_PERCENT,
+ DISPLAY_FIXED_FRAME_PERCENT,
+ };
+
+ enum DisplayTime {
+ DISPLAY_TOTAL_TIME,
+ DISPLAY_SELF_TIME,
+ };
+
+private:
+ Button *activate;
+ TextureFrame *graph;
+ Ref<ImageTexture> graph_texture;
+ DVector<uint8_t> graph_image;
+ Tree *variables;
+ HSplitContainer *h_split;
+
+ Set<StringName> plot_sigs;
+
+ OptionButton *display_mode;
+ OptionButton *display_time;
+
+ SpinBox * cursor_metric_edit;
+
+ Vector<Metric> frame_metrics;
+ int last_metric;
+
+ int max_functions;
+
+ bool updating_frame;
+
+ //int cursor_metric;
+ int hover_metric;
+
+ float graph_height;
+
+ bool seeking;
+
+ Timer *frame_delay;
+ Timer *plot_delay;
+
+ void _update_frame();
+
+ void _activate_pressed();
+
+ String _get_time_as_text(Metric &m,float p_time,int p_calls);
+
+ void _make_metric_ptrs(Metric& m);
+ void _item_edited();
+
+ void _update_plot();
+
+ void _graph_tex_mouse_exit();
+
+ void _graph_tex_draw();
+ void _graph_tex_input(const InputEvent& p_ev);
+
+ int _get_cursor_index() const;
+
+ Color _get_color_from_signature(const StringName& p_signature) const;
+
+ void _cursor_metric_changed(double);
+
+ void _combo_changed(int);
+
+protected:
+
+ void _notification(int p_what);
+ static void _bind_methods();
+public:
+
+ void add_frame_metric(const Metric& p_metric, bool p_final=false);
+ void set_enabled(bool p_enable);
+ bool is_profiling();
+ bool is_seeking() { return seeking; }
+ void disable_seeking();
+
+ void clear();
+
+ EditorProfiler();
+};
+
+#endif // EDITORPROFILER_H
diff --git a/tools/editor/editor_reimport_dialog.cpp b/tools/editor/editor_reimport_dialog.cpp
index 244642b7a6..b6311a7604 100644
--- a/tools/editor/editor_reimport_dialog.cpp
+++ b/tools/editor/editor_reimport_dialog.cpp
@@ -32,7 +32,7 @@
void EditorReImportDialog::popup_reimport() {
if (EditorFileSystem::get_singleton()->is_scanning()) {
- error->set_text(TTR("Please wait for scan to complete"));
+ error->set_text(TTR("Please wait for scan to complete."));
error->popup_centered_minsize();
return;
}
@@ -92,7 +92,7 @@ void EditorReImportDialog::popup_reimport() {
void EditorReImportDialog::ok_pressed() {
if (EditorFileSystem::get_singleton()->is_scanning()) {
- error->set_text(TTR("Please wait for scan to complete"));
+ error->set_text(TTR("Please wait for scan to complete."));
error->popup_centered_minsize();
return;
}
diff --git a/tools/editor/editor_resource_preview.cpp b/tools/editor/editor_resource_preview.cpp
index f684b49a2c..05b935f26c 100644
--- a/tools/editor/editor_resource_preview.cpp
+++ b/tools/editor/editor_resource_preview.cpp
@@ -4,7 +4,7 @@
#include "io/resource_loader.h"
#include "io/resource_saver.h"
#include "globals.h"
-
+#include "editor_scale.h"
Ref<Texture> EditorResourcePreviewGenerator::generate_from_path(const String& p_path) {
@@ -36,14 +36,24 @@ void EditorResourcePreview::_preview_ready(const String& p_str,const Ref<Texture
//print_line("preview is ready");
preview_mutex->lock();
+ String path = p_str;
+ uint32_t hash=0;
+
+ if (p_str.begins_with("ID:")) {
+ hash=p_str.get_slicec(':',2).to_int();
+ path="ID:"+p_str.get_slicec(':',1);
+ }
+
Item item;
item.order=order++;
item.preview=p_texture;
- cache[p_str]=item;
+ item.last_hash=hash;
+
+ cache[path]=item;
Object *recv = ObjectDB::get_instance(id);
if (recv) {
- recv->call_deferred(p_func,p_str,p_texture,p_ud);
+ recv->call_deferred(p_func,path,p_texture,p_ud);
}
preview_mutex->unlock();
@@ -51,7 +61,12 @@ void EditorResourcePreview::_preview_ready(const String& p_str,const Ref<Texture
Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,const String& cache_base) {
- String type = ResourceLoader::get_resource_type(p_item.path);
+ String type;
+
+ if (p_item.resource.is_valid())
+ type=p_item.resource->get_type();
+ else
+ type=ResourceLoader::get_resource_type(p_item.path);
//print_line("resource type is: "+type);
if (type=="")
@@ -62,24 +77,32 @@ Ref<Texture> EditorResourcePreview::_generate_preview(const QueueItem& p_item,co
for(int i=0;i<preview_generators.size();i++) {
if (!preview_generators[i]->handles(type))
continue;
- generated = preview_generators[i]->generate_from_path(p_item.path);
+ if (p_item.resource.is_valid()) {
+ generated = preview_generators[i]->generate(p_item.resource);
+ } else {
+ generated = preview_generators[i]->generate_from_path(p_item.path);
+ }
break;
}
- if (generated.is_valid()) {
- //print_line("was generated");
- int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
- //wow it generated a preview... save cache
- ResourceSaver::save(cache_base+".png",generated);
- FileAccess *f=FileAccess::open(cache_base+".txt",FileAccess::WRITE);
- f->store_line(itos(thumbnail_size));
- f->store_line(itos(FileAccess::get_modified_time(p_item.path)));
- f->store_line(FileAccess::get_md5(p_item.path));
- memdelete(f);
- } else {
- //print_line("was not generated");
+ if (!p_item.resource.is_valid()) {
+ // cache the preview in case it's a resource on disk
+ if (generated.is_valid()) {
+ //print_line("was generated");
+ int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
+ //wow it generated a preview... save cache
+ ResourceSaver::save(cache_base+".png",generated);
+ FileAccess *f=FileAccess::open(cache_base+".txt",FileAccess::WRITE);
+ f->store_line(itos(thumbnail_size));
+ f->store_line(itos(FileAccess::get_modified_time(p_item.path)));
+ f->store_line(FileAccess::get_md5(p_item.path));
+ memdelete(f);
+ } else {
+ //print_line("was not generated");
+ }
}
return generated;
@@ -108,13 +131,22 @@ void EditorResourcePreview::_thread() {
//print_line("pop from queue "+item.path);
- uint64_t modtime = FileAccess::get_modified_time(item.path);
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
if (cache.has(item.path)) {
//already has it because someone loaded it, just let it know it's ready
+ if (item.resource.is_valid()) {
+ item.path+=":"+itos(cache[item.path].last_hash); //keep last hash (see description of what this is in condition below)
+ }
call_deferred("_preview_ready",item.path,cache[item.path].preview,item.id,item.function,item.userdata);
+ } else if (item.resource.is_valid()){
+
+ texture=_generate_preview(item,String());
+ //adding hash to the end of path (should be ID:<objid>:<hash>) because of 5 argument limit to call_deferred
+ call_deferred("_preview_ready",item.path+":"+itos(item.resource->hash_edited_version()),texture,item.id,item.function,item.userdata);
+
} else {
@@ -135,6 +167,7 @@ void EditorResourcePreview::_thread() {
texture=_generate_preview(item,cache_base);
} else {
+ uint64_t modtime = FileAccess::get_modified_time(item.path);
int tsize = f->get_line().to_int64();
uint64_t last_modtime = f->get_line().to_int64();
@@ -194,6 +227,35 @@ void EditorResourcePreview::_thread() {
+void EditorResourcePreview::queue_edited_resource_preview(const Ref<Resource>& p_res, Object* p_receiver, const StringName& p_receiver_func, const Variant& p_userdata) {
+
+ ERR_FAIL_NULL(p_receiver);
+ ERR_FAIL_COND(!p_res.is_valid());
+
+ preview_mutex->lock();
+
+ String path_id = "ID:"+itos(p_res->get_instance_ID());
+ if (cache.has(path_id) && cache[path_id].last_hash==p_res->hash_edited_version()) {
+
+ cache[path_id].order=order++;
+ p_receiver->call_deferred(p_receiver_func,path_id,cache[path_id].preview,p_userdata);
+ preview_mutex->unlock();
+ return;
+
+ }
+
+ //print_line("send to thread "+p_path);
+ QueueItem item;
+ item.function=p_receiver_func;
+ item.id=p_receiver->get_instance_ID();
+ item.resource=p_res;
+ item.path=path_id;
+ item.userdata=p_userdata;
+
+ queue.push_back(item);
+ preview_mutex->unlock();
+ preview_sem->post();
+}
void EditorResourcePreview::queue_resource_preview(const String& p_path, Object* p_receiver, const StringName& p_receiver_func, const Variant& p_userdata) {
@@ -204,7 +266,6 @@ void EditorResourcePreview::queue_resource_preview(const String& p_path, Object*
p_receiver->call_deferred(p_receiver_func,p_path,cache[p_path].preview,p_userdata);
preview_mutex->unlock();
return;
-
}
//print_line("send to thread "+p_path);
diff --git a/tools/editor/editor_resource_preview.h b/tools/editor/editor_resource_preview.h
index aadae75597..13c3d51313 100644
--- a/tools/editor/editor_resource_preview.h
+++ b/tools/editor/editor_resource_preview.h
@@ -47,6 +47,7 @@ class EditorResourcePreview : public Node {
static EditorResourcePreview* singleton;
struct QueueItem {
+ Ref<Resource> resource;
String path;
ObjectID id;
StringName function;
@@ -63,6 +64,7 @@ class EditorResourcePreview : public Node {
struct Item {
Ref<Texture> preview;
int order;
+ uint32_t last_hash;
};
int order;
@@ -84,7 +86,8 @@ public:
static EditorResourcePreview* get_singleton();
//callback funtion is callback(String p_path,Ref<Texture> preview,Variant udata) preview null if could not load
- void queue_resource_preview(const String& p_path, Object* p_receiver, const StringName& p_receiver_func, const Variant& p_userdata);
+ void queue_resource_preview(const String& p_res, Object* p_receiver, const StringName& p_receiver_func, const Variant& p_userdata);
+ void queue_edited_resource_preview(const Ref<Resource>& p_path, Object* p_receiver, const StringName& p_receiver_func, const Variant& p_userdata);
void add_preview_generator(const Ref<EditorResourcePreviewGenerator>& p_generator);
diff --git a/tools/editor/editor_run_script.cpp b/tools/editor/editor_run_script.cpp
index 65aaf3d734..d34cac1530 100644
--- a/tools/editor/editor_run_script.cpp
+++ b/tools/editor/editor_run_script.cpp
@@ -9,12 +9,12 @@
void EditorScript::add_root_node(Node *p_node) {
if (!editor) {
- EditorNode::add_io_error(TTR("EditorScript::add_root_node : Write your logic in the _run() method."));
+ EditorNode::add_io_error("EditorScript::add_root_node: "+TTR("Write your logic in the _run() method."));
return;
}
if (editor->get_edited_scene()) {
- EditorNode::add_io_error(TTR("EditorScript::add_root_node : There is an edited scene already."));
+ EditorNode::add_io_error("EditorScript::add_root_node: "+TTR("There is an edited scene already."));
return;
}
@@ -24,7 +24,7 @@ void EditorScript::add_root_node(Node *p_node) {
Node *EditorScript::get_scene() {
if (!editor) {
- EditorNode::add_io_error(TTR("EditorScript::get_scene : Write your logic in the _run() method."));
+ EditorNode::add_io_error("EditorScript::get_scene: "+TTR("Write your logic in the _run() method."));
return NULL;
}
@@ -36,7 +36,7 @@ void EditorScript::_run() {
Ref<Script> s = get_script();
ERR_FAIL_COND(!s.is_valid());
if (!get_script_instance()) {
- EditorNode::add_io_error("Couldn't instance script:\n "+s->get_path()+"\nDid you forget the 'tool' keyword?");
+ EditorNode::add_io_error(TTR("Couldn't instance script:")+"\n "+s->get_path()+"\n"+TTR("Did you forget the 'tool' keyword?"));
return;
}
@@ -46,7 +46,7 @@ void EditorScript::_run() {
get_script_instance()->call("_run",NULL,0,ce);
if (ce.error!=Variant::CallError::CALL_OK) {
- EditorNode::add_io_error("Couldn't run script:\n "+s->get_path()+"\nDid you forget the '_run' method?");
+ EditorNode::add_io_error(TTR("Couldn't run script:")+"\n "+s->get_path()+"\n"+TTR("Did you forget the '_run' method?"));
}
}
diff --git a/tools/editor/editor_scale.cpp b/tools/editor/editor_scale.cpp
new file mode 100644
index 0000000000..c332acc0ca
--- /dev/null
+++ b/tools/editor/editor_scale.cpp
@@ -0,0 +1,14 @@
+#include "editor_scale.h"
+#include "os/os.h"
+
+static bool editor_hidpi=false;
+
+void editor_set_hidpi(bool p_hidpi) {
+
+ editor_hidpi=p_hidpi;
+}
+
+bool editor_is_hidpi() {
+
+ return editor_hidpi;
+}
diff --git a/tools/editor/editor_scale.h b/tools/editor/editor_scale.h
new file mode 100644
index 0000000000..a60cf00f0a
--- /dev/null
+++ b/tools/editor/editor_scale.h
@@ -0,0 +1,8 @@
+#ifndef EDITOR_SCALE_H
+#define EDITOR_SCALE_H
+
+void editor_set_hidpi(bool p_hidpi);
+bool editor_is_hidpi();
+
+#define EDSCALE (editor_is_hidpi() ? 2 : 1)
+#endif // EDITOR_SCALE_H
diff --git a/tools/editor/editor_settings.cpp b/tools/editor/editor_settings.cpp
index d9351ffa80..bf01e02330 100644
--- a/tools/editor/editor_settings.cpp
+++ b/tools/editor/editor_settings.cpp
@@ -41,6 +41,11 @@
#include "io/config_file.h"
#include "editor_node.h"
#include "globals.h"
+#include "translations.h"
+#include "io/file_access_memory.h"
+#include "io/translation_loader_po.h"
+#include "io/compression.h"
+#include "os/keyboard.h"
Ref<EditorSettings> EditorSettings::singleton=NULL;
@@ -53,6 +58,26 @@ EditorSettings *EditorSettings::get_singleton() {
bool EditorSettings::_set(const StringName& p_name, const Variant& p_value) {
_THREAD_SAFE_METHOD_
+
+ if (p_name.operator String()=="shortcuts") {
+
+ Array arr=p_value;
+ ERR_FAIL_COND_V(arr.size() && arr.size()&1,true);
+ print_line("shortcuts: "+Variant(arr).get_construct_string());
+ for(int i=0;i<arr.size();i+=2) {
+
+ String name = arr[i];
+ InputEvent shortcut = arr[i+1];
+
+ Ref<ShortCut> sc;
+ sc.instance();
+ sc->set_shortcut(shortcut);
+ add_shortcut(name,sc);
+ }
+
+ return true;
+ }
+
if (p_value.get_type()==Variant::NIL)
props.erase(p_name);
else {
@@ -70,6 +95,25 @@ bool EditorSettings::_get(const StringName& p_name,Variant &r_ret) const {
_THREAD_SAFE_METHOD_
+ if (p_name.operator String()=="shortcuts") {
+
+ Array arr;
+ for (const Map<String,Ref<ShortCut> >::Element *E=shortcuts.front();E;E=E->next()) {
+
+ Ref<ShortCut> sc=E->get();
+ if (!sc->has_meta("original"))
+ continue; //this came from settings but is not any longer used
+
+ InputEvent original = sc->get_meta("original");
+ if (sc->is_shortcut(original) || (original.type==InputEvent::NONE && sc->get_shortcut().type==InputEvent::NONE))
+ continue; //not changed from default, don't save
+ arr.push_back(E->key());
+ arr.push_back(sc->get_shortcut());
+ }
+ r_ret=arr;
+ return true;
+ }
+
const VariantContainer *v=props.getptr(p_name);
if (!v)
return false;
@@ -122,6 +166,8 @@ void EditorSettings::_get_property_list(List<PropertyInfo> *p_list) const {
p_list->push_back( pi );
}
+
+ p_list->push_back(PropertyInfo(Variant::ARRAY,"shortcuts",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR)); //do not edit
}
bool EditorSettings::has(String p_var) const {
@@ -169,7 +215,7 @@ void EditorSettings::create() {
String config_path;
String config_dir;
- String config_file="editor_settings.xml";
+ //String config_file="editor_settings.xml";
Ref<ConfigFile> extra_config = memnew(ConfigFile);
String exe_path = OS::get_singleton()->get_executable_path().get_base_dir();
@@ -221,6 +267,12 @@ void EditorSettings::create() {
dir->change_dir("..");
}
+ if (dir->change_dir("text_editor_themes")!=OK) {
+ dir->make_dir("text_editor_themes");
+ } else {
+ dir->change_dir("..");
+ }
+
if (dir->change_dir("tmp")!=OK) {
dir->make_dir("tmp");
} else {
@@ -253,17 +305,26 @@ void EditorSettings::create() {
// path at least is validated, so validate config file
- config_file_path = config_path+"/"+config_dir+"/"+config_file;
+ config_file_path = config_path+"/"+config_dir+"/editor_settings.tres";
- if (!dir->file_exists(config_file)) {
- memdelete(dir);
- WARN_PRINT("Config file does not exist, creating.");
- goto fail;
+ String open_path = config_file_path;
+
+ if (!dir->file_exists("editor_settings.tres")) {
+
+ open_path = config_path+"/"+config_dir+"/editor_settings.xml";
+
+ if (!dir->file_exists("editor_settings.xml")) {
+
+ memdelete(dir);
+ WARN_PRINT("Config file does not exist, creating.");
+ goto fail;
+ }
}
memdelete(dir);
- singleton = ResourceLoader::load(config_file_path,TTR("EditorSettings"));
+ singleton = ResourceLoader::load(open_path,"EditorSettings");
+
if (singleton.is_null()) {
WARN_PRINT("Could not open config file.");
goto fail;
@@ -278,8 +339,10 @@ void EditorSettings::create() {
print_line("EditorSettings: Load OK!");
}
+ singleton->setup_language();
singleton->setup_network();
singleton->load_favorites();
+ singleton->list_text_editor_themes();
return;
@@ -302,8 +365,10 @@ void EditorSettings::create() {
singleton = Ref<EditorSettings>( memnew( EditorSettings ) );
singleton->config_file_path=config_file_path;
singleton->settings_path=config_path+"/"+config_dir;
- singleton->_load_defaults(extra_config);
+ singleton->_load_defaults(extra_config);
+ singleton->setup_language();
singleton->setup_network();
+ singleton->list_text_editor_themes();
}
@@ -315,6 +380,23 @@ String EditorSettings::get_settings_path() const {
+void EditorSettings::setup_language() {
+
+ String lang = get("global/editor_language");
+ print_line("LANG IS "+lang);
+ if (lang=="en")
+ return; //none to do
+
+ for(int i=0;i<translations.size();i++) {
+ print_line("TESTING "+translations[i]->get_locale());
+ if (translations[i]->get_locale()==lang) {
+ print_line("ok translation");
+ TranslationServer::get_singleton()->set_tool_translation(translations[i]);
+ break;
+ }
+ }
+}
+
void EditorSettings::setup_network() {
List<IP_Address> local_ip;
@@ -382,8 +464,44 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
_THREAD_SAFE_METHOD_
- set("global/font","");
- hints["global/font"]=PropertyInfo(Variant::STRING,"global/font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt");
+
+ {
+ String lang_hint="en";
+ String host_lang = OS::get_singleton()->get_locale();
+
+ String best;
+
+ for(int i=0;i<translations.size();i++) {
+ String locale = translations[i]->get_locale();
+ lang_hint+=",";
+ lang_hint+=locale;
+
+ if (host_lang==locale) {
+ best=locale;
+ }
+
+ if (best==String() && host_lang.begins_with(locale)) {
+ best=locale;
+ }
+ }
+
+ if (best==String()) {
+ best="en";
+ }
+
+ set("global/editor_language",best);
+ hints["global/editor_language"]=PropertyInfo(Variant::STRING,"global/editor_language",PROPERTY_HINT_ENUM,lang_hint,PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ }
+
+ set("global/hidpi_mode",0);
+ hints["global/hidpi_mode"]=PropertyInfo(Variant::INT,"global/hidpi_mode",PROPERTY_HINT_ENUM,"Auto,LoDPI,HiDPI",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("global/show_script_in_scene_tabs",false);
+ set("global/font_size",14);
+ hints["global/font_size"]=PropertyInfo(Variant::INT,"global/font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("global/source_font_size",14);
+ hints["global/source_font_size"]=PropertyInfo(Variant::INT,"global/source_font_size",PROPERTY_HINT_RANGE,"10,40,1",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
+ set("global/custom_font","");
+ hints["global/custom_font"]=PropertyInfo(Variant::STRING,"global/custom_font",PROPERTY_HINT_GLOBAL_FILE,"*.fnt",PROPERTY_USAGE_DEFAULT|PROPERTY_USAGE_RESTART_IF_CHANGED);
set("global/autoscan_project_path","");
hints["global/autoscan_project_path"]=PropertyInfo(Variant::STRING,"global/autoscan_project_path",PROPERTY_HINT_GLOBAL_DIR);
set("global/default_project_path","");
@@ -391,24 +509,12 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("global/default_project_export_path","");
hints["global/default_project_export_path"]=PropertyInfo(Variant::STRING,"global/default_project_export_path",PROPERTY_HINT_GLOBAL_DIR);
set("global/show_script_in_scene_tabs",false);
- set("text_editor/background_color",Color::html("3b000000"));
- set("text_editor/caret_color",Color::html("aaaaaa"));
- set("text_editor/line_number_color",Color::html("66aaaaaa"));
- set("text_editor/text_color",Color::html("aaaaaa"));
- set("text_editor/text_selected_color",Color::html("000000"));
- set("text_editor/keyword_color",Color::html("ffffb3"));
- set("text_editor/base_type_color",Color::html("a4ffd4"));
- set("text_editor/engine_type_color",Color::html("83d3ff"));
- set("text_editor/function_color",Color::html("66a2ce"));
- set("text_editor/member_variable_color",Color::html("e64e59"));
- set("text_editor/comment_color",Color::html("983d1b"));
- set("text_editor/string_color",Color::html("ef6ebe"));
- set("text_editor/number_color",Color::html("EB9532"));
- set("text_editor/symbol_color",Color::html("badfff"));
- set("text_editor/selection_color",Color::html("7b5dbe"));
- set("text_editor/brace_mismatch_color",Color(1,0.2,0.2));
- set("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15));
- set("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15));
+
+
+ set("text_editor/color_theme","Default");
+ hints["text_editor/color_theme"]=PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,"Default");
+
+ _load_default_text_editor_theme();
set("text_editor/syntax_highlighting", true);
@@ -420,6 +526,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("text_editor/draw_tabs", true);
set("text_editor/show_line_numbers", true);
+ set("text_editor/show_breakpoint_gutter", true);
set("text_editor/trim_trailing_whitespace_on_save", false);
set("text_editor/idle_parse_delay",2);
@@ -438,7 +545,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("scenetree_editor/duplicate_node_name_num_separator",0);
hints["scenetree_editor/duplicate_node_name_num_separator"]=PropertyInfo(Variant::INT,"scenetree_editor/duplicate_node_name_num_separator",PROPERTY_HINT_ENUM, "None,Space,Underscore,Dash");
- set("scenetree_editor/display_old_action_buttons",false);
+ //set("scenetree_editor/display_old_action_buttons",false);
+ set("scenetree_editor/start_create_dialog_fully_expanded",false);
set("gridmap_editor/pick_distance", 5000.0);
@@ -464,7 +572,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("2d_editor/bone_color2",Color(0.75,0.75,0.75,0.9));
set("2d_editor/bone_selected_color",Color(0.9,0.45,0.45,0.9));
set("2d_editor/bone_ik_color",Color(0.9,0.9,0.45,0.9));
-
+
set("2d_editor/keep_margins_when_changing_anchors", false);
set("game_window_placement/rect",0);
@@ -505,13 +613,16 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
#else
hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"");
#endif
- set(TTR("PVRTC/fast_conversion"),false);
+ // TODO: Rename to "import/pvrtc_fast_conversion" to match other names?
+ set("PVRTC/fast_conversion",false);
set("run/auto_save_before_running",true);
set("resources/save_compressed_resources",true);
set("resources/auto_reload_modified_images",true);
+ set("import/automatic_reimport_on_sources_changed",true);
+
if (p_extra_config.is_valid()) {
if (p_extra_config->has_section("init_projects") && p_extra_config->has_section_key("init_projects", "list")) {
@@ -543,6 +654,31 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
}
+void EditorSettings::_load_default_text_editor_theme() {
+ set("text_editor/background_color",Color::html("3b000000"));
+ set("text_editor/caret_color",Color::html("aaaaaa"));
+ set("text_editor/line_number_color",Color::html("66aaaaaa"));
+ set("text_editor/text_color",Color::html("aaaaaa"));
+ set("text_editor/text_selected_color",Color::html("000000"));
+ set("text_editor/keyword_color",Color::html("ffffb3"));
+ set("text_editor/base_type_color",Color::html("a4ffd4"));
+ set("text_editor/engine_type_color",Color::html("83d3ff"));
+ set("text_editor/function_color",Color::html("66a2ce"));
+ set("text_editor/member_variable_color",Color::html("e64e59"));
+ set("text_editor/comment_color",Color::html("676767"));
+ set("text_editor/string_color",Color::html("ef6ebe"));
+ set("text_editor/number_color",Color::html("EB9532"));
+ set("text_editor/symbol_color",Color::html("badfff"));
+ set("text_editor/selection_color",Color::html("7b5dbe"));
+ set("text_editor/brace_mismatch_color",Color(1,0.2,0.2));
+ set("text_editor/current_line_color",Color(0.3,0.5,0.8,0.15));
+ set("text_editor/mark_color", Color(1.0,0.4,0.4,0.4));
+ set("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2));
+ set("text_editor/word_highlighted_color",Color(0.8,0.9,0.9,0.15));
+ set("text_editor/search_result_color",Color(0.05,0.25,0.05,1));
+ set("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1));
+}
+
void EditorSettings::notify_changes() {
_THREAD_SAFE_METHOD_
@@ -643,6 +779,180 @@ void EditorSettings::load_favorites() {
}
+void EditorSettings::list_text_editor_themes() {
+ String themes="Default";
+ DirAccess *d = DirAccess::open(settings_path + "/text_editor_themes");
+ if (d) {
+ d->list_dir_begin();
+ String file = d->get_next();
+ while(file != String()) {
+ if (file.extension() == "tet" && file.basename().to_lower() != "default") {
+ themes += "," + file.basename();
+ }
+ file = d->get_next();
+ }
+ d->list_dir_end();
+ memdelete(d);
+ }
+ add_property_hint(PropertyInfo(Variant::STRING,"text_editor/color_theme",PROPERTY_HINT_ENUM,themes));
+}
+
+void EditorSettings::load_text_editor_theme() {
+ if (get("text_editor/color_theme") == "Default") {
+ _load_default_text_editor_theme(); // sorry for "Settings changed" console spam
+ return;
+ }
+
+ String theme_path = get_settings_path() + "/text_editor_themes/" + get("text_editor/color_theme") + ".tet";
+
+ Ref<ConfigFile> cf = memnew( ConfigFile );
+ Error err = cf->load(theme_path);
+
+ if (err != OK) {
+ return;
+ }
+
+ List<String> keys;
+ cf->get_section_keys("color_theme", &keys);
+
+ for(List<String>::Element *E=keys.front();E;E=E->next()) {
+ String key = E->get();
+ String val = cf->get_value("color_theme", key);
+
+ // don't load if it's not already there!
+ if (has("text_editor/" + key)) {
+
+ // make sure it is actually a color
+ if (val.is_valid_html_color() && key.find("color") >= 0) {
+ props["text_editor/"+key].variant = Color::html(val); // change manually to prevent "Settings changed" console spam
+ }
+ }
+ }
+ emit_signal("settings_changed");
+ // if it doesn't load just use what is currently loaded
+}
+
+bool EditorSettings::import_text_editor_theme(String p_file) {
+
+ if (!p_file.ends_with(".tet")) {
+ return false;
+ } else {
+ if (p_file.get_file().to_lower() == "default.tet") {
+ return false;
+ }
+
+ DirAccess *d = DirAccess::open(settings_path + "/text_editor_themes");
+ if (d) {
+ d->copy(p_file, settings_path + "/text_editor_themes/" + p_file.get_file());
+ memdelete(d);
+ return true;
+ }
+ }
+ return false;
+}
+
+bool EditorSettings::save_text_editor_theme() {
+
+ String p_file = get("text_editor/color_theme");
+
+ if (p_file.get_file().to_lower() == "default") {
+ return false;
+ }
+ String theme_path = get_settings_path() + "/text_editor_themes/" + p_file + ".tet";
+ return _save_text_editor_theme(theme_path);
+}
+
+bool EditorSettings::save_text_editor_theme_as(String p_file) {
+ if (!p_file.ends_with(".tet")) {
+ p_file += ".tet";
+ }
+
+ if (p_file.get_file().to_lower() == "default.tet") {
+ return false;
+ }
+ if(_save_text_editor_theme(p_file)) {
+
+ // switch to theme is saved in the theme directory
+ list_text_editor_themes();
+ String theme_name = p_file.substr(0, p_file.length() - 4).get_file();
+
+ if (p_file.get_base_dir() == get_settings_path() + "/text_editor_themes") {
+ set("text_editor/color_theme", theme_name);
+ load_text_editor_theme();
+ }
+ return true;
+ }
+ return false;
+}
+
+bool EditorSettings::_save_text_editor_theme(String p_file) {
+ String theme_section = "color_theme";
+ Ref<ConfigFile> cf = memnew( ConfigFile ); // hex is better?
+ cf->set_value(theme_section, "background_color", ((Color)get("text_editor/background_color")).to_html());
+ cf->set_value(theme_section, "caret_color", ((Color)get("text_editor/caret_color")).to_html());
+ cf->set_value(theme_section, "line_number_color", ((Color)get("text_editor/line_number_color")).to_html());
+ cf->set_value(theme_section, "text_color", ((Color)get("text_editor/text_color")).to_html());
+ cf->set_value(theme_section, "text_selected_color", ((Color)get("text_editor/text_selected_color")).to_html());
+ cf->set_value(theme_section, "keyword_color", ((Color)get("text_editor/keyword_color")).to_html());
+ cf->set_value(theme_section, "base_type_color", ((Color)get("text_editor/base_type_color")).to_html());
+ cf->set_value(theme_section, "engine_type_color", ((Color)get("text_editor/engine_type_color")).to_html());
+ cf->set_value(theme_section, "function_color", ((Color)get("text_editor/function_color")).to_html());
+ cf->set_value(theme_section, "member_variable_color", ((Color)get("text_editor/member_variable_color")).to_html());
+ cf->set_value(theme_section, "comment_color", ((Color)get("text_editor/comment_color")).to_html());
+ cf->set_value(theme_section, "string_color", ((Color)get("text_editor/string_color")).to_html());
+ cf->set_value(theme_section, "number_color", ((Color)get("text_editor/number_color")).to_html());
+ cf->set_value(theme_section, "symbol_color", ((Color)get("text_editor/symbol_color")).to_html());
+ cf->set_value(theme_section, "selection_color", ((Color)get("text_editor/selection_color")).to_html());
+ cf->set_value(theme_section, "brace_mismatch_color", ((Color)get("text_editor/brace_mismatch_color")).to_html());
+ cf->set_value(theme_section, "current_line_color", ((Color)get("text_editor/current_line_color")).to_html());
+ cf->set_value(theme_section, "mark_color", ((Color)get("text_editor/mark_color")).to_html());
+ cf->set_value(theme_section, "breakpoint_color", ((Color)get("text_editor/breakpoint_color")).to_html());
+ cf->set_value(theme_section, "word_highlighted_color", ((Color)get("text_editor/word_highlighted_color")).to_html());
+ cf->set_value(theme_section, "search_result_color", ((Color)get("text_editor/search_result_color")).to_html());
+ cf->set_value(theme_section, "search_result_border_color", ((Color)get("text_editor/search_result_border_color")).to_html());
+ Error err = cf->save(p_file);
+
+ if (err == OK) {
+ return true;
+ }
+ return false;
+}
+
+
+void EditorSettings::add_shortcut(const String& p_name, Ref<ShortCut> &p_shortcut) {
+
+ shortcuts[p_name]=p_shortcut;
+}
+
+bool EditorSettings::is_shortcut(const String&p_name, const InputEvent &p_event) const{
+
+ const Map<String,Ref<ShortCut> >::Element *E=shortcuts.find(p_name);
+ if (!E) {
+ ERR_EXPLAIN("Unknown Shortcut: "+p_name);
+ ERR_FAIL_V(false);
+ }
+
+ return E->get()->is_shortcut(p_event);
+
+}
+
+Ref<ShortCut> EditorSettings::get_shortcut(const String&p_name) const{
+
+ const Map<String,Ref<ShortCut> >::Element *E=shortcuts.find(p_name);
+ if (!E)
+ return Ref<ShortCut>();
+
+ return E->get();
+}
+
+void EditorSettings::get_shortcut_list(List<String> *r_shortcuts) {
+
+ for (const Map<String,Ref<ShortCut> >::Element*E=shortcuts.front();E;E=E->next()) {
+
+ r_shortcuts->push_back(E->key());
+ }
+}
+
void EditorSettings::_bind_methods() {
@@ -665,7 +975,32 @@ EditorSettings::EditorSettings() {
//singleton=this;
last_order=0;
+
+ EditorTranslationList *etl=_editor_translations;
+
+ while(etl->data) {
+
+ Vector<uint8_t> data;
+ data.resize(etl->uncomp_size);
+ Compression::decompress(data.ptr(),etl->uncomp_size,etl->data,etl->comp_size,Compression::MODE_DEFLATE);
+
+ FileAccessMemory *fa = memnew (FileAccessMemory);
+ fa->open_custom(data.ptr(),data.size());
+
+ Ref<Translation> tr = TranslationLoaderPO::load_translation(fa,NULL,"translation_"+String(etl->lang));
+
+ if (tr.is_valid()) {
+ tr->set_locale(etl->lang);
+ translations.push_back(tr);
+ }
+
+ etl++;
+
+ }
+
_load_defaults();
+
+
}
@@ -674,4 +1009,44 @@ EditorSettings::~EditorSettings() {
// singleton=NULL;
}
+Ref<ShortCut> ED_GET_SHORTCUT(const String& p_path) {
+
+ Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
+ if (!sc.is_valid()) {
+ ERR_EXPLAIN("Used ED_GET_SHORTCUT with invalid shortcut: "+p_path);
+ ERR_FAIL_COND_V(!sc.is_valid(),sc);
+ }
+ return sc;
+}
+
+Ref<ShortCut> ED_SHORTCUT(const String& p_path,const String& p_name,uint32_t p_keycode) {
+
+ InputEvent ie;
+ if (p_keycode) {
+ ie.type=InputEvent::KEY;
+ ie.key.unicode=p_keycode&KEY_CODE_MASK;
+ ie.key.scancode=p_keycode&KEY_CODE_MASK;
+ ie.key.mod.shift=bool(p_keycode&KEY_MASK_SHIFT);
+ ie.key.mod.alt=bool(p_keycode&KEY_MASK_ALT);
+ ie.key.mod.control=bool(p_keycode&KEY_MASK_CTRL);
+ ie.key.mod.meta=bool(p_keycode&KEY_MASK_META);
+
+ }
+
+ Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(p_path);
+ if (sc.is_valid()) {
+
+ sc->set_name(p_name); //keep name (the ones that come from disk have no name)
+ sc->set_meta("original",ie); //to compare against changes
+ return sc;
+ }
+
+ sc.instance();
+ sc->set_name(p_name);
+ sc->set_shortcut(ie);
+ sc->set_meta("original",ie); //to compare against changes
+ EditorSettings::get_singleton()->add_shortcut(p_path,sc);
+
+ return sc;
+}
diff --git a/tools/editor/editor_settings.h b/tools/editor/editor_settings.h
index ae5bbcca89..60333b5811 100644
--- a/tools/editor/editor_settings.h
+++ b/tools/editor/editor_settings.h
@@ -34,6 +34,8 @@
#include "resource.h"
#include "os/thread_safe.h"
#include "core/io/config_file.h"
+#include "translation.h"
+#include "scene/gui/input_action.h"
class EditorPlugin;
@@ -84,12 +86,19 @@ private:
void _load_defaults(Ref<ConfigFile> p_extra_config = NULL);
+ void _load_default_text_editor_theme();
+
+ bool _save_text_editor_theme(String p_file);
String project_config_path;
Vector<String> favorite_dirs;
Vector<String> recent_dirs;
+ Vector<Ref<Translation> > translations;
+
+ Map<String,Ref<ShortCut> > shortcuts;
+
protected:
static void _bind_methods();
@@ -108,6 +117,7 @@ public:
String get_project_settings_path() const;
+ void setup_language();
void setup_network();
void raise_order(const String& p_name);
@@ -130,6 +140,17 @@ public:
void load_favorites();
+ void list_text_editor_themes();
+ void load_text_editor_theme();
+ bool import_text_editor_theme(String p_file);
+ bool save_text_editor_theme();
+ bool save_text_editor_theme_as(String p_file);
+
+ void add_shortcut(const String& p_name,Ref<ShortCut>& p_shortcut);
+ bool is_shortcut(const String&p_name,const InputEvent& p_event) const;
+ Ref<ShortCut> get_shortcut(const String&p_name) const;
+ void get_shortcut_list(List<String> *r_shortcuts);
+
EditorSettings();
~EditorSettings();
@@ -140,4 +161,8 @@ public:
#define EDITOR_DEF(m_var,m_val) _EDITOR_DEF(m_var,Variant(m_val))
Variant _EDITOR_DEF( const String& p_var, const Variant& p_default);
+#define ED_IS_SHORTCUT(p_name,p_ev) (EditorSettings::get_singleton()->is_shortcut(p_name,p_ev))
+Ref<ShortCut> ED_SHORTCUT(const String& p_path,const String& p_name,uint32_t p_keycode=0);
+Ref<ShortCut> ED_GET_SHORTCUT(const String& p_path);
+
#endif // EDITOR_SETTINGS_H
diff --git a/tools/editor/editor_sub_scene.cpp b/tools/editor/editor_sub_scene.cpp
index 941ff6be1c..d32dbcd2e6 100644
--- a/tools/editor/editor_sub_scene.cpp
+++ b/tools/editor/editor_sub_scene.cpp
@@ -198,7 +198,7 @@ EditorSubScene::EditorSubScene() {
scene=NULL;
- set_title(TTR("Select Sub-Scene.."));
+ set_title(TTR("Select Node(s) to Import"));
set_hide_on_ok(false);
VBoxContainer *vb = memnew( VBoxContainer );
diff --git a/tools/editor/groups_editor.cpp b/tools/editor/groups_editor.cpp
index 906ee27d1b..898e1e115e 100644
--- a/tools/editor/groups_editor.cpp
+++ b/tools/editor/groups_editor.cpp
@@ -30,6 +30,7 @@
#include "scene/gui/box_container.h"
#include "scene/gui/label.h"
+#include "editor_node.h"
void GroupsEditor::_add_group(const String& p_group) {
@@ -47,8 +48,10 @@ void GroupsEditor::_add_group(const String& p_group) {
undo_redo->add_do_method(node,"add_to_group",name,true);
undo_redo->add_do_method(this,"update_tree");
- undo_redo->add_undo_method(node,"remove_from_group",name,get_text());
+ undo_redo->add_undo_method(node,"remove_from_group",name);
undo_redo->add_undo_method(this,"update_tree");
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
+ undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
undo_redo->commit_action();
@@ -72,6 +75,8 @@ void GroupsEditor::_remove_group(Object *p_item, int p_column, int p_id) {
undo_redo->add_do_method(this,"update_tree");
undo_redo->add_undo_method(node,"add_to_group",name,true);
undo_redo->add_undo_method(this,"update_tree");
+ undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
+ undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(),"update_tree"); //to force redraw of scene tree
undo_redo->commit_action();
}
@@ -125,14 +130,10 @@ GroupsEditor::GroupsEditor() {
node=NULL;
- set_title(TTR("Group Editor"));
-
- VBoxContainer *vbc = memnew( VBoxContainer );
- add_child(vbc);
- set_child_rect(vbc);
+ VBoxContainer *vbc = this;
HBoxContainer *hbc = memnew( HBoxContainer );
- vbc->add_margin_child(TTR("Group"), hbc);
+ vbc->add_child(hbc);
group_name = memnew( LineEdit );
group_name->set_h_size_flags(SIZE_EXPAND_FILL);
@@ -147,10 +148,9 @@ GroupsEditor::GroupsEditor() {
tree = memnew( Tree );
tree->set_hide_root(true);
tree->set_v_size_flags(SIZE_EXPAND_FILL);
- vbc->add_margin_child(TTR("Node Group(s)"), tree, true);
+ vbc->add_child(tree);
tree->connect("button_pressed",this,"_remove_group");
-
- get_ok()->set_text(TTR("Close"));
+ add_constant_override("separation",3*EDSCALE);
}
GroupsEditor::~GroupsEditor()
diff --git a/tools/editor/groups_editor.h b/tools/editor/groups_editor.h
index 6a897d0cbb..6edb577140 100644
--- a/tools/editor/groups_editor.h
+++ b/tools/editor/groups_editor.h
@@ -39,9 +39,9 @@
@author Juan Linietsky <reduzio@gmail.com>
*/
-class GroupsEditor : public AcceptDialog {
+class GroupsEditor : public VBoxContainer {
- OBJ_TYPE(GroupsEditor,AcceptDialog);
+ OBJ_TYPE(GroupsEditor,VBoxContainer);
Node *node;
diff --git a/tools/editor/icons/2x/icon_accept_dialog.png b/tools/editor/icons/2x/icon_accept_dialog.png
new file mode 100644
index 0000000000..a1a613d1ad
--- /dev/null
+++ b/tools/editor/icons/2x/icon_accept_dialog.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_add.png b/tools/editor/icons/2x/icon_add.png
new file mode 100644
index 0000000000..a3c795e8f0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_add.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_add_track.png b/tools/editor/icons/2x/icon_add_track.png
new file mode 100644
index 0000000000..a3c795e8f0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_add_track.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_anchor.png b/tools/editor/icons/2x/icon_anchor.png
new file mode 100644
index 0000000000..e1d8711ed7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_anchor.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animated_sprite.png b/tools/editor/icons/2x/icon_animated_sprite.png
new file mode 100644
index 0000000000..7d3a9063ac
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animated_sprite.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animated_sprite_3d.png b/tools/editor/icons/2x/icon_animated_sprite_3d.png
new file mode 100644
index 0000000000..1f7b883641
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animated_sprite_3d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animation.png b/tools/editor/icons/2x/icon_animation.png
new file mode 100644
index 0000000000..16b58515f5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animation.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animation_player.png b/tools/editor/icons/2x/icon_animation_player.png
new file mode 100644
index 0000000000..ad313a1c91
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animation_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animation_tree.png b/tools/editor/icons/2x/icon_animation_tree.png
new file mode 100644
index 0000000000..61cb57259b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animation_tree.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_animation_tree_player.png b/tools/editor/icons/2x/icon_animation_tree_player.png
new file mode 100644
index 0000000000..61cb57259b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_animation_tree_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_area.png b/tools/editor/icons/2x/icon_area.png
new file mode 100644
index 0000000000..0e07b37333
--- /dev/null
+++ b/tools/editor/icons/2x/icon_area.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_area_2d.png b/tools/editor/icons/2x/icon_area_2d.png
new file mode 100644
index 0000000000..f3fe9b8aaa
--- /dev/null
+++ b/tools/editor/icons/2x/icon_area_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_arrow_left.png b/tools/editor/icons/2x/icon_arrow_left.png
new file mode 100644
index 0000000000..72a72d752a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_arrow_left.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_arrow_right.png b/tools/editor/icons/2x/icon_arrow_right.png
new file mode 100644
index 0000000000..5efb9123e0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_arrow_right.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_arrow_up.png b/tools/editor/icons/2x/icon_arrow_up.png
new file mode 100644
index 0000000000..0558431a75
--- /dev/null
+++ b/tools/editor/icons/2x/icon_arrow_up.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_atlas_texture.png b/tools/editor/icons/2x/icon_atlas_texture.png
new file mode 100644
index 0000000000..a9da8dfe8d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_atlas_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_audio_stream_gibberish.png b/tools/editor/icons/2x/icon_audio_stream_gibberish.png
new file mode 100644
index 0000000000..1c61e91ced
--- /dev/null
+++ b/tools/editor/icons/2x/icon_audio_stream_gibberish.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_auto_play.png b/tools/editor/icons/2x/icon_auto_play.png
new file mode 100644
index 0000000000..a404a1aa84
--- /dev/null
+++ b/tools/editor/icons/2x/icon_auto_play.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_back.png b/tools/editor/icons/2x/icon_back.png
new file mode 100644
index 0000000000..49fae9ab2e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_back.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_back_buffer_copy.png b/tools/editor/icons/2x/icon_back_buffer_copy.png
new file mode 100644
index 0000000000..53f0f6c0b3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_back_buffer_copy.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bake.png b/tools/editor/icons/2x/icon_bake.png
new file mode 100644
index 0000000000..c05efa048f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bake.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_baked_light.png b/tools/editor/icons/2x/icon_baked_light.png
new file mode 100644
index 0000000000..c05efa048f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_baked_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_baked_light_instance.png b/tools/editor/icons/2x/icon_baked_light_instance.png
new file mode 100644
index 0000000000..c84169c936
--- /dev/null
+++ b/tools/editor/icons/2x/icon_baked_light_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bitmap_font.png b/tools/editor/icons/2x/icon_bitmap_font.png
new file mode 100644
index 0000000000..84a92e4138
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bitmap_font.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_blend.png b/tools/editor/icons/2x/icon_blend.png
new file mode 100644
index 0000000000..e5d8a3ae42
--- /dev/null
+++ b/tools/editor/icons/2x/icon_blend.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bone.png b/tools/editor/icons/2x/icon_bone.png
new file mode 100644
index 0000000000..4b5bacab66
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bone.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bone_attachment.png b/tools/editor/icons/2x/icon_bone_attachment.png
new file mode 100644
index 0000000000..a137d3b157
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bone_attachment.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bone_track.png b/tools/editor/icons/2x/icon_bone_track.png
new file mode 100644
index 0000000000..563eca25bb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bone_track.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_bool.png b/tools/editor/icons/2x/icon_bool.png
new file mode 100644
index 0000000000..24b134ac3e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_bool.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_box_shape.png b/tools/editor/icons/2x/icon_box_shape.png
new file mode 100644
index 0000000000..f96a7e7c3a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_box_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_button.png b/tools/editor/icons/2x/icon_button.png
new file mode 100644
index 0000000000..0ff54c0c77
--- /dev/null
+++ b/tools/editor/icons/2x/icon_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_button_group.png b/tools/editor/icons/2x/icon_button_group.png
new file mode 100644
index 0000000000..050e3972d2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_button_group.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_camera.png b/tools/editor/icons/2x/icon_camera.png
new file mode 100644
index 0000000000..05ce5f8ced
--- /dev/null
+++ b/tools/editor/icons/2x/icon_camera.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_camera_2d.png b/tools/editor/icons/2x/icon_camera_2d.png
new file mode 100644
index 0000000000..ee4a09f96a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_camera_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_item.png b/tools/editor/icons/2x/icon_canvas_item.png
new file mode 100644
index 0000000000..ded4292fd2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_item.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_item_material.png b/tools/editor/icons/2x/icon_canvas_item_material.png
new file mode 100644
index 0000000000..855323b82d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_item_material.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_item_shader.png b/tools/editor/icons/2x/icon_canvas_item_shader.png
new file mode 100644
index 0000000000..14e3ef7a40
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_item_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_item_shader_graph.png b/tools/editor/icons/2x/icon_canvas_item_shader_graph.png
new file mode 100644
index 0000000000..712b2013c4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_item_shader_graph.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_layer.png b/tools/editor/icons/2x/icon_canvas_layer.png
new file mode 100644
index 0000000000..913d14b003
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_layer.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_canvas_modulate.png b/tools/editor/icons/2x/icon_canvas_modulate.png
new file mode 100644
index 0000000000..527fdda3b5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_canvas_modulate.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_capsule_shape.png b/tools/editor/icons/2x/icon_capsule_shape.png
new file mode 100644
index 0000000000..d868c6fb26
--- /dev/null
+++ b/tools/editor/icons/2x/icon_capsule_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_center_container.png b/tools/editor/icons/2x/icon_center_container.png
new file mode 100644
index 0000000000..03aa9d6fa6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_center_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_check_box.png b/tools/editor/icons/2x/icon_check_box.png
new file mode 100644
index 0000000000..839c0c6d1c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_check_box.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_check_button.png b/tools/editor/icons/2x/icon_check_button.png
new file mode 100644
index 0000000000..fe6747ce30
--- /dev/null
+++ b/tools/editor/icons/2x/icon_check_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_class_list.png b/tools/editor/icons/2x/icon_class_list.png
new file mode 100644
index 0000000000..2940db7007
--- /dev/null
+++ b/tools/editor/icons/2x/icon_class_list.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_close.png b/tools/editor/icons/2x/icon_close.png
new file mode 100644
index 0000000000..de16e3ab04
--- /dev/null
+++ b/tools/editor/icons/2x/icon_close.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collapse.png b/tools/editor/icons/2x/icon_collapse.png
new file mode 100644
index 0000000000..7c533dbfef
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collapse.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collision_2d.png b/tools/editor/icons/2x/icon_collision_2d.png
new file mode 100644
index 0000000000..05d6f10d58
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collision_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collision_polygon.png b/tools/editor/icons/2x/icon_collision_polygon.png
new file mode 100644
index 0000000000..9463edd59e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collision_polygon.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collision_polygon_2d.png b/tools/editor/icons/2x/icon_collision_polygon_2d.png
new file mode 100644
index 0000000000..05d6f10d58
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collision_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collision_shape.png b/tools/editor/icons/2x/icon_collision_shape.png
new file mode 100644
index 0000000000..9e0d55bce4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collision_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_collision_shape_2d.png b/tools/editor/icons/2x/icon_collision_shape_2d.png
new file mode 100644
index 0000000000..476bf51744
--- /dev/null
+++ b/tools/editor/icons/2x/icon_collision_shape_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color.png b/tools/editor/icons/2x/icon_color.png
new file mode 100644
index 0000000000..24cc5f793c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color_pick.png b/tools/editor/icons/2x/icon_color_pick.png
new file mode 100644
index 0000000000..fc6fe437bc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color_pick.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color_picker.png b/tools/editor/icons/2x/icon_color_picker.png
new file mode 100644
index 0000000000..902b7c1fca
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color_picker.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color_picker_button.png b/tools/editor/icons/2x/icon_color_picker_button.png
new file mode 100644
index 0000000000..1f5af70d04
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color_picker_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_color_ramp.png b/tools/editor/icons/2x/icon_color_ramp.png
new file mode 100644
index 0000000000..b59b1c7be4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_color_ramp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_concave_polygon_shape.png b/tools/editor/icons/2x/icon_concave_polygon_shape.png
new file mode 100644
index 0000000000..747a75c4d9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_concave_polygon_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_confirmation_dialog.png b/tools/editor/icons/2x/icon_confirmation_dialog.png
new file mode 100644
index 0000000000..86650a633a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_confirmation_dialog.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_connect.png b/tools/editor/icons/2x/icon_connect.png
new file mode 100644
index 0000000000..fb6603473f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_connect.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_connection_and_groups.png b/tools/editor/icons/2x/icon_connection_and_groups.png
new file mode 100644
index 0000000000..bdbfee2987
--- /dev/null
+++ b/tools/editor/icons/2x/icon_connection_and_groups.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_container.png b/tools/editor/icons/2x/icon_container.png
new file mode 100644
index 0000000000..b5a645ee85
--- /dev/null
+++ b/tools/editor/icons/2x/icon_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control.png b/tools/editor/icons/2x/icon_control.png
new file mode 100644
index 0000000000..ecef620e09
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_bottom_center.png b/tools/editor/icons/2x/icon_control_align_bottom_center.png
new file mode 100644
index 0000000000..d176b350f7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_bottom_center.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_bottom_left.png b/tools/editor/icons/2x/icon_control_align_bottom_left.png
new file mode 100644
index 0000000000..03520ca327
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_bottom_left.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_bottom_right.png b/tools/editor/icons/2x/icon_control_align_bottom_right.png
new file mode 100644
index 0000000000..56ace004a7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_bottom_right.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_bottom_wide.png b/tools/editor/icons/2x/icon_control_align_bottom_wide.png
new file mode 100644
index 0000000000..5fceb11ecd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_bottom_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_center.png b/tools/editor/icons/2x/icon_control_align_center.png
new file mode 100644
index 0000000000..bb09020f57
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_center.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_center_left.png b/tools/editor/icons/2x/icon_control_align_center_left.png
new file mode 100644
index 0000000000..027d083354
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_center_left.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_center_right.png b/tools/editor/icons/2x/icon_control_align_center_right.png
new file mode 100644
index 0000000000..e75c482d84
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_center_right.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_left_center.png b/tools/editor/icons/2x/icon_control_align_left_center.png
new file mode 100644
index 0000000000..4357453ed3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_left_center.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_left_wide.png b/tools/editor/icons/2x/icon_control_align_left_wide.png
new file mode 100644
index 0000000000..2c52ba94c5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_left_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_right_center.png b/tools/editor/icons/2x/icon_control_align_right_center.png
new file mode 100644
index 0000000000..560f2c2895
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_right_center.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_right_wide.png b/tools/editor/icons/2x/icon_control_align_right_wide.png
new file mode 100644
index 0000000000..126bdf7d71
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_right_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_top_center.png b/tools/editor/icons/2x/icon_control_align_top_center.png
new file mode 100644
index 0000000000..5f163c5032
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_top_center.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_top_left.png b/tools/editor/icons/2x/icon_control_align_top_left.png
new file mode 100644
index 0000000000..e20e142044
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_top_left.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_top_right.png b/tools/editor/icons/2x/icon_control_align_top_right.png
new file mode 100644
index 0000000000..e82cd32ebf
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_top_right.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_top_wide.png b/tools/editor/icons/2x/icon_control_align_top_wide.png
new file mode 100644
index 0000000000..841634d1c6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_top_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_align_wide.png b/tools/editor/icons/2x/icon_control_align_wide.png
new file mode 100644
index 0000000000..5b8cb9e3a4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_align_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_hcenter_wide.png b/tools/editor/icons/2x/icon_control_hcenter_wide.png
new file mode 100644
index 0000000000..76b5cc99f4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_hcenter_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_control_vcenter_wide.png b/tools/editor/icons/2x/icon_control_vcenter_wide.png
new file mode 100644
index 0000000000..71a891b52a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_control_vcenter_wide.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_convex_polygon_shape.png b/tools/editor/icons/2x/icon_convex_polygon_shape.png
new file mode 100644
index 0000000000..2e985223a2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_convex_polygon_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_create_new_scene_from.png b/tools/editor/icons/2x/icon_create_new_scene_from.png
new file mode 100644
index 0000000000..2e8f01e201
--- /dev/null
+++ b/tools/editor/icons/2x/icon_create_new_scene_from.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_close.png b/tools/editor/icons/2x/icon_curve_close.png
new file mode 100644
index 0000000000..08314b8a04
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_close.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_constant.png b/tools/editor/icons/2x/icon_curve_constant.png
new file mode 100644
index 0000000000..c8dbd41966
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_constant.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_create.png b/tools/editor/icons/2x/icon_curve_create.png
new file mode 100644
index 0000000000..07022eb902
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_create.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_curve.png b/tools/editor/icons/2x/icon_curve_curve.png
new file mode 100644
index 0000000000..e5a903ddd7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_curve.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_delete.png b/tools/editor/icons/2x/icon_curve_delete.png
new file mode 100644
index 0000000000..b02cc170db
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_delete.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_edit.png b/tools/editor/icons/2x/icon_curve_edit.png
new file mode 100644
index 0000000000..d06a0309ae
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_in.png b/tools/editor/icons/2x/icon_curve_in.png
new file mode 100644
index 0000000000..fcc7985496
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_in.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_in_out.png b/tools/editor/icons/2x/icon_curve_in_out.png
new file mode 100644
index 0000000000..88bbf26ab7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_in_out.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_linear.png b/tools/editor/icons/2x/icon_curve_linear.png
new file mode 100644
index 0000000000..16b949fea4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_linear.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_out.png b/tools/editor/icons/2x/icon_curve_out.png
new file mode 100644
index 0000000000..699ceda1d5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_out.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_curve_out_in.png b/tools/editor/icons/2x/icon_curve_out_in.png
new file mode 100644
index 0000000000..e60e978bf9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_curve_out_in.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_damped_spring_joint_2d.png b/tools/editor/icons/2x/icon_damped_spring_joint_2d.png
new file mode 100644
index 0000000000..91ef51401f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_damped_spring_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_debug_continue.png b/tools/editor/icons/2x/icon_debug_continue.png
new file mode 100644
index 0000000000..4e1039f2c7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_debug_continue.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_debug_next.png b/tools/editor/icons/2x/icon_debug_next.png
new file mode 100644
index 0000000000..f54b81202c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_debug_next.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_debug_step.png b/tools/editor/icons/2x/icon_debug_step.png
new file mode 100644
index 0000000000..ef6fdfe4dc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_debug_step.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_changed.png b/tools/editor/icons/2x/icon_dependency_changed.png
new file mode 100644
index 0000000000..fb4f81fc02
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_changed.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_changed_hl.png b/tools/editor/icons/2x/icon_dependency_changed_hl.png
new file mode 100644
index 0000000000..c5544097d1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_changed_hl.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_local_changed.png b/tools/editor/icons/2x/icon_dependency_local_changed.png
new file mode 100644
index 0000000000..d2e2557312
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_local_changed.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_local_changed_hl.png b/tools/editor/icons/2x/icon_dependency_local_changed_hl.png
new file mode 100644
index 0000000000..e885119d52
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_local_changed_hl.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_ok.png b/tools/editor/icons/2x/icon_dependency_ok.png
new file mode 100644
index 0000000000..5ce4a8ab17
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_ok.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dependency_ok_hl.png b/tools/editor/icons/2x/icon_dependency_ok_hl.png
new file mode 100644
index 0000000000..dbfb28885e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dependency_ok_hl.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_directional_light.png b/tools/editor/icons/2x/icon_directional_light.png
new file mode 100644
index 0000000000..36c8c9e092
--- /dev/null
+++ b/tools/editor/icons/2x/icon_directional_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_duplicate.png b/tools/editor/icons/2x/icon_duplicate.png
new file mode 100644
index 0000000000..cef940f9f2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_duplicate.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dynamic_font.png b/tools/editor/icons/2x/icon_dynamic_font.png
new file mode 100644
index 0000000000..092c22eae1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dynamic_font.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_dynamic_font_data.png b/tools/editor/icons/2x/icon_dynamic_font_data.png
new file mode 100644
index 0000000000..27be1e0197
--- /dev/null
+++ b/tools/editor/icons/2x/icon_dynamic_font_data.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_edit.png b/tools/editor/icons/2x/icon_edit.png
new file mode 100644
index 0000000000..c764a80064
--- /dev/null
+++ b/tools/editor/icons/2x/icon_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_edit_key.png b/tools/editor/icons/2x/icon_edit_key.png
new file mode 100644
index 0000000000..224e6baa37
--- /dev/null
+++ b/tools/editor/icons/2x/icon_edit_key.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_edit_pivot.png b/tools/editor/icons/2x/icon_edit_pivot.png
new file mode 100644
index 0000000000..950c777b16
--- /dev/null
+++ b/tools/editor/icons/2x/icon_edit_pivot.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_edit_resource.png b/tools/editor/icons/2x/icon_edit_resource.png
new file mode 100644
index 0000000000..4ec3b1fdf1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_edit_resource.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_editor_3d_handle.png b/tools/editor/icons/2x/icon_editor_3d_handle.png
new file mode 100644
index 0000000000..7835fd5fe3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_editor_3d_handle.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_editor_handle.png b/tools/editor/icons/2x/icon_editor_handle.png
new file mode 100644
index 0000000000..e3389cdabb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_editor_handle.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_editor_pivot.png b/tools/editor/icons/2x/icon_editor_pivot.png
new file mode 100644
index 0000000000..7791369138
--- /dev/null
+++ b/tools/editor/icons/2x/icon_editor_pivot.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_editor_plugin.png b/tools/editor/icons/2x/icon_editor_plugin.png
new file mode 100644
index 0000000000..c0e10886a2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_editor_plugin.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_enum.png b/tools/editor/icons/2x/icon_enum.png
new file mode 100644
index 0000000000..8151eb03f1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_enum.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_error.png b/tools/editor/icons/2x/icon_error.png
new file mode 100644
index 0000000000..e8153dfada
--- /dev/null
+++ b/tools/editor/icons/2x/icon_error.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_error_sign.png b/tools/editor/icons/2x/icon_error_sign.png
new file mode 100644
index 0000000000..ab29dde170
--- /dev/null
+++ b/tools/editor/icons/2x/icon_error_sign.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_event_player.png b/tools/editor/icons/2x/icon_event_player.png
new file mode 100644
index 0000000000..ee87514f2c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_event_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_favorites.png b/tools/editor/icons/2x/icon_favorites.png
new file mode 100644
index 0000000000..49c3c57671
--- /dev/null
+++ b/tools/editor/icons/2x/icon_favorites.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file.png b/tools/editor/icons/2x/icon_file.png
new file mode 100644
index 0000000000..a495efee09
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_big.png b/tools/editor/icons/2x/icon_file_big.png
new file mode 100644
index 0000000000..c5b347f71f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_big.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_dialog.png b/tools/editor/icons/2x/icon_file_dialog.png
new file mode 100644
index 0000000000..1bc9d2dc1d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_dialog.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_list.png b/tools/editor/icons/2x/icon_file_list.png
new file mode 100644
index 0000000000..8151eb03f1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_list.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_server.png b/tools/editor/icons/2x/icon_file_server.png
new file mode 100644
index 0000000000..2912b8466b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_server.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_server_active.png b/tools/editor/icons/2x/icon_file_server_active.png
new file mode 100644
index 0000000000..8652d65039
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_server_active.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_file_thumbnail.png b/tools/editor/icons/2x/icon_file_thumbnail.png
new file mode 100644
index 0000000000..025bde5d65
--- /dev/null
+++ b/tools/editor/icons/2x/icon_file_thumbnail.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_filesystem.png b/tools/editor/icons/2x/icon_filesystem.png
new file mode 100644
index 0000000000..2940db7007
--- /dev/null
+++ b/tools/editor/icons/2x/icon_filesystem.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_fixed_material.png b/tools/editor/icons/2x/icon_fixed_material.png
new file mode 100644
index 0000000000..ac5336b893
--- /dev/null
+++ b/tools/editor/icons/2x/icon_fixed_material.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_folder.png b/tools/editor/icons/2x/icon_folder.png
new file mode 100644
index 0000000000..daa81bdf4a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_folder.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_folder_big.png b/tools/editor/icons/2x/icon_folder_big.png
new file mode 100644
index 0000000000..f960bb7e57
--- /dev/null
+++ b/tools/editor/icons/2x/icon_folder_big.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_font.png b/tools/editor/icons/2x/icon_font.png
new file mode 100644
index 0000000000..815904ddd4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_font.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_forward.png b/tools/editor/icons/2x/icon_forward.png
new file mode 100644
index 0000000000..ac87f0ec75
--- /dev/null
+++ b/tools/editor/icons/2x/icon_forward.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_g_d_script.png b/tools/editor/icons/2x/icon_g_d_script.png
new file mode 100644
index 0000000000..bd6b161c91
--- /dev/null
+++ b/tools/editor/icons/2x/icon_g_d_script.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_gizmo_directional_light.png b/tools/editor/icons/2x/icon_gizmo_directional_light.png
new file mode 100644
index 0000000000..8bf19df1e8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_gizmo_directional_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_gizmo_light.png b/tools/editor/icons/2x/icon_gizmo_light.png
new file mode 100644
index 0000000000..12bec8ec1e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_gizmo_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_gizmo_spatial_sample_player.png b/tools/editor/icons/2x/icon_gizmo_spatial_sample_player.png
new file mode 100644
index 0000000000..3e6bf48bc8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_gizmo_spatial_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_gizmo_spatial_stream_player.png b/tools/editor/icons/2x/icon_gizmo_spatial_stream_player.png
new file mode 100644
index 0000000000..621922b035
--- /dev/null
+++ b/tools/editor/icons/2x/icon_gizmo_spatial_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_godot.png b/tools/editor/icons/2x/icon_godot.png
new file mode 100644
index 0000000000..cac2cff73f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_godot.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_color_ramp.png b/tools/editor/icons/2x/icon_graph_color_ramp.png
new file mode 100644
index 0000000000..b59b1c7be4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_color_ramp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_comment.png b/tools/editor/icons/2x/icon_graph_comment.png
new file mode 100644
index 0000000000..d178bac5a5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_comment.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_cube_uniform.png b/tools/editor/icons/2x/icon_graph_cube_uniform.png
new file mode 100644
index 0000000000..8750d86bd3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_cube_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_curve_map.png b/tools/editor/icons/2x/icon_graph_curve_map.png
new file mode 100644
index 0000000000..33a4757b2f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_curve_map.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_default_texture.png b/tools/editor/icons/2x/icon_graph_default_texture.png
new file mode 100644
index 0000000000..886d515deb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_default_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_edit.png b/tools/editor/icons/2x/icon_graph_edit.png
new file mode 100644
index 0000000000..3002c9e44e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_input.png b/tools/editor/icons/2x/icon_graph_input.png
new file mode 100644
index 0000000000..a0c5a12912
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_input.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_node.png b/tools/editor/icons/2x/icon_graph_node.png
new file mode 100644
index 0000000000..203bb22c84
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_node.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_rgb.png b/tools/editor/icons/2x/icon_graph_rgb.png
new file mode 100644
index 0000000000..b798322a3e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_rgb.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_rgb_op.png b/tools/editor/icons/2x/icon_graph_rgb_op.png
new file mode 100644
index 0000000000..cad34b2039
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_rgb_op.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_rgb_uniform.png b/tools/editor/icons/2x/icon_graph_rgb_uniform.png
new file mode 100644
index 0000000000..339385c972
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_rgb_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_scalar.png b/tools/editor/icons/2x/icon_graph_scalar.png
new file mode 100644
index 0000000000..4787c199de
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_scalar.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_scalar_interp.png b/tools/editor/icons/2x/icon_graph_scalar_interp.png
new file mode 100644
index 0000000000..f4859ac234
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_scalar_interp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_scalar_op.png b/tools/editor/icons/2x/icon_graph_scalar_op.png
new file mode 100644
index 0000000000..0228580fd5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_scalar_op.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_scalar_uniform.png b/tools/editor/icons/2x/icon_graph_scalar_uniform.png
new file mode 100644
index 0000000000..4a833f28e2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_scalar_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_scalars_to_vec.png b/tools/editor/icons/2x/icon_graph_scalars_to_vec.png
new file mode 100644
index 0000000000..626da0fb26
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_scalars_to_vec.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_texscreen.png b/tools/editor/icons/2x/icon_graph_texscreen.png
new file mode 100644
index 0000000000..e7548f94b8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_texscreen.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_texture_uniform.png b/tools/editor/icons/2x/icon_graph_texture_uniform.png
new file mode 100644
index 0000000000..0c65625a18
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_texture_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_time.png b/tools/editor/icons/2x/icon_graph_time.png
new file mode 100644
index 0000000000..5dac94179c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_time.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_dp.png b/tools/editor/icons/2x/icon_graph_vec_dp.png
new file mode 100644
index 0000000000..7e1b8e8a1d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_dp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_interp.png b/tools/editor/icons/2x/icon_graph_vec_interp.png
new file mode 100644
index 0000000000..0751808a5a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_interp.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_length.png b/tools/editor/icons/2x/icon_graph_vec_length.png
new file mode 100644
index 0000000000..df180542c4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_length.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_op.png b/tools/editor/icons/2x/icon_graph_vec_op.png
new file mode 100644
index 0000000000..43f0c27406
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_op.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_scalar_op.png b/tools/editor/icons/2x/icon_graph_vec_scalar_op.png
new file mode 100644
index 0000000000..d443bfb615
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_scalar_op.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vec_to_scalars.png b/tools/editor/icons/2x/icon_graph_vec_to_scalars.png
new file mode 100644
index 0000000000..38bb0ecddc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vec_to_scalars.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vecs_to_xform.png b/tools/editor/icons/2x/icon_graph_vecs_to_xform.png
new file mode 100644
index 0000000000..8fc1723396
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vecs_to_xform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vector.png b/tools/editor/icons/2x/icon_graph_vector.png
new file mode 100644
index 0000000000..3b5ae0c643
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vector.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_vector_uniform.png b/tools/editor/icons/2x/icon_graph_vector_uniform.png
new file mode 100644
index 0000000000..0a8b272650
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_vector_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform.png b/tools/editor/icons/2x/icon_graph_xform.png
new file mode 100644
index 0000000000..241239139f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_mult.png b/tools/editor/icons/2x/icon_graph_xform_mult.png
new file mode 100644
index 0000000000..ef4c6b78e6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_mult.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_scalar_func.png b/tools/editor/icons/2x/icon_graph_xform_scalar_func.png
new file mode 100644
index 0000000000..91b719b1cc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_scalar_func.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_to_vecs.png b/tools/editor/icons/2x/icon_graph_xform_to_vecs.png
new file mode 100644
index 0000000000..0eebd26f67
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_to_vecs.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_uniform.png b/tools/editor/icons/2x/icon_graph_xform_uniform.png
new file mode 100644
index 0000000000..f2d8205509
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_uniform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_vec_func.png b/tools/editor/icons/2x/icon_graph_xform_vec_func.png
new file mode 100644
index 0000000000..4cc6084071
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_vec_func.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_vec_imult.png b/tools/editor/icons/2x/icon_graph_xform_vec_imult.png
new file mode 100644
index 0000000000..f9e37c109a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_vec_imult.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_graph_xform_vec_mult.png b/tools/editor/icons/2x/icon_graph_xform_vec_mult.png
new file mode 100644
index 0000000000..b8fd10cdb3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_graph_xform_vec_mult.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_grid.png b/tools/editor/icons/2x/icon_grid.png
new file mode 100644
index 0000000000..5699fd220f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_grid.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_grid_container.png b/tools/editor/icons/2x/icon_grid_container.png
new file mode 100644
index 0000000000..594a1cf834
--- /dev/null
+++ b/tools/editor/icons/2x/icon_grid_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_grid_map.png b/tools/editor/icons/2x/icon_grid_map.png
new file mode 100644
index 0000000000..084e1f7e27
--- /dev/null
+++ b/tools/editor/icons/2x/icon_grid_map.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_groove_joint_2d.png b/tools/editor/icons/2x/icon_groove_joint_2d.png
new file mode 100644
index 0000000000..76a394a021
--- /dev/null
+++ b/tools/editor/icons/2x/icon_groove_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_group.png b/tools/editor/icons/2x/icon_group.png
new file mode 100644
index 0000000000..d1d866e2ca
--- /dev/null
+++ b/tools/editor/icons/2x/icon_group.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_groups.png b/tools/editor/icons/2x/icon_groups.png
new file mode 100644
index 0000000000..b2cf6e9c90
--- /dev/null
+++ b/tools/editor/icons/2x/icon_groups.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_box_container.png b/tools/editor/icons/2x/icon_h_box_container.png
new file mode 100644
index 0000000000..318a0155d3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_box_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_button_array.png b/tools/editor/icons/2x/icon_h_button_array.png
new file mode 100644
index 0000000000..0c24a1985c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_button_array.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_scroll_bar.png b/tools/editor/icons/2x/icon_h_scroll_bar.png
new file mode 100644
index 0000000000..f56a1f570e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_separator.png b/tools/editor/icons/2x/icon_h_separator.png
new file mode 100644
index 0000000000..c9392192ec
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_separator.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_slider.png b/tools/editor/icons/2x/icon_h_slider.png
new file mode 100644
index 0000000000..c0e86b9651
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_slider.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_split_container.png b/tools/editor/icons/2x/icon_h_split_container.png
new file mode 100644
index 0000000000..bee094cfc9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_split_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_h_t_t_p_request.png b/tools/editor/icons/2x/icon_h_t_t_p_request.png
new file mode 100644
index 0000000000..52359a29a4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_h_t_t_p_request.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_help.png b/tools/editor/icons/2x/icon_help.png
new file mode 100644
index 0000000000..8489118d07
--- /dev/null
+++ b/tools/editor/icons/2x/icon_help.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_hidden.png b/tools/editor/icons/2x/icon_hidden.png
new file mode 100644
index 0000000000..0a1b85c70a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_hidden.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_history.png b/tools/editor/icons/2x/icon_history.png
new file mode 100644
index 0000000000..cd6e20b8a9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_history.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_hsize.png b/tools/editor/icons/2x/icon_hsize.png
new file mode 100644
index 0000000000..793c72bc9c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_hsize.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_image.png b/tools/editor/icons/2x/icon_image.png
new file mode 100644
index 0000000000..b3a43ffa23
--- /dev/null
+++ b/tools/editor/icons/2x/icon_image.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_image_texture.png b/tools/editor/icons/2x/icon_image_texture.png
new file mode 100644
index 0000000000..b67cebe3e0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_image_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_immediate_geometry.png b/tools/editor/icons/2x/icon_immediate_geometry.png
new file mode 100644
index 0000000000..937bf9eddb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_immediate_geometry.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_import_check.png b/tools/editor/icons/2x/icon_import_check.png
new file mode 100644
index 0000000000..f1cd259b5a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_import_check.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_import_fail.png b/tools/editor/icons/2x/icon_import_fail.png
new file mode 100644
index 0000000000..6c0e8f4e8a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_import_fail.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_instance.png b/tools/editor/icons/2x/icon_instance.png
new file mode 100644
index 0000000000..1b2df0c511
--- /dev/null
+++ b/tools/editor/icons/2x/icon_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_instance_options.png b/tools/editor/icons/2x/icon_instance_options.png
new file mode 100644
index 0000000000..7939021ae0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_instance_options.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_integer.png b/tools/editor/icons/2x/icon_integer.png
new file mode 100644
index 0000000000..a34dcfab56
--- /dev/null
+++ b/tools/editor/icons/2x/icon_integer.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_interp_cubic.png b/tools/editor/icons/2x/icon_interp_cubic.png
new file mode 100644
index 0000000000..7b2729ff10
--- /dev/null
+++ b/tools/editor/icons/2x/icon_interp_cubic.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_interp_linear.png b/tools/editor/icons/2x/icon_interp_linear.png
new file mode 100644
index 0000000000..1123f63b8f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_interp_linear.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_interp_raw.png b/tools/editor/icons/2x/icon_interp_raw.png
new file mode 100644
index 0000000000..1d400ff045
--- /dev/null
+++ b/tools/editor/icons/2x/icon_interp_raw.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_invalid_key.png b/tools/editor/icons/2x/icon_invalid_key.png
new file mode 100644
index 0000000000..621764ccdd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_invalid_key.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_inverse_kinematics.png b/tools/editor/icons/2x/icon_inverse_kinematics.png
new file mode 100644
index 0000000000..8f9e58af18
--- /dev/null
+++ b/tools/editor/icons/2x/icon_inverse_kinematics.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_item_list.png b/tools/editor/icons/2x/icon_item_list.png
new file mode 100644
index 0000000000..bd45fe081d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_item_list.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_joy_axis.png b/tools/editor/icons/2x/icon_joy_axis.png
new file mode 100644
index 0000000000..1fbaa53109
--- /dev/null
+++ b/tools/editor/icons/2x/icon_joy_axis.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_joy_button.png b/tools/editor/icons/2x/icon_joy_button.png
new file mode 100644
index 0000000000..0398450139
--- /dev/null
+++ b/tools/editor/icons/2x/icon_joy_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_joystick.png b/tools/editor/icons/2x/icon_joystick.png
new file mode 100644
index 0000000000..5bc87d81c6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_joystick.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key.png b/tools/editor/icons/2x/icon_key.png
new file mode 100644
index 0000000000..0d390022b3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_hover.png b/tools/editor/icons/2x/icon_key_hover.png
new file mode 100644
index 0000000000..dd5181b930
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_hover.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_invalid.png b/tools/editor/icons/2x/icon_key_invalid.png
new file mode 100644
index 0000000000..621764ccdd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_invalid.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_next.png b/tools/editor/icons/2x/icon_key_next.png
new file mode 100644
index 0000000000..1b85aa111e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_next.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_selected.png b/tools/editor/icons/2x/icon_key_selected.png
new file mode 100644
index 0000000000..c1e4cd622a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_selected.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_value.png b/tools/editor/icons/2x/icon_key_value.png
new file mode 100644
index 0000000000..ce113932fe
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_value.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_key_xform.png b/tools/editor/icons/2x/icon_key_xform.png
new file mode 100644
index 0000000000..3d44a54cb3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_key_xform.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_keyboard.png b/tools/editor/icons/2x/icon_keyboard.png
new file mode 100644
index 0000000000..61a137cba8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_keyboard.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_kinematic_body.png b/tools/editor/icons/2x/icon_kinematic_body.png
new file mode 100644
index 0000000000..2119c20c02
--- /dev/null
+++ b/tools/editor/icons/2x/icon_kinematic_body.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_kinematic_body_2d.png b/tools/editor/icons/2x/icon_kinematic_body_2d.png
new file mode 100644
index 0000000000..793a11d7c4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_kinematic_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_label.png b/tools/editor/icons/2x/icon_label.png
new file mode 100644
index 0000000000..24d4c632b1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_label.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_light_2d.png b/tools/editor/icons/2x/icon_light_2d.png
new file mode 100644
index 0000000000..dc2111a37f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_light_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_light_occluder_2d.png b/tools/editor/icons/2x/icon_light_occluder_2d.png
new file mode 100644
index 0000000000..bb0858c3f1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_light_occluder_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_line_edit.png b/tools/editor/icons/2x/icon_line_edit.png
new file mode 100644
index 0000000000..630c8e4ea3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_line_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_link_button.png b/tools/editor/icons/2x/icon_link_button.png
new file mode 100644
index 0000000000..d891b5e40b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_link_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_list_select.png b/tools/editor/icons/2x/icon_list_select.png
new file mode 100644
index 0000000000..00ff941d04
--- /dev/null
+++ b/tools/editor/icons/2x/icon_list_select.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_load.png b/tools/editor/icons/2x/icon_load.png
new file mode 100644
index 0000000000..daa81bdf4a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_load.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_lock.png b/tools/editor/icons/2x/icon_lock.png
new file mode 100644
index 0000000000..822fc207d6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_lock.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_loop.png b/tools/editor/icons/2x/icon_loop.png
new file mode 100644
index 0000000000..f2bb6ed417
--- /dev/null
+++ b/tools/editor/icons/2x/icon_loop.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_main_play.png b/tools/editor/icons/2x/icon_main_play.png
new file mode 100644
index 0000000000..3e61f5b8bf
--- /dev/null
+++ b/tools/editor/icons/2x/icon_main_play.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_main_stop.png b/tools/editor/icons/2x/icon_main_stop.png
new file mode 100644
index 0000000000..23f73f322c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_main_stop.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_margin_container.png b/tools/editor/icons/2x/icon_margin_container.png
new file mode 100644
index 0000000000..fa38dd7962
--- /dev/null
+++ b/tools/editor/icons/2x/icon_margin_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_cube.png b/tools/editor/icons/2x/icon_material_preview_cube.png
new file mode 100644
index 0000000000..d99b8db013
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_cube.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_cube_off.png b/tools/editor/icons/2x/icon_material_preview_cube_off.png
new file mode 100644
index 0000000000..afc2ef7e61
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_cube_off.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_light_1.png b/tools/editor/icons/2x/icon_material_preview_light_1.png
new file mode 100644
index 0000000000..e014bb1ddf
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_light_1.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_light_1_off.png b/tools/editor/icons/2x/icon_material_preview_light_1_off.png
new file mode 100644
index 0000000000..9bfd8c27c4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_light_1_off.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_light_2.png b/tools/editor/icons/2x/icon_material_preview_light_2.png
new file mode 100644
index 0000000000..db9e458a5b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_light_2.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_light_2_off.png b/tools/editor/icons/2x/icon_material_preview_light_2_off.png
new file mode 100644
index 0000000000..59d8fcbd67
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_light_2_off.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_sphere.png b/tools/editor/icons/2x/icon_material_preview_sphere.png
new file mode 100644
index 0000000000..a108366dcb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_sphere.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_preview_sphere_off.png b/tools/editor/icons/2x/icon_material_preview_sphere_off.png
new file mode 100644
index 0000000000..26aba9f94e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_preview_sphere_off.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_shader.png b/tools/editor/icons/2x/icon_material_shader.png
new file mode 100644
index 0000000000..366496b0e6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_material_shader_graph.png b/tools/editor/icons/2x/icon_material_shader_graph.png
new file mode 100644
index 0000000000..712b2013c4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_material_shader_graph.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_matrix.png b/tools/editor/icons/2x/icon_matrix.png
new file mode 100644
index 0000000000..1a9f542ff6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_matrix.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_menu_button.png b/tools/editor/icons/2x/icon_menu_button.png
new file mode 100644
index 0000000000..bd79d93d58
--- /dev/null
+++ b/tools/editor/icons/2x/icon_menu_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mesh.png b/tools/editor/icons/2x/icon_mesh.png
new file mode 100644
index 0000000000..ec987b46ed
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mesh.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mesh_instance.png b/tools/editor/icons/2x/icon_mesh_instance.png
new file mode 100644
index 0000000000..daa9cf3c68
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mirror_x.png b/tools/editor/icons/2x/icon_mirror_x.png
new file mode 100644
index 0000000000..793c72bc9c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mirror_x.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mirror_y.png b/tools/editor/icons/2x/icon_mirror_y.png
new file mode 100644
index 0000000000..57e044c843
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mirror_y.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_mouse.png b/tools/editor/icons/2x/icon_mouse.png
new file mode 100644
index 0000000000..7de98a3970
--- /dev/null
+++ b/tools/editor/icons/2x/icon_mouse.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_move_down.png b/tools/editor/icons/2x/icon_move_down.png
new file mode 100644
index 0000000000..fedaaf89ed
--- /dev/null
+++ b/tools/editor/icons/2x/icon_move_down.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_move_point.png b/tools/editor/icons/2x/icon_move_point.png
new file mode 100644
index 0000000000..fd906870b7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_move_point.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_move_up.png b/tools/editor/icons/2x/icon_move_up.png
new file mode 100644
index 0000000000..697b887fb7
--- /dev/null
+++ b/tools/editor/icons/2x/icon_move_up.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_multi_edit.png b/tools/editor/icons/2x/icon_multi_edit.png
new file mode 100644
index 0000000000..d818247d0e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_multi_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_multi_line.png b/tools/editor/icons/2x/icon_multi_line.png
new file mode 100644
index 0000000000..0760b233cf
--- /dev/null
+++ b/tools/editor/icons/2x/icon_multi_line.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_multi_mesh.png b/tools/editor/icons/2x/icon_multi_mesh.png
new file mode 100644
index 0000000000..48ada14e8f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_multi_mesh.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_multi_mesh_instance.png b/tools/editor/icons/2x/icon_multi_mesh_instance.png
new file mode 100644
index 0000000000..4662d10b36
--- /dev/null
+++ b/tools/editor/icons/2x/icon_multi_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_multi_node_edit.png b/tools/editor/icons/2x/icon_multi_node_edit.png
new file mode 100644
index 0000000000..d818247d0e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_multi_node_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation.png b/tools/editor/icons/2x/icon_navigation.png
new file mode 100644
index 0000000000..bce0ccf893
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation_2d.png b/tools/editor/icons/2x/icon_navigation_2d.png
new file mode 100644
index 0000000000..152748d334
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation_mesh_instance.png b/tools/editor/icons/2x/icon_navigation_mesh_instance.png
new file mode 100644
index 0000000000..514bbb8609
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_navigation_polygon_instance.png b/tools/editor/icons/2x/icon_navigation_polygon_instance.png
new file mode 100644
index 0000000000..4c73132a4d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_navigation_polygon_instance.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_new.png b/tools/editor/icons/2x/icon_new.png
new file mode 100644
index 0000000000..a495efee09
--- /dev/null
+++ b/tools/editor/icons/2x/icon_new.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_node.png b/tools/editor/icons/2x/icon_node.png
new file mode 100644
index 0000000000..540c7193b3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_node.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_node_2d.png b/tools/editor/icons/2x/icon_node_2d.png
new file mode 100644
index 0000000000..3ab0be6607
--- /dev/null
+++ b/tools/editor/icons/2x/icon_node_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_node_warning.png b/tools/editor/icons/2x/icon_node_warning.png
new file mode 100644
index 0000000000..bf59d6d247
--- /dev/null
+++ b/tools/editor/icons/2x/icon_node_warning.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_non_favorite.png b/tools/editor/icons/2x/icon_non_favorite.png
new file mode 100644
index 0000000000..7790066577
--- /dev/null
+++ b/tools/editor/icons/2x/icon_non_favorite.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_object.png b/tools/editor/icons/2x/icon_object.png
new file mode 100644
index 0000000000..66da378b33
--- /dev/null
+++ b/tools/editor/icons/2x/icon_object.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_occluder_polygon_2d.png b/tools/editor/icons/2x/icon_occluder_polygon_2d.png
new file mode 100644
index 0000000000..fe8de406ef
--- /dev/null
+++ b/tools/editor/icons/2x/icon_occluder_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_omni_light.png b/tools/editor/icons/2x/icon_omni_light.png
new file mode 100644
index 0000000000..2548319015
--- /dev/null
+++ b/tools/editor/icons/2x/icon_omni_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_option_button.png b/tools/editor/icons/2x/icon_option_button.png
new file mode 100644
index 0000000000..981e1277a0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_option_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_p_hash_translation.png b/tools/editor/icons/2x/icon_p_hash_translation.png
new file mode 100644
index 0000000000..c11e541dc9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_p_hash_translation.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_packed_scene.png b/tools/editor/icons/2x/icon_packed_scene.png
new file mode 100644
index 0000000000..1a799ff649
--- /dev/null
+++ b/tools/editor/icons/2x/icon_packed_scene.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panel.png b/tools/editor/icons/2x/icon_panel.png
new file mode 100644
index 0000000000..8467d39394
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panel.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panel_container.png b/tools/editor/icons/2x/icon_panel_container.png
new file mode 100644
index 0000000000..dae4097050
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panel_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_1.png b/tools/editor/icons/2x/icon_panels_1.png
new file mode 100644
index 0000000000..2a179e7fd3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_1.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_2.png b/tools/editor/icons/2x/icon_panels_2.png
new file mode 100644
index 0000000000..cc75aa5b71
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_2.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_2_alt.png b/tools/editor/icons/2x/icon_panels_2_alt.png
new file mode 100644
index 0000000000..ebf1b6b9e1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_2_alt.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_3.png b/tools/editor/icons/2x/icon_panels_3.png
new file mode 100644
index 0000000000..18546af102
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_3.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_3_alt.png b/tools/editor/icons/2x/icon_panels_3_alt.png
new file mode 100644
index 0000000000..4d60195d3f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_3_alt.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_panels_4.png b/tools/editor/icons/2x/icon_panels_4.png
new file mode 100644
index 0000000000..34b4384da6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_panels_4.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_parallax_background.png b/tools/editor/icons/2x/icon_parallax_background.png
new file mode 100644
index 0000000000..7970d3e95a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_parallax_background.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_parallax_layer.png b/tools/editor/icons/2x/icon_parallax_layer.png
new file mode 100644
index 0000000000..4a04feb9f0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_parallax_layer.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_particle_attractor_2d.png b/tools/editor/icons/2x/icon_particle_attractor_2d.png
new file mode 100644
index 0000000000..46658d7348
--- /dev/null
+++ b/tools/editor/icons/2x/icon_particle_attractor_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_particles.png b/tools/editor/icons/2x/icon_particles.png
new file mode 100644
index 0000000000..1fbd2d8955
--- /dev/null
+++ b/tools/editor/icons/2x/icon_particles.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_particles_2d.png b/tools/editor/icons/2x/icon_particles_2d.png
new file mode 100644
index 0000000000..4a973fa431
--- /dev/null
+++ b/tools/editor/icons/2x/icon_particles_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_patch_9_frame.png b/tools/editor/icons/2x/icon_patch_9_frame.png
new file mode 100644
index 0000000000..46315d200f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_patch_9_frame.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_path.png b/tools/editor/icons/2x/icon_path.png
new file mode 100644
index 0000000000..d884b79c2c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_path.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_path_2d.png b/tools/editor/icons/2x/icon_path_2d.png
new file mode 100644
index 0000000000..ee46a3bb59
--- /dev/null
+++ b/tools/editor/icons/2x/icon_path_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_path_follow.png b/tools/editor/icons/2x/icon_path_follow.png
new file mode 100644
index 0000000000..b824b4bb1b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_path_follow.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_path_follow_2d.png b/tools/editor/icons/2x/icon_path_follow_2d.png
new file mode 100644
index 0000000000..3ca3b930a0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_path_follow_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_pause.png b/tools/editor/icons/2x/icon_pause.png
new file mode 100644
index 0000000000..ab2c377fc2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_pause.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_pin.png b/tools/editor/icons/2x/icon_pin.png
new file mode 100644
index 0000000000..4e359612b8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_pin.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_pin_joint.png b/tools/editor/icons/2x/icon_pin_joint.png
new file mode 100644
index 0000000000..3f2c260f94
--- /dev/null
+++ b/tools/editor/icons/2x/icon_pin_joint.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_pin_joint_2d.png b/tools/editor/icons/2x/icon_pin_joint_2d.png
new file mode 100644
index 0000000000..2396d3e315
--- /dev/null
+++ b/tools/editor/icons/2x/icon_pin_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_pin_pressed.png b/tools/editor/icons/2x/icon_pin_pressed.png
new file mode 100644
index 0000000000..4e359612b8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_pin_pressed.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_plane.png b/tools/editor/icons/2x/icon_plane.png
new file mode 100644
index 0000000000..33f54d5e70
--- /dev/null
+++ b/tools/editor/icons/2x/icon_plane.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_plane_shape.png b/tools/editor/icons/2x/icon_plane_shape.png
new file mode 100644
index 0000000000..b554a395ea
--- /dev/null
+++ b/tools/editor/icons/2x/icon_plane_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play.png b/tools/editor/icons/2x/icon_play.png
new file mode 100644
index 0000000000..bf80d5bbbb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play_backwards.png b/tools/editor/icons/2x/icon_play_backwards.png
new file mode 100644
index 0000000000..3bc2d651b1
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play_backwards.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play_custom.png b/tools/editor/icons/2x/icon_play_custom.png
new file mode 100644
index 0000000000..adc451eb1c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play_custom.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play_scene.png b/tools/editor/icons/2x/icon_play_scene.png
new file mode 100644
index 0000000000..c81ec7d203
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play_scene.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play_start.png b/tools/editor/icons/2x/icon_play_start.png
new file mode 100644
index 0000000000..fc963e3d16
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play_start.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_play_start_backwards.png b/tools/editor/icons/2x/icon_play_start_backwards.png
new file mode 100644
index 0000000000..75707602e2
--- /dev/null
+++ b/tools/editor/icons/2x/icon_play_start_backwards.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_polygon_2d.png b/tools/editor/icons/2x/icon_polygon_2d.png
new file mode 100644
index 0000000000..05d6f10d58
--- /dev/null
+++ b/tools/editor/icons/2x/icon_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_popup.png b/tools/editor/icons/2x/icon_popup.png
new file mode 100644
index 0000000000..8c7c325c57
--- /dev/null
+++ b/tools/editor/icons/2x/icon_popup.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_popup_dialog.png b/tools/editor/icons/2x/icon_popup_dialog.png
new file mode 100644
index 0000000000..d8cfa94b7f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_popup_dialog.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_popup_menu.png b/tools/editor/icons/2x/icon_popup_menu.png
new file mode 100644
index 0000000000..9858d39bdb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_popup_menu.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_popup_panel.png b/tools/editor/icons/2x/icon_popup_panel.png
new file mode 100644
index 0000000000..5f12521f73
--- /dev/null
+++ b/tools/editor/icons/2x/icon_popup_panel.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_portal.png b/tools/editor/icons/2x/icon_portal.png
new file mode 100644
index 0000000000..3c2c8a7f48
--- /dev/null
+++ b/tools/editor/icons/2x/icon_portal.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_position_2d.png b/tools/editor/icons/2x/icon_position_2d.png
new file mode 100644
index 0000000000..1ad5067e5e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_position_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_position_3d.png b/tools/editor/icons/2x/icon_position_3d.png
new file mode 100644
index 0000000000..c2195b4c2a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_position_3d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_1.png b/tools/editor/icons/2x/icon_progress_1.png
new file mode 100644
index 0000000000..b3c2e08351
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_1.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_2.png b/tools/editor/icons/2x/icon_progress_2.png
new file mode 100644
index 0000000000..2e1de1b192
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_2.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_3.png b/tools/editor/icons/2x/icon_progress_3.png
new file mode 100644
index 0000000000..bf23a2f72b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_3.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_4.png b/tools/editor/icons/2x/icon_progress_4.png
new file mode 100644
index 0000000000..9e1daf5385
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_4.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_5.png b/tools/editor/icons/2x/icon_progress_5.png
new file mode 100644
index 0000000000..97388bb242
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_5.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_6.png b/tools/editor/icons/2x/icon_progress_6.png
new file mode 100644
index 0000000000..3c49797433
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_6.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_7.png b/tools/editor/icons/2x/icon_progress_7.png
new file mode 100644
index 0000000000..dd959b0ee6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_7.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_8.png b/tools/editor/icons/2x/icon_progress_8.png
new file mode 100644
index 0000000000..c3b411c672
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_8.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_progress_bar.png b/tools/editor/icons/2x/icon_progress_bar.png
new file mode 100644
index 0000000000..aa1ec42911
--- /dev/null
+++ b/tools/editor/icons/2x/icon_progress_bar.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_proximity_group.png b/tools/editor/icons/2x/icon_proximity_group.png
new file mode 100644
index 0000000000..2805fef73b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_proximity_group.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_quad.png b/tools/editor/icons/2x/icon_quad.png
new file mode 100644
index 0000000000..d26234ab3c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_quad.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_quat.png b/tools/editor/icons/2x/icon_quat.png
new file mode 100644
index 0000000000..97bad80684
--- /dev/null
+++ b/tools/editor/icons/2x/icon_quat.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_range.png b/tools/editor/icons/2x/icon_range.png
new file mode 100644
index 0000000000..f0fac7c480
--- /dev/null
+++ b/tools/editor/icons/2x/icon_range.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_ray_cast.png b/tools/editor/icons/2x/icon_ray_cast.png
new file mode 100644
index 0000000000..89a99664eb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_ray_cast.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_ray_cast_2d.png b/tools/editor/icons/2x/icon_ray_cast_2d.png
new file mode 100644
index 0000000000..d0fefe468b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_ray_cast_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_ray_shape.png b/tools/editor/icons/2x/icon_ray_shape.png
new file mode 100644
index 0000000000..a95dc48059
--- /dev/null
+++ b/tools/editor/icons/2x/icon_ray_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rayito.png b/tools/editor/icons/2x/icon_rayito.png
new file mode 100644
index 0000000000..06dfc8b005
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rayito.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_real.png b/tools/editor/icons/2x/icon_real.png
new file mode 100644
index 0000000000..08448f206d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_real.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reference_frame.png b/tools/editor/icons/2x/icon_reference_frame.png
new file mode 100644
index 0000000000..36c30a4735
--- /dev/null
+++ b/tools/editor/icons/2x/icon_reference_frame.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_region_edit.png b/tools/editor/icons/2x/icon_region_edit.png
new file mode 100644
index 0000000000..28dbe172d5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_region_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reload.png b/tools/editor/icons/2x/icon_reload.png
new file mode 100644
index 0000000000..1158caa9e8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_reload.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reload_small.png b/tools/editor/icons/2x/icon_reload_small.png
new file mode 100644
index 0000000000..3396df7069
--- /dev/null
+++ b/tools/editor/icons/2x/icon_reload_small.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_remote.png b/tools/editor/icons/2x/icon_remote.png
new file mode 100644
index 0000000000..247bae0c3d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_remote.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_remote_transform_2d.png b/tools/editor/icons/2x/icon_remote_transform_2d.png
new file mode 100644
index 0000000000..5644c6f256
--- /dev/null
+++ b/tools/editor/icons/2x/icon_remote_transform_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_remove.png b/tools/editor/icons/2x/icon_remove.png
new file mode 100644
index 0000000000..a80deef48b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_remove.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rename.png b/tools/editor/icons/2x/icon_rename.png
new file mode 100644
index 0000000000..addcbee2cd
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rename.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_reparent.png b/tools/editor/icons/2x/icon_reparent.png
new file mode 100644
index 0000000000..92ffafc594
--- /dev/null
+++ b/tools/editor/icons/2x/icon_reparent.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_resource_preloader.png b/tools/editor/icons/2x/icon_resource_preloader.png
new file mode 100644
index 0000000000..6911269bdc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_resource_preloader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rich_text_label.png b/tools/editor/icons/2x/icon_rich_text_label.png
new file mode 100644
index 0000000000..e7dd5574db
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rich_text_label.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rigid_body.png b/tools/editor/icons/2x/icon_rigid_body.png
new file mode 100644
index 0000000000..bd2d240b96
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rigid_body.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rigid_body_2d.png b/tools/editor/icons/2x/icon_rigid_body_2d.png
new file mode 100644
index 0000000000..f5b2b1db18
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rigid_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_room.png b/tools/editor/icons/2x/icon_room.png
new file mode 100644
index 0000000000..0ca7d32e1e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_room.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rotate_0.png b/tools/editor/icons/2x/icon_rotate_0.png
new file mode 100644
index 0000000000..40da71d47a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rotate_0.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rotate_180.png b/tools/editor/icons/2x/icon_rotate_180.png
new file mode 100644
index 0000000000..b58c25d577
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rotate_180.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rotate_270.png b/tools/editor/icons/2x/icon_rotate_270.png
new file mode 100644
index 0000000000..f17ab02d10
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rotate_270.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_rotate_90.png b/tools/editor/icons/2x/icon_rotate_90.png
new file mode 100644
index 0000000000..0b3940686a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_rotate_90.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sample.png b/tools/editor/icons/2x/icon_sample.png
new file mode 100644
index 0000000000..860ea998ef
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sample.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sample_player.png b/tools/editor/icons/2x/icon_sample_player.png
new file mode 100644
index 0000000000..67e5e69c2a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sample_player_2d.png b/tools/editor/icons/2x/icon_sample_player_2d.png
new file mode 100644
index 0000000000..6bf3658d3e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sample_player_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_save.png b/tools/editor/icons/2x/icon_save.png
new file mode 100644
index 0000000000..9fdc4c568c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_save.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_script.png b/tools/editor/icons/2x/icon_script.png
new file mode 100644
index 0000000000..25b2ad1c08
--- /dev/null
+++ b/tools/editor/icons/2x/icon_script.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_scroll_bar.png b/tools/editor/icons/2x/icon_scroll_bar.png
new file mode 100644
index 0000000000..f56a1f570e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_scroll_container.png b/tools/editor/icons/2x/icon_scroll_container.png
new file mode 100644
index 0000000000..5ecc0cb535
--- /dev/null
+++ b/tools/editor/icons/2x/icon_scroll_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_shader.png b/tools/editor/icons/2x/icon_shader.png
new file mode 100644
index 0000000000..366496b0e6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_shader.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_shader_material.png b/tools/editor/icons/2x/icon_shader_material.png
new file mode 100644
index 0000000000..366496b0e6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_shader_material.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_signal.png b/tools/editor/icons/2x/icon_signal.png
new file mode 100644
index 0000000000..73355a1466
--- /dev/null
+++ b/tools/editor/icons/2x/icon_signal.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_skeleton.png b/tools/editor/icons/2x/icon_skeleton.png
new file mode 100644
index 0000000000..92eafb3f2c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_skeleton.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_slider_joint.png b/tools/editor/icons/2x/icon_slider_joint.png
new file mode 100644
index 0000000000..40963ce03c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_slider_joint.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_slot.png b/tools/editor/icons/2x/icon_slot.png
new file mode 100644
index 0000000000..eab8da30a3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_slot.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_snap.png b/tools/editor/icons/2x/icon_snap.png
new file mode 100644
index 0000000000..2a381ca2de
--- /dev/null
+++ b/tools/editor/icons/2x/icon_snap.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sound_room_params.png b/tools/editor/icons/2x/icon_sound_room_params.png
new file mode 100644
index 0000000000..80a0c78b9a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sound_room_params.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spatial.png b/tools/editor/icons/2x/icon_spatial.png
new file mode 100644
index 0000000000..3d7e0502be
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spatial.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spatial_sample_player.png b/tools/editor/icons/2x/icon_spatial_sample_player.png
new file mode 100644
index 0000000000..6e5e609791
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spatial_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spatial_stream_player.png b/tools/editor/icons/2x/icon_spatial_stream_player.png
new file mode 100644
index 0000000000..0ae4c80c39
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spatial_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sphere_shape.png b/tools/editor/icons/2x/icon_sphere_shape.png
new file mode 100644
index 0000000000..dd4e438c6f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sphere_shape.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spin_box.png b/tools/editor/icons/2x/icon_spin_box.png
new file mode 100644
index 0000000000..c5513f72d4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spin_box.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_spot_light.png b/tools/editor/icons/2x/icon_spot_light.png
new file mode 100644
index 0000000000..5d62b609ee
--- /dev/null
+++ b/tools/editor/icons/2x/icon_spot_light.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sprite.png b/tools/editor/icons/2x/icon_sprite.png
new file mode 100644
index 0000000000..32fcd32250
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sprite.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_sprite_3d.png b/tools/editor/icons/2x/icon_sprite_3d.png
new file mode 100644
index 0000000000..e24779ae99
--- /dev/null
+++ b/tools/editor/icons/2x/icon_sprite_3d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_static_body.png b/tools/editor/icons/2x/icon_static_body.png
new file mode 100644
index 0000000000..3fc3e6f928
--- /dev/null
+++ b/tools/editor/icons/2x/icon_static_body.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_static_body_2d.png b/tools/editor/icons/2x/icon_static_body_2d.png
new file mode 100644
index 0000000000..6c199981e4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_static_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_stream_player.png b/tools/editor/icons/2x/icon_stream_player.png
new file mode 100644
index 0000000000..3d00238dee
--- /dev/null
+++ b/tools/editor/icons/2x/icon_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_string.png b/tools/editor/icons/2x/icon_string.png
new file mode 100644
index 0000000000..b0bf611c51
--- /dev/null
+++ b/tools/editor/icons/2x/icon_string.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tab_container.png b/tools/editor/icons/2x/icon_tab_container.png
new file mode 100644
index 0000000000..ceff71e2a5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tab_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tabs.png b/tools/editor/icons/2x/icon_tabs.png
new file mode 100644
index 0000000000..b265ba7cdf
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tabs.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_test_cube.png b/tools/editor/icons/2x/icon_test_cube.png
new file mode 100644
index 0000000000..05d704fe78
--- /dev/null
+++ b/tools/editor/icons/2x/icon_test_cube.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_text_edit.png b/tools/editor/icons/2x/icon_text_edit.png
new file mode 100644
index 0000000000..7eb9719715
--- /dev/null
+++ b/tools/editor/icons/2x/icon_text_edit.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_texture.png b/tools/editor/icons/2x/icon_texture.png
new file mode 100644
index 0000000000..b67cebe3e0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_texture.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_texture_button.png b/tools/editor/icons/2x/icon_texture_button.png
new file mode 100644
index 0000000000..9c742a903b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_texture_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_texture_frame.png b/tools/editor/icons/2x/icon_texture_frame.png
new file mode 100644
index 0000000000..00c8c83844
--- /dev/null
+++ b/tools/editor/icons/2x/icon_texture_frame.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_texture_progress.png b/tools/editor/icons/2x/icon_texture_progress.png
new file mode 100644
index 0000000000..711d778e5c
--- /dev/null
+++ b/tools/editor/icons/2x/icon_texture_progress.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tile_map.png b/tools/editor/icons/2x/icon_tile_map.png
new file mode 100644
index 0000000000..089c27e2ae
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tile_map.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_timer.png b/tools/editor/icons/2x/icon_timer.png
new file mode 100644
index 0000000000..ff7ce1e0a4
--- /dev/null
+++ b/tools/editor/icons/2x/icon_timer.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tool_move.png b/tools/editor/icons/2x/icon_tool_move.png
new file mode 100644
index 0000000000..9adec53bc0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tool_move.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tool_pan.png b/tools/editor/icons/2x/icon_tool_pan.png
new file mode 100644
index 0000000000..e23f9c9941
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tool_pan.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tool_rotate.png b/tools/editor/icons/2x/icon_tool_rotate.png
new file mode 100644
index 0000000000..1158caa9e8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tool_rotate.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tool_scale.png b/tools/editor/icons/2x/icon_tool_scale.png
new file mode 100644
index 0000000000..ec5f7968be
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tool_scale.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tool_select.png b/tools/editor/icons/2x/icon_tool_select.png
new file mode 100644
index 0000000000..e863ac455e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tool_select.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tools.png b/tools/editor/icons/2x/icon_tools.png
new file mode 100644
index 0000000000..bd6b161c91
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tools.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_touch_screen_button.png b/tools/editor/icons/2x/icon_touch_screen_button.png
new file mode 100644
index 0000000000..66ac0a2f56
--- /dev/null
+++ b/tools/editor/icons/2x/icon_touch_screen_button.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_add_key.png b/tools/editor/icons/2x/icon_track_add_key.png
new file mode 100644
index 0000000000..0f816e54b6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_track_add_key.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_add_key_hl.png b/tools/editor/icons/2x/icon_track_add_key_hl.png
new file mode 100644
index 0000000000..9e00828926
--- /dev/null
+++ b/tools/editor/icons/2x/icon_track_add_key_hl.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_continuous.png b/tools/editor/icons/2x/icon_track_continuous.png
new file mode 100644
index 0000000000..ff9ab8c7d8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_track_continuous.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_track_discrete.png b/tools/editor/icons/2x/icon_track_discrete.png
new file mode 100644
index 0000000000..986b6cf5d5
--- /dev/null
+++ b/tools/editor/icons/2x/icon_track_discrete.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_translation.png b/tools/editor/icons/2x/icon_translation.png
new file mode 100644
index 0000000000..c11e541dc9
--- /dev/null
+++ b/tools/editor/icons/2x/icon_translation.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_transpose.png b/tools/editor/icons/2x/icon_transpose.png
new file mode 100644
index 0000000000..9ce50bc294
--- /dev/null
+++ b/tools/editor/icons/2x/icon_transpose.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tree.png b/tools/editor/icons/2x/icon_tree.png
new file mode 100644
index 0000000000..00935fca75
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tree.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_tween.png b/tools/editor/icons/2x/icon_tween.png
new file mode 100644
index 0000000000..62a01e819a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_tween.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_unbone.png b/tools/editor/icons/2x/icon_unbone.png
new file mode 100644
index 0000000000..6a44ef681f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_unbone.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_ungroup.png b/tools/editor/icons/2x/icon_ungroup.png
new file mode 100644
index 0000000000..45c039da5a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_ungroup.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_unlock.png b/tools/editor/icons/2x/icon_unlock.png
new file mode 100644
index 0000000000..63c121a507
--- /dev/null
+++ b/tools/editor/icons/2x/icon_unlock.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_uv.png b/tools/editor/icons/2x/icon_uv.png
new file mode 100644
index 0000000000..0403ebbeab
--- /dev/null
+++ b/tools/editor/icons/2x/icon_uv.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_box_container.png b/tools/editor/icons/2x/icon_v_box_container.png
new file mode 100644
index 0000000000..2035ffe616
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_box_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_button_array.png b/tools/editor/icons/2x/icon_v_button_array.png
new file mode 100644
index 0000000000..fd64203cf3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_button_array.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_scroll_bar.png b/tools/editor/icons/2x/icon_v_scroll_bar.png
new file mode 100644
index 0000000000..313aab2ee0
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_separator.png b/tools/editor/icons/2x/icon_v_separator.png
new file mode 100644
index 0000000000..2c263cb87b
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_separator.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_slider.png b/tools/editor/icons/2x/icon_v_slider.png
new file mode 100644
index 0000000000..92ff4f1b13
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_slider.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_v_split_container.png b/tools/editor/icons/2x/icon_v_split_container.png
new file mode 100644
index 0000000000..7b20187e1a
--- /dev/null
+++ b/tools/editor/icons/2x/icon_v_split_container.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vector.png b/tools/editor/icons/2x/icon_vector.png
new file mode 100644
index 0000000000..89d8827e20
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vector.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vector2.png b/tools/editor/icons/2x/icon_vector2.png
new file mode 100644
index 0000000000..501735c734
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vector2.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vehicle_body.png b/tools/editor/icons/2x/icon_vehicle_body.png
new file mode 100644
index 0000000000..2887165e9f
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vehicle_body.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vehicle_wheel.png b/tools/editor/icons/2x/icon_vehicle_wheel.png
new file mode 100644
index 0000000000..110743b72d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vehicle_wheel.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_video_player.png b/tools/editor/icons/2x/icon_video_player.png
new file mode 100644
index 0000000000..bc41e46214
--- /dev/null
+++ b/tools/editor/icons/2x/icon_video_player.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_viewport.png b/tools/editor/icons/2x/icon_viewport.png
new file mode 100644
index 0000000000..383e751b20
--- /dev/null
+++ b/tools/editor/icons/2x/icon_viewport.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_viewport_sprite.png b/tools/editor/icons/2x/icon_viewport_sprite.png
new file mode 100644
index 0000000000..75b3155c6e
--- /dev/null
+++ b/tools/editor/icons/2x/icon_viewport_sprite.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_visibility_enabler.png b/tools/editor/icons/2x/icon_visibility_enabler.png
new file mode 100644
index 0000000000..7089cb3a41
--- /dev/null
+++ b/tools/editor/icons/2x/icon_visibility_enabler.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_visibility_enabler_2d.png b/tools/editor/icons/2x/icon_visibility_enabler_2d.png
new file mode 100644
index 0000000000..fd1e8c7cbb
--- /dev/null
+++ b/tools/editor/icons/2x/icon_visibility_enabler_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_visibility_notifier.png b/tools/editor/icons/2x/icon_visibility_notifier.png
new file mode 100644
index 0000000000..293ac223b8
--- /dev/null
+++ b/tools/editor/icons/2x/icon_visibility_notifier.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_visibility_notifier_2d.png b/tools/editor/icons/2x/icon_visibility_notifier_2d.png
new file mode 100644
index 0000000000..3ef01403fe
--- /dev/null
+++ b/tools/editor/icons/2x/icon_visibility_notifier_2d.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_visible.png b/tools/editor/icons/2x/icon_visible.png
new file mode 100644
index 0000000000..b56cf6f3d3
--- /dev/null
+++ b/tools/editor/icons/2x/icon_visible.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vu_empty.png b/tools/editor/icons/2x/icon_vu_empty.png
new file mode 100644
index 0000000000..54772cf047
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vu_empty.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_vu_full.png b/tools/editor/icons/2x/icon_vu_full.png
new file mode 100644
index 0000000000..caa40539fe
--- /dev/null
+++ b/tools/editor/icons/2x/icon_vu_full.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_warning.png b/tools/editor/icons/2x/icon_warning.png
new file mode 100644
index 0000000000..ba6a7cf957
--- /dev/null
+++ b/tools/editor/icons/2x/icon_warning.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_window_dialog.png b/tools/editor/icons/2x/icon_window_dialog.png
new file mode 100644
index 0000000000..badf721f11
--- /dev/null
+++ b/tools/editor/icons/2x/icon_window_dialog.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_world_environment.png b/tools/editor/icons/2x/icon_world_environment.png
new file mode 100644
index 0000000000..d25e2d5c0d
--- /dev/null
+++ b/tools/editor/icons/2x/icon_world_environment.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_y_sort.png b/tools/editor/icons/2x/icon_y_sort.png
new file mode 100644
index 0000000000..b9845d56dc
--- /dev/null
+++ b/tools/editor/icons/2x/icon_y_sort.png
Binary files differ
diff --git a/tools/editor/icons/2x/icon_zoom.png b/tools/editor/icons/2x/icon_zoom.png
new file mode 100644
index 0000000000..88524fa3a6
--- /dev/null
+++ b/tools/editor/icons/2x/icon_zoom.png
Binary files differ
diff --git a/tools/editor/icons/SCsub b/tools/editor/icons/SCsub
index addf6879a2..f3216b092d 100644
--- a/tools/editor/icons/SCsub
+++ b/tools/editor/icons/SCsub
@@ -11,6 +11,7 @@ def make_editor_icons_action(target, source, env):
s = cStringIO.StringIO()
s.write("#include \"editor_icons.h\"\n\n")
+ s.write("#include \"editor_scale.h\"\n\n")
s.write("#include \"scene/resources/theme.h\"\n\n")
for x in pixmaps:
@@ -35,7 +36,9 @@ def make_editor_icons_action(target, source, env):
s.write("static Ref<ImageTexture> make_icon(const uint8_t* p_png) {\n")
s.write("\tRef<ImageTexture> texture( memnew( ImageTexture ) );\n")
- s.write("\ttexture->create_from_image( Image(p_png),ImageTexture::FLAG_FILTER );\n")
+ s.write("\tImage img(p_png);\n")
+ s.write("\tif (editor_is_hidpi()) img.expand_x2_hq2x();\n")
+ s.write("\ttexture->create_from_image( img,ImageTexture::FLAG_FILTER );\n")
s.write("\treturn texture;\n")
s.write("}\n\n")
diff --git a/tools/editor/icons/icon_accept_dialog.png b/tools/editor/icons/icon_accept_dialog.png
index 4c9b558a69..a6528ce34a 100644
--- a/tools/editor/icons/icon_accept_dialog.png
+++ b/tools/editor/icons/icon_accept_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_add.png b/tools/editor/icons/icon_add.png
index 26283ca67c..0f37ecadb0 100644
--- a/tools/editor/icons/icon_add.png
+++ b/tools/editor/icons/icon_add.png
Binary files differ
diff --git a/tools/editor/icons/icon_add_track.png b/tools/editor/icons/icon_add_track.png
index 6a90950173..0f37ecadb0 100644
--- a/tools/editor/icons/icon_add_track.png
+++ b/tools/editor/icons/icon_add_track.png
Binary files differ
diff --git a/tools/editor/icons/icon_anchor.png b/tools/editor/icons/icon_anchor.png
index 1f9f9fa139..173ba61cf8 100644
--- a/tools/editor/icons/icon_anchor.png
+++ b/tools/editor/icons/icon_anchor.png
Binary files differ
diff --git a/tools/editor/icons/icon_animated_sprite.png b/tools/editor/icons/icon_animated_sprite.png
index 2b1bad861f..58d8652a14 100644
--- a/tools/editor/icons/icon_animated_sprite.png
+++ b/tools/editor/icons/icon_animated_sprite.png
Binary files differ
diff --git a/tools/editor/icons/icon_animated_sprite_3d.png b/tools/editor/icons/icon_animated_sprite_3d.png
index 19aa7ea207..8a54560181 100644
--- a/tools/editor/icons/icon_animated_sprite_3d.png
+++ b/tools/editor/icons/icon_animated_sprite_3d.png
Binary files differ
diff --git a/tools/editor/icons/icon_animation.png b/tools/editor/icons/icon_animation.png
index ac663c0554..ff42602723 100644
--- a/tools/editor/icons/icon_animation.png
+++ b/tools/editor/icons/icon_animation.png
Binary files differ
diff --git a/tools/editor/icons/icon_animation_player.png b/tools/editor/icons/icon_animation_player.png
index 2afba491ef..16e3959bd5 100644
--- a/tools/editor/icons/icon_animation_player.png
+++ b/tools/editor/icons/icon_animation_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_animation_tree.png b/tools/editor/icons/icon_animation_tree.png
index cc29de17a5..4b09b67549 100644
--- a/tools/editor/icons/icon_animation_tree.png
+++ b/tools/editor/icons/icon_animation_tree.png
Binary files differ
diff --git a/tools/editor/icons/icon_animation_tree_player.png b/tools/editor/icons/icon_animation_tree_player.png
index a0698ab622..4b09b67549 100644
--- a/tools/editor/icons/icon_animation_tree_player.png
+++ b/tools/editor/icons/icon_animation_tree_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_area.png b/tools/editor/icons/icon_area.png
index 17dc436cab..59ac99548a 100644
--- a/tools/editor/icons/icon_area.png
+++ b/tools/editor/icons/icon_area.png
Binary files differ
diff --git a/tools/editor/icons/icon_area_2d.png b/tools/editor/icons/icon_area_2d.png
index 34f576fff5..81df39f597 100644
--- a/tools/editor/icons/icon_area_2d.png
+++ b/tools/editor/icons/icon_area_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_arrow_left.png b/tools/editor/icons/icon_arrow_left.png
index b72ac2a10d..95238a3c0a 100644
--- a/tools/editor/icons/icon_arrow_left.png
+++ b/tools/editor/icons/icon_arrow_left.png
Binary files differ
diff --git a/tools/editor/icons/icon_arrow_right.png b/tools/editor/icons/icon_arrow_right.png
index d0a48b01ac..b3db42490f 100644
--- a/tools/editor/icons/icon_arrow_right.png
+++ b/tools/editor/icons/icon_arrow_right.png
Binary files differ
diff --git a/tools/editor/icons/icon_arrow_up.png b/tools/editor/icons/icon_arrow_up.png
index 10aac0e0f6..2e907641b5 100644
--- a/tools/editor/icons/icon_arrow_up.png
+++ b/tools/editor/icons/icon_arrow_up.png
Binary files differ
diff --git a/tools/editor/icons/icon_atlas_texture.png b/tools/editor/icons/icon_atlas_texture.png
index 0051b0cda4..f0bd47fba7 100644
--- a/tools/editor/icons/icon_atlas_texture.png
+++ b/tools/editor/icons/icon_atlas_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_audio_stream_gibberish.png b/tools/editor/icons/icon_audio_stream_gibberish.png
index 95470c298e..776296b136 100644
--- a/tools/editor/icons/icon_audio_stream_gibberish.png
+++ b/tools/editor/icons/icon_audio_stream_gibberish.png
Binary files differ
diff --git a/tools/editor/icons/icon_auto_play.png b/tools/editor/icons/icon_auto_play.png
index 1d5c957cc7..4467191f47 100644
--- a/tools/editor/icons/icon_auto_play.png
+++ b/tools/editor/icons/icon_auto_play.png
Binary files differ
diff --git a/tools/editor/icons/icon_back.png b/tools/editor/icons/icon_back.png
index f7e507d92b..b0ce0d086d 100644
--- a/tools/editor/icons/icon_back.png
+++ b/tools/editor/icons/icon_back.png
Binary files differ
diff --git a/tools/editor/icons/icon_back_buffer_copy.png b/tools/editor/icons/icon_back_buffer_copy.png
index b27eb39108..5a551b399f 100644
--- a/tools/editor/icons/icon_back_buffer_copy.png
+++ b/tools/editor/icons/icon_back_buffer_copy.png
Binary files differ
diff --git a/tools/editor/icons/icon_bake.png b/tools/editor/icons/icon_bake.png
index ae06ce48e6..3316ec5591 100644
--- a/tools/editor/icons/icon_bake.png
+++ b/tools/editor/icons/icon_bake.png
Binary files differ
diff --git a/tools/editor/icons/icon_baked_light.png b/tools/editor/icons/icon_baked_light.png
index 48039e264c..3316ec5591 100644
--- a/tools/editor/icons/icon_baked_light.png
+++ b/tools/editor/icons/icon_baked_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_baked_light_instance.png b/tools/editor/icons/icon_baked_light_instance.png
index 77e53aa8f6..485bcc8e0d 100644
--- a/tools/editor/icons/icon_baked_light_instance.png
+++ b/tools/editor/icons/icon_baked_light_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_bitmap_font.png b/tools/editor/icons/icon_bitmap_font.png
index 45de2b0f0a..b578ca2ab4 100644
--- a/tools/editor/icons/icon_bitmap_font.png
+++ b/tools/editor/icons/icon_bitmap_font.png
Binary files differ
diff --git a/tools/editor/icons/icon_blend.png b/tools/editor/icons/icon_blend.png
index 2a75f0b2f4..a4b1232590 100644
--- a/tools/editor/icons/icon_blend.png
+++ b/tools/editor/icons/icon_blend.png
Binary files differ
diff --git a/tools/editor/icons/icon_bone.png b/tools/editor/icons/icon_bone.png
index 81b6d8856e..49cba1bdac 100644
--- a/tools/editor/icons/icon_bone.png
+++ b/tools/editor/icons/icon_bone.png
Binary files differ
diff --git a/tools/editor/icons/icon_bone_attachment.png b/tools/editor/icons/icon_bone_attachment.png
index 0d1d69f21f..0fa9dade42 100644
--- a/tools/editor/icons/icon_bone_attachment.png
+++ b/tools/editor/icons/icon_bone_attachment.png
Binary files differ
diff --git a/tools/editor/icons/icon_bone_track.png b/tools/editor/icons/icon_bone_track.png
index 9916112069..9b4a42a1d2 100644
--- a/tools/editor/icons/icon_bone_track.png
+++ b/tools/editor/icons/icon_bone_track.png
Binary files differ
diff --git a/tools/editor/icons/icon_bool.png b/tools/editor/icons/icon_bool.png
index 80b3a9deb7..9a22cd4750 100644
--- a/tools/editor/icons/icon_bool.png
+++ b/tools/editor/icons/icon_bool.png
Binary files differ
diff --git a/tools/editor/icons/icon_box_shape.png b/tools/editor/icons/icon_box_shape.png
index 69c1fb2184..b888dfe39d 100644
--- a/tools/editor/icons/icon_box_shape.png
+++ b/tools/editor/icons/icon_box_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_button.png b/tools/editor/icons/icon_button.png
index 296b508719..063c50ba43 100644
--- a/tools/editor/icons/icon_button.png
+++ b/tools/editor/icons/icon_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_button_group.png b/tools/editor/icons/icon_button_group.png
new file mode 100644
index 0000000000..2a42396fc1
--- /dev/null
+++ b/tools/editor/icons/icon_button_group.png
Binary files differ
diff --git a/tools/editor/icons/icon_camera.png b/tools/editor/icons/icon_camera.png
index 6dce543162..fe9ebd4162 100644
--- a/tools/editor/icons/icon_camera.png
+++ b/tools/editor/icons/icon_camera.png
Binary files differ
diff --git a/tools/editor/icons/icon_camera_2d.png b/tools/editor/icons/icon_camera_2d.png
index fe278fe15b..c04e14e960 100644
--- a/tools/editor/icons/icon_camera_2d.png
+++ b/tools/editor/icons/icon_camera_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_item.png b/tools/editor/icons/icon_canvas_item.png
index add54ba1af..6951ac07ed 100644
--- a/tools/editor/icons/icon_canvas_item.png
+++ b/tools/editor/icons/icon_canvas_item.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_item_material.png b/tools/editor/icons/icon_canvas_item_material.png
index 2fe8921653..42e919cc60 100644
--- a/tools/editor/icons/icon_canvas_item_material.png
+++ b/tools/editor/icons/icon_canvas_item_material.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_item_shader.png b/tools/editor/icons/icon_canvas_item_shader.png
index a5f4e7bf85..9d7595207f 100644
--- a/tools/editor/icons/icon_canvas_item_shader.png
+++ b/tools/editor/icons/icon_canvas_item_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_item_shader_graph.png b/tools/editor/icons/icon_canvas_item_shader_graph.png
index bba966b43e..b9ebe7b028 100644
--- a/tools/editor/icons/icon_canvas_item_shader_graph.png
+++ b/tools/editor/icons/icon_canvas_item_shader_graph.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_layer.png b/tools/editor/icons/icon_canvas_layer.png
new file mode 100644
index 0000000000..13450c4062
--- /dev/null
+++ b/tools/editor/icons/icon_canvas_layer.png
Binary files differ
diff --git a/tools/editor/icons/icon_canvas_modulate.png b/tools/editor/icons/icon_canvas_modulate.png
index 2a34df7793..e287f26877 100644
--- a/tools/editor/icons/icon_canvas_modulate.png
+++ b/tools/editor/icons/icon_canvas_modulate.png
Binary files differ
diff --git a/tools/editor/icons/icon_capsule_shape.png b/tools/editor/icons/icon_capsule_shape.png
index 6e6de12a8f..0c2b2f6bd2 100644
--- a/tools/editor/icons/icon_capsule_shape.png
+++ b/tools/editor/icons/icon_capsule_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_center_container.png b/tools/editor/icons/icon_center_container.png
index fd5be79559..776f34239a 100644
--- a/tools/editor/icons/icon_center_container.png
+++ b/tools/editor/icons/icon_center_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_check_box.png b/tools/editor/icons/icon_check_box.png
index 8a2b56cc3e..3de79825de 100644
--- a/tools/editor/icons/icon_check_box.png
+++ b/tools/editor/icons/icon_check_box.png
Binary files differ
diff --git a/tools/editor/icons/icon_check_button.png b/tools/editor/icons/icon_check_button.png
index 9b44e6714f..f80454aa48 100644
--- a/tools/editor/icons/icon_check_button.png
+++ b/tools/editor/icons/icon_check_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_checkerboard.png b/tools/editor/icons/icon_checkerboard.png
new file mode 100644
index 0000000000..5f658c765e
--- /dev/null
+++ b/tools/editor/icons/icon_checkerboard.png
Binary files differ
diff --git a/tools/editor/icons/icon_class_list.png b/tools/editor/icons/icon_class_list.png
index fb756c0fe1..523a675fc1 100644
--- a/tools/editor/icons/icon_class_list.png
+++ b/tools/editor/icons/icon_class_list.png
Binary files differ
diff --git a/tools/editor/icons/icon_close.png b/tools/editor/icons/icon_close.png
index 10e56d5bb8..b9736cd52d 100644
--- a/tools/editor/icons/icon_close.png
+++ b/tools/editor/icons/icon_close.png
Binary files differ
diff --git a/tools/editor/icons/icon_collapse.png b/tools/editor/icons/icon_collapse.png
index 23db9e42a7..bdb1ae960b 100644
--- a/tools/editor/icons/icon_collapse.png
+++ b/tools/editor/icons/icon_collapse.png
Binary files differ
diff --git a/tools/editor/icons/icon_collision_2d.png b/tools/editor/icons/icon_collision_2d.png
index f195569753..57c1453cc4 100644
--- a/tools/editor/icons/icon_collision_2d.png
+++ b/tools/editor/icons/icon_collision_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_collision_polygon.png b/tools/editor/icons/icon_collision_polygon.png
index a82b43589e..a5b527fcc6 100644
--- a/tools/editor/icons/icon_collision_polygon.png
+++ b/tools/editor/icons/icon_collision_polygon.png
Binary files differ
diff --git a/tools/editor/icons/icon_collision_polygon_2d.png b/tools/editor/icons/icon_collision_polygon_2d.png
index 9f89e10b01..57c1453cc4 100644
--- a/tools/editor/icons/icon_collision_polygon_2d.png
+++ b/tools/editor/icons/icon_collision_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_collision_shape.png b/tools/editor/icons/icon_collision_shape.png
index 8389885e0c..68f1d2b0b4 100644
--- a/tools/editor/icons/icon_collision_shape.png
+++ b/tools/editor/icons/icon_collision_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_collision_shape_2d.png b/tools/editor/icons/icon_collision_shape_2d.png
index 4c60513e75..929b1b1150 100644
--- a/tools/editor/icons/icon_collision_shape_2d.png
+++ b/tools/editor/icons/icon_collision_shape_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_color.png b/tools/editor/icons/icon_color.png
index 3ab87c98ea..14d7278846 100644
--- a/tools/editor/icons/icon_color.png
+++ b/tools/editor/icons/icon_color.png
Binary files differ
diff --git a/tools/editor/icons/icon_color_pick.png b/tools/editor/icons/icon_color_pick.png
new file mode 100644
index 0000000000..d40a8d4795
--- /dev/null
+++ b/tools/editor/icons/icon_color_pick.png
Binary files differ
diff --git a/tools/editor/icons/icon_color_picker.png b/tools/editor/icons/icon_color_picker.png
index 3a7510d201..67cba9e085 100644
--- a/tools/editor/icons/icon_color_picker.png
+++ b/tools/editor/icons/icon_color_picker.png
Binary files differ
diff --git a/tools/editor/icons/icon_color_picker_button.png b/tools/editor/icons/icon_color_picker_button.png
index f441c4f18b..27f6b24282 100644
--- a/tools/editor/icons/icon_color_picker_button.png
+++ b/tools/editor/icons/icon_color_picker_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_color_ramp.png b/tools/editor/icons/icon_color_ramp.png
index 9031b5ec53..f5fbda6d21 100644
--- a/tools/editor/icons/icon_color_ramp.png
+++ b/tools/editor/icons/icon_color_ramp.png
Binary files differ
diff --git a/tools/editor/icons/icon_concave_polygon_shape.png b/tools/editor/icons/icon_concave_polygon_shape.png
index 1a3b52ccce..6c0832f700 100644
--- a/tools/editor/icons/icon_concave_polygon_shape.png
+++ b/tools/editor/icons/icon_concave_polygon_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_confirmation_dialog.png b/tools/editor/icons/icon_confirmation_dialog.png
index 024ffaff19..ed3b3c1f08 100644
--- a/tools/editor/icons/icon_confirmation_dialog.png
+++ b/tools/editor/icons/icon_confirmation_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_connect.png b/tools/editor/icons/icon_connect.png
index 745e445a61..36b52f1b4a 100644
--- a/tools/editor/icons/icon_connect.png
+++ b/tools/editor/icons/icon_connect.png
Binary files differ
diff --git a/tools/editor/icons/icon_connection_and_groups.png b/tools/editor/icons/icon_connection_and_groups.png
new file mode 100644
index 0000000000..c32ddc2ae6
--- /dev/null
+++ b/tools/editor/icons/icon_connection_and_groups.png
Binary files differ
diff --git a/tools/editor/icons/icon_container.png b/tools/editor/icons/icon_container.png
new file mode 100644
index 0000000000..31985c5b46
--- /dev/null
+++ b/tools/editor/icons/icon_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_control.png b/tools/editor/icons/icon_control.png
index 23e4ee6191..cef5961f05 100644
--- a/tools/editor/icons/icon_control.png
+++ b/tools/editor/icons/icon_control.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_bottom_center.png b/tools/editor/icons/icon_control_align_bottom_center.png
index 5ce9fe5c1c..fb18804db8 100644
--- a/tools/editor/icons/icon_control_align_bottom_center.png
+++ b/tools/editor/icons/icon_control_align_bottom_center.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_bottom_left.png b/tools/editor/icons/icon_control_align_bottom_left.png
index 6c5129bf95..d0b4bed896 100644
--- a/tools/editor/icons/icon_control_align_bottom_left.png
+++ b/tools/editor/icons/icon_control_align_bottom_left.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_bottom_right.png b/tools/editor/icons/icon_control_align_bottom_right.png
index 8857f4e940..e098493415 100644
--- a/tools/editor/icons/icon_control_align_bottom_right.png
+++ b/tools/editor/icons/icon_control_align_bottom_right.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_bottom_wide.png b/tools/editor/icons/icon_control_align_bottom_wide.png
index 56f009b8e4..44f5405737 100644
--- a/tools/editor/icons/icon_control_align_bottom_wide.png
+++ b/tools/editor/icons/icon_control_align_bottom_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_center.png b/tools/editor/icons/icon_control_align_center.png
index acd42525fa..4156db40fd 100644
--- a/tools/editor/icons/icon_control_align_center.png
+++ b/tools/editor/icons/icon_control_align_center.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_center_left.png b/tools/editor/icons/icon_control_align_center_left.png
index 997074b097..b8d527e27a 100644
--- a/tools/editor/icons/icon_control_align_center_left.png
+++ b/tools/editor/icons/icon_control_align_center_left.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_center_right.png b/tools/editor/icons/icon_control_align_center_right.png
index b5cae63f7a..251fbcd314 100644
--- a/tools/editor/icons/icon_control_align_center_right.png
+++ b/tools/editor/icons/icon_control_align_center_right.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_left_center.png b/tools/editor/icons/icon_control_align_left_center.png
index 7bb4dfb567..d22cff3f18 100644
--- a/tools/editor/icons/icon_control_align_left_center.png
+++ b/tools/editor/icons/icon_control_align_left_center.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_left_wide.png b/tools/editor/icons/icon_control_align_left_wide.png
index 1b0a6cff95..f95b8ead02 100644
--- a/tools/editor/icons/icon_control_align_left_wide.png
+++ b/tools/editor/icons/icon_control_align_left_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_right_center.png b/tools/editor/icons/icon_control_align_right_center.png
index cf12d44c6a..4fc5a34b79 100644
--- a/tools/editor/icons/icon_control_align_right_center.png
+++ b/tools/editor/icons/icon_control_align_right_center.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_right_wide.png b/tools/editor/icons/icon_control_align_right_wide.png
index 406ed25aed..a21b7da5d5 100644
--- a/tools/editor/icons/icon_control_align_right_wide.png
+++ b/tools/editor/icons/icon_control_align_right_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_top_center.png b/tools/editor/icons/icon_control_align_top_center.png
index da7ede984a..afe8936d68 100644
--- a/tools/editor/icons/icon_control_align_top_center.png
+++ b/tools/editor/icons/icon_control_align_top_center.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_top_left.png b/tools/editor/icons/icon_control_align_top_left.png
index 84a224fbbe..45153eec41 100644
--- a/tools/editor/icons/icon_control_align_top_left.png
+++ b/tools/editor/icons/icon_control_align_top_left.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_top_right.png b/tools/editor/icons/icon_control_align_top_right.png
index 3b58eead9c..4aaa97f392 100644
--- a/tools/editor/icons/icon_control_align_top_right.png
+++ b/tools/editor/icons/icon_control_align_top_right.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_top_wide.png b/tools/editor/icons/icon_control_align_top_wide.png
index 869ae26134..79e2bb98b0 100644
--- a/tools/editor/icons/icon_control_align_top_wide.png
+++ b/tools/editor/icons/icon_control_align_top_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_align_wide.png b/tools/editor/icons/icon_control_align_wide.png
index 57a2933b25..603d0c1b0b 100644
--- a/tools/editor/icons/icon_control_align_wide.png
+++ b/tools/editor/icons/icon_control_align_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_hcenter_wide.png b/tools/editor/icons/icon_control_hcenter_wide.png
index 739ea5baeb..f147cc7562 100644
--- a/tools/editor/icons/icon_control_hcenter_wide.png
+++ b/tools/editor/icons/icon_control_hcenter_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_control_vcenter_wide.png b/tools/editor/icons/icon_control_vcenter_wide.png
index 44cbb8f344..aef4f094db 100644
--- a/tools/editor/icons/icon_control_vcenter_wide.png
+++ b/tools/editor/icons/icon_control_vcenter_wide.png
Binary files differ
diff --git a/tools/editor/icons/icon_convex_polygon_shape.png b/tools/editor/icons/icon_convex_polygon_shape.png
index 1f2e1bf2a8..91a270e3b5 100644
--- a/tools/editor/icons/icon_convex_polygon_shape.png
+++ b/tools/editor/icons/icon_convex_polygon_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_create_new_scene_from.png b/tools/editor/icons/icon_create_new_scene_from.png
index e747c4f59f..dadc09af95 100644
--- a/tools/editor/icons/icon_create_new_scene_from.png
+++ b/tools/editor/icons/icon_create_new_scene_from.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_close.png b/tools/editor/icons/icon_curve_close.png
index 9ee92badba..cd89dc74dd 100644
--- a/tools/editor/icons/icon_curve_close.png
+++ b/tools/editor/icons/icon_curve_close.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_constant.png b/tools/editor/icons/icon_curve_constant.png
index cdeac1785e..507f25ff58 100644
--- a/tools/editor/icons/icon_curve_constant.png
+++ b/tools/editor/icons/icon_curve_constant.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_create.png b/tools/editor/icons/icon_curve_create.png
index 61f785c704..073726b0db 100644
--- a/tools/editor/icons/icon_curve_create.png
+++ b/tools/editor/icons/icon_curve_create.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_curve.png b/tools/editor/icons/icon_curve_curve.png
index 52625a3438..816d2bdb1c 100644
--- a/tools/editor/icons/icon_curve_curve.png
+++ b/tools/editor/icons/icon_curve_curve.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_delete.png b/tools/editor/icons/icon_curve_delete.png
index 8d3b1ec1f8..f6083e7edd 100644
--- a/tools/editor/icons/icon_curve_delete.png
+++ b/tools/editor/icons/icon_curve_delete.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_edit.png b/tools/editor/icons/icon_curve_edit.png
index 0c50f586c7..3bdc558948 100644
--- a/tools/editor/icons/icon_curve_edit.png
+++ b/tools/editor/icons/icon_curve_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_in.png b/tools/editor/icons/icon_curve_in.png
index 2db202632e..bc63a3e04b 100644
--- a/tools/editor/icons/icon_curve_in.png
+++ b/tools/editor/icons/icon_curve_in.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_in_out.png b/tools/editor/icons/icon_curve_in_out.png
index f4cb593496..594d3410c4 100644
--- a/tools/editor/icons/icon_curve_in_out.png
+++ b/tools/editor/icons/icon_curve_in_out.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_linear.png b/tools/editor/icons/icon_curve_linear.png
index 9467dc97a3..22854cf09b 100644
--- a/tools/editor/icons/icon_curve_linear.png
+++ b/tools/editor/icons/icon_curve_linear.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_out.png b/tools/editor/icons/icon_curve_out.png
index c91ade6f4a..5030c9a688 100644
--- a/tools/editor/icons/icon_curve_out.png
+++ b/tools/editor/icons/icon_curve_out.png
Binary files differ
diff --git a/tools/editor/icons/icon_curve_out_in.png b/tools/editor/icons/icon_curve_out_in.png
index 6499fa753e..0fff9104e9 100644
--- a/tools/editor/icons/icon_curve_out_in.png
+++ b/tools/editor/icons/icon_curve_out_in.png
Binary files differ
diff --git a/tools/editor/icons/icon_damped_spring_joint_2d.png b/tools/editor/icons/icon_damped_spring_joint_2d.png
index 8a56e8b1ed..4daca03751 100644
--- a/tools/editor/icons/icon_damped_spring_joint_2d.png
+++ b/tools/editor/icons/icon_damped_spring_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_debug_continue.png b/tools/editor/icons/icon_debug_continue.png
index 83b06210fb..ba05f3bd6e 100644
--- a/tools/editor/icons/icon_debug_continue.png
+++ b/tools/editor/icons/icon_debug_continue.png
Binary files differ
diff --git a/tools/editor/icons/icon_debug_next.png b/tools/editor/icons/icon_debug_next.png
index 3eadd7517a..671cce15e7 100644
--- a/tools/editor/icons/icon_debug_next.png
+++ b/tools/editor/icons/icon_debug_next.png
Binary files differ
diff --git a/tools/editor/icons/icon_debug_step.png b/tools/editor/icons/icon_debug_step.png
index 8d3a69ae85..14e10b7390 100644
--- a/tools/editor/icons/icon_debug_step.png
+++ b/tools/editor/icons/icon_debug_step.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_changed.png b/tools/editor/icons/icon_dependency_changed.png
index ecf8a011cf..78aedd4019 100644
--- a/tools/editor/icons/icon_dependency_changed.png
+++ b/tools/editor/icons/icon_dependency_changed.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_changed_hl.png b/tools/editor/icons/icon_dependency_changed_hl.png
index a5e6adfe56..838f5740b0 100644
--- a/tools/editor/icons/icon_dependency_changed_hl.png
+++ b/tools/editor/icons/icon_dependency_changed_hl.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_local_changed.png b/tools/editor/icons/icon_dependency_local_changed.png
index 8630f36450..f5db031c19 100644
--- a/tools/editor/icons/icon_dependency_local_changed.png
+++ b/tools/editor/icons/icon_dependency_local_changed.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_local_changed_hl.png b/tools/editor/icons/icon_dependency_local_changed_hl.png
index 825b047ca6..68f0e1ab7d 100644
--- a/tools/editor/icons/icon_dependency_local_changed_hl.png
+++ b/tools/editor/icons/icon_dependency_local_changed_hl.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_ok.png b/tools/editor/icons/icon_dependency_ok.png
index f4d4c9ea29..c2f62c0b00 100644
--- a/tools/editor/icons/icon_dependency_ok.png
+++ b/tools/editor/icons/icon_dependency_ok.png
Binary files differ
diff --git a/tools/editor/icons/icon_dependency_ok_hl.png b/tools/editor/icons/icon_dependency_ok_hl.png
index d590bb763d..956617c923 100644
--- a/tools/editor/icons/icon_dependency_ok_hl.png
+++ b/tools/editor/icons/icon_dependency_ok_hl.png
Binary files differ
diff --git a/tools/editor/icons/icon_directional_light.png b/tools/editor/icons/icon_directional_light.png
index 766f5934e6..9ff67750e3 100644
--- a/tools/editor/icons/icon_directional_light.png
+++ b/tools/editor/icons/icon_directional_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_down.png b/tools/editor/icons/icon_down.png
index 908e06836b..d2fcdb4c9f 100644
--- a/tools/editor/icons/icon_down.png
+++ b/tools/editor/icons/icon_down.png
Binary files differ
diff --git a/tools/editor/icons/icon_duplicate.png b/tools/editor/icons/icon_duplicate.png
index f854a14fd3..1742586414 100644
--- a/tools/editor/icons/icon_duplicate.png
+++ b/tools/editor/icons/icon_duplicate.png
Binary files differ
diff --git a/tools/editor/icons/icon_dynamic_font.png b/tools/editor/icons/icon_dynamic_font.png
index 52b423f75b..223d66921e 100644
--- a/tools/editor/icons/icon_dynamic_font.png
+++ b/tools/editor/icons/icon_dynamic_font.png
Binary files differ
diff --git a/tools/editor/icons/icon_dynamic_font_data.png b/tools/editor/icons/icon_dynamic_font_data.png
index 568349e4db..f99a0ddc52 100644
--- a/tools/editor/icons/icon_dynamic_font_data.png
+++ b/tools/editor/icons/icon_dynamic_font_data.png
Binary files differ
diff --git a/tools/editor/icons/icon_edit.png b/tools/editor/icons/icon_edit.png
index 157f785b83..e29a543dae 100644
--- a/tools/editor/icons/icon_edit.png
+++ b/tools/editor/icons/icon_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_edit_key.png b/tools/editor/icons/icon_edit_key.png
index 9ab1287fc6..d6743bc127 100644
--- a/tools/editor/icons/icon_edit_key.png
+++ b/tools/editor/icons/icon_edit_key.png
Binary files differ
diff --git a/tools/editor/icons/icon_edit_pivot.png b/tools/editor/icons/icon_edit_pivot.png
index d68f7bbf25..772e28d849 100644
--- a/tools/editor/icons/icon_edit_pivot.png
+++ b/tools/editor/icons/icon_edit_pivot.png
Binary files differ
diff --git a/tools/editor/icons/icon_edit_resource.png b/tools/editor/icons/icon_edit_resource.png
index 31d0c68fc6..890c6758be 100644
--- a/tools/editor/icons/icon_edit_resource.png
+++ b/tools/editor/icons/icon_edit_resource.png
Binary files differ
diff --git a/tools/editor/icons/icon_editor_3d_handle.png b/tools/editor/icons/icon_editor_3d_handle.png
index 7af2c734e3..f52b53f53a 100644
--- a/tools/editor/icons/icon_editor_3d_handle.png
+++ b/tools/editor/icons/icon_editor_3d_handle.png
Binary files differ
diff --git a/tools/editor/icons/icon_editor_handle.png b/tools/editor/icons/icon_editor_handle.png
index a562f9b34c..0acfdf4a1d 100644
--- a/tools/editor/icons/icon_editor_handle.png
+++ b/tools/editor/icons/icon_editor_handle.png
Binary files differ
diff --git a/tools/editor/icons/icon_editor_pivot.png b/tools/editor/icons/icon_editor_pivot.png
index d44526f301..f653c3903f 100644
--- a/tools/editor/icons/icon_editor_pivot.png
+++ b/tools/editor/icons/icon_editor_pivot.png
Binary files differ
diff --git a/tools/editor/icons/icon_editor_plugin.png b/tools/editor/icons/icon_editor_plugin.png
new file mode 100644
index 0000000000..fd1405602c
--- /dev/null
+++ b/tools/editor/icons/icon_editor_plugin.png
Binary files differ
diff --git a/tools/editor/icons/icon_enum.png b/tools/editor/icons/icon_enum.png
index ac36c96e28..415857f3c5 100644
--- a/tools/editor/icons/icon_enum.png
+++ b/tools/editor/icons/icon_enum.png
Binary files differ
diff --git a/tools/editor/icons/icon_error.png b/tools/editor/icons/icon_error.png
index 6c4e78e480..f3c09dbfba 100644
--- a/tools/editor/icons/icon_error.png
+++ b/tools/editor/icons/icon_error.png
Binary files differ
diff --git a/tools/editor/icons/icon_error_sign.png b/tools/editor/icons/icon_error_sign.png
index 751175e74d..1846965756 100644
--- a/tools/editor/icons/icon_error_sign.png
+++ b/tools/editor/icons/icon_error_sign.png
Binary files differ
diff --git a/tools/editor/icons/icon_event_player.png b/tools/editor/icons/icon_event_player.png
index 68646b3dfe..43cd63c292 100644
--- a/tools/editor/icons/icon_event_player.png
+++ b/tools/editor/icons/icon_event_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_favorites.png b/tools/editor/icons/icon_favorites.png
index 4a3b575f95..890d25f4fc 100644
--- a/tools/editor/icons/icon_favorites.png
+++ b/tools/editor/icons/icon_favorites.png
Binary files differ
diff --git a/tools/editor/icons/icon_file.png b/tools/editor/icons/icon_file.png
index bd5d84a9d6..5407b500cc 100644
--- a/tools/editor/icons/icon_file.png
+++ b/tools/editor/icons/icon_file.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_big.png b/tools/editor/icons/icon_file_big.png
index 887a4ee05c..9680f601fe 100644
--- a/tools/editor/icons/icon_file_big.png
+++ b/tools/editor/icons/icon_file_big.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_dialog.png b/tools/editor/icons/icon_file_dialog.png
index 62ad0404eb..5e9ef64420 100644
--- a/tools/editor/icons/icon_file_dialog.png
+++ b/tools/editor/icons/icon_file_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_list.png b/tools/editor/icons/icon_file_list.png
index ab790a85a5..415857f3c5 100644
--- a/tools/editor/icons/icon_file_list.png
+++ b/tools/editor/icons/icon_file_list.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_server.png b/tools/editor/icons/icon_file_server.png
index 4bd94fa8c8..c4c618255a 100644
--- a/tools/editor/icons/icon_file_server.png
+++ b/tools/editor/icons/icon_file_server.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_server_active.png b/tools/editor/icons/icon_file_server_active.png
index 0987bb9978..e6dbf9b495 100644
--- a/tools/editor/icons/icon_file_server_active.png
+++ b/tools/editor/icons/icon_file_server_active.png
Binary files differ
diff --git a/tools/editor/icons/icon_file_thumbnail.png b/tools/editor/icons/icon_file_thumbnail.png
index c32be5e8f8..8293bab902 100644
--- a/tools/editor/icons/icon_file_thumbnail.png
+++ b/tools/editor/icons/icon_file_thumbnail.png
Binary files differ
diff --git a/tools/editor/icons/icon_filesystem.png b/tools/editor/icons/icon_filesystem.png
index 6841f9a792..523a675fc1 100644
--- a/tools/editor/icons/icon_filesystem.png
+++ b/tools/editor/icons/icon_filesystem.png
Binary files differ
diff --git a/tools/editor/icons/icon_fixed_material.png b/tools/editor/icons/icon_fixed_material.png
index f43e2b7dcd..3f5e97b33d 100644
--- a/tools/editor/icons/icon_fixed_material.png
+++ b/tools/editor/icons/icon_fixed_material.png
Binary files differ
diff --git a/tools/editor/icons/icon_folder.png b/tools/editor/icons/icon_folder.png
index a450a7b297..2263028afe 100644
--- a/tools/editor/icons/icon_folder.png
+++ b/tools/editor/icons/icon_folder.png
Binary files differ
diff --git a/tools/editor/icons/icon_folder_big.png b/tools/editor/icons/icon_folder_big.png
index 988e070f98..8c39a99bd4 100644
--- a/tools/editor/icons/icon_folder_big.png
+++ b/tools/editor/icons/icon_folder_big.png
Binary files differ
diff --git a/tools/editor/icons/icon_font.png b/tools/editor/icons/icon_font.png
index 3ffe4f1b17..6ebc2f9e6b 100644
--- a/tools/editor/icons/icon_font.png
+++ b/tools/editor/icons/icon_font.png
Binary files differ
diff --git a/tools/editor/icons/icon_forward.png b/tools/editor/icons/icon_forward.png
index 14e8bc9a5a..e6d2d919be 100644
--- a/tools/editor/icons/icon_forward.png
+++ b/tools/editor/icons/icon_forward.png
Binary files differ
diff --git a/tools/editor/icons/icon_g_d_script.png b/tools/editor/icons/icon_g_d_script.png
index 88d865356c..0a7d7f0e4e 100644
--- a/tools/editor/icons/icon_g_d_script.png
+++ b/tools/editor/icons/icon_g_d_script.png
Binary files differ
diff --git a/tools/editor/icons/icon_gizmo_directional_light.png b/tools/editor/icons/icon_gizmo_directional_light.png
index 8584e1a4c9..6c72fcc8b0 100644
--- a/tools/editor/icons/icon_gizmo_directional_light.png
+++ b/tools/editor/icons/icon_gizmo_directional_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_gizmo_light.png b/tools/editor/icons/icon_gizmo_light.png
index 66f1854675..9d9c45348d 100644
--- a/tools/editor/icons/icon_gizmo_light.png
+++ b/tools/editor/icons/icon_gizmo_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_gizmo_spatial_sample_player.png b/tools/editor/icons/icon_gizmo_spatial_sample_player.png
index 61718721b8..8cc43f36d5 100644
--- a/tools/editor/icons/icon_gizmo_spatial_sample_player.png
+++ b/tools/editor/icons/icon_gizmo_spatial_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_gizmo_spatial_stream_player.png b/tools/editor/icons/icon_gizmo_spatial_stream_player.png
index 90bb795919..4cea13e4c0 100644
--- a/tools/editor/icons/icon_gizmo_spatial_stream_player.png
+++ b/tools/editor/icons/icon_gizmo_spatial_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_godot.png b/tools/editor/icons/icon_godot.png
index e80820fc10..3b6aac8b7e 100644
--- a/tools/editor/icons/icon_godot.png
+++ b/tools/editor/icons/icon_godot.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_color_ramp.png b/tools/editor/icons/icon_graph_color_ramp.png
index 9031b5ec53..f5fbda6d21 100644
--- a/tools/editor/icons/icon_graph_color_ramp.png
+++ b/tools/editor/icons/icon_graph_color_ramp.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_comment.png b/tools/editor/icons/icon_graph_comment.png
index bf7889c510..44fce1e5ba 100644
--- a/tools/editor/icons/icon_graph_comment.png
+++ b/tools/editor/icons/icon_graph_comment.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_cube_uniform.png b/tools/editor/icons/icon_graph_cube_uniform.png
index d1b92b4943..595054d7c1 100644
--- a/tools/editor/icons/icon_graph_cube_uniform.png
+++ b/tools/editor/icons/icon_graph_cube_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_curve_map.png b/tools/editor/icons/icon_graph_curve_map.png
index de5c32f09e..c89dea52fc 100644
--- a/tools/editor/icons/icon_graph_curve_map.png
+++ b/tools/editor/icons/icon_graph_curve_map.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_default_texture.png b/tools/editor/icons/icon_graph_default_texture.png
index da77ec9364..27830ab008 100644
--- a/tools/editor/icons/icon_graph_default_texture.png
+++ b/tools/editor/icons/icon_graph_default_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_edit.png b/tools/editor/icons/icon_graph_edit.png
new file mode 100644
index 0000000000..3f8bd3be25
--- /dev/null
+++ b/tools/editor/icons/icon_graph_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_input.png b/tools/editor/icons/icon_graph_input.png
index a396bc2350..91b51108c6 100644
--- a/tools/editor/icons/icon_graph_input.png
+++ b/tools/editor/icons/icon_graph_input.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_node.png b/tools/editor/icons/icon_graph_node.png
new file mode 100644
index 0000000000..0982154201
--- /dev/null
+++ b/tools/editor/icons/icon_graph_node.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_rgb.png b/tools/editor/icons/icon_graph_rgb.png
index abffaedd34..da4eacb63a 100644
--- a/tools/editor/icons/icon_graph_rgb.png
+++ b/tools/editor/icons/icon_graph_rgb.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_rgb_op.png b/tools/editor/icons/icon_graph_rgb_op.png
index 642fc838c2..1becf91f59 100644
--- a/tools/editor/icons/icon_graph_rgb_op.png
+++ b/tools/editor/icons/icon_graph_rgb_op.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_rgb_uniform.png b/tools/editor/icons/icon_graph_rgb_uniform.png
index 92c79997ef..e0c125cabb 100644
--- a/tools/editor/icons/icon_graph_rgb_uniform.png
+++ b/tools/editor/icons/icon_graph_rgb_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_scalar.png b/tools/editor/icons/icon_graph_scalar.png
index 028d0e9ea4..e07289a132 100644
--- a/tools/editor/icons/icon_graph_scalar.png
+++ b/tools/editor/icons/icon_graph_scalar.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_scalar_interp.png b/tools/editor/icons/icon_graph_scalar_interp.png
index 4f178a27c4..2f0159e01e 100644
--- a/tools/editor/icons/icon_graph_scalar_interp.png
+++ b/tools/editor/icons/icon_graph_scalar_interp.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_scalar_op.png b/tools/editor/icons/icon_graph_scalar_op.png
index 0fc4cae94c..17cb652bcc 100644
--- a/tools/editor/icons/icon_graph_scalar_op.png
+++ b/tools/editor/icons/icon_graph_scalar_op.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_scalar_uniform.png b/tools/editor/icons/icon_graph_scalar_uniform.png
index fc6590a8cf..56e047edff 100644
--- a/tools/editor/icons/icon_graph_scalar_uniform.png
+++ b/tools/editor/icons/icon_graph_scalar_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_scalars_to_vec.png b/tools/editor/icons/icon_graph_scalars_to_vec.png
index 7ca39a2f56..5d146ddc2b 100644
--- a/tools/editor/icons/icon_graph_scalars_to_vec.png
+++ b/tools/editor/icons/icon_graph_scalars_to_vec.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_texscreen.png b/tools/editor/icons/icon_graph_texscreen.png
index e183a8fa56..dcedd80d6b 100644
--- a/tools/editor/icons/icon_graph_texscreen.png
+++ b/tools/editor/icons/icon_graph_texscreen.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_texture_uniform.png b/tools/editor/icons/icon_graph_texture_uniform.png
index 7517ac1d92..711da8dbf1 100644
--- a/tools/editor/icons/icon_graph_texture_uniform.png
+++ b/tools/editor/icons/icon_graph_texture_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_time.png b/tools/editor/icons/icon_graph_time.png
index b61e45589f..489fec6779 100644
--- a/tools/editor/icons/icon_graph_time.png
+++ b/tools/editor/icons/icon_graph_time.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_dp.png b/tools/editor/icons/icon_graph_vec_dp.png
index 059c3025e7..4df4180332 100644
--- a/tools/editor/icons/icon_graph_vec_dp.png
+++ b/tools/editor/icons/icon_graph_vec_dp.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_interp.png b/tools/editor/icons/icon_graph_vec_interp.png
index daf7a00203..71f31c334a 100644
--- a/tools/editor/icons/icon_graph_vec_interp.png
+++ b/tools/editor/icons/icon_graph_vec_interp.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_length.png b/tools/editor/icons/icon_graph_vec_length.png
index 60ade8c90a..d0bf8e4f81 100644
--- a/tools/editor/icons/icon_graph_vec_length.png
+++ b/tools/editor/icons/icon_graph_vec_length.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_op.png b/tools/editor/icons/icon_graph_vec_op.png
index f2a7a51123..32f133dd9a 100644
--- a/tools/editor/icons/icon_graph_vec_op.png
+++ b/tools/editor/icons/icon_graph_vec_op.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_scalar_op.png b/tools/editor/icons/icon_graph_vec_scalar_op.png
index f0f4e7a196..6058e25908 100644
--- a/tools/editor/icons/icon_graph_vec_scalar_op.png
+++ b/tools/editor/icons/icon_graph_vec_scalar_op.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vec_to_scalars.png b/tools/editor/icons/icon_graph_vec_to_scalars.png
index a677a7cc53..1ccf50b6b7 100644
--- a/tools/editor/icons/icon_graph_vec_to_scalars.png
+++ b/tools/editor/icons/icon_graph_vec_to_scalars.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vecs_to_xform.png b/tools/editor/icons/icon_graph_vecs_to_xform.png
index 51216c93eb..e439bcd46b 100644
--- a/tools/editor/icons/icon_graph_vecs_to_xform.png
+++ b/tools/editor/icons/icon_graph_vecs_to_xform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vector.png b/tools/editor/icons/icon_graph_vector.png
index 9dfe47d757..04447e3f51 100644
--- a/tools/editor/icons/icon_graph_vector.png
+++ b/tools/editor/icons/icon_graph_vector.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_vector_uniform.png b/tools/editor/icons/icon_graph_vector_uniform.png
index 611539fca7..374518d163 100644
--- a/tools/editor/icons/icon_graph_vector_uniform.png
+++ b/tools/editor/icons/icon_graph_vector_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform.png b/tools/editor/icons/icon_graph_xform.png
index 22df472be4..df486fc638 100644
--- a/tools/editor/icons/icon_graph_xform.png
+++ b/tools/editor/icons/icon_graph_xform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_mult.png b/tools/editor/icons/icon_graph_xform_mult.png
index 5d0ce7982d..374ee6d568 100644
--- a/tools/editor/icons/icon_graph_xform_mult.png
+++ b/tools/editor/icons/icon_graph_xform_mult.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_scalar_func.png b/tools/editor/icons/icon_graph_xform_scalar_func.png
index e53f08a564..a0fd0e6351 100644
--- a/tools/editor/icons/icon_graph_xform_scalar_func.png
+++ b/tools/editor/icons/icon_graph_xform_scalar_func.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_to_vecs.png b/tools/editor/icons/icon_graph_xform_to_vecs.png
index 847261f726..19e9aea07b 100644
--- a/tools/editor/icons/icon_graph_xform_to_vecs.png
+++ b/tools/editor/icons/icon_graph_xform_to_vecs.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_uniform.png b/tools/editor/icons/icon_graph_xform_uniform.png
index 94c9759b25..7e20df22de 100644
--- a/tools/editor/icons/icon_graph_xform_uniform.png
+++ b/tools/editor/icons/icon_graph_xform_uniform.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_vec_func.png b/tools/editor/icons/icon_graph_xform_vec_func.png
index f3ba528896..23207a29e0 100644
--- a/tools/editor/icons/icon_graph_xform_vec_func.png
+++ b/tools/editor/icons/icon_graph_xform_vec_func.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_vec_imult.png b/tools/editor/icons/icon_graph_xform_vec_imult.png
index 7e7330cb8c..0866b1c772 100644
--- a/tools/editor/icons/icon_graph_xform_vec_imult.png
+++ b/tools/editor/icons/icon_graph_xform_vec_imult.png
Binary files differ
diff --git a/tools/editor/icons/icon_graph_xform_vec_mult.png b/tools/editor/icons/icon_graph_xform_vec_mult.png
index f80a28c80d..7373179ed2 100644
--- a/tools/editor/icons/icon_graph_xform_vec_mult.png
+++ b/tools/editor/icons/icon_graph_xform_vec_mult.png
Binary files differ
diff --git a/tools/editor/icons/icon_grid.png b/tools/editor/icons/icon_grid.png
index dcdd86c9b5..b98d1f7734 100644
--- a/tools/editor/icons/icon_grid.png
+++ b/tools/editor/icons/icon_grid.png
Binary files differ
diff --git a/tools/editor/icons/icon_grid_container.png b/tools/editor/icons/icon_grid_container.png
index bd181c4936..3a2feae631 100644
--- a/tools/editor/icons/icon_grid_container.png
+++ b/tools/editor/icons/icon_grid_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_grid_map.png b/tools/editor/icons/icon_grid_map.png
index f967242ad1..20d8ff7912 100644
--- a/tools/editor/icons/icon_grid_map.png
+++ b/tools/editor/icons/icon_grid_map.png
Binary files differ
diff --git a/tools/editor/icons/icon_groove_joint_2d.png b/tools/editor/icons/icon_groove_joint_2d.png
index 090859a5ee..eb568d1126 100644
--- a/tools/editor/icons/icon_groove_joint_2d.png
+++ b/tools/editor/icons/icon_groove_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_group.png b/tools/editor/icons/icon_group.png
index d43b4958c9..de644eefa4 100644
--- a/tools/editor/icons/icon_group.png
+++ b/tools/editor/icons/icon_group.png
Binary files differ
diff --git a/tools/editor/icons/icon_groups.png b/tools/editor/icons/icon_groups.png
index f4386821ed..de16f2b7c8 100644
--- a/tools/editor/icons/icon_groups.png
+++ b/tools/editor/icons/icon_groups.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_box_container.png b/tools/editor/icons/icon_h_box_container.png
index fe67ecef21..576dc4405e 100644
--- a/tools/editor/icons/icon_h_box_container.png
+++ b/tools/editor/icons/icon_h_box_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_button_array.png b/tools/editor/icons/icon_h_button_array.png
index aa71e4e212..2f29a5ae30 100644
--- a/tools/editor/icons/icon_h_button_array.png
+++ b/tools/editor/icons/icon_h_button_array.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_scroll_bar.png b/tools/editor/icons/icon_h_scroll_bar.png
index 98922a56f1..c9adc582db 100644
--- a/tools/editor/icons/icon_h_scroll_bar.png
+++ b/tools/editor/icons/icon_h_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_separator.png b/tools/editor/icons/icon_h_separator.png
index 243a37f22c..daf232c695 100644
--- a/tools/editor/icons/icon_h_separator.png
+++ b/tools/editor/icons/icon_h_separator.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_slider.png b/tools/editor/icons/icon_h_slider.png
index 4ed777b450..00d92bc647 100644
--- a/tools/editor/icons/icon_h_slider.png
+++ b/tools/editor/icons/icon_h_slider.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_split_container.png b/tools/editor/icons/icon_h_split_container.png
index 62acd643b4..208dbc813a 100644
--- a/tools/editor/icons/icon_h_split_container.png
+++ b/tools/editor/icons/icon_h_split_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_h_t_t_p_request.png b/tools/editor/icons/icon_h_t_t_p_request.png
index 6c7f1885ce..4dd712c886 100644
--- a/tools/editor/icons/icon_h_t_t_p_request.png
+++ b/tools/editor/icons/icon_h_t_t_p_request.png
Binary files differ
diff --git a/tools/editor/icons/icon_help.png b/tools/editor/icons/icon_help.png
index d2085589ae..e3360dad9c 100644
--- a/tools/editor/icons/icon_help.png
+++ b/tools/editor/icons/icon_help.png
Binary files differ
diff --git a/tools/editor/icons/icon_hidden.png b/tools/editor/icons/icon_hidden.png
index e51b9ad03a..d147f2317b 100644
--- a/tools/editor/icons/icon_hidden.png
+++ b/tools/editor/icons/icon_hidden.png
Binary files differ
diff --git a/tools/editor/icons/icon_history.png b/tools/editor/icons/icon_history.png
index 5c306c3ac9..ffb0eb0c1c 100644
--- a/tools/editor/icons/icon_history.png
+++ b/tools/editor/icons/icon_history.png
Binary files differ
diff --git a/tools/editor/icons/icon_hsize.png b/tools/editor/icons/icon_hsize.png
index 85be098446..56e63e4100 100644
--- a/tools/editor/icons/icon_hsize.png
+++ b/tools/editor/icons/icon_hsize.png
Binary files differ
diff --git a/tools/editor/icons/icon_image.png b/tools/editor/icons/icon_image.png
index 5919ca8c6d..b9961a56ac 100644
--- a/tools/editor/icons/icon_image.png
+++ b/tools/editor/icons/icon_image.png
Binary files differ
diff --git a/tools/editor/icons/icon_image_texture.png b/tools/editor/icons/icon_image_texture.png
index b87e284a52..fac47441ed 100644
--- a/tools/editor/icons/icon_image_texture.png
+++ b/tools/editor/icons/icon_image_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_immediate_geometry.png b/tools/editor/icons/icon_immediate_geometry.png
index e7fa8a9e42..768be1c8c9 100644
--- a/tools/editor/icons/icon_immediate_geometry.png
+++ b/tools/editor/icons/icon_immediate_geometry.png
Binary files differ
diff --git a/tools/editor/icons/icon_import_check.png b/tools/editor/icons/icon_import_check.png
index 91556f6117..783253e0fc 100644
--- a/tools/editor/icons/icon_import_check.png
+++ b/tools/editor/icons/icon_import_check.png
Binary files differ
diff --git a/tools/editor/icons/icon_import_fail.png b/tools/editor/icons/icon_import_fail.png
index e758f7fd32..9481451e37 100644
--- a/tools/editor/icons/icon_import_fail.png
+++ b/tools/editor/icons/icon_import_fail.png
Binary files differ
diff --git a/tools/editor/icons/icon_instance.png b/tools/editor/icons/icon_instance.png
index 82d8d41812..6d50ec4ecb 100644
--- a/tools/editor/icons/icon_instance.png
+++ b/tools/editor/icons/icon_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_instance_options.png b/tools/editor/icons/icon_instance_options.png
index 9108448095..6d4e15bae4 100644
--- a/tools/editor/icons/icon_instance_options.png
+++ b/tools/editor/icons/icon_instance_options.png
Binary files differ
diff --git a/tools/editor/icons/icon_integer.png b/tools/editor/icons/icon_integer.png
index b49390aeb1..a2e3a46591 100644
--- a/tools/editor/icons/icon_integer.png
+++ b/tools/editor/icons/icon_integer.png
Binary files differ
diff --git a/tools/editor/icons/icon_interp_cubic.png b/tools/editor/icons/icon_interp_cubic.png
index a946d70947..19f7282031 100644
--- a/tools/editor/icons/icon_interp_cubic.png
+++ b/tools/editor/icons/icon_interp_cubic.png
Binary files differ
diff --git a/tools/editor/icons/icon_interp_linear.png b/tools/editor/icons/icon_interp_linear.png
index 9174af39e7..f3293ac6b5 100644
--- a/tools/editor/icons/icon_interp_linear.png
+++ b/tools/editor/icons/icon_interp_linear.png
Binary files differ
diff --git a/tools/editor/icons/icon_interp_raw.png b/tools/editor/icons/icon_interp_raw.png
index f12936493b..f5a54461af 100644
--- a/tools/editor/icons/icon_interp_raw.png
+++ b/tools/editor/icons/icon_interp_raw.png
Binary files differ
diff --git a/tools/editor/icons/icon_inverse_kinematics.png b/tools/editor/icons/icon_inverse_kinematics.png
new file mode 100644
index 0000000000..30f542bf2f
--- /dev/null
+++ b/tools/editor/icons/icon_inverse_kinematics.png
Binary files differ
diff --git a/tools/editor/icons/icon_item_list.png b/tools/editor/icons/icon_item_list.png
index f930e7ecaa..7a041dc414 100644
--- a/tools/editor/icons/icon_item_list.png
+++ b/tools/editor/icons/icon_item_list.png
Binary files differ
diff --git a/tools/editor/icons/icon_joy_axis.png b/tools/editor/icons/icon_joy_axis.png
index fa4c8d6016..82167ba40b 100644
--- a/tools/editor/icons/icon_joy_axis.png
+++ b/tools/editor/icons/icon_joy_axis.png
Binary files differ
diff --git a/tools/editor/icons/icon_joy_button.png b/tools/editor/icons/icon_joy_button.png
index 43052d22a6..be43a6d3d5 100644
--- a/tools/editor/icons/icon_joy_button.png
+++ b/tools/editor/icons/icon_joy_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_joystick.png b/tools/editor/icons/icon_joystick.png
index fae60e6697..16838ec3ec 100644
--- a/tools/editor/icons/icon_joystick.png
+++ b/tools/editor/icons/icon_joystick.png
Binary files differ
diff --git a/tools/editor/icons/icon_key.png b/tools/editor/icons/icon_key.png
index d6096ef41f..d50e48d6d0 100644
--- a/tools/editor/icons/icon_key.png
+++ b/tools/editor/icons/icon_key.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_hover.png b/tools/editor/icons/icon_key_hover.png
index 36d6815756..2f99cc43ca 100644
--- a/tools/editor/icons/icon_key_hover.png
+++ b/tools/editor/icons/icon_key_hover.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_invalid.png b/tools/editor/icons/icon_key_invalid.png
index e8e6c87180..f771ac8059 100644
--- a/tools/editor/icons/icon_key_invalid.png
+++ b/tools/editor/icons/icon_key_invalid.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_next.png b/tools/editor/icons/icon_key_next.png
index 759008d064..6d4bb3a588 100644
--- a/tools/editor/icons/icon_key_next.png
+++ b/tools/editor/icons/icon_key_next.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_selected.png b/tools/editor/icons/icon_key_selected.png
index 562beef98a..6e62d5ec51 100644
--- a/tools/editor/icons/icon_key_selected.png
+++ b/tools/editor/icons/icon_key_selected.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_value.png b/tools/editor/icons/icon_key_value.png
index 72e786211a..df02e1c93f 100644
--- a/tools/editor/icons/icon_key_value.png
+++ b/tools/editor/icons/icon_key_value.png
Binary files differ
diff --git a/tools/editor/icons/icon_key_xform.png b/tools/editor/icons/icon_key_xform.png
index 2cdcb1f80d..61abd92c07 100644
--- a/tools/editor/icons/icon_key_xform.png
+++ b/tools/editor/icons/icon_key_xform.png
Binary files differ
diff --git a/tools/editor/icons/icon_keyboard.png b/tools/editor/icons/icon_keyboard.png
index d8aa2c4b0d..985da2c264 100644
--- a/tools/editor/icons/icon_keyboard.png
+++ b/tools/editor/icons/icon_keyboard.png
Binary files differ
diff --git a/tools/editor/icons/icon_kinematic_body.png b/tools/editor/icons/icon_kinematic_body.png
index 7feb38f6ba..2ab4d4bf8c 100644
--- a/tools/editor/icons/icon_kinematic_body.png
+++ b/tools/editor/icons/icon_kinematic_body.png
Binary files differ
diff --git a/tools/editor/icons/icon_kinematic_body_2d.png b/tools/editor/icons/icon_kinematic_body_2d.png
index 3d8e09a179..6052f24ef7 100644
--- a/tools/editor/icons/icon_kinematic_body_2d.png
+++ b/tools/editor/icons/icon_kinematic_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_label.png b/tools/editor/icons/icon_label.png
index 92b40600f1..9baececb3e 100644
--- a/tools/editor/icons/icon_label.png
+++ b/tools/editor/icons/icon_label.png
Binary files differ
diff --git a/tools/editor/icons/icon_light_2d.png b/tools/editor/icons/icon_light_2d.png
index 9162b33090..be5181654e 100644
--- a/tools/editor/icons/icon_light_2d.png
+++ b/tools/editor/icons/icon_light_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_light_occluder_2d.png b/tools/editor/icons/icon_light_occluder_2d.png
index c66dd536d3..c77904d7ae 100644
--- a/tools/editor/icons/icon_light_occluder_2d.png
+++ b/tools/editor/icons/icon_light_occluder_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_line_edit.png b/tools/editor/icons/icon_line_edit.png
index 78cc066302..730cbd9f32 100644
--- a/tools/editor/icons/icon_line_edit.png
+++ b/tools/editor/icons/icon_line_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_link_button.png b/tools/editor/icons/icon_link_button.png
index b6b9868e11..32b21f8eb0 100644
--- a/tools/editor/icons/icon_link_button.png
+++ b/tools/editor/icons/icon_link_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_list_select.png b/tools/editor/icons/icon_list_select.png
index cbe81d4328..8935e5c155 100644
--- a/tools/editor/icons/icon_list_select.png
+++ b/tools/editor/icons/icon_list_select.png
Binary files differ
diff --git a/tools/editor/icons/icon_load.png b/tools/editor/icons/icon_load.png
index a450a7b297..2263028afe 100644
--- a/tools/editor/icons/icon_load.png
+++ b/tools/editor/icons/icon_load.png
Binary files differ
diff --git a/tools/editor/icons/icon_lock.png b/tools/editor/icons/icon_lock.png
index 995d87b6fb..a741e13849 100644
--- a/tools/editor/icons/icon_lock.png
+++ b/tools/editor/icons/icon_lock.png
Binary files differ
diff --git a/tools/editor/icons/icon_loop.png b/tools/editor/icons/icon_loop.png
index 7bde451ca0..19d0fecd5c 100644
--- a/tools/editor/icons/icon_loop.png
+++ b/tools/editor/icons/icon_loop.png
Binary files differ
diff --git a/tools/editor/icons/icon_main_play.png b/tools/editor/icons/icon_main_play.png
index 9e8cc6c4a9..24d6c50823 100644
--- a/tools/editor/icons/icon_main_play.png
+++ b/tools/editor/icons/icon_main_play.png
Binary files differ
diff --git a/tools/editor/icons/icon_main_stop.png b/tools/editor/icons/icon_main_stop.png
index 31a6cd601e..adcedfc6ce 100644
--- a/tools/editor/icons/icon_main_stop.png
+++ b/tools/editor/icons/icon_main_stop.png
Binary files differ
diff --git a/tools/editor/icons/icon_margin_container.png b/tools/editor/icons/icon_margin_container.png
index 43f1fb8f79..079ffce48b 100644
--- a/tools/editor/icons/icon_margin_container.png
+++ b/tools/editor/icons/icon_margin_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_cube.png b/tools/editor/icons/icon_material_preview_cube.png
new file mode 100644
index 0000000000..941c9904ea
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_cube.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_cube_off.png b/tools/editor/icons/icon_material_preview_cube_off.png
new file mode 100644
index 0000000000..9d6d5171d1
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_cube_off.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_light_1.png b/tools/editor/icons/icon_material_preview_light_1.png
new file mode 100644
index 0000000000..587845eca7
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_light_1.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_light_1_off.png b/tools/editor/icons/icon_material_preview_light_1_off.png
new file mode 100644
index 0000000000..91f7f9c2f2
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_light_1_off.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_light_2.png b/tools/editor/icons/icon_material_preview_light_2.png
new file mode 100644
index 0000000000..9f9e0a5f0e
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_light_2.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_light_2_off.png b/tools/editor/icons/icon_material_preview_light_2_off.png
new file mode 100644
index 0000000000..e18b4be703
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_light_2_off.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_sphere.png b/tools/editor/icons/icon_material_preview_sphere.png
new file mode 100644
index 0000000000..5236c65fb7
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_sphere.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_preview_sphere_off.png b/tools/editor/icons/icon_material_preview_sphere_off.png
new file mode 100644
index 0000000000..0316a8588a
--- /dev/null
+++ b/tools/editor/icons/icon_material_preview_sphere_off.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_shader.png b/tools/editor/icons/icon_material_shader.png
index 0e476b2540..69da895997 100644
--- a/tools/editor/icons/icon_material_shader.png
+++ b/tools/editor/icons/icon_material_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_material_shader_graph.png b/tools/editor/icons/icon_material_shader_graph.png
index 68d8b4cb49..b9ebe7b028 100644
--- a/tools/editor/icons/icon_material_shader_graph.png
+++ b/tools/editor/icons/icon_material_shader_graph.png
Binary files differ
diff --git a/tools/editor/icons/icon_matrix.png b/tools/editor/icons/icon_matrix.png
index d2e36b5534..f10a24be5f 100644
--- a/tools/editor/icons/icon_matrix.png
+++ b/tools/editor/icons/icon_matrix.png
Binary files differ
diff --git a/tools/editor/icons/icon_menu_button.png b/tools/editor/icons/icon_menu_button.png
index 52bc88e08f..989e1a0d88 100644
--- a/tools/editor/icons/icon_menu_button.png
+++ b/tools/editor/icons/icon_menu_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_mesh.png b/tools/editor/icons/icon_mesh.png
index dbb0157866..ebb34623a7 100644
--- a/tools/editor/icons/icon_mesh.png
+++ b/tools/editor/icons/icon_mesh.png
Binary files differ
diff --git a/tools/editor/icons/icon_mesh_instance.png b/tools/editor/icons/icon_mesh_instance.png
index eca0eafa32..45f7fae7a0 100644
--- a/tools/editor/icons/icon_mesh_instance.png
+++ b/tools/editor/icons/icon_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_mirror_x.png b/tools/editor/icons/icon_mirror_x.png
index 657e7f5458..56e63e4100 100644
--- a/tools/editor/icons/icon_mirror_x.png
+++ b/tools/editor/icons/icon_mirror_x.png
Binary files differ
diff --git a/tools/editor/icons/icon_mirror_y.png b/tools/editor/icons/icon_mirror_y.png
index 111aa5e4ae..e22477d93d 100644
--- a/tools/editor/icons/icon_mirror_y.png
+++ b/tools/editor/icons/icon_mirror_y.png
Binary files differ
diff --git a/tools/editor/icons/icon_mouse.png b/tools/editor/icons/icon_mouse.png
index 7b3487aac6..678efa2b04 100644
--- a/tools/editor/icons/icon_mouse.png
+++ b/tools/editor/icons/icon_mouse.png
Binary files differ
diff --git a/tools/editor/icons/icon_move_down.png b/tools/editor/icons/icon_move_down.png
index 06c7246084..a998a360c3 100644
--- a/tools/editor/icons/icon_move_down.png
+++ b/tools/editor/icons/icon_move_down.png
Binary files differ
diff --git a/tools/editor/icons/icon_move_point.png b/tools/editor/icons/icon_move_point.png
index b0e5215682..55820064c5 100644
--- a/tools/editor/icons/icon_move_point.png
+++ b/tools/editor/icons/icon_move_point.png
Binary files differ
diff --git a/tools/editor/icons/icon_move_up.png b/tools/editor/icons/icon_move_up.png
index ca6c64f7a1..3974957944 100644
--- a/tools/editor/icons/icon_move_up.png
+++ b/tools/editor/icons/icon_move_up.png
Binary files differ
diff --git a/tools/editor/icons/icon_multi_edit.png b/tools/editor/icons/icon_multi_edit.png
index 70faee3d6a..8422131694 100644
--- a/tools/editor/icons/icon_multi_edit.png
+++ b/tools/editor/icons/icon_multi_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_multi_line.png b/tools/editor/icons/icon_multi_line.png
index c3e77f0fbe..dfb67f522b 100644
--- a/tools/editor/icons/icon_multi_line.png
+++ b/tools/editor/icons/icon_multi_line.png
Binary files differ
diff --git a/tools/editor/icons/icon_multi_mesh.png b/tools/editor/icons/icon_multi_mesh.png
index 44d2788d84..6e68cd4da3 100644
--- a/tools/editor/icons/icon_multi_mesh.png
+++ b/tools/editor/icons/icon_multi_mesh.png
Binary files differ
diff --git a/tools/editor/icons/icon_multi_mesh_instance.png b/tools/editor/icons/icon_multi_mesh_instance.png
index b3ad2bc52e..5d5821f3c9 100644
--- a/tools/editor/icons/icon_multi_mesh_instance.png
+++ b/tools/editor/icons/icon_multi_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_multi_node_edit.png b/tools/editor/icons/icon_multi_node_edit.png
index 357c062cbd..8422131694 100644
--- a/tools/editor/icons/icon_multi_node_edit.png
+++ b/tools/editor/icons/icon_multi_node_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation.png b/tools/editor/icons/icon_navigation.png
index eeaa660f8d..ca36dff048 100644
--- a/tools/editor/icons/icon_navigation.png
+++ b/tools/editor/icons/icon_navigation.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation_2d.png b/tools/editor/icons/icon_navigation_2d.png
index 8170ecf68c..7dba2e67e7 100644
--- a/tools/editor/icons/icon_navigation_2d.png
+++ b/tools/editor/icons/icon_navigation_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation_mesh_instance.png b/tools/editor/icons/icon_navigation_mesh_instance.png
index 163bd0cdb3..b94723333b 100644
--- a/tools/editor/icons/icon_navigation_mesh_instance.png
+++ b/tools/editor/icons/icon_navigation_mesh_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_navigation_polygon_instance.png b/tools/editor/icons/icon_navigation_polygon_instance.png
index 9f9c318906..c7d58a4c50 100644
--- a/tools/editor/icons/icon_navigation_polygon_instance.png
+++ b/tools/editor/icons/icon_navigation_polygon_instance.png
Binary files differ
diff --git a/tools/editor/icons/icon_new.png b/tools/editor/icons/icon_new.png
index c04785fc3f..5407b500cc 100644
--- a/tools/editor/icons/icon_new.png
+++ b/tools/editor/icons/icon_new.png
Binary files differ
diff --git a/tools/editor/icons/icon_node.png b/tools/editor/icons/icon_node.png
index d8ce1b7538..0c0b030469 100644
--- a/tools/editor/icons/icon_node.png
+++ b/tools/editor/icons/icon_node.png
Binary files differ
diff --git a/tools/editor/icons/icon_node_2d.png b/tools/editor/icons/icon_node_2d.png
index b288cf1fa3..8214267643 100644
--- a/tools/editor/icons/icon_node_2d.png
+++ b/tools/editor/icons/icon_node_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_node_warning.png b/tools/editor/icons/icon_node_warning.png
new file mode 100644
index 0000000000..5f735a60a9
--- /dev/null
+++ b/tools/editor/icons/icon_node_warning.png
Binary files differ
diff --git a/tools/editor/icons/icon_non_favorite.png b/tools/editor/icons/icon_non_favorite.png
index edd806fbe8..ca11148388 100644
--- a/tools/editor/icons/icon_non_favorite.png
+++ b/tools/editor/icons/icon_non_favorite.png
Binary files differ
diff --git a/tools/editor/icons/icon_object.png b/tools/editor/icons/icon_object.png
index 8b35aa7f2f..5543ccc03f 100644
--- a/tools/editor/icons/icon_object.png
+++ b/tools/editor/icons/icon_object.png
Binary files differ
diff --git a/tools/editor/icons/icon_occluder_polygon_2d.png b/tools/editor/icons/icon_occluder_polygon_2d.png
index 705794b729..f27d7eb4cc 100644
--- a/tools/editor/icons/icon_occluder_polygon_2d.png
+++ b/tools/editor/icons/icon_occluder_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_omni_light.png b/tools/editor/icons/icon_omni_light.png
index 214e435d9e..9d00a75fbf 100644
--- a/tools/editor/icons/icon_omni_light.png
+++ b/tools/editor/icons/icon_omni_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_option_button.png b/tools/editor/icons/icon_option_button.png
index 65964adf36..878f78e53c 100644
--- a/tools/editor/icons/icon_option_button.png
+++ b/tools/editor/icons/icon_option_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_p_hash_translation.png b/tools/editor/icons/icon_p_hash_translation.png
index e18ef6a76f..7dfd00e83c 100644
--- a/tools/editor/icons/icon_p_hash_translation.png
+++ b/tools/editor/icons/icon_p_hash_translation.png
Binary files differ
diff --git a/tools/editor/icons/icon_packed_scene.png b/tools/editor/icons/icon_packed_scene.png
index c9802f2b66..89ed256ed2 100644
--- a/tools/editor/icons/icon_packed_scene.png
+++ b/tools/editor/icons/icon_packed_scene.png
Binary files differ
diff --git a/tools/editor/icons/icon_panel.png b/tools/editor/icons/icon_panel.png
index 6dcee0fa90..373ac480ed 100644
--- a/tools/editor/icons/icon_panel.png
+++ b/tools/editor/icons/icon_panel.png
Binary files differ
diff --git a/tools/editor/icons/icon_panel_container.png b/tools/editor/icons/icon_panel_container.png
new file mode 100644
index 0000000000..991db6ae63
--- /dev/null
+++ b/tools/editor/icons/icon_panel_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_1.png b/tools/editor/icons/icon_panels_1.png
index 546ca61c89..b38f324b22 100644
--- a/tools/editor/icons/icon_panels_1.png
+++ b/tools/editor/icons/icon_panels_1.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_2.png b/tools/editor/icons/icon_panels_2.png
index 5a4750bda2..cd8d51014c 100644
--- a/tools/editor/icons/icon_panels_2.png
+++ b/tools/editor/icons/icon_panels_2.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_2_alt.png b/tools/editor/icons/icon_panels_2_alt.png
index 2006f212ce..9563618164 100644
--- a/tools/editor/icons/icon_panels_2_alt.png
+++ b/tools/editor/icons/icon_panels_2_alt.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_3.png b/tools/editor/icons/icon_panels_3.png
index 13988de93a..5f77c97ec0 100644
--- a/tools/editor/icons/icon_panels_3.png
+++ b/tools/editor/icons/icon_panels_3.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_3_alt.png b/tools/editor/icons/icon_panels_3_alt.png
index 5195b799a5..2f57f9baa5 100644
--- a/tools/editor/icons/icon_panels_3_alt.png
+++ b/tools/editor/icons/icon_panels_3_alt.png
Binary files differ
diff --git a/tools/editor/icons/icon_panels_4.png b/tools/editor/icons/icon_panels_4.png
index c217330d43..e673290de7 100644
--- a/tools/editor/icons/icon_panels_4.png
+++ b/tools/editor/icons/icon_panels_4.png
Binary files differ
diff --git a/tools/editor/icons/icon_parallax_background.png b/tools/editor/icons/icon_parallax_background.png
new file mode 100644
index 0000000000..6fff88a438
--- /dev/null
+++ b/tools/editor/icons/icon_parallax_background.png
Binary files differ
diff --git a/tools/editor/icons/icon_parallax_layer.png b/tools/editor/icons/icon_parallax_layer.png
new file mode 100644
index 0000000000..0b3d051cb4
--- /dev/null
+++ b/tools/editor/icons/icon_parallax_layer.png
Binary files differ
diff --git a/tools/editor/icons/icon_particle_attractor_2d.png b/tools/editor/icons/icon_particle_attractor_2d.png
index bb66611e45..9fbee6dc2e 100644
--- a/tools/editor/icons/icon_particle_attractor_2d.png
+++ b/tools/editor/icons/icon_particle_attractor_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_particles.png b/tools/editor/icons/icon_particles.png
index 4abc04ecb8..a5322f0766 100644
--- a/tools/editor/icons/icon_particles.png
+++ b/tools/editor/icons/icon_particles.png
Binary files differ
diff --git a/tools/editor/icons/icon_particles_2d.png b/tools/editor/icons/icon_particles_2d.png
index b72160b9ce..e36f0038f5 100644
--- a/tools/editor/icons/icon_particles_2d.png
+++ b/tools/editor/icons/icon_particles_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_patch_9_frame.png b/tools/editor/icons/icon_patch_9_frame.png
index c8f38fa61a..0fb376c6f0 100644
--- a/tools/editor/icons/icon_patch_9_frame.png
+++ b/tools/editor/icons/icon_patch_9_frame.png
Binary files differ
diff --git a/tools/editor/icons/icon_path.png b/tools/editor/icons/icon_path.png
index 9b193c41bf..96d159523f 100644
--- a/tools/editor/icons/icon_path.png
+++ b/tools/editor/icons/icon_path.png
Binary files differ
diff --git a/tools/editor/icons/icon_path_2d.png b/tools/editor/icons/icon_path_2d.png
index 2a1e618469..cf31b39f28 100644
--- a/tools/editor/icons/icon_path_2d.png
+++ b/tools/editor/icons/icon_path_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_path_follow.png b/tools/editor/icons/icon_path_follow.png
index f1d8237f5a..ba132cf5fd 100644
--- a/tools/editor/icons/icon_path_follow.png
+++ b/tools/editor/icons/icon_path_follow.png
Binary files differ
diff --git a/tools/editor/icons/icon_path_follow_2d.png b/tools/editor/icons/icon_path_follow_2d.png
index ba95d15275..2866999067 100644
--- a/tools/editor/icons/icon_path_follow_2d.png
+++ b/tools/editor/icons/icon_path_follow_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_pause.png b/tools/editor/icons/icon_pause.png
index 7c0a57003e..411aba221b 100644
--- a/tools/editor/icons/icon_pause.png
+++ b/tools/editor/icons/icon_pause.png
Binary files differ
diff --git a/tools/editor/icons/icon_pin.png b/tools/editor/icons/icon_pin.png
index 4862ee8f71..ca42166827 100644
--- a/tools/editor/icons/icon_pin.png
+++ b/tools/editor/icons/icon_pin.png
Binary files differ
diff --git a/tools/editor/icons/icon_pin_joint.png b/tools/editor/icons/icon_pin_joint.png
index cdfae660d8..ec83680aaf 100644
--- a/tools/editor/icons/icon_pin_joint.png
+++ b/tools/editor/icons/icon_pin_joint.png
Binary files differ
diff --git a/tools/editor/icons/icon_pin_joint_2d.png b/tools/editor/icons/icon_pin_joint_2d.png
index 2f1ec59df4..c8fafb78d4 100644
--- a/tools/editor/icons/icon_pin_joint_2d.png
+++ b/tools/editor/icons/icon_pin_joint_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_pin_pressed.png b/tools/editor/icons/icon_pin_pressed.png
index 5738e6856f..ca42166827 100644
--- a/tools/editor/icons/icon_pin_pressed.png
+++ b/tools/editor/icons/icon_pin_pressed.png
Binary files differ
diff --git a/tools/editor/icons/icon_plane.png b/tools/editor/icons/icon_plane.png
index fbdc247e5a..e7506922f7 100644
--- a/tools/editor/icons/icon_plane.png
+++ b/tools/editor/icons/icon_plane.png
Binary files differ
diff --git a/tools/editor/icons/icon_plane_shape.png b/tools/editor/icons/icon_plane_shape.png
index ec7a3da4a4..92095caea8 100644
--- a/tools/editor/icons/icon_plane_shape.png
+++ b/tools/editor/icons/icon_plane_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_play.png b/tools/editor/icons/icon_play.png
index d2bd9d310c..c2f73c9fc3 100644
--- a/tools/editor/icons/icon_play.png
+++ b/tools/editor/icons/icon_play.png
Binary files differ
diff --git a/tools/editor/icons/icon_play_backwards.png b/tools/editor/icons/icon_play_backwards.png
index 8dff5f20e3..d1c9633ee6 100644
--- a/tools/editor/icons/icon_play_backwards.png
+++ b/tools/editor/icons/icon_play_backwards.png
Binary files differ
diff --git a/tools/editor/icons/icon_play_custom.png b/tools/editor/icons/icon_play_custom.png
index 8e8ab8c62a..635c5f496d 100644
--- a/tools/editor/icons/icon_play_custom.png
+++ b/tools/editor/icons/icon_play_custom.png
Binary files differ
diff --git a/tools/editor/icons/icon_play_scene.png b/tools/editor/icons/icon_play_scene.png
index 7079cc9677..45625755a4 100644
--- a/tools/editor/icons/icon_play_scene.png
+++ b/tools/editor/icons/icon_play_scene.png
Binary files differ
diff --git a/tools/editor/icons/icon_play_start.png b/tools/editor/icons/icon_play_start.png
index 5b085aa1ed..438c555e81 100644
--- a/tools/editor/icons/icon_play_start.png
+++ b/tools/editor/icons/icon_play_start.png
Binary files differ
diff --git a/tools/editor/icons/icon_play_start_backwards.png b/tools/editor/icons/icon_play_start_backwards.png
index 09afac637c..4cc1f75c20 100644
--- a/tools/editor/icons/icon_play_start_backwards.png
+++ b/tools/editor/icons/icon_play_start_backwards.png
Binary files differ
diff --git a/tools/editor/icons/icon_polygon_2d.png b/tools/editor/icons/icon_polygon_2d.png
index 9deb63a248..57c1453cc4 100644
--- a/tools/editor/icons/icon_polygon_2d.png
+++ b/tools/editor/icons/icon_polygon_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_popup.png b/tools/editor/icons/icon_popup.png
index a77a068986..bc6a18f143 100644
--- a/tools/editor/icons/icon_popup.png
+++ b/tools/editor/icons/icon_popup.png
Binary files differ
diff --git a/tools/editor/icons/icon_popup_dialog.png b/tools/editor/icons/icon_popup_dialog.png
index b6df84580d..11f574339e 100644
--- a/tools/editor/icons/icon_popup_dialog.png
+++ b/tools/editor/icons/icon_popup_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_popup_menu.png b/tools/editor/icons/icon_popup_menu.png
index 2050b933ae..2ab402f7ea 100644
--- a/tools/editor/icons/icon_popup_menu.png
+++ b/tools/editor/icons/icon_popup_menu.png
Binary files differ
diff --git a/tools/editor/icons/icon_popup_panel.png b/tools/editor/icons/icon_popup_panel.png
index 79c3c29a36..7e998e75f3 100644
--- a/tools/editor/icons/icon_popup_panel.png
+++ b/tools/editor/icons/icon_popup_panel.png
Binary files differ
diff --git a/tools/editor/icons/icon_portal.png b/tools/editor/icons/icon_portal.png
index 6f555a55a1..5fb5e379ca 100644
--- a/tools/editor/icons/icon_portal.png
+++ b/tools/editor/icons/icon_portal.png
Binary files differ
diff --git a/tools/editor/icons/icon_position_2d.png b/tools/editor/icons/icon_position_2d.png
index fd07e8f619..c2feb19c15 100644
--- a/tools/editor/icons/icon_position_2d.png
+++ b/tools/editor/icons/icon_position_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_position_3d.png b/tools/editor/icons/icon_position_3d.png
index 5941083308..45dffe46b3 100644
--- a/tools/editor/icons/icon_position_3d.png
+++ b/tools/editor/icons/icon_position_3d.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_1.png b/tools/editor/icons/icon_progress_1.png
index c28482ca92..7046af3ad9 100644
--- a/tools/editor/icons/icon_progress_1.png
+++ b/tools/editor/icons/icon_progress_1.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_2.png b/tools/editor/icons/icon_progress_2.png
index 1d898fe3e0..343d2b195d 100644
--- a/tools/editor/icons/icon_progress_2.png
+++ b/tools/editor/icons/icon_progress_2.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_3.png b/tools/editor/icons/icon_progress_3.png
index 2de0cfbc09..b0e8ab2335 100644
--- a/tools/editor/icons/icon_progress_3.png
+++ b/tools/editor/icons/icon_progress_3.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_4.png b/tools/editor/icons/icon_progress_4.png
index fe8dce245e..5e35386022 100644
--- a/tools/editor/icons/icon_progress_4.png
+++ b/tools/editor/icons/icon_progress_4.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_5.png b/tools/editor/icons/icon_progress_5.png
index f2417c38c6..ff4b50a05b 100644
--- a/tools/editor/icons/icon_progress_5.png
+++ b/tools/editor/icons/icon_progress_5.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_6.png b/tools/editor/icons/icon_progress_6.png
index 44d809e329..d1918d75fc 100644
--- a/tools/editor/icons/icon_progress_6.png
+++ b/tools/editor/icons/icon_progress_6.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_7.png b/tools/editor/icons/icon_progress_7.png
index 01b8409c1e..ea0dfca807 100644
--- a/tools/editor/icons/icon_progress_7.png
+++ b/tools/editor/icons/icon_progress_7.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_8.png b/tools/editor/icons/icon_progress_8.png
index fa7f81c137..5df3581462 100644
--- a/tools/editor/icons/icon_progress_8.png
+++ b/tools/editor/icons/icon_progress_8.png
Binary files differ
diff --git a/tools/editor/icons/icon_progress_bar.png b/tools/editor/icons/icon_progress_bar.png
index e4e93e8fe9..c6a9c456b7 100644
--- a/tools/editor/icons/icon_progress_bar.png
+++ b/tools/editor/icons/icon_progress_bar.png
Binary files differ
diff --git a/tools/editor/icons/icon_proximity_group.png b/tools/editor/icons/icon_proximity_group.png
index 63a6702db1..525e95edb3 100644
--- a/tools/editor/icons/icon_proximity_group.png
+++ b/tools/editor/icons/icon_proximity_group.png
Binary files differ
diff --git a/tools/editor/icons/icon_quad.png b/tools/editor/icons/icon_quad.png
index 7cef29496c..873ed7a8a3 100644
--- a/tools/editor/icons/icon_quad.png
+++ b/tools/editor/icons/icon_quad.png
Binary files differ
diff --git a/tools/editor/icons/icon_quat.png b/tools/editor/icons/icon_quat.png
index f09d2fcaba..44a9eada98 100644
--- a/tools/editor/icons/icon_quat.png
+++ b/tools/editor/icons/icon_quat.png
Binary files differ
diff --git a/tools/editor/icons/icon_range.png b/tools/editor/icons/icon_range.png
new file mode 100644
index 0000000000..1b7141012b
--- /dev/null
+++ b/tools/editor/icons/icon_range.png
Binary files differ
diff --git a/tools/editor/icons/icon_ray_cast.png b/tools/editor/icons/icon_ray_cast.png
index a53ef0b516..e22343873c 100644
--- a/tools/editor/icons/icon_ray_cast.png
+++ b/tools/editor/icons/icon_ray_cast.png
Binary files differ
diff --git a/tools/editor/icons/icon_ray_cast_2d.png b/tools/editor/icons/icon_ray_cast_2d.png
index 890f69b7cb..a90d89d53e 100644
--- a/tools/editor/icons/icon_ray_cast_2d.png
+++ b/tools/editor/icons/icon_ray_cast_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_ray_shape.png b/tools/editor/icons/icon_ray_shape.png
index 851d2ac7bf..3b6fbe52dc 100644
--- a/tools/editor/icons/icon_ray_shape.png
+++ b/tools/editor/icons/icon_ray_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_rayito.png b/tools/editor/icons/icon_rayito.png
index f0717fe068..0271816ffa 100644
--- a/tools/editor/icons/icon_rayito.png
+++ b/tools/editor/icons/icon_rayito.png
Binary files differ
diff --git a/tools/editor/icons/icon_real.png b/tools/editor/icons/icon_real.png
index 7f5bf08ede..2ea15ab9e0 100644
--- a/tools/editor/icons/icon_real.png
+++ b/tools/editor/icons/icon_real.png
Binary files differ
diff --git a/tools/editor/icons/icon_reference_frame.png b/tools/editor/icons/icon_reference_frame.png
index ab153a18dc..23d78df1db 100644
--- a/tools/editor/icons/icon_reference_frame.png
+++ b/tools/editor/icons/icon_reference_frame.png
Binary files differ
diff --git a/tools/editor/icons/icon_region_edit.png b/tools/editor/icons/icon_region_edit.png
index 824607f2cc..ce2549df7f 100644
--- a/tools/editor/icons/icon_region_edit.png
+++ b/tools/editor/icons/icon_region_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_reload.png b/tools/editor/icons/icon_reload.png
index f7c6530d77..fc7b1796e9 100644
--- a/tools/editor/icons/icon_reload.png
+++ b/tools/editor/icons/icon_reload.png
Binary files differ
diff --git a/tools/editor/icons/icon_reload_small.png b/tools/editor/icons/icon_reload_small.png
index 957cdfcf4f..6809c4feab 100644
--- a/tools/editor/icons/icon_reload_small.png
+++ b/tools/editor/icons/icon_reload_small.png
Binary files differ
diff --git a/tools/editor/icons/icon_remote.png b/tools/editor/icons/icon_remote.png
index 792d958a46..0d7d390441 100644
--- a/tools/editor/icons/icon_remote.png
+++ b/tools/editor/icons/icon_remote.png
Binary files differ
diff --git a/tools/editor/icons/icon_remote_transform_2d.png b/tools/editor/icons/icon_remote_transform_2d.png
index d4f0b4bd62..d788a666d6 100644
--- a/tools/editor/icons/icon_remote_transform_2d.png
+++ b/tools/editor/icons/icon_remote_transform_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_remove.png b/tools/editor/icons/icon_remove.png
index f0f814e304..5111013367 100644
--- a/tools/editor/icons/icon_remove.png
+++ b/tools/editor/icons/icon_remove.png
Binary files differ
diff --git a/tools/editor/icons/icon_rename.png b/tools/editor/icons/icon_rename.png
index 7b6a10df93..e553a0f1a0 100644
--- a/tools/editor/icons/icon_rename.png
+++ b/tools/editor/icons/icon_rename.png
Binary files differ
diff --git a/tools/editor/icons/icon_reparent.png b/tools/editor/icons/icon_reparent.png
index 59aee5e42d..005b848243 100644
--- a/tools/editor/icons/icon_reparent.png
+++ b/tools/editor/icons/icon_reparent.png
Binary files differ
diff --git a/tools/editor/icons/icon_resource_preloader.png b/tools/editor/icons/icon_resource_preloader.png
index 14b8c4de3c..eb30a9e5ab 100644
--- a/tools/editor/icons/icon_resource_preloader.png
+++ b/tools/editor/icons/icon_resource_preloader.png
Binary files differ
diff --git a/tools/editor/icons/icon_rich_text_label.png b/tools/editor/icons/icon_rich_text_label.png
index 6a38c1e9da..aa9b9d5af0 100644
--- a/tools/editor/icons/icon_rich_text_label.png
+++ b/tools/editor/icons/icon_rich_text_label.png
Binary files differ
diff --git a/tools/editor/icons/icon_rigid_body.png b/tools/editor/icons/icon_rigid_body.png
index 98408294bd..20d2db573a 100644
--- a/tools/editor/icons/icon_rigid_body.png
+++ b/tools/editor/icons/icon_rigid_body.png
Binary files differ
diff --git a/tools/editor/icons/icon_rigid_body_2d.png b/tools/editor/icons/icon_rigid_body_2d.png
index 8e855e97f0..0f0b760219 100644
--- a/tools/editor/icons/icon_rigid_body_2d.png
+++ b/tools/editor/icons/icon_rigid_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_room.png b/tools/editor/icons/icon_room.png
index 589d4d2843..13aa5b9882 100644
--- a/tools/editor/icons/icon_room.png
+++ b/tools/editor/icons/icon_room.png
Binary files differ
diff --git a/tools/editor/icons/icon_rotate_0.png b/tools/editor/icons/icon_rotate_0.png
index 85a4b4c420..9c0118a307 100644
--- a/tools/editor/icons/icon_rotate_0.png
+++ b/tools/editor/icons/icon_rotate_0.png
Binary files differ
diff --git a/tools/editor/icons/icon_rotate_180.png b/tools/editor/icons/icon_rotate_180.png
index c4c516cff5..5fb48a5ab8 100644
--- a/tools/editor/icons/icon_rotate_180.png
+++ b/tools/editor/icons/icon_rotate_180.png
Binary files differ
diff --git a/tools/editor/icons/icon_rotate_270.png b/tools/editor/icons/icon_rotate_270.png
index 6e0f2e62b8..5739767fd9 100644
--- a/tools/editor/icons/icon_rotate_270.png
+++ b/tools/editor/icons/icon_rotate_270.png
Binary files differ
diff --git a/tools/editor/icons/icon_rotate_90.png b/tools/editor/icons/icon_rotate_90.png
index f25b0e99a3..c1f4f9c8c1 100644
--- a/tools/editor/icons/icon_rotate_90.png
+++ b/tools/editor/icons/icon_rotate_90.png
Binary files differ
diff --git a/tools/editor/icons/icon_sample.png b/tools/editor/icons/icon_sample.png
index 5362971a1b..6216e7531f 100644
--- a/tools/editor/icons/icon_sample.png
+++ b/tools/editor/icons/icon_sample.png
Binary files differ
diff --git a/tools/editor/icons/icon_sample_player.png b/tools/editor/icons/icon_sample_player.png
index 92d9cc77bf..f9755f94bf 100644
--- a/tools/editor/icons/icon_sample_player.png
+++ b/tools/editor/icons/icon_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_sample_player_2d.png b/tools/editor/icons/icon_sample_player_2d.png
index 59391f3ae0..52fcb04744 100644
--- a/tools/editor/icons/icon_sample_player_2d.png
+++ b/tools/editor/icons/icon_sample_player_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_save.png b/tools/editor/icons/icon_save.png
index ddef66688d..77c0cccc94 100644
--- a/tools/editor/icons/icon_save.png
+++ b/tools/editor/icons/icon_save.png
Binary files differ
diff --git a/tools/editor/icons/icon_script.png b/tools/editor/icons/icon_script.png
index baf5927c18..6df988c2c9 100644
--- a/tools/editor/icons/icon_script.png
+++ b/tools/editor/icons/icon_script.png
Binary files differ
diff --git a/tools/editor/icons/icon_scroll_bar.png b/tools/editor/icons/icon_scroll_bar.png
index 057cedcde4..c9adc582db 100644
--- a/tools/editor/icons/icon_scroll_bar.png
+++ b/tools/editor/icons/icon_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/icon_scroll_container.png b/tools/editor/icons/icon_scroll_container.png
index 1fb7ebb538..dea8b63c88 100644
--- a/tools/editor/icons/icon_scroll_container.png
+++ b/tools/editor/icons/icon_scroll_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_shader.png b/tools/editor/icons/icon_shader.png
index 5cccb1731a..69da895997 100644
--- a/tools/editor/icons/icon_shader.png
+++ b/tools/editor/icons/icon_shader.png
Binary files differ
diff --git a/tools/editor/icons/icon_shader_material.png b/tools/editor/icons/icon_shader_material.png
index a52981a17e..69da895997 100644
--- a/tools/editor/icons/icon_shader_material.png
+++ b/tools/editor/icons/icon_shader_material.png
Binary files differ
diff --git a/tools/editor/icons/icon_signal.png b/tools/editor/icons/icon_signal.png
index 210a2fd987..14ff48898b 100644
--- a/tools/editor/icons/icon_signal.png
+++ b/tools/editor/icons/icon_signal.png
Binary files differ
diff --git a/tools/editor/icons/icon_skeleton.png b/tools/editor/icons/icon_skeleton.png
index 1eb27fcd81..f49ddc35a5 100644
--- a/tools/editor/icons/icon_skeleton.png
+++ b/tools/editor/icons/icon_skeleton.png
Binary files differ
diff --git a/tools/editor/icons/icon_slider_joint.png b/tools/editor/icons/icon_slider_joint.png
index ce35b6bfa2..5abde77e61 100644
--- a/tools/editor/icons/icon_slider_joint.png
+++ b/tools/editor/icons/icon_slider_joint.png
Binary files differ
diff --git a/tools/editor/icons/icon_slot.png b/tools/editor/icons/icon_slot.png
index e384f636ca..69eeec0844 100644
--- a/tools/editor/icons/icon_slot.png
+++ b/tools/editor/icons/icon_slot.png
Binary files differ
diff --git a/tools/editor/icons/icon_snap.png b/tools/editor/icons/icon_snap.png
index 49fd77b040..dbcb0d1159 100644
--- a/tools/editor/icons/icon_snap.png
+++ b/tools/editor/icons/icon_snap.png
Binary files differ
diff --git a/tools/editor/icons/icon_sound_room_params.png b/tools/editor/icons/icon_sound_room_params.png
index 2d37a4b49f..14c79b7eeb 100644
--- a/tools/editor/icons/icon_sound_room_params.png
+++ b/tools/editor/icons/icon_sound_room_params.png
Binary files differ
diff --git a/tools/editor/icons/icon_spatial.png b/tools/editor/icons/icon_spatial.png
index 00932018a4..aaf7ff5406 100644
--- a/tools/editor/icons/icon_spatial.png
+++ b/tools/editor/icons/icon_spatial.png
Binary files differ
diff --git a/tools/editor/icons/icon_spatial_sample_player.png b/tools/editor/icons/icon_spatial_sample_player.png
index e680c269ce..0b97ddad9e 100644
--- a/tools/editor/icons/icon_spatial_sample_player.png
+++ b/tools/editor/icons/icon_spatial_sample_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_spatial_stream_player.png b/tools/editor/icons/icon_spatial_stream_player.png
index 39de04bcbf..fc2a211fff 100644
--- a/tools/editor/icons/icon_spatial_stream_player.png
+++ b/tools/editor/icons/icon_spatial_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_sphere_shape.png b/tools/editor/icons/icon_sphere_shape.png
index 22ab1ac860..830780e74a 100644
--- a/tools/editor/icons/icon_sphere_shape.png
+++ b/tools/editor/icons/icon_sphere_shape.png
Binary files differ
diff --git a/tools/editor/icons/icon_spin_box.png b/tools/editor/icons/icon_spin_box.png
index fd8a99d91f..59cd5de6d7 100644
--- a/tools/editor/icons/icon_spin_box.png
+++ b/tools/editor/icons/icon_spin_box.png
Binary files differ
diff --git a/tools/editor/icons/icon_spot_light.png b/tools/editor/icons/icon_spot_light.png
index dc97591336..f0b453d837 100644
--- a/tools/editor/icons/icon_spot_light.png
+++ b/tools/editor/icons/icon_spot_light.png
Binary files differ
diff --git a/tools/editor/icons/icon_sprite.png b/tools/editor/icons/icon_sprite.png
index 957278e112..3973c7d3c9 100644
--- a/tools/editor/icons/icon_sprite.png
+++ b/tools/editor/icons/icon_sprite.png
Binary files differ
diff --git a/tools/editor/icons/icon_sprite_3d.png b/tools/editor/icons/icon_sprite_3d.png
index 260f7d4920..1acb63ff8d 100644
--- a/tools/editor/icons/icon_sprite_3d.png
+++ b/tools/editor/icons/icon_sprite_3d.png
Binary files differ
diff --git a/tools/editor/icons/icon_static_body.png b/tools/editor/icons/icon_static_body.png
index cdd20b9d5f..a4c901dee5 100644
--- a/tools/editor/icons/icon_static_body.png
+++ b/tools/editor/icons/icon_static_body.png
Binary files differ
diff --git a/tools/editor/icons/icon_static_body_2d.png b/tools/editor/icons/icon_static_body_2d.png
index f2dec31d12..a7668d8f77 100644
--- a/tools/editor/icons/icon_static_body_2d.png
+++ b/tools/editor/icons/icon_static_body_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_stream_player.png b/tools/editor/icons/icon_stream_player.png
index cf8fdcbaea..2f6b68fba3 100644
--- a/tools/editor/icons/icon_stream_player.png
+++ b/tools/editor/icons/icon_stream_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_string.png b/tools/editor/icons/icon_string.png
index 4a747f7c62..8cf133c7ef 100644
--- a/tools/editor/icons/icon_string.png
+++ b/tools/editor/icons/icon_string.png
Binary files differ
diff --git a/tools/editor/icons/icon_tab_container.png b/tools/editor/icons/icon_tab_container.png
index 96da9d02c0..6778c5c1c5 100644
--- a/tools/editor/icons/icon_tab_container.png
+++ b/tools/editor/icons/icon_tab_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_tabs.png b/tools/editor/icons/icon_tabs.png
new file mode 100644
index 0000000000..1b56782d28
--- /dev/null
+++ b/tools/editor/icons/icon_tabs.png
Binary files differ
diff --git a/tools/editor/icons/icon_test_cube.png b/tools/editor/icons/icon_test_cube.png
index dd0f5522d4..e379d5326d 100644
--- a/tools/editor/icons/icon_test_cube.png
+++ b/tools/editor/icons/icon_test_cube.png
Binary files differ
diff --git a/tools/editor/icons/icon_text_edit.png b/tools/editor/icons/icon_text_edit.png
index 8181f9127a..ae9a9718b3 100644
--- a/tools/editor/icons/icon_text_edit.png
+++ b/tools/editor/icons/icon_text_edit.png
Binary files differ
diff --git a/tools/editor/icons/icon_texture.png b/tools/editor/icons/icon_texture.png
index bbcc54bd6e..fac47441ed 100644
--- a/tools/editor/icons/icon_texture.png
+++ b/tools/editor/icons/icon_texture.png
Binary files differ
diff --git a/tools/editor/icons/icon_texture_button.png b/tools/editor/icons/icon_texture_button.png
index 81d60b4ddc..0233272dd1 100644
--- a/tools/editor/icons/icon_texture_button.png
+++ b/tools/editor/icons/icon_texture_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_texture_frame.png b/tools/editor/icons/icon_texture_frame.png
index 8cdd91a753..c4b4cdb233 100644
--- a/tools/editor/icons/icon_texture_frame.png
+++ b/tools/editor/icons/icon_texture_frame.png
Binary files differ
diff --git a/tools/editor/icons/icon_texture_progress.png b/tools/editor/icons/icon_texture_progress.png
index 88b964f454..c223b973e4 100644
--- a/tools/editor/icons/icon_texture_progress.png
+++ b/tools/editor/icons/icon_texture_progress.png
Binary files differ
diff --git a/tools/editor/icons/icon_tile_map.png b/tools/editor/icons/icon_tile_map.png
index f7b0bdbf8f..14efcc2566 100644
--- a/tools/editor/icons/icon_tile_map.png
+++ b/tools/editor/icons/icon_tile_map.png
Binary files differ
diff --git a/tools/editor/icons/icon_timer.png b/tools/editor/icons/icon_timer.png
index e8c36ae893..20cf05a55c 100644
--- a/tools/editor/icons/icon_timer.png
+++ b/tools/editor/icons/icon_timer.png
Binary files differ
diff --git a/tools/editor/icons/icon_tool_move.png b/tools/editor/icons/icon_tool_move.png
index 7257d3897b..5d05e5e8ff 100644
--- a/tools/editor/icons/icon_tool_move.png
+++ b/tools/editor/icons/icon_tool_move.png
Binary files differ
diff --git a/tools/editor/icons/icon_tool_pan.png b/tools/editor/icons/icon_tool_pan.png
index bfe6fddf45..c94dbd476b 100644
--- a/tools/editor/icons/icon_tool_pan.png
+++ b/tools/editor/icons/icon_tool_pan.png
Binary files differ
diff --git a/tools/editor/icons/icon_tool_rotate.png b/tools/editor/icons/icon_tool_rotate.png
index 9575ceb54e..fc7b1796e9 100644
--- a/tools/editor/icons/icon_tool_rotate.png
+++ b/tools/editor/icons/icon_tool_rotate.png
Binary files differ
diff --git a/tools/editor/icons/icon_tool_scale.png b/tools/editor/icons/icon_tool_scale.png
index a94a6e7c98..bf62a7afc3 100644
--- a/tools/editor/icons/icon_tool_scale.png
+++ b/tools/editor/icons/icon_tool_scale.png
Binary files differ
diff --git a/tools/editor/icons/icon_tool_select.png b/tools/editor/icons/icon_tool_select.png
index 47683228e9..588b417df9 100644
--- a/tools/editor/icons/icon_tool_select.png
+++ b/tools/editor/icons/icon_tool_select.png
Binary files differ
diff --git a/tools/editor/icons/icon_tools.png b/tools/editor/icons/icon_tools.png
index f02d924203..0a7d7f0e4e 100644
--- a/tools/editor/icons/icon_tools.png
+++ b/tools/editor/icons/icon_tools.png
Binary files differ
diff --git a/tools/editor/icons/icon_touch_screen_button.png b/tools/editor/icons/icon_touch_screen_button.png
index 16e84927f1..e15b63f71f 100644
--- a/tools/editor/icons/icon_touch_screen_button.png
+++ b/tools/editor/icons/icon_touch_screen_button.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_add_key.png b/tools/editor/icons/icon_track_add_key.png
index cc9d214387..600c7e81eb 100644
--- a/tools/editor/icons/icon_track_add_key.png
+++ b/tools/editor/icons/icon_track_add_key.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_add_key_hl.png b/tools/editor/icons/icon_track_add_key_hl.png
index c78bb300b8..d9d9332131 100644
--- a/tools/editor/icons/icon_track_add_key_hl.png
+++ b/tools/editor/icons/icon_track_add_key_hl.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_continuous.png b/tools/editor/icons/icon_track_continuous.png
index 9f99891c21..a7494a71b4 100644
--- a/tools/editor/icons/icon_track_continuous.png
+++ b/tools/editor/icons/icon_track_continuous.png
Binary files differ
diff --git a/tools/editor/icons/icon_track_discrete.png b/tools/editor/icons/icon_track_discrete.png
index 4e65e49afb..b2e8c7a69e 100644
--- a/tools/editor/icons/icon_track_discrete.png
+++ b/tools/editor/icons/icon_track_discrete.png
Binary files differ
diff --git a/tools/editor/icons/icon_translation.png b/tools/editor/icons/icon_translation.png
index 917c6f548a..7dfd00e83c 100644
--- a/tools/editor/icons/icon_translation.png
+++ b/tools/editor/icons/icon_translation.png
Binary files differ
diff --git a/tools/editor/icons/icon_transpose.png b/tools/editor/icons/icon_transpose.png
index f9b78bc0fd..4a119e44f4 100644
--- a/tools/editor/icons/icon_transpose.png
+++ b/tools/editor/icons/icon_transpose.png
Binary files differ
diff --git a/tools/editor/icons/icon_tree.png b/tools/editor/icons/icon_tree.png
index 3694a90060..2126f09eb5 100644
--- a/tools/editor/icons/icon_tree.png
+++ b/tools/editor/icons/icon_tree.png
Binary files differ
diff --git a/tools/editor/icons/icon_tween.png b/tools/editor/icons/icon_tween.png
new file mode 100644
index 0000000000..ce33013b36
--- /dev/null
+++ b/tools/editor/icons/icon_tween.png
Binary files differ
diff --git a/tools/editor/icons/icon_unbone.png b/tools/editor/icons/icon_unbone.png
index c8cd774460..726d41527b 100644
--- a/tools/editor/icons/icon_unbone.png
+++ b/tools/editor/icons/icon_unbone.png
Binary files differ
diff --git a/tools/editor/icons/icon_ungroup.png b/tools/editor/icons/icon_ungroup.png
index 4ea620bf96..38a1983785 100644
--- a/tools/editor/icons/icon_ungroup.png
+++ b/tools/editor/icons/icon_ungroup.png
Binary files differ
diff --git a/tools/editor/icons/icon_unlock.png b/tools/editor/icons/icon_unlock.png
index f9fa31c3e0..591a887a6c 100644
--- a/tools/editor/icons/icon_unlock.png
+++ b/tools/editor/icons/icon_unlock.png
Binary files differ
diff --git a/tools/editor/icons/icon_up.png b/tools/editor/icons/icon_up.png
index ec1e090f86..346c4cdba8 100644
--- a/tools/editor/icons/icon_up.png
+++ b/tools/editor/icons/icon_up.png
Binary files differ
diff --git a/tools/editor/icons/icon_uv.png b/tools/editor/icons/icon_uv.png
index 39bc737a37..0ce9ec2942 100644
--- a/tools/editor/icons/icon_uv.png
+++ b/tools/editor/icons/icon_uv.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_box_container.png b/tools/editor/icons/icon_v_box_container.png
index 38b5a4f3f2..4f962e8793 100644
--- a/tools/editor/icons/icon_v_box_container.png
+++ b/tools/editor/icons/icon_v_box_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_button_array.png b/tools/editor/icons/icon_v_button_array.png
index cf7c269020..5c7747be3a 100644
--- a/tools/editor/icons/icon_v_button_array.png
+++ b/tools/editor/icons/icon_v_button_array.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_scroll_bar.png b/tools/editor/icons/icon_v_scroll_bar.png
index ac57e8abec..bb4243cd8c 100644
--- a/tools/editor/icons/icon_v_scroll_bar.png
+++ b/tools/editor/icons/icon_v_scroll_bar.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_separator.png b/tools/editor/icons/icon_v_separator.png
index 49fcc830e3..40d1fb7b88 100644
--- a/tools/editor/icons/icon_v_separator.png
+++ b/tools/editor/icons/icon_v_separator.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_slider.png b/tools/editor/icons/icon_v_slider.png
index 91ba0c70db..a03042d5f5 100644
--- a/tools/editor/icons/icon_v_slider.png
+++ b/tools/editor/icons/icon_v_slider.png
Binary files differ
diff --git a/tools/editor/icons/icon_v_split_container.png b/tools/editor/icons/icon_v_split_container.png
index b39574c72b..306e591087 100644
--- a/tools/editor/icons/icon_v_split_container.png
+++ b/tools/editor/icons/icon_v_split_container.png
Binary files differ
diff --git a/tools/editor/icons/icon_vector.png b/tools/editor/icons/icon_vector.png
index 0bda8ff7c0..e2581aad2f 100644
--- a/tools/editor/icons/icon_vector.png
+++ b/tools/editor/icons/icon_vector.png
Binary files differ
diff --git a/tools/editor/icons/icon_vector2.png b/tools/editor/icons/icon_vector2.png
index 5bfd08f52a..6b3857b04b 100644
--- a/tools/editor/icons/icon_vector2.png
+++ b/tools/editor/icons/icon_vector2.png
Binary files differ
diff --git a/tools/editor/icons/icon_vehicle_body.png b/tools/editor/icons/icon_vehicle_body.png
index 1c6af388eb..23709b0918 100644
--- a/tools/editor/icons/icon_vehicle_body.png
+++ b/tools/editor/icons/icon_vehicle_body.png
Binary files differ
diff --git a/tools/editor/icons/icon_vehicle_wheel.png b/tools/editor/icons/icon_vehicle_wheel.png
index 161283e1bf..0f3b49bec9 100644
--- a/tools/editor/icons/icon_vehicle_wheel.png
+++ b/tools/editor/icons/icon_vehicle_wheel.png
Binary files differ
diff --git a/tools/editor/icons/icon_video_player.png b/tools/editor/icons/icon_video_player.png
index 785678cc2a..3231bb191e 100644
--- a/tools/editor/icons/icon_video_player.png
+++ b/tools/editor/icons/icon_video_player.png
Binary files differ
diff --git a/tools/editor/icons/icon_viewport.png b/tools/editor/icons/icon_viewport.png
index 3859f6c7e9..6bec84ef4a 100644
--- a/tools/editor/icons/icon_viewport.png
+++ b/tools/editor/icons/icon_viewport.png
Binary files differ
diff --git a/tools/editor/icons/icon_viewport_sprite.png b/tools/editor/icons/icon_viewport_sprite.png
new file mode 100644
index 0000000000..c37fcdf144
--- /dev/null
+++ b/tools/editor/icons/icon_viewport_sprite.png
Binary files differ
diff --git a/tools/editor/icons/icon_visibility_enabler.png b/tools/editor/icons/icon_visibility_enabler.png
index 7216ddc34e..579921a8c0 100644
--- a/tools/editor/icons/icon_visibility_enabler.png
+++ b/tools/editor/icons/icon_visibility_enabler.png
Binary files differ
diff --git a/tools/editor/icons/icon_visibility_enabler_2d.png b/tools/editor/icons/icon_visibility_enabler_2d.png
index aad3fbc70f..97d4b0c128 100644
--- a/tools/editor/icons/icon_visibility_enabler_2d.png
+++ b/tools/editor/icons/icon_visibility_enabler_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_visibility_notifier.png b/tools/editor/icons/icon_visibility_notifier.png
index 5fd3162522..f3c0099706 100644
--- a/tools/editor/icons/icon_visibility_notifier.png
+++ b/tools/editor/icons/icon_visibility_notifier.png
Binary files differ
diff --git a/tools/editor/icons/icon_visibility_notifier_2d.png b/tools/editor/icons/icon_visibility_notifier_2d.png
index 1ac868584d..6f9b6556bb 100644
--- a/tools/editor/icons/icon_visibility_notifier_2d.png
+++ b/tools/editor/icons/icon_visibility_notifier_2d.png
Binary files differ
diff --git a/tools/editor/icons/icon_visible.png b/tools/editor/icons/icon_visible.png
index cbc44c4e30..b34368ab52 100644
--- a/tools/editor/icons/icon_visible.png
+++ b/tools/editor/icons/icon_visible.png
Binary files differ
diff --git a/tools/editor/icons/icon_vu_empty.png b/tools/editor/icons/icon_vu_empty.png
index aefc7b77ad..94534ecc1d 100644
--- a/tools/editor/icons/icon_vu_empty.png
+++ b/tools/editor/icons/icon_vu_empty.png
Binary files differ
diff --git a/tools/editor/icons/icon_vu_full.png b/tools/editor/icons/icon_vu_full.png
index 41f02b8d10..f5cd415321 100644
--- a/tools/editor/icons/icon_vu_full.png
+++ b/tools/editor/icons/icon_vu_full.png
Binary files differ
diff --git a/tools/editor/icons/icon_warning.png b/tools/editor/icons/icon_warning.png
index e8dc3496ed..a6c067db68 100644
--- a/tools/editor/icons/icon_warning.png
+++ b/tools/editor/icons/icon_warning.png
Binary files differ
diff --git a/tools/editor/icons/icon_window_dialog.png b/tools/editor/icons/icon_window_dialog.png
index 336da61d57..ae2f5c2b21 100644
--- a/tools/editor/icons/icon_window_dialog.png
+++ b/tools/editor/icons/icon_window_dialog.png
Binary files differ
diff --git a/tools/editor/icons/icon_world_environment.png b/tools/editor/icons/icon_world_environment.png
index b5cc110bbd..5daca30c2e 100644
--- a/tools/editor/icons/icon_world_environment.png
+++ b/tools/editor/icons/icon_world_environment.png
Binary files differ
diff --git a/tools/editor/icons/icon_y_sort.png b/tools/editor/icons/icon_y_sort.png
index 6f80fac156..1cb4df64af 100644
--- a/tools/editor/icons/icon_y_sort.png
+++ b/tools/editor/icons/icon_y_sort.png
Binary files differ
diff --git a/tools/editor/icons/icon_zoom.png b/tools/editor/icons/icon_zoom.png
index e4bbbfe7c3..c89672c8cb 100644
--- a/tools/editor/icons/icon_zoom.png
+++ b/tools/editor/icons/icon_zoom.png
Binary files differ
diff --git a/tools/editor/icons/source/icon_accept_dialog.svg b/tools/editor/icons/source/icon_accept_dialog.svg
new file mode 100644
index 0000000000..8d2c307691
--- /dev/null
+++ b/tools/editor/icons/source/icon_accept_dialog.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_confirmation_dialog.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_accept_dialog.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.0807642"
+ inkscape:cy="9.1331382"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 10.474609 6.6367188 L 11.888672 8.0507812 L 8.3535156 11.585938 L 6.9394531 13 L 5.5253906 11.585938 L 4.1113281 10.171875 L 5.5253906 8.7578125 L 6.9394531 10.171875 L 10.474609 6.6367188 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_add_track.svg b/tools/editor/icons/source/icon_add_track.svg
new file mode 100644
index 0000000000..916199d29e
--- /dev/null
+++ b/tools/editor/icons/source/icon_add_track.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_add_track (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="4.2247291"
+ inkscape:cy="8.9595523"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4137"
+ width="14"
+ height="1.9999478"
+ x="1"
+ y="1043.3622" />
+ <rect
+ y="-9"
+ x="1037.3622"
+ height="2.0000017"
+ width="13.999966"
+ id="rect4158"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_anchor.svg b/tools/editor/icons/source/icon_anchor.svg
new file mode 100644
index 0000000000..ff43271224
--- /dev/null
+++ b/tools/editor/icons/source/icon_anchor.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_anchor.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_anchor (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.8188721"
+ inkscape:cy="10.181863"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 3 3.0000043 0 0 0 5 4 A 3 3.0000043 0 0 0 8 7 A 3 3.0000043 0 0 0 11 4 A 3 3.0000043 0 0 0 8 1 z M 8 3 A 1.000016 1.0000174 0 0 1 9 4 A 1.000016 1.0000174 0 0 1 8 5 A 1.000016 1.0000174 0 0 1 7 4 A 1.000016 1.0000174 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4142" />
+ <rect
+ y="1042.3622"
+ x="7"
+ height="7.0000172"
+ width="2"
+ id="rect4148"
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 12.824219 9.2929688 A 5.0000172 5.0000172 0 0 1 8 13 A 5.0000172 5.0000172 0 0 1 3.171875 9.2949219 L 1.2382812 9.8125 A 7 7 0 0 0 8 15 A 7 7 0 0 0 14.761719 9.8125 L 12.824219 9.2929688 z "
+ transform="translate(0,1036.3622)"
+ id="path4150" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="6"
+ height="2"
+ x="5"
+ y="1043.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_animated_sprite.svg b/tools/editor/icons/source/icon_animated_sprite.svg
new file mode 100644
index 0000000000..36ccd8bca2
--- /dev/null
+++ b/tools/editor/icons/source/icon_animated_sprite.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animated_sprite.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_animated_sprite (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.8151157"
+ inkscape:cy="10.058181"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#c4d0f5;fill-opacity:0.39215687;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.5 0 A 5.5 5.4999914 0 0 0 5.1699219 4.1699219 A 5.5 5.4999914 0 0 1 6.5 4 A 5.5 5.4999914 0 0 1 12 9.5 A 5.5 5.4999914 0 0 1 11.830078 10.830078 A 5.5 5.4999914 0 0 0 16 5.5 A 5.5 5.4999914 0 0 0 10.5 0 z "
+ transform="translate(0,1036.3622)"
+ id="ellipse4157" />
+ <path
+ style="opacity:1;fill:#a5b7f1;fill-opacity:0.58823532;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8.5 2 A 5.5 5.4999914 0 0 0 3.7441406 4.7480469 A 5.5 5.4999914 0 0 1 6.5 4 A 5.5 5.4999914 0 0 1 12 9.5 A 5.5 5.4999914 0 0 1 11.255859 12.251953 A 5.5 5.4999914 0 0 0 14 7.5 A 5.5 5.4999914 0 0 0 8.5 2 z "
+ transform="translate(0,1036.3622)"
+ id="ellipse4155" />
+ <path
+ style="opacity:1;fill:#a5b7f0;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6.5 4 A 5.5 5.4999914 0 0 0 1 9.5 A 5.5 5.4999914 0 0 0 6.5 15 A 5.5 5.4999914 0 0 0 12 9.5 A 5.5 5.4999914 0 0 0 6.5 4 z M 4 8 A 1.0000174 1.0000174 0 0 1 5 9 A 1.0000174 1.0000174 0 0 1 4 10 A 1.0000174 1.0000174 0 0 1 3 9 A 1.0000174 1.0000174 0 0 1 4 8 z M 9 8 A 1.0000174 1.0000174 0 0 1 10 9 A 1.0000174 1.0000174 0 0 1 9 10 A 1.0000174 1.0000174 0 0 1 8 9 A 1.0000174 1.0000174 0 0 1 9 8 z M 4 11 L 9 11 A 2.5 1.9999825 0 0 1 7.75 12.732422 A 2.5 1.9999825 0 0 1 5.25 12.732422 A 2.5 1.9999825 0 0 1 4 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_animated_sprite_3d.svg b/tools/editor/icons/source/icon_animated_sprite_3d.svg
new file mode 100644
index 0000000000..f088c9e32d
--- /dev/null
+++ b/tools/editor/icons/source/icon_animated_sprite_3d.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animated_sprite.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_animated_sprite_3d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.5963657"
+ inkscape:cy="10.401931"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.39215687;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.5 0 A 5.5 5.4999914 0 0 0 5.1699219 4.1699219 A 5.5 5.4999914 0 0 1 6.5 4 A 5.5 5.4999914 0 0 1 12 9.5 A 5.5 5.4999914 0 0 1 11.830078 10.830078 A 5.5 5.4999914 0 0 0 16 5.5 A 5.5 5.4999914 0 0 0 10.5 0 z "
+ transform="translate(0,1036.3622)"
+ id="ellipse4157" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.58823532;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8.5 2 A 5.5 5.4999914 0 0 0 3.7441406 4.7480469 A 5.5 5.4999914 0 0 1 6.5 4 A 5.5 5.4999914 0 0 1 12 9.5 A 5.5 5.4999914 0 0 1 11.255859 12.251953 A 5.5 5.4999914 0 0 0 14 7.5 A 5.5 5.4999914 0 0 0 8.5 2 z "
+ transform="translate(0,1036.3622)"
+ id="ellipse4155" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6.5 4 A 5.5 5.4999914 0 0 0 1 9.5 A 5.5 5.4999914 0 0 0 6.5 15 A 5.5 5.4999914 0 0 0 12 9.5 A 5.5 5.4999914 0 0 0 6.5 4 z M 4 8 A 1.0000174 1.0000174 0 0 1 5 9 A 1.0000174 1.0000174 0 0 1 4 10 A 1.0000174 1.0000174 0 0 1 3 9 A 1.0000174 1.0000174 0 0 1 4 8 z M 9 8 A 1.0000174 1.0000174 0 0 1 10 9 A 1.0000174 1.0000174 0 0 1 9 10 A 1.0000174 1.0000174 0 0 1 8 9 A 1.0000174 1.0000174 0 0 1 9 8 z M 4 11 L 9 11 A 2.5 1.9999825 0 0 1 7.75 12.732422 A 2.5 1.9999825 0 0 1 5.25 12.732422 A 2.5 1.9999825 0 0 1 4 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_animation.svg b/tools/editor/icons/source/icon_animation.svg
new file mode 100644
index 0000000000..38d73cf5bb
--- /dev/null
+++ b/tools/editor/icons/source/icon_animation.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animation.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_animation.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="64"
+ inkscape:cx="10.327464"
+ inkscape:cy="2.5689331"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 3 A 1 1 0 0 1 9 4 A 1 1 0 0 1 8 5 A 1 1 0 0 1 7 4 A 1 1 0 0 1 8 3 z M 11.441406 5 A 1 1 0 0 1 12.330078 5.5 A 1 1 0 0 1 11.964844 6.8652344 A 1 1 0 0 1 10.597656 6.5 A 1 1 0 0 1 10.964844 5.1347656 A 1 1 0 0 1 11.441406 5 z M 4.4882812 5.0019531 A 1 1 0 0 1 5.0351562 5.1347656 A 1 1 0 0 1 5.4023438 6.5 A 1 1 0 0 1 4.0351562 6.8652344 A 1 1 0 0 1 3.6699219 5.5 A 1 1 0 0 1 4.4882812 5.0019531 z M 4.5117188 9 A 1 1 0 0 1 5.4023438 9.5 A 1 1 0 0 1 5.0351562 10.865234 A 1 1 0 0 1 3.6699219 10.5 A 1 1 0 0 1 4.0351562 9.1347656 A 1 1 0 0 1 4.5117188 9 z M 11.416016 9.0019531 A 1 1 0 0 1 11.964844 9.1347656 A 1 1 0 0 1 12.330078 10.5 A 1 1 0 0 1 10.964844 10.865234 A 1 1 0 0 1 10.597656 9.5 A 1 1 0 0 1 11.416016 9.0019531 z M 8 11 A 1 1 0 0 1 9 12 A 1 1 0 0 1 8 13 A 1 1 0 0 1 7 12 A 1 1 0 0 1 8 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4140" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4202" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 14 13.5 L 14 14 L 14.5 14 A 0.5 0.4999913 0 0 1 14 13.5 z "
+ transform="translate(0,1036.3622)"
+ id="rect4215" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4137"
+ width="1"
+ height="3.0000174"
+ x="12"
+ y="1047.3622" />
+ <path
+ id="path4139"
+ transform="translate(0,1036.3622)"
+ d="M 13 8 L 13 14 A 1 1 0 0 0 14 15 L 15 15 L 15 14 L 14 14 L 14 13 L 14 8 L 13 8 z "
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1050.3622"
+ x="14"
+ height="2"
+ width="1"
+ id="rect4141"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4145"
+ sodipodi:type="arc"
+ sodipodi:cx="14"
+ sodipodi:cy="1050.3622"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ sodipodi:start="1.5707963"
+ sodipodi:end="4.712389"
+ d="m 14,1052.3622 a 2,2 0 0 1 -1.732051,-1 2,2 0 0 1 0,-2 2,2 0 0 1 1.732051,-1"
+ sodipodi:open="true" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_animation_player.svg b/tools/editor/icons/source/icon_animation_player.svg
new file mode 100644
index 0000000000..add4d5ac42
--- /dev/null
+++ b/tools/editor/icons/source/icon_animation_player.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animation_player.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_animation_player (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="8.7610995"
+ inkscape:cy="9.3751685"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e1cb50;fill-opacity:0.98431373;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1,1037.3622 0,14 1.1666666,0 0,-2 1.8333334,0 0,2 8,0 0,-2 2,0 0,2 1,0 0,-14 -1,0 0,2 -2,0 0,-2 -8,0 0,2 -1.8333334,0 0,-2 z m 1.1666666,4 1.8333334,0 0,2 -1.8333334,0 z m 9.8333334,0 2,0 0,2 -2,0 z m -9.8333334,4 1.8333334,0 0,2 -1.8333334,0 z m 9.8333334,0 2,0 0,2 -2,0 z"
+ id="rect4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_animation_tree_player.svg b/tools/editor/icons/source/icon_animation_tree_player.svg
new file mode 100644
index 0000000000..ab81cb226a
--- /dev/null
+++ b/tools/editor/icons/source/icon_animation_tree_player.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animation_tree_player.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_animation_tree_player (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254831"
+ inkscape:cx="9.7184474"
+ inkscape:cy="8.2407739"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e1cb50;fill-opacity:0.98431373;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 15 L 2.1660156 15 L 2.1660156 13 L 4 13 L 4 15 L 12 15 L 12 13 L 14 13 L 14 15 L 15 15 L 15 1 L 14 1 L 14 3 L 12 3 L 12 1 L 4 1 L 4 3 L 2.1660156 3 L 2.1660156 1 L 1 1 z M 2.1660156 5 L 4 5 L 4 7 L 2.1660156 7 L 2.1660156 5 z M 8 5 A 1 1 0 0 1 9 6 A 1 1 0 0 1 8.8339844 6.5507812 L 10.060547 9.0039062 A 1 1 0 0 1 11 10 A 1 1 0 0 1 10 11 A 1 1 0 0 1 9 10 A 1 1 0 0 1 9.1660156 9.4492188 L 8 7.1171875 L 6.8339844 9.4492188 A 1 1 0 0 1 7 10 A 1 1 0 0 1 6 11 A 1 1 0 0 1 5 10 A 1 1 0 0 1 5.9414062 9.0019531 L 7.1660156 6.5507812 A 1 1 0 0 1 7 6 A 1 1 0 0 1 8 5 z M 12 5 L 14 5 L 14 7 L 12 7 L 12 5 z M 2.1660156 9 L 4 9 L 4 11 L 2.1660156 11 L 2.1660156 9 z M 12 9 L 14 9 L 14 11 L 12 11 L 12 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_area.svg b/tools/editor/icons/source/icon_area.svg
new file mode 100644
index 0000000000..d56043cf3b
--- /dev/null
+++ b/tools/editor/icons/source/icon_area.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_area.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_area.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="5.5000497"
+ inkscape:cy="8.7464605"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4148"
+ width="2"
+ height="4"
+ x="1"
+ y="1047.3622" />
+ <rect
+ y="1049.3622"
+ x="1"
+ height="1.9999304"
+ width="4"
+ id="rect4150"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1040.3622"
+ x="4"
+ height="8.0000172"
+ width="2"
+ id="rect4152"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-1041.3622"
+ x="1"
+ height="4"
+ width="2"
+ id="rect4154"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(1,-1)" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="4"
+ height="1.9999304"
+ x="1"
+ y="-1039.3622"
+ transform="scale(1,-1)" />
+ <rect
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="2"
+ height="4"
+ x="-15"
+ y="-1041.3622" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-1039.3622"
+ x="-15"
+ height="1.9999304"
+ width="4"
+ id="rect4160"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1047.3623"
+ x="-15"
+ height="4"
+ width="2"
+ id="rect4162"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="4"
+ height="1.9999304"
+ x="-15"
+ y="1049.3623"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="8"
+ height="1.9999998"
+ x="4"
+ y="1046.3622" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4170"
+ width="2"
+ height="8.0000172"
+ x="-12"
+ y="-1048.3622"
+ transform="scale(-1,-1)" />
+ <rect
+ y="-1042.3622"
+ x="-12"
+ height="1.9999998"
+ width="8"
+ id="rect4172"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_area_2d.svg b/tools/editor/icons/source/icon_area_2d.svg
new file mode 100644
index 0000000000..1373d9f0e4
--- /dev/null
+++ b/tools/editor/icons/source/icon_area_2d.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_area.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_area_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313709"
+ inkscape:cx="14.936968"
+ inkscape:cy="11.331549"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4148"
+ width="2"
+ height="4"
+ x="1"
+ y="1047.3622" />
+ <rect
+ y="1049.3622"
+ x="1"
+ height="1.9999304"
+ width="4"
+ id="rect4150"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1040.3622"
+ x="4"
+ height="8.0000172"
+ width="2"
+ id="rect4152"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-1041.3622"
+ x="1"
+ height="4"
+ width="2"
+ id="rect4154"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(1,-1)" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="4"
+ height="1.9999304"
+ x="1"
+ y="-1039.3622"
+ transform="scale(1,-1)" />
+ <rect
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="2"
+ height="4"
+ x="-15"
+ y="-1041.3622" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-1039.3622"
+ x="-15"
+ height="1.9999304"
+ width="4"
+ id="rect4160"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1047.3623"
+ x="-15"
+ height="4"
+ width="2"
+ id="rect4162"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="4"
+ height="1.9999304"
+ x="-15"
+ y="1049.3623"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="8"
+ height="1.9999998"
+ x="4"
+ y="1046.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4170"
+ width="2"
+ height="8.0000172"
+ x="-12"
+ y="-1048.3622"
+ transform="scale(-1,-1)" />
+ <rect
+ y="-1042.3622"
+ x="-12"
+ height="1.9999998"
+ width="8"
+ id="rect4172"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_arrow_left.svg b/tools/editor/icons/source/icon_arrow_left.svg
new file mode 100644
index 0000000000..7af9be05d8
--- /dev/null
+++ b/tools/editor/icons/source/icon_arrow_left.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_arrow_left.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.5903114"
+ inkscape:cy="9.1977698"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="9"
+ height="2.0000174"
+ x="6"
+ y="1043.3622" />
+ <path
+ transform="matrix(0,1.2810265,0.92450034,0,964.29952,1037.9571)"
+ inkscape:transform-center-y="-9.6789057e-05"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="1.8027756"
+ sodipodi:r1="3.6055512"
+ sodipodi:cy="-1038.3622"
+ sodipodi:cx="5"
+ sodipodi:sides="3"
+ id="path4435"
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ sodipodi:type="star"
+ inkscape:transform-center-x="1.1667546" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_arrow_right.svg b/tools/editor/icons/source/icon_arrow_right.svg
new file mode 100644
index 0000000000..860a6f1481
--- /dev/null
+++ b/tools/editor/icons/source/icon_arrow_right.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_arrow_right.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.7465614"
+ inkscape:cy="9.3227698"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10,1048.3622 2.5,-2 2.5,-2 -2.5,-2 -2.5,-2 0,3 -9,0 0,2 9,0 0,3 z"
+ id="rect4352"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_arrow_up.svg b/tools/editor/icons/source/icon_arrow_up.svg
new file mode 100644
index 0000000000..c1839cd69e
--- /dev/null
+++ b/tools/editor/icons/source/icon_arrow_up.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_arrow_up.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.7465614"
+ inkscape:cy="9.3227698"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12,1042.3622 -2,-2.5 -2,-2.5 -2,2.5 -2,2.5 3,0 0,9 2,0 0,-9 3,0 z"
+ id="rect4352"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_atlas_texture.svg b/tools/editor/icons/source/icon_atlas_texture.svg
new file mode 100644
index 0000000000..10c8b745b6
--- /dev/null
+++ b/tools/editor/icons/source/icon_atlas_texture.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_atlas_texture.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_atlas_texture (copy).svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.5596884"
+ inkscape:cy="8.8938998"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 6,1037.3622 -5,2 0,12 5,-2 4,2 5,-2 0,-12 -5,2 z m 0,2 4,2 0,8 -4,-2 z"
+ id="rect4139"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_audio_stream_gibberish.svg b/tools/editor/icons/source/icon_audio_stream_gibberish.svg
new file mode 100644
index 0000000000..82b48c7004
--- /dev/null
+++ b/tools/editor/icons/source/icon_audio_stream_gibberish.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_audio_stream_gibberish.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="5.8942052"
+ inkscape:cy="11.683238"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99215686;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 2 A 2 1.9999913 0 0 0 1 4 L 1 9 A 2 1.9999913 0 0 0 3 11 L 13 11 A 2 1.9999913 0 0 0 15 9 L 15 4 A 2 1.9999913 0 0 0 13 2 L 3 2 z M 3 6 L 5 6 L 5 7 L 3 7 L 3 6 z M 8 6 A 1 1 0 0 1 9 7 L 9 8 A 1 1 0 0 1 8 9 A 1 1 0 0 1 7 8 L 7 7 A 1 1 0 0 1 8 6 z M 11 6 L 13 6 L 13 7 L 11 7 L 11 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ <path
+ style="fill:#e1e1e1;fill-opacity:0.99215686;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 6,1047.3622 0,3 3,-3 z"
+ id="path4173"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_auto_play.svg b/tools/editor/icons/source/icon_auto_play.svg
new file mode 100644
index 0000000000..00bc96aac5
--- /dev/null
+++ b/tools/editor/icons/source/icon_auto_play.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_auto_play.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="64"
+ inkscape:cx="6.4431479"
+ inkscape:cy="7.7277865"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 2,1049.3622 0,-10 8,0 4,5 -4,5 z"
+ id="path4164"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="1043.3622"
+ x="4"
+ height="3.9999824"
+ width="1"
+ id="rect4162"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 11,1044.3622 -2,-2 0,4 z"
+ id="path4166"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="1"
+ height="3.9999824"
+ x="7"
+ y="1043.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4170"
+ width="2"
+ height="0.99994755"
+ x="5"
+ y="1044.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6 5 C 4.8954305 5 4 5.8954 4 7 L 5 7 A 1 1 0 0 1 6 6 A 1 1 0 0 1 7 7 L 8 7 C 8 5.8954 7.1045695 5 6 5 z "
+ transform="translate(0,1036.3622)"
+ id="path4172" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_back.svg b/tools/editor/icons/source/icon_back.svg
new file mode 100644
index 0000000000..597a1c3068
--- /dev/null
+++ b/tools/editor/icons/source/icon_back.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="16"
+ viewBox="0 0 8 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_back.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.4850647"
+ inkscape:cy="8.9717887"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 5.9707031,1037.3633 c -0.3235485,0.01 -0.622658,0.1743 -0.8027343,0.4433 l -4,6 c -0.22390586,0.3359 -0.22390586,0.7735 0,1.1094 l 4,6 C 5.716941,1051.7388 6.999645,1051.3504 7,1050.3613 l 0,-12 c -9.424e-4,-0.5631 -0.4664154,-1.0144 -1.0292969,-0.998 z"
+ id="path4159"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_back_buffer_copy.svg b/tools/editor/icons/source/icon_back_buffer_copy.svg
new file mode 100644
index 0000000000..150421d7dd
--- /dev/null
+++ b/tools/editor/icons/source/icon_back_buffer_copy.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_back_buffer_copy.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_back_buffer_copy.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.102474"
+ inkscape:cy="8.4888344"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4146"
+ width="2"
+ height="9"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="1"
+ height="2.0000174"
+ width="8"
+ id="rect4148"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-1051.3622"
+ x="-15"
+ height="9"
+ width="2"
+ id="rect4150"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,-1)" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4152"
+ width="7"
+ height="2.0000174"
+ x="-15"
+ y="-1051.3622"
+ transform="scale(-1,-1)" />
+ <rect
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="9"
+ x="-9"
+ y="-1051.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="8"
+ height="2.0000174"
+ x="7"
+ y="1040.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="5"
+ height="2.0000174"
+ x="1"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bake.svg b/tools/editor/icons/source/icon_bake.svg
new file mode 100644
index 0000000000..7f1e9b4ae8
--- /dev/null
+++ b/tools/editor/icons/source/icon_bake.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bake.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.5449307"
+ inkscape:cy="12.981869"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="12"
+ height="2.0000174"
+ x="2"
+ y="1037.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="4"
+ height="1.0000174"
+ x="6"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_baked_light.svg b/tools/editor/icons/source/icon_baked_light.svg
new file mode 100644
index 0000000000..7f1e9b4ae8
--- /dev/null
+++ b/tools/editor/icons/source/icon_baked_light.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bake.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.5449307"
+ inkscape:cy="12.981869"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="12"
+ height="2.0000174"
+ x="2"
+ y="1037.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="4"
+ height="1.0000174"
+ x="6"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_baked_light_instance.svg b/tools/editor/icons/source/icon_baked_light_instance.svg
new file mode 100644
index 0000000000..434bf0f6fc
--- /dev/null
+++ b/tools/editor/icons/source/icon_baked_light_instance.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_baked_light_instance.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-3.1006614"
+ inkscape:cy="12.893481"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 4 L 1 13 A 2 2.0000174 0 0 0 3 15 L 13 15 A 2 2.0000174 0 0 0 15 13 L 15 4 L 1 4 z M 3 5 L 4 5 L 4 6 L 3 6 L 3 5 z M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 z M 9 5 L 10 5 L 10 6 L 9 6 L 9 5 z M 12 5 L 13 5 L 13 6 L 12 6 L 12 5 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="12"
+ height="2.0000174"
+ x="2"
+ y="1037.3622" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="4"
+ height="1.0000174"
+ x="6"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bitmap_font.svg b/tools/editor/icons/source/icon_bitmap_font.svg
new file mode 100644
index 0000000000..fa9fdaf5c5
--- /dev/null
+++ b/tools/editor/icons/source/icon_bitmap_font.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bitmap_font.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.302728"
+ inkscape:cy="7.9861624"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4212"
+ width="14"
+ height="2"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="7"
+ height="14.000017"
+ width="2"
+ id="rect4214"
+ style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4216"
+ width="6"
+ height="0.99999976"
+ x="5"
+ y="1050.3622" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 1 1 L 1 3 L 1 5 L 2 5 L 2 4 L 3 4 L 3 3 L 4 3 L 4 1 L 2 1 L 1 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4218" />
+ <path
+ style="opacity:1;fill:#be9cfc;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 12 1 L 12 3 L 13 3 L 13 4 L 14 4 L 14 5 L 15 5 L 15 3 L 15 1 L 14 1 L 12 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4220" />
+ <rect
+ style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4259"
+ width="1"
+ height="1"
+ x="9"
+ y="1049.3622" />
+ <rect
+ y="1049.3622"
+ x="6"
+ height="1"
+ width="1"
+ id="rect4261"
+ style="opacity:1;fill:#fcef9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 4 1 L 4 3 L 7 3 L 7 6 L 9 6 L 9 3 L 12 3 L 12 1 L 4 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4276" />
+ <rect
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4307"
+ width="2"
+ height="5"
+ x="7"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_blend.svg b/tools/editor/icons/source/icon_blend.svg
new file mode 100644
index 0000000000..64d2aeec83
--- /dev/null
+++ b/tools/editor/icons/source/icon_blend.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_blend.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_blend.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="2.5037806"
+ inkscape:cy="10.535433"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-8"
+ inkscape:label="Layer 1"
+ transform="matrix(0,-1,1,0,-1021.3622,1033.3622)" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2.979185,1050.6622 4.2426407,-4.2 -1.4142136,-1.4 -4.2426407,4.1999 1.4142136,1.4001 z m 5.6568542,0 3.1819808,0.35 3.18198,0.35 -0.353553,-3.15 -0.353554,-3.15 -2.12132,2.1 -2.828427,-2.8 -1.4142136,-1.4 -4.9497474,-4.9 -1.4142136,1.4001 4.9497475,4.8999 1.4142135,1.4 2.8284276,2.7999 -2.1213208,2.1001 z m 1.4142138,-7 2.12132,-2.1 2.12132,2.1 0.353554,-3.15 0.353553,-3.15 -3.18198,0.35 -3.1819808,0.35 2.1213208,2.1001 -2.1213208,2.0999 1.4142138,1.4 z"
+ id="rect4352"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bone.svg b/tools/editor/icons/source/icon_bone.svg
new file mode 100644
index 0000000000..c87902a336
--- /dev/null
+++ b/tools/editor/icons/source/icon_bone.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bone.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.7029555"
+ inkscape:cy="10.983314"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10.477991,1037.3625 a 2.4664114,2.4663006 0 0 0 -1.780445,0.7205 2.4664114,2.4663006 0 0 0 -0.3140829,3.1041 l -3.5589636,3.5608 a 2.4664114,2.4663006 0 0 0 -3.1022911,0.3121 2.4664114,2.4663006 0 0 0 0,3.4876 2.4664114,2.4663006 0 0 0 1.3969945,0.6955 2.4664198,2.4663006 0 0 0 0.6956069,1.397 2.4664198,2.4663006 0 0 0 3.4876687,0 2.4664198,2.4663006 0 0 0 0.3140829,-3.1041 l 3.5608896,-3.5608 a 2.4664198,2.4663006 0 0 0 3.100365,-0.3102 2.4664198,2.4663006 0 0 0 0,-3.4875 2.4664198,2.4663006 0 0 0 -1.396994,-0.6974 2.4664114,2.4663006 0 0 0 -0.695607,-1.3971 2.4664114,2.4663006 0 0 0 -1.707224,-0.7205 z"
+ id="path4139"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bone_attachment.svg b/tools/editor/icons/source/icon_bone_attachment.svg
new file mode 100644
index 0000000000..5cb85c3c17
--- /dev/null
+++ b/tools/editor/icons/source/icon_bone_attachment.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bone_attachment.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="1.6535575"
+ inkscape:cy="9.9668477"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10.477991,1037.3625 a 2.4664114,2.4663006 0 0 0 -1.780445,0.7205 2.4664114,2.4663006 0 0 0 -0.3140829,3.1041 l -3.5589636,3.5608 a 2.4664114,2.4663006 0 0 0 -3.1022911,0.3121 2.4664114,2.4663006 0 0 0 0,3.4876 2.4664114,2.4663006 0 0 0 1.3969945,0.6955 2.4664198,2.4663006 0 0 0 0.6956069,1.397 2.4664198,2.4663006 0 0 0 3.4876687,0 2.4664198,2.4663006 0 0 0 0.3140829,-3.1041 l 3.5608896,-3.5608 a 2.4664198,2.4663006 0 0 0 3.100365,-0.3102 2.4664198,2.4663006 0 0 0 0,-3.4875 2.4664198,2.4663006 0 0 0 -1.396994,-0.6974 2.4664114,2.4663006 0 0 0 -0.695607,-1.3971 2.4664114,2.4663006 0 0 0 -1.707224,-0.7205 z"
+ id="path4139"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bone_track.svg b/tools/editor/icons/source/icon_bone_track.svg
new file mode 100644
index 0000000000..cdaab7e34a
--- /dev/null
+++ b/tools/editor/icons/source/icon_bone_track.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bone_track.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="9.2991496"
+ inkscape:cy="10.055236"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10.477991,1037.3625 a 2.4664114,2.4663006 0 0 0 -1.780445,0.7205 2.4664114,2.4663006 0 0 0 -0.3140829,3.1041 l -3.5589636,3.5608 a 2.4664114,2.4663006 0 0 0 -3.1022911,0.3121 2.4664114,2.4663006 0 0 0 0,3.4876 2.4664114,2.4663006 0 0 0 1.3969945,0.6955 2.4664198,2.4663006 0 0 0 0.6956069,1.397 2.4664198,2.4663006 0 0 0 3.4876687,0 2.4664198,2.4663006 0 0 0 0.3140829,-3.1041 l 3.5608896,-3.5608 a 2.4664198,2.4663006 0 0 0 3.100365,-0.3102 2.4664198,2.4663006 0 0 0 0,-3.4875 2.4664198,2.4663006 0 0 0 -1.396994,-0.6974 2.4664114,2.4663006 0 0 0 -0.695607,-1.3971 2.4664114,2.4663006 0 0 0 -1.707224,-0.7205 z"
+ id="path4139"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_bool.svg b/tools/editor/icons/source/icon_bool.svg
new file mode 100644
index 0000000000..e471871adf
--- /dev/null
+++ b/tools/editor/icons/source/icon_bool.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bool.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_bool.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="-0.0405559"
+ inkscape:cy="11.453214"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 L 3 3 L 4 3 L 4 13 L 3 13 L 3 15 L 11 15 L 11 13 L 6 13 L 6 3 L 9 3 L 9 1 L 3 1 z M 9 3 L 9 8 L 11 8 L 11 3 L 9 3 z M 11 8 L 11 13 L 13 13 L 13 8 L 11 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_box_shape.svg b/tools/editor/icons/source/icon_box_shape.svg
new file mode 100644
index 0000000000..04aaf16ebc
--- /dev/null
+++ b/tools/editor/icons/source/icon_box_shape.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_box_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="8.1852896"
+ inkscape:cx="7.1222113"
+ inkscape:zoom="45.254832"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8 1 L 1 4 L 1 12 L 8 15 L 15 12 L 15 4 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4151" />
+ <path
+ style="fill:#68b6ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1051.3622 -7,-3 0,-8 7,3 z"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4145"
+ d="m 8,1051.3622 7,-3 0,-8 -7,3 z"
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#a2d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1040.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_button.svg b/tools/editor/icons/source/icon_button.svg
new file mode 100644
index 0000000000..54644ecb9b
--- /dev/null
+++ b/tools/editor/icons/source/icon_button.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.249456"
+ inkscape:cy="9.3054468"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 3 L 1 11 L 15 11 L 15 3 L 1 3 z M 4 5 L 7 5 L 7 9 L 4 9 L 4 5 z M 9 5 L 10 5 L 10 6 L 11 6 L 11 5 L 12 5 L 12 6 L 11 6 L 11 7 L 12 7 L 12 9 L 11 9 L 11 7 L 10 7 L 10 9 L 9 9 L 9 5 z M 5 6 L 5 8 L 6 8 L 6 6 L 5 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139" />
+ <rect
+ transform="scale(1,-1)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="14"
+ height="2.0000522"
+ x="1"
+ y="-1049.3622" />
+ <rect
+ y="-1049.3622"
+ x="1"
+ height="2.0000522"
+ width="14"
+ id="rect4142"
+ style="opacity:1;fill:#000000;fill-opacity:0.07843138;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_button_group.svg b/tools/editor/icons/source/icon_button_group.svg
new file mode 100644
index 0000000000..9d5df99deb
--- /dev/null
+++ b/tools/editor/icons/source/icon_button_group.svg
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button_group.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_button_group.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.5392558"
+ inkscape:cy="8.9453899"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="1"
+ height="10"
+ x="0"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="15"
+ height="10"
+ width="1"
+ id="rect4174"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4176"
+ sodipodi:type="arc"
+ sodipodi:cx="1"
+ sodipodi:cy="1049.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="0"
+ sodipodi:end="4.712389"
+ d="m 2,1049.3622 a 1,1 0 0 1 -0.6173166,0.9239 1,1 0 0 1 -1.08979019,-0.2168 1,1 0 0 1 -0.21677274,-1.0898 A 1,1 0 0 1 1,1048.3622 l 0,1 z" />
+ <rect
+ y="-15"
+ x="1049.3622"
+ height="14"
+ width="1"
+ id="rect4178"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <path
+ d="m -14,1049.3622 a 1,1 0 0 1 -0.617317,0.9239 1,1 0 0 1 -1.08979,-0.2168 1,1 0 0 1 -0.216773,-1.0898 1,1 0 0 1 0.92388,-0.6173 l 0,1 z"
+ sodipodi:end="4.712389"
+ sodipodi:start="0"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="1049.3622"
+ sodipodi:cx="-15"
+ sodipodi:type="arc"
+ id="path4180"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <path
+ d="m 2,-1039.3622 a 1,1 0 0 1 -0.6173166,0.9239 1,1 0 0 1 -1.08979019,-0.2168 1,1 0 0 1 -0.21677274,-1.0898 A 1,1 0 0 1 1,-1040.3622 l 0,1 z"
+ sodipodi:end="4.712389"
+ sodipodi:start="0"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="-1039.3622"
+ sodipodi:cx="1"
+ sodipodi:type="arc"
+ id="path4182"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(1,-1)" />
+ <path
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4184"
+ sodipodi:type="arc"
+ sodipodi:cx="-15"
+ sodipodi:cy="-1039.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="0"
+ sodipodi:end="4.712389"
+ d="m -14,-1039.3622 a 1,1 0 0 1 -0.617317,0.9239 1,1 0 0 1 -1.08979,-0.2168 1,1 0 0 1 -0.216773,-1.0898 1,1 0 0 1 0.92388,-0.6173 l 0,1 z" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4186"
+ width="1"
+ height="14"
+ x="1038.3622"
+ y="-15" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4188"
+ width="4"
+ height="6.0000172"
+ x="3"
+ y="1041.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="6.0000172"
+ width="4"
+ id="rect4190"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1045.3622"
+ x="3"
+ height="1.9999998"
+ width="4"
+ id="rect4192"
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4194"
+ width="4"
+ height="1.9999998"
+ x="9"
+ y="1045.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_camera.svg b/tools/editor/icons/source/icon_camera.svg
new file mode 100644
index 0000000000..55d4aa698d
--- /dev/null
+++ b/tools/editor/icons/source/icon_camera.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_camera.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_camera.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="9.4597381"
+ inkscape:cy="7.3949222"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4144"
+ width="10"
+ height="5.0000172"
+ x="1"
+ y="1042.3622" />
+ <rect
+ y="1040.3622"
+ x="3"
+ height="9.0000172"
+ width="6"
+ id="rect4146"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4148"
+ cx="3"
+ cy="1042.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1047.3622"
+ cx="3"
+ id="circle4150"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4152"
+ cx="9"
+ cy="1042.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1047.3622"
+ cx="9"
+ id="circle4154"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 12,7 0,3 3,1 0,-5 z"
+ transform="translate(0,1036.3622)"
+ id="rect4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_camera_2d.svg b/tools/editor/icons/source/icon_camera_2d.svg
new file mode 100644
index 0000000000..1be8c0f984
--- /dev/null
+++ b/tools/editor/icons/source/icon_camera_2d.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_camera.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_camera_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="5.924204"
+ inkscape:cy="7.4391164"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4144"
+ width="10"
+ height="5.0000172"
+ x="1"
+ y="1042.3622" />
+ <rect
+ y="1040.3622"
+ x="3"
+ height="9.0000172"
+ width="6"
+ id="rect4146"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4148"
+ cx="3"
+ cy="1042.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1047.3622"
+ cx="3"
+ id="circle4150"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4152"
+ cx="9"
+ cy="1042.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1047.3622"
+ cx="9"
+ id="circle4154"
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 12,7 0,3 3,1 0,-5 z"
+ transform="translate(0,1036.3622)"
+ id="rect4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_item.svg b/tools/editor/icons/source/icon_canvas_item.svg
new file mode 100644
index 0000000000..d15a9a71b7
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_item.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_canvas_item.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="-0.0099577907"
+ inkscape:cy="13.312585"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ sodipodi:nodetypes="cscsccccsssc"
+ inkscape:connector-curvature="0"
+ id="path4146"
+ d="m 2.920797,1046.3957 c -0.2637264,0.3 -0.4203983,0.7296 -0.4203983,1.2383 0,1.6277 -3.13814186,-0.1781 -0.337569,2.6703 0.8838207,0.899 2.6543881,0.6701 3.538224,-0.2288 0.8838352,-0.899 0.8838163,-2.3565 0,-3.2554 -1.1002211,-1.1191 -2.200058,-1.0845 -2.7802567,-0.4244 z m 2.3801743,-1.6103 2.4004918,2.4416 6.8013899,-6.9177 c 0.662863,-0.6742 0.662863,-1.7673 0,-2.4415 -0.662877,-0.6741 -1.737613,-0.6741 -2.400491,0 z"
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_item_material.svg b/tools/editor/icons/source/icon_canvas_item_material.svg
new file mode 100644
index 0000000000..ce8fd4b7de
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_item_material.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_material.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_canvas_item_material.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4168">
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4170"
+ cx="16.5"
+ cy="1036.3622"
+ rx="11.8125"
+ ry="10.499999" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="5.4471982"
+ inkscape:cy="10.694354"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4168)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_item_shader.svg b/tools/editor/icons/source/icon_canvas_item_shader.svg
new file mode 100644
index 0000000000..6d1d7e6bb1
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_item_shader.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_canvas_item_shader.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4148">
+ <path
+ sodipodi:nodetypes="cscsccccsssc"
+ inkscape:connector-curvature="0"
+ id="path4150"
+ d="m 7.9288448,1039.4124 c -0.4450383,0.45 -0.7094221,1.0944 -0.7094221,1.8575 0,2.4415 -5.2956144,-0.2672 -0.5696477,4.0054 1.4914475,1.3485 4.47928,1.0052 5.970753,-0.3432 1.491472,-1.3485 1.49144,-3.5347 0,-4.8831 -1.856623,-1.6786 -3.7125978,-1.6267 -4.6916832,-0.6366 z m 4.0165442,-2.4154 4.05083,3.6624 11.477345,-10.3766 c 1.118582,-1.0113 1.118582,-2.6509 0,-3.6622 -1.118605,-1.0112 -2.932222,-1.0112 -4.050828,0 z"
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.2934357"
+ inkscape:cy="8.7995586"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4148)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_item_shader_graph.svg b/tools/editor/icons/source/icon_canvas_item_shader_graph.svg
new file mode 100644
index 0000000000..84575ad388
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_item_shader_graph.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader_graph.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_canvas_item_shader_graph.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4196">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.0624999,1025.8622 a 3.375,2.9999997 0 0 0 -3.375,3 3.375,2.9999997 0 0 0 1.6875,2.5957 l 0,9.8115 a 3.375,2.9999997 0 0 0 -1.6875,2.5928 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.3750001,-3 3.375,2.9999997 0 0 0 -1.6875001,-2.5957 l 0,-8.7832 11.9311511,10.6054 a 3.375,2.9999997 0 0 0 -0.118651,0.7735 3.375,2.9999997 0 0 0 3.375,3 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -0.873413,0.1025 l -11.927857,-10.6025 9.884399,0 a 3.375,2.9999997 0 0 0 2.916871,1.5 3.375,2.9999997 0 0 0 3.375,-3 3.375,2.9999997 0 0 0 -3.375,-3 3.375,2.9999997 0 0 0 -2.920166,1.5 l -11.037964,0 a 3.375,2.9999997 0 0 0 -2.9168701,-1.5 z"
+ id="path4198"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="-2.8222537"
+ inkscape:cy="15.541098"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4196)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ <ellipse
+ r="2"
+ style="opacity:1;fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4152"
+ cx="3"
+ cy="1039.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_layer.svg b/tools/editor/icons/source/icon_canvas_layer.svg
new file mode 100644
index 0000000000..a26edd7d6d
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_layer.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_canvas_layer.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-3.1074492"
+ inkscape:cy="10.973033"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ sodipodi:nodetypes="cscsccccsssc"
+ inkscape:connector-curvature="0"
+ id="path4146"
+ d="m 2.920797,1046.3957 c -0.2637264,0.3 -0.4203983,0.7296 -0.4203983,1.2383 0,1.6277 -3.13814186,-0.1781 -0.337569,2.6703 0.8838207,0.899 2.6543881,0.6701 3.538224,-0.2288 0.8838352,-0.899 0.8838163,-2.3565 0,-3.2554 -1.1002211,-1.1191 -2.200058,-1.0845 -2.7802567,-0.4244 z m 2.3801743,-1.6103 2.4004918,2.4416 6.8013899,-6.9177 c 0.662863,-0.6742 0.662863,-1.7673 0,-2.4415 -0.662877,-0.6741 -1.737613,-0.6741 -2.400491,0 z"
+ style="fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 L 3 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4160" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="6"
+ height="1"
+ x="3"
+ y="1037.3622" />
+ <rect
+ y="-2"
+ x="1039.3622"
+ height="1"
+ width="6"
+ id="rect4166"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13,1051.3622 a 2,2 0 0 0 2,-2 l 0,-6 -1,0 0,6 a 1.0000174,1.0000174 0 0 1 -1,1 l -6,0 0,1 6,0 z"
+ id="path4169"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_canvas_modulate.svg b/tools/editor/icons/source/icon_canvas_modulate.svg
new file mode 100644
index 0000000000..450823e005
--- /dev/null
+++ b/tools/editor/icons/source/icon_canvas_modulate.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_modulate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_canvas_modulate.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="7.3785882"
+ inkscape:cy="11.139886"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4159"
+ width="10"
+ height="10.000017"
+ x="3"
+ y="1039.3622" />
+ <path
+ style="fill:#a5b7f1;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 1,1037.3622 0,2 0,12 2,0 12,0 0,-2 0,-12 -2,0 -10,0 z m 2,2 10,0 0,10 -10,0 z"
+ id="rect4280"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ <ellipse
+ style="fill:#ff0000;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4153"
+ cx="6.5"
+ cy="1045.8622"
+ rx="2.5"
+ ry="2.4999871" />
+ <ellipse
+ style="fill:#0000ff;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="ellipse4157"
+ cx="8"
+ cy="1042.8622"
+ rx="2.5"
+ ry="2.4999938" />
+ <ellipse
+ ry="2.4999936"
+ rx="2.5"
+ cy="1045.8622"
+ cx="9.5"
+ id="ellipse4155"
+ style="fill:#00ff00;fill-opacity:0.78431373;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_capsule_shape.svg b/tools/editor/icons/source/icon_capsule_shape.svg
new file mode 100644
index 0000000000..dcc6e8c00f
--- /dev/null
+++ b/tools/editor/icons/source/icon_capsule_shape.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_capsule_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_capsule_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="11.868879"
+ inkscape:cx="-0.54664689"
+ inkscape:zoom="11.313708"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ style="opacity:1;fill:#68b6ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4140"
+ width="6"
+ height="8.0000172"
+ x="5"
+ y="1040.3622" />
+ <circle
+ r="3"
+ cy="1040.3622"
+ cx="8"
+ id="circle4142"
+ style="fill:#68b6ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <circle
+ style="fill:#68b6ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="circle4144"
+ cx="8"
+ cy="1048.3622"
+ r="3" />
+ <circle
+ r="1.0000174"
+ cy="1039.3622"
+ cx="7"
+ id="circle4146"
+ style="fill:#a2d2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_center_container.svg b/tools/editor/icons/source/icon_center_container.svg
new file mode 100644
index 0000000000..31262f8494
--- /dev/null
+++ b/tools/editor/icons/source/icon_center_container.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_center_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="-1.8665209"
+ inkscape:cy="9.391154"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <path
+ sodipodi:nodetypes="cccccccccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4161"
+ d="m 6,1040.3622 2,2 2,-2 z m -2,2 0,4 2,-2 z m 8,0 -2,2 2,2 z m -4,4 -2,2 4,0 z"
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_check_box.svg b/tools/editor/icons/source/icon_check_box.svg
new file mode 100644
index 0000000000..1068b424bd
--- /dev/null
+++ b/tools/editor/icons/source/icon_check_box.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_check_box.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_check_box.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.8008276"
+ inkscape:cy="9.8639842"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 2 C 1.8954305 2 1 2.8954305 1 4 L 1 13 C 1 14.104569 1.8954305 15 3 15 L 12 15 C 13.104569 15 14 14.104569 14 13 L 14 8.0722656 L 12 10.072266 L 12 13 L 3 13 L 3 4 L 9.5859375 4 L 11.585938 2 L 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4143" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4.5857864,1045.3622 6,1046.7764 l 1.4142136,1.4142 1.4142135,-1.4142 4.9497479,-4.9497 -1.414214,-1.4142 -4.9497474,4.9497 L 6,1043.948 l -1.4142136,1.4142 z"
+ id="rect4163"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-3.1819807"
+ inkscape:transform-center-y="-1.06065" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_check_button.svg b/tools/editor/icons/source/icon_check_button.svg
new file mode 100644
index 0000000000..1dddc7bf43
--- /dev/null
+++ b/tools/editor/icons/source/icon_check_button.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_check_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_check_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="5.7571127"
+ inkscape:cy="12.193142"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 5 4 A 4 4 0 0 0 1 8 A 4 4 0 0 0 5 12 L 11 12 L 11 10 L 5 10 A 2 2 0 0 1 3 8 A 2 2 0 0 1 5 6 L 11 6 L 11 4 L 5 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4143" />
+ <circle
+ r="4"
+ cy="1044.3622"
+ cx="11"
+ id="circle4147"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_class_list.svg b/tools/editor/icons/source/icon_class_list.svg
new file mode 100644
index 0000000000..326174e566
--- /dev/null
+++ b/tools/editor/icons/source/icon_class_list.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_class_list.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_class_list.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="7.4511363"
+ inkscape:cy="9.3546504"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4148"
+ width="5"
+ height="0.9999826"
+ x="1"
+ y="1038.3622" />
+ <rect
+ y="1037.3622"
+ x="6"
+ height="3.0000174"
+ width="6"
+ id="rect4150"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1038.3622"
+ x="3"
+ height="11.000017"
+ width="1"
+ id="rect4152"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="5"
+ height="0.99999976"
+ x="4"
+ y="1043.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="6"
+ height="3.0000174"
+ x="9"
+ y="1042.3622" />
+ <rect
+ y="1048.3622"
+ x="4"
+ height="0.99999976"
+ width="5"
+ id="rect4158"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1047.3622"
+ x="9"
+ height="3.0000174"
+ width="6"
+ id="rect4160"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_close.svg b/tools/editor/icons/source/icon_close.svg
new file mode 100644
index 0000000000..65b71ae860
--- /dev/null
+++ b/tools/editor/icons/source/icon_close.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_close.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="3.3969834"
+ inkscape:cy="11.678255"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-4"
+ inkscape:label="Layer 1"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,-736.13242,311.54347)">
+ <rect
+ y="1043.3622"
+ x="1"
+ height="1.9999478"
+ width="14"
+ id="rect4137"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4158"
+ width="13.999966"
+ height="2.0000017"
+ x="1037.3622"
+ y="-9" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_collapse.svg b/tools/editor/icons/source/icon_collapse.svg
new file mode 100644
index 0000000000..a1c55e92de
--- /dev/null
+++ b/tools/editor/icons/source/icon_collapse.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collapse.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_collapse.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="7.0030445"
+ inkscape:cy="11.276359"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1040.3622 0,3.9375 6,5.0625 6,-5.0625 0,-3.9375 -12,0 z"
+ id="rect4174"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_collision_2d.svg b/tools/editor/icons/source/icon_collision_2d.svg
new file mode 100644
index 0000000000..29905795bd
--- /dev/null
+++ b/tools/editor/icons/source/icon_collision_2d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_collision_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="8.9698127"
+ inkscape:cy="10.623768"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a5b7f2;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.98823529"
+ d="m 14,1050.3622 -12,0 0,-12 12,0 -6,6 z"
+ id="path4144"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_collision_polygon.svg b/tools/editor/icons/source/icon_collision_polygon.svg
new file mode 100644
index 0000000000..41f20abb5f
--- /dev/null
+++ b/tools/editor/icons/source/icon_collision_polygon.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_collision_polygon.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="3.5635625"
+ inkscape:cy="10.561268"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 14,1050.3622 -12,0 0,-12 12,0 -6,6 z"
+ id="path4144"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_collision_shape.svg b/tools/editor/icons/source/icon_collision_shape.svg
new file mode 100644
index 0000000000..066e3bc0fd
--- /dev/null
+++ b/tools/editor/icons/source/icon_collision_shape.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_collision_shape.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.1912719"
+ inkscape:cy="5.0517827"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-7"
+ inkscape:label="Layer 1"
+ transform="translate(0,1.1802001e-5)"
+ style="stroke:#fc9c9c;stroke-opacity:0.99607843">
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path4139"
+ d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z"
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_collision_shape_2d.svg b/tools/editor/icons/source/icon_collision_shape_2d.svg
new file mode 100644
index 0000000000..e0a750c946
--- /dev/null
+++ b/tools/editor/icons/source/icon_collision_shape_2d.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_collision_shape_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="6.937726"
+ inkscape:cy="8.4489005"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#a5b7f3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:0.98823529;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 14,1050.3622 -12,0 0,-12 12,0 z"
+ id="path4139"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_color.svg b/tools/editor/icons/source/icon_color.svg
new file mode 100644
index 0000000000..c46f64b8ed
--- /dev/null
+++ b/tools/editor/icons/source/icon_color.svg
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_color.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4218">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 8,1037.3622 a 7.0000172,7.0000172 0 0 0 -7,7 7.0000172,7.0000172 0 0 0 7,7 7.0000172,7.0000172 0 0 0 7,-7 7.0000172,7.0000172 0 0 0 -7,-7 z m 0,3 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 z"
+ id="path4221"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="4.4710872"
+ inkscape:cy="8.9389443"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4151"
+ cx="8"
+ cy="1044.3622"
+ r="8" />
+ <g
+ id="g4204"
+ clip-path="url(#clipPath4218)">
+ <path
+ inkscape:transform-center-y="-3.5000174"
+ d="m 6.1882667,1037.6007 a 7,7 0 0 1 3.6234668,0 L 8,1044.3622 Z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="1044.3622"
+ sodipodi:cx="8"
+ sodipodi:type="arc"
+ id="path4153"
+ style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ inkscape:transform-center-x="-2.4749025"
+ transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,0)"
+ style="opacity:1;fill:#ff4d00;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4157"
+ sodipodi:type="arc"
+ sodipodi:cx="529.10931"
+ sodipodi:cy="900.44415"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m 527.29758,893.68267 a 7,7 0 0 1 3.62347,0 l -1.81174,6.76148 z"
+ inkscape:transform-center-y="-3.3807758" />
+ <path
+ inkscape:transform-center-y="-2.4748757"
+ d="m 906.63248,508.49139 a 7,7 0 0 1 3.62347,0 l -1.81174,6.76148 z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="515.25287"
+ sodipodi:cx="908.44421"
+ sodipodi:type="arc"
+ id="path4159"
+ style="opacity:1;fill:#ff9900;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"
+ inkscape:transform-center-x="-3.3807755" />
+ <path
+ inkscape:transform-center-x="-3.500017"
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#ffca00;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4161"
+ sodipodi:type="arc"
+ sodipodi:cx="1044.3622"
+ sodipodi:cy="-8.0000172"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m 1042.5504,-14.761498 a 7,7 0 0 1 3.6235,0 l -1.8117,6.7614808 z"
+ inkscape:transform-center-y="-1.7222787e-05" />
+ <path
+ inkscape:transform-center-y="2.4749218"
+ d="m 898.63248,-535.87086 a 7,7 0 0 1 3.62347,0 l -1.81174,6.76149 z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="-529.10938"
+ sodipodi:cx="900.44421"
+ sodipodi:type="arc"
+ id="path4163"
+ style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(-0.5,0.8660254,-0.8660254,-0.5,0,0)"
+ inkscape:transform-center-x="-3.3807914" />
+ <path
+ inkscape:transform-center-x="-2.4748559"
+ transform="matrix(-0.8660254,0.5,-0.5,-0.8660254,0,0)"
+ style="opacity:1;fill:#9fff00;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4165"
+ sodipodi:type="arc"
+ sodipodi:cx="515.25293"
+ sodipodi:cy="-908.44421"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m 513.4412,-915.20569 a 7,7 0 0 1 3.62346,0 l -1.81173,6.76148 z"
+ inkscape:transform-center-y="3.3807689" />
+ <path
+ inkscape:transform-center-y="3.4999826"
+ d="m -9.8117504,-1051.1237 a 7,7 0 0 1 3.6234668,0 l -1.8117336,6.7615 z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="-1044.3622"
+ sodipodi:cx="-8.0000172"
+ sodipodi:type="arc"
+ id="path4167"
+ style="opacity:1;fill:#00ff00;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,-1)"
+ inkscape:transform-center-x="-1.6750127e-05" />
+ <path
+ inkscape:transform-center-x="2.4749062"
+ transform="matrix(-0.8660254,-0.5,0.5,-0.8660254,0,0)"
+ style="opacity:1;fill:#00ffaa;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4169"
+ sodipodi:type="arc"
+ sodipodi:cx="-529.10931"
+ sodipodi:cy="-900.44427"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m -530.92105,-907.20576 a 7,7 0 0 1 3.62347,0 l -1.81173,6.76149 z"
+ inkscape:transform-center-y="3.3808107" />
+ <path
+ inkscape:transform-center-y="2.4748493"
+ d="m -910.25589,-522.01441 a 7,7 0 0 1 3.62347,0 l -1.81173,6.76148 z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="-515.25293"
+ sodipodi:cx="-908.44415"
+ sodipodi:type="arc"
+ id="path4171"
+ style="opacity:1;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(-0.5,-0.8660254,0.8660254,-0.5,0,0)"
+ inkscape:transform-center-x="3.3807887" />
+ <path
+ inkscape:transform-center-x="3.4999821"
+ transform="matrix(0,-1,1,0,0,0)"
+ style="opacity:1;fill:#9000ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4173"
+ sodipodi:type="arc"
+ sodipodi:cx="-1044.3622"
+ sodipodi:cy="8.0000181"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m -1046.1739,1.2385373 a 7,7 0 0 1 3.6235,1e-7 l -1.8118,6.7614807 z"
+ inkscape:transform-center-y="-1.7714781e-05" />
+ <path
+ inkscape:transform-center-y="-2.474887"
+ d="m -902.25595,522.34777 a 7,7 0 0 1 3.62347,0 l -1.81173,6.76148 z"
+ sodipodi:end="4.9741884"
+ sodipodi:start="4.4505896"
+ sodipodi:ry="7"
+ sodipodi:rx="7"
+ sodipodi:cy="529.10925"
+ sodipodi:cx="-900.44421"
+ sodipodi:type="arc"
+ id="path4175"
+ style="opacity:1;fill:#ff00ee;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)"
+ inkscape:transform-center-x="3.3807952" />
+ <path
+ inkscape:transform-center-x="2.4748691"
+ transform="matrix(0.8660254,-0.5,0.5,0.8660254,0,0)"
+ style="opacity:1;fill:#ff009a;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4177"
+ sodipodi:type="arc"
+ sodipodi:cx="-515.25287"
+ sodipodi:cy="908.44415"
+ sodipodi:rx="7"
+ sodipodi:ry="7"
+ sodipodi:start="4.4505896"
+ sodipodi:end="4.9741884"
+ d="m -517.0646,901.68267 a 7,7 0 0 1 3.62346,0 l -1.81173,6.76148 z"
+ inkscape:transform-center-y="-3.3807953" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_color_pick.svg b/tools/editor/icons/source/icon_color_pick.svg
new file mode 100644
index 0000000000..bbb05fc6b6
--- /dev/null
+++ b/tools/editor/icons/source/icon_color_pick.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_color_pick.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color_pick.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="4.443644"
+ inkscape:cy="9.1543192"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 13.050781 0.97851562 A 2 2 0 0 0 11.607422 1.5644531 L 10.193359 2.9785156 L 8.7773438 1.5644531 L 7.3632812 2.9785156 L 8.7773438 4.3925781 L 1.7070312 11.464844 L 1.3535156 13.232422 L 1 15 L 2.7675781 14.646484 L 4.5351562 14.292969 L 11.607422 7.2226562 L 13.021484 8.6367188 L 14.435547 7.2226562 L 13.021484 5.8066406 L 14.435547 4.3925781 A 2 2 0 0 0 14.435547 1.5644531 A 2 2 0 0 0 13.050781 0.97851562 z M 9.484375 5.0996094 L 10.900391 6.515625 L 3.828125 13.585938 L 3.1210938 12.878906 L 2.4140625 12.171875 L 9.484375 5.0996094 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_color_picker.svg b/tools/editor/icons/source/icon_color_picker.svg
new file mode 100644
index 0000000000..0efd276c50
--- /dev/null
+++ b/tools/editor/icons/source/icon_color_picker.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_color_picker.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color_picker.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="4.7530032"
+ inkscape:cy="8.2262415"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 13.050781 0.97851562 A 2 2 0 0 0 11.607422 1.5644531 L 10.193359 2.9785156 L 8.7773438 1.5644531 L 7.3632812 2.9785156 L 8.7773438 4.3925781 L 1.7070312 11.464844 L 1.3535156 13.232422 L 1 15 L 2.7675781 14.646484 L 4.5351562 14.292969 L 11.607422 7.2226562 L 13.021484 8.6367188 L 14.435547 7.2226562 L 13.021484 5.8066406 L 14.435547 4.3925781 A 2 2 0 0 0 14.435547 1.5644531 A 2 2 0 0 0 13.050781 0.97851562 z M 9.484375 5.0996094 L 10.900391 6.515625 L 3.828125 13.585938 L 3.1210938 12.878906 L 2.4140625 12.171875 L 9.484375 5.0996094 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_color_picker_button.svg b/tools/editor/icons/source/icon_color_picker_button.svg
new file mode 100644
index 0000000000..4e4fb8cc1b
--- /dev/null
+++ b/tools/editor/icons/source/icon_color_picker_button.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_color_picker_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color_picker_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.1313634"
+ inkscape:cy="7.6484362"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-4"
+ inkscape:label="Layer 1">
+ <path
+ id="rect4139"
+ transform="translate(0,1036.3622)"
+ d="M 13.050781,0.97851562 A 2,2 0 0 0 11.607422,1.5644531 L 10.193359,2.9785156 8.7773438,1.5644531 7.3632812,2.9785156 8.7773438,4.3925781 1.7070312,11.464844 1.3535156,13.232422 1,15 2.7675781,14.646484 4.5351562,14.292969 11.607422,7.2226562 13.021484,8.6367188 14.435547,7.2226562 13.021484,5.8066406 14.435547,4.3925781 a 2,2 0 0 0 0,-2.828125 2,2 0 0 0 -1.384766,-0.58593748 z M 9.484375,5.0996094 10.900391,6.515625 3.828125,13.585938 3.1210938,12.878906 2.4140625,12.171875 9.484375,5.0996094 Z"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 3 L 1 9.34375 L 5.9492188 4.3925781 L 4.5566406 3 L 1 3 z M 15 9.4863281 L 13.486328 11 L 12.556641 11 L 11.607422 10.050781 L 8.6582031 13 L 15 13 L 15 9.4863281 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139-4" />
+ <path
+ style="opacity:1;fill:#000000;fill-opacity:0.07843137;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.658203 11 L 8.6582031 13 L 15 13 L 15 11 L 13.486328 11 L 12.556641 11 L 10.658203 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_color_ramp.svg b/tools/editor/icons/source/icon_color_ramp.svg
new file mode 100644
index 0000000000..ff23cdba8d
--- /dev/null
+++ b/tools/editor/icons/source/icon_color_ramp.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_color_ramp.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_color_ramp.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4139">
+ <stop
+ style="stop-color:#afff68;stop-opacity:1"
+ offset="0"
+ id="stop4141" />
+ <stop
+ style="stop-color:#ff6b6b;stop-opacity:1"
+ offset="1"
+ id="stop4143" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4139"
+ id="linearGradient4145"
+ x1="4"
+ y1="14"
+ x2="30"
+ y2="14"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.51851852,0,0,0.7,-0.55555555,1034.5622)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.5771263"
+ inkscape:cy="10.144749"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:url(#linearGradient4145);fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 1,1051.3622 14,0 0,-14 z"
+ id="rect4141"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_concave_polygon_shape.svg b/tools/editor/icons/source/icon_concave_polygon_shape.svg
new file mode 100644
index 0000000000..b0e0fe63ce
--- /dev/null
+++ b/tools/editor/icons/source/icon_concave_polygon_shape.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_concave_polygon_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_concave_polygon_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="9.2011727"
+ inkscape:cx="7.5362507"
+ inkscape:zoom="22.627417"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8 1 L 1 4 L 1 12 L 8 15 L 15 12 L 15 4 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4194" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
+ id="path4151" />
+ <path
+ style="fill:#2998ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 3,1041.3622 0,6 5,2 5,-2 0,-6 -5,-2 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a2d2ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 8,1049.3622 5,-2 -5,-2 -5,2 z"
+ id="path4164"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#68b6ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 8,1045.3622 5,2 0,-6 -5,-2 z"
+ id="path4166"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a2d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8,1 1,4 3,5 8,3 13,5 15,4 Z"
+ transform="translate(0,1036.3622)"
+ id="path4149"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#68b6ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1,4 1,12 8,15 8,13 3,11 3,5 Z"
+ transform="translate(0,1036.3622)"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 15,4 -2,1 0,6 -5,2 0,2 7,-3 z"
+ transform="translate(0,1036.3622)"
+ id="path4145"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_confirmation_dialog.svg b/tools/editor/icons/source/icon_confirmation_dialog.svg
new file mode 100644
index 0000000000..49dbc21e92
--- /dev/null
+++ b/tools/editor/icons/source/icon_confirmation_dialog.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_confirmation_dialog.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_confirmation_dialog.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="7.6980886"
+ inkscape:cy="13.203824"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 2.5859375 8.8789062 L 4 10.292969 L 5.4140625 8.8789062 L 6.1210938 9.5859375 L 4.7070312 11 L 6.1210938 12.414062 L 5.4140625 13.121094 L 4 11.707031 L 2.5859375 13.121094 L 1.8789062 12.414062 L 3.2929688 11 L 1.8789062 9.5859375 L 2.5859375 8.8789062 z M 12.949219 8.8789062 L 13.65625 9.5859375 L 10.828125 12.414062 L 10.121094 13.121094 L 9.4140625 12.414062 L 8 11 L 8.7070312 10.292969 L 10.121094 11.707031 L 12.949219 8.8789062 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_connect.svg b/tools/editor/icons/source/icon_connect.svg
new file mode 100644
index 0000000000..2261765bdf
--- /dev/null
+++ b/tools/editor/icons/source/icon_connect.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_connect.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="9.0509434"
+ inkscape:cy="11.261328"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ y="1043.3622"
+ x="1"
+ height="1.9999478"
+ width="5"
+ id="rect4155"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="4"
+ height="12"
+ x="7"
+ y="1038.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="3"
+ height="2"
+ x="11"
+ y="1040.3622" />
+ <rect
+ y="1046.3622"
+ x="11"
+ height="2"
+ width="3"
+ id="rect4161"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4163"
+ cx="7"
+ cy="1040.3622"
+ r="2" />
+ <rect
+ y="1040.3622"
+ x="5"
+ height="8.0000172"
+ width="4"
+ id="rect4165"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ r="2"
+ cy="1048.3622"
+ cx="7"
+ id="circle4167"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_connection_and_groups.svg b/tools/editor/icons/source/icon_connection_and_groups.svg
new file mode 100644
index 0000000000..97f615d9bc
--- /dev/null
+++ b/tools/editor/icons/source/icon_connection_and_groups.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_connection_and_groups.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="4.8878469"
+ inkscape:cy="12.667351"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ y="1048.3622"
+ x="2"
+ height="0.99993038"
+ width="6"
+ id="rect4155"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="2"
+ height="6.9999485"
+ x="10"
+ y="1045.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="2"
+ height="0.9999826"
+ x="12"
+ y="1046.3622" />
+ <rect
+ y="1050.3622"
+ x="12"
+ height="0.9999826"
+ width="2"
+ id="rect4161"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4163"
+ cx="10"
+ cy="1047.3622"
+ rx="2"
+ ry="1.9999913" />
+ <circle
+ r="2"
+ cy="1050.3622"
+ cx="10"
+ id="circle4167"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1047.3623"
+ x="8"
+ height="2.9998953"
+ width="2"
+ id="rect4201"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4203"
+ width="12"
+ height="1"
+ x="2"
+ y="1036.3622" />
+ <rect
+ y="1042.3622"
+ x="2"
+ height="1"
+ width="12"
+ id="rect4205"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-3"
+ x="1036.3622"
+ height="1"
+ width="6.0000348"
+ id="rect4207"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4209"
+ width="6.0000348"
+ height="1"
+ x="1036.3622"
+ y="-14" />
+ <ellipse
+ ry="1.5000032"
+ rx="1.5"
+ cy="1039.8622"
+ cx="5.5"
+ id="ellipse4214"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <ellipse
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4216"
+ cx="10.5"
+ cy="1039.8622"
+ rx="1.5"
+ ry="1.5000032" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_container.svg b/tools/editor/icons/source/icon_container.svg
new file mode 100644
index 0000000000..2d39efafee
--- /dev/null
+++ b/tools/editor/icons/source/icon_container.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="5.4993419"
+ inkscape:cy="7.9173851"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.8954305 1 1 1.8954305 1 3 L 3 3 L 3 1 z M 5 1 L 5 3 L 7 3 L 7 1 L 5 1 z M 9 1 L 9 3 L 11 3 L 11 1 L 9 1 z M 13 1 L 13 3 L 15 3 C 15 1.8954305 14.104569 1 13 1 z M 1 5 L 1 7 L 3 7 L 3 5 L 1 5 z M 13 5 L 13 7 L 15 7 L 15 5 L 13 5 z M 1 9 L 1 11 L 3 11 L 3 9 L 1 9 z M 13 9 L 13 11 L 15 11 L 15 9 L 13 9 z M 1 13 C 1 14.104569 1.8954305 15 3 15 L 3 13 L 1 13 z M 5 13 L 5 15 L 7 15 L 7 13 L 5 13 z M 9 13 L 9 15 L 11 15 L 11 13 L 9 13 z M 13 13 L 13 15 C 14.104569 15 15 14.104569 15 13 L 13 13 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control.svg b/tools/editor/icons/source/icon_control.svg
new file mode 100644
index 0000000000..675a9f5c43
--- /dev/null
+++ b/tools/editor/icons/source/icon_control.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_control.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="4.1094292"
+ inkscape:cy="4.5020156"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 4 A 4 4 0 0 1 12 8 A 4 4 0 0 1 8 12 A 4 4 0 0 1 4 8 A 4 4 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_bottom_center.svg b/tools/editor/icons/source/icon_control_align_bottom_center.svg
new file mode 100644
index 0000000000..d6c660bb2d
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_bottom_center.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_bottom_center.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="6"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_bottom_left.svg b/tools/editor/icons/source/icon_control_align_bottom_left.svg
new file mode 100644
index 0000000000..e718208f37
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_bottom_left.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_bottom_left.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="2"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_bottom_right.svg b/tools/editor/icons/source/icon_control_align_bottom_right.svg
new file mode 100644
index 0000000000..e4c5d884eb
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_bottom_right.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_bottom_right.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="10"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_bottom_wide.svg b/tools/editor/icons/source/icon_control_align_bottom_wide.svg
new file mode 100644
index 0000000000..93352dd3f5
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_bottom_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_bottom_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="11.086775"
+ inkscape:cy="10.073373"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="12.000001"
+ height="4.0000172"
+ x="1.9999995"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_center.svg b/tools/editor/icons/source/icon_control_align_center.svg
new file mode 100644
index 0000000000..0c34d13def
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_center.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_center.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="6"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_center_left.svg b/tools/editor/icons/source/icon_control_align_center_left.svg
new file mode 100644
index 0000000000..ea62c9457d
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_center_left.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_center_left.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.103241"
+ inkscape:cy="11.222422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="6"
+ height="4.0000172"
+ x="2"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_center_right.svg b/tools/editor/icons/source/icon_control_align_center_right.svg
new file mode 100644
index 0000000000..3212ce8538
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_center_right.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_center_right.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.103241"
+ inkscape:cy="11.222422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="6"
+ height="4.0000172"
+ x="8"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_left_center.svg b/tools/editor/icons/source/icon_control_align_left_center.svg
new file mode 100644
index 0000000000..716b6a2fd0
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_left_center.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_left_center.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="2"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_left_wide.svg b/tools/editor/icons/source/icon_control_align_left_wide.svg
new file mode 100644
index 0000000000..7092c78508
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_left_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_left_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="12.000017"
+ x="2"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_right_center.svg b/tools/editor/icons/source/icon_control_align_right_center.svg
new file mode 100644
index 0000000000..7e7e4f2b23
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_right_center.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_right_center.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.103241"
+ inkscape:cy="11.222422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="4.0000172"
+ x="10"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_right_wide.svg b/tools/editor/icons/source/icon_control_align_right_wide.svg
new file mode 100644
index 0000000000..ef2d105bd8
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_right_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_right_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="11.999983"
+ x="10"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_top_center.svg b/tools/editor/icons/source/icon_control_align_top_center.svg
new file mode 100644
index 0000000000..a5b60846f4
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_top_center.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_top_center.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="3.999948"
+ x="6"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_top_left.svg b/tools/editor/icons/source/icon_control_align_top_left.svg
new file mode 100644
index 0000000000..9f4631cf31
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_top_left.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_top_left.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="3.999948"
+ x="2"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_top_right.svg b/tools/editor/icons/source/icon_control_align_top_right.svg
new file mode 100644
index 0000000000..d968ba3d09
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_top_right.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_top_right.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="4"
+ height="3.999948"
+ x="10"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_top_wide.svg b/tools/editor/icons/source/icon_control_align_top_wide.svg
new file mode 100644
index 0000000000..886ef60fe0
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_top_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_top_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="12"
+ height="3.999948"
+ x="2"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_align_wide.svg b/tools/editor/icons/source/icon_control_align_wide.svg
new file mode 100644
index 0000000000..3f58ed93b6
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_align_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_align_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.6179596"
+ inkscape:cy="10.824674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="12"
+ height="12.000017"
+ x="2"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_hcenter_wide.svg b/tools/editor/icons/source/icon_control_hcenter_wide.svg
new file mode 100644
index 0000000000..3aafa0340e
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_hcenter_wide.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_hcenter_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.4389915"
+ inkscape:cy="4.9357422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="12"
+ height="3.9999824"
+ x="2"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_control_vcenter_wide.svg b/tools/editor/icons/source/icon_control_vcenter_wide.svg
new file mode 100644
index 0000000000..96fd44f3c8
--- /dev/null
+++ b/tools/editor/icons/source/icon_control_vcenter_wide.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_control_vcenter_wide.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.4389915"
+ inkscape:cy="4.9357422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#919191;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1038.3622"
+ x="1.9999826"
+ height="12.000034"
+ width="12.000034"
+ id="rect4169"
+ style="opacity:1;fill:#474747;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#d6d6d6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="12"
+ height="3.9999824"
+ x="1038.3622"
+ y="-9.9999914"
+ transform="matrix(0,1,-1,0,0,0)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_convex_polygon_shape.svg b/tools/editor/icons/source/icon_convex_polygon_shape.svg
new file mode 100644
index 0000000000..b867a58f6f
--- /dev/null
+++ b/tools/editor/icons/source/icon_convex_polygon_shape.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_convex_polygon_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_convex_polygon_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1-6"
+ inkscape:document-units="px"
+ inkscape:cy="10.815092"
+ inkscape:cx="5.572433"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-6">
+ <path
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8 1 L 1 4 L 1 12 L 8 15 L 15 12 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4159" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4143"
+ d="m 8,1051.3622 -7,-3 0,-8 7,3 z"
+ style="fill:#68b6ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8,1 1,4 8,15 15,12 Z"
+ transform="translate(0,1036.3622)"
+ id="path4145"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_create_new_scene_from.svg b/tools/editor/icons/source/icon_create_new_scene_from.svg
new file mode 100644
index 0000000000..f5a456773c
--- /dev/null
+++ b/tools/editor/icons/source/icon_create_new_scene_from.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_create_new_scene_from.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_create_new_scene_from.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.1061535"
+ inkscape:cy="9.360052"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 7 L 1 13 A 2 2 0 0 0 3 15 L 15 15 L 15 7 L 1 7 z M 4 9 L 5 9 L 5 11 L 7 11 L 7 12 L 5 12 L 5 14 L 4 14 L 4 12 L 2 12 L 2 11 L 4 11 L 4 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
+ id="rect4138"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-6.7823301"
+ inkscape:transform-center-y="-2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_close.svg b/tools/editor/icons/source/icon_curve_close.svg
new file mode 100644
index 0000000000..15909df7c8
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_close.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_curve_close.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_close.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.6078006"
+ inkscape:cy="10.161674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1049.3622 c -2,-9 -1,-10 8,-8"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4149"
+ cx="5"
+ cy="1041.3622"
+ r="2" />
+ <rect
+ y="1044.3622"
+ x="7.9999828"
+ height="2.0000348"
+ width="2.0000348"
+ id="rect4159"
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="5"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="13"
+ id="circle4145"
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2.0000348"
+ height="2.0000348"
+ x="5.9999828"
+ y="1046.3622" />
+ <rect
+ y="1042.3622"
+ x="10"
+ height="2"
+ width="2"
+ id="rect4157"
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_constant.svg b/tools/editor/icons/source/icon_curve_constant.svg
new file mode 100644
index 0000000000..6d9a7dc959
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_constant.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_constant.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.5203812"
+ inkscape:cy="8.9341513"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1046.3622 8,0"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_create.svg b/tools/editor/icons/source/icon_curve_create.svg
new file mode 100644
index 0000000000..8ab578e9a0
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_create.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_curve_create.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_create.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.3157064"
+ inkscape:cy="11.760735"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1049.3622 c -2,-9 -1,-10 8,-8"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4149"
+ cx="5"
+ cy="1041.3622"
+ r="2" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="5"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="13"
+ id="circle4145"
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4139"
+ width="8"
+ height="2"
+ x="8"
+ y="1047.3622" />
+ <rect
+ y="-13"
+ x="1044.3622"
+ height="2"
+ width="8.0000172"
+ id="rect4141"
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_curve.svg b/tools/editor/icons/source/icon_curve_curve.svg
new file mode 100644
index 0000000000..e3b6b64a4c
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_curve.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_curve_curve.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_curve.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.0020857"
+ inkscape:cy="8.8914924"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1049.3622 c -2,-9 -1,-10 8,-8"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4149"
+ cx="5"
+ cy="1041.3622"
+ r="2" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="5"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="13"
+ id="circle4145"
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:#84c2ff;fill-rule:evenodd;stroke:#84c2ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 1,1045.3622 8,-8"
+ id="path4263"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_delete.svg b/tools/editor/icons/source/icon_curve_delete.svg
new file mode 100644
index 0000000000..f40dd1eeb1
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_delete.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_curve_delete.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_delete.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.6676795"
+ inkscape:cy="7.1456593"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1049.3622 c -2,-9 -1,-10 8,-8"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4149"
+ cx="5"
+ cy="1041.3622"
+ r="2" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="5"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="13"
+ id="circle4145"
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.4644661,1046.2409 2.1213199,2.1213 -2.1213199,2.1213 1.4142136,1.4142 L 12,1049.7764 l 2.12132,2.1213 1.414214,-1.4142 -2.12132,-2.1213 2.12132,-2.1213 -1.414214,-1.4142 -2.12132,2.1213 -2.1213203,-2.1213 -1.4142136,1.4142 z"
+ id="rect4139"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_edit.svg b/tools/editor/icons/source/icon_curve_edit.svg
new file mode 100644
index 0000000000..f695e96b8c
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_edit.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_curve_edit.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.062239"
+ inkscape:cy="6.4210339"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1049.3622 c -2,-9 -1,-10 8,-8"
+ id="path4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4149"
+ cx="5"
+ cy="1041.3622"
+ r="2" />
+ <circle
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="5"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="13"
+ id="circle4145"
+ style="opacity:1;fill:#f5f5f5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16,1047.6532 -8,-3.291 3.290998,8 0.947104,-2.8201 1.8836,1.8835 0.941801,-0.9418 -1.8836,-1.8835 z"
+ id="rect4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_in.svg b/tools/editor/icons/source/icon_curve_in.svg
new file mode 100644
index 0000000000..9dc033aa95
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_in.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_in.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.1532813"
+ inkscape:cy="10.367959"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 2,1050.3622 c 5,0 8,-3 8,-8"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_in_out.svg b/tools/editor/icons/source/icon_curve_in_out.svg
new file mode 100644
index 0000000000..c68f906423
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_in_out.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_in_out.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.5203812"
+ inkscape:cy="8.2466513"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 c 5,0 3,-8 8,-8"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_linear.svg b/tools/editor/icons/source/icon_curve_linear.svg
new file mode 100644
index 0000000000..ae7a889a71
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_linear.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_linear.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.1141312"
+ inkscape:cy="8.1841513"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 8,-8"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_out.svg b/tools/editor/icons/source/icon_curve_out.svg
new file mode 100644
index 0000000000..080aa755dc
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_out.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_out.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.5203812"
+ inkscape:cy="8.2466513"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 c 0,-5 3,-8 8,-8"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_curve_out_in.svg b/tools/editor/icons/source/icon_curve_out_in.svg
new file mode 100644
index 0000000000..d2b4d06e5f
--- /dev/null
+++ b/tools/editor/icons/source/icon_curve_out_in.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="12"
+ height="12"
+ viewBox="0 0 12 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_curve_out_in.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.1141312"
+ inkscape:cy="8.1841513"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 c 0,-5 8,-3 8,-8"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_damped_spring_joint_2d.svg b/tools/editor/icons/source/icon_damped_spring_joint_2d.svg
new file mode 100644
index 0000000000..bf12810a6c
--- /dev/null
+++ b/tools/editor/icons/source/icon_damped_spring_joint_2d.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_damped_spring_joint_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_damped_spring_joint_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="8.6860688"
+ inkscape:cy="11.920466"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path4165"
+ transform="translate(0,1036.3622)"
+ d="m 4,3 0,2 8,3 0,-2 z m 0,5 0,2 8,3 0,-2 z"
+ style="opacity:1;fill:#708cea;fill-opacity:0.98823529;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5b7f2;fill-opacity:0.98823529;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 4,3 0,2 8,-2 0,-2 z m 0,5 0,2 8,-2 0,-2 z m 0,5 0,2 8,-2 0,-2 z"
+ transform="translate(0,1036.3622)"
+ id="rect4144"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_debug_continue.svg b/tools/editor/icons/source/icon_debug_continue.svg
new file mode 100644
index 0000000000..5d9ccd5a7e
--- /dev/null
+++ b/tools/editor/icons/source/icon_debug_continue.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_debug_continue.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="12.141752"
+ inkscape:cy="5.0854399"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="6"
+ height="2.0000174"
+ x="5"
+ y="1043.3622" />
+ <g
+ id="layer1-2"
+ inkscape:label="Layer 1"
+ transform="matrix(-0.71428934,0,0,0.88888708,2.4999495,121.81991)"
+ style="fill:#ff8484;fill-opacity:1">
+ <path
+ inkscape:transform-center-x="1.1667546"
+ sodipodi:type="star"
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ id="path4435"
+ sodipodi:sides="3"
+ sodipodi:cx="5"
+ sodipodi:cy="-1038.3622"
+ sodipodi:r1="3.6055512"
+ sodipodi:r2="1.8027756"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:transform-center-y="-9.6789057e-05"
+ transform="matrix(0,1.4411577,1.2942939,0,1331.1125,1030.6564)" />
+ </g>
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4137"
+ cx="4"
+ cy="1044.3622"
+ r="3" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_debug_next.svg b/tools/editor/icons/source/icon_debug_next.svg
new file mode 100644
index 0000000000..4dd9bb8c4b
--- /dev/null
+++ b/tools/editor/icons/source/icon_debug_next.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_debug_next.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.9909322"
+ inkscape:cy="6.93198"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="9.9999828"
+ height="2.0000174"
+ x="1037.3622"
+ y="-5.0000086"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <g
+ id="layer1-2"
+ inkscape:label="Layer 1"
+ transform="matrix(0,-0.57143854,-0.66666446,0,695.90584,1041.362)"
+ style="fill:#ff8484;fill-opacity:1">
+ <path
+ inkscape:transform-center-x="1.1667546"
+ sodipodi:type="star"
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ id="path4435"
+ sodipodi:sides="3"
+ sodipodi:cx="5"
+ sodipodi:cy="-1038.3622"
+ sodipodi:r1="3.6055512"
+ sodipodi:r2="1.8027756"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:transform-center-y="-9.6789057e-05"
+ transform="matrix(0,1.4411577,1.2942939,0,1331.1125,1030.6564)" />
+ </g>
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4321"
+ width="8"
+ height="2"
+ x="7"
+ y="1037.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="2"
+ width="6"
+ id="rect4323"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4325"
+ width="6"
+ height="2"
+ x="9"
+ y="1045.3622" />
+ <rect
+ y="1049.3622"
+ x="7"
+ height="2"
+ width="8"
+ id="rect4327"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_debug_step.svg b/tools/editor/icons/source/icon_debug_step.svg
new file mode 100644
index 0000000000..20d11f8710
--- /dev/null
+++ b/tools/editor/icons/source/icon_debug_step.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_debug_step.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="2.5279345"
+ inkscape:cy="7.1918803"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="9.9999828"
+ height="2.0000174"
+ x="1037.3622"
+ y="-3.0000174"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <g
+ id="layer1-2"
+ inkscape:label="Layer 1"
+ transform="matrix(-0.57143854,0,0,0.66666446,-2.0001146,354.45636)"
+ style="fill:#ff8484;fill-opacity:1">
+ <path
+ inkscape:transform-center-x="1.1667546"
+ sodipodi:type="star"
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ id="path4435"
+ sodipodi:sides="3"
+ sodipodi:cx="5"
+ sodipodi:cy="-1038.3622"
+ sodipodi:r1="3.6055512"
+ sodipodi:r2="1.8027756"
+ sodipodi:arg1="0.52359878"
+ sodipodi:arg2="1.5707963"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:transform-center-y="-9.6789057e-05"
+ transform="matrix(0,1.4411577,1.2942939,0,1331.1125,1030.6564)" />
+ </g>
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4321"
+ width="8"
+ height="2"
+ x="7"
+ y="1037.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="2"
+ width="6"
+ id="rect4323"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4325"
+ width="6"
+ height="2"
+ x="9"
+ y="1045.3622" />
+ <rect
+ y="1049.3622"
+ x="7"
+ height="2"
+ width="8"
+ id="rect4327"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-4"
+ x="1045.3622"
+ height="3"
+ width="1.9999654"
+ id="rect4348"
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_changed.svg b/tools/editor/icons/source/icon_dependency_changed.svg
new file mode 100644
index 0000000000..bbcd3f0c0a
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_changed.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_changed.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="6.9126947"
+ inkscape:cy="8.6287187"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 7 3 L 9 3 L 9 10 L 7 10 L 7 3 z M 7 11 L 9 11 L 9 13 L 7 13 L 7 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <path
+ id="path4158"
+ transform="translate(0,1036.3622)"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 7 3 L 9 3 L 9 10 L 7 10 L 7 3 z M 7 11 L 9 11 L 9 13 L 7 13 L 7 11 z "
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_changed_hl.svg b/tools/editor/icons/source/icon_dependency_changed_hl.svg
new file mode 100644
index 0000000000..54a37695ef
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_changed_hl.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_changed_hl.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="7.2709928"
+ inkscape:cy="8.1075579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4137"
+ cx="8"
+ cy="1044.3622"
+ r="7" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="2"
+ height="2"
+ x="7"
+ y="1047.3622" />
+ <rect
+ y="1039.3622"
+ x="7"
+ height="6.9999828"
+ width="2"
+ id="rect4158"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_local_changed.svg b/tools/editor/icons/source/icon_dependency_local_changed.svg
new file mode 100644
index 0000000000..799d69c4e0
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_local_changed.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_local_changed.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="3.4517439"
+ inkscape:cy="8.2965936"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 4 4 0 0 1 12 7 A 4 4 0 0 1 9 10.867188 L 9 11 L 7 11 L 7 9 L 8 9 A 2 2 0 0 0 10 7 A 2 2 0 0 0 8 5 A 2 2 0 0 0 6 7 L 4 7 A 4 4 0 0 1 8 3 z M 7 12 L 9 12 L 9 14 L 7 14 L 7 12 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <path
+ id="path4156"
+ transform="translate(0,1036.3622)"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 4 4 0 0 1 12 7 A 4 4 0 0 1 9 10.867188 L 9 11 L 7 11 L 7 9 L 8 9 A 2 2 0 0 0 10 7 A 2 2 0 0 0 8 5 A 2 2 0 0 0 6 7 L 4 7 A 4 4 0 0 1 8 3 z M 7 12 L 9 12 L 9 14 L 7 14 L 7 12 z "
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_local_changed_hl.svg b/tools/editor/icons/source/icon_dependency_local_changed_hl.svg
new file mode 100644
index 0000000000..67c04c312a
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_local_changed_hl.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_local_changed_hl.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="3.4517439"
+ inkscape:cy="8.2965936"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 4 4 0 0 1 12 7 A 4 4 0 0 1 9 10.867188 L 9 11 L 7 11 L 7 9 L 8 9 A 2 2 0 0 0 10 7 A 2 2 0 0 0 8 5 A 2 2 0 0 0 6 7 L 4 7 A 4 4 0 0 1 8 3 z M 7 12 L 9 12 L 9 14 L 7 14 L 7 12 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_ok.svg b/tools/editor/icons/source/icon_dependency_ok.svg
new file mode 100644
index 0000000000..76d7f54065
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_ok.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_ok.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="7.9274941"
+ inkscape:cy="10.170392"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 11.181641 4.9296875 L 12.595703 6.34375 L 8.3535156 10.585938 L 7.6464844 11.292969 L 6.9394531 12 L 3.4042969 8.4648438 L 4.8183594 7.0507812 L 6.9394531 9.171875 L 11.181641 4.9296875 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <path
+ id="path4156"
+ transform="translate(0,1036.3622)"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 11.181641 4.9296875 L 12.595703 6.34375 L 8.3535156 10.585938 L 7.6464844 11.292969 L 6.9394531 12 L 3.4042969 8.4648438 L 4.8183594 7.0507812 L 6.9394531 9.171875 L 11.181641 4.9296875 z "
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dependency_ok_hl.svg b/tools/editor/icons/source/icon_dependency_ok_hl.svg
new file mode 100644
index 0000000000..190458c532
--- /dev/null
+++ b/tools/editor/icons/source/icon_dependency_ok_hl.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_dependency_ok_hl.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="3.5953448"
+ inkscape:cy="9.4537959"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 11.181641 4.9296875 L 12.595703 6.34375 L 8.3535156 10.585938 L 7.6464844 11.292969 L 6.9394531 12 L 3.4042969 8.4648438 L 4.8183594 7.0507812 L 6.9394531 9.171875 L 11.181641 4.9296875 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_directional_light.svg b/tools/editor/icons/source/icon_directional_light.svg
new file mode 100644
index 0000000000..dbec755039
--- /dev/null
+++ b/tools/editor/icons/source/icon_directional_light.svg
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_directional_light.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="9.4601953"
+ inkscape:cy="9.2165454"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1040.3622 c -2.209139,0 -4,1.7909 -4,4 0,2.2091 1.790861,4 4,4 2.209139,0 4,-1.7909 4,-4 0,-2.2091 -1.790861,-4 -4,-4 z m 0,6.6667 c -3.5555555,1.7777 -1.7777778,0.8889 0,0 z"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssscc" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4192"
+ width="2"
+ height="2"
+ x="7"
+ y="1037.3622"
+ inkscape:transform-center-y="-6.0000174" />
+ <rect
+ inkscape:transform-center-y="-1.74e-05"
+ y="-15.000017"
+ x="1043.3622"
+ height="2"
+ width="2"
+ id="rect4194"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:transform-center-x="-6.0000172" />
+ <rect
+ inkscape:transform-center-x="-1.72e-05"
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4196"
+ width="2"
+ height="2"
+ x="-9.0000172"
+ y="-1051.3622"
+ inkscape:transform-center-y="5.9999826" />
+ <rect
+ inkscape:transform-center-y="-1.74e-05"
+ y="1.0000174"
+ x="-1045.3622"
+ height="2"
+ width="2"
+ id="rect4198"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,-1,1,0,0,0)"
+ inkscape:transform-center-x="5.9999826" />
+ <rect
+ inkscape:transform-center-y="-4.2426533"
+ y="737.13245"
+ x="-733.81873"
+ height="2"
+ width="2"
+ id="rect4200"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="4.2426321" />
+ <rect
+ inkscape:transform-center-x="-4.2426493"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4202"
+ width="2"
+ height="2"
+ x="743.13245"
+ y="725.81873"
+ inkscape:transform-center-y="-4.2426534" />
+ <rect
+ inkscape:transform-center-y="4.242628"
+ y="-751.13245"
+ x="731.81873"
+ height="2"
+ width="2"
+ id="rect4204"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(-0.70710678,0.70710678,-0.70710678,-0.70710678,0,0)"
+ inkscape:transform-center-x="-4.2426493" />
+ <rect
+ inkscape:transform-center-x="4.2426321"
+ transform="matrix(-0.70710678,-0.70710678,0.70710678,-0.70710678,0,0)"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4206"
+ width="2"
+ height="2"
+ x="-745.13245"
+ y="-739.81873"
+ inkscape:transform-center-y="4.242628" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_duplicate.svg b/tools/editor/icons/source/icon_duplicate.svg
new file mode 100644
index 0000000000..bb88f577e9
--- /dev/null
+++ b/tools/editor/icons/source/icon_duplicate.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_duplicate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_duplicate.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="9.1887289"
+ inkscape:cy="11.094045"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4137"
+ width="1"
+ height="10.000034"
+ x="3"
+ y="1041.3622" />
+ <rect
+ y="1050.3622"
+ x="3"
+ height="1.0000174"
+ width="8"
+ id="rect4139"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5,1038.3622 0,11 8,0 0,-7 -4,0 0,-4 z m 5,0 0,3 3,0 z"
+ id="rect4158"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dynamic_font.svg b/tools/editor/icons/source/icon_dynamic_font.svg
new file mode 100644
index 0000000000..a40c0e3408
--- /dev/null
+++ b/tools/editor/icons/source/icon_dynamic_font.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_duplicate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_dynamic_font.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.411248"
+ inkscape:cy="8.6761759"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ id="path4246"
+ d="m 1,1037.3622 0,2 0,1 1,0 a 1,1 0 0 1 1,-1 l 2,0 0,6 a 1,1 0 0 1 -1,1 l 0,1 1,0 2,0 1,0 0,-1 a 1,1 0 0 1 -1,-1 l 0,-6 2,0 a 1,1 0 0 1 1,1 l 1,0 0,-1 0,-2 -4,0 -2,0 -4,0 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#84c2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 5 L 4 7 L 4 8 L 5 8 A 1 1 0 0 1 6 7 L 8 7 L 8 13 A 1 1 0 0 1 7 14 L 7 15 L 8 15 L 10 15 L 11 15 L 11 14 A 1 1 0 0 1 10 13 L 10 7 L 12 7 A 1 1 0 0 1 13 8 L 14 8 L 14 7 L 14 5 L 10 5 L 8 5 L 4 5 z "
+ id="rect4177"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_dynamic_font_data.svg b/tools/editor/icons/source/icon_dynamic_font_data.svg
new file mode 100644
index 0000000000..468b472d7e
--- /dev/null
+++ b/tools/editor/icons/source/icon_dynamic_font_data.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_duplicate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_dynamic_font_data.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.442498"
+ inkscape:cy="7.5824259"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ id="path4246"
+ d="m 1,1037.3622 0,2 0,1 1,0 a 1,1 0 0 1 1,-1 l 2,0 0,6 a 1,1 0 0 1 -1,1 l 0,1 1,0 2,0 1,0 0,-1 a 1,1 0 0 1 -1,-1 l 0,-6 2,0 a 1,1 0 0 1 1,1 l 1,0 0,-1 0,-2 -4,0 -2,0 -4,0 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 5 L 4 7 L 4 8 L 5 8 A 1 1 0 0 1 6 7 L 8 7 L 8 13 A 1 1 0 0 1 7 14 L 7 15 L 8 15 L 10 15 L 11 15 L 11 14 A 1 1 0 0 1 10 13 L 10 7 L 12 7 A 1 1 0 0 1 13 8 L 14 8 L 14 7 L 14 5 L 10 5 L 8 5 L 4 5 z "
+ id="rect4177"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_edit.svg b/tools/editor/icons/source/icon_edit.svg
new file mode 100644
index 0000000000..6da05a6603
--- /dev/null
+++ b/tools/editor/icons/source/icon_edit.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000002"
+ inkscape:cx="10.361255"
+ inkscape:cy="7.0279565"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1.7071068,1047.8266 1,1051.3622 l 3.5355339,-0.7071 7.7781741,-7.7782 -2.828427,-2.8284 z m 9.1923882,-9.1924 2.828427,2.8285 1.414214,-1.4142 -2.828428,-2.8285 z"
+ id="rect4135"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_edit_key.svg b/tools/editor/icons/source/icon_edit_key.svg
new file mode 100644
index 0000000000..46795bef35
--- /dev/null
+++ b/tools/editor/icons/source/icon_edit_key.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_edit_key.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000002"
+ inkscape:cx="7.2649878"
+ inkscape:cy="7.6615896"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1.7071068,1047.8266 1,1051.3622 l 3.5355339,-0.7071 7.7781741,-7.7782 -2.828427,-2.8284 z m 9.1923882,-9.1924 2.828427,2.8285 1.414214,-1.4142 -2.828428,-2.8285 z"
+ id="rect4135"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ <ellipse
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4135"
+ cx="3.5"
+ cy="1039.8622"
+ rx="2.5"
+ ry="2.5000086" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_edit_pivot.svg b/tools/editor/icons/source/icon_edit_pivot.svg
new file mode 100644
index 0000000000..8ae55ad8b7
--- /dev/null
+++ b/tools/editor/icons/source/icon_edit_pivot.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit_pivot.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_edit_pivot.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="13.221947"
+ inkscape:cy="4.9248867"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16,1047.6532 -8,-3.291 3.290998,8 0.947104,-2.8201 1.8836,1.8835 0.941801,-0.9418 -1.8836,-1.8835 z"
+ id="rect4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 5 L 9 5 L 9 1 L 7 1 z M 1 7 L 1 9 L 5 9 L 5 7 L 1 7 z M 11 7 L 11 7.6132812 L 14.371094 9 L 15 9 L 15 7 L 11 7 z M 7 11 L 7 15 L 9 15 L 9 14.375 L 7.6113281 11 L 7 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4158" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_edit_resource.svg b/tools/editor/icons/source/icon_edit_resource.svg
new file mode 100644
index 0000000000..1950988ca2
--- /dev/null
+++ b/tools/editor/icons/source/icon_edit_resource.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_edit_resource.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="63.999997"
+ inkscape:cx="1.8775976"
+ inkscape:cy="5.2018914"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 1.9472656,1044.3555 a 1.0001,1.0001 0 0 0 -0.546875,1.8066 l 2.9335938,2.2012 -2.9335938,2.1992 a 1.0001,1.0001 0 1 0 1.1992188,1.5996 l 4,-3 a 1.0001,1.0001 0 0 0 0,-1.5996 l -4,-3 a 1.0001,1.0001 0 0 0 -0.6523438,-0.207 z"
+ id="path4137"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_editor_3d_handle.svg b/tools/editor/icons/source/icon_editor_3d_handle.svg
new file mode 100644
index 0000000000..255d1801a9
--- /dev/null
+++ b/tools/editor/icons/source/icon_editor_3d_handle.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_editor_3d_handle.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="-3.99911"
+ inkscape:cy="7.9772677"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4137"
+ cx="8"
+ cy="1044.3622"
+ r="7" />
+ <circle
+ r="5.0000172"
+ cy="1044.3622"
+ cx="8"
+ id="circle4156"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_editor_handle.svg b/tools/editor/icons/source/icon_editor_handle.svg
new file mode 100644
index 0000000000..17ed2a61e7
--- /dev/null
+++ b/tools/editor/icons/source/icon_editor_handle.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_editor_handle.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="2.7092551"
+ inkscape:cy="4.8390476"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <ellipse
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4137"
+ cx="4"
+ cy="1048.3622"
+ rx="4"
+ ry="3.9999914" />
+ <ellipse
+ cy="1048.3622"
+ cx="4"
+ id="circle4156"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ rx="2.8571527"
+ ry="2.8571465" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_editor_pivot.svg b/tools/editor/icons/source/icon_editor_pivot.svg
new file mode 100644
index 0000000000..8ce7d48970
--- /dev/null
+++ b/tools/editor/icons/source/icon_editor_pivot.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_editor_pivot.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254835"
+ inkscape:cx="6.673653"
+ inkscape:cy="8.3546727"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#ffffff;fill-opacity:0.70588237;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 6 0 L 6 6 L 0 6 L 0 10 L 6 10 L 6 16 L 10 16 L 10 10 L 16 10 L 16 6 L 10 6 L 10 0 L 6 0 z M 7 7 L 9 7 L 9 9 L 7 9 L 7 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4170" />
+ <path
+ style="fill:#ff8484;fill-opacity:0.58823532;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7 1 L 7 6 L 9 6 L 9 1 L 7 1 z M 1 7 L 1 9 L 6 9 L 6 7 L 1 7 z M 10 7 L 10 9 L 15 9 L 15 7 L 10 7 z M 7 10 L 7 15 L 9 15 L 9 10 L 7 10 z "
+ transform="translate(0,1036.3622)"
+ id="rect4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_editor_plugin.svg b/tools/editor/icons/source/icon_editor_plugin.svg
new file mode 100644
index 0000000000..b9460de683
--- /dev/null
+++ b/tools/editor/icons/source/icon_editor_plugin.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_editor_plugin.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-2.7705057"
+ inkscape:cy="8.7644499"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 2,1038.3622 0,8 8,0 0,-8 z"
+ id="path4195"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4197"
+ cx="13"
+ cy="1042.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1049.3622"
+ cx="6"
+ id="circle4199"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4201"
+ width="2"
+ height="2"
+ x="5"
+ y="1046.3622" />
+ <rect
+ y="1041.3622"
+ x="10"
+ height="2"
+ width="2"
+ id="rect4203"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_error.svg b/tools/editor/icons/source/icon_error.svg
new file mode 100644
index 0000000000..831bac859a
--- /dev/null
+++ b/tools/editor/icons/source/icon_error.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_error.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="-12.047246"
+ inkscape:cy="6.3485985"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="8"
+ height="8"
+ x="2.220446e-16"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_error_sign.svg b/tools/editor/icons/source/icon_error_sign.svg
new file mode 100644
index 0000000000..01c1dbb4d5
--- /dev/null
+++ b/tools/editor/icons/source/icon_error_sign.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ viewBox="0 0 32 32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_error_sign.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.854335"
+ inkscape:cx="-0.43086145"
+ inkscape:cy="15.165332"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <path
+ style="fill:#ff8484;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1048.3622 12,0 6,-6 0,-12 -6,-6 -12,0 -6,6 0,12 z"
+ id="path4156"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="4"
+ height="9.0000172"
+ x="14"
+ y="1028.3622" />
+ <rect
+ y="1040.3622"
+ x="14"
+ height="4.0000172"
+ width="4"
+ id="rect4162"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_event_player.svg b/tools/editor/icons/source/icon_event_player.svg
new file mode 100644
index 0000000000..3f5f7da693
--- /dev/null
+++ b/tools/editor/icons/source/icon_event_player.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_rename.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_event_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.654979"
+ inkscape:cy="8.3200241"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 15 L 15 15 L 15 1 L 1 1 z M 3 3 L 13 3 L 13 13 L 3 13 L 3 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 5 3 L 5 9 L 7 9 L 7 3 L 5 3 z M 9 3 L 9 9 L 11 9 L 11 3 L 9 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4158" />
+ <rect
+ y="1039.3622"
+ x="5"
+ height="10.000017"
+ width="1"
+ id="rect4166"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="1"
+ height="10.000017"
+ x="9"
+ y="1039.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_favorites.svg b/tools/editor/icons/source/icon_favorites.svg
new file mode 100644
index 0000000000..12d4b56897
--- /dev/null
+++ b/tools/editor/icons/source/icon_favorites.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_favorites.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_favorites.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="3.3144029"
+ inkscape:cy="13.991937"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8.0000004,1038.0862 5.62591,1042.1835 1,1043.2813 l 3.2360991,3.4074 -0.3586608,4.6735 4.1388649,-1.9766 4.1572048,1.9421 -0.395342,-4.6532 3.221834,-3.3932 -4.625909,-1.0978 -2.3740906,-4.0973 z"
+ id="path4254"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_big.svg b/tools/editor/icons/source/icon_file_big.svg
new file mode 100644
index 0000000000..38ad9b707a
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_big.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_new.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_big.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="32.899003"
+ inkscape:cy="32.88081"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-8"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <g
+ id="layer1-8"
+ inkscape:label="Layer 1"
+ transform="translate(0,-1.6949463e-5)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10,5 0,54 44,0 0,-36 -18,0 0,-18 z m 31,0 0,13 13,0 z"
+ transform="translate(0,988.36222)"
+ id="rect4158"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_dialog.svg b/tools/editor/icons/source/icon_file_dialog.svg
new file mode 100644
index 0000000000..9dee04c220
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_dialog.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_confirmation_dialog.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_dialog.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="2.7469423"
+ inkscape:cy="8.766806"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 5 7 L 8 7 L 8 8 L 11 8 L 11 13 L 5 13 L 5 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_list.svg b/tools/editor/icons/source/icon_file_list.svg
new file mode 100644
index 0000000000..82dad29aac
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_list.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_file_list.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_list.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="9.0213026"
+ inkscape:cy="13.513819"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4135"
+ width="2"
+ height="2.0000174"
+ x="2"
+ y="1038.3622" />
+ <rect
+ y="1038.3622"
+ x="6"
+ height="2.0000174"
+ width="8"
+ id="rect4159"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1043.3622"
+ x="2"
+ height="2.0000174"
+ width="2"
+ id="rect4169"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4171"
+ width="8"
+ height="2.0000174"
+ x="6"
+ y="1043.3622" />
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4173"
+ width="2"
+ height="2.0000174"
+ x="2"
+ y="1048.3622" />
+ <rect
+ y="1048.3622"
+ x="6"
+ height="2.0000174"
+ width="8"
+ id="rect4175"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_server.svg b/tools/editor/icons/source/icon_file_server.svg
new file mode 100644
index 0000000000..1e1f9b6e42
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_server.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_server.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="9.1396438"
+ inkscape:cy="11.33674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#c5c5c5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 8 L 1 11 L 15 11 L 15 8 L 1 8 z M 2 9 L 3 9 L 3 10 L 2 10 L 2 9 z M 4 9 L 5 9 L 5 10 L 4 10 L 4 9 z M 1 12 L 1 15 L 15 15 L 15 12 L 1 12 z M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 z M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 z "
+ transform="translate(0,1036.3622)"
+ id="rect4160" />
+ <rect
+ style="opacity:1;fill:#c5c5c5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="6"
+ height="4"
+ x="5"
+ y="1038.3622" />
+ <rect
+ style="opacity:1;fill:#c5c5c5;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4175"
+ width="3"
+ height="1"
+ x="5"
+ y="1037.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_server_active.svg b/tools/editor/icons/source/icon_file_server_active.svg
new file mode 100644
index 0000000000..f01ba578da
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_server_active.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_server_active.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="11.80766"
+ inkscape:cy="9.9439864"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 8 L 1 11 L 15 11 L 15 8 L 1 8 z M 2 9 L 3 9 L 3 10 L 2 10 L 2 9 z M 4 9 L 5 9 L 5 10 L 4 10 L 4 9 z M 1 12 L 1 15 L 15 15 L 15 12 L 1 12 z M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 z M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 z "
+ transform="translate(0,1036.3622)"
+ id="rect4160" />
+ <rect
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="6"
+ height="4"
+ x="5"
+ y="1038.3622" />
+ <rect
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4175"
+ width="3"
+ height="1"
+ x="5"
+ y="1037.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_file_thumbnail.svg b/tools/editor/icons/source/icon_file_thumbnail.svg
new file mode 100644
index 0000000000..48d90dd3c6
--- /dev/null
+++ b/tools/editor/icons/source/icon_file_thumbnail.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_file_thumbnail.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="13.370672"
+ inkscape:cy="8.243673"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="5"
+ height="5.0000172"
+ x="2"
+ y="1045.3622" />
+ <rect
+ y="1038.3622"
+ x="2"
+ height="5"
+ width="5"
+ id="rect4162"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1045.3622"
+ x="9"
+ height="5.0000172"
+ width="5"
+ id="rect4164"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4166"
+ width="5"
+ height="5"
+ x="9"
+ y="1038.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_fixed_material.svg b/tools/editor/icons/source/icon_fixed_material.svg
new file mode 100644
index 0000000000..5be74f490d
--- /dev/null
+++ b/tools/editor/icons/source/icon_fixed_material.svg
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_material.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_fixed_material.svg">
+ <defs
+ id="defs4">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="6.3347915"
+ inkscape:cy="8.4073248"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4202"
+ d="m 8,1037.3622 a 7,7.0000001 0 0 0 -7,7 7,7.0000001 0 0 0 7,7 7,7.0000001 0 0 0 7,-7 7,7.0000001 0 0 0 -7,-7 z m -2,2 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_folder.svg b/tools/editor/icons/source/icon_folder.svg
new file mode 100644
index 0000000000..ca16a5737f
--- /dev/null
+++ b/tools/editor/icons/source/icon_folder.svg
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_folder.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="8.0935814"
+ inkscape:cy="8.7176878"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2,2 0,1 -1,0 0,2 0,6 0,2 1,0 0,1 12,0 0,-1 1,0 L 15,6 14,6 14,5 9,5 9,3 8,3 8,2 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4136"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccccccccc" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4143"
+ cx="2"
+ cy="1039.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1049.3622"
+ cx="2"
+ id="circle4150"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4154"
+ cx="14"
+ cy="1049.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1042.3622"
+ cx="14"
+ id="circle4158"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4162"
+ cx="8"
+ cy="1039.3622"
+ r="1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1040.3622 0,1 1,0 a 1,1 0 0 1 -1,-1 z"
+ id="rect4166"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_folder_big.svg b/tools/editor/icons/source/icon_folder_big.svg
new file mode 100644
index 0000000000..818eaa2ba3
--- /dev/null
+++ b/tools/editor/icons/source/icon_folder_big.svg
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder_big.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_folder_big.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="27.662311"
+ inkscape:cy="41.159533"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.3622)">
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4135"
+ cx="13"
+ cy="1039.3583"
+ r="5.0039101" />
+ <circle
+ r="5.0039101"
+ cy="1039.3583"
+ cx="50.99609"
+ id="circle4137"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ r="5.0039101"
+ cy="1005.3622"
+ cx="13"
+ id="circle4139"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4141"
+ cx="51"
+ cy="1013.3661"
+ r="5.0039101" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4143"
+ width="48"
+ height="26.000017"
+ x="8"
+ y="1013.3622" />
+ <rect
+ y="1008.3622"
+ x="13"
+ height="36"
+ width="38"
+ id="rect4145"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4147"
+ width="8"
+ height="8"
+ x="8"
+ y="1008.3622" />
+ <rect
+ y="1005.3622"
+ x="8"
+ height="2.9999311"
+ width="28"
+ id="rect4149"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4151"
+ cx="31"
+ cy="1005.3622"
+ r="5.0039101" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4153"
+ width="18"
+ height="6.9999485"
+ x="13"
+ y="1000.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 36,1004.3622 0,0.5 a 3.4999914,3.4999914 0 0 1 0.04102,-0.5 l -0.04102,0 z m 0,0.5 0,3.5 3.5,0 a 3.4999914,3.4999914 0 0 1 -3.5,-3.5 z m 3.5,3.5 0.5,0 0,-0.039 a 3.4999914,3.4999914 0 0 1 -0.5,0.039 z"
+ id="rect4155"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_font.svg b/tools/editor/icons/source/icon_font.svg
new file mode 100644
index 0000000000..36567fe10c
--- /dev/null
+++ b/tools/editor/icons/source/icon_font.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_font.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.223545"
+ inkscape:cy="5.7245794"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4212"
+ width="14"
+ height="2"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="7"
+ height="14.000017"
+ width="2"
+ id="rect4214"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4216"
+ width="6"
+ height="0.99999976"
+ x="5"
+ y="1050.3622" />
+ <rect
+ y="-1.9999998"
+ x="1037.3622"
+ height="0.99999976"
+ width="4"
+ id="rect4218"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4220"
+ width="4"
+ height="0.99999976"
+ x="1037.3622"
+ y="-15" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 2 3 L 2 5 A 2 2 0 0 1 4 3 L 2 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4224" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 12 3 A 2 2 0 0 1 14 5 L 14 3 L 12 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4226" />
+ <path
+ id="path4232"
+ d="m 5,1050.3622 a 2,2 0 0 0 2,-2 l 0,2 -2,0 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 11,1050.3622 a 2,2 0 0 1 -2,-2 l 0,2 2,0 z"
+ id="path4234" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_forward.svg b/tools/editor/icons/source/icon_forward.svg
new file mode 100644
index 0000000000..f6cb351cc1
--- /dev/null
+++ b/tools/editor/icons/source/icon_forward.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="16"
+ viewBox="0 0 8 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_forward.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.4850647"
+ inkscape:cy="8.9717887"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 2.0293363,1037.3633 c 0.3235485,0.01 0.622658,0.1743 0.8027343,0.4433 l 4,6 c 0.2239059,0.3359 0.2239059,0.7735 0,1.1094 l -4,6 c -0.5489722,0.8228 -1.8316762,0.4344 -1.8320312,-0.5547 l 0,-12 c 9.424e-4,-0.5631 0.4664154,-1.0144 1.0292969,-0.998 z"
+ id="path4159"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_g_d_script.svg b/tools/editor/icons/source/icon_g_d_script.svg
new file mode 100644
index 0000000000..f2b8cd9343
--- /dev/null
+++ b/tools/editor/icons/source/icon_g_d_script.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_g_d_script.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_g_d_script.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.7306265"
+ inkscape:cy="9.0071681"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 6.4355469 3.2578125 A 5.0000172 5.0000172 0 0 0 5.7460938 3.5371094 L 3.7578125 2.34375 L 2.34375 3.7578125 L 3.5390625 5.7519531 A 5.0000172 5.0000172 0 0 0 3.2539062 6.4375 L 1 7 L 1 9 L 3.2578125 9.5644531 A 5.0000172 5.0000172 0 0 0 3.5371094 10.251953 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.7519531 12.460938 A 5.0000172 5.0000172 0 0 0 6.4375 12.746094 L 7 15 L 9 15 L 9.5644531 12.742188 A 5.0000172 5.0000172 0 0 0 10.251953 12.462891 L 12.242188 13.65625 L 13.65625 12.242188 L 12.460938 10.248047 A 5.0000172 5.0000172 0 0 0 12.746094 9.5625 L 15 9 L 15 7 L 12.742188 6.4355469 A 5.0000172 5.0000172 0 0 0 12.462891 5.7480469 L 13.65625 3.7578125 L 12.242188 2.34375 L 10.248047 3.5390625 A 5.0000172 5.0000172 0 0 0 9.5625 3.2539062 L 9 1 L 7 1 z M 8 6 A 2.0000174 2.0000174 0 0 1 10 8 A 2.0000174 2.0000174 0 0 1 8 10 A 2.0000174 2.0000174 0 0 1 6 8 A 2.0000174 2.0000174 0 0 1 8 6 z "
+ transform="translate(0,1036.3622)"
+ id="path4176" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_gizmo_directional_light.svg b/tools/editor/icons/source/icon_gizmo_directional_light.svg
new file mode 100644
index 0000000000..0682c270ac
--- /dev/null
+++ b/tools/editor/icons/source/icon_gizmo_directional_light.svg
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ viewBox="0 0 32 32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_gizmo_directional_light.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="13.90442"
+ inkscape:cy="22.349302"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <circle
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4156"
+ cx="16"
+ cy="1036.3622"
+ r="7.0000172" />
+ <rect
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4169"
+ width="4"
+ height="5.0000172"
+ x="14"
+ y="1021.3622"
+ rx="0"
+ ry="0"
+ inkscape:transform-center-y="-12.500009" />
+ <rect
+ inkscape:transform-center-y="-8.8388501"
+ ry="0"
+ rx="0"
+ y="706.505"
+ x="742.13245"
+ height="5.0000172"
+ width="4"
+ id="rect4171"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="-8.8388459" />
+ <rect
+ inkscape:transform-center-x="-12.500018"
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="4"
+ height="5.0000172"
+ x="1034.3622"
+ y="-31.000027"
+ rx="0"
+ ry="0"
+ inkscape:transform-center-y="-1.754751e-05" />
+ <rect
+ inkscape:transform-center-y="8.8388073"
+ ry="0"
+ rx="0"
+ y="-759.13245"
+ x="719.505"
+ height="5.0000172"
+ width="4"
+ id="rect4175"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(-0.70710678,0.70710678,-0.70710678,-0.70710678,0,0)"
+ inkscape:transform-center-x="-8.8388458" />
+ <rect
+ inkscape:transform-center-x="-2.6589615e-05"
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4177"
+ width="4"
+ height="5.0000172"
+ x="-18.000027"
+ y="-1051.3622"
+ rx="0"
+ ry="0"
+ inkscape:transform-center-y="12.499974" />
+ <rect
+ inkscape:transform-center-y="8.8388074"
+ ry="0"
+ rx="0"
+ y="-736.505"
+ x="-746.13245"
+ height="5.0000172"
+ width="4"
+ id="rect4179"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(-0.70710678,-0.70710678,0.70710678,-0.70710678,0,0)"
+ inkscape:transform-center-x="8.8388116" />
+ <rect
+ inkscape:transform-center-x="12.499964"
+ transform="matrix(0,-1,1,0,0,0)"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4181"
+ width="4"
+ height="5.0000172"
+ x="-1038.3622"
+ y="1.0000273"
+ rx="0"
+ ry="0"
+ inkscape:transform-center-y="-1.7409218e-05" />
+ <rect
+ inkscape:transform-center-y="-8.83885"
+ ry="0"
+ rx="0"
+ y="729.13245"
+ x="-723.505"
+ height="5.0000172"
+ width="4"
+ id="rect4183"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="8.8388113" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_gizmo_light.svg b/tools/editor/icons/source/icon_gizmo_light.svg
new file mode 100644
index 0000000000..c9ce60273a
--- /dev/null
+++ b/tools/editor/icons/source/icon_gizmo_light.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ viewBox="0 0 32 32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_gizmo_light.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_gizmo_light.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="18.311796"
+ inkscape:cy="18.635805"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <path
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 16 1 A 10.000017 10.000017 0 0 0 6 11 A 10.000017 10.000017 0 0 0 16 21 A 10.000017 10.000017 0 0 0 26 11 A 10.000017 10.000017 0 0 0 16 1 z M 16 4 A 7 7 0 0 1 23 11 A 7 7 0 0 1 16 18 A 7 7 0 0 1 9 11 A 7 7 0 0 1 16 4 z "
+ transform="translate(0,1020.3622)"
+ id="path4162" />
+ <path
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 12 19 L 12 24 A 2 2 0 0 0 14 26 L 18 26 A 2 2 0 0 0 20 24 L 20 19 L 12 19 z "
+ transform="translate(0,1020.3622)"
+ id="rect4164" />
+ <rect
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="4"
+ height="2.0000174"
+ x="14"
+ y="1048.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_gizmo_spatial_sample_player.svg b/tools/editor/icons/source/icon_gizmo_spatial_sample_player.svg
new file mode 100644
index 0000000000..68375f9487
--- /dev/null
+++ b/tools/editor/icons/source/icon_gizmo_spatial_sample_player.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ viewBox="0 0 32 32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_gizmo_spatial_sample_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="18.414591"
+ inkscape:cy="16.81826"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <path
+ style="fill:#f7f5cf;fill-opacity:1;fill-rule:evenodd;stroke:#f7f5cf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16,1024.3622 0,24 -8,-8 -4,0 0,-8 4,0 z"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <rect
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4145"
+ width="3"
+ height="8.0000172"
+ x="20"
+ y="1032.3622" />
+ <rect
+ y="1026.3622"
+ x="26"
+ height="19.999949"
+ width="3"
+ id="rect4147"
+ style="opacity:1;fill:#f7f5cf;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_gizmo_spatial_stream_player.svg b/tools/editor/icons/source/icon_gizmo_spatial_stream_player.svg
new file mode 100644
index 0000000000..5acff1ec76
--- /dev/null
+++ b/tools/editor/icons/source/icon_gizmo_spatial_stream_player.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ viewBox="0 0 32 32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_gizmo_spatial_stream_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="18.768034"
+ inkscape:cy="16.106066"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5cf;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 23.941406 2.0019531 A 2.0002 2.0002 0 0 0 23.451172 2.0761719 L 9.4511719 6.0761719 A 2.0002 2.0002 0 0 0 8 8 L 8 20.029297 A 4.5000086 4.5000086 0 0 0 7.5 20 A 4.5000086 4.5000086 0 0 0 3 24.5 A 4.5000086 4.5000086 0 0 0 7.5 29 A 4.5000086 4.5000086 0 0 0 11.96875 25 L 12 25 L 12 24.5 L 12 9.5097656 L 22 6.6523438 L 22 16.03125 A 4.5 4.5 0 0 0 21.5 16 A 4.5 4.5 0 0 0 17 20.5 A 4.5 4.5 0 0 0 21.5 25 A 4.5 4.5 0 0 0 25.96875 21 L 26 21 L 26 20.5 L 26 4 A 2.0002 2.0002 0 0 0 23.941406 2.0019531 z "
+ transform="translate(0,1020.3622)"
+ id="path4187" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_godot.svg b/tools/editor/icons/source/icon_godot.svg
new file mode 100644
index 0000000000..927c3ee053
--- /dev/null
+++ b/tools/editor/icons/source/icon_godot.svg
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_godot.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.9021021"
+ inkscape:cy="11.249083"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.01724138,0,0,0.01724138,-0.82758647,1035.0456)"
+ id="layer1-5"
+ inkscape:label="Layer 1">
+ <g
+ transform="matrix(1.0688992,0,0,1.1334985,-45.061194,-81.689066)"
+ id="g4149">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none"
+ d="m 116.99388,715.36604 43.13957,-74.51381 75.99672,-171.42666 271.088,-13.63746 282.06373,14.1696 138.45065,255.56931 -25.0756,66.96734 -376.12685,53.39482 -367.70391,-40.32222 z"
+ id="path3239"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ <g
+ id="g3412"
+ transform="matrix(12.995388,0,0,-12.995388,898.37246,704.73082)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 0,-3.942 c 0,-0.39 -0.25,-0.734 -0.621,-0.852 L -6.835,-6.8 c -0.273,-0.091 -0.57,-0.042 -0.8,0.128 -0.232,0.168 -0.37,0.437 -0.37,0.721 l 0,4.305 -5.818,-1.108 0,-4.381 c 0,-0.447 -0.332,-0.824 -0.775,-0.885 l -8.41,-1.152 c -0.039,-0.003 -0.081,-0.008 -0.121,-0.008 -0.214,0 -0.424,0.078 -0.588,0.22 -0.195,0.172 -0.306,0.416 -0.306,0.676 l 0,4.638 -4.341,-0.018 0,-10e-4 -0.318,10e-4 -0.319,-10e-4 0,10e-4 -4.34,0.018 0,-4.638 c 0,-0.26 -0.112,-0.504 -0.307,-0.676 -0.164,-0.142 -0.374,-0.22 -0.587,-0.22 -0.041,0 -0.082,0.005 -0.123,0.008 l -8.41,1.152 c -0.442,0.061 -0.774,0.438 -0.774,0.885 l 0,4.381 -5.819,1.108 0,-4.305 c 0,-0.284 -0.137,-0.553 -0.368,-0.721 -0.232,-0.17 -0.529,-0.219 -0.802,-0.128 l -6.215,2.006 c -0.369,0.118 -0.619,0.462 -0.619,0.852 l 0,3.942 -3.837,1.29 c -0.19,-0.811 -0.295,-1.642 -0.295,-2.481 0,-10.301 14.512,-18.252 32.448,-18.309 l 0.022,0 0.023,0 c 17.936,0.057 32.448,8.008 32.448,18.309 0,0.766 -0.088,1.521 -0.247,2.266 L 0,0 Z"
+ style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3414" />
+ </g>
+ <g
+ id="g3416"
+ transform="matrix(12.995388,0,0,-12.995388,140.10982,467.34929)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 0,-16.047 2.163,-0.729 c 0.364,-0.122 0.61,-0.462 0.61,-0.847 l 0,-3.936 4.426,-1.428 0,4.154 c 0,0.27 0.118,0.52 0.323,0.689 0.206,0.172 0.474,0.241 0.739,0.192 l 7.608,-1.452 c 0.422,-0.079 0.728,-0.448 0.728,-0.877 l 0,-4.338 6.62,-0.904 0,4.509 c 0,0.241 0.096,0.467 0.264,0.635 0.167,0.166 0.394,0.259 0.633,0.259 l 0.002,0 5.551,-0.022 5.549,0.022 c 0.245,-10e-4 0.468,-0.093 0.635,-0.259 0.169,-0.168 0.264,-0.394 0.264,-0.635 l 0,-4.509 6.621,0.904 0,4.338 c 0,0.429 0.304,0.798 0.726,0.877 l 7.609,1.452 c 0.262,0.049 0.533,-0.02 0.738,-0.192 0.205,-0.169 0.325,-0.419 0.325,-0.689 l 0,-4.154 4.425,1.428 0,3.936 c 0,0.385 0.245,0.725 0.609,0.847 l 1.475,0.497 0,16.279 0.04,0 c 1.437,1.834 2.767,3.767 4.042,5.828 -1.694,2.883 -3.768,5.459 -5.986,7.846 -2.057,-1.035 -4.055,-2.208 -5.942,-3.456 -0.944,0.938 -2.008,1.706 -3.052,2.509 -1.027,0.824 -2.183,1.428 -3.281,2.132 0.327,2.433 0.489,4.828 0.554,7.327 -2.831,1.424 -5.85,2.369 -8.903,3.047 -1.219,-2.048 -2.334,-4.267 -3.304,-6.436 -1.152,0.192 -2.309,0.264 -3.467,0.277 l 0,0.002 c -0.008,0 -0.015,-0.002 -0.022,-0.002 -0.008,0 -0.015,0.002 -0.022,0.002 l 0,-0.002 c -1.16,-0.013 -2.316,-0.085 -3.468,-0.277 -0.97,2.169 -2.084,4.388 -3.305,6.436 C 19.475,24.555 16.456,23.61 13.626,22.186 13.69,19.687 13.852,17.292 14.18,14.859 13.081,14.155 11.925,13.551 10.898,12.727 9.855,11.924 8.79,11.156 7.846,10.218 5.958,11.466 3.961,12.639 1.904,13.674 -0.314,11.287 -2.388,8.711 -4.082,5.828 -2.807,3.767 -1.477,1.834 -0.04,0 L 0,0 Z"
+ style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3418" />
+ </g>
+ <g
+ id="g3420"
+ transform="matrix(12.995388,0,0,-12.995388,411.4457,567.42812)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 c 0,-3.611 -2.926,-6.537 -6.537,-6.537 -3.608,0 -6.535,2.926 -6.535,6.537 0,3.609 2.927,6.533 6.535,6.533 C -2.926,6.533 0,3.609 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3422" />
+ </g>
+ <g
+ id="g3424"
+ transform="matrix(12.995388,0,0,-12.995388,391.00655,572.46636)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 c 0,-2.396 -1.941,-4.337 -4.339,-4.337 -2.396,0 -4.339,1.941 -4.339,4.337 0,2.396 1.943,4.339 4.339,4.339 C -1.941,4.339 0,2.396 0,0"
+ style="fill:#414042;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3426" />
+ </g>
+ <g
+ id="g3428"
+ transform="matrix(12.995388,0,0,-12.995388,526.30933,660.10985)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 c -1.162,0 -2.104,0.856 -2.104,1.912 l 0,6.018 c 0,1.054 0.942,1.912 2.104,1.912 1.162,0 2.106,-0.858 2.106,-1.912 l 0,-6.018 C 2.106,0.856 1.162,0 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3430" />
+ </g>
+ <g
+ id="g3432"
+ transform="matrix(12.995388,0,0,-12.995388,641.18731,567.42812)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 c 0,-3.611 2.926,-6.537 6.537,-6.537 3.609,0 6.535,2.926 6.535,6.537 0,3.609 -2.926,6.533 -6.535,6.533 C 2.926,6.533 0,3.609 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3434" />
+ </g>
+ <g
+ id="g3436"
+ transform="matrix(12.995388,0,0,-12.995388,661.63165,572.46636)">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 0,0 c 0,-2.396 1.941,-4.337 4.336,-4.337 2.398,0 4.339,1.941 4.339,4.337 0,2.396 -1.941,4.339 -4.339,4.339 C 1.941,4.339 0,2.396 0,0"
+ style="fill:#414042;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path3438" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_comment.svg b/tools/editor/icons/source/icon_graph_comment.svg
new file mode 100644
index 0000000000..5ad8fc8253
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_comment.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_comment.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="2.9377959"
+ inkscape:cy="8.9727512"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="2"
+ height="11.999983"
+ x="3"
+ y="1039.3622" />
+ <rect
+ y="1047.3622"
+ x="1"
+ height="1.999948"
+ width="12"
+ id="rect4172"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1039.3622"
+ x="9"
+ height="11.999983"
+ width="2"
+ id="rect4174"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4176"
+ width="12"
+ height="1.999948"
+ x="1"
+ y="1041.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_cube_uniform.svg b/tools/editor/icons/source/icon_graph_cube_uniform.svg
new file mode 100644
index 0000000000..63774a7431
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_cube_uniform.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_cube_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.6772247"
+ inkscape:cy="6.7867928"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#eac968;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 C 0.8954305 0 0 0.8954 0 2 L 0 12 C 0 13.1046 0.8954305 14 2 14 L 12 14 C 13.104569 14 14 13.1046 14 12 L 14 2 C 14 0.8954 13.104569 0 12 0 L 2 0 z M 6.9726562 2 A 0.71438238 0.71438238 0 0 1 7.3203125 2.0742188 L 11.605469 4.2167969 A 0.71438238 0.71438238 0 0 1 12 4.8574219 L 12 9.1425781 A 0.71438238 0.71438238 0 0 1 11.605469 9.78125 L 7.3203125 11.923828 A 0.71438238 0.71438238 0 0 1 6.6796875 11.923828 L 2.3945312 9.78125 A 0.71438238 0.71438238 0 0 1 2 9.1425781 L 2 4.8574219 A 0.71438238 0.71438238 0 0 1 2.3945312 4.2167969 L 6.6796875 2.0742188 A 0.71438238 0.71438238 0 0 1 6.9726562 2 z M 7 3.5136719 L 4.3105469 4.8574219 L 7 6.2011719 L 9.6894531 4.8574219 L 7 3.5136719 z M 3.4277344 6.0117188 L 3.4277344 8.7011719 L 6.2851562 10.128906 L 6.2851562 7.4414062 L 3.4277344 6.0117188 z M 10.572266 6.0117188 L 7.7148438 7.4414062 L 7.7148438 10.128906 L 10.572266 8.7011719 L 10.572266 6.0117188 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_curve_map.svg b/tools/editor/icons/source/icon_graph_curve_map.svg
new file mode 100644
index 0000000000..6c3594cb1b
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_curve_map.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_curve_map.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.7717442"
+ inkscape:cy="7.4133706"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-opacity:0;fill-rule:evenodd;stroke:#f6f6f6;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1049.3622 c 8,0 9,0 9,-9"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:1;fill:#68d0ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 11 4 A 2 2 0 0 0 9 6 A 2 2 0 0 0 11 8 A 2 2 0 0 0 13 6 A 2 2 0 0 0 11 4 z M 6 9 A 2 2 0 0 0 4 11 A 2 2 0 0 0 6 13 A 2 2 0 0 0 8 11 A 2 2 0 0 0 6 9 z "
+ transform="translate(0,1038.3622)"
+ id="circle4176" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_default_texture.svg b/tools/editor/icons/source/icon_graph_default_texture.svg
new file mode 100644
index 0000000000..8d1c78ddd7
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_default_texture.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_default_texture.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="0.057070465"
+ inkscape:cy="7.746251"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#eae068;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 2 L 2 12 L 12 12 L 12 2 L 2 2 z M 11 4 L 11 9 L 3 9 L 5 6 L 7 8 L 11 4 z "
+ transform="translate(0,1038.3622)"
+ id="rect4220" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_edit.svg b/tools/editor/icons/source/icon_graph_edit.svg
new file mode 100644
index 0000000000..1bfba0fe30
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_edit.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader_graph.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="6.9848175"
+ inkscape:cy="5.5849072"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 5 13 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 8.7929688 10.207031 L 10.207031 8.7929688 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 13 5 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4198" />
+ <ellipse
+ r="2"
+ style="opacity:1;fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4152"
+ cx="3"
+ cy="1039.3622" />
+ <g
+ id="layer1-0"
+ inkscape:label="Layer 1"
+ transform="matrix(0.50000003,0,0,0.50000003,7.5,525.68107)">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0"
+ id="rect4135"
+ d="M 1.7071068,1047.8266 1,1051.3622 l 3.5355339,-0.7071 7.7781741,-7.7782 -2.828427,-2.8284 z m 9.1923882,-9.1924 2.828427,2.8285 1.414214,-1.4142 -2.828428,-2.8285 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_input.svg b/tools/editor/icons/source/icon_graph_input.svg
new file mode 100644
index 0000000000..265fb7279e
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_input.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_input.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.3654942"
+ inkscape:cy="6.8821206"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <circle
+ style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4155"
+ cx="7"
+ cy="1045.3622"
+ r="6" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_node.svg b/tools/editor/icons/source/icon_graph_node.svg
new file mode 100644
index 0000000000..1916e9287b
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_node.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader_graph.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_node.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="9.5712298"
+ inkscape:cy="6.1223869"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 5 13 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 8.7929688 10.207031 L 10.207031 8.7929688 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 13 5 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4198" />
+ <ellipse
+ r="2"
+ style="opacity:1;fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4152"
+ cx="3"
+ cy="1039.3622" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4205"
+ cx="13"
+ cy="1049.3622"
+ r="2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_rgb.svg b/tools/editor/icons/source/icon_graph_rgb.svg
new file mode 100644
index 0000000000..a00e97a104
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_rgb.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_rgb.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="1.5006521"
+ inkscape:cy="11.075034"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1039.3622 a 4.0000172,4.0000172 0 0 0 -4,4 4.0000172,4.0000172 0 0 0 0.03906,0.5195 4.0000172,4.0000172 0 0 0 -2.039062,3.4805 4.0000172,4.0000172 0 0 0 4,4 4.0000172,4.0000172 0 0 0 1.998047,-0.541 4.0000172,4.0000172 0 0 0 2.001953,0.541 4.0000172,4.0000172 0 0 0 4,-4 4.0000172,4.0000172 0 0 0 -2.037109,-3.4824 4.0000172,4.0000172 0 0 0 0.03711,-0.5176 4.0000172,4.0000172 0 0 0 -4,-4 z"
+ id="circle4161"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1040.3622 a 3,3 0 0 0 -3,3 3,3 0 0 0 0.210937,1.1055 A 3,3 0 0 0 2,1047.3622 a 3,3 0 0 0 3,3 3,3 0 0 0 2,-0.7676 3,3 0 0 0 2,0.7676 3,3 0 0 0 3,-3 3,3 0 0 0 -2.2148438,-2.8906 A 3,3 0 0 0 10,1043.3622 a 3,3 0 0 0 -3,-3 z"
+ id="circle4268"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4262"
+ cx="7"
+ cy="1043.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1047.3622"
+ cx="5"
+ id="circle4264"
+ style="opacity:1;fill:#0000ff;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#00ff00;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4266"
+ cx="9"
+ cy="1047.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1043.3622"
+ cx="7"
+ id="circle4281"
+ style="opacity:1;fill:#ff0000;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#0000ff;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4283"
+ cx="5"
+ cy="1047.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1047.3622"
+ cx="9"
+ id="circle4285"
+ style="opacity:1;fill:#00ff00;fill-opacity:0.39215686;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_rgb_op.svg b/tools/editor/icons/source/icon_graph_rgb_op.svg
new file mode 100644
index 0000000000..fdd3d3a9f4
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_rgb_op.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_rgb_op.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="0.48418609"
+ inkscape:cy="11.870529"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 4,1050.3622 6,0 0,-10 -6,0 z"
+ id="path4144"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="2"
+ height="2"
+ x="1"
+ y="1041.3622" />
+ <rect
+ y="1047.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4159"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="2"
+ height="2"
+ x="11"
+ y="1044.3622" />
+ <rect
+ style="opacity:1;fill:#ff4646;fill-opacity:0.8627451;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4163"
+ width="4"
+ height="2"
+ x="5"
+ y="1041.3622" />
+ <rect
+ y="1044.3622"
+ x="5"
+ height="2"
+ width="4"
+ id="rect4165"
+ style="opacity:1;fill:#46ff46;fill-opacity:0.8627451;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#4646ff;fill-opacity:0.8627451;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="4"
+ height="2"
+ x="5"
+ y="1047.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_rgb_uniform.svg b/tools/editor/icons/source/icon_graph_rgb_uniform.svg
new file mode 100644
index 0000000000..359c86d61a
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_rgb_uniform.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_rgb_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.0781037"
+ inkscape:cy="7.3277795"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2,1038.3622 c -1.10457,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.89543,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 l 0,-10 c 0,-1.1046 -0.895431,-2 -2,-2 z"
+ id="rect4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 2 A 3 3 0 0 0 4 5 A 3 3 0 0 0 4.2109375 6.1054688 A 3 3 0 0 0 2 9 A 3 3 0 0 0 5 12 A 3 3 0 0 0 7 11.232422 A 3 3 0 0 0 9 12 A 3 3 0 0 0 12 9 A 3 3 0 0 0 9.7851562 6.109375 A 3 3 0 0 0 10 5 A 3 3 0 0 0 7 2 z "
+ transform="translate(0,1038.3622)"
+ id="circle4268" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4262"
+ cx="7"
+ cy="1043.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1047.3622"
+ cx="5"
+ id="circle4264"
+ style="opacity:1;fill:#0000ff;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#00ff00;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4266"
+ cx="9"
+ cy="1047.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1043.3622"
+ cx="7"
+ id="circle4281"
+ style="opacity:1;fill:#ff0000;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#0000ff;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4283"
+ cx="5"
+ cy="1047.3622"
+ r="3" />
+ <circle
+ r="3"
+ cy="1047.3622"
+ cx="9"
+ id="circle4285"
+ style="opacity:1;fill:#00ff00;fill-opacity:0.39215687;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_scalar.svg b/tools/editor/icons/source/icon_graph_scalar.svg
new file mode 100644
index 0000000000..7a75ddba78
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_scalar.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_scalar.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.1198735"
+ inkscape:cy="6.5048182"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6 2 C 4.3431458 2 3 3.3431 3 5 C 3 6.6569 4.3431458 8 6 8 L 8 8 A 1.0000174 1.0000174 0 0 1 9 9 A 1.0000174 1.0000174 0 0 1 8 10 L 3 10 L 3 12 L 8 12 C 9.6568542 12 11 10.6569 11 9 C 11 7.3431 9.6568542 6 8 6 L 6 6 A 1.0000174 1.0000174 0 0 1 5 5 A 1.0000174 1.0000174 0 0 1 6 4 L 11 4 L 11 2 L 6 2 z "
+ transform="translate(0,1038.3622)"
+ id="rect4348" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_scalar_interp.svg b/tools/editor/icons/source/icon_graph_scalar_interp.svg
new file mode 100644
index 0000000000..47b619d608
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_scalar_interp.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_scalar_interp.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="2.5036881"
+ inkscape:cy="7.3934142"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cf68ea;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 2,1050.3622 10,-10"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_scalar_op.svg b/tools/editor/icons/source/icon_graph_scalar_op.svg
new file mode 100644
index 0000000000..fcb54f9aa0
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_scalar_op.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_scalar_op.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1972896"
+ inkscape:cy="8.4316461"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cf68ea;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 4,1 C 3.4477381,1.0001 3.0000552,1.4477 3,2 l 0,10 c 5.52e-5,0.5523 0.4477381,0.9999 1,1 l 6,0 c 0.552262,-10e-5 0.999945,-0.4477 1,-1 L 11,2 C 10.999945,1.4477 10.552262,1.0001 10,1 Z m 1,3 4,3 -4,3 z"
+ transform="translate(0,1038.3622)"
+ id="path4144"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccccc" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="2"
+ height="2"
+ x="1"
+ y="1041.3622" />
+ <rect
+ y="1047.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4159"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="2"
+ height="2"
+ x="11"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_scalar_uniform.svg b/tools/editor/icons/source/icon_graph_scalar_uniform.svg
new file mode 100644
index 0000000000..e5e5edea9c
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_scalar_uniform.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_scalar_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.0555126"
+ inkscape:cy="8.8981623"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 A 2 2 0 0 0 0 2 L 0 12 A 2 2 0 0 0 2 14 L 12 14 A 2 2 0 0 0 14 12 L 14 2 A 2 2 0 0 0 12 0 L 2 0 z M 6 2 L 11 2 L 11 4 L 6 4 A 1.0000174 1.0000174 0 0 0 5 5 A 1.0000174 1.0000174 0 0 0 6 6 L 8 6 C 9.6568542 6 11 7.3431 11 9 C 11 10.6569 9.6568542 12 8 12 L 3 12 L 3 10 L 8 10 A 1.0000174 1.0000174 0 0 0 9 9 A 1.0000174 1.0000174 0 0 0 8 8 L 6 8 C 4.3431458 8 3 6.6569 3 5 C 3 3.3431 4.3431458 2 6 2 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_scalars_to_vec.svg b/tools/editor/icons/source/icon_graph_scalars_to_vec.svg
new file mode 100644
index 0000000000..0f2994a606
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_scalars_to_vec.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_scalars_to_vec.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.4222736"
+ inkscape:cy="8.4198974"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1045.3622 5,0"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cf68ea;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1040.3622 5,0 0,10 -5,0"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cf68ea;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1045.3622 -5,0"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_texscreen.svg b/tools/editor/icons/source/icon_graph_texscreen.svg
new file mode 100644
index 0000000000..89d000d7cb
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_texscreen.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_texscreen.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.5348921"
+ inkscape:cy="8.3718235"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#f6f6f6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2,1041.3622 10,0 0,8 -10,0 z"
+ id="rect4154" />
+ <rect
+ style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="8"
+ height="1.0000174"
+ x="3"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_texture_uniform.svg b/tools/editor/icons/source/icon_graph_texture_uniform.svg
new file mode 100644
index 0000000000..440f83642c
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_texture_uniform.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_texture_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="10.372248"
+ inkscape:cy="6.4853857"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#eae068;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 C 0.8954305 0 0 0.8954 0 2 L 0 12 C 0 13.1046 0.8954305 14 2 14 L 12 14 C 13.104569 14 14 13.1046 14 12 L 14 2 C 14 0.8954 13.104569 0 12 0 L 2 0 z M 2 2 L 12 2 L 12 12 L 2 12 L 2 2 z M 11 4 L 7 8 L 5 6 L 3 9 L 11 9 L 11 4 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_time.svg b/tools/editor/icons/source/icon_graph_time.svg
new file mode 100644
index 0000000000..77b80e920b
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_time.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_time.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="2.306914"
+ inkscape:cy="7.4704168"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="2"
+ height="3.9999652"
+ x="6"
+ y="1042.3622" />
+ <rect
+ y="1044.3622"
+ x="6"
+ height="1.9999652"
+ width="4"
+ id="rect4159"
+ style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:transform-center-x="-0.66666667"
+ inkscape:transform-center-y="-3.4787369e-05" />
+ <path
+ style="opacity:1;fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 0 A 7 7 0 0 0 0 7 A 7 7 0 0 0 7 14 A 7 7 0 0 0 14 7 A 7 7 0 0 0 7 0 z M 7 2 A 5.0000172 5.0000172 0 0 1 12 7 A 5.0000172 5.0000172 0 0 1 7 12 A 5.0000172 5.0000172 0 0 1 2 7 A 5.0000172 5.0000172 0 0 1 7 2 z "
+ transform="translate(0,1038.3622)"
+ id="path4166" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_dp.svg b/tools/editor/icons/source/icon_graph_vec_dp.svg
new file mode 100644
index 0000000000..8994d8ce59
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_dp.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_dp.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="64"
+ inkscape:cx="4.9677869"
+ inkscape:cy="7.0295494"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 1,1042.3622 2,6 2,-6"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <circle
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4160"
+ cx="7"
+ cy="1046.3622"
+ r="1" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path4171"
+ d="m 9,1042.3622 2,6 2,-6"
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_interp.svg b/tools/editor/icons/source/icon_graph_vec_interp.svg
new file mode 100644
index 0000000000..885b342a54
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_interp.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_interp.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="2.5478823"
+ inkscape:cy="7.6364821"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 2,1050.3622 10,-10"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_length.svg b/tools/editor/icons/source/icon_graph_vec_length.svg
new file mode 100644
index 0000000000..aa01e3ef2a
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_length.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_length.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="5.8031361"
+ inkscape:cy="7.1300276"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="12.000017"
+ x="0"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="12"
+ height="12.000017"
+ width="2"
+ id="rect4156"
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 5,1043.3622 2,5 2,-5"
+ id="path4158"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_op.svg b/tools/editor/icons/source/icon_graph_vec_op.svg
new file mode 100644
index 0000000000..da7540ce86
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_op.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_op.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.0410396"
+ inkscape:cy="8.8691461"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#b8ea68;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 4 1 C 3.4477381 1.0001 3.0000552 1.4477 3 2 L 3 3 L 1 3 L 1 5 L 3 5 L 3 9 L 1 9 L 1 11 L 3 11 L 3 12 C 3.0000552 12.5523 3.4477381 12.9999 4 13 L 10 13 C 10.552262 12.9999 10.999945 12.5523 11 12 L 11 8 L 13 8 L 13 6 L 11 6 L 11 2 C 10.999945 1.4477 10.552262 1.0001 10 1 L 4 1 z M 5 4 L 9 7 L 5 10 L 5 4 z "
+ transform="translate(0,1038.3622)"
+ id="path4144" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_scalar_op.svg b/tools/editor/icons/source/icon_graph_vec_scalar_op.svg
new file mode 100644
index 0000000000..aeb2626120
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_scalar_op.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_scalar_op.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.8222896"
+ inkscape:cy="9.2753961"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cf68ea;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 3 7 L 3 9 L 1 9 L 1 11 L 3 11 L 3 12 C 3.0000552 12.5523 3.4477381 12.9999 4 13 L 10 13 C 10.552262 12.9999 10.999945 12.5523 11 12 L 11 8 L 13 8 L 13 7 L 9 7 L 5 10 L 5 7 L 3 7 z "
+ transform="translate(0,1038.3622)"
+ id="path4233" />
+ <path
+ id="path4236"
+ d="m 3,1045.3622 0,-2 -2,0 0,-2 2,0 0,-1 c 5.52e-5,-0.5523 0.4477381,-0.9999 1,-1 l 6,0 c 0.552262,10e-5 0.999945,0.4477 1,1 l 0,4 2,0 0,1 -4,0 -4,-3 0,3 -2,0 z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#b8ea68;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vec_to_scalars.svg b/tools/editor/icons/source/icon_graph_vec_to_scalars.svg
new file mode 100644
index 0000000000..fb58db9d78
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vec_to_scalars.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vec_to_scalars.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.4222736"
+ inkscape:cy="8.4198974"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1045.3622 -5,0"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cf68ea;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12,1040.3622 -5,0 0,10 5,0"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#cf68ea;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1045.3622 5,0"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vecs_to_xform.svg b/tools/editor/icons/source/icon_graph_vecs_to_xform.svg
new file mode 100644
index 0000000000..f8ba3eb4b8
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vecs_to_xform.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vecs_to_xform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.8910236"
+ inkscape:cy="10.294897"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ea686c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 7,1044.3613 a 1.0001,1.0001 0 1 0 0,2 l 5,0 a 1.0001,1.0001 0 1 0 0,-2 l -5,0 z"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#b8ea68;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2 1 A 1.0001 1.0001 0 1 0 2 3 L 6 3 L 6 6 L 2 6 A 1.0001 1.0001 0 1 0 2 8 L 6 8 L 6 11 L 2 11 A 1.0001 1.0001 0 1 0 2 13 L 7 13 A 1.0001 1.0001 0 0 0 8 12 L 8 7.1679688 A 1.0001 1.0001 0 0 0 8 6.8398438 L 8 2 A 1.0001 1.0001 0 0 0 7 1 L 2 1 z "
+ transform="translate(0,1038.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vector.svg b/tools/editor/icons/source/icon_graph_vector.svg
new file mode 100644
index 0000000000..e7f6bd927f
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vector.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vector.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.8941631"
+ inkscape:cy="7.6796075"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#b8ea68;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 8,1038.3614 0,2 -5,0 0,2 5,0 0,2 3,-3 z m -3.65625,5.6289 -1.714844,1.0293 0.513672,0.8574 3,5 c 0.388501,0.647 1.326343,0.647 1.714844,0 l 3,-5 0.513672,-0.8574 -1.714844,-1.0293 -0.513672,0.8574 L 7,1048.418 4.857422,1044.8477 Z"
+ id="path4209"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_vector_uniform.svg b/tools/editor/icons/source/icon_graph_vector_uniform.svg
new file mode 100644
index 0000000000..2310938af5
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_vector_uniform.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_vector_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="6.2039653"
+ inkscape:cy="7.5980148"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2,0 C 0.8954305,0 0,0.8954305 0,2 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 14,2 C 14,0.8954305 13.104569,0 12,0 Z M 8,0 11,3 8,6 8,4 3,4 3,2 8,2 Z M 4.34375,5.6289062 4.8574219,6.4863281 7,10.056641 9.1425781,6.4863281 9.65625,5.6289062 l 1.714844,1.0292969 -0.513672,0.8574219 -3.0000001,5 c -0.3885014,0.647055 -1.3263424,0.647055 -1.7148438,0 l -3,-5 -0.5136719,-0.8574219 z"
+ transform="translate(0,1038.3622)"
+ id="rect4147"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssssssscccccccccccccccccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 23,0 0,2 -5,0 0,2 5,0 0,2 3,-3 z m -3.65625,5.6289062 -1.714844,1.0292969 0.513672,0.8574219 3,5 c 0.388501,0.647056 1.326343,0.647056 1.714844,0 l 3,-5 L 26.371094,6.6582031 24.65625,5.6289062 24.142578,6.4863281 22,10.056641 19.857422,6.4863281 Z"
+ transform="translate(0,1038.3622)"
+ id="path4209"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform.svg b/tools/editor/icons/source/icon_graph_xform.svg
new file mode 100644
index 0000000000..c9b027ee2d
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.4813283"
+ inkscape:cy="7.7204422"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="12"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="1"
+ height="1.0000174"
+ width="3"
+ id="rect4156"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="3"
+ height="1"
+ x="1"
+ y="1050.3622" />
+ <rect
+ y="1050.3622"
+ x="10"
+ height="1"
+ width="3"
+ id="rect4160"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="3"
+ height="1.0000174"
+ x="10"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="12"
+ height="12"
+ width="1"
+ id="rect4164"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ea686c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 4,1049.3622 0,-7 3,3 3,-3 0,7"
+ id="path4166"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_mult.svg b/tools/editor/icons/source/icon_graph_xform_mult.svg
new file mode 100644
index 0000000000..71fca83f3d
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_mult.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_mult.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="64"
+ inkscape:cx="6.8982224"
+ inkscape:cy="7.1692759"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ea686c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 1,1049.3622 0,-7 2,3 2,-3 0,7"
+ id="path4166"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4160"
+ d="m 9,1049.3622 0,-7 2,3 2,-3 0,7"
+ style="fill:none;fill-rule:evenodd;stroke:#ea686c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4162"
+ cx="7"
+ cy="1045.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_scalar_func.svg b/tools/editor/icons/source/icon_graph_xform_scalar_func.svg
new file mode 100644
index 0000000000..45fd97a671
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_scalar_func.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_scalar_func.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.3566697"
+ inkscape:cy="9.063202"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="2"
+ height="4.9999824"
+ x="6"
+ y="1042.3622" />
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9.0703125 1 A 3 3 0 0 0 7.5 1.4023438 A 3 3 0 0 0 6 4 L 8 4 A 1 1 0 0 1 9 3 A 1 1 0 0 1 10 4 L 12 4 A 3 3 0 0 0 10.5 1.4023438 A 3 3 0 0 0 9.0703125 1 z "
+ transform="translate(0,1038.3622)"
+ id="path4164" />
+ <rect
+ y="1042.3622"
+ x="10"
+ height="1.0000174"
+ width="2"
+ id="rect4166"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 10 A 3 3 0 0 0 3.5 12.597656 A 3 3 0 0 0 6.5 12.597656 A 3 3 0 0 0 8 10 L 6 10 A 1 1 0 0 1 5 11 A 1 1 0 0 1 4 10 L 2 10 z "
+ transform="translate(0,1038.3622)"
+ id="path4170" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="2"
+ height="1.0000174"
+ x="6"
+ y="-1048.3622"
+ transform="scale(1,-1)" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4176"
+ width="6"
+ height="2"
+ x="4"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_to_vecs.svg b/tools/editor/icons/source/icon_graph_xform_to_vecs.svg
new file mode 100644
index 0000000000..cc113e72fd
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_to_vecs.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_to_vecs.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="-2.5152264"
+ inkscape:cy="10.232397"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ea686c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 7,1044.3613 a 1.0001,1.0001 0 1 1 0,2 l -5,0 a 1.0001,1.0001 0 1 1 0,-2 l 5,0 z"
+ id="path4154"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#b8ea68;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 12,1039.3622 a 1.0001,1.0001 0 1 1 0,2 l -4,0 0,3 4,0 a 1.0001,1.0001 0 1 1 0,2 l -4,0 0,3 4,0 a 1.0001,1.0001 0 1 1 0,2 l -5,0 a 1.0001,1.0001 0 0 1 -1,-1 l 0,-4.832 a 1.0001,1.0001 0 0 1 0,-0.3282 l 0,-4.8398 a 1.0001,1.0001 0 0 1 1,-1 l 5,0 z"
+ id="path4155"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_uniform.svg b/tools/editor/icons/source/icon_graph_xform_uniform.svg
new file mode 100644
index 0000000000..f1cdcd408c
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_uniform.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_uniform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.0470074"
+ inkscape:cy="8.0773899"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 C 0.8954305 0 0 0.8954 0 2 L 0 12 C 0 13.1046 0.8954305 14 2 14 L 12 14 C 13.104569 14 14 13.1046 14 12 L 14 2 C 14 0.8954 13.104569 0 12 0 L 2 0 z M 1 1 L 2 1 L 4 1 L 4 2 L 2 2 L 2 12 L 4 12 L 4 13 L 2 13 L 1 13 L 1 12 L 1 2 L 1 1 z M 10 1 L 13 1 L 13 12 L 13 13 L 10 13 L 10 12 L 12 12 L 12 2 L 10 2 L 10 1 z M 9.9707031 3 A 1.0001 1.0001 0 0 1 11 4 L 11 11 L 9 11 L 9 6.4140625 L 7.7070312 7.7070312 A 1.0001 1.0001 0 0 1 6.2929688 7.7070312 L 5 6.4140625 L 5 11 L 3 11 L 3 4 A 1.0001 1.0001 0 0 1 3.984375 3.0019531 A 1.0001 1.0001 0 0 1 4.7070312 3.2929688 L 7 5.5859375 L 9.2929688 3.2929688 A 1.0001 1.0001 0 0 1 9.9707031 3 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_vec_func.svg b/tools/editor/icons/source/icon_graph_xform_vec_func.svg
new file mode 100644
index 0000000000..0d141bc646
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_vec_func.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_vec_func.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.8879197"
+ inkscape:cy="10.406952"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="2"
+ height="4.9999824"
+ x="6"
+ y="1042.3622" />
+ <path
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9.0703125 1 A 3 3 0 0 0 7.5 1.4023438 A 3 3 0 0 0 6 4 L 8 4 A 1 1 0 0 1 9 3 A 1 1 0 0 1 10 4 L 12 4 A 3 3 0 0 0 10.5 1.4023438 A 3 3 0 0 0 9.0703125 1 z "
+ transform="translate(0,1038.3622)"
+ id="path4164" />
+ <rect
+ y="1042.3622"
+ x="10"
+ height="1.0000174"
+ width="2"
+ id="rect4166"
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 10 A 3 3 0 0 0 3.5 12.597656 A 3 3 0 0 0 6.5 12.597656 A 3 3 0 0 0 8 10 L 6 10 A 1 1 0 0 1 5 11 A 1 1 0 0 1 4 10 L 2 10 z "
+ transform="translate(0,1038.3622)"
+ id="path4170" />
+ <rect
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="2"
+ height="1.0000174"
+ x="6"
+ y="-1048.3622"
+ transform="scale(1,-1)" />
+ <rect
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4176"
+ width="6"
+ height="2"
+ x="4"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_vec_imult.svg b/tools/editor/icons/source/icon_graph_xform_vec_imult.svg
new file mode 100644
index 0000000000..74dc1ba7e3
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_vec_imult.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_vec_imult.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.9196664"
+ inkscape:cy="7.2417215"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 1,1042.3622 2,6 2,-6"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <circle
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4160"
+ cx="7"
+ cy="1046.3622"
+ r="1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4160-1"
+ d="m 9,1049.3622 0,-7 2,3 2,-3 0,7"
+ style="fill:none;fill-rule:evenodd;stroke:#ea686c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_graph_xform_vec_mult.svg b/tools/editor/icons/source/icon_graph_xform_vec_mult.svg
new file mode 100644
index 0000000000..c3e59abd46
--- /dev/null
+++ b/tools/editor/icons/source/icon_graph_xform_vec_mult.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_graph_xform_vec_mult.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.0118539"
+ inkscape:cy="7.2425107"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9,1042.3622 2,6 2,-6"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <circle
+ style="opacity:1;fill:#b8ea68;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4160"
+ cx="7"
+ cy="1046.3622"
+ r="1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4160-1"
+ d="m 1,1049.3621 0,-7 2,3 2,-3 0,7"
+ style="fill:none;fill-rule:evenodd;stroke:#ea686c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_grid.svg b/tools/editor/icons/source/icon_grid.svg
new file mode 100644
index 0000000000..2d9288de14
--- /dev/null
+++ b/tools/editor/icons/source/icon_grid.svg
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_grid.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.9555256"
+ inkscape:cy="11.525163"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="10"
+ x="5"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="9"
+ height="10"
+ width="2"
+ id="rect4156"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="2"
+ height="10"
+ x="1041.3622"
+ y="-13"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-13"
+ x="1045.3622"
+ height="10"
+ width="2"
+ id="rect4160"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-15"
+ x="1037.3622"
+ height="14"
+ width="2"
+ id="rect4162"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="2"
+ height="14"
+ x="1049.3622"
+ y="-15"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="scale(-1,-1)"
+ y="-1051.3622"
+ x="-15"
+ height="14"
+ width="2"
+ id="rect4166"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="2"
+ height="14"
+ x="-3"
+ y="-1051.3622"
+ transform="scale(-1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_grid_container.svg b/tools/editor/icons/source/icon_grid_container.svg
new file mode 100644
index 0000000000..a27578f196
--- /dev/null
+++ b/tools/editor/icons/source/icon_grid_container.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_grid_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="5.3680561"
+ inkscape:cy="9.3590913"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="10"
+ x="5"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="9"
+ height="10"
+ width="2"
+ id="rect4157"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1041.3622"
+ x="3"
+ height="1.9999826"
+ width="10"
+ id="rect4159"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="10"
+ height="1.9999826"
+ x="3"
+ y="1045.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_grid_map.svg b/tools/editor/icons/source/icon_grid_map.svg
new file mode 100644
index 0000000000..5bbea0ff2c
--- /dev/null
+++ b/tools/editor/icons/source/icon_grid_map.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_grid_map.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.49128"
+ inkscape:cy="9.6074202"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4170"
+ width="4"
+ height="4.0000172"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="11"
+ height="4.0000172"
+ width="4"
+ id="rect4172"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4174"
+ width="4"
+ height="4.0000172"
+ x="6"
+ y="1037.3622" />
+ <rect
+ y="1042.3622"
+ x="1"
+ height="4.0000172"
+ width="4"
+ id="rect4176"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4178"
+ width="4"
+ height="4.0000172"
+ x="11"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="6"
+ height="4.0000172"
+ width="4"
+ id="rect4180"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4182"
+ width="4"
+ height="4.0000172"
+ x="1"
+ y="1047.3622" />
+ <rect
+ y="1047.3622"
+ x="11"
+ height="4.0000172"
+ width="4"
+ id="rect4184"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4186"
+ width="4"
+ height="4.0000172"
+ x="6"
+ y="1047.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_groove_joint_2d.svg b/tools/editor/icons/source/icon_groove_joint_2d.svg
new file mode 100644
index 0000000000..d05bebef48
--- /dev/null
+++ b/tools/editor/icons/source/icon_groove_joint_2d.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_groove_joint_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="11.478928"
+ inkscape:cy="8.9552021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 15,1037.3622 -5,0 0,6 -5,0 0,2 5,0 0,6 5,0 0,-14 z m -7,0 -5,0 -2,0 0,4 0,10 2,0 5,0 0,-4 -5,0 0,-6 5,0 0,-4 z"
+ id="rect4161"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_group.svg b/tools/editor/icons/source/icon_group.svg
new file mode 100644
index 0000000000..bccb23ade3
--- /dev/null
+++ b/tools/editor/icons/source/icon_group.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_group.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="6.3400278"
+ inkscape:cy="8.8086774"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 C 4.1340068 1 1 4.134 1 8 C 1 11.866 4.1340068 15 8 15 C 11.865993 15 15 11.866 15 8 C 15 4.134 11.865993 1 8 1 z M 8 3 A 2 2 0 0 1 10 5 A 2 2 0 0 1 8 7 A 2 2 0 0 1 6 5 A 2 2 0 0 1 8 3 z M 5 8 A 2 2 0 0 1 7 10 A 2 2 0 0 1 5 12 A 2 2 0 0 1 3 10 A 2 2 0 0 1 5 8 z M 11 8 A 2 2 0 0 1 13 10 A 2 2 0 0 1 11 12 A 2 2 0 0 1 9 10 A 2 2 0 0 1 11 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_groups.svg b/tools/editor/icons/source/icon_groups.svg
new file mode 100644
index 0000000000..00249597a4
--- /dev/null
+++ b/tools/editor/icons/source/icon_groups.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_groups.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.2323806"
+ inkscape:cy="8.9952486"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4242"
+ width="14"
+ height="8.0000172"
+ x="1"
+ y="1040.3622" />
+ <ellipse
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4246"
+ cx="5"
+ cy="1044.3622"
+ rx="2"
+ ry="2.0000043" />
+ <ellipse
+ ry="2.0000043"
+ rx="2"
+ cy="1044.3622"
+ cx="11"
+ id="ellipse4248"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_box_container.svg b/tools/editor/icons/source/icon_h_box_container.svg
new file mode 100644
index 0000000000..f180dde93a
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_box_container.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_box_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.0508349"
+ inkscape:cy="9.1486534"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="10"
+ x="5"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="9"
+ height="10"
+ width="2"
+ id="rect4157"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_button_array.svg b/tools/editor/icons/source/icon_h_button_array.svg
new file mode 100644
index 0000000000..9470aeb370
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_button_array.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_button_array.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="12.020131"
+ inkscape:cy="9.3264403"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="6"
+ height="5.9999828"
+ x="2"
+ y="1041.3622" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10,1041.3622 0,6 4,0 -1,-2 1,-2 -1,-2 -3,0 z"
+ id="rect4158"
+ inkscape:connector-curvature="0" />
+ <rect
+ y="1046.3622"
+ x="2"
+ height="0.99996543"
+ width="6"
+ id="rect4161"
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10,1046.3622 0,1 4,0 -0.5,-1 -3.5,0 z"
+ id="rect4163"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_scroll_bar.svg b/tools/editor/icons/source/icon_h_scroll_bar.svg
new file mode 100644
index 0000000000..2f007c7c94
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_scroll_bar.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_scroll_bar.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.1371771"
+ inkscape:cy="7.8450604"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 0,2 10,0 0,6 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4181"
+ width="4"
+ height="4"
+ x="4"
+ y="1042.3622" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4187"
+ width="4"
+ height="4"
+ x="4"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_separator.svg b/tools/editor/icons/source/icon_h_separator.svg
new file mode 100644
index 0000000000..461299731d
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_separator.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_separator.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.302565"
+ inkscape:cy="8.0967779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4156"
+ width="6"
+ height="3.0000174"
+ x="5"
+ y="1038.3622" />
+ <rect
+ y="-15"
+ x="-1045.3622"
+ height="14"
+ width="2"
+ id="rect4158"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,-1,-1,0,0,0)" />
+ <rect
+ y="1047.3622"
+ x="5"
+ height="3.0000174"
+ width="6"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_slider.svg b/tools/editor/icons/source/icon_h_slider.svg
new file mode 100644
index 0000000000..beee5f8b6a
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_slider.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_slider.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.3533577"
+ inkscape:cy="8.3875011"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 7 L 2 9 L 5.1738281 9 A 3 3 0 0 1 5 8 A 3 3 0 0 1 5.1757812 7 L 2 7 z M 10.826172 7 A 3 3 0 0 1 11 8 A 3 3 0 0 1 10.824219 9 L 14 9 L 14 7 L 10.826172 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4157" />
+ <circle
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4159"
+ cx="2"
+ cy="1044.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1044.3622"
+ cx="14"
+ id="circle4161"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4167"
+ cx="8"
+ cy="1044.3622"
+ r="2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_split_container.svg b/tools/editor/icons/source/icon_h_split_container.svg
new file mode 100644
index 0000000000..9ca2df0ff1
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_split_container.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_split_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.521964"
+ inkscape:cy="9.8091523"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="10"
+ x="7"
+ y="1039.3622" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9,1042.3622 0,4 2,-2 z"
+ id="path4173"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1042.3622 -2,2 2,2 z"
+ id="path4171"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_h_t_t_p_request.svg b/tools/editor/icons/source/icon_h_t_t_p_request.svg
new file mode 100644
index 0000000000..2aee12b2af
--- /dev/null
+++ b/tools/editor/icons/source/icon_h_t_t_p_request.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_t_t_p_request.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254836"
+ inkscape:cx="10.430372"
+ inkscape:cy="8.7048298"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4200"
+ width="1"
+ height="5"
+ x="0"
+ y="1042.3622" />
+ <rect
+ y="1044.3622"
+ x="0"
+ height="0.9999826"
+ width="2"
+ id="rect4202"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1042.3622"
+ x="2"
+ height="5"
+ width="1"
+ id="rect4204"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4206"
+ width="1"
+ height="5"
+ x="5"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="4"
+ height="1.0000174"
+ width="3"
+ id="rect4208"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1042.3622"
+ x="9"
+ height="5"
+ width="1"
+ id="rect4210"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4212"
+ width="3"
+ height="1.0000174"
+ x="8"
+ y="1042.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4214"
+ width="1"
+ height="5"
+ x="12"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="12"
+ height="1.0000174"
+ width="3"
+ id="rect4216"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4218"
+ width="1"
+ height="3.0000174"
+ x="14"
+ y="1042.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4220"
+ width="3"
+ height="1.0000174"
+ x="12"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_help.svg b/tools/editor/icons/source/icon_help.svg
new file mode 100644
index 0000000000..01e85e0f55
--- /dev/null
+++ b/tools/editor/icons/source/icon_help.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_help.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_help.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="5.4018713"
+ inkscape:cy="8.2308388"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#f1f1f1;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 4 A 4.0000172 4.0000172 0 0 1 12 8 A 4.0000172 4.0000172 0 0 1 8 12 A 4.0000172 4.0000172 0 0 1 4 8 A 4.0000172 4.0000172 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="circle4160" />
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1 0,3 c 1.1045715,-4.8e-6 2.104267,0.4480167 2.828125,1.171875 L 12.949219,3.0507812 C 11.68247,1.7840321 9.9329986,1.0000047 8,1 Z"
+ transform="translate(0,1036.3622)"
+ id="circle4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc"
+ inkscape:transform-center-x="-2.4746095"
+ inkscape:transform-center-y="-4.9140625" />
+ <path
+ inkscape:transform-center-y="2.4746"
+ inkscape:transform-center-x="-4.9140625"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4163"
+ d="m 15,1044.3622 -3,0 c 5e-6,1.1046 -0.448017,2.1043 -1.171875,2.8281 l 2.121094,2.1211 c 1.266749,-1.2667 2.050776,-3.0162 2.050781,-4.9492 z"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1051.3622 0,-3 c -1.1046,0 -2.1043,-0.448 -2.8281,-1.1719 l -2.1211,2.1211 c 1.2667,1.2668 3.0162,2.0508 4.9492,2.0508 z"
+ id="path4165"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc"
+ inkscape:transform-center-x="2.4746"
+ inkscape:transform-center-y="4.91405" />
+ <path
+ inkscape:transform-center-y="-2.4746"
+ inkscape:transform-center-x="4.91405"
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4167"
+ d="m 1,1044.3622 3,0 c 0,-1.1046 0.448,-2.1043 1.1719,-2.8281 L 3.0508,1039.413 C 1.784,1040.6797 1,1042.4292 1,1044.3622 Z"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_hidden.svg b/tools/editor/icons/source/icon_hidden.svg
new file mode 100644
index 0000000000..1d504f02fb
--- /dev/null
+++ b/tools/editor/icons/source/icon_hidden.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_history.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_hidden.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.8497078"
+ inkscape:cy="4.519077"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 14,1044.3622 c -1,3.5 -4,5 -6,5 -2,0 -5,-1.5 -6,-5"
+ id="path4165"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csc" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4136"
+ width="2"
+ height="2"
+ x="7"
+ y="1049.3622" />
+ <rect
+ y="749.42535"
+ x="-733.11163"
+ height="2"
+ width="2"
+ id="rect4138"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:transform-center-y="4.9497553"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="-4.9497561" />
+ <rect
+ inkscape:transform-center-x="4.9497388"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-y="4.9497553"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4140"
+ width="2"
+ height="2"
+ x="742.42535"
+ y="738.11163" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_history.svg b/tools/editor/icons/source/icon_history.svg
new file mode 100644
index 0000000000..f81390f0f5
--- /dev/null
+++ b/tools/editor/icons/source/icon_history.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_history.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_history.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="0.066428122"
+ inkscape:cy="12.678568"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9 2 A 6.0000172 6.0000172 0 0 0 3 8 L 5 8 A 4 4 0 0 1 9 4 A 4 4 0 0 1 13 8 A 4 4 0 0 1 9 12 L 9 14 A 6.0000172 6.0000172 0 0 0 15 8 A 6.0000172 6.0000172 0 0 0 9 2 z "
+ transform="translate(0,1036.3622)"
+ id="path4138" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4142"
+ sodipodi:sides="3"
+ sodipodi:cx="3"
+ sodipodi:cy="1046.3622"
+ sodipodi:r1="2.236068"
+ sodipodi:r2="1.118034"
+ sodipodi:arg1="1.0471976"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 4.1180339,1048.2987 -1.6770509,-0.9683 -1.67705101,-0.9682 1.67705101,-0.9683 1.6770511,-0.9682 -1e-7,1.9365 z"
+ inkscape:transform-center-x="0.00013164169"
+ transform="matrix(0,-1.1925797,1.5491989,0,-1617.0232,1049.2732)"
+ inkscape:transform-center-y="0.66664316" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4144"
+ width="2"
+ height="4"
+ x="7.9999828"
+ y="1041.3622" />
+ <rect
+ y="1043.3622"
+ x="7.9999828"
+ height="1.9999826"
+ width="4"
+ id="rect4146"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_hsize.svg b/tools/editor/icons/source/icon_hsize.svg
new file mode 100644
index 0000000000..f24a630770
--- /dev/null
+++ b/tools/editor/icons/source/icon_hsize.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_move.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_size.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1680801"
+ inkscape:cy="7.9718121"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 4,7 0,-2 -3,3 3,3 0,-2 8,0 0,2 3,-3 -3,-3 0,2 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_image.svg b/tools/editor/icons/source/icon_image.svg
new file mode 100644
index 0000000000..bb15e96251
--- /dev/null
+++ b/tools/editor/icons/source/icon_image.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_image.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="12.684811"
+ inkscape:cy="8.4223992"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 2 1 A 1 1 0 0 0 1 2 L 1 14 A 1 1 0 0 0 2 15 L 14 15 A 1 1 0 0 0 15 14 L 15 2 A 1 1 0 0 0 14 1 L 2 1 z M 3 3 L 13 3 L 13 11 L 3 11 L 3 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4156" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 9 5 L 7.5 7.5 L 6.7988281 8.6679688 L 6.6992188 8.5 L 5.8007812 7 L 4.9003906 8.5 L 4 10 L 5.8007812 10 L 6 10 L 7.5996094 10 L 9 10 L 12 10 L 10.5 7.5 L 9 5 z "
+ transform="translate(0,1036.3622)"
+ id="path4172" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_image_texture.svg b/tools/editor/icons/source/icon_image_texture.svg
new file mode 100644
index 0000000000..39e88e592b
--- /dev/null
+++ b/tools/editor/icons/source/icon_image_texture.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_image_texture.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.9365814"
+ inkscape:cy="6.4466253"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 2 1 A 1 1 0 0 0 1 2 L 1 14 A 1 1 0 0 0 2 15 L 14 15 A 1 1 0 0 0 15 14 L 15 2 A 1 1 0 0 0 14 1 L 2 1 z M 3 3 L 13 3 L 13 11 L 3 11 L 3 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4156" />
+ <rect
+ y="1043.3622"
+ x="6"
+ height="1"
+ width="2"
+ id="rect4197"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4199"
+ width="2"
+ height="2.0000174"
+ x="6"
+ y="1044.3622" />
+ <rect
+ y="1045.3622"
+ x="4"
+ height="1"
+ width="2"
+ id="rect4201"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4203"
+ width="2"
+ height="2.0000174"
+ x="8"
+ y="1044.3622" />
+ <rect
+ y="1044.3622"
+ x="10"
+ height="2.0000174"
+ width="2"
+ id="rect4205"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4207"
+ width="3"
+ height="2.0000174"
+ x="8"
+ y="1042.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="1"
+ width="1"
+ id="rect4217"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4219"
+ width="1"
+ height="1"
+ x="5"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_immediate_geometry.svg b/tools/editor/icons/source/icon_immediate_geometry.svg
new file mode 100644
index 0000000000..54bc4766d9
--- /dev/null
+++ b/tools/editor/icons/source/icon_immediate_geometry.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_immediate_geometry.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="18.615042"
+ inkscape:cy="6.562585"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-midpoints="true"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ sodipodi:nodetypes="cscsccccsssc"
+ inkscape:connector-curvature="0"
+ id="path4146"
+ d="m 2.920797,1046.3957 c -0.2637264,0.3 -0.4203983,0.7296 -0.4203983,1.2383 0,1.6277 -3.13814186,-0.1781 -0.337569,2.6703 0.8838207,0.899 2.6543881,0.6701 3.538224,-0.2288 0.8838352,-0.899 0.8838163,-2.3565 0,-3.2554 -1.1002211,-1.1191 -2.200058,-1.0845 -2.7802567,-0.4244 z m 2.3801743,-1.6103 2.4004918,2.4416 6.8013899,-6.9177 c 0.662863,-0.6742 0.662863,-1.7673 0,-2.4415 -0.662877,-0.6741 -1.737613,-0.6741 -2.400491,0 z"
+ style="fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_import_check.svg b/tools/editor/icons/source/icon_import_check.svg
new file mode 100644
index 0000000000..606236d82e
--- /dev/null
+++ b/tools/editor/icons/source/icon_import_check.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_import_check.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.5874555"
+ inkscape:cy="7.2488455"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#84ffb1;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 2,1044.3622 4,4 8,-8"
+ id="path4138"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_import_fail.svg b/tools/editor/icons/source/icon_import_fail.svg
new file mode 100644
index 0000000000..b5d142f968
--- /dev/null
+++ b/tools/editor/icons/source/icon_import_fail.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_folder.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_import_fail.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="10.435875"
+ inkscape:cy="8.0921459"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff8484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2.9902344 1.9902344 A 1.0001 1.0001 0 0 0 2.2929688 3.7070312 L 6.5859375 8 L 2.2929688 12.292969 A 1.0001 1.0001 0 1 0 3.7070312 13.707031 L 8 9.4140625 L 12.292969 13.707031 A 1.0001 1.0001 0 1 0 13.707031 12.292969 L 9.4140625 8 L 13.707031 3.7070312 A 1.0001 1.0001 0 0 0 12.980469 1.9921875 A 1.0001 1.0001 0 0 0 12.292969 2.2929688 L 8 6.5859375 L 3.7070312 2.2929688 A 1.0001 1.0001 0 0 0 2.9902344 1.9902344 z "
+ id="path4139"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_instance.svg b/tools/editor/icons/source/icon_instance.svg
new file mode 100644
index 0000000000..f12e067e7a
--- /dev/null
+++ b/tools/editor/icons/source/icon_instance.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_instance.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_instance_2.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="0.98066219"
+ inkscape:cy="8.8420536"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 5,1047.3622 6,-6"
+ id="path4156"
+ inkscape:connector-curvature="0" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 11 1 C 8.8027056 1 7 2.8027 7 5 C 7 5.3547724 7.0623287 5.6932122 7.1503906 6.0214844 L 9.5449219 3.6269531 C 9.9079388 3.2418883 10.420555 3 11 3 C 12.116414 3 13 3.8836 13 5 C 13 5.5738779 12.763331 6.0828638 12.384766 6.4453125 L 9.9804688 8.8496094 C 10.308197 8.9373587 10.64588 9 11 9 C 13.197294 9 15 7.1973 15 5 C 15 2.8027 13.197294 1 11 1 z M 5 7 C 2.8027056 7 1 8.8027 1 11 C 1 13.1973 2.8027056 15 5 15 C 7.1972944 15 9 13.1973 9 11 C 9 10.645879 8.9373589 10.308197 8.8496094 9.9804688 L 6.4453125 12.384766 C 6.0828657 12.763333 5.5738851 13 5 13 C 3.8835859 13 3 12.1164 3 11 C 3 10.420562 3.24189 9.9079407 3.6269531 9.5449219 L 6.0214844 7.1503906 C 5.6932126 7.0623289 5.3547715 7 5 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_instance_options.svg b/tools/editor/icons/source/icon_instance_options.svg
new file mode 100644
index 0000000000..a8c00bc43f
--- /dev/null
+++ b/tools/editor/icons/source/icon_instance_options.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_instance_options.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.1966464"
+ inkscape:cy="5.5949101"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 7 L 1 13 C 1 14.104569 1.8954305 15 3 15 L 15 15 L 15 7 L 1 7 z M 5 9 L 11 9 L 8 13 L 5 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
+ id="rect4138"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-6.7823301"
+ inkscape:transform-center-y="-2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_integer.svg b/tools/editor/icons/source/icon_integer.svg
new file mode 100644
index 0000000000..d4e7a9860a
--- /dev/null
+++ b/tools/editor/icons/source/icon_integer.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_integer.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="0.4948735"
+ inkscape:cy="6.9110682"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="10"
+ x="6"
+ y="1040.3622" />
+ <rect
+ y="1039.3622"
+ x="4"
+ height="2.0000174"
+ width="6"
+ id="rect4156"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="6"
+ height="2.0000174"
+ x="4"
+ y="1049.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_interp_cubic.svg b/tools/editor/icons/source/icon_interp_cubic.svg
new file mode 100644
index 0000000000..7d8d5ef70d
--- /dev/null
+++ b/tools/editor/icons/source/icon_interp_cubic.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_interp_cubic.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.5633871"
+ inkscape:cy="5.0840195"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 c 3,0 3,-4 6,-4 3,0 3,4 6,4"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_interp_linear.svg b/tools/editor/icons/source/icon_interp_linear.svg
new file mode 100644
index 0000000000..7b1e4f2dd1
--- /dev/null
+++ b/tools/editor/icons/source/icon_interp_linear.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_interp_linear.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="64"
+ inkscape:cx="7.2389107"
+ inkscape:cy="6.3582428"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 6,-4 6,4"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_interp_raw.svg b/tools/editor/icons/source/icon_interp_raw.svg
new file mode 100644
index 0000000000..e2e2070449
--- /dev/null
+++ b/tools/editor/icons/source/icon_interp_raw.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_interp_raw.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.8686169"
+ inkscape:cy="5.8136992"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 3,0 0,-4 6,0 0,4 3,0"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_invalid_key.svg b/tools/editor/icons/source/icon_invalid_key.svg
new file mode 100644
index 0000000000..cbccff571a
--- /dev/null
+++ b/tools/editor/icons/source/icon_invalid_key.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_invalid_key.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="6.3598525"
+ inkscape:cy="6.0587147"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 0.46446609,1046.2409 2.12132031,2.1213 -2.12132031,2.1213 1.41421361,1.4142 L 4,1049.7764 l 2.1213203,2.1213 1.4142136,-1.4142 -2.1213203,-2.1213 2.1213203,-2.1213 -1.4142136,-1.4142 L 4,1046.948 l -2.1213203,-2.1213 -1.41421361,1.4142 z"
+ id="rect4156"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_inverse_kinematics.svg b/tools/editor/icons/source/icon_inverse_kinematics.svg
new file mode 100644
index 0000000000..227d22f911
--- /dev/null
+++ b/tools/editor/icons/source/icon_inverse_kinematics.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_camera.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_inverse_kinematics.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="2.6199443"
+ inkscape:cy="8.0718327"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 3,1039.3622 0,12"
+ id="path4149"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4151"
+ cx="3"
+ cy="1039.3622"
+ r="2" />
+ <path
+ sodipodi:nodetypes="cc"
+ inkscape:connector-curvature="0"
+ id="path4153"
+ d="m 10,1039.3622 -7,0"
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1" />
+ <circle
+ r="2"
+ cy="1039.3622"
+ cx="11"
+ id="circle4155"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="6"
+ height="2"
+ x="8"
+ y="1044.3622" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 11,1039.3622 0,6"
+ id="path4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1046.3622 0,4 -3,-2 1,-2 z"
+ id="path4165"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4167"
+ d="m 12,1046.3622 0,4 3,-2 -1,-2 z"
+ style="fill:#fc9c9c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_item_list.svg b/tools/editor/icons/source/icon_item_list.svg
new file mode 100644
index 0000000000..943f6fe435
--- /dev/null
+++ b/tools/editor/icons/source/icon_item_list.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_item_list.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.1722679"
+ inkscape:cy="6.5280035"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="2.0000174"
+ x="4"
+ y="1040.3622" />
+ <rect
+ y="1040.3622"
+ x="7"
+ height="2.0000174"
+ width="2"
+ id="rect4157"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="2"
+ height="2.0000174"
+ x="10"
+ y="1040.3622" />
+ <rect
+ y="1043.3622"
+ x="4"
+ height="2.0000174"
+ width="2"
+ id="rect4161"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4163"
+ width="2"
+ height="2.0000174"
+ x="7"
+ y="1043.3622" />
+ <rect
+ y="1043.3622"
+ x="10"
+ height="2.0000174"
+ width="2"
+ id="rect4165"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="2"
+ height="2.0000174"
+ x="4"
+ y="1046.3622" />
+ <rect
+ y="1046.3622"
+ x="7"
+ height="2.0000174"
+ width="2"
+ id="rect4169"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4171"
+ width="2"
+ height="2.0000174"
+ x="10"
+ y="1046.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_joy_axis.svg b/tools/editor/icons/source/icon_joy_axis.svg
new file mode 100644
index 0000000000..9313342a53
--- /dev/null
+++ b/tools/editor/icons/source/icon_joy_axis.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_joy_axis.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="11.922691"
+ inkscape:cy="9.5384233"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4194"
+ width="7"
+ height="14"
+ x="27"
+ y="1038.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 3 15 L 15 15 L 15 1 L 3 1 z M 7 3 L 9 3 A 1 1 0 0 1 10 4 L 10 6 L 12 6 A 1 1 0 0 1 13 7 L 13 9 A 1 1 0 0 1 12 10 L 10 10 L 10 12 A 1 1 0 0 1 9 13 L 7 13 A 1 1 0 0 1 6 12 L 6 10 L 4 10 A 1 1 0 0 1 3 9 L 3 7 A 1 1 0 0 1 4 6 L 6 6 L 6 4 A 1 1 0 0 1 7 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4196" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4251"
+ cx="8"
+ cy="1044.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_joy_button.svg b/tools/editor/icons/source/icon_joy_button.svg
new file mode 100644
index 0000000000..f6d4344807
--- /dev/null
+++ b/tools/editor/icons/source/icon_joy_button.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_joy_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="4.6871235"
+ inkscape:cy="9.8655688"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4194"
+ width="7"
+ height="14"
+ x="27"
+ y="1038.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 3 C 15 1.8954 14.104569 1 13 1 L 1 1 z M 8 2 A 2 2 0 0 1 10 4 A 2 2 0 0 1 8 6 A 2 2 0 0 1 6 4 A 2 2 0 0 1 8 2 z M 4 6 A 2 2 0 0 1 6 8 A 2 2 0 0 1 4 10 A 2 2 0 0 1 2 8 A 2 2 0 0 1 4 6 z M 12 6 A 2 2 0 0 1 14 8 A 2 2 0 0 1 12 10 A 2 2 0 0 1 10 8 A 2 2 0 0 1 12 6 z M 8 10 A 2 2 0 0 1 10 12 A 2 2 0 0 1 8 14 A 2 2 0 0 1 6 12 A 2 2 0 0 1 8 10 z "
+ transform="translate(0,1036.3622)"
+ id="rect4196" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_joystick.svg b/tools/editor/icons/source/icon_joystick.svg
new file mode 100644
index 0000000000..5395060175
--- /dev/null
+++ b/tools/editor/icons/source/icon_joystick.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_joystick.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254835"
+ inkscape:cx="5.8962884"
+ inkscape:cy="8.9449522"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 1 3 C 0.4477381 3.0000552 5.52e-05 3.4477381 0 4 L 0 12 C 5.52e-05 12.552262 0.4477381 12.999945 1 13 L 15 13 C 15.552262 12.999945 15.999945 12.552262 16 12 L 16 4 C 15.999945 3.4477381 15.552262 3.0000552 15 3 L 1 3 z M 3 5 L 5 5 L 5 7 L 7 7 L 7 9 L 5 9 L 5 11 L 3 11 L 3 9 L 1 9 L 1 7 L 3 7 L 3 5 z M 13.5 5 A 1.5 1.5 0 0 1 15 6.5 A 1.5 1.5 0 0 1 13.5 8 A 1.5 1.5 0 0 1 12 6.5 A 1.5 1.5 0 0 1 13.5 5 z M 10.5 8 A 1.4999913 1.4999913 0 0 1 12 9.5 A 1.4999913 1.4999913 0 0 1 10.5 11 A 1.4999913 1.4999913 0 0 1 9 9.5 A 1.4999913 1.4999913 0 0 1 10.5 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key.svg b/tools/editor/icons/source/icon_key.svg
new file mode 100644
index 0000000000..f5d7b85381
--- /dev/null
+++ b/tools/editor/icons/source/icon_key.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_key.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254836"
+ inkscape:cx="8.7548948"
+ inkscape:cy="9.2532814"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 11 4 A 4 4.0000024 0 0 0 7 8 A 4 4.0000024 0 0 0 11 12 A 4 4.0000024 0 0 0 15 8 A 4 4.0000024 0 0 0 11 4 z M 11 6 A 2.0000174 2.0000174 0 0 1 13 8 A 2.0000174 2.0000174 0 0 1 11 10 A 2.0000174 2.0000174 0 0 1 9 8 A 2.0000174 2.0000174 0 0 1 11 6 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4141"
+ width="8"
+ height="2"
+ x="1"
+ y="1043.3622" />
+ <rect
+ y="1045.3622"
+ x="2"
+ height="2"
+ width="3"
+ id="rect4144"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_hover.svg b/tools/editor/icons/source/icon_key_hover.svg
new file mode 100644
index 0000000000..c3f34a781b
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_hover.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_key_hover.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="0.40602789"
+ inkscape:cy="4.9542089"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#8fdeef;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 0 A 4 3.9999914 0 0 0 0 4 A 4 3.9999914 0 0 0 4 8 A 4 3.9999914 0 0 0 8 4 A 4 3.9999914 0 0 0 4 0 z "
+ transform="translate(0,1044.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_invalid.svg b/tools/editor/icons/source/icon_key_invalid.svg
new file mode 100644
index 0000000000..b6407dc178
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_invalid.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key_invalid.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_key_invalid.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="0.95360267"
+ inkscape:cy="5.9962147"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 0.46446609,1046.2409 2.12132031,2.1213 -2.12132031,2.1213 1.41421361,1.4142 L 4,1049.7764 l 2.1213203,2.1213 1.4142136,-1.4142 -2.1213203,-2.1213 2.1213203,-2.1213 -1.4142136,-1.4142 L 4,1046.948 l -2.1213203,-2.1213 -1.41421361,1.4142 z"
+ id="rect4156"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_next.svg b/tools/editor/icons/source/icon_key_next.svg
new file mode 100644
index 0000000000..4155255434
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_next.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_key_next.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.6318496"
+ inkscape:cy="7.8283625"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 11 1 A 4 4.0000024 0 0 0 7.1308594 4 L 1 4 L 1 6 L 2 6 L 2 8 L 5 8 L 5 6 L 7.1328125 6 A 4 4.0000024 0 0 0 9 8.4589844 L 9 7 L 11 7 A 2.0000174 2.0000174 0 0 1 9 5 A 2.0000174 2.0000174 0 0 1 11 3 A 2.0000174 2.0000174 0 0 1 13 5 A 2.0000174 2.0000174 0 0 1 11 7 L 14.458984 7 A 4 4.0000024 0 0 0 15 5 A 4 4.0000024 0 0 0 11 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="2"
+ height="5.9999828"
+ x="11"
+ y="1045.3622" />
+ <rect
+ y="1047.3622"
+ x="9"
+ height="2.0000174"
+ width="6"
+ id="rect4158"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_selected.svg b/tools/editor/icons/source/icon_key_selected.svg
new file mode 100644
index 0000000000..c3f01dbec8
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_selected.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_key_selected.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="3.4232555"
+ inkscape:cy="4.5626603"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#e7e7e7;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 0 A 4 3.9999914 0 0 0 0 4 A 4 3.9999914 0 0 0 4 8 A 4 3.9999914 0 0 0 8 4 A 4 3.9999914 0 0 0 4 0 z "
+ transform="translate(0,1044.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_value.svg b/tools/editor/icons/source/icon_key_value.svg
new file mode 100644
index 0000000000..5e6333e54b
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_value.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_key_value.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="3.2850619"
+ inkscape:cy="5.046338"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#3da9bf;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 0 A 4 3.9999914 0 0 0 0 4 A 4 3.9999914 0 0 0 4 8 A 4 3.9999914 0 0 0 8 4 A 4 3.9999914 0 0 0 4 0 z "
+ transform="translate(0,1044.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_key_xform.svg b/tools/editor/icons/source/icon_key_xform.svg
new file mode 100644
index 0000000000..06a282f705
--- /dev/null
+++ b/tools/editor/icons/source/icon_key_xform.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_key_xform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="43.417341"
+ inkscape:cx="3.2850619"
+ inkscape:cy="5.046338"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="opacity:1;fill:#bf523c;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 0 A 4 3.9999914 0 0 0 0 4 A 4 3.9999914 0 0 0 4 8 A 4 3.9999914 0 0 0 8 4 A 4 3.9999914 0 0 0 4 0 z "
+ transform="translate(0,1044.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_keyboard.svg b/tools/editor/icons/source/icon_keyboard.svg
new file mode 100644
index 0000000000..a03798e4a4
--- /dev/null
+++ b/tools/editor/icons/source/icon_keyboard.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_keyboard.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254835"
+ inkscape:cx="8.7357101"
+ inkscape:cy="7.1330996"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 4 L 1 13 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 4 L 14 4 L 14 13 A 0.9999826 0.9999826 0 0 1 13 14 L 3 14 A 1 1 0 0 1 2 13 L 2 4 L 1 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4194"
+ width="7"
+ height="14"
+ x="27"
+ y="1038.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 2 A 1 1 0 0 0 3 3 L 3 12.083984 A 1 0.91666667 0 0 0 4 13 L 12 13 A 1 0.91666667 0 0 0 13 12.083984 L 13 3 A 1 1 0 0 0 12 2 L 4 2 z M 5 4 L 7 4 L 7 7 L 9 4 L 11 4 L 9 7 L 11 11 L 9 11 L 7 7 L 7 11 L 5 11 L 5 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4163" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_kinematic_body.svg b/tools/editor/icons/source/icon_kinematic_body.svg
new file mode 100644
index 0000000000..6a4c8965ab
--- /dev/null
+++ b/tools/editor/icons/source/icon_kinematic_body.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite_3d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_kinematic_body.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.6970468"
+ inkscape:cy="8.9585231"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 4 L 4 5 L 5 5 L 5 4 L 4 4 z M 5 5 L 5 6 L 4 6 L 4 7 L 3 7 L 3 8 L 2 8 L 2 9 L 2 11 L 3 11 L 3 9 L 4 9 L 4 10 L 4 11 L 5 11 L 5 10 L 10 10 L 10 11 L 11 11 L 11 9 L 12 9 L 12 11 L 13 11 L 13 9 L 13 8 L 12 8 L 12 7 L 11 7 L 11 6 L 10 6 L 10 5 L 9 5 L 9 6 L 6 6 L 6 5 L 5 5 z M 10 5 L 11 5 L 11 4 L 10 4 L 10 5 z M 10 11 L 8 11 L 8 12 L 10 12 L 10 11 z M 5 11 L 5 12 L 7 12 L 7 11 L 5 11 z M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 z M 9 7 L 10 7 L 10 8 L 9 8 L 9 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_kinematic_body_2d.svg b/tools/editor/icons/source/icon_kinematic_body_2d.svg
new file mode 100644
index 0000000000..04f140b930
--- /dev/null
+++ b/tools/editor/icons/source/icon_kinematic_body_2d.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite_3d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_kinematic_body_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.6970468"
+ inkscape:cy="8.9585231"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 4 4 L 4 5 L 5 5 L 5 4 L 4 4 z M 5 5 L 5 6 L 4 6 L 4 7 L 3 7 L 3 8 L 2 8 L 2 9 L 2 11 L 3 11 L 3 9 L 4 9 L 4 10 L 4 11 L 5 11 L 5 10 L 10 10 L 10 11 L 11 11 L 11 9 L 12 9 L 12 11 L 13 11 L 13 9 L 13 8 L 12 8 L 12 7 L 11 7 L 11 6 L 10 6 L 10 5 L 9 5 L 9 6 L 6 6 L 6 5 L 5 5 z M 10 5 L 11 5 L 11 4 L 10 4 L 10 5 z M 10 11 L 8 11 L 8 12 L 10 12 L 10 11 z M 5 11 L 5 12 L 7 12 L 7 11 L 5 11 z M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 z M 9 7 L 10 7 L 10 8 L 9 8 L 9 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_label.svg b/tools/editor/icons/source/icon_label.svg
new file mode 100644
index 0000000000..ac9b52be6f
--- /dev/null
+++ b/tools/editor/icons/source/icon_label.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_label.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="5.6511357"
+ inkscape:cy="8.5870222"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5efac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 6 3 A 1.0001 1.0001 0 0 0 5.2929688 3.2929688 L 1.2929688 7.2929688 A 1.0001 1.0001 0 0 0 1.2929688 8.7070312 L 5.2929688 12.707031 A 1.0001 1.0001 0 0 0 6 13 L 14 13 A 1.0001 1.0001 0 0 0 15 12 L 15 4 A 1.0001 1.0001 0 0 0 14 3 L 6 3 z M 5 7 A 1 1 0 0 1 6 8 A 1 1 0 0 1 5 9 A 1 1 0 0 1 4 8 A 1 1 0 0 1 5 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4164" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_light_2d.svg b/tools/editor/icons/source/icon_light_2d.svg
new file mode 100644
index 0000000000..27e07a649a
--- /dev/null
+++ b/tools/editor/icons/source/icon_light_2d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_light_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="9.9569833"
+ inkscape:cy="9.5332545"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 5 5 0 0 0 3 6 A 5 5 0 0 0 6 10.576172 L 6 13 L 10 13 L 10 10.580078 A 5 5 0 0 0 13 6 A 5 5 0 0 0 8 1 z M 8 3 A 3 3 0 0 1 11 6 A 3 3 0 0 1 8 9 A 3 3 0 0 1 5 6 A 3 3 0 0 1 8 3 z M 7 14 L 7 15 L 9 15 L 9 14 L 7 14 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_light_occluder_2d.svg b/tools/editor/icons/source/icon_light_occluder_2d.svg
new file mode 100644
index 0000000000..3558f3f2da
--- /dev/null
+++ b/tools/editor/icons/source/icon_light_occluder_2d.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_light_occluder_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="6.2930917"
+ inkscape:cy="8.3953902"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4187"
+ width="14"
+ height="2"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1042.3622"
+ x="1"
+ height="2"
+ width="14"
+ id="rect4189"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4191"
+ width="14"
+ height="2"
+ x="1"
+ y="1045.3622" />
+ <rect
+ y="1048.3622"
+ x="1"
+ height="2"
+ width="14"
+ id="rect4193"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4195"
+ width="1"
+ height="14"
+ x="2"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="13"
+ height="14"
+ width="1"
+ id="rect4197"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1037.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4199"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_line_edit.svg b/tools/editor/icons/source/icon_line_edit.svg
new file mode 100644
index 0000000000..61ba1ebe7e
--- /dev/null
+++ b/tools/editor/icons/source/icon_line_edit.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_line_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="4.4635244"
+ inkscape:cy="8.6660933"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 0,2 10,0 0,6 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="1"
+ height="4.0000172"
+ x="4"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_link_button.svg b/tools/editor/icons/source/icon_link_button.svg
new file mode 100644
index 0000000000..3872e43b29
--- /dev/null
+++ b/tools/editor/icons/source/icon_link_button.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_link_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="5.7987745"
+ inkscape:cy="9.6365238"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6 7 A 0.9999826 0.9999826 0 0 0 5 8 A 0.9999826 0.9999826 0 0 0 6 9 L 10 9 A 0.9999826 0.9999826 0 0 0 11 8 A 0.9999826 0.9999826 0 0 0 10 7 L 6 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4244" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6 3 A 5 5 0 0 0 1.6699219 5.5 A 5 5 0 0 0 1.6699219 10.5 A 5 5 0 0 0 6 13 L 7 13 L 7 11 L 6 11 A 3 3 0 0 1 3 8 A 3 3 0 0 1 6 5 L 7 5 L 7 3 L 6 3 z M 9 3 L 9 5 L 10 5 A 3 3 0 0 1 13 8 A 3 3 0 0 1 10 11 L 9 11 L 9 13 L 10 13 A 5 5 0 0 0 14.330078 10.5 A 5 5 0 0 0 14.330078 5.5 A 5 5 0 0 0 10 3 L 9 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4225" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_list_select.svg b/tools/editor/icons/source/icon_list_select.svg
new file mode 100644
index 0000000000..569a0c6fea
--- /dev/null
+++ b/tools/editor/icons/source/icon_list_select.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_list_select.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_list_select.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="27.124914"
+ inkscape:cx="6.2157972"
+ inkscape:cy="6.8765984"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.63636994,0,0,0.63636994,11.81847,382.85245)"
+ inkscape:label="Layer 1"
+ id="g4515"
+ style="stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 15 L 9.2578125 15 L 8.4355469 13 L 3 13 L 3 11 L 7.6113281 11 L 6.7890625 9 L 3 9 L 3 7 L 6.8867188 7 A 1.50015 1.50015 0 0 1 7.984375 6.5019531 L 7.984375 6.5 A 1.50015 1.50015 0 0 1 8.5703125 6.6113281 L 9.515625 7 L 10 7 L 10 7.1992188 L 12 8.0214844 L 12 1 L 1 1 z M 3 3 L 10 3 L 10 5 L 3 5 L 3 3 z M 10.755859 10.755859 L 11.279297 12.029297 A 1.50015 1.50015 0 0 1 11.759766 11.759766 A 1.50015 1.50015 0 0 1 12 11.320312 L 12 11.269531 L 10.755859 10.755859 z "
+ transform="translate(0,1036.3622)"
+ id="rect4138" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16,1047.6532 -8,-3.291 3.290998,8 0.947104,-2.8201 1.8836,1.8835 0.941801,-0.9418 -1.8836,-1.8835 z"
+ id="rect4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_lock.svg b/tools/editor/icons/source/icon_lock.svg
new file mode 100644
index 0000000000..140b073e83
--- /dev/null
+++ b/tools/editor/icons/source/icon_lock.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_lock.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_lock.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.4297739"
+ inkscape:cy="8.7439404"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="false"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-others="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.63636994,0,0,0.63636994,11.81847,382.85245)"
+ inkscape:label="Layer 1"
+ id="g4515"
+ style="stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 8 L 2 15 L 14 15 L 14 8 L 2 8 z M 7 10 L 9 10 L 9 13 L 7 13 L 7 10 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 5 5 0 0 0 3 6 L 5 6 A 3 3 0 0 1 8 3 A 3 3 0 0 1 11 6 L 13 6 A 5 5 0 0 0 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4141" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4145"
+ width="2"
+ height="2"
+ x="3"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="11"
+ height="2"
+ width="2"
+ id="rect4147"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_loop.svg b/tools/editor/icons/source/icon_loop.svg
new file mode 100644
index 0000000000..fe7f648648
--- /dev/null
+++ b/tools/editor/icons/source/icon_loop.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_loop.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_loop.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="4.2604173"
+ inkscape:cy="8.1780194"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-8"
+ inkscape:label="Layer 1"
+ transform="matrix(0,-1,1,0,-1021.3622,1033.3622)" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 L 8 3 L 6 3 A 5 5 0 0 0 1 8 A 5 5 0 0 0 2.0039062 10.996094 L 3.4394531 9.5605469 A 3.0000174 3.0000174 0 0 1 3 8 A 3.0000174 3.0000174 0 0 1 6 5 L 8 5 L 8 7 L 10 5.5 L 12 4 L 10 2.5 L 8 1 z M 13.996094 5.0039062 L 12.560547 6.4394531 A 3.0000174 3.0000174 0 0 1 13 8 A 3.0000174 3.0000174 0 0 1 10 11 L 8 11 L 8 9 L 6 10.5 L 4 12 L 6 13.5 L 8 15 L 8 13 L 10 13 A 5 5 0 0 0 15 8 A 5 5 0 0 0 13.996094 5.0039062 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_main_play.svg b/tools/editor/icons/source/icon_main_play.svg
new file mode 100644
index 0000000000..0fb48bb155
--- /dev/null
+++ b/tools/editor/icons/source/icon_main_play.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_main_play.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="15.834447"
+ inkscape:cy="8.0362747"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#f0f0f0;fill-rule:evenodd;stroke:#f0f0f0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 4,1048.3622 0,-8 7,4 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_main_stop.svg b/tools/editor/icons/source/icon_main_stop.svg
new file mode 100644
index 0000000000..9d01bd5cf5
--- /dev/null
+++ b/tools/editor/icons/source/icon_main_stop.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_main_stop.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.8738646"
+ inkscape:cy="9.1632261"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:evenodd;stroke:#f0f0f0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 4,1048.3622 0,-8 8,0 0,8 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_margin_container.svg b/tools/editor/icons/source/icon_margin_container.svg
new file mode 100644
index 0000000000..68a6971bd7
--- /dev/null
+++ b/tools/editor/icons/source/icon_margin_container.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_margin_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.7167766"
+ inkscape:cy="8.4381827"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4161"
+ d="m 4,1042.3622 0,4 2,-2 z"
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_cube.svg b/tools/editor/icons/source/icon_material_preview_cube.svg
new file mode 100644
index 0000000000..2e8e5a6457
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_cube.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_preview_cube.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="10.554008"
+ inkscape:cx="9.2398162"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8 1 L 1 4 L 1 12 L 8 15 L 15 12 L 15 4 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4151" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1040.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1051.3622 -7,-3 0,-8 7,3 z"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4145"
+ d="m 8,1051.3622 7,-3 0,-8 -7,3 z"
+ style="fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_cube_off.svg b/tools/editor/icons/source/icon_material_preview_cube_off.svg
new file mode 100644
index 0000000000..e03905ed05
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_cube_off.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_preview_cube_off.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="9.0822476"
+ inkscape:cx="11.618357"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 8 1 L 1 4 L 1 12 L 8 15 L 15 12 L 15 4 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4151" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1040.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#f0f0f0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1051.3622 -7,-3 0,-8 7,3 z"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4145"
+ d="m 8,1051.3622 7,-3 0,-8 -7,3 z"
+ style="fill:#d5d5d5;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ id="path4191"
+ d="m 8,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
+ style="fill:#000000;fill-opacity:0.23529412;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_light_1.svg b/tools/editor/icons/source/icon_material_preview_light_1.svg
new file mode 100644
index 0000000000..d8335641f6
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_light_1.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_light_1.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.8395758"
+ inkscape:cx="9.8577371"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 3.7578125 2.34375 L 2.34375 3.7578125 L 3.7578125 5.171875 L 5.171875 3.7578125 L 3.7578125 2.34375 z M 12.242188 2.34375 L 10.828125 3.7578125 L 12.242188 5.171875 L 13.65625 3.7578125 L 12.242188 2.34375 z M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 7 5 L 9 5 L 9 6 L 9 11 L 8 11 L 8 6 L 7 6 L 7 5 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 13 7 L 13 9 L 15 9 L 15 7 L 13 7 z M 3.7578125 10.828125 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.171875 12.242188 L 3.7578125 10.828125 z M 12.242188 10.828125 L 10.828125 12.242188 L 12.242188 13.65625 L 13.65625 12.242188 L 12.242188 10.828125 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_light_1_off.svg b/tools/editor/icons/source/icon_material_preview_light_1_off.svg
new file mode 100644
index 0000000000..c387b1845b
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_light_1_off.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_light_1_off.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.8395758"
+ inkscape:cx="9.8577371"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 3.7578125 2.34375 L 2.34375 3.7578125 L 3.7578125 5.171875 L 5.171875 3.7578125 L 3.7578125 2.34375 z M 12.242188 2.34375 L 10.828125 3.7578125 L 12.242188 5.171875 L 13.65625 3.7578125 L 12.242188 2.34375 z M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 7 5 L 9 5 L 9 6 L 9 11 L 8 11 L 8 6 L 7 6 L 7 5 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 13 7 L 13 9 L 15 9 L 15 7 L 13 7 z M 3.7578125 10.828125 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.171875 12.242188 L 3.7578125 10.828125 z M 12.242188 10.828125 L 10.828125 12.242188 L 12.242188 13.65625 L 13.65625 12.242188 L 12.242188 10.828125 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_light_2.svg b/tools/editor/icons/source/icon_material_preview_light_2.svg
new file mode 100644
index 0000000000..f192c19959
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_light_2.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_light_2.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.4131842"
+ inkscape:cx="7.6431783"
+ inkscape:zoom="45.254832"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 3.7578125 2.34375 L 2.34375 3.7578125 L 3.7578125 5.171875 L 5.171875 3.7578125 L 3.7578125 2.34375 z M 12.242188 2.34375 L 10.828125 3.7578125 L 12.242188 5.171875 L 13.65625 3.7578125 L 12.242188 2.34375 z M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 7 5 L 9 5 L 9 7 L 9 8 L 7 8 L 7 9 L 9 9 L 9 10 L 7 10 L 6 10 L 6 8 L 6 7 L 8 7 L 8 6 L 7 6 L 7 5 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 13 7 L 13 9 L 15 9 L 15 7 L 13 7 z M 3.7578125 10.828125 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.171875 12.242188 L 3.7578125 10.828125 z M 12.242188 10.828125 L 10.828125 12.242188 L 12.242188 13.65625 L 13.65625 12.242188 L 12.242188 10.828125 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_light_2_off.svg b/tools/editor/icons/source/icon_material_preview_light_2_off.svg
new file mode 100644
index 0000000000..9d71248cba
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_light_2_off.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_light_2_off.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.4131842"
+ inkscape:cx="7.6431783"
+ inkscape:zoom="45.254832"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 3.7578125 2.34375 L 2.34375 3.7578125 L 3.7578125 5.171875 L 5.171875 3.7578125 L 3.7578125 2.34375 z M 12.242188 2.34375 L 10.828125 3.7578125 L 12.242188 5.171875 L 13.65625 3.7578125 L 12.242188 2.34375 z M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 7 5 L 9 5 L 9 7 L 9 8 L 7 8 L 7 9 L 9 9 L 9 10 L 7 10 L 6 10 L 6 8 L 6 7 L 8 7 L 8 6 L 7 6 L 7 5 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 13 7 L 13 9 L 15 9 L 15 7 L 13 7 z M 3.7578125 10.828125 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.171875 12.242188 L 3.7578125 10.828125 z M 12.242188 10.828125 L 10.828125 12.242188 L 12.242188 13.65625 L 13.65625 12.242188 L 12.242188 10.828125 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ <path
+ id="path4176"
+ transform="translate(0,1036.3622)"
+ d="M 7 1 L 7 3 L 9 3 L 9 1 L 7 1 z M 3.7578125 2.34375 L 2.34375 3.7578125 L 3.7578125 5.171875 L 5.171875 3.7578125 L 3.7578125 2.34375 z M 12.242188 2.34375 L 10.828125 3.7578125 L 12.242188 5.171875 L 13.65625 3.7578125 L 12.242188 2.34375 z M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 7 5 L 9 5 L 9 7 L 9 8 L 7 8 L 7 9 L 9 9 L 9 10 L 7 10 L 6 10 L 6 8 L 6 7 L 8 7 L 8 6 L 7 6 L 7 5 z M 1 7 L 1 9 L 3 9 L 3 7 L 1 7 z M 13 7 L 13 9 L 15 9 L 15 7 L 13 7 z M 3.7578125 10.828125 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.171875 12.242188 L 3.7578125 10.828125 z M 12.242188 10.828125 L 10.828125 12.242188 L 12.242188 13.65625 L 13.65625 12.242188 L 12.242188 10.828125 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_sphere.svg b/tools/editor/icons/source/icon_material_preview_sphere.svg
new file mode 100644
index 0000000000..76a6ec97bd
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_sphere.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_sphere.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.280687"
+ inkscape:cx="4.325506"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 6 3 A 2 2 0 0 1 8 5 A 2 2 0 0 1 6 7 A 2 2 0 0 1 4 5 A 2 2 0 0 1 6 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_material_preview_sphere_off.svg b/tools/editor/icons/source/icon_material_preview_sphere_off.svg
new file mode 100644
index 0000000000..f9c8cadb34
--- /dev/null
+++ b/tools/editor/icons/source/icon_material_preview_sphere_off.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_material_preview_sphere_off.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.561937"
+ inkscape:cx="7.8880061"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 6 3 A 2 2 0 0 1 8 5 A 2 2 0 0 1 6 7 A 2 2 0 0 1 4 5 A 2 2 0 0 1 6 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_matrix.svg b/tools/editor/icons/source/icon_matrix.svg
new file mode 100644
index 0000000000..eacf2cdc9d
--- /dev/null
+++ b/tools/editor/icons/source/icon_matrix.svg
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_matrix.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.6294931"
+ inkscape:cy="6.9144846"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="12"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="1"
+ height="1.0000174"
+ width="3"
+ id="rect4156"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="3"
+ height="1"
+ x="1"
+ y="1050.3622" />
+ <rect
+ y="1050.3622"
+ x="10"
+ height="1"
+ width="3"
+ id="rect4160"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="3"
+ height="1.0000174"
+ x="10"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="12"
+ height="12"
+ width="1"
+ id="rect4164"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="2"
+ height="2"
+ x="3"
+ y="1041.3622" />
+ <rect
+ y="1041.3622"
+ x="6"
+ height="2"
+ width="2"
+ id="rect4163"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4165"
+ width="2"
+ height="2"
+ x="9"
+ y="1041.3622" />
+ <rect
+ y="1044.3622"
+ x="3"
+ height="2"
+ width="2"
+ id="rect4167"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4169"
+ width="2"
+ height="2"
+ x="6"
+ y="1044.3622" />
+ <rect
+ y="1044.3622"
+ x="9"
+ height="2"
+ width="2"
+ id="rect4171"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="2"
+ height="2"
+ x="3"
+ y="1047.3622" />
+ <rect
+ y="1047.3622"
+ x="6"
+ height="2"
+ width="2"
+ id="rect4175"
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ea686c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4177"
+ width="2"
+ height="2"
+ x="9"
+ y="1047.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_menu_button.svg b/tools/editor/icons/source/icon_menu_button.svg
new file mode 100644
index 0000000000..9cfbf2d502
--- /dev/null
+++ b/tools/editor/icons/source/icon_menu_button.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_menu_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.4706473"
+ inkscape:cy="10.780886"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 5 L 15 5 L 15 1 L 1 1 z M 6 2 L 10 2 L 8 4 L 6 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4156" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 6 A 1 1 0 0 0 1 7 L 1 14 A 1 1 0 0 0 2 15 L 14 15 A 1 1 0 0 0 15 14 L 15 7 A 1 1 0 0 0 14 6 L 2 6 z M 3 8 L 13 8 L 13 10 L 3 10 L 3 8 z M 3 11 L 13 11 L 13 13 L 3 13 L 3 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4161" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_mesh.svg b/tools/editor/icons/source/icon_mesh.svg
new file mode 100644
index 0000000000..f3c33a37b1
--- /dev/null
+++ b/tools/editor/icons/source/icon_mesh.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_mesh.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="5.2137269"
+ inkscape:cy="10.663006"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 11.271484 14 A 2 2 0 0 0 13 15 A 2 2 0 0 0 15 13 A 2 2 0 0 0 13.96875 11.25 L 14 11.25 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 10.585938 L 5.4140625 4 z M 4 5.4140625 L 10.585938 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_mesh_instance.svg b/tools/editor/icons/source/icon_mesh_instance.svg
new file mode 100644
index 0000000000..51e6447eb2
--- /dev/null
+++ b/tools/editor/icons/source/icon_mesh_instance.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_mesh_instance.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="8.6608726"
+ inkscape:cy="8.8510443"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4162"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <rect
+ y="1039.3622"
+ x="2"
+ height="8.4999828"
+ width="2"
+ id="rect4164"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ r="2"
+ cy="1039.3622"
+ cx="3"
+ id="circle4166"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="2"
+ height="8.4999828"
+ x="1038.3622"
+ y="-11.499983"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4170"
+ cx="13"
+ cy="1039.3622"
+ r="2" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4172"
+ width="2"
+ height="8.4999828"
+ x="12"
+ y="1039.1122" />
+ <circle
+ r="2"
+ cy="1049.3622"
+ cx="13"
+ id="circle4174"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-12.249991"
+ x="1048.3622"
+ height="8.4999828"
+ width="2"
+ id="rect4176"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 3,1039.3622 10,10"
+ id="path4178"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_mirror_x.svg b/tools/editor/icons/source/icon_mirror_x.svg
new file mode 100644
index 0000000000..f24a630770
--- /dev/null
+++ b/tools/editor/icons/source/icon_mirror_x.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_move.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_size.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1680801"
+ inkscape:cy="7.9718121"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 4,7 0,-2 -3,3 3,3 0,-2 8,0 0,2 3,-3 -3,-3 0,2 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_mirror_y.svg b/tools/editor/icons/source/icon_mirror_y.svg
new file mode 100644
index 0000000000..bb913b84af
--- /dev/null
+++ b/tools/editor/icons/source/icon_mirror_y.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_move.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_mirror_y.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.7618301"
+ inkscape:cy="7.9093121"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1048.3622 -2,0 3,3 3,-3 -2,0 0,-8 2,0 -3,-3 -3,3 2,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_mouse.svg b/tools/editor/icons/source/icon_mouse.svg
new file mode 100644
index 0000000000..731ceeefd8
--- /dev/null
+++ b/tools/editor/icons/source/icon_mouse.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_mouse.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.1067779"
+ inkscape:cy="6.9900832"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1.1015625 A 5 5 0 0 0 3 6 L 7 6 L 7 1.1015625 z M 9 1.1054688 L 9 6 L 13 6 A 5 5 0 0 0 9 1.1054688 z M 3 8 L 3 10 A 5 5 0 0 0 8 15 A 5 5 0 0 0 13 10 L 13 8 L 3 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_move_down.svg b/tools/editor/icons/source/icon_move_down.svg
new file mode 100644
index 0000000000..e83a69ad50
--- /dev/null
+++ b/tools/editor/icons/source/icon_move_down.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_move_down.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.2997855"
+ inkscape:cy="8.3620593"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 8,1051.3622 -6,-7 4,0 0,-7 4,0 0,7 4,0 -6,7 z"
+ id="path4135"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_move_point.svg b/tools/editor/icons/source/icon_move_point.svg
new file mode 100644
index 0000000000..c951d6b90a
--- /dev/null
+++ b/tools/editor/icons/source/icon_move_point.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit_pivot.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_move_point.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="25.84375"
+ inkscape:cx="8.9607405"
+ inkscape:cy="10.687849"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 9.2128906 14.892578 L 6.6132812 8.5722656 A 1.50015 1.50015 0 0 1 7.984375 6.5019531 L 7.984375 6.5 A 1.50015 1.50015 0 0 1 8.5703125 6.6113281 L 14.888672 9.2109375 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 10.755859 10.755859 L 11.279297 12.029297 A 1.50015 1.50015 0 0 1 11.759766 11.759766 A 1.50015 1.50015 0 0 1 12.029297 11.28125 L 10.755859 10.755859 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 3 A 5.0000172 5.0000172 0 0 0 3 8 A 5.0000172 5.0000172 0 0 0 8 13 A 5.0000172 5.0000172 0 0 0 8.4257812 12.978516 L 6.6132812 8.5722656 A 1.50015 1.50015 0 0 1 7.984375 6.5019531 L 7.984375 6.5 A 1.50015 1.50015 0 0 1 8.5703125 6.6113281 L 12.978516 8.4238281 A 5.0000172 5.0000172 0 0 0 13 8 A 5.0000172 5.0000172 0 0 0 8 3 z M 10.755859 10.755859 L 11.199219 11.835938 A 5.0000172 5.0000172 0 0 0 11.837891 11.203125 L 10.755859 10.755859 z "
+ transform="translate(0,1036.3622)"
+ id="circle4156" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 16,1047.6532 -8,-3.291 3.290998,8 0.947104,-2.8201 1.8836,1.8835 0.941801,-0.9418 -1.8836,-1.8835 z"
+ id="rect4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_move_up.svg b/tools/editor/icons/source/icon_move_up.svg
new file mode 100644
index 0000000000..8f671a0d72
--- /dev/null
+++ b/tools/editor/icons/source/icon_move_up.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_arrow_left.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_move_up.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.2997855"
+ inkscape:cy="8.3620593"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="M 8 1 L 2 8 L 6 8 L 6 15 L 10 15 L 10 8 L 14 8 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4135" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_multi_edit.svg b/tools/editor/icons/source/icon_multi_edit.svg
new file mode 100644
index 0000000000..ef63861e97
--- /dev/null
+++ b/tools/editor/icons/source/icon_multi_edit.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_multi_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000002"
+ inkscape:cx="5.8408976"
+ inkscape:cy="8.1515472"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1.7071068,1047.8266 1,1051.3622 l 3.5355339,-0.7071 7.7781741,-7.7782 -2.828427,-2.8284 z m 9.1923882,-9.1924 2.828427,2.8285 1.414214,-1.4142 -2.828428,-2.8285 z"
+ id="rect4135"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="2"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1041.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4156"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="2"
+ height="2"
+ x="5"
+ y="1037.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_multi_line.svg b/tools/editor/icons/source/icon_multi_line.svg
new file mode 100644
index 0000000000..542e311286
--- /dev/null
+++ b/tools/editor/icons/source/icon_multi_line.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_multi_line.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="8.0670393"
+ inkscape:cy="9.3567993"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4137"
+ width="5"
+ height="1.9999478"
+ x="10"
+ y="1037.3622" />
+ <rect
+ y="-8"
+ x="1037.3622"
+ height="7.000001"
+ width="2.0000174"
+ id="rect4158"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ y="1041.3622"
+ x="1"
+ height="1.9999478"
+ width="11"
+ id="rect4155"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4157"
+ width="4"
+ height="1.9999478"
+ x="1"
+ y="1045.3622" />
+ <rect
+ y="1045.3622"
+ x="7"
+ height="1.9999478"
+ width="8"
+ id="rect4159"
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="13"
+ height="1.9999478"
+ x="1"
+ y="1049.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_multi_mesh.svg b/tools/editor/icons/source/icon_multi_mesh.svg
new file mode 100644
index 0000000000..22f843a686
--- /dev/null
+++ b/tools/editor/icons/source/icon_multi_mesh.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_multi_mesh.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="19.153224"
+ inkscape:cy="8.0775961"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 6 14 L 6 13 L 6 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 7.5859375 9 L 9 9 L 9 8 L 9 7.5859375 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7265625 L 12 6 L 14 6 L 14 4.7304688 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 11 8 L 11 9.5859375 L 11 11 L 9.5859375 11 L 8 11 L 8 12 L 8 13 L 11 13 L 11 14 L 11 16 L 13 16 L 13 15 L 13 13 L 15 13 L 16 13 L 16 11 L 14 11 L 13 11 L 13 8 L 12 8 L 11 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_multi_mesh_instance.svg b/tools/editor/icons/source/icon_multi_mesh_instance.svg
new file mode 100644
index 0000000000..deceae5a03
--- /dev/null
+++ b/tools/editor/icons/source/icon_multi_mesh_instance.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_multi_mesh_instance.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="7.9179235"
+ inkscape:cy="7.0878016"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 6 14 L 6 13 L 6 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 7.5859375 9 L 9 9 L 9 8 L 9 7.5859375 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7265625 L 12 6 L 14 6 L 14 4.7304688 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z M 12 8 L 12 10.585938 L 11 9.5859375 L 11 11 L 9.5859375 11 L 10.585938 12 L 8 12 L 8 13 L 9 13 L 11 13 L 11 14 L 11.271484 14 A 2 2 0 0 0 13 15 L 13 13 L 15 13 A 2 2 0 0 0 13.96875 11.25 L 14 11.25 L 14 11 L 13 11 L 13 8 L 12 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 11,1044.3622 0,3 -3,0 0,2 3,0 0,3 2,0 0,-3 3,0 0,-2 -3,0 0,-3 -2,0 z"
+ id="rect4199"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation.svg b/tools/editor/icons/source/icon_navigation.svg
new file mode 100644
index 0000000000..42e8f59165
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="4.4490623"
+ inkscape:cy="7.6851407"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 3,1050.3622 5,-2 5,2 -5,-12 -5,12 z"
+ id="path4155"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation_2d.svg b/tools/editor/icons/source/icon_navigation_2d.svg
new file mode 100644
index 0000000000..5252541e70
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation_2d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="4.4490623"
+ inkscape:cy="7.6851407"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#a5b7f5;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 3,1050.3622 5,-2 5,2 -5,-12 -5,12 z"
+ id="path4155"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation_mesh_instance.svg b/tools/editor/icons/source/icon_navigation_mesh_instance.svg
new file mode 100644
index 0000000000..5c4e0f1579
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation_mesh_instance.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation_mesh_instance.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="9.8145891"
+ inkscape:cy="8.1609197"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 A 2 2 0 0 0 1 3 A 2 2 0 0 0 2 4.7304688 L 2 11.271484 A 2 2 0 0 0 1 13 A 2 2 0 0 0 3 15 A 2 2 0 0 0 4.7304688 14 L 7.2382812 14 L 7.9882812 12 L 4.7285156 12 A 2 2 0 0 0 4 11.269531 L 4 5.4140625 L 8.6972656 10.111328 L 9.46875 8.0546875 L 5.4140625 4 L 11.271484 4 A 2 2 0 0 0 12 4.7304688 L 12 5.0019531 A 2.0002 2.0002 0 0 1 12.023438 5.0019531 A 2.0002 2.0002 0 0 1 13.873047 6.2988281 L 14 6.6367188 L 14 4.7285156 A 2 2 0 0 0 15 3 A 2 2 0 0 0 13 1 A 2 2 0 0 0 11.269531 2 L 4.7285156 2 A 2 2 0 0 0 3 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ <path
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843"
+ d="m 15,1051.3622 -3,-8 -3,8 3,-2 z"
+ id="path4156"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4177"
+ width="2"
+ height="1"
+ x="12"
+ y="1040.3622" />
+ <rect
+ y="1040.3622"
+ x="12"
+ height="1"
+ width="2"
+ id="rect4179"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_navigation_polygon_instance.svg b/tools/editor/icons/source/icon_navigation_polygon_instance.svg
new file mode 100644
index 0000000000..5153227b15
--- /dev/null
+++ b/tools/editor/icons/source/icon_navigation_polygon_instance.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_navigation_polygon_instance.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="7.2564029"
+ inkscape:cy="7.9852618"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5b7f2;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2 1 A 1.0001 1.0001 0 0 0 1 2 L 1 14 A 1.0001 1.0001 0 0 0 2 15 L 6.9023438 15 A 2.1002099 2.1002099 0 0 1 7.0332031 14.263672 L 7.5078125 13 L 3 13 L 3 3 L 11.585938 3 L 7.2929688 7.2929688 A 1.0001 1.0001 0 0 0 7.2929688 8.7070312 L 8.6191406 10.033203 L 10.033203 6.2636719 A 2.1002099 2.1002099 0 0 1 12.025391 4.9023438 A 2.1002099 2.1002099 0 0 1 12.460938 4.953125 L 14.707031 2.7070312 A 1.0001 1.0001 0 0 0 14 1 L 2 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4144" />
+ <path
+ style="fill:#a5b7f6;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.98823529"
+ d="m 15,1051.3622 -3,-8 -3,8 3,-2 z"
+ id="path4163"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_new.svg b/tools/editor/icons/source/icon_new.svg
new file mode 100644
index 0000000000..a37ba1be3f
--- /dev/null
+++ b/tools/editor/icons/source/icon_new.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_new.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_new.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="0.22745062"
+ inkscape:cy="11.330333"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-8"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-8"
+ inkscape:label="Layer 1"
+ transform="translate(0,-1.6949463e-5)">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ inkscape:connector-curvature="0"
+ id="rect4158"
+ d="m 2,1037.3622 0,14 12,0 0,-9 -5,0 0,-5 z m 8,0 0,4 4,0 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_node.svg b/tools/editor/icons/source/icon_node.svg
new file mode 100644
index 0000000000..02e2774669
--- /dev/null
+++ b/tools/editor/icons/source/icon_node.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_node.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="4.1094292"
+ inkscape:cy="4.5020156"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 4 A 4 4 0 0 1 12 8 A 4 4 0 0 1 8 12 A 4 4 0 0 1 4 8 A 4 4 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_node_2d.svg b/tools/editor/icons/source/icon_node_2d.svg
new file mode 100644
index 0000000000..e546f68539
--- /dev/null
+++ b/tools/editor/icons/source/icon_node_2d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_node_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="4.2420117"
+ inkscape:cy="6.0488117"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f3;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 4 A 4 4 0 0 1 12 8 A 4 4 0 0 1 8 12 A 4 4 0 0 1 4 8 A 4 4 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_node_warning.svg b/tools/editor/icons/source/icon_node_warning.svg
new file mode 100644
index 0000000000..89d3663fb0
--- /dev/null
+++ b/tools/editor/icons/source/icon_node_warning.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_new.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_node_warning.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="6.468104"
+ inkscape:cy="5.5071727"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-8"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-8"
+ inkscape:label="Layer 1"
+ transform="translate(0,-1.6949463e-5)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffd684;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 8.0292969 2.0019531 A 1.0001 1.0001 0 0 0 7.1425781 2.4863281 L 1.1425781 12.486328 A 1.0001 1.0001 0 0 0 2 14 L 14 14 A 1.0001 1.0001 0 0 0 14.857422 12.486328 L 8.8574219 2.4863281 A 1.0001 1.0001 0 0 0 8.0292969 2.0019531 z M 7 5 L 9 5 L 9 10 L 7 10 L 7 5 z M 7 11 L 9 11 L 9 13 L 7 13 L 7 11 z "
+ id="path4155"
+ transform="translate(0,1036.3622)" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_non_favorite.svg b/tools/editor/icons/source/icon_non_favorite.svg
new file mode 100644
index 0000000000..54fcb8577e
--- /dev/null
+++ b/tools/editor/icons/source/icon_non_favorite.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_favorites.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_non_favorite.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.1165833"
+ inkscape:cy="7.8879933"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1.7246094 L 5.625 5.8222656 L 1 6.9199219 L 4.2363281 10.326172 L 3.8769531 15 L 8.015625 13.023438 L 12.173828 14.964844 L 11.777344 10.3125 L 15 6.9199219 L 10.375 5.8222656 L 8 1.7246094 z M 8 4 L 9.6582031 6.7773438 L 12.890625 7.5214844 L 10.640625 9.8222656 L 10.916016 12.976562 L 8.0117188 11.660156 L 5.1191406 13 L 5.3710938 9.8320312 L 3.109375 7.5214844 L 6.3417969 6.7773438 L 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4254" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_object.svg b/tools/editor/icons/source/icon_object.svg
new file mode 100644
index 0000000000..6236f75c4d
--- /dev/null
+++ b/tools/editor/icons/source/icon_object.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_object.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.2827981"
+ inkscape:cy="6.8612677"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#cacad7;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 8,1044.3622 6,-3 -6,-3 -6,3 z"
+ id="path4180"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#cacad7;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 2,1047.3622 6,3 0,-6 -6,-3 z"
+ id="path4176"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4178"
+ d="m 14,1047.3622 -6,3 0,-6 6,-3 z"
+ style="fill:#cacad7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#3b3a4d;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 8 3.1191406 L 11.763672 5 L 8 6.8828125 L 4.2363281 5 L 8 3.1191406 z M 3 6.6171875 L 7 8.6171875 L 7 12.382812 L 3 10.382812 L 3 6.6171875 z M 13 6.6171875 L 13 10.382812 L 9 12.382812 L 9 8.6171875 L 13 6.6171875 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_occluder_polygon_2d.svg b/tools/editor/icons/source/icon_occluder_polygon_2d.svg
new file mode 100644
index 0000000000..8ae6dc176d
--- /dev/null
+++ b/tools/editor/icons/source/icon_occluder_polygon_2d.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_occluder_polygon_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="15.209065"
+ inkscape:cy="9.8176368"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#3552b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1045.3622 6,6 8,0 0,-8 -6,-6 -8,0 z"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:#a5b7f3;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.98823529"
+ d="m 1,1037.3622 8,0 -3,4 3,4 -8,0 z"
+ id="path4154"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_omni_light.svg b/tools/editor/icons/source/icon_omni_light.svg
new file mode 100644
index 0000000000..e1049d0039
--- /dev/null
+++ b/tools/editor/icons/source/icon_omni_light.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_omni_light.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="2.3113909"
+ inkscape:cy="9.4448661"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 5 5 0 0 0 3 6 A 5 5 0 0 0 6 10.576172 L 6 13 L 10 13 L 10 10.580078 A 5 5 0 0 0 13 6 A 5 5 0 0 0 8 1 z M 8 3 A 3 3 0 0 1 11 6 A 3 3 0 0 1 8 9 A 3 3 0 0 1 5 6 A 3 3 0 0 1 8 3 z M 7 14 L 7 15 L 9 15 L 9 14 L 7 14 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_option_button.svg b/tools/editor/icons/source/icon_option_button.svg
new file mode 100644
index 0000000000..4537b14616
--- /dev/null
+++ b/tools/editor/icons/source/icon_option_button.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_option_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.751238"
+ inkscape:cy="7.999659"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 L 9,13 9,3 Z m 7,0 0,10 3,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 1,4 3,0 -1.5,2 z"
+ id="rect4140"
+ transform="translate(0,1036.3622)"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssccsccssssccccc" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4181"
+ width="4"
+ height="4"
+ x="4"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_packed_scene.svg b/tools/editor/icons/source/icon_packed_scene.svg
new file mode 100644
index 0000000000..910a274841
--- /dev/null
+++ b/tools/editor/icons/source/icon_packed_scene.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_packed_scene.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="6.5714695"
+ inkscape:cy="9.9612352"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 7 L 1 13 L 3 13 L 3 15 L 15 15 L 15 7 L 1 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
+ id="rect4138"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-6.7823301"
+ inkscape:transform-center-y="-2" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4150"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1049.3622"
+ cx="13"
+ id="circle4152"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panel.svg b/tools/editor/icons/source/icon_panel.svg
new file mode 100644
index 0000000000..28921c4031
--- /dev/null
+++ b/tools/editor/icons/source/icon_panel.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panel.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.4355266"
+ inkscape:cy="6.9694327"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panel_container.svg b/tools/editor/icons/source/icon_panel_container.svg
new file mode 100644
index 0000000000..decf220705
--- /dev/null
+++ b/tools/editor/icons/source/icon_panel_container.svg
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panel_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="1.3105266"
+ inkscape:cy="8.3756827"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_1.svg b/tools/editor/icons/source/icon_panels_1.svg
new file mode 100644
index 0000000000..fa8bbe9fad
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_1.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_1.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_2.svg b/tools/editor/icons/source/icon_panels_2.svg
new file mode 100644
index 0000000000..f00cc4b339
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_2.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_2.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="7.0000172"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1045.3622"
+ x="0"
+ height="7.0000172"
+ width="16"
+ id="rect4195"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_2_alt.svg b/tools/editor/icons/source/icon_panels_2_alt.svg
new file mode 100644
index 0000000000..cc3a634a3e
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_2_alt.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_2_alt.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ y="1036.3622"
+ x="9"
+ height="16"
+ width="7"
+ id="rect4195"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4216"
+ width="7"
+ height="16"
+ x="0"
+ y="1036.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_3.svg b/tools/editor/icons/source/icon_panels_3.svg
new file mode 100644
index 0000000000..04517c5a66
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_3.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_3.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="16"
+ height="7.0000172"
+ x="0"
+ y="1036.3622" />
+ <rect
+ y="1045.3622"
+ x="9"
+ height="7.0000172"
+ width="7"
+ id="rect4195"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4216"
+ width="7"
+ height="7.0000172"
+ x="0"
+ y="1045.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_3_alt.svg b/tools/editor/icons/source/icon_panels_3_alt.svg
new file mode 100644
index 0000000000..e5a9493287
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_3_alt.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_3_alt.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4216"
+ width="7"
+ height="7.0000172"
+ x="0"
+ y="1045.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4237"
+ width="7"
+ height="16.000017"
+ x="9"
+ y="1036.3622" />
+ <rect
+ y="1036.3622"
+ x="0"
+ height="7.0000172"
+ width="7"
+ id="rect4239"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_panels_4.svg b/tools/editor/icons/source/icon_panels_4.svg
new file mode 100644
index 0000000000..6d07a0b6d5
--- /dev/null
+++ b/tools/editor/icons/source/icon_panels_4.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_panels_4.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="12.854542"
+ inkscape:cy="9.2778779"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ y="1045.3622"
+ x="9"
+ height="7.0000172"
+ width="7"
+ id="rect4195"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4216"
+ width="7"
+ height="7.0000172"
+ x="0"
+ y="1045.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4237"
+ width="7"
+ height="7.0000172"
+ x="9"
+ y="1036.3622" />
+ <rect
+ y="1036.3622"
+ x="0"
+ height="7.0000172"
+ width="7"
+ id="rect4239"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_parallax_background.svg b/tools/editor/icons/source/icon_parallax_background.svg
new file mode 100644
index 0000000000..e1b6a4fb2f
--- /dev/null
+++ b/tools/editor/icons/source/icon_parallax_background.svg
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader_graph.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_parallax_background.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="5.3916748"
+ inkscape:cy="8.33855"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <ellipse
+ r="2"
+ style="opacity:1;fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4152"
+ cx="3"
+ cy="1039.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4232"
+ sodipodi:type="arc"
+ sodipodi:cx="2"
+ sodipodi:cy="1039.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="m 1,1039.3622 a 1,1 0 0 1 1,-1 l 0,1 z" />
+ <path
+ d="m -15,1039.3622 a 1,1 0 0 1 1,-1 l 0,1 z"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="1039.3622"
+ sodipodi:cx="-14"
+ sodipodi:type="arc"
+ id="path4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4236"
+ width="12"
+ height="1"
+ x="2"
+ y="1038.3622" />
+ <rect
+ y="1049.3622"
+ x="2"
+ height="1"
+ width="12"
+ id="rect4238"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ d="m 1,-1049.3622 a 1,1 0 0 1 1,-1 l 0,1 z"
+ sodipodi:end="4.712389"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="-1049.3622"
+ sodipodi:cx="2"
+ sodipodi:type="arc"
+ id="path4242"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(1,-1)" />
+ <path
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4244"
+ sodipodi:type="arc"
+ sodipodi:cx="-14"
+ sodipodi:cy="-1049.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="3.1415927"
+ sodipodi:end="4.712389"
+ d="m -15,-1049.3622 a 1,1 0 0 1 1,-1 l 0,1 z" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4246"
+ width="1"
+ height="10.000017"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1039.3622"
+ x="14"
+ height="10"
+ width="1"
+ id="rect4248"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7,1041.3622 -3,3 3,3 z"
+ id="path4250"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4252"
+ d="m 9,1041.3622 3,3 -3,3 z"
+ style="fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_parallax_layer.svg b/tools/editor/icons/source/icon_parallax_layer.svg
new file mode 100644
index 0000000000..022fdd5339
--- /dev/null
+++ b/tools/editor/icons/source/icon_parallax_layer.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_shader_graph.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_parallax_layer.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="10.053658"
+ inkscape:cy="6.9687954"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <ellipse
+ r="2"
+ style="opacity:1;fill:#6e6e6e;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="ellipse4152"
+ cx="3"
+ cy="1039.3622" />
+ <path
+ style="fill:#a5b7f8;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7,1041.3622 -3,3 3,3 z"
+ id="path4250"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4252"
+ d="m 9,1041.3622 3,3 -3,3 z"
+ style="fill:#a5b7f8;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,1 10,0 c 0.552281,9.6e-6 0.99999,0.4477192 1,1 l 0,10 c -10e-6,0.552281 -0.447719,0.99999 -1,1 L 3,14 C 2.4477192,13.99999 2.0000096,13.552281 2,13 L 2,3 c 9.6e-6,-0.5522808 0.4477192,-0.9999904 1,-1 z"
+ transform="translate(0,1036.3622)"
+ id="path4160"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_particle_attractor_2d.svg b/tools/editor/icons/source/icon_particle_attractor_2d.svg
new file mode 100644
index 0000000000..f755d7fc37
--- /dev/null
+++ b/tools/editor/icons/source/icon_particle_attractor_2d.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_particle_attractor_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="8.9614257"
+ inkscape:cy="5.6970686"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 A 3 7 0 0 0 5 8 A 3 7 0 0 0 8 15 A 3 7 0 0 0 11 8 A 3 7 0 0 0 8 1 z M 8 2 A 2 5.9999828 0 0 1 10 8 A 2 5.9999828 0 0 1 8 14 A 2 5.9999828 0 0 1 6 8 A 2 5.9999828 0 0 1 8 2 z "
+ transform="translate(0,1036.3622)"
+ id="path4143" />
+ <path
+ id="path4148"
+ d="m 1,1044.3622 a 7,3 0 0 0 7,3 7,3 0 0 0 7,-3 7,3 0 0 0 -7,-3 7,3 0 0 0 -7,3 z m 1,0 a 5.9999828,2 0 0 1 6,-2 5.9999828,2 0 0 1 6,2 5.9999828,2 0 0 1 -6,2 5.9999828,2 0 0 1 -6,-2 z"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 3.0502525,1049.3119 a 3,7 45 0 0 7.0710675,-2.8284 3,7 45 0 0 2.828427,-7.071 3,7 45 0 0 -7.0710673,2.8284 3,7 45 0 0 -2.8284272,7.071 z m 0.7071068,-0.7071 a 2,5.9999828 45 0 1 2.8284271,-5.6568 2,5.9999828 45 0 1 5.6568546,-2.8284 2,5.9999828 45 0 1 -2.8284274,5.6568 2,5.9999828 45 0 1 -5.6568543,2.8284 z"
+ id="path4150" />
+ <path
+ id="path4152"
+ d="m 12.9497,1049.3119 a 7,3 45 0 0 -2.8284,-7.071 7,3 45 0 0 -7.0710003,-2.8284 7,3 45 0 0 2.8284,7.071 7,3 45 0 0 7.0710003,2.8284 z m -0.7071,-0.7071 a 5.9999828,2 45 0 1 -5.6568003,-2.8284 5.9999828,2 45 0 1 -2.8284,-5.6568 5.9999828,2 45 0 1 5.6568,2.8284 5.9999828,2 45 0 1 2.8284003,5.6568 z"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4154"
+ cx="8"
+ cy="1044.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_particles.svg b/tools/editor/icons/source/icon_particles.svg
new file mode 100644
index 0000000000..f48929a7ef
--- /dev/null
+++ b/tools/editor/icons/source/icon_particles.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_particles.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="5.0589841"
+ inkscape:cy="5.0441142"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4138"
+ cx="4"
+ cy="1044.3622"
+ r="3" />
+ <ellipse
+ cy="1042.3622"
+ cx="8"
+ id="circle4140"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ rx="4.4999948"
+ ry="4.9999847" />
+ <path
+ style="fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 4,1047.3622 8,0 0,-4 -8,0 z"
+ id="path4142"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <circle
+ r="3"
+ cy="1044.3622"
+ cx="12"
+ id="circle4146"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4148"
+ cx="4"
+ cy="1049.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1049.3622"
+ cx="12"
+ id="circle4150"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="circle4152"
+ cx="8"
+ cy="1050.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_particles_2d.svg b/tools/editor/icons/source/icon_particles_2d.svg
new file mode 100644
index 0000000000..1ad1d511f8
--- /dev/null
+++ b/tools/editor/icons/source/icon_particles_2d.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_particles_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="10.042274"
+ inkscape:cy="6.8827763"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4138"
+ cx="4"
+ cy="1044.3622"
+ r="3" />
+ <ellipse
+ cy="1042.3622"
+ cx="8"
+ id="circle4140"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ rx="4.4999948"
+ ry="4.9999847" />
+ <path
+ style="fill:#a5b7f5;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 4,1047.3622 8,0 0,-4 -8,0 z"
+ id="path4142"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <circle
+ r="3"
+ cy="1044.3622"
+ cx="12"
+ id="circle4146"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4148"
+ cx="4"
+ cy="1049.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1049.3622"
+ cx="12"
+ id="circle4150"
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="circle4152"
+ cx="8"
+ cy="1050.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_patch_9_frame.svg b/tools/editor/icons/source/icon_patch_9_frame.svg
new file mode 100644
index 0000000000..f12789c19e
--- /dev/null
+++ b/tools/editor/icons/source/icon_patch_9_frame.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_patch_9_frame.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.35114"
+ inkscape:cy="9.1140348"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1050.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="14"
+ height="14"
+ width="1"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1040.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4162"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1047.3622" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4166"
+ width="14"
+ height="0.9999826"
+ x="1037.3622"
+ y="-5"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ y="-12"
+ x="1037.3622"
+ height="0.9999826"
+ width="14"
+ id="rect4168"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_path.svg b/tools/editor/icons/source/icon_path.svg
new file mode 100644
index 0000000000..39c63eac8a
--- /dev/null
+++ b/tools/editor/icons/source/icon_path.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_path.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="5.2482063"
+ inkscape:cy="13.715698"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4154"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1039.3622"
+ cx="13"
+ id="circle4165"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843"
+ d="m 3,1049.3622 c 0,-9 10,-1 10,-10"
+ id="path4167"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_path_2d.svg b/tools/editor/icons/source/icon_path_2d.svg
new file mode 100644
index 0000000000..6887834048
--- /dev/null
+++ b/tools/editor/icons/source/icon_path_2d.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_path_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="6.9717791"
+ inkscape:cy="15.350883"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4154"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1039.3622"
+ cx="13"
+ id="circle4165"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 12,1039.3613 c 0,2.0648 -0.492456,2.8244 -1.136719,3.2754 -0.644262,0.451 -1.7128904,0.6055 -2.9628904,0.7305 -1.25,0.125 -2.681372,0.2205 -3.9121094,1.082 C 2.7575439,1045.3107 2,1046.9261 2,1049.3613 l 2,0 c 0,-2.0648 0.4924561,-2.8224 1.1367188,-3.2734 0.6442626,-0.451 1.7128906,-0.6055 2.9628906,-0.7305 1.25,-0.125 2.6813716,-0.2205 3.9121096,-1.082 C 13.242456,1043.4139 14,1041.7965 14,1039.3613 l -2,0 z"
+ id="path4167"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_path_follow.svg b/tools/editor/icons/source/icon_path_follow.svg
new file mode 100644
index 0000000000..6999df33de
--- /dev/null
+++ b/tools/editor/icons/source/icon_path_follow.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_path_follow.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="16.455225"
+ inkscape:cy="0.74140894"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4154"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 12,1039.3613 c 0,2.0648 -0.492456,2.8244 -1.136719,3.2754 -0.644262,0.451 -1.7128904,0.6055 -2.9628904,0.7305 -1.25,0.125 -2.681372,0.2205 -3.9121094,1.082 C 2.7575439,1045.3107 2,1046.9261 2,1049.3613 l 2,0 c 0,-2.0648 0.4924561,-2.8224 1.1367188,-3.2734 0.6442626,-0.451 1.7128906,-0.6055 2.9628906,-0.7305 1.25,-0.125 2.6813716,-0.2205 3.9121096,-1.082 C 13.242456,1043.4139 14,1041.7965 14,1039.3613 l -2,0 z"
+ id="path4167"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843"
+ d="m 10,1040.3622 6,0 -3,-4 z"
+ id="path4238"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_path_follow_2d.svg b/tools/editor/icons/source/icon_path_follow_2d.svg
new file mode 100644
index 0000000000..020a094c0a
--- /dev/null
+++ b/tools/editor/icons/source/icon_path_follow_2d.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_path_follow_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="9.0298197"
+ inkscape:cy="11.306698"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4154"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 12,1039.3613 c 0,2.0648 -0.492456,2.8244 -1.136719,3.2754 -0.644262,0.451 -1.7128904,0.6055 -2.9628904,0.7305 -1.25,0.125 -2.681372,0.2205 -3.9121094,1.082 C 2.7575439,1045.3107 2,1046.9261 2,1049.3613 l 2,0 c 0,-2.0648 0.4924561,-2.8224 1.1367188,-3.2734 0.6442626,-0.451 1.7128906,-0.6055 2.9628906,-0.7305 1.25,-0.125 2.6813716,-0.2205 3.9121096,-1.082 C 13.242456,1043.4139 14,1041.7965 14,1039.3613 l -2,0 z"
+ id="path4167"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5b7f9;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.98823529"
+ d="m 10,1040.3622 6,0 -3,-4 z"
+ id="path4238"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_pause.svg b/tools/editor/icons/source/icon_pause.svg
new file mode 100644
index 0000000000..411f1b22da
--- /dev/null
+++ b/tools/editor/icons/source/icon_pause.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_pause.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="11.023552"
+ inkscape:cy="7.2928145"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f0f0f0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 4 3 A 1.0001 1.0001 0 0 0 3 4 L 3 12 A 1.0001 1.0001 0 0 0 4 13 L 6 13 L 6 12 L 7 12 L 7 4 L 6 4 L 6 3 L 4 3 z M 10 3 L 10 4 L 9 4 L 9 12 L 10 12 L 10 13 L 12 13 A 1.0001 1.0001 0 0 0 13 12 L 13 4 A 1.0001 1.0001 0 0 0 12 3 L 10 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ <circle
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4169"
+ cx="6"
+ cy="1040.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1040.3622"
+ cx="10"
+ id="circle4181"
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <circle
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="circle4183"
+ cx="10"
+ cy="1048.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1048.3622"
+ cx="6"
+ id="circle4185"
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_pin.svg b/tools/editor/icons/source/icon_pin.svg
new file mode 100644
index 0000000000..8281b6438b
--- /dev/null
+++ b/tools/editor/icons/source/icon_pin.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_pin.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="2.044657"
+ inkscape:cy="7.8674742"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 3,1046.3622 10,0 -2,-3 -6,0 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="M 4 1 L 4 2 L 5 3 L 5 6 L 11 6 L 11 3 L 12 2 L 12 1 L 4 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="2"
+ height="2.0000174"
+ x="7"
+ y="1047.3622" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7,1049.3622 1,2 1,-2 -2,0 z"
+ id="path4175"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_pin_joint.svg b/tools/editor/icons/source/icon_pin_joint.svg
new file mode 100644
index 0000000000..47dbe6be60
--- /dev/null
+++ b/tools/editor/icons/source/icon_pin_joint.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_pin_joint.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="5.6333089"
+ inkscape:cy="6.8938532"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#fc9c9c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1.9289328,1043.2912 9,1050.3622 l 0.7071066,-3.5355 -4.2426399,-4.2426 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#fc9c9c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 9,1037.6343 -0.7071061,0.7071 0,1.4142 -2.1213204,2.1214 4.2426405,4.2426 2.12132,-2.1213 1.414214,0 0.707107,-0.7071 L 9,1037.6343 Z"
+ id="path4162"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="2"
+ height="2.0000174"
+ x="743.08221"
+ y="737.35425"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
+ <path
+ style="fill:#fc9c9c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 2.6360396,1048.2409 -0.7071068,2.1213 2.1213204,-0.7071 -1.4142136,-1.4142 z"
+ id="path4175"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_pin_joint_2d.svg b/tools/editor/icons/source/icon_pin_joint_2d.svg
new file mode 100644
index 0000000000..90e1579903
--- /dev/null
+++ b/tools/editor/icons/source/icon_pin_joint_2d.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_pin_joint_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999998"
+ inkscape:cx="5.6333089"
+ inkscape:cy="6.8938532"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#a5b7f6;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 1.9289328,1043.2912 9,1050.3622 l 0.7071066,-3.5355 -4.2426399,-4.2426 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5b7f6;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 9,1037.6343 -0.7071061,0.7071 0,1.4142 -2.1213204,2.1214 4.2426405,4.2426 2.12132,-2.1213 1.414214,0 0.707107,-0.7071 L 9,1037.6343 Z"
+ id="path4162"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="2"
+ height="2.0000174"
+ x="743.08221"
+ y="737.35425"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
+ <path
+ style="fill:#a5b7f6;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 2.6360396,1048.2409 -0.7071068,2.1213 2.1213204,-0.7071 -1.4142136,-1.4142 z"
+ id="path4175"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_pin_pressed.svg b/tools/editor/icons/source/icon_pin_pressed.svg
new file mode 100644
index 0000000000..8281b6438b
--- /dev/null
+++ b/tools/editor/icons/source/icon_pin_pressed.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_pin.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="2.044657"
+ inkscape:cy="7.8674742"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 3,1046.3622 10,0 -2,-3 -6,0 z"
+ id="path4160"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="M 4 1 L 4 2 L 5 3 L 5 6 L 11 6 L 11 3 L 12 2 L 12 1 L 4 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4162" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="2"
+ height="2.0000174"
+ x="7"
+ y="1047.3622" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 7,1049.3622 1,2 1,-2 -2,0 z"
+ id="path4175"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_plane.svg b/tools/editor/icons/source/icon_plane.svg
new file mode 100644
index 0000000000..de5b5efc82
--- /dev/null
+++ b/tools/editor/icons/source/icon_plane.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_plane.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="8.9877784"
+ inkscape:cx="6.5696062"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1044.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_plane_shape.svg b/tools/editor/icons/source/icon_plane_shape.svg
new file mode 100644
index 0000000000..b2d5e18b8f
--- /dev/null
+++ b/tools/editor/icons/source/icon_plane_shape.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_plane_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="6.0267957"
+ inkscape:cx="3.664842"
+ inkscape:zoom="31.999999"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#a2d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1044.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play.svg b/tools/editor/icons/source/icon_play.svg
new file mode 100644
index 0000000000..9d3beab97d
--- /dev/null
+++ b/tools/editor/icons/source/icon_play.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="10.275"
+ inkscape:cy="7.6146693"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;fill-opacity:1"
+ d="m 4,1048.3622 0,-8 7,4 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play_backwards.svg b/tools/editor/icons/source/icon_play_backwards.svg
new file mode 100644
index 0000000000..d93d529dd8
--- /dev/null
+++ b/tools/editor/icons/source/icon_play_backwards.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play_backwards.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.9052441"
+ inkscape:cy="8.136551"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 12,1048.3622 0,-8 -6.9999995,4 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play_custom.svg b/tools/editor/icons/source/icon_play_custom.svg
new file mode 100644
index 0000000000..62ff7fe710
--- /dev/null
+++ b/tools/editor/icons/source/icon_play_custom.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play_custom_scene.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.359274"
+ inkscape:cy="4.5476192"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 7 L 1 13 A 2 2 0 0 0 3 15 L 15 15 L 15 7 L 1 7 z M 4 8 L 8 8 L 8 9 L 12 9 L 12 14 L 8 14 L 4 14 L 4 9 L 4 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
+ id="rect4138"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-6.7823301"
+ inkscape:transform-center-y="-2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play_scene.svg b/tools/editor/icons/source/icon_play_scene.svg
new file mode 100644
index 0000000000..599cd14981
--- /dev/null
+++ b/tools/editor/icons/source/icon_play_scene.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play_scene.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-0.47309035"
+ inkscape:cy="3.0665228"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 7 L 1 13 L 3 13 L 3 15 L 15 15 L 15 7 L 1 7 z M 6 8 L 11 11 L 6 14 L 6 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 0.7112932,1040.3831 1,1042.3622 l 2.2438279,-0.3273 -0.8182578,-1.9018 -1.7142769,0.25 z m 3.6933293,-0.5387 0.8182578,1.9018 1.9790524,-0.2887 -0.8182579,-1.9018 -1.9790523,0.2887 z m 3.9581047,-0.5775 0.8182579,1.9018 1.9790519,-0.2887 -0.818257,-1.9018 -1.9790528,0.2887 z m 3.9581048,-0.5774 0.818258,1.9018 1.714277,-0.25 -0.288707,-1.9791 -2.243828,0.3273 z"
+ id="rect4138"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-6.7823301"
+ inkscape:transform-center-y="-2" />
+ <circle
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4150"
+ cx="3"
+ cy="1049.3622"
+ r="2" />
+ <circle
+ r="2"
+ cy="1049.3622"
+ cx="13"
+ id="circle4152"
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play_start.svg b/tools/editor/icons/source/icon_play_start.svg
new file mode 100644
index 0000000000..7157f59f35
--- /dev/null
+++ b/tools/editor/icons/source/icon_play_start.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play_start.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="2.4322492"
+ inkscape:cy="9.0261053"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7.000102,1048.3622 0,-8 7,4 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 3,1039.3622 c 0.552262,10e-5 0.999945,0.4477 1,1 l 0,8 c -5.5e-5,0.5523 -0.447738,0.9999 -1,1 l -1,0 0,-1 -1,0 0,-8 1,0 0,-1 z"
+ id="path4155-8"
+ sodipodi:nodetypes="ccccccccccc" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4169"
+ cx="-2"
+ cy="1040.3622"
+ r="1"
+ transform="scale(-1,1)" />
+ <circle
+ r="1"
+ cy="1048.3622"
+ cx="-2"
+ id="circle4185"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_play_start_backwards.svg b/tools/editor/icons/source/icon_play_start_backwards.svg
new file mode 100644
index 0000000000..06998f1043
--- /dev/null
+++ b/tools/editor/icons/source/icon_play_start_backwards.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_play_start_backwards.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.9936216"
+ inkscape:cy="6.940039"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 8.999898,1048.3622 0,-8 -6.9999995,4 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ inkscape:connector-curvature="0"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 13,1039.3622 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,8 c 5.5e-5,0.5523 0.447738,0.9999 1,1 l 1,0 0,-1 1,0 0,-8 -1,0 0,-1 z"
+ id="path4155-8"
+ sodipodi:nodetypes="ccccccccccc" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4169"
+ cx="14"
+ cy="1040.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1048.3622"
+ cx="14"
+ id="circle4185"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_popup.svg b/tools/editor/icons/source/icon_popup.svg
new file mode 100644
index 0000000000..1681e537f6
--- /dev/null
+++ b/tools/editor/icons/source/icon_popup.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_popup.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.3021198"
+ inkscape:cy="5.264507"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.8954305 1 1 1.8954305 1 3 L 1 13 C 1 14.104569 1.8954305 15 3 15 L 13 15 C 14.104569 15 15 14.104569 15 13 L 15 3 C 15 1.8954305 14.104569 1 13 1 L 3 1 z M 7 3 L 9 3 L 9 9 L 7 9 L 7 3 z M 7 11 L 9 11 L 9 13 L 7 13 L 7 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_popup_dialog.svg b/tools/editor/icons/source/icon_popup_dialog.svg
new file mode 100644
index 0000000000..54e14accc7
--- /dev/null
+++ b/tools/editor/icons/source/icon_popup_dialog.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_confirmation_dialog.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_popup_dialog.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.6244901"
+ inkscape:cy="5.7391918"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z M 7 6 L 9 6 L 9 11 L 7 11 L 7 6 z M 7 12 L 9 12 L 9 14 L 7 14 L 7 12 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_popup_menu.svg b/tools/editor/icons/source/icon_popup_menu.svg
new file mode 100644
index 0000000000..e812ca695b
--- /dev/null
+++ b/tools/editor/icons/source/icon_popup_menu.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_popup_menu.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.7434649"
+ inkscape:cy="5.0774028"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 6 A 1 1 0 0 0 1 7 L 1 14 A 1 1 0 0 0 2 15 L 14 15 A 1 1 0 0 0 15 14 L 15 7 A 1 1 0 0 0 14 6 L 2 6 z M 3 8 L 13 8 L 13 10 L 3 10 L 3 8 z M 3 11 L 13 11 L 13 13 L 3 13 L 3 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4161" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 5 L 7 5 L 7 1 L 1 1 z M 2 2 L 6 2 L 4 4 L 2 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_popup_panel.svg b/tools/editor/icons/source/icon_popup_panel.svg
new file mode 100644
index 0000000000..c307257efe
--- /dev/null
+++ b/tools/editor/icons/source/icon_popup_panel.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_popup_panel.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.4838665"
+ inkscape:cy="2.9150134"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2,6 C 1.4477153,6 1,6.4477153 1,7 l 0,7 c 0,0.552285 0.4477153,1 1,1 l 12,0 c 0.552285,0 1,-0.447715 1,-1 L 15,7 C 15,6.4477153 14.552285,6 14,6 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4161"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssss" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 5 L 7 5 L 7 1 L 1 1 z M 2 2 L 6 2 L 4 4 L 2 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_portal.svg b/tools/editor/icons/source/icon_portal.svg
new file mode 100644
index 0000000000..2f3d22025f
--- /dev/null
+++ b/tools/editor/icons/source/icon_portal.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_portal.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="3.4176446"
+ inkscape:cy="5.4395319"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 5 7 0 0 0 3 8 A 5 7 0 0 0 8 15 A 5 7 0 0 0 13 8 A 5 7 0 0 0 8 1 z M 8 3 A 2.9999998 5.0000172 0 0 1 11 8 A 2.9999998 5.0000172 0 0 1 8 13 A 2.9999998 5.0000172 0 0 1 5 8 A 2.9999998 5.0000172 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_position_2d.svg b/tools/editor/icons/source/icon_position_2d.svg
new file mode 100644
index 0000000000..4dbb2c188a
--- /dev/null
+++ b/tools/editor/icons/source/icon_position_2d.svg
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_position_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="2.4660493"
+ inkscape:cy="9.4601984"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="4"
+ height="2"
+ x="1"
+ y="1043.3622" />
+ <rect
+ y="1043.3622"
+ x="11"
+ height="2"
+ width="4"
+ id="rect4156"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="2"
+ height="4.0000172"
+ x="7"
+ y="1037.3622" />
+ <rect
+ y="1047.3622"
+ x="7"
+ height="4.0000172"
+ width="2"
+ id="rect4160"
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_position_3d.svg b/tools/editor/icons/source/icon_position_3d.svg
new file mode 100644
index 0000000000..b735af4ac3
--- /dev/null
+++ b/tools/editor/icons/source/icon_position_3d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_position.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="13.15355"
+ inkscape:cy="10.553948"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 5 L 9 5 L 9 1 L 7 1 z M 1 7 L 1 9 L 5 9 L 5 7 L 1 7 z M 11 7 L 11 9 L 15 9 L 15 7 L 11 7 z M 7 11 L 7 15 L 9 15 L 9 11 L 7 11 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_1.svg b/tools/editor/icons/source/icon_progress_1.svg
new file mode 100644
index 0000000000..4b4694d0d4
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_1.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="4.1004505"
+ inkscape:cy="7.8700042"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_2.svg b/tools/editor/icons/source/icon_progress_2.svg
new file mode 100644
index 0000000000..1edad60e03
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_2.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_2.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_3.svg b/tools/editor/icons/source/icon_progress_3.svg
new file mode 100644
index 0000000000..405a16854e
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_3.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_3.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_4.svg b/tools/editor/icons/source/icon_progress_4.svg
new file mode 100644
index 0000000000..26e97928ee
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_4.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_4.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_5.svg b/tools/editor/icons/source/icon_progress_5.svg
new file mode 100644
index 0000000000..024190e9fd
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_5.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_5.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_6.svg b/tools/editor/icons/source/icon_progress_6.svg
new file mode 100644
index 0000000000..3783c528e7
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_6.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_6.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_7.svg b/tools/editor/icons/source/icon_progress_7.svg
new file mode 100644
index 0000000000..2a2c744b5b
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_7.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_7.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_8.svg b/tools/editor/icons/source/icon_progress_8.svg
new file mode 100644
index 0000000000..2331aee2e7
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_8.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_wait_preview_8.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_progress_8.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.2105087"
+ inkscape:cy="9.593577"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1037.4403 0,3.0547 a 4,4 0 0 1 1.027344,0.4258 l 2.158203,-2.1582 A 7,7 0 0 0 9,1037.4403 Z"
+ id="path4179" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 7,1037.4423 a 7,7 0 0 0 -3.1855469,1.3203 l 2.1582031,2.1582 A 4,4 0 0 1 7,1040.4931 l 0,-3.0508 z"
+ id="path4177" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 2.4003906,1040.1767 a 7,7 0 0 0 -1.3222656,3.1855 l 3.0546875,0 a 4,4 0 0 1 0.4257813,-1.0273 l -2.1582032,-2.1582 z"
+ id="path4175" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.599609,1040.1767 -2.158203,2.1582 a 4,4 0 0 1 0.427735,1.0273 l 3.050781,0 a 7,7 0 0 0 -1.320313,-3.1855 z"
+ id="path4173" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 1.0800781,1045.3622 a 7,7 0 0 0 1.3203125,3.1855 l 2.1582032,-2.1582 a 4,4 0 0 1 -0.4277344,-1.0273 l -3.0507813,0 z"
+ id="path4171" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.867188,1045.3622 a 4,4 0 0 1 -0.425782,1.0273 l 2.158203,2.1582 a 7,7 0 0 0 1.322266,-3.1855 l -3.054687,0 z"
+ id="path4169" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 5.9726562,1047.8036 -2.1582031,2.1582 A 7,7 0 0 0 7,1051.2841 l 0,-3.0547 a 4,4 0 0 1 -1.0273438,-0.4258 z"
+ id="path4167" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.19607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.027344,1047.8036 A 4,4 0 0 1 9,1048.2313 l 0,3.0508 a 7,7 0 0 0 3.185547,-1.3203 l -2.158203,-2.1582 z"
+ id="path4142" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_progress_bar.svg b/tools/editor/icons/source/icon_progress_bar.svg
new file mode 100644
index 0000000000..1a5458080b
--- /dev/null
+++ b/tools/editor/icons/source/icon_progress_bar.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_progress_bar.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="8.6672289"
+ inkscape:cy="7.9294918"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 0,2 10,0 0,6 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="1"
+ height="4.0000172"
+ x="4"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="6"
+ height="4.0000172"
+ width="1"
+ id="rect4155"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="1"
+ height="4.0000172"
+ x="8"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_proximity_group.svg b/tools/editor/icons/source/icon_proximity_group.svg
new file mode 100644
index 0000000000..041d0c5ee2
--- /dev/null
+++ b/tools/editor/icons/source/icon_proximity_group.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_proximity_group.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="6.6334983"
+ inkscape:cy="8.2009021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="1"
+ height="2.0000174"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="-1051.3622"
+ x="-15"
+ height="14"
+ width="2"
+ id="rect4158"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,-1)" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="14"
+ height="2.0000174"
+ x="-15"
+ y="-1051.3622"
+ transform="scale(-1,-1)" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4162"
+ cx="10.499991"
+ cy="1041.8622"
+ r="1.5000087" />
+ <circle
+ r="1.4999913"
+ cy="1046.8622"
+ cx="5.4999914"
+ id="circle4164"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ r="1.5000087"
+ cy="1046.8622"
+ cx="10.499991"
+ id="circle4166"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_quad.svg b/tools/editor/icons/source/icon_quad.svg
new file mode 100644
index 0000000000..86bb1979e7
--- /dev/null
+++ b/tools/editor/icons/source/icon_quad.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_quad.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="10.348747"
+ inkscape:cy="8.3955541"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 1 L 1 3 L 1 13 L 1 15 L 3 15 L 15 15 L 15 13 L 15 1 L 3 1 L 1 1 z M 4.4140625 3 L 13 3 L 13 11.585938 L 4.4140625 3 z M 3 4.4140625 L 11.585938 13 L 3 13 L 3 4.4140625 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_quat.svg b/tools/editor/icons/source/icon_quat.svg
new file mode 100644
index 0000000000..36560d9d8f
--- /dev/null
+++ b/tools/editor/icons/source/icon_quat.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_quat.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627418"
+ inkscape:cx="2.0756935"
+ inkscape:cy="11.847423"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7 1 L 7 7 L 9 7 L 9 1 L 7 1 z M 7 13 L 7 15 L 9 15 L 9 13 L 7 13 z "
+ transform="translate(0,1036.3622)"
+ id="rect4137" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11,1039.7528 0,2.0137 a 5,2.0000043 0 0 1 2,1.5957 5,2.0000043 0 0 1 -5,2 5,2.0000043 0 0 1 -5,-2 5,2.0000043 0 0 1 2,-1.5977 l 0,-2.0097 a 7,3.9999957 0 0 0 -4,3.6074 7,3.9999957 0 0 0 7,4 7,3.9999957 0 0 0 7,-4 7,3.9999957 0 0 0 -4,-3.6094 z"
+ id="path4190"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_range.svg b/tools/editor/icons/source/icon_range.svg
new file mode 100644
index 0000000000..1dd857ff32
--- /dev/null
+++ b/tools/editor/icons/source/icon_range.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_range.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.7342772"
+ inkscape:cy="7.7859674"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4158"
+ width="2"
+ height="10.000017"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1043.3622"
+ x="1"
+ height="2.0000348"
+ width="13"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1039.3622"
+ x="13"
+ height="9.9999657"
+ width="2"
+ id="rect4162"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4137"
+ width="2"
+ height="6.0000172"
+ x="5"
+ y="1041.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="6"
+ width="2"
+ id="rect4139"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_ray_cast.svg b/tools/editor/icons/source/icon_ray_cast.svg
new file mode 100644
index 0000000000..b8cab72d07
--- /dev/null
+++ b/tools/editor/icons/source/icon_ray_cast.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_ray_cast.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="7.3699208"
+ inkscape:cy="8.6534602"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="9"
+ x="7"
+ y="1037.3622" />
+ <path
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843"
+ d="m 4,1046.3622 8,0 -4,5 z"
+ id="path4156"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_ray_cast_2d.svg b/tools/editor/icons/source/icon_ray_cast_2d.svg
new file mode 100644
index 0000000000..faadd41a17
--- /dev/null
+++ b/tools/editor/icons/source/icon_ray_cast_2d.svg
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_ray_cast_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="7.3699208"
+ inkscape:cy="8.6534602"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f5;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="9"
+ x="7"
+ y="1037.3622" />
+ <path
+ style="fill:#a5b7f5;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.98823529"
+ d="m 4,1046.3622 8,0 -4,5 z"
+ id="path4156"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_ray_shape.svg b/tools/editor/icons/source/icon_ray_shape.svg
new file mode 100644
index 0000000000..0e0f2940ae
--- /dev/null
+++ b/tools/editor/icons/source/icon_ray_shape.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_ray_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="10.045124"
+ inkscape:cx="1.7215967"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <path
+ style="fill:#a2d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1051.3622 -2,-2 0,-7 2,2 z"
+ id="path4161"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4165"
+ d="m 8,1047.8622 -2,-1.5 0,-4 2,2 z"
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:#a2d2ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 8,1037.3622 -6,5 6,4 z"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4163"
+ d="m 8,1051.3622 2,-2 0,-7 -2,2 z"
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4159"
+ d="m 8,1037.3622 6,5 -6,4 z"
+ style="fill:#2998ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rayito.svg b/tools/editor/icons/source/icon_rayito.svg
new file mode 100644
index 0000000000..56988b9e4f
--- /dev/null
+++ b/tools/editor/icons/source/icon_rayito.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rayito.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254833"
+ inkscape:cx="7.3867117"
+ inkscape:cy="10.060119"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="7"
+ height="7.0710845"
+ x="152.19386"
+ y="1047.8939"
+ transform="matrix(1,0,-0.14142068,0.98994959,0,0)" />
+ <path
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6,1043.3622 8,0 -9,8 z"
+ id="rect4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_real.svg b/tools/editor/icons/source/icon_real.svg
new file mode 100644
index 0000000000..1a3406ed48
--- /dev/null
+++ b/tools/editor/icons/source/icon_real.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_real.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="4.517927"
+ inkscape:cy="5.7292687"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="11.000017"
+ x="3"
+ y="1040.3622" />
+ <rect
+ y="1039.3622"
+ x="3"
+ height="2.0000174"
+ width="4"
+ id="rect4156"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 7 3 A 2 2.0000055 0 0 1 9 5 A 2 2.0000055 0 0 1 7 7 L 7 9 A 4 4 0 0 0 11 5 A 4 4 0 0 0 7 1 z "
+ transform="translate(0,1038.3622)"
+ id="path4156" />
+ <rect
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="4"
+ height="2.0000174"
+ x="3"
+ y="1045.3622" />
+ <rect
+ y="-12"
+ x="1049.3622"
+ height="2.0000174"
+ width="1.9999652"
+ id="rect4162"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <path
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 7 L 8 9 A 2 2.0000055 0 0 1 10 11 L 12 11 A 4 4 0 0 0 8 7 z "
+ transform="translate(0,1038.3622)"
+ id="path4164" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#cf68ea;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4168"
+ width="1.9999652"
+ height="2.0000174"
+ x="1045.3622"
+ y="-8.0000086" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_reference_frame.svg b/tools/editor/icons/source/icon_reference_frame.svg
new file mode 100644
index 0000000000..76c3247f1b
--- /dev/null
+++ b/tools/editor/icons/source/icon_reference_frame.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_reference_frame.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.94489"
+ inkscape:cy="9.0515348"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1050.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="14"
+ height="14"
+ width="1"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_region_edit.svg b/tools/editor/icons/source/icon_region_edit.svg
new file mode 100644
index 0000000000..b42a53e88d
--- /dev/null
+++ b/tools/editor/icons/source/icon_region_edit.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_region_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="5.9007098"
+ inkscape:cy="9.4003021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4165"
+ width="6"
+ height="6"
+ x="6"
+ y="1042.3622" />
+ <rect
+ y="1037.3622"
+ x="6"
+ height="4.0000348"
+ width="6"
+ id="rect4167"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4169"
+ width="4"
+ height="4.0000348"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1042.3622"
+ x="1"
+ height="6.0000348"
+ width="4"
+ id="rect4171"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="4"
+ height="2.0000174"
+ x="1"
+ y="1049.3622" />
+ <rect
+ y="1049.3622"
+ x="6"
+ height="2.0000174"
+ width="6"
+ id="rect4175"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4177"
+ width="2"
+ height="6.0000348"
+ x="13"
+ y="1042.3622" />
+ <rect
+ y="1037.3622"
+ x="13"
+ height="4.0000348"
+ width="2"
+ id="rect4179"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.32549021;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4181"
+ width="2"
+ height="2.0000174"
+ x="13"
+ y="1049.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_reload_small.svg b/tools/editor/icons/source/icon_reload_small.svg
new file mode 100644
index 0000000000..2d891c2238
--- /dev/null
+++ b/tools/editor/icons/source/icon_reload_small.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_reload_small.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.859062"
+ inkscape:cy="8.1812057"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1039.3622 a 6.0000172,6.0000172 0 0 0 -6,6 l 2,0 a 4,4 0 0 1 4,-4 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 l 0,2 a 6.0000172,6.0000172 0 0 0 6,-6 6.0000172,6.0000172 0 0 0 -6,-6 z"
+ id="path4138"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4142"
+ sodipodi:sides="3"
+ sodipodi:cx="3"
+ sodipodi:cy="1046.3622"
+ sodipodi:r1="2.236068"
+ sodipodi:r2="1.118034"
+ sodipodi:arg1="1.0471976"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 4.1180339,1048.2987 -1.6770509,-0.9683 -1.67705101,-0.9682 1.67705101,-0.9683 1.6770511,-0.9682 -1e-7,1.9365 z"
+ inkscape:transform-center-x="0.00013164169"
+ transform="matrix(0,-1.1925797,1.5491989,0,-1618.0232,1050.2732)"
+ inkscape:transform-center-y="0.66664316" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_remote.svg b/tools/editor/icons/source/icon_remote.svg
new file mode 100644
index 0000000000..f5b458c348
--- /dev/null
+++ b/tools/editor/icons/source/icon_remote.svg
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_packed_scene.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_remote.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.572511"
+ inkscape:cy="7.1227734"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4157"
+ cx="8"
+ cy="1043.3622"
+ r="2.0000174" />
+ <rect
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4159"
+ width="2"
+ height="7"
+ x="7"
+ y="1044.3622" />
+ <path
+ style="opacity:1;fill:#f0f0f0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8.0878906 1 A 6.0000172 6.0000172 0 0 0 3.7578125 2.7578125 A 6.0000172 6.0000172 0 0 0 3.7578125 11.242188 L 5.1738281 9.8261719 A 4.0000172 4.0000172 0 0 1 4 7 A 4.0000172 4.0000172 0 0 1 8 3 A 4.0000172 4.0000172 0 0 1 12 7 A 4.0000172 4.0000172 0 0 1 10.826172 9.8261719 L 12.242188 11.242188 A 6.0000172 6.0000172 0 0 0 12.242188 2.7578125 A 6.0000172 6.0000172 0 0 0 8.0878906 1 z "
+ transform="translate(0,1036.3622)"
+ id="circle4163" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_remote_transform_2d.svg b/tools/editor/icons/source/icon_remote_transform_2d.svg
new file mode 100644
index 0000000000..479cc0eb25
--- /dev/null
+++ b/tools/editor/icons/source/icon_remote_transform_2d.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_remote_transform.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="6.9441739"
+ inkscape:cy="9.4988931"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4155"
+ sodipodi:type="arc"
+ sodipodi:cx="744.13245"
+ sodipodi:cy="734.23291"
+ sodipodi:rx="4"
+ sodipodi:ry="4"
+ sodipodi:start="0"
+ sodipodi:end="3.1415927"
+ d="m 748.13245,734.23291 a 4,4 0 0 1 -2,3.4641 4,4 0 0 1 -4,0 4,4 0 0 1 -2,-3.4641 l 4,0 z"
+ inkscape:transform-center-y="0.58575321"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="0.58575732" />
+ <circle
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4159"
+ cx="7"
+ cy="1045.3622"
+ r="1" />
+ <path
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13.242641,1039.1196 a 6.0000172,6.0000172 0 0 0 -8.4852817,0 l 0.7071068,0.7071 a 5.0000172,5.0000172 0 0 1 7.0710679,0 5.0000172,5.0000172 0 0 1 0,7.071 l 0.707107,0.7071 a 6.0000172,6.0000172 0 0 0 0,-8.4852 z"
+ id="circle4163"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-0.87867618"
+ inkscape:transform-center-x="-0.8786559" />
+ <path
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 11.828427,1040.5338 a 4.0000172,4.0000172 0 0 0 -5.6568541,0 l 0.7071068,0.7071 a 3.0000174,3.0000174 0 0 1 4.2426403,0 3.0000174,3.0000174 0 0 1 0,4.2426 l 0.707107,0.7071 a 4.0000172,4.0000172 0 0 0 0,-5.6568 z"
+ id="circle4168"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-0.58578284"
+ inkscape:transform-center-x="-0.58576926" />
+ <path
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10.414214,1041.948 a 2,2 0 0 0 -2.8284276,0 l 0.7071068,0.7071 a 1.0000174,1.0000174 0 0 1 1.4142136,0 1.0000174,1.0000174 0 0 1 0,1.4142 l 0.7071072,0.7071 a 2,2 0 0 0 0,-2.8284 z"
+ id="circle4172"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-y="-0.29289334"
+ inkscape:transform-center-x="-0.29288664" />
+ <path
+ style="fill:#a5b7f6;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1,1051.3622 4,-5 1,0 0,5 z"
+ id="path4181"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_remove.svg b/tools/editor/icons/source/icon_remove.svg
new file mode 100644
index 0000000000..9d75f1e921
--- /dev/null
+++ b/tools/editor/icons/source/icon_remove.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_remove.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_remove.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="7.6907159"
+ inkscape:cy="8.3329344"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 5 L 2 13 A 2 2 0 0 0 4 15 L 12 15 A 2 2 0 0 0 14 13 L 14 5 L 2 5 z M 3 7 L 5 7 L 5 13 L 3 13 L 3 7 z M 7 7 L 9 7 L 9 13 L 7 13 L 7 7 z M 11 7 L 13 7 L 13 13 L 11 13 L 11 7 z "
+ transform="translate(0,1036.3622)"
+ id="rect4136" />
+ <rect
+ y="1038.3622"
+ x="1"
+ height="2.0000174"
+ width="14"
+ id="rect4138"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4140"
+ width="6"
+ height="2.0000174"
+ x="5"
+ y="1037.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rename.svg b/tools/editor/icons/source/icon_rename.svg
new file mode 100644
index 0000000000..41eb10c7fc
--- /dev/null
+++ b/tools/editor/icons/source/icon_rename.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_rename.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rename.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="8.1124598"
+ inkscape:cy="7.4898959"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 5 2 L 5 4 L 7 4 L 7 12 L 5 12 L 5 14 L 7 14 C 7.5522847 14 8 13.5523 8 13 C 8 13.5523 8.4477153 14 9 14 L 11 14 L 11 12 L 9 12 L 9 4 L 11 4 L 11 2 L 9 2 C 8.4477153 2 8 2.4477153 8 3 C 8 2.4477153 7.5522847 2 7 2 L 5 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4138" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_reparent.svg b/tools/editor/icons/source/icon_reparent.svg
new file mode 100644
index 0000000000..65f101c8f7
--- /dev/null
+++ b/tools/editor/icons/source/icon_reparent.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_edit.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_reparent.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="-1.4011549"
+ inkscape:cy="8.7567876"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <circle
+ r="2"
+ cy="1049.3622"
+ cx="3"
+ id="circle4277"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4279"
+ cx="3"
+ cy="1039.3622"
+ r="2" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4281"
+ cx="13"
+ cy="1049.3622"
+ r="2" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 3,1039.3622 0,10 10,0"
+ id="path4287"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1038.3622 0,2 a 3,3 0 0 1 3,3 l 2,0 a 5.0000172,5.0000172 0 0 0 -5,-5 z"
+ id="path4289"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4294"
+ width="2"
+ height="2"
+ x="12"
+ y="1043.3622" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 9,1037.3622 0,4 -3,-2 z"
+ id="path4296"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_resource_preloader.svg b/tools/editor/icons/source/icon_resource_preloader.svg
new file mode 100644
index 0000000000..bab1bb4e1e
--- /dev/null
+++ b/tools/editor/icons/source/icon_resource_preloader.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_resource_preloader.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="5.6052155"
+ inkscape:cy="14.599536"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-2"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-2">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7.9628906 1.0019531 A 1.0001 1.0001 0 0 0 7.5527344 1.1054688 L 1.5527344 4.1054688 A 1.0001 1.0001 0 0 0 1 5 L 1 11 A 1.0001 1.0001 0 0 0 1.5527344 11.894531 L 7.5527344 14.894531 A 1.0001 1.0001 0 0 0 8.4472656 14.894531 L 14.447266 11.894531 A 1.0001 1.0001 0 0 0 15 11 L 15 5 A 1.0001 1.0001 0 0 0 14.447266 4.1054688 L 8.4472656 1.1054688 A 1.0001 1.0001 0 0 0 7.9628906 1.0019531 z M 8 3.1191406 L 11.763672 5 L 8 6.8828125 L 4.2363281 5 L 8 3.1191406 z M 3 6.6191406 L 7 8.6191406 L 7 12.382812 L 3 10.382812 L 3 6.6191406 z M 13 6.6191406 L 13 10.382812 L 9 12.382812 L 9 8.6191406 L 13 6.6191406 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 11,1042.3622 -6,-3 -3,2 6,3 z"
+ id="path4214"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rich_text_label.svg b/tools/editor/icons/source/icon_rich_text_label.svg
new file mode 100644
index 0000000000..4a77dbe672
--- /dev/null
+++ b/tools/editor/icons/source/icon_rich_text_label.svg
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rich_text_label.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="9.3773364"
+ inkscape:cy="8.3725226"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="8"
+ height="2"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1041.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4159"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4161"
+ width="4"
+ height="2"
+ x="5"
+ y="1041.3622" />
+ <rect
+ y="1045.3622"
+ x="1"
+ height="2"
+ width="8"
+ id="rect4163"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4165"
+ width="4"
+ height="2"
+ x="1"
+ y="1049.3622" />
+ <rect
+ y="1049.3622"
+ x="7"
+ height="2"
+ width="2"
+ id="rect4167"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 12,1048.3622 -2,0 3,3 3,-3 -2,0 0,-8 2,0 -3,-3 -3,3 2,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rigid_body.svg b/tools/editor/icons/source/icon_rigid_body.svg
new file mode 100644
index 0000000000..6bebb5250f
--- /dev/null
+++ b/tools/editor/icons/source/icon_rigid_body.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animated_sprite.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rigid_body.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="5.8981998"
+ inkscape:cy="3.2693775"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 1.0351562 8.6992188 A 7 7 0 0 0 1.3125 10.068359 A 7 7 0 0 0 2.2226562 11.953125 A 7 7 0 0 0 2.5253906 12.361328 C 2.5261756 12.358768 2.5265573 12.356076 2.5273438 12.353516 A 7 7 0 0 0 8 15 A 7 7 0 0 0 11.242188 14.197266 C 11.243563 14.197659 11.244719 14.198826 11.246094 14.199219 A 7 7 0 0 0 11.28125 14.177734 A 7 7 0 0 0 11.707031 13.927734 A 7 7 0 0 0 11.876953 13.824219 A 7 7 0 0 0 12.246094 13.554688 A 7 7 0 0 0 12.451172 13.398438 A 7 7 0 0 0 12.792969 13.089844 A 7 7 0 0 0 12.957031 12.935547 A 7 7 0 0 0 13.287109 12.574219 A 7 7 0 0 0 13.427734 12.414062 A 7 7 0 0 0 13.705078 12.041016 A 7 7 0 0 0 13.84375 11.845703 A 7 7 0 0 0 14.0625 11.484375 A 7 7 0 0 0 14.205078 11.234375 A 7 7 0 0 0 14.361328 10.900391 A 7 7 0 0 0 14.5 10.589844 A 7 7 0 0 0 14.607422 10.28125 A 7 7 0 0 0 14.726562 9.9277344 A 7 7 0 0 0 14.814453 9.5585938 A 7 7 0 0 0 14.880859 9.265625 A 7 7 0 0 0 14.9375 8.8652344 A 7 7 0 0 0 14.974609 8.5527344 A 7 7 0 0 0 15 8 A 7 7 0 0 0 10.615234 1.5117188 A 7 7 0 0 0 10.607422 1.5078125 A 7 7 0 0 0 10.605469 1.5078125 A 7 7 0 0 0 9.9902344 1.2949219 A 7 7 0 0 0 9.9453125 1.2792969 A 7 7 0 0 0 9.9394531 1.2773438 A 7 7 0 0 0 9.3886719 1.1464844 A 7 7 0 0 0 9.2480469 1.1152344 A 7 7 0 0 0 8.6972656 1.0429688 A 7 7 0 0 0 8.5546875 1.0253906 A 7 7 0 0 0 8 1 z M 9.9511719 2.3339844 A 6 6 0 0 1 14 8 L 7 8 A 1.9999826 1.9999826 0 0 1 6.0507812 9.6992188 C 7.3958011 11.726012 8.6521082 12.963726 9.9472656 13.667969 A 6 6 0 0 1 8 14 A 6 6 0 0 1 2.9453125 11.230469 C 3.1830255 10.651966 3.4486773 10.090161 3.7714844 9.5742188 A 1.9999826 1.9999826 0 0 1 3 8 L 2 8 A 6 6 0 0 1 3.1230469 4.5136719 C 3.2693647 5.1646014 3.4808033 5.7970038 3.8066406 6.3984375 A 1.9999826 1.9999826 0 0 1 5 6 A 1.9999826 1.9999826 0 0 1 6.0507812 6.3007812 C 7.397198 4.2718995 8.6545329 3.0376638 9.9511719 2.3339844 z "
+ transform="translate(0,1036.3622)"
+ id="circle4189" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4195"
+ cx="5"
+ cy="1044.3622"
+ r="2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rigid_body_2d.svg b/tools/editor/icons/source/icon_rigid_body_2d.svg
new file mode 100644
index 0000000000..9c8309ecfb
--- /dev/null
+++ b/tools/editor/icons/source/icon_rigid_body_2d.svg
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_animated_sprite.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rigid_body_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.941452"
+ inkscape:cy="2.9508684"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f1;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1037.3622 a 7,7 0 0 0 -7,7 7,7 0 0 0 7,7 7,7 0 0 0 7,-7 7,7 0 0 0 -7,-7 z m 0,1 a 6,6 0 0 1 6,6 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 z"
+ id="circle4189"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#a5b7f1;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8,1037.3622 a 7,7 0 0 0 -5.087891,2.2051 c 0.104949,1.1207 0.354173,2.1959 0.894532,3.1933 A 1.9999826,1.9999826 0 0 1 5,1042.3622 a 1.9999826,1.9999826 0 0 1 1.050781,0.3008 c 1.787275,-2.6932 3.418131,-3.9904 5.191407,-4.4981 A 7,7 0 0 0 8,1037.3622 Z m -7,7 a 7,7 0 0 0 1.525391,4.3613 c 0.302809,-0.9877 0.71628,-1.9403 1.246093,-2.7871 A 1.9999826,1.9999826 0 0 1 3,1044.3622 l -2,0 z m 6,0 a 1.9999826,1.9999826 0 0 1 -0.949219,1.6992 c 1.788654,2.6953 3.420447,3.9932 5.195313,4.5 A 7,7 0 0 0 15,1044.3622 l -8,0 z"
+ id="path4174"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#a5b7f2;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4195"
+ cx="5"
+ cy="1044.3622"
+ r="2" />
+ <path
+ style="opacity:1;fill:#a5b7f2;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 45,1037.3585 a 7,7 0 0 0 -7,7 7,7 0 0 0 7,7 7,7 0 0 0 7,-7 7,7 0 0 0 -7,-7 z m 0,1 a 6.0000172,6.0000172 0 0 1 6,6 6.0000172,6.0000172 0 0 1 -6,6 6.0000172,6.0000172 0 0 1 -6,-6 6.0000172,6.0000172 0 0 1 6,-6 z"
+ id="path4199"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5b7f3;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 38,1044.3585 c 5,0.01 9,0.01 14,0 -2,-2.9934 -5,-4 -7,-4 -2,0 -5,1.0066 -7,4 z"
+ id="path4204"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsc" />
+ <path
+ style="opacity:1;fill:#a3b6f2;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 38,1044.3585 c 0,3.866 3.134007,7 7,7 3.865993,0 7,-3.134 7,-7 -2,2.9933 -5,4 -7,4 -2,0 -5,-1.0067 -7,-4 z"
+ id="path4224"
+ inkscape:connector-curvature="0" />
+ <path
+ style="opacity:1;fill:#a3b6f2;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m -9,1037.3622 a 7,7 0 0 0 -7,7 7,7 0 0 0 7,7 7,7 0 0 0 7,-7 7,7 0 0 0 -7,-7 z m 0,1 a 6,6 0 0 1 6,6 6,6 0 0 1 -6,6 6,6 0 0 1 -6,-6 6,6 0 0 1 6,-6 z"
+ id="path4230"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#a3b6f2;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4235"
+ cx="-9"
+ cy="1044.3622"
+ r="2" />
+ <path
+ style="opacity:1;fill:#a3b6f2;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m -9,1037.3622 a 7,7 0 0 0 -3.5,0.9375 l 3.5,6.0625 3.5,-6.0625 a 7,7 0 0 0 -3.5,-0.9375 z m 0,7 3.5,6.0625 a 7,7 0 0 0 2.5625,-2.5625 7,7 0 0 0 0.9375,-3.5 l -7,0 z m 0,0 -7,0 a 7,7 0 0 0 0.9375,3.5 7,7 0 0 0 2.5625,2.5625 l 3.5,-6.0625 z"
+ id="path4237"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_room.svg b/tools/editor/icons/source/icon_room.svg
new file mode 100644
index 0000000000..8a2ccc30c8
--- /dev/null
+++ b/tools/editor/icons/source/icon_room.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_room.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="11.210875"
+ inkscape:cy="4.4642701"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-7"
+ inkscape:label="Layer 1"
+ transform="translate(0,1.1802001e-5)"
+ style="stroke:#fc9c9c;stroke-opacity:0.99607843">
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path4139"
+ d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z"
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" />
+ </g>
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 7 2 L 7 7.3828125 L 1.5527344 10.105469 L 2.4472656 11.894531 L 8 9.1191406 L 13.552734 11.894531 L 14.447266 10.105469 L 9 7.3828125 L 9 2 L 7 2 z "
+ transform="translate(0,1036.3622)"
+ id="path4200" />
+ <path
+ style="fill:#fc9c9c;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.99607843"
+ d="m 2,1047.3622 0,-6 6,-3 0,6 z"
+ id="path4209"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rotate_0.svg b/tools/editor/icons/source/icon_rotate_0.svg
new file mode 100644
index 0000000000..710edc8fee
--- /dev/null
+++ b/tools/editor/icons/source/icon_rotate_0.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rotate_0.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.0020505"
+ inkscape:cy="9.5378523"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="7.0000172"
+ x="7"
+ y="1038.3622" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 5 5 0 0 1 13 8 A 5 5 0 0 1 8 13 A 5 5 0 0 1 3 8 A 5 5 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rotate_180.svg b/tools/editor/icons/source/icon_rotate_180.svg
new file mode 100644
index 0000000000..ba44fa295d
--- /dev/null
+++ b/tools/editor/icons/source/icon_rotate_180.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rotate_180.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.9698535"
+ inkscape:cy="9.9922105"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.0000001,1038.3622 a 6,6 0 0 1 5.9999999,6 l -6,0 z"
+ id="path4183" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="7.0000172"
+ x="7"
+ y="1038.3622"
+ inkscape:transform-center-y="-2.5000088" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 5 5 0 0 1 13 8 A 5 5 0 0 1 8 13 A 5 5 0 0 1 3 8 A 5 5 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ <rect
+ inkscape:transform-center-y="2.499974"
+ y="-1050.3622"
+ x="-9.0000172"
+ height="7.0000172"
+ width="2"
+ id="rect4181"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,-1)"
+ inkscape:transform-center-x="-1.7183069e-05" />
+ <path
+ id="path4205"
+ d="m 14,1044.3622 a 6,6 0 0 1 -6,6 l 0,-6 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="-3"
+ inkscape:transform-center-y="3" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rotate_270.svg b/tools/editor/icons/source/icon_rotate_270.svg
new file mode 100644
index 0000000000..403321cb89
--- /dev/null
+++ b/tools/editor/icons/source/icon_rotate_270.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rotate_270.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.9698535"
+ inkscape:cy="9.9922105"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.0000001,1038.3622 a 6,6 0 0 1 5.9999999,6 l -6,0 z"
+ id="path4183" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="7.0000172"
+ x="7"
+ y="1038.3622"
+ inkscape:transform-center-y="-2.5000088" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 5 5 0 0 1 13 8 A 5 5 0 0 1 8 13 A 5 5 0 0 1 3 8 A 5 5 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ <rect
+ inkscape:transform-center-y="-1.7416931e-05"
+ y="2.0000174"
+ x="-1045.3622"
+ height="7.0000172"
+ width="2"
+ id="rect4181"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,-1,1,0,0,0)"
+ inkscape:transform-center-x="2.499974" />
+ <path
+ id="path4205"
+ d="m 8,1050.3622 a 6,6 0 0 1 -6,-6 l 6,0 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="3"
+ inkscape:transform-center-y="2.9999999" />
+ <path
+ inkscape:transform-center-y="2.9999999"
+ inkscape:transform-center-x="-3"
+ inkscape:connector-curvature="0"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 14,1044.3622 a 6,6 0 0 1 -6.0000001,6 l 0,-6 z"
+ id="path4226" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_rotate_90.svg b/tools/editor/icons/source/icon_rotate_90.svg
new file mode 100644
index 0000000000..f6b7d84032
--- /dev/null
+++ b/tools/editor/icons/source/icon_rotate_90.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_rotate_90.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.9698535"
+ inkscape:cy="9.9922105"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 8.0000001,1038.3622 a 6,6 0 0 1 5.9999999,6 l -6,0 z"
+ id="path4183" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="7.0000172"
+ x="7"
+ y="1038.3622"
+ inkscape:transform-center-y="-2.5000088" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 5 5 0 0 1 13 8 A 5 5 0 0 1 8 13 A 5 5 0 0 1 3 8 A 5 5 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4157" />
+ <rect
+ inkscape:transform-center-y="-1.7383069e-05"
+ y="-14.000017"
+ x="1043.3622"
+ height="7.0000172"
+ width="2"
+ id="rect4181"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:transform-center-x="-2.5000086" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sample.svg b/tools/editor/icons/source/icon_sample.svg
new file mode 100644
index 0000000000..782e07a012
--- /dev/null
+++ b/tools/editor/icons/source/icon_sample.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_sample.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="10.421269"
+ inkscape:cy="6.7982798"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4156"
+ width="1"
+ height="1.999948"
+ x="-14"
+ y="1043.3622"
+ transform="scale(-1,1)" />
+ <rect
+ y="1039.3622"
+ x="-12"
+ height="10.000017"
+ width="1"
+ id="rect4158"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4160"
+ width="1"
+ height="7.9999475"
+ x="-10"
+ y="1040.3622"
+ transform="scale(-1,1)" />
+ <rect
+ y="1037.3622"
+ x="-8"
+ height="13.999949"
+ width="1"
+ id="rect4162"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4164"
+ width="1"
+ height="12.000017"
+ x="-6"
+ y="1038.3622"
+ transform="scale(-1,1)" />
+ <rect
+ y="1041.3622"
+ x="-4"
+ height="6.0000172"
+ width="1"
+ id="rect4166"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4168"
+ width="1"
+ height="1.9999824"
+ x="-2"
+ y="1043.3622"
+ transform="scale(-1,1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sample_player.svg b/tools/editor/icons/source/icon_sample_player.svg
new file mode 100644
index 0000000000..2254718a9b
--- /dev/null
+++ b/tools/editor/icons/source/icon_sample_player.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_sample_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="10.445016"
+ inkscape:cy="6.2884774"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 L 4 6 L 1 6 L 1 10 L 4 10 L 8 15 L 8 1 z M 13 3 L 13 13 L 14 13 L 14 3 L 13 3 z M 10 6 L 10 11 L 11 11 L 11 6 L 10 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sample_player_2d.svg b/tools/editor/icons/source/icon_sample_player_2d.svg
new file mode 100644
index 0000000000..33a7eba019
--- /dev/null
+++ b/tools/editor/icons/source/icon_sample_player_2d.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_sample_player_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="8.6950163"
+ inkscape:cy="7.1009775"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 L 4 6 L 1 6 L 1 10 L 4 10 L 8 15 L 8 1 z M 13 3 L 13 13 L 14 13 L 14 3 L 13 3 z M 10 6 L 10 11 L 11 11 L 11 6 L 10 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_save.svg b/tools/editor/icons/source/icon_save.svg
new file mode 100644
index 0000000000..9307537d4b
--- /dev/null
+++ b/tools/editor/icons/source/icon_save.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_save.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_save.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="12.546235"
+ inkscape:cy="8.6646398"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 11,1 Z m 0,0 8,0 0,6 -8,0 z m 5,8 c 1.1045695,0 2,0.8954305 2,2 0,1.104569 -0.8954305,2 -2,2 C 6.8954305,13 6,12.104569 6,11 6,9.8954305 6.8954305,9 8,9 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4135"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssssccscccccsssss" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4143"
+ width="3"
+ height="4.9999828"
+ x="4"
+ y="1037.3622" />
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 11,1037.3622 1,0 3,3 0,2 -4,0 z"
+ id="path4145"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_script.svg b/tools/editor/icons/source/icon_script.svg
new file mode 100644
index 0000000000..8073692ce8
--- /dev/null
+++ b/tools/editor/icons/source/icon_script.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_script.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254833"
+ inkscape:cx="2.4359625"
+ inkscape:cy="9.1567888"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 L 6 2 A 1 1 0 0 0 5 3 L 5 13 L 4 13 L 4 11 L 2 11 L 2 13 A 1 1 0 0 0 2.5 13.865234 A 1 1 0 0 0 3 14 L 3 15 L 10 15 A 2 2 0 0 0 12 13 L 12 5 L 15 5 L 15 3 A 2 2 0 0 0 13 1 L 6 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4255" />
+ <path
+ style="opacity:1;fill:#b4b4b4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 C 4.8954305 1 4 1.8954305 4 3 L 4 10 L 2 10 L 1 10 L 1 11 L 1 13 C 1 14.104569 1.8954305 15 3 15 C 4.1045695 15 5 14.104569 5 13 L 5 3 C 5 2.4477153 5.4477153 2 6 2 C 6.5522847 2 7 2.4477153 7 3 L 7 4 L 7 5 L 7 6 L 8 6 L 12 6 L 12 5 L 8 5 L 8 4 L 8 3 C 8 1.8954305 7.1045695 1 6 1 z M 2 11 L 4 11 L 4 13 C 4 13.552285 3.5522847 14 3 14 C 2.4477153 14 2 13.552285 2 13 L 2 11 z "
+ transform="translate(0,1036.3622)"
+ id="path4265" />
+ <circle
+ cy="1048.3622"
+ cx="3"
+ id="ellipse4234"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ ry="1.0000174"
+ rx="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_scroll_bar.svg b/tools/editor/icons/source/icon_scroll_bar.svg
new file mode 100644
index 0000000000..2f007c7c94
--- /dev/null
+++ b/tools/editor/icons/source/icon_scroll_bar.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_h_scroll_bar.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.1371771"
+ inkscape:cy="7.8450604"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 0,2 10,0 0,6 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4181"
+ width="4"
+ height="4"
+ x="4"
+ y="1042.3622" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4187"
+ width="4"
+ height="4"
+ x="4"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_scroll_container.svg b/tools/editor/icons/source/icon_scroll_container.svg
new file mode 100644
index 0000000000..d694b646e0
--- /dev/null
+++ b/tools/editor/icons/source/icon_scroll_container.svg
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_scroll_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.2189611"
+ inkscape:cy="10.454966"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4161"
+ d="m 10,1042.3622 0,4 2,-2 z"
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 6,1042.3622 0,4 -2,-2 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 6,1042.3622 4,0 -2,-2 z"
+ id="path4157"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4159"
+ d="m 6,1046.3622 4,0 -2,2 z"
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_shader.svg b/tools/editor/icons/source/icon_shader.svg
new file mode 100644
index 0000000000..4c7b5aafc1
--- /dev/null
+++ b/tools/editor/icons/source/icon_shader.svg
@@ -0,0 +1,275 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_canvas_item_material.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_shader.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4174">
+ <stop
+ style="stop-color:#ff5353;stop-opacity:1"
+ offset="0"
+ id="stop4176" />
+ <stop
+ id="stop4186"
+ offset="0.29999271"
+ style="stop-color:#f1e17a;stop-opacity:1" />
+ <stop
+ id="stop4184"
+ offset="0.55557561"
+ style="stop-color:#6bfcef;stop-opacity:1" />
+ <stop
+ style="stop-color:#9765fd;stop-opacity:1"
+ offset="0.8889094"
+ id="stop4188" />
+ <stop
+ style="stop-color:#ff6092;stop-opacity:1"
+ offset="1"
+ id="stop4178" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4253">
+ <path
+ style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 16.458984,1024.37 a 12.000027,12.000027 0 0 0 -3.564453,0.4004 12.000027,12.000027 0 0 0 -8.4863279,14.6973 12.000027,12.000027 0 0 0 14.6972659,8.4863 12.000027,12.000027 0 0 0 8.486328,-14.6973 12.000027,12.000027 0 0 0 -11.132813,-8.8867 z M 16.25,1029.8212 a 6.5451717,6.5451717 0 0 1 6.072266,4.8476 6.5451717,6.5451717 0 0 1 -4.628907,8.0157 6.5451717,6.5451717 0 0 1 -8.0156246,-4.6289 6.5451717,6.5451717 0 0 1 4.6289066,-8.0157 6.5451717,6.5451717 0 0 1 1.943359,-0.2187 z"
+ id="path4255"
+ inkscape:connector-curvature="0" />
+ </clipPath>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4174"
+ id="radialGradient4161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2857125,1.428583,-1.4285914,1.2857189,1540.5411,-308.80327)"
+ cx="7.5384259"
+ cy="1041.7489"
+ fx="7.5384259"
+ fy="1041.7489"
+ r="7" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4199">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4201"
+ d="m 16.5,1025.8622 a 11.8125,10.499999 0 0 0 -11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125001,10.5 11.8125,10.499999 0 0 0 11.8125,-10.5 11.8125,10.499999 0 0 0 -11.8125,-10.5 z m -3.375,3 a 3.375,2.9999997 0 0 1 3.375,3 3.375,2.9999997 0 0 1 -3.375,3 3.375,2.9999997 0 0 1 -3.3750001,-3 3.375,2.9999997 0 0 1 3.3750001,-3 z"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254832"
+ inkscape:cx="1.7751371"
+ inkscape:cy="8.8192435"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="g4181"
+ mask="none"
+ clip-path="url(#clipPath4199)"
+ transform="matrix(0.59259259,0,0,0.66666674,-1.7777777,353.454)">
+ <rect
+ y="1025.8622"
+ x="3"
+ height="3.0000043"
+ width="27"
+ id="rect4159"
+ style="fill:#ff7070;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ffeb70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4161"
+ width="27"
+ height="3.0000041"
+ x="3"
+ y="1028.8622" />
+ <rect
+ style="fill:#9dff70;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4163"
+ width="27"
+ height="2.9999995"
+ x="3"
+ y="1031.8622" />
+ <rect
+ y="1034.8622"
+ x="3"
+ height="3.0000031"
+ width="27"
+ id="rect4165"
+ style="fill:#70ffb9;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="1037.8622"
+ x="3"
+ height="3.0000029"
+ width="27"
+ id="rect4167"
+ style="fill:#70deff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ style="fill:#ff70ac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4169"
+ width="27"
+ height="2.9999976"
+ x="3"
+ y="1043.8622" />
+ <rect
+ style="fill:#9f70ff;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4146"
+ width="27"
+ height="3.0000029"
+ x="3"
+ y="1040.8622" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
+ id="path4151" />
+ <path
+ style="fill:#ffff91;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 22.5,1046.3622 7,3 7,-3 -7,-3 z"
+ id="path4223"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4221"
+ d="m 22.5,1043.3622 7,3 7,-3 -7,-3 z"
+ style="fill:#ff91ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 29.5,1045.3622 -7,-3 0,-2 7,3 z"
+ id="path4143"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4145"
+ d="m 29.5,1045.3622 7,-3 0,-2 -7,3 z"
+ style="fill:#00d8d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:#91ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z"
+ id="path4149"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="fill:#d800d8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 29.5,1048.3622 7,-3 0,-2 -7,3 z"
+ id="path4208"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4215"
+ d="m 29.5,1048.3622 -7,-3 0,-2 7,3 z"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4217"
+ d="m 29.5,1051.3622 7,-3 0,-2 -7,3 z"
+ style="fill:#d8d800;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 29.5,1051.3622 -7,-3 0,-2 7,3 z"
+ id="path4219"
+ inkscape:connector-curvature="0" />
+ <g
+ inkscape:label="Layer 1"
+ id="layer1-5"
+ transform="translate(18,1)">
+ <path
+ id="path4151-1"
+ d="m 29.5,1037.3622 -7,3 0,8 7,3 7,-3 0,-8 -7,-3 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4149-2"
+ d="m 22.5,1040.3622 7,3 7,-3 -7,-3 z"
+ style="fill:#00ffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ inkscape:connector-curvature="0"
+ id="path4143-0"
+ d="m 29.5,1051.3622 -7,-3 0,-8 7,3 z"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 29.5,1051.3622 7,-3 0,-8 -7,3 z"
+ id="path4145-0"
+ inkscape:connector-curvature="0" />
+ </g>
+ <path
+ style="opacity:1;fill:url(#radialGradient4161);fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 64,1037.3622 a 7,7.0000001 0 0 0 -7,7 7,7.0000001 0 0 0 7,7 7,7.0000001 0 0 0 7,-7 7,7.0000001 0 0 0 -7,-7 z m -2,2 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 z"
+ id="path4159"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_signal.svg b/tools/editor/icons/source/icon_signal.svg
new file mode 100644
index 0000000000..b4d3ff5ac8
--- /dev/null
+++ b/tools/editor/icons/source/icon_signal.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_signal.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="21.70867"
+ inkscape:cx="11.546427"
+ inkscape:cy="8.2846975"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="6"
+ height="2.0000174"
+ x="5"
+ y="1043.3622" />
+ <path
+ transform="matrix(0,1.2810265,-0.92450034,0,-948.29952,1037.9571)"
+ inkscape:transform-center-y="-9.6789057e-05"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="1.8027756"
+ sodipodi:r1="3.6055512"
+ sodipodi:cy="-1038.3622"
+ sodipodi:cx="5"
+ sodipodi:sides="3"
+ id="path4435"
+ style="fill:#ff8484;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ sodipodi:type="star"
+ inkscape:transform-center-x="1.1667546" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4176"
+ width="2"
+ height="10"
+ x="1"
+ y="1039.3622" />
+ <rect
+ y="1047.3622"
+ x="3"
+ height="2.0000174"
+ width="4"
+ id="rect4178"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4180"
+ width="4"
+ height="2.0000174"
+ x="3"
+ y="1039.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_skeleton.svg b/tools/editor/icons/source/icon_skeleton.svg
new file mode 100644
index 0000000000..2850b0331d
--- /dev/null
+++ b/tools/editor/icons/source/icon_skeleton.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_skeleton.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="8.1423285"
+ inkscape:cy="8.6304475"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 2 A 4 4 0 0 0 2 6 A 4 4 0 0 0 5 9.8691406 L 5 9 L 6 9 L 6 10 L 7 10 L 7 9 L 8 9 L 9 9 L 9 10 L 10 10 L 10 9 L 11 9 L 11 9.8671875 A 4 4 0 0 0 14 6 A 4 4 0 0 0 10 2 L 6 2 z M 5 5 A 1.0000174 1.0000174 0 0 1 6 6 A 1.0000174 1.0000174 0 0 1 5 7 A 1.0000174 1.0000174 0 0 1 4 6 A 1.0000174 1.0000174 0 0 1 5 5 z M 11 5 A 1.0000174 1.0000174 0 0 1 12 6 A 1.0000174 1.0000174 0 0 1 11 7 A 1.0000174 1.0000174 0 0 1 10 6 A 1.0000174 1.0000174 0 0 1 11 5 z M 7 7 L 9 7 L 9 8 L 7 8 L 7 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4204" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 4 9 L 4 13 L 5 13 L 5 9 L 4 9 z M 11 9 L 11 13 L 12 13 L 12 9 L 11 9 z M 6 12 L 6 13 L 6 15 L 10 15 L 10 13 L 10 12 L 9 12 L 9 13 L 7 13 L 7 12 L 6 12 z "
+ transform="translate(0,1036.3622)"
+ id="rect4222" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4238"
+ sodipodi:type="arc"
+ sodipodi:cx="6"
+ sodipodi:cy="1049.3622"
+ sodipodi:rx="2"
+ sodipodi:ry="2"
+ sodipodi:start="0"
+ sodipodi:end="3.1415927"
+ d="m 8,1049.3622 a 2,2 0 0 1 -1,1.732 2,2 0 0 1 -2.0000001,0 A 2,2 0 0 1 4,1049.3622 l 2,0 z" />
+ <path
+ d="m 12,1049.3622 a 2,2 0 0 1 -1,1.732 2,2 0 0 1 -2.0000001,0 A 2,2 0 0 1 8,1049.3622 l 2,0 z"
+ sodipodi:end="3.1415927"
+ sodipodi:start="0"
+ sodipodi:ry="2"
+ sodipodi:rx="2"
+ sodipodi:cy="1049.3622"
+ sodipodi:cx="10"
+ sodipodi:type="arc"
+ id="path4248"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_slider_joint.svg b/tools/editor/icons/source/icon_slider_joint.svg
new file mode 100644
index 0000000000..021a295186
--- /dev/null
+++ b/tools/editor/icons/source/icon_slider_joint.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_slider_joint.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.8333359"
+ inkscape:cy="8.8668138"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 15,1037.3622 -5,0 0,6 -5,0 0,2 5,0 0,6 5,0 0,-14 z m -7,0 -5,0 -2,0 0,4 0,10 2,0 5,0 0,-4 -5,0 0,-6 5,0 0,-4 z"
+ id="rect4161"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_slot.svg b/tools/editor/icons/source/icon_slot.svg
new file mode 100644
index 0000000000..d613f1e1a4
--- /dev/null
+++ b/tools/editor/icons/source/icon_slot.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_slot.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="21.70867"
+ inkscape:cx="9.141828"
+ inkscape:cy="9.2467418"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4352"
+ width="6"
+ height="2.0000174"
+ x="1"
+ y="1043.3622" />
+ <path
+ transform="matrix(0,1.2810265,-0.92450034,0,-952.29952,1037.9571)"
+ inkscape:transform-center-y="-9.6789057e-05"
+ d="m 8.122499,-1036.5594 -3.122499,0 -3.122499,0 1.5612495,-2.7042 L 5,-1041.9677 l 1.5612495,2.7041 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="1.5707963"
+ sodipodi:arg1="0.52359878"
+ sodipodi:r2="1.8027756"
+ sodipodi:r1="3.6055512"
+ sodipodi:cy="-1038.3622"
+ sodipodi:cx="5"
+ sodipodi:sides="3"
+ id="path4435"
+ style="fill:#84ffb1;fill-opacity:1;stroke:none;stroke-linecap:round;stroke-opacity:1"
+ sodipodi:type="star"
+ inkscape:transform-center-x="1.1667546" />
+ <path
+ style="opacity:1;fill:#84ffb1;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 15,1039.3622 0,10 -2,0 -4,0 0,-2 4,0 0,-6 -4,0 0,-2 4,0 2,0 z"
+ id="rect4176"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_snap.svg b/tools/editor/icons/source/icon_snap.svg
new file mode 100644
index 0000000000..04059eb6a2
--- /dev/null
+++ b/tools/editor/icons/source/icon_snap.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_dependency_changed_hl.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_snap.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.700696"
+ inkscape:cx="6.9452673"
+ inkscape:cy="8.3355658"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 L 4 8 A 4.0000172 4.0000172 0 0 1 8 4 A 4.0000172 4.0000172 0 0 1 12 8 L 15 8 A 7 7 0 0 0 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="path4137" />
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="3"
+ height="3.0000174"
+ x="1"
+ y="1048.3622" />
+ <rect
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4158"
+ width="3"
+ height="4"
+ x="1"
+ y="1044.3622" />
+ <rect
+ y="1044.3622"
+ x="12"
+ height="4"
+ width="3"
+ id="rect4160"
+ style="opacity:1;fill:#ff8484;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1048.3622"
+ x="12"
+ height="3.0000174"
+ width="3"
+ id="rect4162"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sound_room_params.svg b/tools/editor/icons/source/icon_sound_room_params.svg
new file mode 100644
index 0000000000..a71c126ddc
--- /dev/null
+++ b/tools/editor/icons/source/icon_sound_room_params.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_sound_room_params.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="6.3922684"
+ inkscape:cy="10.780991"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 8,1037.3622 -4,5 -3,0 0,4 3,0 4,5 0,-14 z"
+ id="path4158" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 13,1039.3622 0,10 1,0 0,-10 -1,0 z"
+ id="path4156" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 10,1039.3622 0,10 1,0 0,-10 -1,0 z"
+ id="rect4154"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4160"
+ width="3"
+ height="1"
+ x="9"
+ y="1041.3622" />
+ <rect
+ y="1046.3622"
+ x="12"
+ height="1"
+ width="3"
+ id="rect4162"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spatial.svg b/tools/editor/icons/source/icon_spatial.svg
new file mode 100644
index 0000000000..0d03754016
--- /dev/null
+++ b/tools/editor/icons/source/icon_spatial.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spatial.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="5.5236428"
+ inkscape:cy="6.3139768"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 2 A 6 6 0 0 0 2 8 A 6 6 0 0 0 8 14 A 6 6 0 0 0 14 8 A 6 6 0 0 0 8 2 z M 8 4 A 4 4 0 0 1 12 8 A 4 4 0 0 1 8 12 A 4 4 0 0 1 4 8 A 4 4 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spatial_sample_player.svg b/tools/editor/icons/source/icon_spatial_sample_player.svg
new file mode 100644
index 0000000000..9b5f5d9af6
--- /dev/null
+++ b/tools/editor/icons/source/icon_spatial_sample_player.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spatial_sample_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="10.757516"
+ inkscape:cy="7.2259775"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 L 4 6 L 1 6 L 1 10 L 4 10 L 8 15 L 8 1 z M 13 3 L 13 13 L 14 13 L 14 3 L 13 3 z M 10 6 L 10 11 L 11 11 L 11 6 L 10 6 z "
+ transform="translate(0,1036.3622)"
+ id="rect4154" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spatial_stream_player.svg b/tools/editor/icons/source/icon_spatial_stream_player.svg
new file mode 100644
index 0000000000..bd081a3dc2
--- /dev/null
+++ b/tools/editor/icons/source/icon_spatial_stream_player.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spatial_stream_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="14.523046"
+ inkscape:cy="8.8504614"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 5,2 C 4.4477153,2 4,2.4477153 4,3 l 0,1 0,7 -2,0 c -0.5522847,0 -1,0.447715 -1,1 l 0,2 c 0,0.552285 0.4477153,1 1,1 l 2,0 1,0 c 0.5522847,0 1,-0.447715 1,-1 l 0,-3 0,-7 6,0 0,5 -2,0 C 9.4477153,9 9,9.4477153 9,10 l 0,2 c 0,0.552285 0.4477153,1 1,1 l 3,0 c 0.552285,0 1,-0.447715 1,-1 L 14,9 14,3 C 14,2.4477153 13.552285,2 13,2 L 6,2 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccsssscssccccsssssscsscs" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sphere_shape.svg b/tools/editor/icons/source/icon_sphere_shape.svg
new file mode 100644
index 0000000000..b1bca49f97
--- /dev/null
+++ b/tools/editor/icons/source/icon_sphere_shape.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="icon_sphere_shape.svg"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_box_shape.png"
+ inkscape:version="0.91 r13725"
+ version="1.1"
+ id="svg2"
+ viewBox="0 0 16 16"
+ height="16"
+ width="16">
+ <sodipodi:namedview
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-paths="false"
+ inkscape:window-maximized="1"
+ inkscape:window-y="27"
+ inkscape:window-x="0"
+ inkscape:window-height="1016"
+ inkscape:window-width="1920"
+ inkscape:snap-center="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:bbox-nodes="true"
+ inkscape:bbox-paths="true"
+ inkscape:snap-bbox="true"
+ units="px"
+ showgrid="true"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="11.119425"
+ inkscape:cx="5.7321635"
+ inkscape:zoom="22.627416"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <inkscape:grid
+ id="grid3336"
+ type="xygrid"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(0,-1036.3622)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <circle
+ style="opacity:1;fill:#68b6ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4157"
+ cx="8"
+ cy="1044.3622"
+ r="7" />
+ <circle
+ r="2"
+ cy="1041.3622"
+ cx="6"
+ id="circle4159"
+ style="opacity:1;fill:#a2d2ff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spin_box.svg b/tools/editor/icons/source/icon_spin_box.svg
new file mode 100644
index 0000000000..e0086ed12e
--- /dev/null
+++ b/tools/editor/icons/source/icon_spin_box.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spin_box.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.8344268"
+ inkscape:cy="10.33806"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 7,0 0,-2 -7,0 0,-6 7,0 0,-2 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssccccccs" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4157"
+ width="2"
+ height="6"
+ x="8"
+ y="1041.3622" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 11,1043.3622 4,0 -2,-3 z"
+ id="path4159"
+ inkscape:connector-curvature="0" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4164"
+ d="m 11,1045.3622 4,0 -2,3 z"
+ style="fill:#a5efac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_spot_light.svg b/tools/editor/icons/source/icon_spot_light.svg
new file mode 100644
index 0000000000..b9130eff37
--- /dev/null
+++ b/tools/editor/icons/source/icon_spot_light.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_spot_light.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="5.5818635"
+ inkscape:cy="8.6161108"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 14,1046.3622 -12,0 c 0,-2.7614 2.6862915,-5 6,-5 3.313708,0 6,2.2386 6,5 z"
+ id="path4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccsc" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 6 1 A 1 1 0 0 0 5 2 L 5 7 L 11 7 L 11 2 A 1 1 0 0 0 10 1 L 6 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4158" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4160"
+ cx="8"
+ cy="1046.3622"
+ r="2" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4162"
+ width="2"
+ height="2"
+ x="7"
+ y="1049.3622"
+ inkscape:transform-center-y="3.9999826" />
+ <rect
+ inkscape:transform-center-y="2.0000217"
+ y="533.10931"
+ x="-903.17627"
+ height="2"
+ width="2"
+ id="rect4164"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="matrix(0.5,-0.8660254,0.8660254,0.5,0,0)"
+ inkscape:transform-center-x="-3.4640975" />
+ <rect
+ inkscape:transform-center-x="3.4641473"
+ transform="matrix(0.5,0.8660254,-0.8660254,0.5,0,0)"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4166"
+ width="2"
+ height="2"
+ x="909.17621"
+ y="519.25293"
+ inkscape:transform-center-y="1.9999799" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sprite.svg b/tools/editor/icons/source/icon_sprite.svg
new file mode 100644
index 0000000000..488bbf934d
--- /dev/null
+++ b/tools/editor/icons/source/icon_sprite.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_sprite.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.7581185"
+ inkscape:cy="10.410499"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5b7f4;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 4 6 A 1 1 0 0 1 5 7 A 1 1 0 0 1 4 8 A 1 1 0 0 1 3 7 A 1 1 0 0 1 4 6 z M 12 6 A 1 1 0 0 1 13 7 A 1 1 0 0 1 12 8 A 1 1 0 0 1 11 7 A 1 1 0 0 1 12 6 z M 5 9 L 11 9 A 3 3 0 0 1 9.5 11.597656 A 3 3 0 0 1 6.5 11.597656 A 3 3 0 0 1 5 9 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_sprite_3d.svg b/tools/editor/icons/source/icon_sprite_3d.svg
new file mode 100644
index 0000000000..4ea81f7ea2
--- /dev/null
+++ b/tools/editor/icons/source/icon_sprite_3d.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite_3d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_sprite_3d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.7581185"
+ inkscape:cy="10.410499"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 4 6 A 1 1 0 0 1 5 7 A 1 1 0 0 1 4 8 A 1 1 0 0 1 3 7 A 1 1 0 0 1 4 6 z M 12 6 A 1 1 0 0 1 13 7 A 1 1 0 0 1 12 8 A 1 1 0 0 1 11 7 A 1 1 0 0 1 12 6 z M 5 9 L 11 9 A 3 3 0 0 1 9.5 11.597656 A 3 3 0 0 1 6.5 11.597656 A 3 3 0 0 1 5 9 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_static_body.svg b/tools/editor/icons/source/icon_static_body.svg
new file mode 100644
index 0000000000..af1ebc8900
--- /dev/null
+++ b/tools/editor/icons/source/icon_static_body.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_static_body.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.2543819"
+ inkscape:cy="7.4903504"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#a5b7f5;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25 3 C 22 3 21 6 21 6 C 20.879708 6.3608765 20.803605 6.6663233 20.707031 7 L 21 7 A 1 1 0 0 0 22 8 A 1 1 0 0 0 23 7 L 24 7 A 1 1 0 0 0 25 8 A 1 1 0 0 0 26 7 L 27 7 A 1 1 0 0 0 28 8 A 1 1 0 0 0 29 7 L 29.292969 7 C 29.196395 6.6663233 29.120292 6.3608765 29 6 C 29 6 28 3 25 3 z M 20.369141 8.1542969 C 19.864457 10.037394 19.478832 11.521168 18 13 L 32 13 C 30.521168 11.521168 30.135543 10.037394 29.630859 8.1542969 A 2 2 0 0 1 29 8.7324219 A 2 2 0 0 1 27 8.7324219 A 2 2 0 0 1 26.5 8.3203125 A 2 2 0 0 1 26 8.7324219 A 2 2 0 0 1 24 8.7324219 A 2 2 0 0 1 23.5 8.3203125 A 2 2 0 0 1 23 8.7324219 A 2 2 0 0 1 21 8.7324219 A 2 2 0 0 1 20.369141 8.1542969 z "
+ transform="translate(0,1036.3622)"
+ id="path4161" />
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4195"
+ width="2"
+ height="2"
+ x="3"
+ y="1039.3622" />
+ <rect
+ y="1047.3622"
+ x="3"
+ height="2"
+ width="2"
+ id="rect4197"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4199"
+ width="2"
+ height="2"
+ x="11"
+ y="1047.3622" />
+ <rect
+ y="1039.3622"
+ x="11"
+ height="2"
+ width="2"
+ id="rect4201"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <g
+ id="layer1-1"
+ inkscape:label="Layer 1"
+ transform="translate(-23.644738,-1.9878833)">
+ <path
+ id="path4139"
+ transform="translate(0,1036.3622)"
+ d="M 8,1 A 7,7 0 0 0 1,8 7,7 0 0 0 8,15 7,7 0 0 0 15,8 7,7 0 0 0 8,1 Z M 4,6 A 1,1 0 0 1 5,7 1,1 0 0 1 4,8 1,1 0 0 1 3,7 1,1 0 0 1 4,6 Z m 8,0 a 1,1 0 0 1 1,1 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 z m -7,3 6,0 a 3,3 0 0 1 -1.5,2.597656 3,3 0 0 1 -3,0 A 3,3 0 0 1 5,9 Z"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_static_body_2d.svg b/tools/editor/icons/source/icon_static_body_2d.svg
new file mode 100644
index 0000000000..d47e924e37
--- /dev/null
+++ b/tools/editor/icons/source/icon_static_body_2d.svg
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_static_body_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.2543819"
+ inkscape:cy="7.4903504"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4195"
+ width="2"
+ height="2"
+ x="3"
+ y="1039.3622" />
+ <rect
+ y="1047.3622"
+ x="3"
+ height="2"
+ width="2"
+ id="rect4197"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4199"
+ width="2"
+ height="2"
+ x="11"
+ y="1047.3622" />
+ <rect
+ y="1039.3622"
+ x="11"
+ height="2"
+ width="2"
+ id="rect4201"
+ style="opacity:1;fill:#a5b7f6;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_stream_player.svg b/tools/editor/icons/source/icon_stream_player.svg
new file mode 100644
index 0000000000..618646bbed
--- /dev/null
+++ b/tools/editor/icons/source/icon_stream_player.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_stream_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="3.1209493"
+ inkscape:cy="9.3365973"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 5,2 C 4.4477153,2 4,2.4477153 4,3 l 0,1 0,7 -2,0 c -0.5522847,0 -1,0.447715 -1,1 l 0,2 c 0,0.552285 0.4477153,1 1,1 l 2,0 1,0 c 0.5522847,0 1,-0.447715 1,-1 l 0,-3 0,-7 6,0 0,5 -2,0 C 9.4477153,9 9,9.4477153 9,10 l 0,2 c 0,0.552285 0.4477153,1 1,1 l 3,0 c 0.552285,0 1,-0.447715 1,-1 L 14,9 14,3 C 14,2.4477153 13.552285,2 13,2 L 6,2 Z"
+ transform="translate(0,1036.3622)"
+ id="rect4155"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssccsssscssccccsssssscsscs" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_string.svg b/tools/editor/icons/source/icon_string.svg
new file mode 100644
index 0000000000..f32e82256f
--- /dev/null
+++ b/tools/editor/icons/source/icon_string.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_add_track.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_string.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32.000001"
+ inkscape:cx="4.1642221"
+ inkscape:cy="8.5720882"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 5 1 L 5 3 L 7 3 L 7 13 L 5 13 L 5 15 L 7 15 A 1 1 0 0 0 8 14 A 1 1 0 0 0 9 15 L 11 15 L 11 13 L 9 13 L 9 3 L 11 3 L 11 1 L 9 1 A 1 1 0 0 0 8 2 A 1 1 0 0 0 7 1 L 5 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tab_container.svg b/tools/editor/icons/source/icon_tab_container.svg
new file mode 100644
index 0000000000..b53747bf1c
--- /dev/null
+++ b/tools/editor/icons/source/icon_tab_container.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tab_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.8125618"
+ inkscape:cy="8.9338072"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4158"
+ width="10"
+ height="2"
+ x="3"
+ y="1041.3622" />
+ <rect
+ y="1039.3622"
+ x="8"
+ height="2"
+ width="5"
+ id="rect4170"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tabs.svg b/tools/editor/icons/source/icon_tabs.svg
new file mode 100644
index 0000000000..1b389fc30c
--- /dev/null
+++ b/tools/editor/icons/source/icon_tabs.svg
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tabs.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="3.2506704"
+ inkscape:cy="11.363584"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="1"
+ height="4.9999828"
+ x="1"
+ y="1042.3622" />
+ <rect
+ y="-8"
+ x="1041.3622"
+ height="6"
+ width="1"
+ id="rect4159"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ y="1042.3622"
+ x="8"
+ height="4.9999828"
+ width="1"
+ id="rect4161"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4163"
+ sodipodi:type="arc"
+ sodipodi:cx="2"
+ sodipodi:cy="1042.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="1.5707963"
+ sodipodi:end="0"
+ d="m 2,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 3,1042.3622 l -1,0 z" />
+ <path
+ d="m -8,1043.3622 a 1,1 0 0 1 -0.9238795,-0.6173 1,1 0 0 1 0.2167727,-1.0898 1,1 0 0 1 1.0897902,-0.2168 A 1,1 0 0 1 -7,1042.3622 l -1,0 z"
+ sodipodi:end="0"
+ sodipodi:start="1.5707963"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="1042.3622"
+ sodipodi:cx="-8"
+ sodipodi:type="arc"
+ id="path4165"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(-1,1)" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4167"
+ width="1"
+ height="4.9999828"
+ x="14"
+ y="1042.3622" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4169"
+ width="1"
+ height="6"
+ x="1041.3622"
+ y="-14" />
+ <path
+ transform="scale(-1,1)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4171"
+ sodipodi:type="arc"
+ sodipodi:cx="-14"
+ sodipodi:cy="1042.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="1.5707963"
+ sodipodi:end="0"
+ d="m -14,1043.3622 a 1,1 0 0 1 -0.92388,-0.6173 1,1 0 0 1 0.216773,-1.0898 1,1 0 0 1 1.08979,-0.2168 1,1 0 0 1 0.617317,0.9239 l -1,0 z" />
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4173"
+ width="1"
+ height="13"
+ x="1046.3622"
+ y="-15" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_test_cube.svg b/tools/editor/icons/source/icon_test_cube.svg
new file mode 100644
index 0000000000..8b5db2dc5d
--- /dev/null
+++ b/tools/editor/icons/source/icon_test_cube.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_collision_shape.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_test_cube.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.2538994"
+ inkscape:cy="5.8068101"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-7"
+ inkscape:label="Layer 1"
+ transform="translate(0,1.1802001e-5)"
+ style="stroke:#fc9c9c;stroke-opacity:0.99607843">
+ <path
+ sodipodi:nodetypes="ccccccc"
+ inkscape:connector-curvature="0"
+ id="path4139"
+ d="m 8,1050.3622 -6,-3 0,-6 6,-3 6,3 0,6 z"
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.99607843" />
+ </g>
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2.4472656 4.1054688 L 1.5527344 5.8945312 L 7 8.6191406 L 7 14 L 9 14 L 9 8.6191406 L 14.447266 5.8945312 L 13.552734 4.1054688 L 8 6.8828125 L 2.4472656 4.1054688 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_text_edit.svg b/tools/editor/icons/source/icon_text_edit.svg
new file mode 100644
index 0000000000..1daf1ac75a
--- /dev/null
+++ b/tools/editor/icons/source/icon_text_edit.svg
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_text_edit.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="13.881612"
+ inkscape:cy="11.594783"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="1"
+ height="4"
+ x="4"
+ y="1040.3622" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3,1037.3622 c -1.1045695,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.8954 2,-2 l 0,-10 c 0,-1.1046 -0.895431,-2 -2,-2 z m 0,2 10,0 0,10 -10,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_texture.svg b/tools/editor/icons/source/icon_texture.svg
new file mode 100644
index 0000000000..39e88e592b
--- /dev/null
+++ b/tools/editor/icons/source/icon_texture.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_image_texture.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.9365814"
+ inkscape:cy="6.4466253"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 2 1 A 1 1 0 0 0 1 2 L 1 14 A 1 1 0 0 0 2 15 L 14 15 A 1 1 0 0 0 15 14 L 15 2 A 1 1 0 0 0 14 1 L 2 1 z M 3 3 L 13 3 L 13 11 L 3 11 L 3 3 z "
+ transform="translate(0,1036.3622)"
+ id="rect4156" />
+ <rect
+ y="1043.3622"
+ x="6"
+ height="1"
+ width="2"
+ id="rect4197"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4199"
+ width="2"
+ height="2.0000174"
+ x="6"
+ y="1044.3622" />
+ <rect
+ y="1045.3622"
+ x="4"
+ height="1"
+ width="2"
+ id="rect4201"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4203"
+ width="2"
+ height="2.0000174"
+ x="8"
+ y="1044.3622" />
+ <rect
+ y="1044.3622"
+ x="10"
+ height="2.0000174"
+ width="2"
+ id="rect4205"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4207"
+ width="3"
+ height="2.0000174"
+ x="8"
+ y="1042.3622" />
+ <rect
+ y="1041.3622"
+ x="9"
+ height="1"
+ width="1"
+ id="rect4217"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4219"
+ width="1"
+ height="1"
+ x="5"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_texture_button.svg b/tools/editor/icons/source/icon_texture_button.svg
new file mode 100644
index 0000000000..ef447af082
--- /dev/null
+++ b/tools/editor/icons/source/icon_texture_button.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_texture_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313709"
+ inkscape:cx="15.33841"
+ inkscape:cy="14.971735"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 3 L 1 11 L 15 11 L 15 3 L 14 3 L 2 3 L 1 3 z M 9 5 L 10 5 L 10 6 L 11 6 L 11 8 L 12 8 L 12 10 L 10 10 L 8 10 L 6 10 L 4 10 L 4 9 L 5 9 L 5 8 L 6 8 L 6 7 L 8 7 L 8 6 L 9 6 L 9 5 z "
+ transform="translate(0,1036.3622)"
+ id="rect4139" />
+ <rect
+ transform="scale(1,-1)"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4160"
+ width="14"
+ height="2.0000522"
+ x="1"
+ y="-1049.3622" />
+ <rect
+ y="-1049.3622"
+ x="1"
+ height="2.0000522"
+ width="14"
+ id="rect4142"
+ style="opacity:1;fill:#000000;fill-opacity:0.07843138;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ transform="scale(1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_texture_frame.svg b/tools/editor/icons/source/icon_texture_frame.svg
new file mode 100644
index 0000000000..afab41de41
--- /dev/null
+++ b/tools/editor/icons/source/icon_texture_frame.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_texture_frame.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="14.395168"
+ inkscape:cy="9.9171316"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="1"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1050.3622"
+ x="1"
+ height="0.9999826"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4158"
+ width="14"
+ height="0.9999826"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="14"
+ height="14"
+ width="1"
+ id="rect4160"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="rect4197"
+ d="m 9,1042.3622 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 2,0 2,0 2,0 2,0 0,-2 -1,0 0,-2 -1,0 0,-1 -1,0 z"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_texture_progress.svg b/tools/editor/icons/source/icon_texture_progress.svg
new file mode 100644
index 0000000000..493dd7fd63
--- /dev/null
+++ b/tools/editor/icons/source/icon_texture_progress.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_texture_progress.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.953439"
+ inkscape:cy="10.793984"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="false"
+ inkscape:snap-intersection-paths="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,3 C 1.8954305,3 1,3.8954305 1,5 l 0,6 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,5 C 15,3.8954305 14.104569,3 13,3 Z m 0,2 10,0 0,6 -10,0 z"
+ transform="translate(0,1036.3622)"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4222"
+ width="1"
+ height="2"
+ x="4"
+ y="1042.3622" />
+ <rect
+ y="1043.3622"
+ x="6"
+ height="3.0000174"
+ width="1"
+ id="rect4224"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4226"
+ width="1"
+ height="4.0000172"
+ x="8"
+ y="1042.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tile_map.svg b/tools/editor/icons/source/icon_tile_map.svg
new file mode 100644
index 0000000000..28f75a97e5
--- /dev/null
+++ b/tools/editor/icons/source/icon_tile_map.svg
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_tile_map.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="5.8997097"
+ inkscape:cy="7.6139286"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4160"
+ width="2"
+ height="2"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="4"
+ height="2"
+ width="2"
+ id="rect4162"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4164"
+ width="2"
+ height="2"
+ x="4"
+ y="1040.3622" />
+ <rect
+ y="1040.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4166"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1037.3622"
+ x="7"
+ height="2"
+ width="2"
+ id="rect4168"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4170"
+ width="2"
+ height="2"
+ x="10"
+ y="1037.3622" />
+ <rect
+ y="1040.3622"
+ x="10"
+ height="2"
+ width="2"
+ id="rect4172"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4174"
+ width="2"
+ height="2"
+ x="7"
+ y="1040.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4176"
+ width="2"
+ height="2"
+ x="1"
+ y="1043.3622" />
+ <rect
+ y="1043.3622"
+ x="4"
+ height="2"
+ width="2"
+ id="rect4178"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4180"
+ width="2"
+ height="2"
+ x="4"
+ y="1046.3622" />
+ <rect
+ y="1046.3622"
+ x="1"
+ height="2"
+ width="2"
+ id="rect4182"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1037.3622"
+ x="13"
+ height="2"
+ width="2"
+ id="rect4184"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4186"
+ width="2"
+ height="2"
+ x="13"
+ y="1040.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4188"
+ width="2"
+ height="2"
+ x="7"
+ y="1043.3622" />
+ <rect
+ y="1043.3622"
+ x="10"
+ height="2"
+ width="2"
+ id="rect4190"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4192"
+ width="2"
+ height="2"
+ x="10"
+ y="1046.3622" />
+ <rect
+ y="1046.3622"
+ x="7"
+ height="2"
+ width="2"
+ id="rect4194"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4196"
+ width="2"
+ height="2"
+ x="13"
+ y="1043.3622" />
+ <rect
+ y="1046.3622"
+ x="13"
+ height="2"
+ width="2"
+ id="rect4198"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1049.3622"
+ x="4"
+ height="2"
+ width="2"
+ id="rect4200"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4202"
+ width="2"
+ height="2"
+ x="1"
+ y="1049.3622" />
+ <rect
+ y="1049.3622"
+ x="10"
+ height="2"
+ width="2"
+ id="rect4204"
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4206"
+ width="2"
+ height="2"
+ x="7"
+ y="1049.3622" />
+ <rect
+ style="opacity:1;fill:#a5b7f7;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4208"
+ width="2"
+ height="2"
+ x="13"
+ y="1049.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_timer.svg b/tools/editor/icons/source/icon_timer.svg
new file mode 100644
index 0000000000..0615ab865a
--- /dev/null
+++ b/tools/editor/icons/source/icon_timer.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_timer.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.6045193"
+ inkscape:cy="8.1915618"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 A 7.0000172 7.0000172 0 0 0 1 8 A 7.0000172 7.0000172 0 0 0 8 15 A 7.0000172 7.0000172 0 0 0 15 8 A 7.0000172 7.0000172 0 0 0 8 1 z M 8 3 A 5.0000172 5.0000172 0 0 1 13 8 A 5.0000172 5.0000172 0 0 1 8 13 A 5.0000172 5.0000172 0 0 1 3 8 A 5.0000172 5.0000172 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4156" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4161"
+ width="2"
+ height="3.9999826"
+ x="7"
+ y="1041.3622" />
+ <rect
+ y="1043.3622"
+ x="7"
+ height="1.9999826"
+ width="4"
+ id="rect4163"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tool_move.svg b/tools/editor/icons/source/icon_tool_move.svg
new file mode 100644
index 0000000000..243b680dfe
--- /dev/null
+++ b/tools/editor/icons/source/icon_tool_move.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_move.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tool_move.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.7373622"
+ inkscape:cy="9.2915869"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 1 L 6.5 2.5 L 5 4 L 7 4 L 7 7 L 4 7 L 4 5 L 2.5 6.5 L 1 8 L 2.5 9.5 L 4 11 L 4 9 L 7 9 L 7 12 L 5 12 L 6.5 13.5 L 8 15 L 9.5 13.5 L 11 12 L 9 12 L 9 9 L 12 9 L 12 11 L 13.5 9.5 L 15 8 L 13.5 6.5 L 12 5 L 12 7 L 9 7 L 9 4 L 11 4 L 9.5 2.5 L 8 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tool_pan.svg b/tools/editor/icons/source/icon_tool_pan.svg
new file mode 100644
index 0000000000..a93fc3d29d
--- /dev/null
+++ b/tools/editor/icons/source/icon_tool_pan.svg
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_pan.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tool_pan.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="13.577719"
+ inkscape:cy="10.651205"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="false"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-others="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.63636994,0,0,0.63636994,11.81847,382.85245)"
+ inkscape:label="Layer 1"
+ id="g4515"
+ style="stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 6 8 L 6 15 L 12 15 L 12 13 L 14 13 L 14 8 L 6 8 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ <rect
+ y="1039.3622"
+ x="6"
+ height="7.9999657"
+ width="2"
+ id="rect4181"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4183"
+ width="2"
+ height="7.9999657"
+ x="9"
+ y="1038.3622" />
+ <rect
+ y="1040.3622"
+ x="12"
+ height="7.9999657"
+ width="2"
+ id="rect4185"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4187"
+ cx="7"
+ cy="1039.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1038.3622"
+ cx="10"
+ id="circle4189"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4191"
+ cx="13"
+ cy="1040.3622"
+ r="1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4193"
+ cx="12"
+ cy="1049.3622"
+ r="2" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3.5251027,1045.5875 c -0.520152,-0.3803 -1.1942798,-0.4556 -1.6498687,0 -0.4556596,0.4556 -0.4556352,1.1943 -2.36e-5,1.6499 L 6,1051.3622 l 1.6498923,-2.7593 z"
+ id="rect4208"
+ inkscape:connector-curvature="0"
+ inkscape:transform-center-x="1.4083061"
+ inkscape:transform-center-y="-3.0582"
+ sodipodi:nodetypes="sssccs" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tool_rotate.svg b/tools/editor/icons/source/icon_tool_rotate.svg
new file mode 100644
index 0000000000..817aee3995
--- /dev/null
+++ b/tools/editor/icons/source/icon_tool_rotate.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tool_rotate.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.9785059"
+ inkscape:cy="10.426966"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 9 2 A 6.0000172 6.0000172 0 0 0 3 8 L 5 8 A 4 4 0 0 1 9 4 A 4 4 0 0 1 13 8 A 4 4 0 0 1 9 12 L 9 14 A 6.0000172 6.0000172 0 0 0 15 8 A 6.0000172 6.0000172 0 0 0 9 2 z "
+ transform="translate(0,1036.3622)"
+ id="path4138" />
+ <path
+ sodipodi:type="star"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4142"
+ sodipodi:sides="3"
+ sodipodi:cx="3"
+ sodipodi:cy="1046.3622"
+ sodipodi:r1="2.236068"
+ sodipodi:r2="1.118034"
+ sodipodi:arg1="1.0471976"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m 4.1180339,1048.2987 -1.6770509,-0.9683 -1.67705101,-0.9682 1.67705101,-0.9683 1.6770511,-0.9682 -1e-7,1.9365 z"
+ inkscape:transform-center-x="0.00013164169"
+ transform="matrix(0,-1.1925797,1.5491989,0,-1617.0232,1049.2732)"
+ inkscape:transform-center-y="0.66664316" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tool_scale.svg b/tools/editor/icons/source/icon_tool_scale.svg
new file mode 100644
index 0000000000..515bef3bb7
--- /dev/null
+++ b/tools/editor/icons/source/icon_tool_scale.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_scale.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tool_scale.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.7380314"
+ inkscape:cy="11.043755"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 14.019532,1038.3427 -2.828125,0.707 -2.8281258,0.707 1.4140624,1.4141 -4.9492186,4.9492 -1.4140625,-1.4141 -0.7070313,2.8282 L 2,1050.3622 l 2.828125,-0.707 2.828125,-0.7071 -1.4140625,-1.414 4.9492195,-4.9492 1.414062,1.414 0.707031,-2.8281 0.707032,-2.8281 z"
+ id="rect4135"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tool_select.svg b/tools/editor/icons/source/icon_tool_select.svg
new file mode 100644
index 0000000000..2da6a3e6ba
--- /dev/null
+++ b/tools/editor/icons/source/icon_tool_select.svg
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_select.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tool_select.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.6219069"
+ inkscape:cy="11.371689"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-6"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-6"
+ inkscape:label="Layer 1"
+ transform="translate(-26.000893,-9.8683103)">
+ <g
+ style="stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="g4515"
+ inkscape:label="Layer 1"
+ transform="matrix(0.63636994,0,0,0.63636994,11.81847,382.85245)" />
+ <path
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0"
+ id="rect4163"
+ d="m 40.000893,1053.167 -12,-4.9365 4.936497,12 1.420656,-4.2301 2.8254,2.8252 1.412701,-1.4127 -2.8254,-2.8252 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tools.svg b/tools/editor/icons/source/icon_tools.svg
new file mode 100644
index 0000000000..f2b8cd9343
--- /dev/null
+++ b/tools/editor/icons/source/icon_tools.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_g_d_script.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_g_d_script.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.7306265"
+ inkscape:cy="9.0071681"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 7 1 L 6.4355469 3.2578125 A 5.0000172 5.0000172 0 0 0 5.7460938 3.5371094 L 3.7578125 2.34375 L 2.34375 3.7578125 L 3.5390625 5.7519531 A 5.0000172 5.0000172 0 0 0 3.2539062 6.4375 L 1 7 L 1 9 L 3.2578125 9.5644531 A 5.0000172 5.0000172 0 0 0 3.5371094 10.251953 L 2.34375 12.242188 L 3.7578125 13.65625 L 5.7519531 12.460938 A 5.0000172 5.0000172 0 0 0 6.4375 12.746094 L 7 15 L 9 15 L 9.5644531 12.742188 A 5.0000172 5.0000172 0 0 0 10.251953 12.462891 L 12.242188 13.65625 L 13.65625 12.242188 L 12.460938 10.248047 A 5.0000172 5.0000172 0 0 0 12.746094 9.5625 L 15 9 L 15 7 L 12.742188 6.4355469 A 5.0000172 5.0000172 0 0 0 12.462891 5.7480469 L 13.65625 3.7578125 L 12.242188 2.34375 L 10.248047 3.5390625 A 5.0000172 5.0000172 0 0 0 9.5625 3.2539062 L 9 1 L 7 1 z M 8 6 A 2.0000174 2.0000174 0 0 1 10 8 A 2.0000174 2.0000174 0 0 1 8 10 A 2.0000174 2.0000174 0 0 1 6 8 A 2.0000174 2.0000174 0 0 1 8 6 z "
+ transform="translate(0,1036.3622)"
+ id="path4176" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_touch_screen_button.svg b/tools/editor/icons/source/icon_touch_screen_button.svg
new file mode 100644
index 0000000000..70abc964aa
--- /dev/null
+++ b/tools/editor/icons/source/icon_touch_screen_button.svg
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_touch_screen_button.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="8.4904718"
+ inkscape:cy="7.5523354"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.63636994,0,0,0.63636994,10.81847,386.85247)"
+ inkscape:label="Layer 1"
+ id="g4515"
+ style="fill:#a5b7f8;fill-opacity:0.98823529;stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6.0000004,1040.3624 0,7 0,0.033 -2.4746094,-1.8086 c -0.520152,-0.3803 -1.1948017,-0.4556 -1.6503906,0 -0.4556596,0.4556 -0.4556116,1.1948 0,1.6504 l 4.125,4.125 5.9999996,0 c 1.104569,0 2,-0.8954 2,-2 l 0,-5 -5.9999996,0 0,-4 -2,0 z"
+ id="rect4179"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccscssccccc" />
+ <circle
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4187"
+ cx="7"
+ cy="1040.3622"
+ r="1" />
+ <rect
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4226"
+ width="2"
+ height="1"
+ x="3"
+ y="1040.3622" />
+ <rect
+ y="1037.3622"
+ x="3"
+ height="1"
+ width="8"
+ id="rect4228"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ y="1040.3622"
+ x="9"
+ height="1"
+ width="2"
+ id="rect4230"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4232"
+ width="1"
+ height="2.0000174"
+ x="2"
+ y="1038.3622" />
+ <rect
+ y="1038.3622"
+ x="11"
+ height="2.0000174"
+ width="1"
+ id="rect4234"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4236"
+ sodipodi:type="arc"
+ sodipodi:cx="3"
+ sodipodi:cy="1038.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="3.1415927"
+ sodipodi:end="0"
+ d="m 2,1038.3622 a 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 l -1,0 z" />
+ <path
+ d="m -12,1038.3622 a 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 l -1,0 z"
+ sodipodi:end="0"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="1038.3622"
+ sodipodi:cx="-11"
+ sodipodi:type="arc"
+ id="path4238"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,1)" />
+ <path
+ transform="scale(-1,-1)"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4240"
+ sodipodi:type="arc"
+ sodipodi:cx="-11"
+ sodipodi:cy="-1040.3622"
+ sodipodi:rx="1"
+ sodipodi:ry="1"
+ sodipodi:start="3.1415927"
+ sodipodi:end="0"
+ d="m -12,-1040.3622 a 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 l -1,0 z" />
+ <path
+ d="m -4,-1040.3622 a 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 l -1,0 z"
+ sodipodi:end="0"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="1"
+ sodipodi:rx="1"
+ sodipodi:cy="-1040.3622"
+ sodipodi:cx="-3"
+ sodipodi:type="arc"
+ id="path4242"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(-1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_track_add_key.svg b/tools/editor/icons/source/icon_track_add_key.svg
new file mode 100644
index 0000000000..96761526a8
--- /dev/null
+++ b/tools/editor/icons/source/icon_track_add_key.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_track_add_key.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_track_add_key.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="6.0361164"
+ inkscape:cy="4.9218153"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:#a9e100;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z "
+ transform="translate(0,1044.3622)"
+ id="rect4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_track_add_key_hl.svg b/tools/editor/icons/source/icon_track_add_key_hl.svg
new file mode 100644
index 0000000000..79e566dde6
--- /dev/null
+++ b/tools/editor/icons/source/icon_track_add_key_hl.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_track_add_key_hl.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_track_add_key_hl.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="5.3806528"
+ inkscape:cy="6.0126016"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:#e3fe03;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 3 0 L 3 3 L 0 3 L 0 5 L 3 5 L 3 8 L 5 8 L 5 5 L 8 5 L 8 3 L 5 3 L 5 0 L 3 0 z "
+ transform="translate(0,1044.3622)"
+ id="rect4137" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_track_continuous.svg b/tools/editor/icons/source/icon_track_continuous.svg
new file mode 100644
index 0000000000..78b9dd3f4b
--- /dev/null
+++ b/tools/editor/icons/source/icon_track_continuous.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_track_continuous.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.8686169"
+ inkscape:cy="5.8136992"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 2,1050.3622 c 6,0 6,-4 12,-4"
+ id="path4156"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_track_discrete.svg b/tools/editor/icons/source/icon_track_discrete.svg
new file mode 100644
index 0000000000..381782cf6f
--- /dev/null
+++ b/tools/editor/icons/source/icon_track_discrete.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="8"
+ viewBox="0 0 16 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_track_discrete.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.8686169"
+ inkscape:cy="5.8136992"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4230"
+ cx="2"
+ cy="1050.3622"
+ r="1" />
+ <circle
+ r="1"
+ cy="1048.3622"
+ cx="8"
+ id="circle4232"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <circle
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4234"
+ cx="14"
+ cy="1046.3622"
+ r="1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_translation.svg b/tools/editor/icons/source/icon_translation.svg
new file mode 100644
index 0000000000..389b8a40de
--- /dev/null
+++ b/tools/editor/icons/source/icon_translation.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_translation.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.1812988"
+ inkscape:cy="6.7732008"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 2 1 L 2 15 L 12 15 A 1.9999826 1.9999826 0 0 0 14 13 L 14 3 A 1.9999826 1.9999826 0 0 0 12 1 L 12 6 L 12 8 L 10 6 L 8 8 L 8 6 L 8 1 L 2 1 z "
+ transform="translate(0,1036.3622)"
+ id="rect4159" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_transpose.svg b/tools/editor/icons/source/icon_transpose.svg
new file mode 100644
index 0000000000..ceccfecfa3
--- /dev/null
+++ b/tools/editor/icons/source/icon_transpose.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_scale.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_transpose.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="11.628028"
+ inkscape:cy="13.482329"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="2"
+ height="14"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1037.3622"
+ x="1"
+ height="2.0000174"
+ width="14"
+ id="rect4156"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1049.3622"
+ x="1"
+ height="1.9999652"
+ width="7"
+ id="rect4158"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1037.3622"
+ x="6"
+ height="14"
+ width="2"
+ id="rect4160"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="14"
+ height="2"
+ x="1"
+ y="1042.3622" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4164"
+ width="7.0000172"
+ height="1.9999828"
+ x="1037.3622"
+ y="-14.999983"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <path
+ style="fill:#e0e0e0;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="m 15,1051.3622 -5,0 5,-5 z"
+ id="path4168"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4170"
+ width="5"
+ height="3"
+ x="8"
+ y="1039.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tree.svg b/tools/editor/icons/source/icon_tree.svg
new file mode 100644
index 0000000000..b31fd38097
--- /dev/null
+++ b/tools/editor/icons/source/icon_tree.svg
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_tree.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="10.885344"
+ inkscape:cy="6.8775392"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4173"
+ width="1"
+ height="5.0000172"
+ x="4"
+ y="1040.3622" />
+ <rect
+ y="1041.3622"
+ x="4"
+ height="1.0000174"
+ width="8"
+ id="rect4176"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4178"
+ width="7"
+ height="1.0000174"
+ x="5"
+ y="1044.3622" />
+ <rect
+ y="1045.3622"
+ x="7"
+ height="3.0000174"
+ width="1"
+ id="rect4180"
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4191"
+ width="5"
+ height="1"
+ x="7"
+ y="1047.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_tween.svg b/tools/editor/icons/source/icon_tween.svg
new file mode 100644
index 0000000000..5cb5cad227
--- /dev/null
+++ b/tools/editor/icons/source/icon_tween.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tween.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_tween.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.0670176"
+ inkscape:cy="10.041334"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 9,1050.3622 -7,0 0,-7"
+ id="path4138"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ <path
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0"
+ id="path4140"
+ d="m 7,1038.3622 7,0 0,7"
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4142"
+ d="m 6.0000002,1041.3622 4.9999998,0 0,5 z"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4144"
+ d="m 2,1050.3622 7,-7"
+ style="fill:none;fill-rule:evenodd;stroke:#e0e0e0;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_unbone.svg b/tools/editor/icons/source/icon_unbone.svg
new file mode 100644
index 0000000000..7e4109f2ec
--- /dev/null
+++ b/tools/editor/icons/source/icon_unbone.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_bone.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_unbone.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="6.4412926"
+ inkscape:cy="9.085446"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 10.478516 1 A 2.4664114 2.4663006 0 0 0 8.6972656 1.7207031 A 2.4664114 2.4663006 0 0 0 8.3828125 4.8242188 L 7.3105469 5.8964844 L 10.101562 8.6875 L 11.177734 7.6132812 A 2.4664198 2.4663006 0 0 0 14.277344 7.3027344 A 2.4664198 2.4663006 0 0 0 14.277344 3.8144531 A 2.4664198 2.4663006 0 0 0 12.880859 3.1171875 A 2.4664114 2.4663006 0 0 0 12.185547 1.7207031 A 2.4664114 2.4663006 0 0 0 10.478516 1 z M 5.8964844 7.3105469 L 4.8242188 8.3847656 A 2.4664114 2.4663006 0 0 0 1.7226562 8.6972656 A 2.4664114 2.4663006 0 0 0 1.7226562 12.185547 A 2.4664114 2.4663006 0 0 0 3.1191406 12.880859 A 2.4664198 2.4663006 0 0 0 3.8144531 14.277344 A 2.4664198 2.4663006 0 0 0 7.3027344 14.277344 A 2.4664198 2.4663006 0 0 0 7.6171875 11.173828 L 8.6875 10.101562 L 5.8964844 7.3105469 z "
+ transform="translate(0,1036.3622)"
+ id="path4139" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_ungroup.svg b/tools/editor/icons/source/icon_ungroup.svg
new file mode 100644
index 0000000000..c45e3e4cb9
--- /dev/null
+++ b/tools/editor/icons/source/icon_ungroup.svg
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_ungroup.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="31.999999"
+ inkscape:cx="11.746278"
+ inkscape:cy="8.8711774"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8 3 A 2 2 0 0 0 6 5 A 2 2 0 0 0 8 7 A 2 2 0 0 0 10 5 A 2 2 0 0 0 8 3 z M 5 8 A 2 2 0 0 0 3 10 A 2 2 0 0 0 5 12 A 2 2 0 0 0 7 10 A 2 2 0 0 0 5 8 z M 11 8 A 2 2 0 0 0 9 10 A 2 2 0 0 0 11 12 A 2 2 0 0 0 13 10 A 2 2 0 0 0 11 8 z "
+ transform="translate(0,1036.3622)"
+ id="path4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_unlock.svg b/tools/editor/icons/source/icon_unlock.svg
new file mode 100644
index 0000000000..b821d486ed
--- /dev/null
+++ b/tools/editor/icons/source/icon_unlock.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_unlock.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_unlock.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="6.9526998"
+ inkscape:cy="6.9680614"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="false"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-others="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="matrix(0.63636994,0,0,0.63636994,11.81847,382.85245)"
+ inkscape:label="Layer 1"
+ id="g4515"
+ style="stroke:#ffffff;stroke-width:6.28565216;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 8 L 2 15 L 14 15 L 14 8 L 2 8 z M 7 10 L 9 10 L 9 13 L 7 13 L 7 10 z "
+ id="rect4139"
+ transform="translate(0,1036.3622)" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 8,1 C 7.1226197,1.001545 6.2610925,1.233935 5.5019531,1.6738281 l 1,1.7324219 C 6.9570181,3.1417636 7.4736593,3.0016575 8,3 c 1.6568542,0 3,1.3431458 3,3 l 2,0 C 13,3.2385763 10.761424,1 8,1 Z"
+ transform="translate(0,1036.3622)"
+ id="path4141"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccc" />
+ <rect
+ y="1042.3622"
+ x="11"
+ height="2"
+ width="2"
+ id="rect4147"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_uv.svg b/tools/editor/icons/source/icon_uv.svg
new file mode 100644
index 0000000000..698a57fc0a
--- /dev/null
+++ b/tools/editor/icons/source/icon_uv.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_tool_rotate.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_uv.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-4.4331479"
+ inkscape:cy="7.1529248"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 5 L 1 9 A 3 2.9999914 0 0 0 2.5 11.597656 A 3 2.9999914 0 0 0 5.5 11.597656 A 3 2.9999914 0 0 0 7 9 L 7 5 L 5 5 L 5 9 A 1 1 0 0 1 4 10 A 1 1 0 0 1 3 9 L 3 5 L 1 5 z M 9 5 L 11 12 L 12 12 L 13 12 L 14 12 L 16 5 L 14 5 L 12.5 10.25 L 11 5 L 9 5 z "
+ transform="translate(0,1036.3622)"
+ id="rect4155" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_box_container.svg b/tools/editor/icons/source/icon_v_box_container.svg
new file mode 100644
index 0000000000..9773b253fb
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_box_container.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_box_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.6758349"
+ inkscape:cy="9.0861534"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 15,1039.3622 c 0,-1.1046 -0.89543,-2 -2,-2 l -10,0 c -1.104569,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.895431,2 2,2 l 10,0 c 1.10457,0 2,-0.8954 2,-2 l 0,-10 z m -2,0 0,2 -10,0 0,-2 10,0 z m 0,4 0,2 -10,0 0,-2 10,0 z m 0,4 0,2 -10,0 0,-2 10,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_button_array.svg b/tools/editor/icons/source/icon_v_button_array.svg
new file mode 100644
index 0000000000..aded4b401b
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_button_array.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_button.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_button_array.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.9547041"
+ inkscape:cy="8.9802416"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4156"
+ width="14"
+ height="6.0000172"
+ x="1"
+ y="1037.3622" />
+ <rect
+ y="1042.3622"
+ x="1"
+ height="0.99996543"
+ width="14"
+ id="rect4161"
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 9 L 1 15 L 3 13 L 5 15 L 7 13 L 9 15 L 11 13 L 13 15 L 15 13 L 15 9 L 1 9 z "
+ transform="translate(0,1036.3622)"
+ id="rect4157" />
+ <path
+ style="opacity:1;fill:#98dc9f;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1 14 L 1 15 L 2 14 L 1 14 z M 4 14 L 5 15 L 6 14 L 4 14 z M 8 14 L 9 15 L 10 14 L 8 14 z M 12 14 L 13 15 L 14 14 L 12 14 z "
+ transform="translate(0,1036.3622)"
+ id="rect4159" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_scroll_bar.svg b/tools/editor/icons/source/icon_v_scroll_bar.svg
new file mode 100644
index 0000000000..659dc39b0b
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_scroll_bar.svg
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_scroll_bar.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.543346"
+ inkscape:cy="9.3134214"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-paths="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 13,1039.3622 c 0,-1.1046 -0.89543,-2 -2,-2 l -6,0 c -1.104569,0 -2,0.8954 -2,2 l 0,10 c 0,1.1046 0.895431,2 2,2 l 6,0 c 1.10457,0 2,-0.8954 2,-2 z m -2,0 0,10 -6,0 0,-10 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc" />
+ <rect
+ style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4181"
+ width="4"
+ height="4"
+ x="1042.3622"
+ y="-8"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4187"
+ width="4"
+ height="4"
+ x="1040.3622"
+ y="-10"
+ transform="matrix(0,1,-1,0,0,0)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_separator.svg b/tools/editor/icons/source/icon_v_separator.svg
new file mode 100644
index 0000000000..7e5ce39ba0
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_separator.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_separator.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="10.534143"
+ inkscape:cy="10.281549"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="m 2,1047.3622 3,0 0,-6 -3,0 0,6 z m 5,4 2,0 0,-14 -2,0 0,14 z m 4,-4 3,0 0,-6 -3,0 0,6 z"
+ id="rect4156"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_slider.svg b/tools/editor/icons/source/icon_v_slider.svg
new file mode 100644
index 0000000000..74b59cfce5
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_slider.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_slider.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="9.3533577"
+ inkscape:cy="8.3875011"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 9,1038.3622 a 1,1 0 0 0 -1,-1 1,1 0 0 0 -1,1 l 0,3.1738 a 3,3 0 0 1 1,-0.1738 3,3 0 0 1 1,0.1758 l 0,-3.1758 z m 0,8.8262 a 3,3 0 0 1 -1,0.1738 3,3 0 0 1 -1,-0.1758 l 0,3.1758 a 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 l 0,-3.1738 z"
+ id="rect4157"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4167"
+ cx="8"
+ cy="1044.3622"
+ r="2" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_v_split_container.svg b/tools/editor/icons/source/icon_v_split_container.svg
new file mode 100644
index 0000000000..4e7704eb4e
--- /dev/null
+++ b/tools/editor/icons/source/icon_v_split_container.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_v_split_container.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="6.8095409"
+ inkscape:cy="10.783047"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3,1 C 1.8954305,1 1,1.8954305 1,3 l 0,10 c 0,1.104569 0.8954305,2 2,2 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,3 C 15,1.8954305 14.104569,1 13,1 Z m 0,2 10,0 0,10 -10,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssccccc"
+ transform="translate(0,1036.3622)" />
+ <rect
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4155"
+ width="2"
+ height="10"
+ x="1043.3622"
+ y="-13"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10,1045.3622 -4,0 2,2 z"
+ id="path4173"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10,1043.3622 -2,-2 -2,2 z"
+ id="path4171"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vector.svg b/tools/editor/icons/source/icon_vector.svg
new file mode 100644
index 0000000000..3260aa77ac
--- /dev/null
+++ b/tools/editor/icons/source/icon_vector.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="12"
+ viewBox="0 0 16 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vector.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="4.3605855"
+ inkscape:cy="6.1062603"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1047.3622 -4,4"
+ id="path4161"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 7,1040.3622 0,7 7,0"
+ id="path4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vector2.svg b/tools/editor/icons/source/icon_vector2.svg
new file mode 100644
index 0000000000..b7b157db01
--- /dev/null
+++ b/tools/editor/icons/source/icon_vector2.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="12"
+ viewBox="0 0 16 12"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot-design/assets/icons/svg/icon_graph_scalar_uniform.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vector_2.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.3478451"
+ inkscape:cy="7.2601098"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1040.3622)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#b8ea68;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 4,1041.3622 0,9 9,0"
+ id="path4163"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vehicle_body.svg b/tools/editor/icons/source/icon_vehicle_body.svg
new file mode 100644
index 0000000000..a168b98a99
--- /dev/null
+++ b/tools/editor/icons/source/icon_vehicle_body.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vehicle_body.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="63.999997"
+ inkscape:cx="8.7499158"
+ inkscape:cy="7.6997367"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 5 3 A 1 1 0 0 0 4 4 L 3 7 L 1 7 L 1 11 L 2.0507812 11 C 2.2824511 9.8589301 3.2905526 9 4.5 9 C 5.7094474 9 6.717549 9.8589301 6.9492188 11 L 9.0507812 11 C 9.2824511 9.8589301 10.290553 9 11.5 9 C 12.709447 9 13.717549 9.8589301 13.949219 11 L 15 11 L 15 7 L 11 7 L 11 3 L 5 3 z M 6 4 L 10 4 L 10 7 L 6 7 L 6 4 z "
+ transform="translate(0,1036.3622)"
+ id="rect4167" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="path4154"
+ cx="4.5"
+ cy="1047.8622"
+ r="1.5" />
+ <circle
+ r="1.5"
+ cy="1047.8622"
+ cx="11.5"
+ id="circle4165"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vehicle_wheel.svg b/tools/editor/icons/source/icon_vehicle_wheel.svg
new file mode 100644
index 0000000000..dff80c4d00
--- /dev/null
+++ b/tools/editor/icons/source/icon_vehicle_wheel.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vehicle_wheel.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="5.9995914"
+ inkscape:cy="9.3390829"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 3 A 5 5 0 0 1 13 8 A 5 5 0 0 1 8 13 A 5 5 0 0 1 3 8 A 5 5 0 0 1 8 3 z "
+ transform="translate(0,1036.3622)"
+ id="path4212" />
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 4 A 4 4 0 0 0 4 8 A 4 4 0 0 0 8 12 A 4 4 0 0 0 12 8 A 4 4 0 0 0 8 4 z M 8 5 A 1 1 0 0 1 9 6 A 1 1 0 0 1 8 7 A 1 1 0 0 1 7 6 A 1 1 0 0 1 8 5 z M 6 7 A 1 1 0 0 1 7 8 A 1 1 0 0 1 6 9 A 1 1 0 0 1 5 8 A 1 1 0 0 1 6 7 z M 10 7 A 1 1 0 0 1 11 8 A 1 1 0 0 1 10 9 A 1 1 0 0 1 9 8 A 1 1 0 0 1 10 7 z M 8 9 A 1 1 0 0 1 9 10 A 1 1 0 0 1 8 11 A 1 1 0 0 1 7 10 A 1 1 0 0 1 8 9 z "
+ id="circle4229"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_video_player.svg b/tools/editor/icons/source/icon_video_player.svg
new file mode 100644
index 0000000000..bfb499518b
--- /dev/null
+++ b/tools/editor/icons/source/icon_video_player.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_video_player.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="16"
+ inkscape:cx="4.9323208"
+ inkscape:cy="11.020342"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3 1 A 2 2 0 0 0 1.5859375 1.5859375 A 2 2 0 0 0 1 3 L 1 13 A 2 2 0 0 0 1.5859375 14.414062 A 2 2 0 0 0 3 15 L 13 15 A 2 2 0 0 0 15 13 L 15 3 A 2 2 0 0 0 13 1 L 3 1 z M 3 2 L 13 2 A 1.0000174 1.0000174 0 0 1 14 3 L 14 13 A 1.0000174 1.0000174 0 0 1 13 14 L 3 14 A 1.0000174 1.0000174 0 0 1 2 13 L 2 3 A 1.0000174 1.0000174 0 0 1 3 2 z "
+ transform="translate(0,1036.3622)"
+ id="rect4179" />
+ <path
+ style="fill:#a5efac;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 6,1047.3622 0,-6 5,3 z"
+ id="path4180"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_viewport.svg b/tools/editor/icons/source/icon_viewport.svg
new file mode 100644
index 0000000000..fcbe094fca
--- /dev/null
+++ b/tools/editor/icons/source/icon_viewport.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_viewport.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="7.693363"
+ inkscape:cy="8.1399132"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3,2 C 2.4695977,2.0000801 1.9609485,2.2108464 1.5859375,2.5859375 1.2108464,2.9609485 1.0000801,3.4695977 1,4 l 0,8 c 8.03e-5,0.530402 0.2108465,1.039051 0.5859375,1.414062 C 1.9609484,13.789153 2.4695976,13.99992 3,14 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,4 C 15,2.8954305 14.104569,2 13,2 Z m 0,1 10,0 c 0.552281,9.6e-6 0.99999,0.4477192 1,1 l 0,8 c -10e-6,0.552281 -0.447719,0.99999 -1,1 L 3,13 C 2.4477192,12.99999 2.0000096,12.552281 2,12 L 2,4 c 9.6e-6,-0.5522808 0.4477192,-0.9999904 1,-1 z"
+ transform="translate(0,1036.3622)"
+ id="rect4179"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccsssscccccccccc" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_viewport_sprite.svg b/tools/editor/icons/source/icon_viewport_sprite.svg
new file mode 100644
index 0000000000..7e7a64144c
--- /dev/null
+++ b/tools/editor/icons/source/icon_viewport_sprite.svg
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_sprite.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45"
+ sodipodi:docname="icon_viewport_sprite.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="45.254834"
+ inkscape:cx="3.6977136"
+ inkscape:cy="6.6658528"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-intersection-paths="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4175"
+ width="1"
+ height="1"
+ x="20"
+ y="1042.3622" />
+ <rect
+ y="1042.3622"
+ x="29"
+ height="1"
+ width="1"
+ id="rect4177"
+ style="opacity:1;fill:#fefeff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 3,2 C 2.4695977,2.0000801 1.9609485,2.2108464 1.5859375,2.5859375 1.2108464,2.9609485 1.0000801,3.4695977 1,4 l 0,8 c 8.03e-5,0.530402 0.2108465,1.039051 0.5859375,1.414062 C 1.9609484,13.789153 2.4695976,13.99992 3,14 l 10,0 c 1.104569,0 2,-0.895431 2,-2 L 15,4 C 15,2.8954305 14.104569,2 13,2 Z m 0,1 10,0 c 0.552281,9.6e-6 0.99999,0.4477192 1,1 l 0,8 c -10e-6,0.552281 -0.447719,0.99999 -1,1 L 3,13 C 2.4477192,12.99999 2.0000096,12.552281 2,12 L 2,4 c 9.6e-6,-0.5522808 0.4477192,-0.9999904 1,-1 z"
+ transform="translate(0,1036.3622)"
+ id="rect4179"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccsssscccccccccc" />
+ <rect
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4213"
+ width="1"
+ height="1"
+ x="5"
+ y="1043.3622" />
+ <rect
+ y="1043.3622"
+ x="10"
+ height="1"
+ width="1"
+ id="rect4215"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ y="1045.3622"
+ x="4"
+ height="1"
+ width="8"
+ id="rect4217"
+ style="opacity:1;fill:#a5b7f8;fill-opacity:0.98823529;stroke:none;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_visibility_enabler.svg b/tools/editor/icons/source/icon_visibility_enabler.svg
new file mode 100644
index 0000000000..7c3bc54c99
--- /dev/null
+++ b/tools/editor/icons/source/icon_visibility_enabler.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_visibility_enabler.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="7.6618615"
+ inkscape:cy="10.09281"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-0"
+ inkscape:label="Layer 1"
+ transform="translate(-1.5201563e-4,0)"
+ style="fill:#fc9c9c;fill-opacity:0.99607843">
+ <path
+ id="path4165"
+ transform="translate(0,1036.3622)"
+ d="M 8,2 C 5.4432667,2 2.2093331,3.9476781 1.0449219,7.7050781 a 1.0001,1.0001 0 0 0 -0.00586,0.5703125 C 2.1634651,12.210791 5.5,14 8,14 c 2.5,0 5.836534,-1.789209 6.960938,-5.7246094 a 1.0001,1.0001 0 0 0 0,-0.5527344 C 13.86059,3.9350563 10.554367,2 8,2 Z M 8,4 A 4,4 0 0 1 12,8 4,4 0 0 1 8,12 4,4 0 0 1 4,8 4,4 0 0 1 8,4 Z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4192"
+ cx="8"
+ cy="1044.3622"
+ r="2" />
+ </g>
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 1 1 L 1 4 L 2 4 L 2 2 L 4 2 L 4 1 L 1 1 z M 12 1 L 12 2 L 14 2 L 14 4 L 15 4 L 15 1 L 12 1 z M 1 12 L 1 15 L 4 15 L 4 14 L 2 14 L 2 12 L 1 12 z M 14 12 L 14 14 L 12 14 L 12 15 L 15 15 L 15 12 L 14 12 z "
+ transform="translate(0,1036.3622)"
+ id="rect4176" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_visibility_enabler_2d.svg b/tools/editor/icons/source/icon_visibility_enabler_2d.svg
new file mode 100644
index 0000000000..1e7d1a751f
--- /dev/null
+++ b/tools/editor/icons/source/icon_visibility_enabler_2d.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_visibility_enabler_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.313708"
+ inkscape:cx="3.8611624"
+ inkscape:cy="11.15347"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-0"
+ inkscape:label="Layer 1"
+ transform="translate(-1.5201563e-4,0)"
+ style="fill:#a5b7f9;fill-opacity:0.98823529">
+ <path
+ id="path4165"
+ transform="translate(0,1036.3622)"
+ d="M 8,2 C 5.4432667,2 2.2093331,3.9476781 1.0449219,7.7050781 a 1.0001,1.0001 0 0 0 -0.00586,0.5703125 C 2.1634651,12.210791 5.5,14 8,14 c 2.5,0 5.836534,-1.789209 6.960938,-5.7246094 a 1.0001,1.0001 0 0 0 0,-0.5527344 C 13.86059,3.9350563 10.554367,2 8,2 Z M 8,4 A 4,4 0 0 1 12,8 4,4 0 0 1 8,12 4,4 0 0 1 4,8 4,4 0 0 1 8,4 Z"
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ <circle
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="circle4192"
+ cx="8"
+ cy="1044.3622"
+ r="2" />
+ </g>
+ <path
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 1 1 L 1 4 L 2 4 L 2 2 L 4 2 L 4 1 L 1 1 z M 12 1 L 12 2 L 14 2 L 14 4 L 15 4 L 15 1 L 12 1 z M 1 12 L 1 15 L 4 15 L 4 14 L 2 14 L 2 12 L 1 12 z M 14 12 L 14 14 L 12 14 L 12 15 L 15 15 L 15 12 L 14 12 z "
+ transform="translate(0,1036.3622)"
+ id="rect4176" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_visibility_notifier.svg b/tools/editor/icons/source/icon_visibility_notifier.svg
new file mode 100644
index 0000000000..b307a6162d
--- /dev/null
+++ b/tools/editor/icons/source/icon_visibility_notifier.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_visibility_notifier.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="0.5167491"
+ inkscape:cy="12.138813"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 8 3 C 5.4432667 3 2.2093331 4.9476781 1.0449219 8.7050781 A 1.0001 1.0001 0 0 0 1.0390625 9.2753906 C 2.1634657 13.210791 5.5 15 8 15 C 9.4906676 15 11.271733 14.347929 12.710938 13 L 12 13 L 10 13 L 10 12.458984 A 4 4 0 0 1 8 13 A 4 4 0 0 1 4 9 A 4 4 0 0 1 8 5 A 4 4 0 0 1 10 5.5410156 L 10 3.359375 C 9.3168765 3.1210335 8.635589 3 8 3 z M 8 7 A 2 2 0 0 0 6 9 A 2 2 0 0 0 8 11 A 2 2 0 0 0 10 9 A 2 2 0 0 0 8 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4165" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4157"
+ width="2"
+ height="6"
+ x="12"
+ y="1037.3622" />
+ <rect
+ y="-1047.3622"
+ x="12"
+ height="2.0000174"
+ width="2"
+ id="rect4159"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_visibility_notifier_2d.svg b/tools/editor/icons/source/icon_visibility_notifier_2d.svg
new file mode 100644
index 0000000000..dc2482f9e1
--- /dev/null
+++ b/tools/editor/icons/source/icon_visibility_notifier_2d.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_visibility_notifier_2d.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="15.999999"
+ inkscape:cx="0.5167491"
+ inkscape:cy="12.138813"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:object-nodes="false"
+ inkscape:snap-intersection-paths="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a5b7fa;fill-opacity:0.98823529;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 8 3 C 5.4432667 3 2.2093331 4.9476781 1.0449219 8.7050781 A 1.0001 1.0001 0 0 0 1.0390625 9.2753906 C 2.1634657 13.210791 5.5 15 8 15 C 9.4906676 15 11.271733 14.347929 12.710938 13 L 12 13 L 10 13 L 10 12.458984 A 4 4 0 0 1 8 13 A 4 4 0 0 1 4 9 A 4 4 0 0 1 8 5 A 4 4 0 0 1 10 5.5410156 L 10 3.359375 C 9.3168765 3.1210335 8.635589 3 8 3 z M 8 7 A 2 2 0 0 0 6 9 A 2 2 0 0 0 8 11 A 2 2 0 0 0 10 9 A 2 2 0 0 0 8 7 z "
+ transform="translate(0,1036.3622)"
+ id="path4165" />
+ <rect
+ style="opacity:1;fill:#a5b7fa;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4157"
+ width="2"
+ height="6"
+ x="12"
+ y="1037.3622" />
+ <rect
+ y="-1047.3622"
+ x="12"
+ height="2.0000174"
+ width="2"
+ id="rect4159"
+ style="opacity:1;fill:#a5b7fa;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ transform="scale(1,-1)" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_visible.svg b/tools/editor/icons/source/icon_visible.svg
new file mode 100644
index 0000000000..0185e1f3a9
--- /dev/null
+++ b/tools/editor/icons/source/icon_visible.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_history.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_visible.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="13.144261"
+ inkscape:cy="10.090962"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 8 2 C 5.4432667 2 2.2093331 3.9476781 1.0449219 7.7050781 A 1.0001 1.0001 0 0 0 1.0390625 8.2753906 C 2.1634651 12.210791 5.5 14 8 14 C 10.5 14 13.836534 12.210791 14.960938 8.2753906 A 1.0001 1.0001 0 0 0 14.960938 7.7226562 C 13.86059 3.9350563 10.554367 2 8 2 z M 8 4 A 4 4 0 0 1 12 8 A 4 4 0 0 1 8 12 A 4 4 0 0 1 4 8 A 4 4 0 0 1 8 4 z "
+ transform="translate(0,1036.3622)"
+ id="path4165" />
+ <circle
+ r="2"
+ cy="1044.3622"
+ cx="8"
+ id="circle4192"
+ style="opacity:1;fill:#e0e0e0;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vu_empty.svg b/tools/editor/icons/source/icon_vu_empty.svg
new file mode 100644
index 0000000000..e2c102a45a
--- /dev/null
+++ b/tools/editor/icons/source/icon_vu_empty.svg
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="128"
+ height="4"
+ viewBox="0 0 128 4"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_vu_empty.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vu_empty.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4211">
+ <stop
+ style="stop-color:#84ffb1;stop-opacity:1"
+ offset="0"
+ id="stop4213" />
+ <stop
+ id="stop4221"
+ offset="0.5"
+ style="stop-color:#e1dc7a;stop-opacity:1" />
+ <stop
+ style="stop-color:#ff8484;stop-opacity:1"
+ offset="1"
+ id="stop4215" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4211"
+ id="linearGradient4219"
+ x1="0"
+ y1="2"
+ x2="128"
+ y2="2"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="62.578607"
+ inkscape:cy="5.6676337"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1048.3622)">
+ <path
+ style="opacity:1;fill:url(#linearGradient4219);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 A 2 2 0 0 0 0 2 A 2 2 0 0 0 2 4 L 80 4 L 80 0 L 2 0 z M 82 0 L 82 4 L 126 4 A 2 2 0 0 0 128 2 A 2 2 0 0 0 126 0 L 82 0 z "
+ transform="translate(0,1048.3622)"
+ id="rect4204" />
+ <path
+ id="path4242"
+ transform="translate(0,1048.3622)"
+ d="M 2 0 A 2 2 0 0 0 0 2 A 2 2 0 0 0 2 4 L 80 4 L 80 0 L 2 0 z M 82 0 L 82 4 L 126 4 A 2 2 0 0 0 128 2 A 2 2 0 0 0 126 0 L 82 0 z "
+ style="opacity:1;fill:#000000;fill-opacity:0.23529412;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_vu_full.svg b/tools/editor/icons/source/icon_vu_full.svg
new file mode 100644
index 0000000000..b96af9218a
--- /dev/null
+++ b/tools/editor/icons/source/icon_vu_full.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="128"
+ height="4"
+ viewBox="0 0 128 4"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_vu_full.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_vu_full.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4211">
+ <stop
+ style="stop-color:#84ffb1;stop-opacity:1"
+ offset="0"
+ id="stop4213" />
+ <stop
+ id="stop4221"
+ offset="0.5"
+ style="stop-color:#e1dc7a;stop-opacity:1" />
+ <stop
+ style="stop-color:#ff8484;stop-opacity:1"
+ offset="1"
+ id="stop4215" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4211"
+ id="linearGradient4219"
+ x1="0"
+ y1="2"
+ x2="128"
+ y2="2"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="37.328607"
+ inkscape:cy="1.9176337"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-smooth-nodes="false"
+ inkscape:snap-midpoints="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1048.3622)">
+ <path
+ style="opacity:1;fill:url(#linearGradient4219);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 2 0 A 2 2 0 0 0 0 2 A 2 2 0 0 0 2 4 L 80 4 L 80 0 L 2 0 z M 82 0 L 82 4 L 126 4 A 2 2 0 0 0 128 2 A 2 2 0 0 0 126 0 L 82 0 z "
+ transform="translate(0,1048.3622)"
+ id="rect4204" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_warning.svg b/tools/editor/icons/source/icon_warning.svg
new file mode 100644
index 0000000000..ee89f3ec99
--- /dev/null
+++ b/tools/editor/icons/source/icon_warning.svg
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="8"
+ height="8"
+ viewBox="0 0 8 8"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_warning.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="1.5203658"
+ inkscape:cy="5.6414917"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1044.3622)">
+ <rect
+ style="opacity:1;fill:#ffd684;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4154"
+ width="8"
+ height="8"
+ x="2.220446e-16"
+ y="1044.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_window_dialog.svg b/tools/editor/icons/source/icon_window_dialog.svg
new file mode 100644
index 0000000000..433ae48a55
--- /dev/null
+++ b/tools/editor/icons/source/icon_window_dialog.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_confirmation_dialog.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_window_dialog.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="2.2494901"
+ inkscape:cy="5.6766918"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#a5efac;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 3 1 C 1.89543 1 1 1.8954 1 3 L 1 4 L 15 4 L 15 3 C 15 1.8954 14.104569 1 13 1 L 3 1 z M 12 2 L 13 2 L 13 3 L 12 3 L 12 2 z M 1 5 L 1 13 C 1 14.1046 1.89543 15 3 15 L 13 15 C 14.104569 15 15 14.1046 15 13 L 15 5 L 1 5 z "
+ transform="translate(0,1036.3622)"
+ id="rect4140" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_world_environment.svg b/tools/editor/icons/source/icon_world_environment.svg
new file mode 100644
index 0000000000..b06dd2a826
--- /dev/null
+++ b/tools/editor/icons/source/icon_world_environment.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_node_2d.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_world_environment.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627416"
+ inkscape:cx="10.565197"
+ inkscape:cy="6.6366465"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:object-paths="true"
+ inkscape:snap-intersection-paths="true"
+ inkscape:object-nodes="true"
+ inkscape:snap-smooth-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336"
+ empspacing="4" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ d="M 8 1 A 7 7 0 0 0 1 8 A 7 7 0 0 0 8 15 A 7 7 0 0 0 15 8 A 7 7 0 0 0 8 1 z M 8 2 A 6 6 0 0 1 14 8 A 6 6 0 0 1 8 14 A 6 6 0 0 1 2 8 A 6 6 0 0 1 8 2 z "
+ transform="translate(0,1036.3622)"
+ id="path4158" />
+ <rect
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843"
+ id="rect4163"
+ width="12"
+ height="1"
+ x="2"
+ y="1041.3622" />
+ <rect
+ y="1046.3622"
+ x="2"
+ height="1"
+ width="12"
+ id="rect4165"
+ style="opacity:1;fill:#fc9c9c;fill-opacity:0.99607843;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99607843" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843"
+ d="m 8,1038.3622 c 0,0 -3,2 -3,6 0,4 3,6 3,6"
+ id="path4167"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czc" />
+ <path
+ sodipodi:nodetypes="czc"
+ inkscape:connector-curvature="0"
+ id="path4169"
+ d="m 8,1038.3622 c 0,0 3,2 3,6 0,4 -3,6 -3,6"
+ style="fill:none;fill-rule:evenodd;stroke:#fc9c9c;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.99607843" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_y_sort.svg b/tools/editor/icons/source/icon_y_sort.svg
new file mode 100644
index 0000000000..65990097c6
--- /dev/null
+++ b/tools/editor/icons/source/icon_y_sort.svg
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_center_container.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_y_sort.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="4.9766986"
+ inkscape:cy="10.397342"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="true"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <rect
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4157"
+ width="6"
+ height="2"
+ x="9"
+ y="1038.3622" />
+ <path
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 3,1048.3622 -2,0 3,3 3,-3 -2,0 0,-8 2,0 -3,-3 -3,3 2,0 z"
+ id="rect4140"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccccccccc" />
+ <rect
+ y="1043.3622"
+ x="9"
+ height="2"
+ width="4"
+ id="rect4160"
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <rect
+ style="opacity:1;fill:#a5b7f9;fill-opacity:0.98823529;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4162"
+ width="2"
+ height="2"
+ x="9"
+ y="1048.3622" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/source/icon_zoom.svg b/tools/editor/icons/source/icon_zoom.svg
new file mode 100644
index 0000000000..811036b370
--- /dev/null
+++ b/tools/editor/icons/source/icon_zoom.svg
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ viewBox="0 0 16 16"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ inkscape:export-filename="/home/djrm/Projects/godot/tools/editor/icons/icon_zoom.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="icon_zoom.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="3.7772222"
+ inkscape:cy="11.922647"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ inkscape:bbox-nodes="true"
+ inkscape:snap-bbox-edge-midpoints="true"
+ inkscape:snap-bbox-midpoints="false"
+ inkscape:snap-object-midpoints="true"
+ inkscape:snap-center="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3336" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <path
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 6,1037.3622 a 5,5 0 0 0 -5,5 5,5 0 0 0 5,5 5,5 0 0 0 5,-5 5,5 0 0 0 -5,-5 z m 0,2 a 3,3 0 0 1 3,3 3,3 0 0 1 -3,3 3,3 0 0 1 -3,-3 3,3 0 0 1 3,-3 z"
+ id="path4135"
+ inkscape:connector-curvature="0" />
+ <rect
+ style="opacity:1;fill:#e0e0e0;fill-opacity:0.99607843;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4140"
+ width="2"
+ height="7.0000172"
+ x="-733.81873"
+ y="745.30402"
+ inkscape:transform-center-y="5.3032921"
+ transform="matrix(0.70710678,-0.70710678,0.70710678,0.70710678,0,0)"
+ inkscape:transform-center-x="-5.3033134" />
+ </g>
+</svg>
diff --git a/tools/editor/icons/svgs_2_pngs.py b/tools/editor/icons/svgs_2_pngs.py
new file mode 100644
index 0000000000..fd1e9017b6
--- /dev/null
+++ b/tools/editor/icons/svgs_2_pngs.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+# Basic exporter for svg icons (requires Inkscape)
+
+import os.path
+from os import listdir
+from os.path import isfile, join
+import subprocess
+import sys
+
+SVGS_PATH = 'source/'
+OUT_DIR = './'
+DPI = 90
+
+if len(sys.argv) >= 2:
+ try:
+ scale = int(sys.argv[1])
+ if scale > 1:
+ OUT_DIR = '%sx/' % scale
+ DPI *= scale
+ except:
+ pass
+
+
+def export_all(svgs_path=SVGS_PATH, out_dir=OUT_DIR, dpi=DPI):
+ if not os.path.isdir(out_dir):
+ os.makedirs(out_dir)
+
+ file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))]
+
+ for file_name in file_names:
+ # name without extensions
+ name_only = file_name.replace('.svg', '')
+
+ icon_from_name = name_only
+ out_icon_names = [name_only] # export to a png with the same file name
+ rotations = []
+ transforms = []
+
+ # special cases
+ if special_icons.has_key(name_only):
+ special_icon = special_icons[name_only]
+ if type(special_icon) is dict:
+ if special_icon.has_key('output_names'):
+ out_icon_names += special_icon['output_names']
+
+ svg_file_path = '%s%s.svg' % (svgs_path, icon_from_name)
+
+ for index, out_icon_name in enumerate(out_icon_names):
+ subprocess.call(
+ 'inkscape -z -f {input} -d {dpi} -e{output}'.format(
+ input=svg_file_path,
+ dpi=dpi,
+ output='%s%s.png' % (out_dir, out_icon_name)
+ ), shell=True)
+
+
+# special cases for icons that will be exported to multiple target pngs or that require transforms.
+special_icons = {
+ 'icon_add_track': dict( output_names=['icon_add'] ),
+ 'icon_new': dict( output_names=['icon_file'] ),
+ 'icon_animation_tree_player': dict( output_names=['icon_animation_tree'] ),
+ 'icon_tool_rotate': dict( output_names=['icon_reload'] ),
+ 'icon_multi_edit': dict( output_names=['icon_multi_node_edit'] ),
+ 'icon_folder': dict( output_names=['icon_load', 'icon_open'] ),
+ 'icon_file_list': dict( output_names=['icon_enum'] ),
+ 'icon_collision_2d': dict( output_names=['icon_collision_polygon_2d', 'icon_polygon_2d'] ),
+ 'icon_class_list': dict( output_names=['icon_filesystem'] ),
+ 'icon_color_ramp': dict( output_names=['icon_graph_color_ramp'] ),
+ 'icon_translation': dict( output_names=['icon_p_hash_translation'] ),
+ 'icon_shader': dict( output_names=['icon_shader_material', 'icon_material_shader'] ),
+ 'icon_canvas_item_shader_graph': dict( output_names=['icon_material_shader_graph'] ),
+
+}
+
+export_all()
diff --git a/tools/editor/import_settings.cpp b/tools/editor/import_settings.cpp
index 3b3ebb0ad7..dfaeca03db 100644
--- a/tools/editor/import_settings.cpp
+++ b/tools/editor/import_settings.cpp
@@ -278,7 +278,7 @@ ImportSettingsDialog::ImportSettingsDialog(EditorNode *p_editor) {
set_child_rect(tree);
set_title(TTR("Imported Resources"));
- texformat=TTR("Keep,None,Disk,VRAM");
+// texformat="Keep,None,Disk,VRAM";
tree->set_hide_root(true);
tree->set_columns(2);
@@ -288,7 +288,7 @@ ImportSettingsDialog::ImportSettingsDialog(EditorNode *p_editor) {
tree->connect("item_edited",this,"_item_edited");
tree->connect("button_pressed",this,"_button_pressed");
-// add_button(TTR("Re-Import"),"reimport");
+// add_button("Re-Import","reimport");
get_ok()->set_text(TTR("Re-Import"));
get_cancel()->set_text(TTR("Close"));
diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
new file mode 100644
index 0000000000..dca7d011ff
--- /dev/null
+++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.cpp
@@ -0,0 +1,357 @@
+#include "editor_bitmask_import_plugin.h"
+#include "io/image_loader.h"
+#include "tools/editor/editor_file_dialog.h"
+#include "tools/editor/editor_dir_dialog.h"
+#include "tools/editor/editor_node.h"
+#include "tools/editor/property_editor.h"
+#include "io/resource_saver.h"
+#include "os/file_access.h"
+#include "io/marshalls.h"
+#include "tools/editor/editor_settings.h"
+
+class _EditorBitMaskImportOptions : public Object {
+
+ OBJ_TYPE(_EditorBitMaskImportOptions, Object);
+public:
+
+ bool _set(const StringName& p_name, const Variant& p_value) {
+
+ return false;
+ }
+
+ bool _get(const StringName& p_name, Variant &r_ret) const{
+
+ return false;
+ }
+
+ void _get_property_list(List<PropertyInfo> *p_list) const{
+
+ }
+
+ static void _bind_methods() {
+
+ ADD_SIGNAL(MethodInfo("changed"));
+ }
+
+
+ _EditorBitMaskImportOptions() {
+
+ }
+
+};
+
+class EditorBitMaskImportDialog : public ConfirmationDialog {
+
+ OBJ_TYPE(EditorBitMaskImportDialog, ConfirmationDialog);
+
+ EditorBitMaskImportPlugin *plugin;
+
+ LineEdit *import_path;
+ LineEdit *save_path;
+ EditorFileDialog *file_select;
+ EditorDirDialog *save_select;
+ ConfirmationDialog *error_dialog;
+ PropertyEditor *option_editor;
+
+public:
+
+ void _choose_files(const Vector<String>& p_path) {
+
+ String files;
+ for (int i = 0; i<p_path.size(); i++) {
+
+ if (i>0)
+ files += ",";
+ files += p_path[i];
+ }
+
+ import_path->set_text(files);
+
+ }
+ void _choose_save_dir(const String& p_path) {
+
+ save_path->set_text(p_path);
+ }
+
+ void _browse() {
+
+ file_select->popup_centered_ratio();
+ }
+
+ void _browse_target() {
+
+ save_select->popup_centered_ratio();
+
+ }
+
+
+ void popup_import(const String& p_path) {
+
+ popup_centered(Size2(400, 100)*EDSCALE);
+ if (p_path != "") {
+
+ Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(p_path);
+ ERR_FAIL_COND(!rimd.is_valid());
+
+ save_path->set_text(p_path.get_base_dir());
+
+ String src = "";
+ for (int i = 0; i<rimd->get_source_count(); i++) {
+ if (i>0)
+ src += ",";
+ src += EditorImportPlugin::expand_source_path(rimd->get_source_path(i));
+ }
+ import_path->set_text(src);
+ }
+ }
+
+
+ void _import() {
+
+ Vector<String> bitmasks = import_path->get_text().split(",");
+
+ if (bitmasks.size() == 0) {
+ error_dialog->set_text(TTR("No bit masks to import!"));
+ error_dialog->popup_centered(Size2(200, 100)*EDSCALE);
+ }
+
+ if (save_path->get_text().strip_edges() == "") {
+ error_dialog->set_text(TTR("Target path is empty."));
+ error_dialog->popup_centered_minsize();
+ return;
+ }
+
+ if (!save_path->get_text().begins_with("res://")) {
+ error_dialog->set_text(TTR("Target path must be a complete resource path."));
+ error_dialog->popup_centered_minsize();
+ return;
+ }
+
+ if (!DirAccess::exists(save_path->get_text())) {
+ error_dialog->set_text(TTR("Target path must exist."));
+ error_dialog->popup_centered_minsize();
+ return;
+ }
+
+ for (int i = 0; i<bitmasks.size(); i++) {
+
+ Ref<ResourceImportMetadata> imd = memnew(ResourceImportMetadata);
+
+ imd->add_source(EditorImportPlugin::validate_source_path(bitmasks[i]));
+
+ String dst = save_path->get_text();
+ if (dst == "") {
+ error_dialog->set_text(TTR("Save path is empty!"));
+ error_dialog->popup_centered(Size2(200, 100)*EDSCALE);
+ }
+
+ dst = dst.plus_file(bitmasks[i].get_file().basename() + ".pbm");
+
+ Error err = plugin->import(dst, imd);
+ }
+
+ hide();
+
+ }
+
+
+ void _notification(int p_what) {
+
+ }
+
+ static void _bind_methods() {
+
+
+ ObjectTypeDB::bind_method("_choose_files", &EditorBitMaskImportDialog::_choose_files);
+ ObjectTypeDB::bind_method("_choose_save_dir", &EditorBitMaskImportDialog::_choose_save_dir);
+ ObjectTypeDB::bind_method("_import", &EditorBitMaskImportDialog::_import);
+ ObjectTypeDB::bind_method("_browse", &EditorBitMaskImportDialog::_browse);
+ ObjectTypeDB::bind_method("_browse_target", &EditorBitMaskImportDialog::_browse_target);
+ // ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
+ }
+
+ EditorBitMaskImportDialog(EditorBitMaskImportPlugin *p_plugin) {
+
+ plugin = p_plugin;
+
+
+ set_title(TTR("Import BitMasks"));
+
+ VBoxContainer *vbc = memnew(VBoxContainer);
+ add_child(vbc);
+ set_child_rect(vbc);
+
+
+ HBoxContainer *hbc = memnew(HBoxContainer);
+ vbc->add_margin_child(TTR("Source Texture(s):"), hbc);
+
+ import_path = memnew(LineEdit);
+ import_path->set_h_size_flags(SIZE_EXPAND_FILL);
+ hbc->add_child(import_path);
+
+ Button * import_choose = memnew(Button);
+ import_choose->set_text(" .. ");
+ hbc->add_child(import_choose);
+
+ import_choose->connect("pressed", this, "_browse");
+
+ hbc = memnew(HBoxContainer);
+ vbc->add_margin_child(TTR("Target Path:"), hbc);
+
+ save_path = memnew(LineEdit);
+ save_path->set_h_size_flags(SIZE_EXPAND_FILL);
+ hbc->add_child(save_path);
+
+ Button * save_choose = memnew(Button);
+ save_choose->set_text(" .. ");
+ hbc->add_child(save_choose);
+
+ save_choose->connect("pressed", this, "_browse_target");
+
+ file_select = memnew(EditorFileDialog);
+ file_select->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
+ add_child(file_select);
+ file_select->set_mode(EditorFileDialog::MODE_OPEN_FILES);
+ file_select->connect("files_selected", this, "_choose_files");
+
+ List<String> extensions;
+ ImageLoader::get_recognized_extensions(&extensions);
+ file_select->clear_filters();
+ for (int i = 0; i<extensions.size(); i++) {
+
+ file_select->add_filter("*." + extensions[i] + " ; " + extensions[i].to_upper());
+ }
+
+ save_select = memnew(EditorDirDialog);
+ add_child(save_select);
+
+ // save_select->set_mode(EditorFileDialog::MODE_OPEN_DIR);
+ save_select->connect("dir_selected", this, "_choose_save_dir");
+
+ get_ok()->connect("pressed", this, "_import");
+ get_ok()->set_text(TTR("Import"));
+
+
+ error_dialog = memnew(ConfirmationDialog);
+ add_child(error_dialog);
+ error_dialog->get_ok()->set_text(TTR("Accept"));
+ // error_dialog->get_cancel()->hide();
+
+ set_hide_on_ok(false);
+ }
+
+ ~EditorBitMaskImportDialog() {
+ }
+
+};
+
+
+String EditorBitMaskImportPlugin::get_name() const {
+
+ return "bitmask";
+}
+String EditorBitMaskImportPlugin::get_visible_name() const{
+
+ return TTR("Bit Mask");
+}
+void EditorBitMaskImportPlugin::import_dialog(const String& p_from){
+
+ dialog->popup_import(p_from);
+}
+Error EditorBitMaskImportPlugin::import(const String& p_path, const Ref<ResourceImportMetadata>& p_from){
+
+ ERR_FAIL_COND_V(p_from->get_source_count() != 1, ERR_INVALID_PARAMETER);
+
+ Ref<ResourceImportMetadata> from = p_from;
+
+ String src_path = EditorImportPlugin::expand_source_path(from->get_source_path(0));
+ Ref<ImageTexture> it = ResourceLoader::load(src_path);
+ ERR_FAIL_COND_V(it.is_null(), ERR_CANT_OPEN);
+
+ Ref<BitMap> target = memnew(BitMap);
+ target->create_from_image_alpha(it.ptr()->get_data());
+
+ from->set_source_md5(0, FileAccess::get_md5(src_path));
+ from->set_editor(get_name());
+ target->set_import_metadata(from);
+
+
+ Error err = ResourceSaver::save(p_path, target);
+
+ return err;
+
+}
+
+
+EditorBitMaskImportPlugin* EditorBitMaskImportPlugin::singleton = NULL;
+
+
+void EditorBitMaskImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+ Vector<String> files;
+
+ List<String> valid_extensions;
+ ImageLoader::get_recognized_extensions(&valid_extensions);
+ for(int i=0;i<p_drop.size();i++) {
+
+ String extension=p_drop[i].extension().to_lower();
+
+ for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) {
+
+ if (E->get()==extension) {
+ files.push_back(p_drop[i]);
+ break;
+ }
+ }
+ }
+
+ if (files.size()) {
+ import_dialog();
+ dialog->_choose_files(files);
+ dialog->_choose_save_dir(p_dest_path);
+ }
+}
+
+void EditorBitMaskImportPlugin::reimport_multiple_files(const Vector<String>& p_list) {
+
+ if (p_list.size() == 0)
+ return;
+
+ Vector<String> sources;
+ for (int i = 0; i<p_list.size(); i++) {
+ int idx;
+ EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->find_file(p_list[i], &idx);
+ if (efsd) {
+ for (int j = 0; j<efsd->get_source_count(idx); j++) {
+ String file = expand_source_path(efsd->get_source_file(idx, j));
+ if (sources.find(file) == -1) {
+ sources.push_back(file);
+ }
+
+ }
+ }
+ }
+
+ if (sources.size()) {
+
+ dialog->popup_import(p_list[0]);
+ dialog->_choose_files(sources);
+ dialog->_choose_save_dir(p_list[0].get_base_dir());
+ }
+}
+
+bool EditorBitMaskImportPlugin::can_reimport_multiple_files() const {
+
+ return true;
+}
+
+EditorBitMaskImportPlugin::EditorBitMaskImportPlugin(EditorNode* p_editor) {
+
+ singleton = this;
+ dialog = memnew(EditorBitMaskImportDialog(this));
+ p_editor->get_gui_base()->add_child(dialog);
+}
+
+EditorBitMaskExportPlugin::EditorBitMaskExportPlugin() {
+
+}
diff --git a/tools/editor/io_plugins/editor_bitmask_import_plugin.h b/tools/editor/io_plugins/editor_bitmask_import_plugin.h
new file mode 100644
index 0000000000..d9ca33cd97
--- /dev/null
+++ b/tools/editor/io_plugins/editor_bitmask_import_plugin.h
@@ -0,0 +1,41 @@
+#ifndef EDITOR_BITMASK_IMPORT_PLUGIN_H
+#define EDITOR_BITMASK_IMPORT_PLUGIN_H
+
+#include "tools/editor/editor_import_export.h"
+#include "scene/resources/font.h"
+
+class EditorNode;
+class EditorBitMaskImportDialog;
+
+class EditorBitMaskImportPlugin : public EditorImportPlugin {
+
+ OBJ_TYPE(EditorBitMaskImportPlugin, EditorImportPlugin);
+
+ EditorBitMaskImportDialog *dialog;
+public:
+
+ static EditorBitMaskImportPlugin *singleton;
+
+ virtual String get_name() const;
+ virtual String get_visible_name() const;
+ virtual void import_dialog(const String& p_from = "");
+ virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ void import_from_drop(const Vector<String>& p_drop, const String &p_dest_path);
+ virtual void reimport_multiple_files(const Vector<String>& p_list);
+ virtual bool can_reimport_multiple_files() const;
+
+
+ EditorBitMaskImportPlugin(EditorNode* p_editor);
+};
+
+class EditorBitMaskExportPlugin : public EditorExportPlugin {
+
+ OBJ_TYPE(EditorBitMaskExportPlugin, EditorExportPlugin);
+
+
+public:
+
+ EditorBitMaskExportPlugin();
+};
+
+#endif // EDITOR_SAMPLE_IMPORT_PLUGIN_H
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.cpp b/tools/editor/io_plugins/editor_font_import_plugin.cpp
index 970b8fe0ca..d5e6e3077e 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -510,13 +510,13 @@ class EditorFontImportDialog : public ConfirmationDialog {
if (source->get_line_edit()->get_text()=="") {
error_dialog->set_text(TTR("No source font file!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
if (dest->get_line_edit()->get_text()=="") {
error_dialog->set_text(TTR("No target font resource!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -527,8 +527,8 @@ class EditorFontImportDialog : public ConfirmationDialog {
Ref<ResourceImportMetadata> rimd = get_rimd();
if (rimd.is_null()) {
- error_dialog->set_text(TTR("Can't load/process source font"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Can't load/process source font."));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -536,7 +536,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
if (err!=OK) {
error_dialog->set_text(TTR("Couldn't save font."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -573,7 +573,7 @@ public:
void popup_import(const String& p_path) {
- popup_centered(Size2(600,500));
+ popup_centered(Size2(600,500)*EDSCALE);
if (p_path!="") {
@@ -601,6 +601,13 @@ public:
}
}
+
+ void set_source_and_dest(const String& p_font,const String& p_dest) {
+ source->get_line_edit()->set_text(p_font);
+ dest->get_line_edit()->set_text(p_dest);
+ _prop_changed();
+ }
+
EditorFontImportDialog(EditorFontImportPlugin *p_plugin) {
plugin=p_plugin;
VBoxContainer *vbc = memnew( VBoxContainer );
@@ -657,14 +664,14 @@ public:
testhb->add_child(test_color);
vbl->add_spacer();
- vbl->add_margin_child(TTR("Test: "),testhb);
+ vbl->add_margin_child(TTR("Test:")+" ",testhb);
/*
HBoxContainer *upd_hb = memnew( HBoxContainer );
// vbl->add_child(upd_hb);
upd_hb->add_spacer();
Button *update = memnew( Button);
upd_hb->add_child(update);
- update->set_text(TTR("Update"));
+ update->set_text("Update");
update->connect("pressed",this,"_update");
*/
options = memnew( _EditorFontImportOptions );
@@ -887,7 +894,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (src_path.extension().to_lower()=="fnt") {
if (ResourceLoader::load(src_path).is_valid()) {
- EditorNode::get_singleton()->show_warning(TTR("Path: ")+src_path+"\nIs a Godot font file, please supply a BMFont type file instead.");
+ EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("This file is already a Godot font file, please supply a BMFont type file instead."));
return Ref<BitmapFont>();
}
@@ -895,7 +902,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
font.instance();
Error err = font->create_from_fnt(src_path);
if (err) {
- EditorNode::get_singleton()->show_warning(TTR("Path: ")+src_path+"\nFailed opening as BMFont file.");
+ EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("Failed opening as BMFont file."));
return Ref<BitmapFont>();
}
@@ -939,7 +946,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if ( error ) {
FT_Done_FreeType( library );
- ERR_EXPLAIN(TTR("Invalid font size. "));
+ ERR_EXPLAIN(TTR("Invalid font size."));
ERR_FAIL_COND_V( error,Ref<BitmapFont>() );
}
@@ -986,7 +993,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if ( !fa ) {
FT_Done_FreeType( library );
- ERR_EXPLAIN(TTR("Invalid font custom source. "));
+ ERR_EXPLAIN(TTR("Invalid font custom source."));
ERR_FAIL_COND_V( !fa,Ref<BitmapFont>() );
}
@@ -1607,7 +1614,7 @@ String EditorFontImportPlugin::get_name() const {
}
String EditorFontImportPlugin::get_visible_name() const{
- return "Font";
+ return TTR("Font");
}
void EditorFontImportPlugin::import_dialog(const String& p_from){
@@ -1629,6 +1636,20 @@ Error EditorFontImportPlugin::import(const String& p_path, const Ref<ResourceImp
}
+void EditorFontImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+ for(int i=0;i<p_drop.size();i++) {
+ String ext = p_drop[i].extension().to_lower();
+ String file = p_drop[i].get_file();
+ if (ext=="ttf" || ext=="otf" || ext=="fnt") {
+
+ import_dialog();
+ dialog->set_source_and_dest(p_drop[i],p_dest_path.plus_file(file.basename()+".fnt"));
+ break;
+ }
+ }
+}
+
EditorFontImportPlugin::EditorFontImportPlugin(EditorNode* p_editor) {
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.h b/tools/editor/io_plugins/editor_font_import_plugin.h
index ce26ef91e2..25914e6f83 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.h
+++ b/tools/editor/io_plugins/editor_font_import_plugin.h
@@ -48,6 +48,7 @@ public:
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ virtual void import_from_drop(const Vector<String>& p_drop,const String& p_dest_path);
EditorFontImportPlugin(EditorNode* p_editor);
diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
index e628bed2dd..c20515f0f3 100644
--- a/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_mesh_import_plugin.cpp
@@ -173,7 +173,7 @@ public:
void popup_import(const String& p_path) {
- popup_centered(Size2(400,400));
+ popup_centered(Size2(400,400)*EDSCALE);
if (p_path!="") {
@@ -207,6 +207,13 @@ public:
return;
}
+ String dst = save_path->get_text();
+ if (dst=="") {
+ error_dialog->set_text(TTR("Save path is empty!"));
+ error_dialog->popup_centered_minsize();
+ return;
+ }
+
for(int i=0;i<meshes.size();i++) {
Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata );
@@ -224,16 +231,9 @@ public:
imd->add_source(EditorImportPlugin::validate_source_path(meshes[i]));
- String dst = save_path->get_text();
- if (dst=="") {
- error_dialog->set_text(TTR("Save path is empty!"));
- error_dialog->popup_centered_minsize();
- return;
- }
-
- dst = dst.plus_file(meshes[i].get_file().basename()+".msh");
+ String file_path = dst.plus_file(meshes[i].get_file().basename()+".msh");
- plugin->import(dst,imd);
+ plugin->import(file_path,imd);
}
hide();
@@ -331,7 +331,7 @@ String EditorMeshImportPlugin::get_name() const {
}
String EditorMeshImportPlugin::get_visible_name() const{
- return "3D Mesh";
+ return TTR("Mesh");
}
void EditorMeshImportPlugin::import_dialog(const String& p_from){
@@ -362,7 +362,7 @@ Error EditorMeshImportPlugin::import(const String& p_path, const Ref<ResourceImp
if (mesh->surface_get_name(i)!="")
name=mesh->surface_get_name(i);
else
- name=TTR("Surface ")+itos(i+1);
+ name=vformat(TTR("Surface %d"),i+1);
name_map[name]=mesh->surface_get_material(i);
}
@@ -498,7 +498,7 @@ Error EditorMeshImportPlugin::import(const String& p_path, const Ref<ResourceImp
surf_tool->index();
mesh = surf_tool->commit(mesh);
if (name=="")
- name=TTR("Surface ")+itos(mesh->get_surface_count()-1);
+ name=vformat(TTR("Surface %d"),mesh->get_surface_count()-1);
mesh->surface_set_name(mesh->get_surface_count()-1,name);
name="";
surf_tool->clear();
@@ -536,9 +536,28 @@ Error EditorMeshImportPlugin::import(const String& p_path, const Ref<ResourceImp
}
+void EditorMeshImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+
+ Vector<String> files;
+ for(int i=0;i<p_drop.size();i++) {
+ String ext = p_drop[i].extension().to_lower();
+ String file = p_drop[i].get_file();
+ if (ext=="obj") {
+
+ files.push_back(p_drop[i]);
+ }
+ }
+
+ if (files.size()) {
+ import_dialog();
+ dialog->_choose_files(files);
+ dialog->_choose_save_dir(p_dest_path);
+ }
+}
+
EditorMeshImportPlugin::EditorMeshImportPlugin(EditorNode* p_editor) {
dialog = memnew( EditorMeshImportDialog(this));
p_editor->get_gui_base()->add_child(dialog);
}
-
diff --git a/tools/editor/io_plugins/editor_mesh_import_plugin.h b/tools/editor/io_plugins/editor_mesh_import_plugin.h
index 014954685d..ed30d69e18 100644
--- a/tools/editor/io_plugins/editor_mesh_import_plugin.h
+++ b/tools/editor/io_plugins/editor_mesh_import_plugin.h
@@ -21,6 +21,7 @@ public:
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ void import_from_drop(const Vector<String>& p_drop, const String &p_dest_path);
EditorMeshImportPlugin(EditorNode* p_editor);
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.cpp b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
index d2939cd556..ac0795f522 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.cpp
@@ -221,7 +221,7 @@ public:
void popup_import(const String& p_path) {
- popup_centered(Size2(400,400));
+ popup_centered(Size2(400,400)*EDSCALE);
if (p_path!="") {
Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(p_path);
@@ -252,7 +252,7 @@ public:
if (samples.size()==0) {
error_dialog->set_text(TTR("No samples to import!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
}
if (save_path->get_text().strip_edges()=="") {
@@ -262,7 +262,7 @@ public:
}
if (!save_path->get_text().begins_with("res://")) {
- error_dialog->set_text(TTR("Target path must be full resource path."));
+ error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
@@ -293,7 +293,7 @@ public:
String dst = save_path->get_text();
if (dst=="") {
error_dialog->set_text(TTR("Save path is empty!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
}
dst = dst.plus_file(samples[i].get_file().basename()+".smp");
@@ -823,6 +823,58 @@ void EditorSampleImportPlugin::_compress_ima_adpcm(const Vector<float>& p_data,D
EditorSampleImportPlugin* EditorSampleImportPlugin::singleton=NULL;
+void EditorSampleImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+
+ Vector<String> files;
+ for(int i=0;i<p_drop.size();i++) {
+ String ext = p_drop[i].extension().to_lower();
+
+ if (ext=="wav") {
+
+ files.push_back(p_drop[i]);
+ }
+ }
+
+ if (files.size()) {
+ import_dialog();
+ dialog->_choose_files(files);
+ dialog->_choose_save_dir(p_dest_path);
+ }
+}
+
+void EditorSampleImportPlugin::reimport_multiple_files(const Vector<String>& p_list) {
+
+ if (p_list.size()==0)
+ return;
+
+ Vector<String> sources;
+ for(int i=0;i<p_list.size();i++) {
+ int idx;
+ EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->find_file(p_list[i],&idx);
+ if (efsd) {
+ for(int j=0;j<efsd->get_source_count(idx);j++) {
+ String file = expand_source_path(efsd->get_source_file(idx,j));
+ if (sources.find(file)==-1) {
+ sources.push_back(file);
+ }
+
+ }
+ }
+ }
+
+ if (sources.size()) {
+
+ dialog->popup_import(p_list[0]);
+ dialog->_choose_files(sources);
+ dialog->_choose_save_dir(p_list[0].get_base_dir());
+ }
+}
+
+bool EditorSampleImportPlugin::can_reimport_multiple_files() const {
+
+ return true;
+}
EditorSampleImportPlugin::EditorSampleImportPlugin(EditorNode* p_editor) {
@@ -865,8 +917,7 @@ Vector<uint8_t> EditorSampleExportPlugin::custom_export(String& p_path,const Ref
}
+
EditorSampleExportPlugin::EditorSampleExportPlugin() {
}
-
-
diff --git a/tools/editor/io_plugins/editor_sample_import_plugin.h b/tools/editor/io_plugins/editor_sample_import_plugin.h
index b31562af76..a2686ebe4f 100644
--- a/tools/editor/io_plugins/editor_sample_import_plugin.h
+++ b/tools/editor/io_plugins/editor_sample_import_plugin.h
@@ -49,6 +49,9 @@ public:
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ void import_from_drop(const Vector<String>& p_drop, const String &p_dest_path);
+ virtual void reimport_multiple_files(const Vector<String>& p_list);
+ virtual bool can_reimport_multiple_files() const;
EditorSampleImportPlugin(EditorNode* p_editor);
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.cpp b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
index 1843fbf612..594d3f5bcd 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.cpp
@@ -41,6 +41,7 @@
#include "scene/3d/physics_body.h"
#include "scene/3d/portal.h"
#include "scene/3d/vehicle_body.h"
+#include "tools/editor/create_dialog.h"
#include "os/os.h"
@@ -95,6 +96,7 @@ class EditorImportAnimationOptions : public VBoxContainer {
Tree *optimization_tree;
Vector<TreeItem*> items;
+
bool updating;
bool validating;
@@ -167,6 +169,7 @@ class EditorSceneImportDialog : public ConfirmationDialog {
EditorFileDialog *script_select;
EditorDirDialog *save_select;
OptionButton *texture_action;
+ CreateDialog *root_type_choose;
ConfirmationDialog *confirm_open;
@@ -178,8 +181,13 @@ class EditorSceneImportDialog : public ConfirmationDialog {
Map<Ref<Mesh>,Ref<Shape> > collision_map;
ConfirmationDialog *error_dialog;
- OptionButton *this_import;
- OptionButton *next_import;
+ Button *root_type;
+ CheckBox *root_default;
+
+
+ void _root_default_pressed();
+ void _root_type_pressed();
+ void _set_root_type();
void _choose_file(const String& p_path);
void _choose_save_file(const String& p_path);
@@ -206,6 +214,11 @@ protected:
static void _bind_methods();
public:
+ void setup_popup(const String& p_from,const String& p_to_path) {
+ _choose_file(p_from);
+ _choose_save_file(p_to_path);
+ }
+
Error import(const String& p_from, const String& p_to, const String& p_preset);
void popup_import(const String& p_from);
EditorSceneImportDialog(EditorNode *p_editor,EditorSceneImportPlugin *p_plugin);
@@ -661,7 +674,7 @@ void EditorSceneImportDialog::_open_and_import() {
if (unsaved) {
- confirm_open->popup_centered_minsize(Size2(300,80));
+ confirm_open->popup_centered_minsize(Size2(300,80)*EDSCALE);
} else {
_import(true);
}
@@ -686,7 +699,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
}
if (!save_path->get_text().begins_with("res://")) {
- error_dialog->set_text(TTR("Target path must be full resource path."));
+ error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
@@ -721,8 +734,8 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (script_path->get_text()!="") {
Ref<Script> scr = ResourceLoader::load(script_path->get_text());
if (!scr.is_valid()) {
- error_dialog->set_text(TTR("Couldn't load Post-Import Script."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Couldn't load post-import script."));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -730,8 +743,8 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
pi->set_script(scr.get_ref_ptr());
if (!pi->get_script_instance()) {
- error_dialog->set_text(TTR("Invalid/Broken Script for Post-Import."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Invalid/broken script for post-import."));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -764,9 +777,10 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
rim->set_option("animation_filters",animation_options->get_filter());
rim->set_option("animation_clips",animation_options->get_clips());
rim->set_option("post_import_script",script_path->get_text());
- rim->set_option("import_this_time",this_import->get_selected());
- rim->set_option("import_next_time",next_import->get_selected());
rim->set_option("reimport",true);
+ if (!root_default->is_pressed()) {
+ rim->set_option("root_type",root_type->get_text());
+ }
List<String> missing;
Error err = plugin->import1(rim,&scene,&missing);
@@ -774,7 +788,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (err || !scene) {
error_dialog->set_text(TTR("Error importing scene."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -799,7 +813,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (err) {
error_dialog->set_text(TTR("Error importing scene."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
if (wip_open)
@@ -816,7 +830,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (err) {
- error_dialog->set_text(TTR("Error importing scene."));
+ error_dialog->set_text("Error importing scene.");
error_dialog->popup_centered(Size2(200,100));
return;
}
@@ -843,7 +857,7 @@ void EditorSceneImportDialog::_import_confirm() {
wip_save_file="";
error_dialog->set_text(TTR("Error importing scene."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -878,7 +892,7 @@ void EditorSceneImportDialog::_browse_script() {
void EditorSceneImportDialog::popup_import(const String &p_from) {
- popup_centered(Size2(750,550));
+ popup_centered(Size2(750,550)*EDSCALE);
if (p_from!="") {
Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(p_from);
if (rimd.is_null())
@@ -909,12 +923,24 @@ void EditorSceneImportDialog::popup_import(const String &p_from) {
if (rimd->has_option("animation_optimizer_max_angle"))
animation_options->set_optimize_max_angle(rimd->get_option("animation_optimizer_max_angle"));
+ if (rimd->has_option("root_type")) {
+ root_default->set_pressed(false);
+ String type = rimd->get_option("root_type");
+ root_type->set_text(type);
+ root_type->set_disabled(false);
+
+ if (has_icon(type,"EditorIcons")) {
+ root_type->set_icon(get_icon(type,"EditorIcons"));
+ } else {
+ root_type->set_icon(get_icon("Object","EditorIcons"));
+ }
+
+ } else {
+ root_default->set_pressed(true);
+ root_type->set_disabled(true);
+ }
script_path->set_text(rimd->get_option("post_import_script"));
- if (rimd->has_option("import_this_time"))
- this_import->select(rimd->get_option("import_this_time"));
- if (rimd->has_option("import_next_time"))
- next_import->select(rimd->get_option("import_next_time"));
save_path->set_text(p_from.get_base_dir());
import_path->set_text(EditorImportPlugin::expand_source_path(rimd->get_source_path(0)));
@@ -931,6 +957,9 @@ void EditorSceneImportDialog::_notification(int p_what) {
List<String> extensions;
file_select->clear_filters();
+ root_type->set_icon(get_icon("Spatial","EditorIcons"));
+ root_type->set_text("Spatial");
+ root_type->set_disabled(true);
for(int i=0;i<plugin->get_importers().size();i++) {
plugin->get_importers()[i]->get_extensions(&extensions);
@@ -981,7 +1010,30 @@ void EditorSceneImportDialog::_dialog_hid() {
wip_rimd=Ref<ResourceImportMetadata>();
}
}
+void EditorSceneImportDialog::_root_default_pressed() {
+
+ root_type->set_disabled(root_default->is_pressed());
+}
+void EditorSceneImportDialog::_root_type_pressed() {
+
+
+ root_type_choose->popup(false);
+}
+
+
+void EditorSceneImportDialog::_set_root_type() {
+
+ String type = root_type_choose->get_selected_type();
+ if (type==String())
+ return;
+ root_type->set_text(type);
+ if (has_icon(type,"EditorIcons")) {
+ root_type->set_icon(get_icon(type,"EditorIcons"));
+ } else {
+ root_type->set_icon(get_icon("Object","EditorIcons"));
+ }
+}
void EditorSceneImportDialog::_bind_methods() {
@@ -996,13 +1048,16 @@ void EditorSceneImportDialog::_bind_methods() {
ObjectTypeDB::bind_method("_dialog_hid",&EditorSceneImportDialog::_dialog_hid);
ObjectTypeDB::bind_method("_import_confirm",&EditorSceneImportDialog::_import_confirm);
ObjectTypeDB::bind_method("_open_and_import",&EditorSceneImportDialog::_open_and_import);
+ ObjectTypeDB::bind_method("_root_default_pressed",&EditorSceneImportDialog::_root_default_pressed);
+ ObjectTypeDB::bind_method("_root_type_pressed",&EditorSceneImportDialog::_root_type_pressed);
+ ObjectTypeDB::bind_method("_set_root_type",&EditorSceneImportDialog::_set_root_type);
+
ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
-
const EditorSceneImportDialog::FlagInfo EditorSceneImportDialog::scene_flag_names[]={
{EditorSceneImportPlugin::SCENE_FLAG_REMOVE_NOIMP,("Actions"),"Remove Nodes (-noimp)",true},
@@ -1162,20 +1217,37 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
error_dialog->get_ok()->set_text(TTR("Accept"));
// error_dialog->get_cancel()->hide();
+
+ HBoxContainer *custom_root_hb = memnew( HBoxContainer );
+ vbc->add_margin_child(TTR("Custom Root Node Type:"),custom_root_hb);
+ root_type = memnew(Button);
+ root_type->set_h_size_flags(SIZE_EXPAND_FILL);
+ root_type->set_text_align(Button::ALIGN_LEFT);
+ root_type->connect("pressed",this,"_root_type_pressed");
+ custom_root_hb->add_child(root_type);
+
+ root_default = memnew(CheckBox);
+ root_default->set_text(TTR("Auto"));
+ root_default->set_pressed(true);
+ root_default->connect("pressed",this,"_root_default_pressed");
+ custom_root_hb->add_child(root_default);
+
+
+ /*
this_import = memnew( OptionButton );
- this_import->add_item(TTR("Overwrite Existing Scene"));
+ this_import->add_item("Overwrite Existing Scene");
this_import->add_item("Overwrite Existing, Keep Materials");
- this_import->add_item(TTR("Keep Existing, Merge with New"));
- this_import->add_item(TTR("Keep Existing, Ignore New"));
- vbc->add_margin_child(TTR("This Time:"),this_import);
+ this_import->add_item("Keep Existing, Merge with New");
+ this_import->add_item("Keep Existing, Ignore New");
+ vbc->add_margin_child("This Time:",this_import);
next_import = memnew( OptionButton );
- next_import->add_item(TTR("Overwrite Existing Scene"));
+ next_import->add_item("Overwrite Existing Scene");
next_import->add_item("Overwrite Existing, Keep Materials");
- next_import->add_item(TTR("Keep Existing, Merge with New"));
- next_import->add_item(TTR("Keep Existing, Ignore New"));
- vbc->add_margin_child(TTR("Next Time:"),next_import);
-
+ next_import->add_item("Keep Existing, Merge with New");
+ next_import->add_item("Keep Existing, Ignore New");
+ vbc->add_margin_child("Next Time:",next_import);
+*/
set_hide_on_ok(false);
GLOBAL_DEF("import/shared_textures","res://");
@@ -1183,6 +1255,7 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
import_hb->add_constant_override("separation",30);
+
VBoxContainer *ovb = memnew( VBoxContainer);
ovb->set_h_size_flags(SIZE_EXPAND_FILL);
import_hb->add_child(ovb);
@@ -1232,6 +1305,10 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
wip_open=false;
//texture_options->set_format(EditorImport::IMAGE_FORMAT_C);
+ root_type_choose = memnew( CreateDialog );
+ add_child(root_type_choose);
+ root_type_choose->set_base_type("Node");
+ root_type_choose->connect("create",this,"_set_root_type");
}
@@ -1247,7 +1324,7 @@ String EditorSceneImportPlugin::get_name() const {
String EditorSceneImportPlugin::get_visible_name() const{
- return "3D Scene";
+ return TTR("Scene");
}
void EditorSceneImportPlugin::import_dialog(const String& p_from){
@@ -1906,397 +1983,7 @@ Node* EditorSceneImportPlugin::_fix_node(Node *p_node,Node *p_root,Map<Ref<Mesh>
}
-void EditorSceneImportPlugin::_merge_existing_node(Node *p_node,Node *p_imported_scene,Set<Ref<Resource> >& checked_resources,Set<Node*> &checked_nodes) {
-
-
- NodePath path = p_node->get_import_path();
-
- if (!path.is_empty() && p_imported_scene->has_node(path)) {
-
- Node *imported_node = p_imported_scene->get_node(path);
-
- if (imported_node->get_type()==p_node->get_type()) {
- //same thing, check what it is
-
- if (p_node->get_type()=="MeshInstance") {
-
- //merge mesh instance, this is a special case!
- MeshInstance *mi_imported=imported_node->cast_to<MeshInstance>();
- MeshInstance *mi_node=p_node->cast_to<MeshInstance>();
-
- Ref<Mesh> mesh_imported = mi_imported->get_mesh();
- Ref<Mesh> mesh_node = mi_node->get_mesh();
-
- if (mesh_node.is_null() && mesh_imported.is_valid()) {
-
- mi_node->set_mesh(mesh_imported);
-
- } else if (mesh_node.is_valid() && mesh_imported.is_valid()) {
-
- if (checked_resources.has(mesh_imported)) {
-
- mi_node->set_mesh(mesh_imported);
- } else {
- //mix up meshes
- //import new geometry but keep materials
- for(int i=0;i<mesh_imported->get_surface_count();i++) {
-
- String name = mesh_imported->surface_get_name(i);
-
- for(int j=0;j<mesh_node->get_surface_count();j++) {
-
- Ref<Material> mat = mesh_node->surface_get_material(j);
- if (mat.is_valid() && mesh_node->surface_get_name(j)==name ) {
-
- mesh_imported->surface_set_material(i,mat);
- break;
- }
- }
- }
- // was imported, do nothing further
- checked_resources.insert(mesh_imported);
- mi_node->set_mesh(mesh_imported);
- }
-
- }
- } else if (p_node->get_type()=="Path") {
- //for paths, overwrite path
- Path *path_imported =imported_node->cast_to<Path>();
- Path *path_node =p_node->cast_to<Path>();
-
- if (path_imported->get_curve().is_valid()) {
-
- path_node->set_curve(path_imported->get_curve());
- }
- } else if (p_node->get_type()=="Portal") {
- //for paths, overwrite path
-
- Portal *portal_imported =imported_node->cast_to<Portal>();
- Portal *portal_node =p_node->cast_to<Portal>();
-
- portal_node->set_shape( portal_imported->get_shape() );
-
- } else if (p_node->get_type()=="Room") {
- //for paths, overwrite path
- Room *room_imported =imported_node->cast_to<Room>();
- Room *room_node =p_node->cast_to<Room>();
-
- room_node->set_room( room_imported->get_room() );
-
- } else if (p_node->get_type()=="Skeleton") {
- //for paths, overwrite path
-
- Skeleton *skeleton_imported =imported_node->cast_to<Skeleton>();
- Skeleton *skeleton_node =p_node->cast_to<Skeleton>();
-
- //use imported bones, obviously
- skeleton_node->clear_bones();
- for(int i=0;i<skeleton_imported->get_bone_count();i++) {
-
- skeleton_node->add_bone(skeleton_imported->get_bone_name(i));
- skeleton_node->set_bone_parent(i,skeleton_imported->get_bone_parent(i));
- skeleton_node->set_bone_rest(i,skeleton_imported->get_bone_rest(i));
- //skeleton_node->set_bone_pose(i,skeleton_imported->get_bone_pose(i)); // not in a scene, will throw errors
- }
- }
- else if (p_node->get_type() == "AnimationPlayer") {
- //for paths, overwrite path
- AnimationPlayer *aplayer_imported = imported_node->cast_to<AnimationPlayer>();
- AnimationPlayer *aplayer_node = p_node->cast_to<AnimationPlayer>();
-
- //use imported bones, obviously
- List<StringName> anims;
- List<StringName> existing_anims;
- aplayer_imported->get_animation_list(&anims);
- aplayer_node->get_animation_list(&existing_anims);
-
- //use imported animations
- for (List<StringName>::Element *N = anims.front(); N; N = N->next()) {
-
- Ref<Animation> candidate = aplayer_imported->get_animation(N->get());
-
- if (aplayer_node->has_animation(N->get())) {
-
- Ref<Animation> found = aplayer_node->get_animation(N->get());
-
- candidate->set_loop(found->has_loop());
- candidate->set_step(found->get_step());
-
- //For each track candidate
- for (int i = 0; i < candidate->get_track_count(); i++) {
-
- NodePath track_path = candidate->track_get_path(i);
- // For each track existing
- for (int x = 0; x < found->get_track_count(); x++) {
-
- NodePath path_to_compare = found->track_get_path(x);
-
- if (track_path.hash() == path_to_compare.hash() && candidate->track_get_type(x) == found->track_get_type(i)) {
-
- //Tracks matches
- if (candidate->track_get_interpolation_type(i) != found->track_get_interpolation_type(x))
- candidate->track_set_interpolation_type(i, found->track_get_interpolation_type(x));
- if (candidate->track_get_type(i) == Animation::TYPE_VALUE && candidate->value_track_is_continuous(i) != found->value_track_is_continuous(x))
- candidate->value_track_set_continuous(i, found->value_track_is_continuous(x));
-
- //Key transitions might have changed, but the animation remained unchanged
- if (candidate->track_get_key_count(i) == found->track_get_key_count(x)) {
- for (int k = 0; k < candidate->track_get_key_count(i); k++) {
-
- if (candidate->track_get_key_transition(i, k) != found->track_get_key_transition(x, k))
- candidate->track_set_key_transition(i, k, found->track_get_key_transition(x, k));
- }
- }
-
- }
-
- }
- }
-
- // Append function callbacks and values
- for (int x = 0; x < found->get_track_count(); x++) {
- if (found->track_get_type(x) == Animation::TYPE_METHOD || found->track_get_type(x) == Animation::TYPE_VALUE)
- candidate->add_track(found->track_get_type(x), candidate->get_track_count());
-
- for (int k = 0; k < found->track_get_key_count(x); k++)
- candidate->track_insert_key(x, found->track_get_key_time(x, k), found->track_get_key_value(x, k), found->track_get_key_transition(x, k));
- }
- }
-
- aplayer_node->add_animation(N->get(), candidate);
- }
-
- } else if (p_node->get_type()=="CollisionShape") {
- //for paths, overwrite path
-
- CollisionShape *collision_imported =imported_node->cast_to<CollisionShape>();
- CollisionShape *collision_node =p_node->cast_to<CollisionShape>();
-
- collision_node->set_shape( collision_imported->get_shape() );
- }
- }
-
- if (p_node->cast_to<Spatial>() && imported_node->cast_to<Spatial>()) {
- //apply transform if changed
- Spatial *snode = p_node->cast_to<Spatial>();
- Spatial *simp = imported_node->cast_to<Spatial>();
-
- if (snode->get_import_transform() == snode->get_transform()) {
- //not moved, apply new
- snode->set_import_transform(simp->get_transform());
- snode->set_transform(simp->get_transform());
- } else if (snode->get_import_transform() == simp->get_import_transform()) {
- //do nothing, nothing changed keep local changes
- } else {
- //changed both, imported and edited, merge
- Transform local_xform = snode->get_import_transform().affine_inverse() * snode->get_transform();
- snode->set_import_transform(simp->get_import_transform());
- snode->set_transform(simp->get_import_transform() * local_xform);
- }
- }
-
- checked_nodes.insert(imported_node);
-
- }
-#if 0
- else {
-
- if (p_node!=p_root && p_existing->has_node(p_root->get_path_to(p_node->get_parent()))) {
-
- Node *parent = p_existing->get_node(p_root->get_path_to(p_node->get_parent()));
- NodePath path = p_root->get_path_to(p_node);
-
- //add it.. because not existing in existing scene
- Object *o = ObjectTypeDB::instance(p_existing->get_type());
- Node *n=NULL;
- if (o)
- n=o->cast_to<Node>();
-
- if (n) {
-
- List<PropertyInfo> pl;
- p_existing->get_property_list(&pl);
- for(List<PropertyInfo>::Element *E=pl.front();E;E=E->next()) {
- if (!(E->get().usage&PROPERTY_USAGE_STORAGE))
- continue;
- n->set( E->get().name, p_existing->get(E->get().name) );
- }
-
- parent->add_child(n);
-
- valid=true;
- }
- }
-
- }
-#endif
-
- for(int i=0;i<p_node->get_child_count();i++) {
- _merge_existing_node(p_node->get_child(i),p_imported_scene,checked_resources,checked_nodes);
- }
-}
-
-
-void EditorSceneImportPlugin::_add_new_nodes(Node *p_node,Node *p_imported,Node *p_imported_scene,Node *p_existing_scene,Set<Node*> &checked_nodes) {
-
-
- for(int i=0;i<p_imported->get_child_count();i++) {
-
-
- Node *imported_node = p_imported->get_child(i);
-
- if (imported_node->get_owner()!=p_imported_scene) {
- // print_line("skipping because not imported at "+String(imported_node->get_name()));
- continue; //end of the road
- }
-
- Vector<StringName> nn;
- nn.push_back(imported_node->get_name());
- NodePath imported_path(nn,false);
- //print_line("check for: "+String(imported_path));
-
- if (!p_node->has_node(imported_path) && !checked_nodes.has(imported_node)) {
- //not there, re-add it
- //add it.. because not existing in existing scene
- Object *o = ObjectTypeDB::instance(imported_node->get_type());
- Node *n=NULL;
- if (o)
- n=o->cast_to<Node>();
-
- //print_line("creating node of same type..");
-
- if (n) {
-
- //print_line("copy props and add");
- List<PropertyInfo> pl;
- imported_node->get_property_list(&pl);
- for(List<PropertyInfo>::Element *E=pl.front();E;E=E->next()) {
- if (!(E->get().usage&PROPERTY_USAGE_STORAGE))
- continue;
- n->set( E->get().name, imported_node->get(E->get().name) );
- }
-
- p_node->add_child(n);
- n->set_owner(p_existing_scene);
- }
-
- } else {
- //print_line("already exists");
- }
-
-
- if (p_node->has_node(imported_path)) {
-
- Node *other_node = p_node->get_node(imported_path);
-
- _add_new_nodes(other_node,imported_node,p_imported_scene,p_existing_scene,checked_nodes);
-
- }
-
- }
-}
-
-
-void EditorSceneImportPlugin::_merge_scenes(Node *p_node,Node *p_imported) {
-
- Set<Ref<Resource> > checked_resources;
- Set<Node*> checked_nodes;
- _merge_existing_node(p_node,p_imported,checked_resources,checked_nodes);
- _add_new_nodes(p_node,p_imported,p_imported,p_node,checked_nodes);
- //add existing.. ?
-}
-
-
-void EditorSceneImportPlugin::_scan_materials(Node*p_base,Node *p_node,Map<String,Ref<Material> > &mesh_materials,Map<String,Ref<Material> >& override_materials) {
-
- if (!p_base && p_node->get_owner()!=p_base)
- return;
- MeshInstance *mi=p_node->cast_to<MeshInstance>();
-
- if (mi) {
- if (mi->get_material_override().is_valid()) {
- String path = p_base->get_path_to(p_node);
- override_materials[path]=mi->get_material_override();
- }
- Ref<Mesh> mesh = mi->get_mesh();
- if (mesh.is_valid()) {
-
- for(int i=0;i<mesh->get_surface_count();i++) {
-
- String name = mesh->get_name()+":"+mesh->surface_get_name(i);
- if (!mesh_materials.has(name)) {
- mesh_materials[name]=mesh->surface_get_material(i);
- }
- }
- }
- }
-
- for(int i=0;i<p_node->get_child_count();i++) {
- _scan_materials(p_base,p_node->get_child(i),mesh_materials,override_materials);
- }
-}
-
-
-void EditorSceneImportPlugin::_apply_materials(Node*p_base,Node *p_node,Map<String,Ref<Material> > &mesh_materials,Map<String,Ref<Material> >& override_materials,Set<Ref<Mesh> >& meshes_processed) {
-
- if (p_node!=p_base && p_node->get_owner()!=p_base)
- return;
-
- MeshInstance *mi=p_node->cast_to<MeshInstance>();
-
- if (mi) {
-
- print_line("is mesh "+String(p_node->get_name()));
- String path = p_base->get_path_to(p_node);
- if (override_materials.has(path)) {
- print_line("is in material overrides");
- mi->set_material_override(override_materials[path]);
- }
-
- Ref<Mesh> mesh = mi->get_mesh();
- if (mesh.is_valid() && !meshes_processed.has(mesh)) {
- print_line("mesh was not processed");
- meshes_processed.insert(mesh);
- for(int i=0;i<mesh->get_surface_count();i++) {
-
- String name = mesh->get_name()+":"+mesh->surface_get_name(i);
- print_line("name for surface "+itos(i)+": "+name);
- if (mesh_materials.has(name)) {
-
- Ref<Material> mat = mesh_materials[name];
- mesh->surface_set_material(i,mat);
- print_line("overriding!");
- }
- }
- }
- }
-
- for(int i=0;i<p_node->get_child_count();i++) {
- _apply_materials(p_base,p_node->get_child(i),mesh_materials,override_materials,meshes_processed);
- }
-}
-
-void EditorSceneImportPlugin::_merge_materials(Node *p_node,Node *p_imported) {
-
- Map<String,Ref<Material> > mesh_materials;
- Map<String,Ref<Material> > override_materials;
-
- _scan_materials(p_node,p_node,mesh_materials,override_materials);
-
- for (Map<String,Ref<Material> >::Element *E=mesh_materials.front();E;E=E->next()) {
- print_line("Mats: "+String(E->key()));
- }
-
- for (Map<String,Ref<Material> >::Element *E=override_materials.front();E;E=E->next()) {
- print_line("Overrides: "+String(E->key()));
- }
-
- Set<Ref<Mesh> > mp;
- _apply_materials(p_imported,p_imported,mesh_materials,override_materials,mp);
-
-
-}
#if 0
@@ -2397,6 +2084,21 @@ Error EditorSceneImportPlugin::import1(const Ref<ResourceImportMetadata>& p_from
return err;
}
+ if (from->has_option("root_type")) {
+ String type = from->get_option("root_type");
+ Object *base = ObjectTypeDB::instance(type);
+ Node *base_node = NULL;
+ if (base)
+ base_node=base->cast_to<Node>();
+
+ if (base_node) {
+
+ scene->replace_by(base_node);
+ memdelete(scene);
+ scene=base_node;
+ }
+ }
+
_tag_import_paths(scene,scene);
*r_node=scene;
@@ -2735,13 +2437,13 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
post_import_script_path = post_import_script_path;
Ref<Script> scr = ResourceLoader::load(post_import_script_path);
if (!scr.is_valid()) {
- EditorNode::add_io_error(TTR("Couldn't load post-import script: '")+post_import_script_path);
+ EditorNode::add_io_error(TTR("Couldn't load post-import script:")+" "+post_import_script_path);
} else {
post_import_script = Ref<EditorScenePostImport>( memnew( EditorScenePostImport ) );
post_import_script->set_script(scr.get_ref_ptr());
if (!post_import_script->get_script_instance()) {
- EditorNode::add_io_error(TTR("Invalid/Broken Script for Post-Import: '")+post_import_script_path);
+ EditorNode::add_io_error(TTR("Invalid/broken script for post-import:")+" "+post_import_script_path);
post_import_script.unref();
}
}
@@ -2751,7 +2453,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
if (post_import_script.is_valid()) {
scene = post_import_script->post_import(scene);
if (!scene) {
- EditorNode::add_io_error(TTR("Error running Post-Import script: '")+post_import_script_path);
+ EditorNode::add_io_error(TTR("Error running post-import script:")+" "+post_import_script_path);
return err;
}
@@ -2780,18 +2482,18 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
String path = texture->get_path();
String fname= path.get_file();
String target_path = Globals::get_singleton()->localize_path(target_res_path.plus_file(fname));
- progress.step(TTR("Import Img: ")+fname,3+(idx)*100/imagemap.size());
+ progress.step(TTR("Import Image:")+" "+fname,3+(idx)*100/imagemap.size());
idx++;
if (path==target_path) {
- EditorNode::add_io_error(TTR("Can't import a file over itself: '")+target_path);
+ EditorNode::add_io_error(TTR("Can't import a file over itself:")+" "+target_path);
continue;
}
if (!target_path.begins_with("res://")) {
- EditorNode::add_io_error(TTR("Couldn't localize path: '")+target_path+"' (already local)");
+ EditorNode::add_io_error(vformat(TTR("Couldn't localize path: %s (already local)"),target_path));
continue;
}
@@ -2839,66 +2541,12 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
}
}
- Error err = EditorTextureImportPlugin::get_singleton(EditorTextureImportPlugin::MODE_TEXTURE_3D)->import(target_path,imd);
+ Error err = EditorTextureImportPlugin::get_singleton()->import(target_path,imd);
}
}
- /// BEFORE SAVING - MERGE
-
-
- if (import_action!=SCENE_UPDATE_REPLACE_WITH_NEW) {
-
-
- progress.step(TTR("Merging.."),103);
-
- FileAccess *fa = FileAccess::create(FileAccess::ACCESS_RESOURCES);
-
- if (fa->file_exists(p_dest_path)) {
-
-
- //try to merge
-
- Ref<PackedScene> s = ResourceLoader::load(p_dest_path);
- if (s.is_valid()) {
-
- Node *existing = s->instance(true);
-
- if (existing) {
-
-
- switch(import_action) {
-
- case SCENE_UPDATE_REPLACE_WITH_NEW: break;
- case SCENE_UPDATE_REPLACE_WITH_NEW_KEEP_MATERIALS: {
-
- _merge_materials(existing,scene);
- memdelete(existing);
-
- } break;
- case SCENE_UPDATE_KEEP_OLD_MERGE_CHANGES: {
-
- _merge_scenes(existing,scene);
- memdelete(scene);
- scene=existing;
-
- } break;
- case SCENE_UPDATE_KEEP_OLD: {
-
- memdelete(scene);
- scene=existing;
- } break;
- }
-
- }
- }
-
- }
-
- memdelete(fa);
- }
-
progress.step(TTR("Saving.."),104);
@@ -2957,6 +2605,30 @@ void EditorSceneImportPlugin::add_importer(const Ref<EditorSceneImporter>& p_imp
importers.push_back(p_importer);
}
+void EditorSceneImportPlugin::import_from_drop(const Vector<String>& p_drop,const String& p_dest_path) {
+
+ List<String> extensions;
+ for(int i=0;i<importers.size();i++) {
+ importers[i]->get_extensions(&extensions);
+ }
+ //bool warn_compatible=false;
+ for(int i=0;i<p_drop.size();i++) {
+
+ String extension = p_drop[i].extension().to_lower();
+
+ for(List<String>::Element *E=extensions.front();E;E=E->next()) {
+
+ if (E->get()==extension) {
+
+ dialog->popup_import(String());
+ dialog->setup_popup(p_drop[i],p_dest_path);
+ return;
+ }
+ }
+ }
+
+}
+
EditorSceneImportPlugin::EditorSceneImportPlugin(EditorNode* p_editor) {
@@ -2975,7 +2647,7 @@ String EditorSceneAnimationImportPlugin::get_name() const {
String EditorSceneAnimationImportPlugin::get_visible_name() const{
- return "3D Scene Animation";
+ return TTR("3D Scene Animation");
}
void EditorSceneAnimationImportPlugin::import_dialog(const String& p_from){
@@ -2990,4 +2662,3 @@ EditorSceneAnimationImportPlugin::EditorSceneAnimationImportPlugin(EditorNode* p
}
-
diff --git a/tools/editor/io_plugins/editor_scene_import_plugin.h b/tools/editor/io_plugins/editor_scene_import_plugin.h
index a1a090de7e..8a2d30f1f6 100644
--- a/tools/editor/io_plugins/editor_scene_import_plugin.h
+++ b/tools/editor/io_plugins/editor_scene_import_plugin.h
@@ -45,6 +45,7 @@
#include "tools/editor/io_plugins/editor_texture_import_plugin.h"
#include "scene/resources/animation.h"
+
class EditorNode;
class EditorSceneImportDialog;
@@ -111,16 +112,8 @@ class EditorSceneImportPlugin : public EditorImportPlugin {
void _create_clips(Node *scene, const Array& p_clips, bool p_bake_all);
void _filter_anim_tracks(Ref<Animation> anim,Set<String> &keep);
void _filter_tracks(Node *scene, const String& p_text);
- void _merge_existing_node(Node *p_node,Node *p_imported_scene,Set<Ref<Resource> >& checked_resources,Set<Node*> &checked_nodes);
-
- void _add_new_nodes(Node *p_node,Node *p_imported,Node *p_imported_scene,Node *p_existing_scene,Set<Node*> &checked_nodes);
void _optimize_animations(Node *scene, float p_max_lin_error,float p_max_ang_error,float p_max_angle);
- void _merge_scenes(Node *p_node, Node *p_imported);
- void _scan_materials(Node*p_base,Node *p_node,Map<String,Ref<Material> > &mesh_materials,Map<String,Ref<Material> >& override_materials);
- void _apply_materials(Node*p_base,Node *p_node,Map<String,Ref<Material> > &mesh_materials,Map<String,Ref<Material> >& override_materials,Set<Ref<Mesh> >& meshes_processed);
- void _merge_materials(Node *p_node,Node *p_imported);
-
void _tag_import_paths(Node *p_scene,Node *p_node);
public:
@@ -150,13 +143,6 @@ public:
SCENE_FLAG_CONVERT_NORMALMAPS_TO_XY=1<<30,
};
- enum SceneUpdate {
- SCENE_UPDATE_REPLACE_WITH_NEW,
- SCENE_UPDATE_REPLACE_WITH_NEW_KEEP_MATERIALS,
- SCENE_UPDATE_KEEP_OLD_MERGE_CHANGES,
- SCENE_UPDATE_KEEP_OLD,
- };
-
virtual String get_name() const;
virtual String get_visible_name() const;
@@ -169,6 +155,8 @@ public:
void add_importer(const Ref<EditorSceneImporter>& p_importer);
const Vector<Ref<EditorSceneImporter> >& get_importers() { return importers; }
+ virtual void import_from_drop(const Vector<String>& p_drop,const String& p_dest_path);
+
EditorSceneImportPlugin(EditorNode* p_editor=NULL);
diff --git a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
index 9cedf1c70a..0c388b91ca 100644
--- a/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
+++ b/tools/editor/io_plugins/editor_scene_importer_fbxconv.cpp
@@ -507,15 +507,15 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) {
if (tex.is_valid() && texture.has("type")) {
String type=texture["type"];
- if (type==TTR("DIFFUSE"))
+ if (type=="DIFFUSE")
mat->set_texture(FixedMaterial::PARAM_DIFFUSE,tex);
- else if (type==TTR("SPECULAR"))
+ else if (type=="SPECULAR")
mat->set_texture(FixedMaterial::PARAM_SPECULAR,tex);
- else if (type==TTR("SHININESS"))
+ else if (type=="SHININESS")
mat->set_texture(FixedMaterial::PARAM_SPECULAR_EXP,tex);
else if (type=="NORMAL")
mat->set_texture(FixedMaterial::PARAM_NORMAL,tex);
- else if (type==TTR("EMISSIVE"))
+ else if (type=="EMISSIVE")
mat->set_texture(FixedMaterial::PARAM_EMISSION,tex);
}
@@ -570,13 +570,13 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
exists[Mesh::ARRAY_COLOR]=true;
ofs[Mesh::ARRAY_COLOR]=stride;
stride+=4;
- } else if (attr==TTR("COLORPACKED")) {
+ } else if (attr=="COLORPACKED") {
stride+=1; //ignore
- } else if (attr==TTR("TANGENT")) {
+ } else if (attr=="TANGENT") {
exists[Mesh::ARRAY_TANGENT]=true;
ofs[Mesh::ARRAY_TANGENT]=stride;
stride+=3;
- } else if (attr==TTR("BINORMAL")) {
+ } else if (attr=="BINORMAL") {
binormal_ofs=stride;
stride+=3;
} else if (attr=="TEXCOORD0") {
@@ -587,10 +587,10 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
exists[Mesh::ARRAY_TEX_UV2]=true;
ofs[Mesh::ARRAY_TEX_UV2]=stride;
stride+=2;
- } else if (attr.begins_with(TTR("TEXCOORD"))) {
+ } else if (attr.begins_with("TEXCOORD")) {
stride+=2;
- } else if (attr.begins_with(TTR("BLENDWEIGHT"))) {
- int idx=attr.replace(TTR("BLENDWEIGHT"),"").to_int();
+ } else if (attr.begins_with("BLENDWEIGHT")) {
+ int idx=attr.replace("BLENDWEIGHT","").to_int();
if (idx==0) {
exists[Mesh::ARRAY_BONES]=true;
ofs[Mesh::ARRAY_BONES]=stride;
@@ -799,13 +799,13 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
if (part.has("type")) {
String type=part["type"];
- if (type==TTR("LINES"))
+ if (type=="LINES")
pt=Mesh::PRIMITIVE_LINES;
- else if (type==TTR("POINTS"))
+ else if (type=="POINTS")
pt=Mesh::PRIMITIVE_POINTS;
- else if (type==TTR("TRIANGLE_STRIP"))
+ else if (type=="TRIANGLE_STRIP")
pt=Mesh::PRIMITIVE_TRIANGLE_STRIP;
- else if (type==TTR("LINE_STRIP"))
+ else if (type=="LINE_STRIP")
pt=Mesh::PRIMITIVE_LINE_STRIP;
}
@@ -1056,7 +1056,7 @@ Error EditorSceneImporterFBXConv::_parse_fbx(State& state,const String& p_path)
}
args.push_back("-o");
- args.push_back(TTR("G3DJ"));
+ args.push_back("G3DJ");
args.push_back(path);
int res;
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.cpp b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
index 713b92b037..31b6333975 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.cpp
@@ -35,6 +35,9 @@
#include "io/md5.h"
#include "io/marshalls.h"
#include "globals.h"
+#include "scene/gui/check_button.h"
+#include "scene/gui/button_group.h"
+#include "scene/gui/margin_container.h"
static const char *flag_names[]={
("Streaming Format"),
@@ -53,17 +56,17 @@ static const char *flag_names[]={
#if 0 // not used
static const char *flag_short_names[]={
- TTR("Stream"),
- TTR("FixBorder"),
- TTR("AlphBit"),
- TTR("ExtComp"),
- TTR("NoMipMap"),
- TTR("Repeat"),
- TTR("Filter"),
- TTR("PMAlpha"),
- TTR("ToLinear"),
- TTR("ToRG"),
- TTR("Anisoropic"),
+ "Stream",
+ "FixBorder",
+ "AlphBit",
+ "ExtComp",
+ "NoMipMap",
+ "Repeat",
+ "Filter",
+ "PMAlpha",
+ "ToLinear",
+ "ToRG",
+ "Anisoropic",
NULL
};
#endif
@@ -164,12 +167,13 @@ void EditorImportTextureOptions::_notification(int p_what) {
void EditorImportTextureOptions::show_2d_notice() {
- notice_for_2d->show();
+ //notice_for_2d->show();
}
EditorImportTextureOptions::EditorImportTextureOptions() {
+ add_constant_override("separation",3);
updating=false;
format = memnew( OptionButton );
@@ -223,12 +227,6 @@ EditorImportTextureOptions::EditorImportTextureOptions() {
add_margin_child(TTR("Texture Options"),flags,true);
- notice_for_2d = memnew( Label );
- notice_for_2d->set_text(TTR("NOTICE: You are not forced to import textures for 2D projects. Just copy your .jpg or .png files to your project, and change export options later. Atlases can be generated on export too."));
- notice_for_2d->set_custom_minimum_size(Size2(0,50));
- notice_for_2d->set_autowrap(true);
- add_child(notice_for_2d);
- notice_for_2d->hide();
}
@@ -242,8 +240,13 @@ class EditorTextureImportDialog : public ConfirmationDialog {
OBJ_TYPE(EditorTextureImportDialog,ConfirmationDialog);
+
+ HBoxContainer *mode_hb;
+ CheckBox *mode_check[EditorTextureImportPlugin::MODE_MAX];
+
EditorImportTextureOptions *texture_options;
+ EditorTextureImportPlugin::Mode mode;
//EditorNode *editor;
LineEdit *import_path;
@@ -255,11 +258,16 @@ class EditorTextureImportDialog : public ConfirmationDialog {
ConfirmationDialog *error_dialog;
CheckButton *crop_source;
SpinBox *size;
- bool atlas;
- bool large;
+
+ MarginContainer *size_mc;
+ Label* size_label;
+
+ Label* source_label;
+ Label *notice_for_2d;
EditorTextureImportPlugin *plugin;
+ void _mode_changed(int p_mode);
void _choose_files(const Vector<String>& p_path);
void _choose_file(const String& p_path);
void _choose_save_dir(const String& p_path);
@@ -274,9 +282,23 @@ protected:
static void _bind_methods();
public:
+
+ void setup_multiple_import_3d(const Vector<String>& p_path,const String& p_dest) {
+
+ _mode_changed(EditorTextureImportPlugin::MODE_TEXTURE_3D);
+ _choose_files(p_path);
+ _choose_save_dir(p_dest);
+ }
+
+ void add_sources_and_dest(const Vector<String>& p_path,const String& p_dest) {
+
+ _choose_files(p_path);
+ _choose_save_dir(p_dest);
+ }
+
Error import(const String& p_from, const String& p_to, const String& p_preset);
void popup_import(const String &p_from=String());
- EditorTextureImportDialog(EditorTextureImportPlugin *p_plugin=NULL,bool p_2d=false,bool p_atlas=false,bool p_large=false);
+ EditorTextureImportDialog(EditorTextureImportPlugin *p_plugin=NULL);
};
@@ -330,7 +352,7 @@ void EditorTextureImportDialog::_import() {
if (!files.size()) {
error_dialog->set_text(TTR("Please specify some files!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -343,24 +365,24 @@ void EditorTextureImportDialog::_import() {
}
if (!save_path->get_text().begins_with("res://")) {
- error_dialog->set_text(TTR("Target path must be full resource path."));
+ error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
- if (!atlas && !large && !DirAccess::exists(save_path->get_text())) {
+ if (mode!=EditorTextureImportPlugin::MODE_ATLAS && mode!=EditorTextureImportPlugin::MODE_LARGE && !DirAccess::exists(save_path->get_text())) {
error_dialog->set_text(TTR("Target path must exist."));
error_dialog->popup_centered_minsize();
return;
}
- if (atlas) { //atlas
+ if (mode==EditorTextureImportPlugin::MODE_ATLAS) { //atlas
if (files.size()==0) {
error_dialog->set_text(TTR("At least one file needed for Atlas."));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -378,21 +400,22 @@ void EditorTextureImportDialog::_import() {
imd->set_option("atlas_size",int(size->get_val()));
imd->set_option("large",false);
imd->set_option("crop",crop_source->is_pressed());
+ imd->set_option("mode",mode);
Error err = plugin->import(dst_file,imd);
if (err) {
- error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
- } else if (large) { //atlas
+ } else if (mode==EditorTextureImportPlugin::MODE_LARGE) { //large
if (files.size()!=1) {
- error_dialog->set_text(TTR("Only one file is required for large texture"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Only one file is required for large texture."));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -410,12 +433,13 @@ void EditorTextureImportDialog::_import() {
imd->set_option("large",true);
imd->set_option("large_cell_size",int(size->get_val()));
imd->set_option("crop",crop_source->is_pressed());
+ imd->set_option("mode",mode);
Error err = plugin->import(dst_file,imd);
if (err) {
- error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -434,12 +458,13 @@ void EditorTextureImportDialog::_import() {
imd->set_option("quality",texture_options->get_quality());
imd->set_option("atlas",false);
imd->set_option("large",false);
+ imd->set_option("mode",mode);
Error err = plugin->import(dst_file,imd);
if (err) {
- error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -456,7 +481,7 @@ void EditorTextureImportDialog::_browse() {
void EditorTextureImportDialog::_browse_target() {
- if (atlas || large) {
+ if (mode==EditorTextureImportPlugin::MODE_ATLAS || mode==EditorTextureImportPlugin::MODE_LARGE) {
save_file_select->popup_centered_ratio();
} else {
save_select->popup_centered_ratio();
@@ -467,12 +492,28 @@ void EditorTextureImportDialog::_browse_target() {
void EditorTextureImportDialog::popup_import(const String& p_from) {
- popup_centered(Size2(400,400));
+ popup_centered(Size2(600,500)*EDSCALE);
if (p_from!="") {
Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(p_from);
ERR_FAIL_COND(!rimd.is_valid());
- if (plugin->get_mode()==EditorTextureImportPlugin::MODE_ATLAS || plugin->get_mode()==EditorTextureImportPlugin::MODE_LARGE)
+ if (rimd->has_option("mode")) {
+ //new imported stuff uses this option
+ _mode_changed(rimd->get_option("mode"));
+ } else {
+ //this one is for compatibility, will have to guess it
+ if (rimd->has_option("atlas") && rimd->get_option("atlas")) {
+ _mode_changed(EditorTextureImportPlugin::MODE_ATLAS);
+ } else if (rimd->has_option("large") && rimd->get_option("large")) {
+ _mode_changed(EditorTextureImportPlugin::MODE_LARGE);
+ } else {
+ //guess by usage of mipmaps..?
+ _mode_changed(EditorTextureImportPlugin::MODE_TEXTURE_2D);
+ }
+
+ }
+
+ if (mode==EditorTextureImportPlugin::MODE_ATLAS || mode==EditorTextureImportPlugin::MODE_LARGE)
save_path->set_text(p_from);
else
save_path->set_text(p_from.get_base_dir());
@@ -499,7 +540,7 @@ void EditorTextureImportDialog::_notification(int p_what) {
List<String> extensions;
ImageLoader::get_recognized_extensions(&extensions);
- // ResourceLoader::get_recognized_extensions_for_type(TTR("PackedTexture"),&extensions);
+ // ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions);
file_select->clear_filters();
for(int i=0;i<extensions.size();i++) {
@@ -518,6 +559,81 @@ Error EditorTextureImportDialog::import(const String& p_from, const String& p_to
return OK;
}
+void EditorTextureImportDialog::_mode_changed(int p_mode) {
+
+ mode = EditorTextureImportPlugin::Mode(p_mode);
+
+ for(int i=0;i<EditorTextureImportPlugin::MODE_MAX;i++) {
+ mode_check[i]->set_pressed(i==mode);
+ }
+
+ if (p_mode==EditorTextureImportPlugin::MODE_ATLAS) {
+
+ size_label->set_text(TTR("Max Texture Size:"));
+ size->set_val(2048);
+ crop_source->show();
+ size_label->show();
+ size->show();
+
+ texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
+ texture_options->set_quality(0.7);
+ texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSY);
+ set_title(TTR("Import Textures for Atlas (2D)"));
+
+ } else {
+ crop_source->hide();
+ }
+
+
+ if (p_mode==EditorTextureImportPlugin::MODE_LARGE) {
+
+ size_label->set_text(TTR("Cell Size:"));
+ size->set_val(256);
+ size_label->show();
+ size->show();
+
+ file_select->set_mode(EditorFileDialog::MODE_OPEN_FILE);
+ save_file_select->add_filter("*.ltex;"+TTR("Large Texture"));
+
+ texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
+ texture_options->set_quality(0.7);
+ texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSLESS);
+ set_title(TTR("Import Large Textures (2D)"));
+ source_label->set_text(TTR("Source Texture"));
+
+ } else {
+ file_select->set_mode(EditorFileDialog::MODE_OPEN_FILES);
+ save_file_select->add_filter("*.tex;"+TTR("Base Atlas Texture"));
+ source_label->set_text(TTR("Source Texture(s)"));
+ }
+
+ if (p_mode==EditorTextureImportPlugin::MODE_TEXTURE_2D) {
+
+ size_label->hide();
+ size->hide();
+
+ texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
+ texture_options->set_quality(0.7);
+ texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSY);
+ notice_for_2d->show();
+ set_title(TTR("Import Textures for 2D"));
+
+ } else {
+ notice_for_2d->hide();
+ }
+
+ if (p_mode==EditorTextureImportPlugin::MODE_TEXTURE_3D) {
+
+ size_label->hide();
+ size->hide();
+ //texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_);
+ //texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS);
+ texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_FILTER|EditorTextureImportPlugin::IMAGE_FLAG_REPEAT);
+ texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_RAM);
+ set_title(TTR("Import Textures for 3D"));
+ }
+}
+
void EditorTextureImportDialog::_bind_methods() {
@@ -527,28 +643,64 @@ void EditorTextureImportDialog::_bind_methods() {
ObjectTypeDB::bind_method("_import",&EditorTextureImportDialog::_import);
ObjectTypeDB::bind_method("_browse",&EditorTextureImportDialog::_browse);
ObjectTypeDB::bind_method("_browse_target",&EditorTextureImportDialog::_browse_target);
+ ObjectTypeDB::bind_method("_mode_changed",&EditorTextureImportDialog::_mode_changed);
// ADD_SIGNAL( MethodInfo("imported",PropertyInfo(Variant::OBJECT,"scene")) );
}
-EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* p_plugin, bool p_2d, bool p_atlas,bool p_large) {
+EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin* p_plugin) {
+
+
+
- atlas=p_atlas;
- large=p_large;
plugin=p_plugin;
set_title(TTR("Import Textures"));
+ mode_hb = memnew( HBoxContainer );
+ add_child(mode_hb);
+ set_child_rect(mode_hb);
+
+ VBoxContainer *vbcg = memnew( VBoxContainer);
+
+
+ mode_hb->add_child(vbcg);
+ mode_hb->add_constant_override("separation",15);
+ ButtonGroup *bg = memnew( ButtonGroup );
+ vbcg->add_margin_child("Import Mode",bg);
+
+ for(int i=0;i<EditorTextureImportPlugin::MODE_MAX;i++) {
+ String mode_name[EditorTextureImportPlugin::MODE_MAX]={
+ TTR("2D Texture"),
+ TTR("3D Texture"),
+ TTR("Atlas Texture"),
+ TTR("Large Texture")
+ };
+
+
+ mode_check[i]=memnew(CheckBox);
+ bg->add_child(mode_check[i]);
+ mode_check[i]->set_text(mode_name[i]);
+ mode_check[i]->connect("pressed",this,"_mode_changed",varray(i));
+ }
VBoxContainer *vbc = memnew(VBoxContainer);
- add_child(vbc);
- set_child_rect(vbc);
+ mode_hb->add_child(vbc);
+ vbc->set_h_size_flags(SIZE_EXPAND_FILL);
+ vbc->add_constant_override("separation",4);
+ notice_for_2d = memnew( Label );
+ notice_for_2d->set_text(TTR("NOTICE: Importing 2D textures is not mandatory. Just copy png/jpg files to the project."));
+ //notice_for_2d->set_custom_minimum_size(Size2(0,50));
+ notice_for_2d->set_autowrap(true);
+ notice_for_2d->hide();
+ vbcg->add_child(notice_for_2d);
+ notice_for_2d->set_v_size_flags(SIZE_EXPAND_FILL);
+ notice_for_2d->set_valign(Label::VALIGN_BOTTOM);
VBoxContainer *source_vb=memnew(VBoxContainer);
- if (large)
- vbc->add_margin_child(TTR("Source Texture:"),source_vb);
- else
- vbc->add_margin_child(TTR("Source Texture(s):"),source_vb);
+ MarginContainer *source_mc = vbc->add_margin_child(TTR("Source Texture(s):"),source_vb);
+
+ source_label = vbc->get_child(source_mc->get_index()-1)->cast_to<Label>();
HBoxContainer *hbc = memnew( HBoxContainer );
source_vb->add_child(hbc);
@@ -560,8 +712,6 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
crop_source->set_pressed(true);
source_vb->add_child(crop_source);
crop_source->set_text(TTR("Crop empty space."));
- if (!p_atlas)
- crop_source->hide();
Button * import_choose = memnew( Button );
@@ -577,13 +727,10 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
size->set_min(128);
size->set_max(16384);
- if (p_atlas) {
- size->set_val(2048);
- vbc->add_margin_child(TTR("Max Texture size:"),size);
- } else {
- size->set_val(256);
- vbc->add_margin_child(TTR("Cell Size:"),size);
- }
+
+ size->set_val(256);
+ size_mc=vbc->add_margin_child(TTR("Cell Size:"),size);
+ size_label=vbc->get_child(size_mc->get_index()-1)->cast_to<Label>();
save_path = memnew( LineEdit );
@@ -599,10 +746,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
file_select = memnew(EditorFileDialog);
file_select->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
add_child(file_select);
- if (!large)
- file_select->set_mode(EditorFileDialog::MODE_OPEN_FILES);
- else
- file_select->set_mode(EditorFileDialog::MODE_OPEN_FILE);
+
file_select->connect("files_selected", this,"_choose_files");
file_select->connect("file_selected", this,"_choose_file");
@@ -611,10 +755,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
add_child(save_file_select);
save_file_select->set_mode(EditorFileDialog::MODE_SAVE_FILE);
save_file_select->clear_filters();
- if (large)
- save_file_select->add_filter("*.ltex;Large Texture");
- else
- save_file_select->add_filter("*.tex;Base Atlas Texture");
+
save_file_select->connect("file_selected", this,"_choose_save_dir");
save_select = memnew( EditorDirDialog );
@@ -641,36 +782,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
vbc->add_child(texture_options);
texture_options->set_v_size_flags(SIZE_EXPAND_FILL);
- if (atlas) {
-
- texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
- texture_options->set_quality(0.7);
- texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSY);
- //texture_options->show_2d_notice();
- set_title(TTR("Import Textures for Atlas (2D)"));
- } else if (large) {
-
- texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
- texture_options->set_quality(0.7);
- texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSLESS);
- texture_options->show_2d_notice();
- set_title(TTR("Import Large Textures (2D)"));
-
- } else if (p_2d) {
-
- texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS|EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_FILTER);
- texture_options->set_quality(0.7);
- texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_DISK_LOSSY);
- texture_options->show_2d_notice();
- set_title(TTR("Import Textures for 2D"));
- } else {
-
- //texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_);
- //texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_NO_MIPMAPS);
- texture_options->set_flags(EditorTextureImportPlugin::IMAGE_FLAG_FIX_BORDER_ALPHA|EditorTextureImportPlugin::IMAGE_FLAG_FILTER|EditorTextureImportPlugin::IMAGE_FLAG_REPEAT);
- texture_options->set_format(EditorTextureImportPlugin::IMAGE_FORMAT_COMPRESS_RAM);
- set_title(TTR("Import Textures for 3D"));
- }
+ _mode_changed(EditorTextureImportPlugin::MODE_TEXTURE_3D);
// GLOBAL_DEF("import/shared_textures","res://");
@@ -686,6 +798,8 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
String EditorTextureImportPlugin::get_name() const {
+ return "texture";
+#if 0 //old names, kept for compatibility reference
switch(mode) {
case MODE_TEXTURE_2D: {
@@ -707,34 +821,14 @@ String EditorTextureImportPlugin::get_name() const {
}
- return "";
+ return "";
+#endif
}
String EditorTextureImportPlugin::get_visible_name() const {
- switch(mode) {
- case MODE_TEXTURE_2D: {
-
- return "2D Texture";
- } break;
- case MODE_TEXTURE_3D: {
-
- return "3D Texture";
-
- } break;
- case MODE_ATLAS: {
-
- return "2D Atlas Texture";
- } break;
- case MODE_LARGE: {
-
- return "2D Large Texture";
- } break;
-
- }
-
- return "";
+ return TTR("Texture");
}
void EditorTextureImportPlugin::import_dialog(const String& p_from) {
@@ -1057,7 +1151,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
err = ResourceSaver::save(p_path,existing);
if (err!=OK) {
- EditorNode::add_io_error(TTR("Couldn't save large texture: ")+p_path);
+ EditorNode::add_io_error(TTR("Couldn't save large texture:")+" "+p_path);
return err;
}
@@ -1072,7 +1166,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
bool alpha=false;
bool crop = from->get_option("crop");
- EditorProgress ep("make_atlas",TTR("Build Atlas For: ")+p_path.get_file(),from->get_source_count()+3);
+ EditorProgress ep("make_atlas",TTR("Build Atlas For:")+" "+p_path.get_file(),from->get_source_count()+3);
print_line("sources: "+itos(from->get_source_count()));
@@ -1081,12 +1175,12 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
String path = EditorImportPlugin::expand_source_path(from->get_source_path(i));
String md5 = FileAccess::get_md5(path);
from->set_source_md5(i,FileAccess::get_md5(path));
- ep.step(TTR("Loading Image: ")+path,i);
+ ep.step(TTR("Loading Image:")+" "+path,i);
print_line("source path: "+path+" md5 "+md5);
Image src;
Error err = ImageLoader::load_image(path,&src);
if (err) {
- EditorNode::add_io_error(TTR("Couldn't load image: ")+path);
+ EditorNode::add_io_error(TTR("Couldn't load image:")+" "+path);
return err;
}
@@ -1176,7 +1270,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
Size2i dst_size;
EditorAtlas::fit(src_sizes,dst_positions,dst_size);
- print_line("size that workeD: "+itos(dst_size.width)+","+itos(dst_size.height));
+ print_line("size that worked: "+itos(dst_size.width)+","+itos(dst_size.height));
ep.step(TTR("Blitting Images"),sources.size()+2);
@@ -1291,7 +1385,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
atlases[i]->set_atlas(texture);
Error err = ResourceSaver::save(apath,atlases[i]);
if (err) {
- EditorNode::add_io_error(TTR("Couldn't save atlas image: ")+apath);
+ EditorNode::add_io_error(TTR("Couldn't save atlas image:")+" "+apath);
return err;
}
//from->set_source_md5(i,FileAccess::get_md5(apath));
@@ -1433,7 +1527,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
Error err = ResourceSaver::save(p_path,texture,save_flags);
if (err!=OK) {
- EditorNode::add_io_error(TTR("Couldn't save converted texture: ")+p_path);
+ EditorNode::add_io_error(TTR("Couldn't save converted texture:")+" "+p_path);
return err;
}
@@ -1626,15 +1720,93 @@ Vector<uint8_t> EditorTextureImportPlugin::custom_export(const String& p_path, c
return ret;
}
+void EditorTextureImportPlugin::import_from_drop(const Vector<String>& p_drop,const String& p_dest_path) {
+
+ Vector<String> valid;
+
+ List<String> valid_extensions;
+ ImageLoader::get_recognized_extensions(&valid_extensions);
+ for(int i=0;i<p_drop.size();i++) {
+
+ String extension=p_drop[i].extension().to_lower();
+
+ for (List<String>::Element *E=valid_extensions.front();E;E=E->next()) {
+
+ if (E->get()==extension) {
+ valid.push_back(p_drop[i]);
+ break;
+ }
+ }
+ }
+
+ if (valid.size()) {
+ dialog->popup_import();
+ dialog->setup_multiple_import_3d(valid,p_dest_path);
+ }
+}
+
+void EditorTextureImportPlugin::reimport_multiple_files(const Vector<String>& p_list) {
+
+ Vector<String> valid;
+
+
+ bool warning=false;
+ for(int i=0;i<p_list.size();i++) {
+
+ Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(p_list[i]);
+ String type = rimd->get_editor();
+ if (type=="texture" || type.begins_with("texture_")) {
+
+ if ((rimd->has_option("atlas") && rimd->get_option("atlas")) || (rimd->has_option("large") && rimd->get_option("large"))) {
+ warning=true;
+ continue;
+ }
+
+ valid.push_back(p_list[i]);
+ }
+ }
+
+ if (valid.size()) {
+
+ dialog->popup_import(valid[0]);
+
+ Vector<String> sources;
+ for(int i=0;i<valid.size();i++) {
+ int idx;
+ EditorFileSystemDirectory *efsd = EditorFileSystem::get_singleton()->find_file(valid[i],&idx);
+ if (efsd) {
+ for(int j=0;j<efsd->get_source_count(idx);j++) {
+ String file = expand_source_path(efsd->get_source_file(idx,j));
+ if (sources.find(file)==-1) {
+ sources.push_back(file);
+ }
+
+ }
+ }
+ }
+
+ if (sources.size()) {
+
+ dialog->add_sources_and_dest(sources,valid[0].get_base_dir());
+ }
+ }
+}
+
+bool EditorTextureImportPlugin::can_reimport_multiple_files() const {
+
+ return true;
+
+}
+
+
-EditorTextureImportPlugin *EditorTextureImportPlugin::singleton[EditorTextureImportPlugin::MODE_MAX]={NULL,NULL,NULL,NULL};
+EditorTextureImportPlugin *EditorTextureImportPlugin::singleton=NULL;
-EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor, Mode p_mode) {
+EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor) {
- singleton[p_mode]=this;
+ singleton=this;
editor=p_editor;
- mode=p_mode;
- dialog = memnew( EditorTextureImportDialog(this,p_mode==MODE_TEXTURE_2D || p_mode==MODE_ATLAS || p_mode==MODE_LARGE,p_mode==MODE_ATLAS,p_mode==MODE_LARGE) );
+ dialog = memnew( EditorTextureImportDialog(this) );
editor->get_gui_base()->add_child(dialog);
}
@@ -1662,7 +1834,7 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor, Mode
} else if (EditorImportExport::get_singleton()->image_get_export_group(p_path)) {
- Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture_2d");
+ Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture");
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
@@ -1676,7 +1848,7 @@ EditorTextureImportPlugin::EditorTextureImportPlugin(EditorNode *p_editor, Mode
String xt = p_path.extension().to_lower();
if (EditorImportExport::get_singleton()->get_image_formats().has(xt)) { //should check for more I guess?
- Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture_2d");
+ Ref<EditorImportPlugin> pl = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture");
if (pl.is_valid()) {
Vector<uint8_t> ce = pl->custom_export(p_path,p_platform);
if (ce.size()) {
diff --git a/tools/editor/io_plugins/editor_texture_import_plugin.h b/tools/editor/io_plugins/editor_texture_import_plugin.h
index cb63ba98c8..5c8abd10a4 100644
--- a/tools/editor/io_plugins/editor_texture_import_plugin.h
+++ b/tools/editor/io_plugins/editor_texture_import_plugin.h
@@ -64,10 +64,10 @@ public:
private:
- Mode mode;
+
EditorNode *editor;
EditorTextureImportDialog *dialog;
- static EditorTextureImportPlugin *singleton[MODE_MAX];
+ static EditorTextureImportPlugin *singleton;
//used by other importers such as mesh
Error _process_texture_data(Ref<ImageTexture> &texture, int format, float quality, int flags,EditorExportPlatform::ImageCompression p_compr,int tex_flags,float shrink);
@@ -75,7 +75,7 @@ private:
public:
- static EditorTextureImportPlugin *get_singleton(Mode p_mode) { return singleton[p_mode]; }
+ static EditorTextureImportPlugin *get_singleton() { return singleton; }
enum ImageFormat {
@@ -100,7 +100,6 @@ public:
IMAGE_FLAG_USE_ANISOTROPY=1024, //convert image to linear
};
- Mode get_mode() const { return mode; }
virtual String get_name() const;
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
@@ -108,8 +107,11 @@ public:
virtual Error import2(const String& p_path, const Ref<ResourceImportMetadata>& p_from,EditorExportPlatform::ImageCompression p_compr, bool p_external=false);
virtual Vector<uint8_t> custom_export(const String& p_path,const Ref<EditorExportPlatform> &p_platform);
+ virtual void import_from_drop(const Vector<String>& p_drop,const String& p_dest_path);
+ virtual void reimport_multiple_files(const Vector<String>& p_list);
+ virtual bool can_reimport_multiple_files() const;
- EditorTextureImportPlugin(EditorNode* p_editor=NULL,Mode p_mode=MODE_TEXTURE_2D);
+ EditorTextureImportPlugin(EditorNode* p_editor=NULL);
};
@@ -134,7 +136,7 @@ class EditorImportTextureOptions : public VBoxContainer {
HSlider *quality;
Tree *flags;
Vector<TreeItem*> items;
- Label *notice_for_2d;
+
bool updating;
diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.cpp b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
index 03abc3a82b..aa36fefdb7 100644
--- a/tools/editor/io_plugins/editor_translation_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_translation_import_plugin.cpp
@@ -65,7 +65,7 @@ public:
if (!f) {
error_dialog->set_text(TTR("Invalid source!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -76,7 +76,7 @@ public:
if (csvh.size()<2) {
error_dialog->set_text(TTR("Invalid translation source!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
return;
}
@@ -171,7 +171,7 @@ public:
void popup_import(const String& p_from) {
- popup_centered(Size2(400,400));
+ popup_centered(Size2(400,400)*EDSCALE);
if (p_from!="") {
@@ -232,12 +232,12 @@ public:
if (items.size()==0) {
error_dialog->set_text(TTR("No items to import!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
}
if (!save_path->get_text().begins_with("res://")) {
- error_dialog->set_text(TTR("No target path!!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("No target path!"));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
}
EditorProgress progress("import_xl",TTR("Import Translations"),items.size());
@@ -258,8 +258,8 @@ public:
String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+"."+locale+".xl");
Error err = plugin->import(savefile,imd);
if (err!=OK) {
- error_dialog->set_text(TTR("Couldnt import!"));
- error_dialog->popup_centered(Size2(200,100));
+ error_dialog->set_text(TTR("Couldn't import!"));
+ error_dialog->popup_centered(Size2(200,100)*EDSCALE);
} else if (add_to_project->is_pressed()) {
ProjectSettings::get_singleton()->add_translation(savefile);
@@ -387,13 +387,33 @@ String EditorTranslationImportPlugin::get_name() const {
}
String EditorTranslationImportPlugin::get_visible_name() const {
- return "Translation";
+ return TTR("Translation");
}
void EditorTranslationImportPlugin::import_dialog(const String& p_from) {
dialog->popup_import(p_from);
}
+
+
+void EditorTranslationImportPlugin::import_from_drop(const Vector<String>& p_drop, const String &p_dest_path) {
+
+
+ for(int i=0;i<p_drop.size();i++) {
+ String ext = p_drop[i].extension().to_lower();
+
+ if (ext=="csv") {
+
+ import_dialog();
+ dialog->_choose_file(p_drop[i]);
+ dialog->_choose_save_dir(p_dest_path);
+ break;
+ }
+ }
+
+
+}
+
Error EditorTranslationImportPlugin::import(const String& p_path, const Ref<ResourceImportMetadata>& p_from) {
Ref<ResourceImportMetadata> from = p_from;
diff --git a/tools/editor/io_plugins/editor_translation_import_plugin.h b/tools/editor/io_plugins/editor_translation_import_plugin.h
index cadcdc03b3..532f2cedcc 100644
--- a/tools/editor/io_plugins/editor_translation_import_plugin.h
+++ b/tools/editor/io_plugins/editor_translation_import_plugin.h
@@ -46,6 +46,7 @@ public:
virtual String get_visible_name() const;
virtual void import_dialog(const String& p_from="");
virtual Error import(const String& p_path, const Ref<ResourceImportMetadata>& p_from);
+ void import_from_drop(const Vector<String>& p_drop, const String &p_dest_path);
EditorTranslationImportPlugin(EditorNode* p_editor);
diff --git a/tools/editor/multi_node_edit.cpp b/tools/editor/multi_node_edit.cpp
index 54697d41ab..b5bae82ae0 100644
--- a/tools/editor/multi_node_edit.cpp
+++ b/tools/editor/multi_node_edit.cpp
@@ -9,7 +9,7 @@ bool MultiNodeEdit::_set(const StringName& p_name, const Variant& p_value){
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
- ur->create_action(TTR("MultiNode Set ")+String(p_name));
+ ur->create_action(TTR("MultiNode Set")+" "+String(p_name));
for (const List<NodePath>::Element *E=nodes.front();E;E=E->next()) {
if (!es->has_node(E->get()))
diff --git a/tools/editor/node_dock.cpp b/tools/editor/node_dock.cpp
new file mode 100644
index 0000000000..fb5a50e633
--- /dev/null
+++ b/tools/editor/node_dock.cpp
@@ -0,0 +1,104 @@
+#include "node_dock.h"
+#include "editor_node.h"
+
+void NodeDock::show_groups() {
+
+ groups_button->set_pressed(true);
+ connections_button->set_pressed(false);
+ groups->show();
+ connections->hide();
+}
+
+void NodeDock::show_connections(){
+
+ groups_button->set_pressed(false);
+ connections_button->set_pressed(true);
+ groups->hide();
+ connections->show();
+}
+
+
+void NodeDock::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("show_groups"),&NodeDock::show_groups);
+ ObjectTypeDB::bind_method(_MD("show_connections"),&NodeDock::show_connections);
+}
+
+void NodeDock::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_ENTER_TREE) {
+ connections_button->set_icon(get_icon("Connect","EditorIcons"));
+ groups_button->set_icon(get_icon("Groups","EditorIcons"));
+ }
+}
+
+NodeDock *NodeDock::singleton=NULL;
+
+void NodeDock::set_node(Node* p_node) {
+
+ connections->set_node(p_node);
+ groups->set_current(p_node);
+
+ if (p_node) {
+ if (connections_button->is_pressed())
+ connections->show();
+ else
+ groups->show();
+
+ mode_hb->show();
+ select_a_node->hide();
+ } else {
+ connections->hide();
+ groups->hide();
+ mode_hb->hide();
+ select_a_node->show();
+ }
+}
+
+NodeDock::NodeDock()
+{
+ singleton=this;
+
+ set_name(TTR("Node"));
+ mode_hb = memnew( HBoxContainer );
+ add_child(mode_hb);
+ mode_hb->hide();
+
+
+ connections_button = memnew( ToolButton );
+ connections_button->set_text(TTR("Signals"));
+ connections_button->set_toggle_mode(true);
+ connections_button->set_pressed(true);
+ connections_button->set_h_size_flags(SIZE_EXPAND_FILL);
+ mode_hb->add_child(connections_button);
+ connections_button->connect("pressed",this,"show_connections");
+
+ groups_button = memnew( ToolButton );
+ groups_button->set_text(TTR("Groups"));
+ groups_button->set_toggle_mode(true);
+ groups_button->set_pressed(false);
+ groups_button->set_h_size_flags(SIZE_EXPAND_FILL);
+ mode_hb->add_child(groups_button);
+ groups_button->connect("pressed",this,"show_groups");
+
+ connections = memnew( ConnectionsDock(EditorNode::get_singleton()) );
+ connections->set_undoredo(EditorNode::get_singleton()->get_undo_redo());
+ add_child(connections);
+ connections->set_v_size_flags(SIZE_EXPAND_FILL);
+ connections->hide();
+
+ groups = memnew( GroupsEditor );
+ groups->set_undo_redo(EditorNode::get_singleton()->get_undo_redo());
+ add_child(groups);
+ groups->set_v_size_flags(SIZE_EXPAND_FILL);
+ groups->hide();
+
+ select_a_node = memnew( Label );
+ select_a_node->set_text(TTR("Select a Node to edit Signals and Groups."));
+ select_a_node->set_v_size_flags(SIZE_EXPAND_FILL);
+ select_a_node->set_valign(Label::VALIGN_CENTER);
+ select_a_node->set_align(Label::ALIGN_CENTER);
+ select_a_node->set_autowrap(true);
+ add_child(select_a_node);
+
+}
diff --git a/tools/editor/node_dock.h b/tools/editor/node_dock.h
new file mode 100644
index 0000000000..02312b90b5
--- /dev/null
+++ b/tools/editor/node_dock.h
@@ -0,0 +1,38 @@
+#ifndef NODE_DOCK_H
+#define NODE_DOCK_H
+
+#include "connections_dialog.h"
+#include "groups_editor.h"
+
+class NodeDock : public VBoxContainer {
+
+ OBJ_TYPE(NodeDock,VBoxContainer);
+
+ ToolButton *connections_button;
+ ToolButton *groups_button;
+
+ ConnectionsDock *connections;
+ GroupsEditor *groups;
+
+ HBoxContainer *mode_hb;
+
+ Label* select_a_node;
+
+protected:
+
+ static void _bind_methods();
+ void _notification(int p_what);
+
+public:
+
+ static NodeDock *singleton;
+
+ void set_node(Node* p_node);
+
+ void show_groups();
+ void show_connections();
+
+ NodeDock();
+};
+
+#endif // NODE_DOCK_H
diff --git a/tools/editor/plugins/animation_player_editor_plugin.cpp b/tools/editor/plugins/animation_player_editor_plugin.cpp
index 77bd5d0fef..4bbcb396af 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_player_editor_plugin.cpp
@@ -496,7 +496,7 @@ void AnimationPlayerEditor::_animation_name_edited() {
}
if (player->has_animation(new_name)) {
- error_dialog->set_text(TTR("ERROR: Animation Name Already Exists!"));
+ error_dialog->set_text(TTR("ERROR: Animation name already exists!"));
error_dialog->popup_centered_minsize();
return;
}
@@ -1022,7 +1022,7 @@ void AnimationPlayerEditor::_editor_store() {
return; //already there
- undo_redo->create_action(TTR("Store anim in editor"));
+ undo_redo->create_action("Store anim in editor");
undo_redo->add_do_method(key_editor,"set_animation",anim);
undo_redo->add_undo_method(key_editor,"remove_animation",anim);
undo_redo->commit_action();
@@ -1044,7 +1044,7 @@ void AnimationPlayerEditor::_editor_load(){
String base=anim->get_name();
bool noname=false;
if (base=="") {
- base=TTR("New Anim");
+ base="New Anim";
noname=true;
}
@@ -1063,7 +1063,7 @@ void AnimationPlayerEditor::_editor_load(){
if (noname)
anim->set_name(base);
- undo_redo->create_action(TTR("Add Animation From Editor"));
+ undo_redo->create_action("Add Animation From Editor");
undo_redo->add_do_method(player,"add_animation",base,anim);
undo_redo->add_undo_method(player,"remove_animation",base);
undo_redo->add_do_method(this,"_animation_player_changed",player);
@@ -1298,7 +1298,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
Label * l;
/*l= memnew( Label );
- l->set_text(TTR("Animation Player:"));
+ l->set_text("Animation Player:");
add_child(l);*/
HBoxContainer *hb = memnew( HBoxContainer );
@@ -1306,11 +1306,11 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
play_bw_from = memnew( ToolButton );
- play_bw_from->set_tooltip(TTR("Play backwards selected animation from current pos. (A)"));
+ play_bw_from->set_tooltip(TTR("Play selected animation backwards from current pos. (A)"));
hb->add_child(play_bw_from);
play_bw = memnew( ToolButton );
- play_bw->set_tooltip(TTR("Play backwards selected animation from end. (Shift+A)"));
+ play_bw->set_tooltip(TTR("Play selected animation backwards from end. (Shift+A)"));
hb->add_child(play_bw);
stop = memnew( ToolButton );
@@ -1391,7 +1391,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
autoplay = memnew( ToolButton );
hb->add_child(autoplay);
- autoplay->set_tooltip(TTR("Autoplay On Load"));
+ autoplay->set_tooltip(TTR("Autoplay on Load"));
@@ -1405,7 +1405,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
tool_anim->get_popup()->add_item(TTR("Copy Animation"),TOOL_COPY_ANIM);
tool_anim->get_popup()->add_item(TTR("Paste Animation"),TOOL_PASTE_ANIM);
//tool_anim->get_popup()->add_separator();
- //tool_anim->get_popup()->add_item(TTR("Edit Anim Resource"),TOOL_PASTE_ANIM);
+ //tool_anim->get_popup()->add_item("Edit Anim Resource",TOOL_PASTE_ANIM);
hb->add_child(tool_anim);
nodename = memnew( Button );
@@ -1444,7 +1444,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
error_dialog = memnew( ConfirmationDialog );
error_dialog->get_ok()->set_text(TTR("Close"));
- //error_dialog->get_cancel()->set_text(TTR("Close"));
+ //error_dialog->get_cancel()->set_text("Close");
error_dialog->set_text(TTR("Error!"));
add_child(error_dialog);
@@ -1459,7 +1459,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
blend_editor.dialog->set_child_rect(blend_vb);
blend_editor.tree = memnew( Tree );
blend_editor.tree->set_columns(2);
- blend_vb->add_margin_child(TTR("Blend Times: "),blend_editor.tree,true);
+ blend_vb->add_margin_child(TTR("Blend Times:"),blend_editor.tree,true);
blend_editor.next = memnew( OptionButton );
blend_vb->add_margin_child(TTR("Next (Auto Queue):"),blend_editor.next);
blend_editor.dialog->set_title(TTR("Cross-Animation Blend Times"));
@@ -1544,7 +1544,7 @@ AnimationPlayerEditorPlugin::AnimationPlayerEditorPlugin(EditorNode *p_node) {
anim_editor = memnew( AnimationPlayerEditor(editor) );
anim_editor->set_undo_redo(editor->get_undo_redo());
- editor->add_bottom_panel_item("Animation",anim_editor);
+ editor->add_bottom_panel_item(TTR("Animation"),anim_editor);
/*
editor->get_viewport()->add_child(anim_editor);
anim_editor->set_area_as_parent_rect();
@@ -1562,5 +1562,3 @@ AnimationPlayerEditorPlugin::AnimationPlayerEditorPlugin(EditorNode *p_node) {
AnimationPlayerEditorPlugin::~AnimationPlayerEditorPlugin()
{
}
-
-
diff --git a/tools/editor/plugins/animation_player_editor_plugin.h b/tools/editor/plugins/animation_player_editor_plugin.h
index 9583f3e663..3f3cda25b2 100644
--- a/tools/editor/plugins/animation_player_editor_plugin.h
+++ b/tools/editor/plugins/animation_player_editor_plugin.h
@@ -203,7 +203,7 @@ public:
virtual Dictionary get_state() const { return anim_editor->get_state(); }
virtual void set_state(const Dictionary& p_state) { anim_editor->set_state(p_state); }
- virtual String get_name() const { return TTR("Anim"); }
+ virtual String get_name() const { return "Anim"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.cpp b/tools/editor/plugins/animation_tree_editor_plugin.cpp
index dc857bfacb..a381ec4678 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.cpp
+++ b/tools/editor/plugins/animation_tree_editor_plugin.cpp
@@ -990,12 +990,12 @@ void AnimationTreeEditor::_notification(int p_what) {
case AnimationTreePlayer::CONNECT_OK: {
Ref<Font> f = get_font("font","Label");
- f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation Tree is Valid."),Color(0,1,0.6,0.8));
+ f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation tree is valid."),Color(0,1,0.6,0.8));
} break;
default: {
Ref<Font> f = get_font("font","Label");
- f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation Tree is Invalid."),Color(1,0.6,0.0,0.8));
+ f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation tree is invalid."),Color(1,0.6,0.0,0.8));
} break;
}
@@ -1369,7 +1369,7 @@ AnimationTreeEditor::AnimationTreeEditor() {
p->add_item(TTR("TimeSeek Node"),AnimationTreePlayer::NODE_TIMESEEK);
p->add_item(TTR("Transition Node"),AnimationTreePlayer::NODE_TRANSITION);
p->add_separator();
- p->add_item(TTR("Import Animations..."), MENU_IMPORT_ANIMATIONS); // wtf
+ p->add_item(TTR("Import Animations.."), MENU_IMPORT_ANIMATIONS); // wtf
p->add_separator();
p->add_item(TTR("Clear"),MENU_GRAPH_CLEAR);
@@ -1524,7 +1524,7 @@ AnimationTreeEditorPlugin::AnimationTreeEditorPlugin(EditorNode *p_node) {
anim_tree_editor = memnew( AnimationTreeEditor );
anim_tree_editor->set_custom_minimum_size(Size2(0,300));
- button=editor->add_bottom_panel_item(TTR("AnimationTree"),anim_tree_editor);
+ button=editor->add_bottom_panel_item("AnimationTree",anim_tree_editor);
button->hide();
diff --git a/tools/editor/plugins/animation_tree_editor_plugin.h b/tools/editor/plugins/animation_tree_editor_plugin.h
index 989a6b0b04..4884a22d90 100644
--- a/tools/editor/plugins/animation_tree_editor_plugin.h
+++ b/tools/editor/plugins/animation_tree_editor_plugin.h
@@ -180,7 +180,7 @@ class AnimationTreeEditorPlugin : public EditorPlugin {
public:
- virtual String get_name() const { return TTR("AnimTree"); }
+ virtual String get_name() const { return "AnimTree"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
diff --git a/tools/editor/plugins/baked_light_baker.cpp b/tools/editor/plugins/baked_light_baker.cpp
index c7ae98e919..b6bb774364 100644
--- a/tools/editor/plugins/baked_light_baker.cpp
+++ b/tools/editor/plugins/baked_light_baker.cpp
@@ -728,14 +728,14 @@ void BakedLightBaker::_make_octree() {
for(int i=0;i<8;i++)
root->children[i]=0;
- EditorProgress ep("bake_octree",TTR("Parsing ")+itos(triangles.size())+" Triangles:",triangles.size());
+ EditorProgress ep("bake_octree",vformat(TTR("Parsing %d Triangles:"), triangles.size()),triangles.size());
for(int i=0;i<triangles.size();i++) {
_octree_insert(0,&triangles[i],octree_depth-1);
if ((i%1000)==0) {
- ep.step(TTR("Triangle# ")+itos(i),i);
+ ep.step(TTR("Triangle #")+itos(i),i);
}
}
diff --git a/tools/editor/plugins/canvas_item_editor_plugin.cpp b/tools/editor/plugins/canvas_item_editor_plugin.cpp
index 0213dbda59..0cbc867b47 100644
--- a/tools/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/tools/editor/plugins/canvas_item_editor_plugin.cpp
@@ -1906,7 +1906,7 @@ void CanvasItemEditor::_viewport_draw() {
if (h_scroll->is_visible())
size.height-=h_scroll->get_size().height;
- get_stylebox(TTR("EditorFocus"),"EditorStyles")->draw(ci,Rect2(Point2(),size));
+ get_stylebox("EditorFocus","EditorStyles")->draw(ci,Rect2(Point2(),size));
}
Ref<Texture> lock = get_icon("Lock","EditorIcons");
@@ -2229,7 +2229,7 @@ void CanvasItemEditor::_notification(int p_what) {
key_insert_button->set_icon(get_icon("Key","EditorIcons"));
- //anchor_menu->add_icon_override(TTR("Align Top Left"));
+ //anchor_menu->add_icon_override("Align Top Left");
anchor_menu->set_icon(get_icon("Anchor","EditorIcons"));
PopupMenu *p=anchor_menu->get_popup();
@@ -3147,7 +3147,7 @@ void CanvasItemEditor::end_drag() {
if (undo_redo) {
- undo_redo->create_action(TTR("Edit CanvasItem"));
+ undo_redo->create_action("Edit CanvasItem");
for(CanvasItemMap::Element *E=canvas_items.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key();
Variant state=canvas_item->edit_get_state();
@@ -3285,7 +3285,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(select_button);
select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_SELECT));
select_button->set_pressed(true);
- select_button->set_tooltip("Select Mode (Q)\n"+keycode_get_string(KEY_MASK_CMD)+"Drag: Rotate\nAlt+Drag: Move\nPress 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).\nAlt+RMB: Depth list selection");
+ select_button->set_tooltip(TTR("Select Mode (Q)")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Drag: Rotate")+"\n"+TTR("Alt+Drag: Move")+"\n"+TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).")+"\n"+TTR("Alt+RMB: Depth list selection"));
move_button = memnew( ToolButton );
@@ -3306,13 +3306,13 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
list_select_button->set_toggle_mode(true);
hb->add_child(list_select_button);
list_select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_LIST_SELECT));
- list_select_button->set_tooltip("Show a list of all objects at the position clicked\n(same as Alt+RMB in selet mode).");
+ list_select_button->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode)."));
pivot_button = memnew( ToolButton );
pivot_button->set_toggle_mode(true);
hb->add_child(pivot_button);
pivot_button->connect("pressed",this,"_tool_select",make_binds(TOOL_EDIT_PIVOT));
- pivot_button->set_tooltip(TTR("Click to change object's rotation pivot"));
+ pivot_button->set_tooltip(TTR("Click to change object's rotation pivot."));
pan_button = memnew( ToolButton );
pan_button->set_toggle_mode(true);
@@ -3326,7 +3326,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(lock_button);
lock_button->connect("pressed",this,"_popup_callback",varray(LOCK_SELECTED));
- lock_button->set_tooltip("Lock the selected object in-place (can't be moved).");
+ lock_button->set_tooltip(TTR("Lock the selected object in place (can't be moved)."));
unlock_button = memnew( ToolButton );
hb->add_child(unlock_button);
@@ -3336,12 +3336,12 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
group_button = memnew( ToolButton );
hb->add_child(group_button);
group_button->connect("pressed",this,"_popup_callback",varray(GROUP_SELECTED));
- group_button->set_tooltip("Makes sure the object's' children are not selectable.");
+ group_button->set_tooltip(TTR("Makes sure the object's children are not selectable."));
ungroup_button = memnew( ToolButton );
hb->add_child(ungroup_button);
ungroup_button->connect("pressed",this,"_popup_callback",varray(UNGROUP_SELECTED));
- ungroup_button->set_tooltip("Restores the object's' children ability to be selected.");
+ ungroup_button->set_tooltip(TTR("Restores the object's children's ability to be selected."));
hb->add_child(memnew(VSeparator));
@@ -3375,10 +3375,10 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
/*
- p->add_item(TTR("Align Horizontal"),ALIGN_HORIZONTAL);
- p->add_item(TTR("Align Vertical"),ALIGN_VERTICAL);
- p->add_item(TTR("Space Horizontal"),SPACE_HORIZONTAL);
- p->add_item(TTR("Space Vertical"),SPACE_VERTICAL);*/
+ p->add_item("Align Horizontal",ALIGN_HORIZONTAL);
+ p->add_item("Align Vertical",ALIGN_VERTICAL);
+ p->add_item("Space Horizontal",SPACE_HORIZONTAL);
+ p->add_item("Space Vertical",SPACE_VERTICAL);*/
view_menu = memnew( MenuButton );
view_menu->set_text(TTR("View"));
@@ -3436,12 +3436,12 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
key_insert_button = memnew( Button );
key_insert_button->set_focus_mode(FOCUS_NONE);
key_insert_button->connect("pressed",this,"_popup_callback",varray(ANIM_INSERT_KEY));
- key_insert_button->set_tooltip(TTR("Insert Keys (Insert)"));
+ key_insert_button->set_tooltip(TTR("Insert Keys (Ins)"));
animation_hb->add_child(key_insert_button);
animation_menu = memnew( MenuButton );
- animation_menu->set_text("Animation");
+ animation_menu->set_text(TTR("Animation"));
animation_hb->add_child(animation_menu);
animation_menu->get_popup()->connect("item_pressed", this,"_popup_callback");
diff --git a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
index 8abb51159e..14a61d46b5 100644
--- a/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_2d_editor_plugin.cpp
@@ -390,7 +390,7 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
- button_create->set_tooltip(TTR("Create a new polygon from scratch"));
+ button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
@@ -404,8 +404,8 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
diff --git a/tools/editor/plugins/collision_polygon_editor_plugin.cpp b/tools/editor/plugins/collision_polygon_editor_plugin.cpp
index 5cd09f1a93..b18afe7838 100644
--- a/tools/editor/plugins/collision_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/collision_polygon_editor_plugin.cpp
@@ -559,8 +559,8 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
diff --git a/tools/editor/plugins/color_ramp_editor_plugin.cpp b/tools/editor/plugins/color_ramp_editor_plugin.cpp
index 854a0149a5..267f3aa5bd 100644
--- a/tools/editor/plugins/color_ramp_editor_plugin.cpp
+++ b/tools/editor/plugins/color_ramp_editor_plugin.cpp
@@ -6,16 +6,13 @@
#include "spatial_editor_plugin.h"
#include "canvas_item_editor_plugin.h"
-ColorRampEditorPlugin::ColorRampEditorPlugin(EditorNode *p_node, bool p_2d) {
+ColorRampEditorPlugin::ColorRampEditorPlugin(EditorNode *p_node) {
editor=p_node;
ramp_editor = memnew( ColorRampEdit );
- _2d=p_2d;
- if (p_2d)
- add_control_to_container(CONTAINER_CANVAS_EDITOR_BOTTOM,ramp_editor);
- else
- add_control_to_container(CONTAINER_SPATIAL_EDITOR_BOTTOM,ramp_editor);
+
+ add_control_to_container(CONTAINER_PROPERTY_EDITOR_BOTTOM,ramp_editor);
ramp_editor->set_custom_minimum_size(Size2(100, 48));
ramp_editor->hide();
@@ -33,10 +30,8 @@ void ColorRampEditorPlugin::edit(Object *p_object) {
bool ColorRampEditorPlugin::handles(Object *p_object) const {
- if (_2d)
- return p_object->is_type("ColorRamp") && CanvasItemEditor::get_singleton()->is_visible() == true;
- else
- return p_object->is_type("ColorRamp") && SpatialEditor::get_singleton()->is_visible() == true;
+ return p_object->is_type("ColorRamp");
+
}
void ColorRampEditorPlugin::make_visible(bool p_visible) {
diff --git a/tools/editor/plugins/color_ramp_editor_plugin.h b/tools/editor/plugins/color_ramp_editor_plugin.h
index f07dbabeb3..02d691239f 100644
--- a/tools/editor/plugins/color_ramp_editor_plugin.h
+++ b/tools/editor/plugins/color_ramp_editor_plugin.h
@@ -30,7 +30,7 @@ public:
virtual bool handles(Object *p_node) const;
virtual void make_visible(bool p_visible);
- ColorRampEditorPlugin(EditorNode *p_node, bool p_2d);
+ ColorRampEditorPlugin(EditorNode *p_node);
~ColorRampEditorPlugin();
};
diff --git a/tools/editor/plugins/control_editor_plugin.cpp b/tools/editor/plugins/control_editor_plugin.cpp
index 0958343f2c..9dff5e6ce4 100644
--- a/tools/editor/plugins/control_editor_plugin.cpp
+++ b/tools/editor/plugins/control_editor_plugin.cpp
@@ -112,7 +112,7 @@ void ControlEditor::_key_move(const Vector2& p_dir, bool p_snap) {
if (p_snap)
motion*=snap_val->get_text().to_double();
- undo_redo->create_action(TTR("Edit Control"));
+ undo_redo->create_action("Edit Control");
for(ControlMap::Element *E=controls.front();E;E=E->next()) {
Control *control = E->key();
undo_redo->add_do_method(control,"set_pos",control->get_pos()+motion);
@@ -156,7 +156,7 @@ void ControlEditor::_input_event(InputEvent p_event) {
if (undo_redo) {
- undo_redo->create_action(TTR("Edit Control"));
+ undo_redo->create_action("Edit Control");
for(ControlMap::Element *E=controls.front();E;E=E->next()) {
Control *control = E->key();
undo_redo->add_do_method(control,"set_pos",control->get_pos());
@@ -752,17 +752,17 @@ ControlEditor::ControlEditor(EditorNode *p_editor) {
handle_len=10;
popup=memnew( PopupMenu );
- popup->add_check_item(TTR("Use Snap"));
- popup->add_item(TTR("Configure Snap.."));
+ popup->add_check_item("Use Snap");
+ popup->add_item("Configure Snap..");
add_child(popup);
snap_dialog = memnew( ConfirmationDialog );
snap_dialog->get_ok()->hide();
- snap_dialog->get_cancel()->set_text(TTR("Close"));
+ snap_dialog->get_cancel()->set_text("Close");
add_child(snap_dialog);
Label *l = memnew(Label);
- l->set_text(TTR("Snap:"));
+ l->set_text("Snap:");
l->set_pos(Point2(5,5));
snap_dialog->add_child(l);
diff --git a/tools/editor/plugins/control_editor_plugin.h b/tools/editor/plugins/control_editor_plugin.h
index 67db981c0d..6234698ee8 100644
--- a/tools/editor/plugins/control_editor_plugin.h
+++ b/tools/editor/plugins/control_editor_plugin.h
@@ -125,7 +125,7 @@ class ControlEditorPlugin : public EditorPlugin {
public:
- virtual String get_name() const { return TTR("GUI"); }
+ virtual String get_name() const { return "GUI"; }
bool has_main_screen() const { return true; }
virtual void edit(Object *p_object);
virtual bool handles(Object *p_object) const;
diff --git a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
index 788e3c61f1..b6f3db73f7 100644
--- a/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
+++ b/tools/editor/plugins/cube_grid_theme_editor_plugin.cpp
@@ -256,7 +256,7 @@ void MeshLibraryEditor::_menu_cbk(int p_option) {
if (p.begins_with("/MeshLibrary/item") && p.get_slice_count("/")>=3) {
to_erase = p.get_slice("/",3).to_int();
- cd->set_text(TTR("Remove Item ")+itos(to_erase)+"?");
+ cd->set_text(vformat(TTR("Remove item %d?"),to_erase));
cd->popup_centered(Size2(300,60));
}
} break;
diff --git a/tools/editor/plugins/editor_preview_plugins.cpp b/tools/editor/plugins/editor_preview_plugins.cpp
index 12d50cd4b8..300e35f94d 100644
--- a/tools/editor/plugins/editor_preview_plugins.cpp
+++ b/tools/editor/plugins/editor_preview_plugins.cpp
@@ -7,7 +7,7 @@
#include "scene/resources/sample.h"
#include "scene/resources/mesh.h"
#include "scene/resources/bit_mask.h"
-
+#include "tools/editor/editor_scale.h"
bool EditorTexturePreviewPlugin::handles(const String& p_type) const {
return (ObjectTypeDB::is_type(p_type,"ImageTexture") || ObjectTypeDB::is_type(p_type, "AtlasTexture"));
@@ -36,6 +36,7 @@ Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) {
img.clear_mipmaps();
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
if (img.is_compressed()) {
if (img.decompress()!=OK)
return Ref<Texture>();
@@ -111,6 +112,7 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES& p_from) {
Image img(bm->get_size().width,bm->get_size().height,0,Image::FORMAT_GRAYSCALE,data);
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
if (img.is_compressed()) {
if (img.decompress()!=OK)
return Ref<Texture>();
@@ -233,6 +235,7 @@ Ref<Texture> EditorMaterialPreviewPlugin::generate(const RES& p_from) {
VS::get_singleton()->mesh_surface_set_material(sphere,0,RID());
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
img.resize(thumbnail_size,thumbnail_size);
Ref<ImageTexture> ptex = Ref<ImageTexture>( memnew( ImageTexture ));
@@ -401,6 +404,7 @@ Ref<Texture> EditorScriptPreviewPlugin::generate(const RES& p_from) {
int line = 0;
int col=0;
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
Image img(thumbnail_size,thumbnail_size,0,Image::FORMAT_RGBA);
@@ -501,7 +505,7 @@ Ref<Texture> EditorSamplePreviewPlugin::generate(const RES& p_from) {
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
-
+ thumbnail_size*=EDSCALE;
DVector<uint8_t> img;
int w = thumbnail_size;
int h = thumbnail_size;
@@ -815,6 +819,7 @@ Ref<Texture> EditorMeshPreviewPlugin::generate(const RES& p_from) {
VS::get_singleton()->instance_set_base(mesh_instance,RID());
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
img.resize(thumbnail_size,thumbnail_size);
Ref<ImageTexture> ptex = Ref<ImageTexture>( memnew( ImageTexture ));
diff --git a/tools/editor/plugins/item_list_editor_plugin.cpp b/tools/editor/plugins/item_list_editor_plugin.cpp
index 9f47d26492..b711e13193 100644
--- a/tools/editor/plugins/item_list_editor_plugin.cpp
+++ b/tools/editor/plugins/item_list_editor_plugin.cpp
@@ -129,7 +129,7 @@ int ItemListOptionButtonPlugin::get_flags() const {
void ItemListOptionButtonPlugin::add_item() {
- ob->add_item( TTR("Item ")+itos(ob->get_item_count()));
+ ob->add_item( vformat(TTR("Item %d"),ob->get_item_count()));
_change_notify();
}
@@ -171,7 +171,7 @@ int ItemListPopupMenuPlugin::get_flags() const {
void ItemListPopupMenuPlugin::add_item() {
- pp->add_item( TTR("Item ")+itos(pp->get_item_count()));
+ pp->add_item( vformat(TTR("Item %d"),pp->get_item_count()));
_change_notify();
}
diff --git a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
index fe031d1657..bf3b2fa68d 100644
--- a/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/light_occluder_2d_editor_plugin.cpp
@@ -421,13 +421,13 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
- button_create->set_tooltip(TTR("Create a new polygon from scratch"));
+ button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
button_edit->connect("pressed",this,"_menu_option",varray(MODE_EDIT));
button_edit->set_toggle_mode(true);
- button_edit->set_tooltip("Edit existing polygon:\nLMB: Move Point.\nCtrl+LMB: Split Segment.\nRMB: Erase Point.");
+ button_edit->set_tooltip(TTR("Edit existing polygon:")+"\n"+TTR("LMB: Move Point.")+"\n"+TTR("Ctrl+LMB: Split Segment.")+"\n"+TTR("RMB: Erase Point."));
create_poly = memnew( ConfirmationDialog );
add_child(create_poly);
@@ -440,8 +440,8 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
diff --git a/tools/editor/plugins/material_editor_plugin.cpp b/tools/editor/plugins/material_editor_plugin.cpp
new file mode 100644
index 0000000000..f4258836e5
--- /dev/null
+++ b/tools/editor/plugins/material_editor_plugin.cpp
@@ -0,0 +1,381 @@
+#include "material_editor_plugin.h"
+#include "scene/main/viewport.h"
+
+void MaterialEditor::_input_event(InputEvent p_event) {
+
+
+}
+
+void MaterialEditor::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_FIXED_PROCESS) {
+
+ }
+
+
+ if (p_what==NOTIFICATION_READY) {
+
+ //get_scene()->connect("node_removed",this,"_node_removed");
+
+ if (first_enter) {
+ //it's in propertyeditor so.. could be moved around
+
+ light_1_switch->set_normal_texture(get_icon("MaterialPreviewLight1","EditorIcons"));
+ light_1_switch->set_pressed_texture(get_icon("MaterialPreviewLight1Off","EditorIcons"));
+ light_2_switch->set_normal_texture(get_icon("MaterialPreviewLight2","EditorIcons"));
+ light_2_switch->set_pressed_texture(get_icon("MaterialPreviewLight2Off","EditorIcons"));
+
+ sphere_switch->set_normal_texture(get_icon("MaterialPreviewSphereOff","EditorIcons"));
+ sphere_switch->set_pressed_texture(get_icon("MaterialPreviewSphere","EditorIcons"));
+ box_switch->set_normal_texture(get_icon("MaterialPreviewCubeOff","EditorIcons"));
+ box_switch->set_pressed_texture(get_icon("MaterialPreviewCube","EditorIcons"));
+
+ first_enter=false;
+ }
+
+ }
+
+ if (p_what==NOTIFICATION_DRAW) {
+
+
+ Ref<Texture> checkerboard = get_icon("Checkerboard","EditorIcons");
+ Size2 size = get_size();
+
+ draw_texture_rect(checkerboard,Rect2(Point2(),size),true);
+
+ }
+}
+
+
+
+void MaterialEditor::edit(Ref<Material> p_material) {
+
+ material=p_material;
+
+ if (!material.is_null()) {
+ sphere_mesh->surface_set_material(0,material);
+ box_mesh->surface_set_material(0,material);
+ } else {
+
+ hide();
+ }
+
+}
+
+
+void MaterialEditor::_button_pressed(Node* p_button) {
+
+ if (p_button==light_1_switch) {
+ light1->set_enabled(!light_1_switch->is_pressed());
+ }
+
+ if (p_button==light_2_switch) {
+ light2->set_enabled(!light_2_switch->is_pressed());
+ }
+
+ if (p_button==box_switch) {
+ box_instance->show();
+ sphere_instance->hide();
+ box_switch->set_pressed(true);
+ sphere_switch->set_pressed(false);
+ }
+
+ if (p_button==sphere_switch) {
+ box_instance->hide();
+ sphere_instance->show();
+ box_switch->set_pressed(false);
+ sphere_switch->set_pressed(true);
+ }
+
+}
+
+void MaterialEditor::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("_input_event"),&MaterialEditor::_input_event);
+ ObjectTypeDB::bind_method(_MD("_button_pressed"),&MaterialEditor::_button_pressed);
+
+}
+
+MaterialEditor::MaterialEditor() {
+
+ viewport = memnew( Viewport );
+ Ref<World> world;
+ world.instance();
+ viewport->set_world(world); //use own world
+ add_child(viewport);
+ viewport->set_process_input(false);
+
+ camera = memnew( Camera );
+ camera->set_transform(Transform(Matrix3(),Vector3(0,0,3)));
+ camera->set_perspective(45,0.1,10);
+ viewport->add_child(camera);
+
+ light1 = memnew( DirectionalLight );
+ light1->set_transform(Transform().looking_at(Vector3(-1,-1,-1),Vector3(0,1,0)));
+ viewport->add_child(light1);
+
+ light2 = memnew( DirectionalLight );
+ light2->set_transform(Transform().looking_at(Vector3(0,1,0),Vector3(0,0,1)));
+ light2->set_color(Light::COLOR_DIFFUSE,Color(0.7,0.7,0.7));
+ light2->set_color(Light::COLOR_SPECULAR,Color(0.7,0.7,0.7));
+ viewport->add_child(light2);
+
+ sphere_instance = memnew( MeshInstance );
+ viewport->add_child(sphere_instance);
+
+ box_instance = memnew( MeshInstance );
+ viewport->add_child(box_instance);
+
+ Transform box_xform;
+ box_xform.basis.rotate(Vector3(1,0,0),Math::deg2rad(-25));
+ box_xform.basis = box_xform.basis * Matrix3().rotated(Vector3(0,1,0),Math::deg2rad(-25));
+ box_xform.basis.scale(Vector3(0.8,0.8,0.8));
+ box_instance->set_transform(box_xform);
+
+ {
+
+ sphere_mesh.instance();
+
+
+ int lats=32;
+ int lons=32;
+ float radius=1.0;
+
+ DVector<Vector3> vertices;
+ DVector<Vector3> normals;
+ DVector<Vector2> uvs;
+ DVector<float> tangents;
+ Matrix3 tt = Matrix3(Vector3(0,1,0),Math_PI*0.5);
+
+ for(int i = 1; i <= lats; i++) {
+ double lat0 = Math_PI * (-0.5 + (double) (i - 1) / lats);
+ double z0 = Math::sin(lat0);
+ double zr0 = Math::cos(lat0);
+
+ double lat1 = Math_PI * (-0.5 + (double) i / lats);
+ double z1 = Math::sin(lat1);
+ double zr1 = Math::cos(lat1);
+
+ for(int j = lons; j >= 1; j--) {
+
+ double lng0 = 2 * Math_PI * (double) (j - 1) / lons;
+ double x0 = Math::cos(lng0);
+ double y0 = Math::sin(lng0);
+
+ double lng1 = 2 * Math_PI * (double) (j) / lons;
+ double x1 = Math::cos(lng1);
+ double y1 = Math::sin(lng1);
+
+
+ Vector3 v[4]={
+ Vector3(x1 * zr0, z0, y1 *zr0),
+ Vector3(x1 * zr1, z1, y1 *zr1),
+ Vector3(x0 * zr1, z1, y0 *zr1),
+ Vector3(x0 * zr0, z0, y0 *zr0)
+ };
+
+ #define ADD_POINT(m_idx) \
+ normals.push_back(v[m_idx]);\
+ vertices.push_back(v[m_idx]*radius);\
+ { Vector2 uv(Math::atan2(v[m_idx].x,v[m_idx].z),Math::atan2(-v[m_idx].y,v[m_idx].z));\
+ uv/=Math_PI;\
+ uv*=4.0;\
+ uv=uv*0.5+Vector2(0.5,0.5);\
+ uvs.push_back(uv);\
+ }\
+ { Vector3 t = tt.xform(v[m_idx]);\
+ tangents.push_back(t.x);\
+ tangents.push_back(t.y);\
+ tangents.push_back(t.z);\
+ tangents.push_back(1.0);\
+ }
+
+
+
+ ADD_POINT(0);
+ ADD_POINT(1);
+ ADD_POINT(2);
+
+ ADD_POINT(2);
+ ADD_POINT(3);
+ ADD_POINT(0);
+ }
+ }
+
+ Array arr;
+ arr.resize(VS::ARRAY_MAX);
+ arr[VS::ARRAY_VERTEX]=vertices;
+ arr[VS::ARRAY_NORMAL]=normals;
+ arr[VS::ARRAY_TANGENT]=tangents;
+ arr[VS::ARRAY_TEX_UV]=uvs;
+
+ sphere_mesh->add_surface(Mesh::PRIMITIVE_TRIANGLES,arr);
+
+ sphere_instance->set_mesh(sphere_mesh);
+
+ }
+ {
+
+
+ box_mesh.instance();
+
+ DVector<Vector3> vertices;
+ DVector<Vector3> normals;
+ DVector<float> tangents;
+ DVector<Vector3> uvs;
+
+ int vtx_idx=0;
+ #define ADD_VTX(m_idx);\
+ vertices.push_back( face_points[m_idx] );\
+ normals.push_back( normal_points[m_idx] );\
+ tangents.push_back( normal_points[m_idx][1] );\
+ tangents.push_back( normal_points[m_idx][2] );\
+ tangents.push_back( normal_points[m_idx][0] );\
+ tangents.push_back( 1.0 );\
+ uvs.push_back( Vector3(uv_points[m_idx*2+0],uv_points[m_idx*2+1],0) );\
+ vtx_idx++;\
+
+ for (int i=0;i<6;i++) {
+
+
+ Vector3 face_points[4];
+ Vector3 normal_points[4];
+ float uv_points[8]={0,0,0,1,1,1,1,0};
+
+ for (int j=0;j<4;j++) {
+
+ float v[3];
+ v[0]=1.0;
+ v[1]=1-2*((j>>1)&1);
+ v[2]=v[1]*(1-2*(j&1));
+
+ for (int k=0;k<3;k++) {
+
+ if (i<3)
+ face_points[j][(i+k)%3]=v[k]*(i>=3?-1:1);
+ else
+ face_points[3-j][(i+k)%3]=v[k]*(i>=3?-1:1);
+ }
+ normal_points[j]=Vector3();
+ normal_points[j][i%3]=(i>=3?-1:1);
+ }
+
+ //tri 1
+ ADD_VTX(0);
+ ADD_VTX(1);
+ ADD_VTX(2);
+ //tri 2
+ ADD_VTX(2);
+ ADD_VTX(3);
+ ADD_VTX(0);
+
+ }
+
+
+
+ Array d;
+ d.resize(VS::ARRAY_MAX);
+ d[VisualServer::ARRAY_NORMAL]= normals ;
+ d[VisualServer::ARRAY_TANGENT]= tangents ;
+ d[VisualServer::ARRAY_TEX_UV]= uvs ;
+ d[VisualServer::ARRAY_VERTEX]= vertices ;
+
+ DVector<int> indices;
+ indices.resize(vertices.size());
+ for(int i=0;i<vertices.size();i++)
+ indices.set(i,i);
+ d[VisualServer::ARRAY_INDEX]=indices;
+
+ box_mesh->add_surface(Mesh::PRIMITIVE_TRIANGLES,d);
+ box_instance->set_mesh(box_mesh);
+ box_instance->hide();
+
+
+
+ }
+
+ set_custom_minimum_size(Size2(1,150)*EDSCALE);
+
+ HBoxContainer *hb = memnew( HBoxContainer );
+ add_child(hb);
+ hb->set_area_as_parent_rect(2);
+
+ VBoxContainer *vb_shape = memnew( VBoxContainer );
+ hb->add_child(vb_shape);
+
+ sphere_switch = memnew( TextureButton );
+ sphere_switch->set_toggle_mode(true);
+ sphere_switch->set_pressed(true);
+ vb_shape->add_child(sphere_switch);
+ sphere_switch->connect("pressed",this,"_button_pressed",varray(sphere_switch));
+
+ box_switch = memnew( TextureButton );
+ box_switch->set_toggle_mode(true);
+ box_switch->set_pressed(false);
+ vb_shape->add_child(box_switch);
+ box_switch->connect("pressed",this,"_button_pressed",varray(box_switch));
+
+ hb->add_spacer();
+
+ VBoxContainer *vb_light = memnew( VBoxContainer );
+ hb->add_child(vb_light);
+
+ light_1_switch = memnew( TextureButton );
+ light_1_switch->set_toggle_mode(true);
+ vb_light->add_child(light_1_switch);
+ light_1_switch->connect("pressed",this,"_button_pressed",varray(light_1_switch));
+
+ light_2_switch = memnew( TextureButton );
+ light_2_switch->set_toggle_mode(true);
+ vb_light->add_child(light_2_switch);
+ light_2_switch->connect("pressed",this,"_button_pressed",varray(light_2_switch));
+
+ first_enter=true;
+
+}
+
+
+void MaterialEditorPlugin::edit(Object *p_object) {
+
+ Material * s = p_object->cast_to<Material>();
+ if (!s)
+ return;
+
+ material_editor->edit(Ref<Material>(s));
+}
+
+bool MaterialEditorPlugin::handles(Object *p_object) const {
+
+ return p_object->is_type("Material");
+}
+
+void MaterialEditorPlugin::make_visible(bool p_visible) {
+
+ if (p_visible) {
+ material_editor->show();
+// material_editor->set_process(true);
+ } else {
+
+ material_editor->hide();
+// material_editor->set_process(false);
+ }
+
+}
+
+MaterialEditorPlugin::MaterialEditorPlugin(EditorNode *p_node) {
+
+ editor=p_node;
+ material_editor = memnew( MaterialEditor );
+ add_control_to_container(CONTAINER_PROPERTY_EDITOR_BOTTOM,material_editor);
+ material_editor->hide();
+
+
+
+}
+
+
+MaterialEditorPlugin::~MaterialEditorPlugin()
+{
+}
+
+
diff --git a/tools/editor/plugins/material_editor_plugin.h b/tools/editor/plugins/material_editor_plugin.h
new file mode 100644
index 0000000000..49e92493b3
--- /dev/null
+++ b/tools/editor/plugins/material_editor_plugin.h
@@ -0,0 +1,71 @@
+#ifndef MATERIAL_EDITOR_PLUGIN_H
+#define MATERIAL_EDITOR_PLUGIN_H
+
+#include "tools/editor/editor_plugin.h"
+#include "tools/editor/editor_node.h"
+#include "scene/resources/material.h"
+#include "scene/3d/light.h"
+#include "scene/3d/mesh_instance.h"
+#include "scene/3d/camera.h"
+
+
+class MaterialEditor : public Control {
+
+ OBJ_TYPE(MaterialEditor, Control);
+
+
+ Viewport *viewport;
+ MeshInstance *sphere_instance;
+ MeshInstance *box_instance;
+ DirectionalLight *light1;
+ DirectionalLight *light2;
+ Camera *camera;
+
+ Ref<Mesh> sphere_mesh;
+ Ref<Mesh> box_mesh;
+
+ TextureButton *sphere_switch;
+ TextureButton *box_switch;
+
+ TextureButton *light_1_switch;
+ TextureButton *light_2_switch;
+
+
+ Ref<Material> material;
+
+
+ void _button_pressed(Node* p_button);
+ bool first_enter;
+
+protected:
+ void _notification(int p_what);
+ void _input_event(InputEvent p_event);
+ static void _bind_methods();
+public:
+
+ void edit(Ref<Material> p_material);
+ MaterialEditor();
+};
+
+
+class MaterialEditorPlugin : public EditorPlugin {
+
+ OBJ_TYPE( MaterialEditorPlugin, EditorPlugin );
+
+ MaterialEditor *material_editor;
+ EditorNode *editor;
+
+public:
+
+ virtual String get_name() const { return "Material"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ MaterialEditorPlugin(EditorNode *p_node);
+ ~MaterialEditorPlugin();
+
+};
+
+#endif // MATERIAL_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/mesh_editor_plugin.cpp b/tools/editor/plugins/mesh_editor_plugin.cpp
index 8671734c25..51a436e58d 100644
--- a/tools/editor/plugins/mesh_editor_plugin.cpp
+++ b/tools/editor/plugins/mesh_editor_plugin.cpp
@@ -1,300 +1,215 @@
#include "mesh_editor_plugin.h"
-#include "scene/3d/physics_body.h"
-#include "scene/3d/body_shape.h"
-#include "scene/gui/box_container.h"
-#include "scene/3d/navigation_mesh.h"
-#include "spatial_editor_plugin.h"
+void MeshEditor::_input_event(InputEvent p_event) {
-void MeshInstanceEditor::_node_removed(Node *p_node) {
- if(p_node==node) {
- node=NULL;
- options->hide();
- }
+ if (p_event.type==InputEvent::MOUSE_MOTION && p_event.mouse_motion.button_mask&BUTTON_MASK_LEFT) {
+ rot_x-=p_event.mouse_motion.relative_y*0.01;
+ rot_y-=p_event.mouse_motion.relative_x*0.01;
+ if (rot_x<-Math_PI/2)
+ rot_x=-Math_PI/2;
+ else if (rot_x>Math_PI/2) {
+ rot_x=Math_PI/2;
+ }
+ _update_rotation();
+ }
}
+void MeshEditor::_notification(int p_what) {
+ if (p_what==NOTIFICATION_FIXED_PROCESS) {
-void MeshInstanceEditor::edit(MeshInstance *p_mesh) {
-
- node=p_mesh;
-
-}
-
-void MeshInstanceEditor::_menu_option(int p_option) {
-
- Ref<Mesh> mesh = node->get_mesh();
- if (mesh.is_null()) {
- err_dialog->set_text(TTR("Mesh is empty!"));
- err_dialog->popup_centered_minsize();
- return;
}
- switch(p_option) {
- case MENU_OPTION_CREATE_STATIC_TRIMESH_BODY:
- case MENU_OPTION_CREATE_STATIC_CONVEX_BODY: {
-
- bool trimesh_shape = (p_option==MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
-
- EditorSelection *editor_selection = EditorNode::get_singleton()->get_editor_selection();
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
-
- List<Node*> selection = editor_selection->get_selected_node_list();
-
- if (selection.empty()) {
- Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
- if (shape.is_null())
- return;
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- StaticBody *body = memnew( StaticBody );
- body->add_child(cshape);
+ if (p_what==NOTIFICATION_READY) {
- Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+ //get_scene()->connect("node_removed",this,"_node_removed");
- if (trimesh_shape)
- ur->create_action(TTR("Create Static Trimesh Body"));
- else
- ur->create_action(TTR("Create Static Convex Body"));
+ if (first_enter) {
+ //it's in propertyeditor so.. could be moved around
- ur->add_do_method(node,"add_child",body);
- ur->add_do_method(body,"set_owner",owner);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(body);
- ur->add_undo_method(node,"remove_child",body);
- ur->commit_action();
- return;
- }
+ light_1_switch->set_normal_texture(get_icon("MaterialPreviewLight1","EditorIcons"));
+ light_1_switch->set_pressed_texture(get_icon("MaterialPreviewLight1Off","EditorIcons"));
+ light_2_switch->set_normal_texture(get_icon("MaterialPreviewLight2","EditorIcons"));
+ light_2_switch->set_pressed_texture(get_icon("MaterialPreviewLight2Off","EditorIcons"));
+ first_enter=false;
+ }
- if (trimesh_shape)
- ur->create_action(TTR("Create Static Trimesh Body"));
- else
- ur->create_action(TTR("Create Static Convex Body"));
-
- for (List<Node*>::Element *E=selection.front();E;E=E->next()) {
-
- MeshInstance *instance = E->get()->cast_to<MeshInstance>();
- if (!instance)
- continue;
-
- Ref<Mesh> m = instance->get_mesh();
- if (m.is_null())
- continue;
-
- Ref<Shape> shape = trimesh_shape ? m->create_trimesh_shape() : m->create_convex_shape();
- if (shape.is_null())
- continue;
-
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- StaticBody *body = memnew( StaticBody );
- body->add_child(cshape);
-
- Node *owner = instance==get_tree()->get_edited_scene_root() ? instance : instance->get_owner();
-
- ur->add_do_method(instance,"add_child",body);
- ur->add_do_method(body,"set_owner",owner);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(body);
- ur->add_undo_method(instance,"remove_child",body);
- }
-
- ur->commit_action();
-
- } break;
-
- case MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE:
- case MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE: {
-
- if (node==get_tree()->get_edited_scene_root()) {
- err_dialog->set_text(TTR("This doesn't work on scene root!"));
- err_dialog->popup_centered_minsize();
- return;
- }
-
- bool trimesh_shape = (p_option==MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
+ }
- Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
- if (shape.is_null())
- return;
+ if (p_what==NOTIFICATION_DRAW) {
- CollisionShape *cshape = memnew( CollisionShape );
- cshape->set_shape(shape);
- Node *owner = node->get_owner();
+ Ref<Texture> checkerboard = get_icon("Checkerboard","EditorIcons");
+ Size2 size = get_size();
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ draw_texture_rect(checkerboard,Rect2(Point2(),size),true);
- if (trimesh_shape)
- ur->create_action(TTR("Create Trimesh Shape"));
- else
- ur->create_action(TTR("Create Convex Shape"));
+ }
+}
- ur->add_do_method(node->get_parent(),"add_child",cshape);
- ur->add_do_method(node->get_parent(),"move_child",cshape,node->get_index()+1);
- ur->add_do_method(cshape,"set_owner",owner);
- ur->add_do_reference(cshape);
- ur->add_undo_method(node->get_parent(),"remove_child",cshape);
- ur->commit_action();
+void MeshEditor::_update_rotation() {
- } break;
+ Transform t;
+ t.basis.rotate(Vector3(0, 1, 0), rot_y);
+ t.basis.rotate(Vector3(1, 0, 0), rot_x);
+ mesh_instance->set_transform(t);
- case MENU_OPTION_CREATE_NAVMESH: {
+}
- Ref<NavigationMesh> nmesh = memnew( NavigationMesh );
+void MeshEditor::edit(Ref<Mesh> p_mesh) {
- if (nmesh.is_null())
- return;
+ mesh=p_mesh;
+ mesh_instance->set_mesh(mesh);
- nmesh->create_from_mesh(mesh);
- NavigationMeshInstance *nmi = memnew( NavigationMeshInstance );
- nmi->set_navigation_mesh(nmesh);
+ if (mesh.is_null()) {
- Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+ hide();
+ } else {
+ rot_x=0;
+ rot_y=0;
+ _update_rotation();
+
+ AABB aabb= mesh->get_aabb();
+ Vector3 ofs = aabb.pos + aabb.size*0.5;
+ aabb.pos-=ofs;
+ float m = MAX(aabb.size.x,aabb.size.y)*0.5;
+ if (m!=0) {
+ m=1.0/m;
+ m*=0.5;
+ //print_line("scale: "+rtos(m));
+ Transform xform;
+ xform.basis.scale(Vector3(m,m,m));
+ xform.origin=-xform.basis.xform(ofs); //-ofs*m;
+ xform.origin.z-=aabb.size.z*2;
+ mesh_instance->set_transform(xform);
+ }
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
- ur->create_action(TTR("Create Navigation Mesh"));
+ }
- ur->add_do_method(node,"add_child",nmi);
- ur->add_do_method(nmi,"set_owner",owner);
+}
- ur->add_do_reference(nmi);
- ur->add_undo_method(node,"remove_child",nmi);
- ur->commit_action();
- } break;
- case MENU_OPTION_CREATE_OUTLINE_MESH: {
+void MeshEditor::_button_pressed(Node* p_button) {
- outline_dialog->popup_centered(Vector2(200, 90));
- } break;
+ if (p_button==light_1_switch) {
+ light1->set_enabled(!light_1_switch->is_pressed());
}
-}
+ if (p_button==light_2_switch) {
+ light2->set_enabled(!light_2_switch->is_pressed());
+ }
-void MeshInstanceEditor::_create_outline_mesh() {
- Ref<Mesh> mesh = node->get_mesh();
- if (mesh.is_null()) {
- err_dialog->set_text(TTR("MeshInstance lacks a Mesh!"));
- err_dialog->popup_centered_minsize();
- return;
- }
+}
- Ref<Mesh> mesho = mesh->create_outline(outline_size->get_val());
+void MeshEditor::_bind_methods() {
- if (mesho.is_null()) {
- err_dialog->set_text(TTR("Could not create outline!"));
- err_dialog->popup_centered_minsize();
- return;
- }
+ ObjectTypeDB::bind_method(_MD("_input_event"),&MeshEditor::_input_event);
+ ObjectTypeDB::bind_method(_MD("_button_pressed"),&MeshEditor::_button_pressed);
- MeshInstance *mi = memnew( MeshInstance );
- mi->set_mesh(mesho);
- Node *owner=node->get_owner();
- if (get_tree()->get_edited_scene_root()==node) {
- owner=node;
- }
+}
- UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+MeshEditor::MeshEditor() {
- ur->create_action(TTR("Create Outline"));
+ viewport = memnew( Viewport );
+ Ref<World> world;
+ world.instance();
+ viewport->set_world(world); //use own world
+ add_child(viewport);
+ viewport->set_process_input(false);
- ur->add_do_method(node,"add_child",mi);
- ur->add_do_method(mi,"set_owner",owner);
+ camera = memnew( Camera );
+ camera->set_transform(Transform(Matrix3(),Vector3(0,0,3)));
+ camera->set_perspective(45,0.1,10);
+ viewport->add_child(camera);
- ur->add_do_reference(mi);
- ur->add_undo_method(node,"remove_child",mi);
- ur->commit_action();
-}
+ light1 = memnew( DirectionalLight );
+ light1->set_transform(Transform().looking_at(Vector3(-1,-1,-1),Vector3(0,1,0)));
+ viewport->add_child(light1);
-void MeshInstanceEditor::_bind_methods() {
+ light2 = memnew( DirectionalLight );
+ light2->set_transform(Transform().looking_at(Vector3(0,1,0),Vector3(0,0,1)));
+ light2->set_color(Light::COLOR_DIFFUSE,Color(0.7,0.7,0.7));
+ light2->set_color(Light::COLOR_SPECULAR,Color(0.7,0.7,0.7));
+ viewport->add_child(light2);
- ObjectTypeDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option);
- ObjectTypeDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh);
-}
+ mesh_instance = memnew( MeshInstance );
+ viewport->add_child(mesh_instance);
-MeshInstanceEditor::MeshInstanceEditor() {
- options = memnew( MenuButton );
- SpatialEditor::get_singleton()->add_control_to_menu_panel(options);
+ set_custom_minimum_size(Size2(1,150)*EDSCALE);
- options->set_text("Mesh");
- options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("MeshInstance","EditorIcons"));
+ HBoxContainer *hb = memnew( HBoxContainer );
+ add_child(hb);
+ hb->set_area_as_parent_rect(2);
- options->get_popup()->add_item(TTR("Create Trimesh Static Body"),MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
- options->get_popup()->add_item(TTR("Create Convex Static Body"),MENU_OPTION_CREATE_STATIC_CONVEX_BODY);
- options->get_popup()->add_separator();
- options->get_popup()->add_item(TTR("Create Trimesh Collision Sibling"),MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
- options->get_popup()->add_item(TTR("Create Convex Collision Sibling"),MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE);
- options->get_popup()->add_separator();
- options->get_popup()->add_item(TTR("Create Navigation Mesh"),MENU_OPTION_CREATE_NAVMESH);
- options->get_popup()->add_separator();
- options->get_popup()->add_item(TTR("Create Outline Mesh.."),MENU_OPTION_CREATE_OUTLINE_MESH);
+ hb->add_spacer();
- options->get_popup()->connect("item_pressed", this,"_menu_option");
+ VBoxContainer *vb_light = memnew( VBoxContainer );
+ hb->add_child(vb_light);
- outline_dialog = memnew( ConfirmationDialog );
- outline_dialog->set_title(TTR("Create Outline Mesh"));
- outline_dialog->get_ok()->set_text(TTR("Create"));
+ light_1_switch = memnew( TextureButton );
+ light_1_switch->set_toggle_mode(true);
+ vb_light->add_child(light_1_switch);
+ light_1_switch->connect("pressed",this,"_button_pressed",varray(light_1_switch));
- VBoxContainer *outline_dialog_vbc = memnew( VBoxContainer );
- outline_dialog->add_child(outline_dialog_vbc);
- outline_dialog->set_child_rect(outline_dialog_vbc);
+ light_2_switch = memnew( TextureButton );
+ light_2_switch->set_toggle_mode(true);
+ vb_light->add_child(light_2_switch);
+ light_2_switch->connect("pressed",this,"_button_pressed",varray(light_2_switch));
- outline_size = memnew( SpinBox );
- outline_size->set_min(0.001);
- outline_size->set_max(1024);
- outline_size->set_step(0.001);
- outline_size->set_val(0.05);
- outline_dialog_vbc->add_margin_child(TTR("Outline Size:"),outline_size);
+ first_enter=true;
- add_child(outline_dialog);
- outline_dialog->connect("confirmed",this,"_create_outline_mesh");
+ rot_x=0;
+ rot_y=0;
- err_dialog = memnew( AcceptDialog );
- add_child(err_dialog);
}
-void MeshInstanceEditorPlugin::edit(Object *p_object) {
+void MeshEditorPlugin::edit(Object *p_object) {
- mesh_editor->edit(p_object->cast_to<MeshInstance>());
+ Mesh * s = p_object->cast_to<Mesh>();
+ if (!s)
+ return;
+
+ mesh_editor->edit(Ref<Mesh>(s));
}
-bool MeshInstanceEditorPlugin::handles(Object *p_object) const {
+bool MeshEditorPlugin::handles(Object *p_object) const {
- return p_object->is_type("MeshInstance");
+ return p_object->is_type("Mesh");
}
-void MeshInstanceEditorPlugin::make_visible(bool p_visible) {
+void MeshEditorPlugin::make_visible(bool p_visible) {
if (p_visible) {
- mesh_editor->options->show();
+ mesh_editor->show();
+// mesh_editor->set_process(true);
} else {
- mesh_editor->options->hide();
- mesh_editor->edit(NULL);
+ mesh_editor->hide();
+// mesh_editor->set_process(false);
}
}
-MeshInstanceEditorPlugin::MeshInstanceEditorPlugin(EditorNode *p_node) {
+MeshEditorPlugin::MeshEditorPlugin(EditorNode *p_node) {
editor=p_node;
- mesh_editor = memnew( MeshInstanceEditor );
- editor->get_viewport()->add_child(mesh_editor);
+ mesh_editor = memnew( MeshEditor );
+ add_control_to_container(CONTAINER_PROPERTY_EDITOR_BOTTOM,mesh_editor);
+ mesh_editor->hide();
- mesh_editor->options->hide();
-}
-MeshInstanceEditorPlugin::~MeshInstanceEditorPlugin()
-{
}
+MeshEditorPlugin::~MeshEditorPlugin()
+{
+}
diff --git a/tools/editor/plugins/mesh_editor_plugin.h b/tools/editor/plugins/mesh_editor_plugin.h
index 6b3e23f31f..190dfca464 100644
--- a/tools/editor/plugins/mesh_editor_plugin.h
+++ b/tools/editor/plugins/mesh_editor_plugin.h
@@ -1,68 +1,66 @@
#ifndef MESH_EDITOR_PLUGIN_H
#define MESH_EDITOR_PLUGIN_H
-
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
+#include "scene/resources/material.h"
+#include "scene/3d/light.h"
#include "scene/3d/mesh_instance.h"
-#include "scene/gui/spin_box.h"
-
+#include "scene/3d/camera.h"
-class MeshInstanceEditor : public Node {
+class MeshEditor : public Control {
- OBJ_TYPE(MeshInstanceEditor, Node );
+ OBJ_TYPE(MeshEditor, Control);
- enum Menu {
- MENU_OPTION_CREATE_STATIC_TRIMESH_BODY,
- MENU_OPTION_CREATE_STATIC_CONVEX_BODY,
- MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE,
- MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE,
- MENU_OPTION_CREATE_NAVMESH,
- MENU_OPTION_CREATE_OUTLINE_MESH,
- };
+ float rot_x;
+ float rot_y;
- MeshInstance *node;
+ Viewport *viewport;
+ MeshInstance *mesh_instance;
+ DirectionalLight *light1;
+ DirectionalLight *light2;
+ Camera *camera;
- MenuButton *options;
+ Ref<Mesh> mesh;
- ConfirmationDialog *outline_dialog;
- SpinBox *outline_size;
- AcceptDialog *err_dialog;
+ TextureButton *light_1_switch;
+ TextureButton *light_2_switch;
- void _menu_option(int p_option);
- void _create_outline_mesh();
-
-friend class MeshInstanceEditorPlugin;
+ void _button_pressed(Node* p_button);
+ bool first_enter;
+ void _update_rotation();
protected:
- void _node_removed(Node *p_node);
+ void _notification(int p_what);
+ void _input_event(InputEvent p_event);
static void _bind_methods();
public:
- void edit(MeshInstance *p_mesh);
- MeshInstanceEditor();
+ void edit(Ref<Mesh> p_mesh);
+ MeshEditor();
};
-class MeshInstanceEditorPlugin : public EditorPlugin {
- OBJ_TYPE( MeshInstanceEditorPlugin, EditorPlugin );
+class MeshEditorPlugin : public EditorPlugin {
+
+ OBJ_TYPE( MeshEditorPlugin, EditorPlugin );
- MeshInstanceEditor *mesh_editor;
+ MeshEditor *mesh_editor;
EditorNode *editor;
public:
- virtual String get_name() const { return "MeshInstance"; }
+ virtual String get_name() const { return "Mesh"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
virtual void make_visible(bool p_visible);
- MeshInstanceEditorPlugin(EditorNode *p_node);
- ~MeshInstanceEditorPlugin();
+ MeshEditorPlugin(EditorNode *p_node);
+ ~MeshEditorPlugin();
};
diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.cpp b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
new file mode 100644
index 0000000000..f604e4c57c
--- /dev/null
+++ b/tools/editor/plugins/mesh_instance_editor_plugin.cpp
@@ -0,0 +1,300 @@
+#include "mesh_instance_editor_plugin.h"
+
+#include "scene/3d/physics_body.h"
+#include "scene/3d/body_shape.h"
+#include "scene/gui/box_container.h"
+#include "scene/3d/navigation_mesh.h"
+#include "spatial_editor_plugin.h"
+
+void MeshInstanceEditor::_node_removed(Node *p_node) {
+
+ if(p_node==node) {
+ node=NULL;
+ options->hide();
+ }
+
+}
+
+
+
+void MeshInstanceEditor::edit(MeshInstance *p_mesh) {
+
+ node=p_mesh;
+
+}
+
+void MeshInstanceEditor::_menu_option(int p_option) {
+
+ Ref<Mesh> mesh = node->get_mesh();
+ if (mesh.is_null()) {
+ err_dialog->set_text(TTR("Mesh is empty!"));
+ err_dialog->popup_centered_minsize();
+ return;
+ }
+
+ switch(p_option) {
+ case MENU_OPTION_CREATE_STATIC_TRIMESH_BODY:
+ case MENU_OPTION_CREATE_STATIC_CONVEX_BODY: {
+
+ bool trimesh_shape = (p_option==MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
+
+ EditorSelection *editor_selection = EditorNode::get_singleton()->get_editor_selection();
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ List<Node*> selection = editor_selection->get_selected_node_list();
+
+ if (selection.empty()) {
+ Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
+ if (shape.is_null())
+ return;
+
+ CollisionShape *cshape = memnew( CollisionShape );
+ cshape->set_shape(shape);
+ StaticBody *body = memnew( StaticBody );
+ body->add_child(cshape);
+
+ Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+
+ if (trimesh_shape)
+ ur->create_action(TTR("Create Static Trimesh Body"));
+ else
+ ur->create_action(TTR("Create Static Convex Body"));
+
+ ur->add_do_method(node,"add_child",body);
+ ur->add_do_method(body,"set_owner",owner);
+ ur->add_do_method(cshape,"set_owner",owner);
+ ur->add_do_reference(body);
+ ur->add_undo_method(node,"remove_child",body);
+ ur->commit_action();
+ return;
+ }
+
+ if (trimesh_shape)
+ ur->create_action(TTR("Create Static Trimesh Body"));
+ else
+ ur->create_action(TTR("Create Static Convex Body"));
+
+ for (List<Node*>::Element *E=selection.front();E;E=E->next()) {
+
+ MeshInstance *instance = E->get()->cast_to<MeshInstance>();
+ if (!instance)
+ continue;
+
+ Ref<Mesh> m = instance->get_mesh();
+ if (m.is_null())
+ continue;
+
+ Ref<Shape> shape = trimesh_shape ? m->create_trimesh_shape() : m->create_convex_shape();
+ if (shape.is_null())
+ continue;
+
+ CollisionShape *cshape = memnew( CollisionShape );
+ cshape->set_shape(shape);
+ StaticBody *body = memnew( StaticBody );
+ body->add_child(cshape);
+
+ Node *owner = instance==get_tree()->get_edited_scene_root() ? instance : instance->get_owner();
+
+ ur->add_do_method(instance,"add_child",body);
+ ur->add_do_method(body,"set_owner",owner);
+ ur->add_do_method(cshape,"set_owner",owner);
+ ur->add_do_reference(body);
+ ur->add_undo_method(instance,"remove_child",body);
+ }
+
+ ur->commit_action();
+
+ } break;
+
+ case MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE:
+ case MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE: {
+
+ if (node==get_tree()->get_edited_scene_root()) {
+ err_dialog->set_text(TTR("This doesn't work on scene root!"));
+ err_dialog->popup_centered_minsize();
+ return;
+ }
+
+ bool trimesh_shape = (p_option==MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
+
+ Ref<Shape> shape = trimesh_shape ? mesh->create_trimesh_shape() : mesh->create_convex_shape();
+ if (shape.is_null())
+ return;
+
+ CollisionShape *cshape = memnew( CollisionShape );
+ cshape->set_shape(shape);
+
+ Node *owner = node->get_owner();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ if (trimesh_shape)
+ ur->create_action(TTR("Create Trimesh Shape"));
+ else
+ ur->create_action(TTR("Create Convex Shape"));
+
+ ur->add_do_method(node->get_parent(),"add_child",cshape);
+ ur->add_do_method(node->get_parent(),"move_child",cshape,node->get_index()+1);
+ ur->add_do_method(cshape,"set_owner",owner);
+ ur->add_do_reference(cshape);
+ ur->add_undo_method(node->get_parent(),"remove_child",cshape);
+ ur->commit_action();
+
+ } break;
+
+ case MENU_OPTION_CREATE_NAVMESH: {
+
+ Ref<NavigationMesh> nmesh = memnew( NavigationMesh );
+
+ if (nmesh.is_null())
+ return;
+
+ nmesh->create_from_mesh(mesh);
+ NavigationMeshInstance *nmi = memnew( NavigationMeshInstance );
+ nmi->set_navigation_mesh(nmesh);
+
+ Node *owner = node==get_tree()->get_edited_scene_root() ? node : node->get_owner();
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Create Navigation Mesh"));
+
+ ur->add_do_method(node,"add_child",nmi);
+ ur->add_do_method(nmi,"set_owner",owner);
+
+ ur->add_do_reference(nmi);
+ ur->add_undo_method(node,"remove_child",nmi);
+ ur->commit_action();
+ } break;
+
+ case MENU_OPTION_CREATE_OUTLINE_MESH: {
+
+ outline_dialog->popup_centered(Vector2(200, 90));
+ } break;
+ }
+
+}
+
+void MeshInstanceEditor::_create_outline_mesh() {
+
+ Ref<Mesh> mesh = node->get_mesh();
+ if (mesh.is_null()) {
+ err_dialog->set_text(TTR("MeshInstance lacks a Mesh!"));
+ err_dialog->popup_centered_minsize();
+ return;
+ }
+
+ Ref<Mesh> mesho = mesh->create_outline(outline_size->get_val());
+
+ if (mesho.is_null()) {
+ err_dialog->set_text(TTR("Could not create outline!"));
+ err_dialog->popup_centered_minsize();
+ return;
+ }
+
+ MeshInstance *mi = memnew( MeshInstance );
+ mi->set_mesh(mesho);
+ Node *owner=node->get_owner();
+ if (get_tree()->get_edited_scene_root()==node) {
+ owner=node;
+ }
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+
+ ur->create_action(TTR("Create Outline"));
+
+ ur->add_do_method(node,"add_child",mi);
+ ur->add_do_method(mi,"set_owner",owner);
+
+ ur->add_do_reference(mi);
+ ur->add_undo_method(node,"remove_child",mi);
+ ur->commit_action();
+}
+
+void MeshInstanceEditor::_bind_methods() {
+
+ ObjectTypeDB::bind_method("_menu_option",&MeshInstanceEditor::_menu_option);
+ ObjectTypeDB::bind_method("_create_outline_mesh",&MeshInstanceEditor::_create_outline_mesh);
+}
+
+MeshInstanceEditor::MeshInstanceEditor() {
+
+
+ options = memnew( MenuButton );
+ SpatialEditor::get_singleton()->add_control_to_menu_panel(options);
+
+ options->set_text(TTR("Mesh"));
+ options->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("MeshInstance","EditorIcons"));
+
+ options->get_popup()->add_item(TTR("Create Trimesh Static Body"),MENU_OPTION_CREATE_STATIC_TRIMESH_BODY);
+ options->get_popup()->add_item(TTR("Create Convex Static Body"),MENU_OPTION_CREATE_STATIC_CONVEX_BODY);
+ options->get_popup()->add_separator();
+ options->get_popup()->add_item(TTR("Create Trimesh Collision Sibling"),MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE);
+ options->get_popup()->add_item(TTR("Create Convex Collision Sibling"),MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE);
+ options->get_popup()->add_separator();
+ options->get_popup()->add_item(TTR("Create Navigation Mesh"),MENU_OPTION_CREATE_NAVMESH);
+ options->get_popup()->add_separator();
+ options->get_popup()->add_item(TTR("Create Outline Mesh.."),MENU_OPTION_CREATE_OUTLINE_MESH);
+
+ options->get_popup()->connect("item_pressed", this,"_menu_option");
+
+ outline_dialog = memnew( ConfirmationDialog );
+ outline_dialog->set_title(TTR("Create Outline Mesh"));
+ outline_dialog->get_ok()->set_text(TTR("Create"));
+
+ VBoxContainer *outline_dialog_vbc = memnew( VBoxContainer );
+ outline_dialog->add_child(outline_dialog_vbc);
+ outline_dialog->set_child_rect(outline_dialog_vbc);
+
+ outline_size = memnew( SpinBox );
+ outline_size->set_min(0.001);
+ outline_size->set_max(1024);
+ outline_size->set_step(0.001);
+ outline_size->set_val(0.05);
+ outline_dialog_vbc->add_margin_child(TTR("Outline Size:"),outline_size);
+
+ add_child(outline_dialog);
+ outline_dialog->connect("confirmed",this,"_create_outline_mesh");
+
+ err_dialog = memnew( AcceptDialog );
+ add_child(err_dialog);
+
+}
+
+
+void MeshInstanceEditorPlugin::edit(Object *p_object) {
+
+ mesh_editor->edit(p_object->cast_to<MeshInstance>());
+}
+
+bool MeshInstanceEditorPlugin::handles(Object *p_object) const {
+
+ return p_object->is_type("MeshInstance");
+}
+
+void MeshInstanceEditorPlugin::make_visible(bool p_visible) {
+
+ if (p_visible) {
+ mesh_editor->options->show();
+ } else {
+
+ mesh_editor->options->hide();
+ mesh_editor->edit(NULL);
+ }
+
+}
+
+MeshInstanceEditorPlugin::MeshInstanceEditorPlugin(EditorNode *p_node) {
+
+ editor=p_node;
+ mesh_editor = memnew( MeshInstanceEditor );
+ editor->get_viewport()->add_child(mesh_editor);
+
+ mesh_editor->options->hide();
+}
+
+
+MeshInstanceEditorPlugin::~MeshInstanceEditorPlugin()
+{
+}
+
+
diff --git a/tools/editor/plugins/mesh_instance_editor_plugin.h b/tools/editor/plugins/mesh_instance_editor_plugin.h
new file mode 100644
index 0000000000..a698cf382f
--- /dev/null
+++ b/tools/editor/plugins/mesh_instance_editor_plugin.h
@@ -0,0 +1,69 @@
+#ifndef MESH_INSTANCE_EDITOR_PLUGIN_H
+#define MESH_INSTANCE_EDITOR_PLUGIN_H
+
+
+#include "tools/editor/editor_plugin.h"
+#include "tools/editor/editor_node.h"
+#include "scene/3d/mesh_instance.h"
+#include "scene/gui/spin_box.h"
+
+
+class MeshInstanceEditor : public Node {
+
+ OBJ_TYPE(MeshInstanceEditor, Node );
+
+
+ enum Menu {
+
+ MENU_OPTION_CREATE_STATIC_TRIMESH_BODY,
+ MENU_OPTION_CREATE_STATIC_CONVEX_BODY,
+ MENU_OPTION_CREATE_TRIMESH_COLLISION_SHAPE,
+ MENU_OPTION_CREATE_CONVEX_COLLISION_SHAPE,
+ MENU_OPTION_CREATE_NAVMESH,
+ MENU_OPTION_CREATE_OUTLINE_MESH,
+ };
+
+ MeshInstance *node;
+
+ MenuButton *options;
+
+ ConfirmationDialog *outline_dialog;
+ SpinBox *outline_size;
+
+ AcceptDialog *err_dialog;
+
+ void _menu_option(int p_option);
+ void _create_outline_mesh();
+
+friend class MeshInstanceEditorPlugin;
+
+protected:
+ void _node_removed(Node *p_node);
+ static void _bind_methods();
+public:
+
+ void edit(MeshInstance *p_mesh);
+ MeshInstanceEditor();
+};
+
+class MeshInstanceEditorPlugin : public EditorPlugin {
+
+ OBJ_TYPE( MeshInstanceEditorPlugin, EditorPlugin );
+
+ MeshInstanceEditor *mesh_editor;
+ EditorNode *editor;
+
+public:
+
+ virtual String get_name() const { return "MeshInstance"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ MeshInstanceEditorPlugin(EditorNode *p_node);
+ ~MeshInstanceEditorPlugin();
+
+};
+
+#endif // MESH_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/multimesh_editor_plugin.cpp b/tools/editor/plugins/multimesh_editor_plugin.cpp
index e22dfb3d13..8a0c6b3fe8 100644
--- a/tools/editor/plugins/multimesh_editor_plugin.cpp
+++ b/tools/editor/plugins/multimesh_editor_plugin.cpp
@@ -73,7 +73,7 @@ void MultiMeshEditor::_populate() {
if (!ms_node) {
- err_dialog->set_text(TTR("Mesh source is invalid (Invalid Path)."));
+ err_dialog->set_text(TTR("Mesh source is invalid (invalid path)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -82,7 +82,7 @@ void MultiMeshEditor::_populate() {
if (!ms_instance) {
- err_dialog->set_text(TTR("Mesh source is invalid (Not a MeshInstance)."));
+ err_dialog->set_text(TTR("Mesh source is invalid (not a MeshInstance)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -91,7 +91,7 @@ void MultiMeshEditor::_populate() {
if (mesh.is_null()) {
- err_dialog->set_text(TTR("Mesh source is invalid (Contains no Mesh resource)."));
+ err_dialog->set_text(TTR("Mesh source is invalid (contains no Mesh resource)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -109,7 +109,7 @@ void MultiMeshEditor::_populate() {
if (!ss_node) {
- err_dialog->set_text(TTR("Surface source is invalid (Invalid Path)."));
+ err_dialog->set_text(TTR("Surface source is invalid (invalid path)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -118,7 +118,7 @@ void MultiMeshEditor::_populate() {
if (!ss_instance) {
- err_dialog->set_text(TTR("Surface source is invalid (Not Geometry)."));
+ err_dialog->set_text(TTR("Surface source is invalid (no geometry)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -129,7 +129,7 @@ void MultiMeshEditor::_populate() {
if (geometry.size()==0) {
- err_dialog->set_text(TTR("Surface source is invalid (No Faces)."));
+ err_dialog->set_text(TTR("Surface source is invalid (no faces)."));
err_dialog->popup_centered_minsize();
return;
}
@@ -153,10 +153,10 @@ void MultiMeshEditor::_populate() {
node->populate_parent(populate_rotate_random->get_val(),populate_tilt_random->get_val(),populate_scale_random->get_val(),populate_scale->get_val());
- ERR_EXPLAIN(TTR("Parent is not of type VisualInstance."));
+ ERR_EXPLAIN("Parent is not of type VisualInstance.");
ERR_FAIL_COND(!get_parent() || !get_parent()->is_type("VisualInstance"));
- ERR_EXPLAIN(TTR("Multimesh not present"));
+ ERR_EXPLAIN("Multimesh not present.");
ERR_FAIL_COND(multimesh.is_null());
VisualInstance *vi = get_parent()->cast_to<VisualInstance>();
@@ -184,9 +184,9 @@ void MultiMeshEditor::_populate() {
area_accum+=area;
}
- ERR_EXPLAIN(TTR("Couldn't map area"));
+ ERR_EXPLAIN(TTR("Couldn't map area."));
ERR_FAIL_COND(triangle_area_map.size()==0);
- ERR_EXPLAIN(TTR("Couldn't map area"));
+ ERR_EXPLAIN(TTR("Couldn't map area."));
ERR_FAIL_COND(area_accum==0);
diff --git a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
index 038c1d48a7..1ee388ca18 100644
--- a/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
+++ b/tools/editor/plugins/navigation_polygon_editor_plugin.cpp
@@ -469,13 +469,13 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
- button_create->set_tooltip(TTR("Create a new polygon from scratch"));
+ button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
button_edit->connect("pressed",this,"_menu_option",varray(MODE_EDIT));
button_edit->set_toggle_mode(true);
- button_edit->set_tooltip("Edit existing polygon:\nLMB: Move Point.\nCtrl+LMB: Split Segment.\nRMB: Erase Point.");
+ button_edit->set_tooltip(TTR("Edit existing polygon:")+"\n"+TTR("LMB: Move Point.")+"\n"+TTR("Ctrl+LMB: Split Segment.")+"\n"+TTR("RMB: Erase Point."));
create_nav = memnew( ConfirmationDialog );
add_child(create_nav);
create_nav->get_ok()->set_text(TTR("Create"));
@@ -487,8 +487,8 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
diff --git a/tools/editor/plugins/particles_2d_editor_plugin.cpp b/tools/editor/plugins/particles_2d_editor_plugin.cpp
index 8892950feb..ce25f34c1f 100644
--- a/tools/editor/plugins/particles_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_2d_editor_plugin.cpp
@@ -66,7 +66,7 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
Image img;
Error err = ImageLoader::load_image(p_file,&img);
- ERR_EXPLAIN(TTR("Error loading image: ")+p_file);
+ ERR_EXPLAIN(TTR("Error loading image:")+" "+p_file);
ERR_FAIL_COND(err!=OK);
img.convert(Image::FORMAT_GRAYSCALE_ALPHA);
diff --git a/tools/editor/plugins/particles_editor_plugin.cpp b/tools/editor/plugins/particles_editor_plugin.cpp
index b7ba987622..93e2fb2f38 100644
--- a/tools/editor/plugins/particles_editor_plugin.cpp
+++ b/tools/editor/plugins/particles_editor_plugin.cpp
@@ -249,7 +249,7 @@ void ParticlesEditor::_generate_emission_points() {
if (gcount==0) {
- err_dialog->set_text(TTR("No Faces!"));
+ err_dialog->set_text(TTR("No faces!"));
err_dialog->popup_centered_minsize();
return;
}
diff --git a/tools/editor/plugins/path_2d_editor_plugin.cpp b/tools/editor/plugins/path_2d_editor_plugin.cpp
index 079ca3a339..107ec30a91 100644
--- a/tools/editor/plugins/path_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/path_2d_editor_plugin.cpp
@@ -622,8 +622,8 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
@@ -636,7 +636,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
curve_edit->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveEdit","EditorIcons"));
curve_edit->set_toggle_mode(true);
curve_edit->set_focus_mode(Control::FOCUS_NONE);
- curve_edit->set_tooltip("Select Points\nShift+Drag: Select Control Points\n"+keycode_get_string(KEY_MASK_CMD)+"Click: Add Point\nRight Click: Delete Point.");
+ curve_edit->set_tooltip(TTR("Select Points")+"\n"+TTR("Shift+Drag: Select Control Points")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Click: Add Point")+"\n"+TTR("Right Click: Delete Point"));
curve_edit->connect("pressed",this,"_mode_selected",varray(MODE_EDIT));
base_hb->add_child(curve_edit);
curve_edit_curve = memnew( ToolButton );
@@ -650,14 +650,14 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
curve_create->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveCreate","EditorIcons"));
curve_create->set_toggle_mode(true);
curve_create->set_focus_mode(Control::FOCUS_NONE);
- curve_create->set_tooltip("Add Point (in empty space)\nSplit Segment (in curve).");
+ curve_create->set_tooltip(TTR("Add Point (in empty space)")+"\n"+TTR("Split Segment (in curve)"));
curve_create->connect("pressed",this,"_mode_selected",varray(MODE_CREATE));
base_hb->add_child(curve_create);
curve_del = memnew( ToolButton );
curve_del->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveDelete","EditorIcons"));
curve_del->set_toggle_mode(true);
curve_del->set_focus_mode(Control::FOCUS_NONE);
- curve_del->set_tooltip(TTR("Delete Point."));
+ curve_del->set_tooltip(TTR("Delete Point"));
curve_del->connect("pressed",this,"_mode_selected",varray(MODE_DELETE));
base_hb->add_child(curve_del);
curve_close = memnew( ToolButton );
diff --git a/tools/editor/plugins/path_editor_plugin.cpp b/tools/editor/plugins/path_editor_plugin.cpp
index 6820eed297..d7cc2bd157 100644
--- a/tools/editor/plugins/path_editor_plugin.cpp
+++ b/tools/editor/plugins/path_editor_plugin.cpp
@@ -546,21 +546,21 @@ PathEditorPlugin::PathEditorPlugin(EditorNode *p_node) {
curve_edit->set_toggle_mode(true);
curve_edit->hide();
curve_edit->set_focus_mode(Control::FOCUS_NONE);
- curve_edit->set_tooltip("Select Points\nShift+Drag: Select Control Points\n"+keycode_get_string(KEY_MASK_CMD)+"Click: Add Point\nRight Click: Delete Point.");
+ curve_edit->set_tooltip(TTR("Select Points")+"\n"+TTR("Shift+Drag: Select Control Points")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Click: Add Point")+"\n"+TTR("Right Click: Delete Point"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_edit);
curve_create = memnew( ToolButton );
curve_create->set_icon(SpatialEditor::get_singleton()->get_icon("CurveCreate","EditorIcons"));
curve_create->set_toggle_mode(true);
curve_create->hide();
curve_create->set_focus_mode(Control::FOCUS_NONE);
- curve_create->set_tooltip("Add Point (in empty space)\nSplit Segment (in curve).");
+ curve_create->set_tooltip(TTR("Add Point (in empty space)")+"\n"+TTR("Split Segment (in curve)"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_create);
curve_del = memnew( ToolButton );
curve_del->set_icon(SpatialEditor::get_singleton()->get_icon("CurveDelete","EditorIcons"));
curve_del->set_toggle_mode(true);
curve_del->hide();
curve_del->set_focus_mode(Control::FOCUS_NONE);
- curve_del->set_tooltip(TTR("Delete Point."));
+ curve_del->set_tooltip(TTR("Delete Point"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_del);
curve_close = memnew( ToolButton );
curve_close->set_icon(SpatialEditor::get_singleton()->get_icon("CurveClose","EditorIcons"));
diff --git a/tools/editor/plugins/polygon_2d_editor_plugin.cpp b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
index f07c43b8e4..f873b43fd9 100644
--- a/tools/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/tools/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -840,8 +840,8 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("Polygon"));
- //options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("Polygon");
+ //options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
@@ -868,7 +868,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
uv_button[i]->set_focus_mode(FOCUS_NONE);
}
- uv_button[0]->set_tooltip("Move Point\nCtrl: Rotate\nShift: Move All\n:Shift+Ctrl: Scale");
+ uv_button[0]->set_tooltip(TTR("Move Point")+"\n"+TTR("Ctrl: Rotate")+"\n"+TTR("Shift: Move All")+"\n"+TTR("Shift+Ctrl: Scale"));
uv_button[1]->set_tooltip(TTR("Move Polygon"));
uv_button[2]->set_tooltip(TTR("Rotate Polygon"));
uv_button[3]->set_tooltip(TTR("Scale Polygon"));
diff --git a/tools/editor/plugins/resource_preloader_editor_plugin.cpp b/tools/editor/plugins/resource_preloader_editor_plugin.cpp
index cc9aca1a25..cce0ba3d62 100644
--- a/tools/editor/plugins/resource_preloader_editor_plugin.cpp
+++ b/tools/editor/plugins/resource_preloader_editor_plugin.cpp
@@ -72,7 +72,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String>& p_paths)
if (resource.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load resource!"));
dialog->set_title(TTR("Error!"));
- //dialog->get_cancel()->set_text(TTR("Close"));
+ //dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@@ -169,7 +169,7 @@ void ResourcePreloaderEditor::_paste_pressed() {
if (!r.is_valid()) {
dialog->set_text(TTR("Resource clipboard is empty!"));
dialog->set_title(TTR("Error!"));
- //dialog->get_cancel()->set_text(TTR("Close"));
+ //dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@@ -206,11 +206,11 @@ void ResourcePreloaderEditor::_delete_pressed() {
_delete_confirm_pressed(); //it has undo.. why bother with a dialog..
/*
- dialog->set_title(TTR("Confirm..."));
- dialog->set_text(TTR("Remove Resource '")+tree->get_selected()->get_text(0)+"' ?");
- //dialog->get_cancel()->set_text(TTR("Cancel"));
+ dialog->set_title("Confirm...");
+ dialog->set_text("Remove Resource '"+tree->get_selected()->get_text(0)+"' ?");
+ //dialog->get_cancel()->set_text("Cancel");
//dialog->get_ok()->show();
- dialog->get_ok()->set_text(TTR("Remove"));
+ dialog->get_ok()->set_text("Remove");
dialog->popup_centered(Size2(300,60));*/
}
diff --git a/tools/editor/plugins/rich_text_editor_plugin.cpp b/tools/editor/plugins/rich_text_editor_plugin.cpp
index 99d75dff1d..bec48ca293 100644
--- a/tools/editor/plugins/rich_text_editor_plugin.cpp
+++ b/tools/editor/plugins/rich_text_editor_plugin.cpp
@@ -106,8 +106,8 @@ RichTextEditor::RichTextEditor() {
CanvasItemEditor::get_singleton()->add_control_to_menu_panel(options);
options->set_area_as_parent_rect();
- options->set_text(TTR("RichText"));
- options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
+ options->set_text("RichText");
+ options->get_popup()->add_item(TTR("Parse BBCode"),PARSE_BBCODE);
options->get_popup()->add_item(TTR("Clear"),CLEAR);
options->get_popup()->connect("item_pressed", this,"_menu_option");
diff --git a/tools/editor/plugins/rich_text_editor_plugin.h b/tools/editor/plugins/rich_text_editor_plugin.h
index 0196a30332..ae1d04be01 100644
--- a/tools/editor/plugins/rich_text_editor_plugin.h
+++ b/tools/editor/plugins/rich_text_editor_plugin.h
@@ -77,7 +77,7 @@ class RichTextEditorPlugin : public EditorPlugin {
public:
- virtual String get_name() const { return TTR("RichText"); }
+ virtual String get_name() const { return "RichText"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
diff --git a/tools/editor/plugins/sample_editor_plugin.cpp b/tools/editor/plugins/sample_editor_plugin.cpp
index 8c5036b424..a3891a648b 100644
--- a/tools/editor/plugins/sample_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_editor_plugin.cpp
@@ -328,7 +328,7 @@ void SampleEditor::_update_sample() {
return; //bye or unsupported
generate_preview_texture(sample,peakdisplay);
- info_label->set_text(TTR("Length: ")+itos(sample->get_length())+" frames ("+String::num(sample->get_length()/(float)sample->get_mix_rate(),2)+" s), "+(sample->get_format()==Sample::FORMAT_PCM16?"16 Bits, ":"8 bits, ")+(sample->is_stereo()?"Stereo.":"Mono."));
+ info_label->set_text(TTR("Length:")+" "+String::num(sample->get_length()/(float)sample->get_mix_rate(),2)+"s");
library->add_sample("default",sample);
}
@@ -404,6 +404,8 @@ SampleEditor::SampleEditor() {
play->connect("pressed", this,"_play_pressed");
stop->connect("pressed", this,"_stop_pressed");
+ set_custom_minimum_size(Size2(1,150)*EDSCALE);
+
}
@@ -438,10 +440,7 @@ SampleEditorPlugin::SampleEditorPlugin(EditorNode *p_node) {
editor=p_node;
sample_editor = memnew( SampleEditor );
- editor->get_viewport()->add_child(sample_editor);
- sample_editor->set_area_as_parent_rect();
- sample_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END);
- sample_editor->set_margin( MARGIN_TOP, 120 );
+ add_control_to_container(CONTAINER_PROPERTY_EDITOR_BOTTOM,sample_editor);
sample_editor->hide();
diff --git a/tools/editor/plugins/sample_library_editor_plugin.cpp b/tools/editor/plugins/sample_library_editor_plugin.cpp
index 8b03c4651d..2a6940332c 100644
--- a/tools/editor/plugins/sample_library_editor_plugin.cpp
+++ b/tools/editor/plugins/sample_library_editor_plugin.cpp
@@ -76,7 +76,7 @@ void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) {
if (sample.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load sample!"));
dialog->set_title(TTR("Error!"));
- //dialog->get_cancel()->set_text(TTR("Close"));
+ //dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@@ -248,7 +248,7 @@ void SampleLibraryEditor::_update_library() {
ti->set_cell_mode(2,TreeItem::CELL_MODE_STRING);
ti->set_editable(2,false);
ti->set_selectable(2,false);
- ti->set_text(2,String()+/*itos(smp->get_length())+" frames ("+String::num(smp->get_length()/(float)smp->get_mix_rate(),2)+" smp), "+*/(smp->get_format()==Sample::FORMAT_PCM16?"16 Bits, ":(smp->get_format()==Sample::FORMAT_PCM8?"8 bits, ":TTR("IMA-ADPCM,")))+(smp->is_stereo()?"Stereo":"Mono"));
+ ti->set_text(2,String()+(smp->get_format()==Sample::FORMAT_PCM16?TTR("16 Bits")+", ":(smp->get_format()==Sample::FORMAT_PCM8?TTR("8 Bits")+", ":"IMA-ADPCM,"))+(smp->is_stereo()?TTR("Stereo"):TTR("Mono")));
// Volume dB
ti->set_cell_mode(3,TreeItem::CELL_MODE_RANGE);
@@ -457,7 +457,7 @@ SampleLibraryEditor::SampleLibraryEditor() {
tree->set_column_title(1,TTR("Preview"));
tree->set_column_title(2,TTR("Format"));
tree->set_column_title(3,"dB");
- tree->set_column_title(4,"Pitch");
+ tree->set_column_title(4,TTR("Pitch"));
tree->set_column_title(5,"");
tree->set_column_min_width(1,150);
@@ -481,7 +481,7 @@ SampleLibraryEditor::SampleLibraryEditor() {
file->connect("files_selected", this,"_file_load_request");
tree->connect("item_edited", this,"_item_edited");
-
+ is_playing = false;
}
diff --git a/tools/editor/plugins/script_editor_plugin.cpp b/tools/editor/plugins/script_editor_plugin.cpp
index d8d5fddfe9..39b350eb4e 100644
--- a/tools/editor/plugins/script_editor_plugin.cpp
+++ b/tools/editor/plugins/script_editor_plugin.cpp
@@ -298,6 +298,10 @@ void ScriptTextEditor::_load_theme_settings() {
get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2)));
get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8)));
get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3)));
+ get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4)));
+ get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
+ get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1)));
+ get_text_edit()->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)));
Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2));
@@ -584,7 +588,7 @@ void ScriptTextEditor::_bind_methods() {
}
ScriptTextEditor::ScriptTextEditor() {
-
+ get_text_edit()->set_breakpoint_gutter_width(12);
}
/*** SCRIPT EDITOR ******/
@@ -883,8 +887,19 @@ void ScriptEditor::_res_saved_callback(const Ref<Resource>& p_res) {
_update_script_names();
+
+ if (!pending_auto_reload && auto_reload_running_scripts) {
+ call_deferred("_live_auto_reload_running_scripts");
+ pending_auto_reload=true;
+ }
+}
+
+void ScriptEditor::_live_auto_reload_running_scripts() {
+ pending_auto_reload=false;
+ debugger->reload_scripts();
}
+
bool ScriptEditor::_test_script_times_on_disk() {
@@ -951,13 +966,30 @@ void ScriptEditor::swap_lines(TextEdit *tx, int line1, int line2)
tx->cursor_set_line(line2);
}
+void ScriptEditor::_file_dialog_action(String p_file) {
+
+ switch (file_dialog_option) {
+ case FILE_SAVE_THEME_AS: {
+ if(!EditorSettings::get_singleton()->save_text_editor_theme_as(p_file)) {
+ editor->show_warning(TTR("Error while saving theme"), TTR("Error saving"));
+ }
+ } break;
+ case FILE_IMPORT_THEME: {
+ if(!EditorSettings::get_singleton()->import_text_editor_theme(p_file)) {
+ editor->show_warning(TTR("Error importing theme"), TTR("Error importing"));
+ }
+ } break;
+ }
+ file_dialog_option = -1;
+}
+
void ScriptEditor::_menu_option(int p_option) {
switch(p_option) {
case FILE_NEW: {
script_create_dialog->config("Node", ".gd");
- script_create_dialog->popup_centered(Size2(300, 300));
+ script_create_dialog->popup_centered(Size2(300, 300)*EDSCALE);
} break;
case FILE_OPEN: {
@@ -990,6 +1022,33 @@ void ScriptEditor::_menu_option(int p_option) {
#endif
} break;
+ case FILE_IMPORT_THEME: {
+ file_dialog->set_mode(EditorFileDialog::MODE_OPEN_FILE);
+ file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
+ file_dialog_option = FILE_IMPORT_THEME;
+ file_dialog->clear_filters();
+ file_dialog->add_filter("*.tet");
+ file_dialog->popup_centered_ratio();
+ file_dialog->set_title(TTR("Import Theme"));
+ } break;
+ case FILE_RELOAD_THEME: {
+ EditorSettings::get_singleton()->load_text_editor_theme();
+ } break;
+ case FILE_SAVE_THEME: {
+ if(!EditorSettings::get_singleton()->save_text_editor_theme()) {
+ editor->show_warning(TTR("Error while saving theme"), TTR("Error saving"));
+ }
+ } break;
+ case FILE_SAVE_THEME_AS: {
+ file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
+ file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
+ file_dialog_option = FILE_SAVE_THEME_AS;
+ file_dialog->clear_filters();
+ file_dialog->add_filter("*.tet");
+ file_dialog->set_current_path(EditorSettings::get_singleton()->get_settings_path() + "/text_editor_themes/" + EditorSettings::get_singleton()->get("text_editor/color_theme"));
+ file_dialog->popup_centered_ratio();
+ file_dialog->set_title(TTR("Save Theme As.."));
+ } break;
case SEARCH_HELP: {
help_search_dialog->popup();
@@ -1052,7 +1111,7 @@ void ScriptEditor::_menu_option(int p_option) {
switch(p_option) {
case FILE_NEW: {
script_create_dialog->config("Node", ".gd");
- script_create_dialog->popup_centered(Size2(300, 300));
+ script_create_dialog->popup_centered(Size2(300, 300)*EDSCALE);
} break;
case FILE_SAVE: {
@@ -1252,16 +1311,35 @@ void ScriptEditor::_menu_option(int p_option) {
Ref<Script> scr = current->get_edited_script();
if (scr.is_null())
return;
- int line = tx->cursor_get_line();
- int next_line = line + 1;
+
+ int from_line = tx->cursor_get_line();
+ int to_line = tx->cursor_get_line();
int column = tx->cursor_get_column();
- if (line >= tx->get_line_count() - 1)
- tx->set_line(line, tx->get_line(line) + "\n");
+ if (tx->is_selection_active()) {
+ from_line = tx->get_selection_from_line();
+ to_line = tx->get_selection_to_line();
+ column = tx->cursor_get_column();
+ }
+ int next_line = to_line + 1;
+
+ tx->begin_complex_operation();
+ for (int i = from_line; i <= to_line; i++) {
+
+ if (i >= tx->get_line_count() - 1) {
+ tx->set_line(i, tx->get_line(i) + "\n");
+ }
+ String line_clone = tx->get_line(i);
+ tx->insert_at(line_clone, next_line);
+ next_line++;
+ }
- String line_clone = tx->get_line(line);
- tx->insert_at(line_clone, next_line);
tx->cursor_set_column(column);
+ if (tx->is_selection_active()) {
+ tx->select(to_line + 1, tx->get_selection_from_column(), next_line - 1, tx->get_selection_to_column());
+ }
+
+ tx->end_complex_operation();
tx->update();
} break;
@@ -1340,18 +1418,19 @@ void ScriptEditor::_menu_option(int p_option) {
} break;
case SEARCH_FIND: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->popup_search();
+ current->get_find_replace_bar()->popup_search();
} break;
case SEARCH_FIND_NEXT: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->search_next();
+ current->get_find_replace_bar()->search_next();
+ } break;
+ case SEARCH_FIND_PREV: {
+
+ current->get_find_replace_bar()->search_prev();
} break;
case SEARCH_REPLACE: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->popup_replace();
+ current->get_find_replace_bar()->popup_replace();
} break;
case SEARCH_LOCATE_FUNCTION: {
@@ -1369,6 +1448,61 @@ void ScriptEditor::_menu_option(int p_option) {
current->get_text_edit()->set_line_as_breakpoint(line,dobreak);
get_debugger()->set_breakpoint(current->get_edited_script()->get_path(),line+1,dobreak);
} break;
+ case DEBUG_REMOVE_ALL_BREAKPOINTS: {
+ List<int> bpoints;
+ current->get_text_edit()->get_breakpoints(&bpoints);
+
+ for(List<int>::Element *E=bpoints.front();E;E=E->next()) {
+ int line = E->get();
+ bool dobreak = !current->get_text_edit()->is_line_set_as_breakpoint(line);
+ current->get_text_edit()->set_line_as_breakpoint(line,dobreak);
+ get_debugger()->set_breakpoint(current->get_edited_script()->get_path(),line+1,dobreak);
+ }
+ }
+ case DEBUG_GOTO_NEXT_BREAKPOINT: {
+ List<int> bpoints;
+ current->get_text_edit()->get_breakpoints(&bpoints);
+ if (bpoints.size() <= 0) {
+ return;
+ }
+
+ int line=current->get_text_edit()->cursor_get_line();
+ // wrap around
+ if (line >= bpoints[bpoints.size() - 1]) {
+ current->get_text_edit()->cursor_set_line(bpoints[0]);
+ } else {
+ for(List<int>::Element *E=bpoints.front();E;E=E->next()) {
+ int bline = E->get();
+ if (bline > line) {
+ current->get_text_edit()->cursor_set_line(bline);
+ return;
+ }
+ }
+ }
+
+ } break;
+ case DEBUG_GOTO_PREV_BREAKPOINT: {
+ List<int> bpoints;
+ current->get_text_edit()->get_breakpoints(&bpoints);
+ if (bpoints.size() <= 0) {
+ return;
+ }
+
+ int line=current->get_text_edit()->cursor_get_line();
+ // wrap around
+ if (line <= bpoints[0]) {
+ current->get_text_edit()->cursor_set_line(bpoints[bpoints.size() - 1]);
+ } else {
+ for(List<int>::Element *E=bpoints.back();E;E=E->prev()) {
+ int bline = E->get();
+ if (bline < line) {
+ current->get_text_edit()->cursor_set_line(bline);
+ return;
+ }
+ }
+ }
+
+ } break;
case DEBUG_NEXT: {
if (debugger)
@@ -1969,6 +2103,7 @@ void ScriptEditor::edit(const Ref<Script>& p_script) {
ste->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
ste->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
ste->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
+ ste->get_text_edit()->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/show_breakpoint_gutter"));
ste->get_text_edit()->set_callhint_settings(
EditorSettings::get_singleton()->get("text_editor/put_callhint_tooltip_below_current_line"),
EditorSettings::get_singleton()->get("text_editor/callhint_tooltip_offset"));
@@ -2103,6 +2238,13 @@ void ScriptEditor::_editor_settings_changed() {
autosave_timer->stop();
}
+ if (current_theme == "") {
+ current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme");
+ } else if (current_theme != EditorSettings::get_singleton()->get("text_editor/color_theme")) {
+ current_theme = EditorSettings::get_singleton()->get("text_editor/color_theme");
+ EditorSettings::get_singleton()->load_text_editor_theme();
+ }
+
for(int i=0;i<tab_container->get_child_count();i++) {
ScriptTextEditor *ste = tab_container->get_child(i)->cast_to<ScriptTextEditor>();
@@ -2118,6 +2260,7 @@ void ScriptEditor::_editor_settings_changed() {
ste->get_text_edit()->set_highlight_all_occurrences(EditorSettings::get_singleton()->get("text_editor/highlight_all_occurrences"));
ste->get_text_edit()->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/caret_blink"));
ste->get_text_edit()->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/caret_blink_speed"));
+ ste->get_text_edit()->set_draw_breakpoint_gutter(EditorSettings::get_singleton()->get("text_editor/show_breakpoint_gutter"));
}
}
@@ -2343,8 +2486,14 @@ void ScriptEditor::set_scene_root_script( Ref<Script> p_script ) {
}
}
+void ScriptEditor::set_live_auto_reload_running_scripts(bool p_enabled) {
+
+ auto_reload_running_scripts=p_enabled;
+}
+
void ScriptEditor::_bind_methods() {
+ ObjectTypeDB::bind_method("_file_dialog_action",&ScriptEditor::_file_dialog_action);
ObjectTypeDB::bind_method("_tab_changed",&ScriptEditor::_tab_changed);
ObjectTypeDB::bind_method("_menu_option",&ScriptEditor::_menu_option);
ObjectTypeDB::bind_method("_close_current_tab",&ScriptEditor::_close_current_tab);
@@ -2372,13 +2521,18 @@ void ScriptEditor::_bind_methods() {
ObjectTypeDB::bind_method("_request_help",&ScriptEditor::_help_class_open);
ObjectTypeDB::bind_method("_history_forward",&ScriptEditor::_history_forward);
ObjectTypeDB::bind_method("_history_back",&ScriptEditor::_history_back);
+ ObjectTypeDB::bind_method("_live_auto_reload_running_scripts",&ScriptEditor::_live_auto_reload_running_scripts);
+
}
ScriptEditor::ScriptEditor(EditorNode *p_editor) {
+ current_theme = "";
+
completion_cache = memnew( EditorScriptCodeCompletionCache );
restoring_layout=false;
waiting_update_names=false;
+ auto_reload_running_scripts=false;
editor=p_editor;
menu_hb = memnew( HBoxContainer );
@@ -2414,6 +2568,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
file_menu->get_popup()->add_item(TTR("History Prev"),WINDOW_PREV,KEY_MASK_CTRL|KEY_MASK_ALT|KEY_LEFT);
file_menu->get_popup()->add_item(TTR("History Next"),WINDOW_NEXT,KEY_MASK_CTRL|KEY_MASK_ALT|KEY_RIGHT);
file_menu->get_popup()->add_separator();
+ file_menu->get_popup()->add_item(TTR("Import Theme"), FILE_IMPORT_THEME);
+ file_menu->get_popup()->add_item(TTR("Reload Theme"), FILE_RELOAD_THEME);
+ file_menu->get_popup()->add_item(TTR("Save Theme"), FILE_SAVE_THEME);
+ file_menu->get_popup()->add_item(TTR("Save Theme As"), FILE_SAVE_THEME_AS);
+ file_menu->get_popup()->add_separator();
file_menu->get_popup()->add_item(TTR("Close"),FILE_CLOSE,KEY_MASK_CMD|KEY_W);
file_menu->get_popup()->connect("item_pressed", this,"_menu_option");
@@ -2441,7 +2600,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
#else
edit_menu->get_popup()->add_item(TTR("Complete Symbol"),EDIT_COMPLETE,KEY_MASK_CMD|KEY_SPACE);
#endif
- edit_menu->get_popup()->add_item("Trim Trailing Whitespace", EDIT_TRIM_TRAILING_WHITESAPCE, KEY_MASK_CTRL|KEY_MASK_ALT|KEY_T);
+ edit_menu->get_popup()->add_item(TTR("Trim Trailing Whitespace"), EDIT_TRIM_TRAILING_WHITESAPCE, KEY_MASK_CTRL|KEY_MASK_ALT|KEY_T);
edit_menu->get_popup()->add_item(TTR("Auto Indent"),EDIT_AUTO_INDENT,KEY_MASK_CMD|KEY_I);
edit_menu->get_popup()->connect("item_pressed", this,"_menu_option");
@@ -2451,6 +2610,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
search_menu->set_text(TTR("Search"));
search_menu->get_popup()->add_item(TTR("Find.."),SEARCH_FIND,KEY_MASK_CMD|KEY_F);
search_menu->get_popup()->add_item(TTR("Find Next"),SEARCH_FIND_NEXT,KEY_F3);
+ search_menu->get_popup()->add_item(TTR("Find Previous"),SEARCH_FIND_PREV,KEY_MASK_SHIFT|KEY_F3);
search_menu->get_popup()->add_item(TTR("Replace.."),SEARCH_REPLACE,KEY_MASK_CMD|KEY_R);
search_menu->get_popup()->add_separator();
search_menu->get_popup()->add_item(TTR("Goto Function.."),SEARCH_LOCATE_FUNCTION,KEY_MASK_SHIFT|KEY_MASK_CMD|KEY_F);
@@ -2470,6 +2630,9 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
menu_hb->add_child(debug_menu);
debug_menu->set_text(TTR("Debug"));
debug_menu->get_popup()->add_item(TTR("Toggle Breakpoint"),DEBUG_TOGGLE_BREAKPOINT,KEY_F9);
+ debug_menu->get_popup()->add_item(TTR("Remove All Breakpoints"), DEBUG_REMOVE_ALL_BREAKPOINTS, KEY_MASK_CTRL|KEY_MASK_SHIFT|KEY_F9);
+ debug_menu->get_popup()->add_item(TTR("Goto Next Breakpoint"), DEBUG_GOTO_NEXT_BREAKPOINT, KEY_MASK_CTRL|KEY_PERIOD);
+ debug_menu->get_popup()->add_item(TTR("Goto Previous Breakpoint"), DEBUG_GOTO_PREV_BREAKPOINT, KEY_MASK_CTRL|KEY_COMMA);
debug_menu->get_popup()->add_separator();
debug_menu->get_popup()->add_item(TTR("Step Over"),DEBUG_NEXT,KEY_F10);
debug_menu->get_popup()->add_item(TTR("Step Into"),DEBUG_STEP,KEY_F11);
@@ -2477,7 +2640,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
debug_menu->get_popup()->add_item(TTR("Break"),DEBUG_BREAK);
debug_menu->get_popup()->add_item(TTR("Continue"),DEBUG_CONTINUE);
debug_menu->get_popup()->add_separator();
- //debug_menu->get_popup()->add_check_item(TTR("Show Debugger"),DEBUG_SHOW);
+ //debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW);
debug_menu->get_popup()->add_check_item(TTR("Keep Debugger Open"),DEBUG_SHOW_KEEP_OPEN);
debug_menu->get_popup()->connect("item_pressed", this,"_menu_option");
@@ -2523,7 +2686,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
site_search->set_text(TTR("Tutorials"));
site_search->connect("pressed",this,"_menu_option",varray(SEARCH_WEBSITE));
menu_hb->add_child(site_search);
- site_search->set_tooltip(TTR("Open http://www.godotengine.org at tutorials section."));
+ site_search->set_tooltip(TTR("Open https://godotengine.org at tutorials section."));
class_search = memnew( ToolButton );
class_search->set_text(TTR("Classes"));
@@ -2555,9 +2718,6 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
tab_container->connect("tab_changed", this,"_tab_changed");
- find_replace_dialog = memnew(FindReplaceDialog);
- add_child(find_replace_dialog);
-
erase_tab_confirm = memnew( ConfirmationDialog );
add_child(erase_tab_confirm);
erase_tab_confirm->connect("confirmed", this,"_close_current_tab");
@@ -2567,6 +2727,11 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
add_child(script_create_dialog);
script_create_dialog->connect("script_created", this, "_script_created");
+ file_dialog_option = -1;
+ file_dialog = memnew( EditorFileDialog );
+ add_child(file_dialog);
+ file_dialog->connect("file_selected", this,"_file_dialog_action");
+
goto_line_dialog = memnew(GotoLineDialog);
add_child(goto_line_dialog);
@@ -2581,7 +2746,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
disk_changed->set_child_rect(vbc);
Label *dl = memnew( Label );
- dl->set_text("The following files are newer on disk.\nWhat action should be taken?:");
+ dl->set_text(TTR("The following files are newer on disk.\nWhat action should be taken?:"));
vbc->add_child(dl);
disk_changed_list = memnew( Tree );
@@ -2729,6 +2894,8 @@ void ScriptEditorPlugin::edited_scene_changed() {
script_editor->edited_scene_changed();
}
+
+
ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) {
editor=p_node;
diff --git a/tools/editor/plugins/script_editor_plugin.h b/tools/editor/plugins/script_editor_plugin.h
index 68aef4d39c..4eb3519059 100644
--- a/tools/editor/plugins/script_editor_plugin.h
+++ b/tools/editor/plugins/script_editor_plugin.h
@@ -122,6 +122,10 @@ class ScriptEditor : public VBoxContainer {
FILE_SAVE,
FILE_SAVE_AS,
FILE_SAVE_ALL,
+ FILE_IMPORT_THEME,
+ FILE_RELOAD_THEME,
+ FILE_SAVE_THEME,
+ FILE_SAVE_THEME_AS,
FILE_CLOSE,
EDIT_UNDO,
EDIT_REDO,
@@ -140,6 +144,7 @@ class ScriptEditor : public VBoxContainer {
EDIT_CLONE_DOWN,
SEARCH_FIND,
SEARCH_FIND_NEXT,
+ SEARCH_FIND_PREV,
SEARCH_REPLACE,
SEARCH_LOCATE_FUNCTION,
SEARCH_GOTO_LINE,
@@ -147,6 +152,9 @@ class ScriptEditor : public VBoxContainer {
SEARCH_CLASSES,
SEARCH_WEBSITE,
DEBUG_TOGGLE_BREAKPOINT,
+ DEBUG_REMOVE_ALL_BREAKPOINTS,
+ DEBUG_GOTO_NEXT_BREAKPOINT,
+ DEBUG_GOTO_PREV_BREAKPOINT,
DEBUG_NEXT,
DEBUG_STEP,
DEBUG_BREAK,
@@ -179,13 +187,15 @@ class ScriptEditor : public VBoxContainer {
ItemList *script_list;
HSplitContainer *script_split;
TabContainer *tab_container;
- FindReplaceDialog *find_replace_dialog;
+ EditorFileDialog *file_dialog;
GotoLineDialog *goto_line_dialog;
ConfirmationDialog *erase_tab_confirm;
ScriptCreateDialog *script_create_dialog;
ScriptEditorDebugger* debugger;
ToolButton *scripts_visible;
+ String current_theme;
+
TextureFrame *script_icon;
Label *script_name_label;
@@ -226,6 +236,10 @@ class ScriptEditor : public VBoxContainer {
bool grab_focus_block;
+ bool pending_auto_reload;
+ bool auto_reload_running_scripts;
+ void _live_auto_reload_running_scripts();
+
ScriptEditorQuickOpen *quick_open;
EditorScriptCodeCompletionCache *completion_cache;
@@ -277,6 +291,8 @@ class ScriptEditor : public VBoxContainer {
void _update_script_colors();
void _update_modified_scripts_for_external_editor();
+ int file_dialog_option;
+ void _file_dialog_action(String p_file);
static ScriptEditor *script_editor;
protected:
@@ -310,6 +326,7 @@ public:
virtual void edited_scene_changed();
ScriptEditorDebugger *get_debugger() { return debugger; }
+ void set_live_auto_reload_running_scripts(bool p_enabled);
ScriptEditor(EditorNode *p_editor);
~ScriptEditor();
@@ -345,6 +362,7 @@ public:
virtual void get_breakpoints(List<String> *p_breakpoints);
+
virtual void edited_scene_changed();
ScriptEditorPlugin(EditorNode *p_node);
diff --git a/tools/editor/plugins/shader_editor_plugin.cpp b/tools/editor/plugins/shader_editor_plugin.cpp
index 8a65a3641f..0ca6a069bc 100644
--- a/tools/editor/plugins/shader_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_editor_plugin.cpp
@@ -88,6 +88,10 @@ void ShaderTextEditor::_load_theme_settings() {
get_text_edit()->add_color_override("number_color",EDITOR_DEF("text_editor/number_color",Color(0.9,0.6,0.0,2)));
get_text_edit()->add_color_override("function_color",EDITOR_DEF("text_editor/function_color",Color(0.4,0.6,0.8)));
get_text_edit()->add_color_override("member_variable_color",EDITOR_DEF("text_editor/member_variable_color",Color(0.9,0.3,0.3)));
+ get_text_edit()->add_color_override("mark_color", EDITOR_DEF("text_editor/mark_color", Color(1.0,0.4,0.4,0.4)));
+ get_text_edit()->add_color_override("breakpoint_color", EDITOR_DEF("text_editor/breakpoint_color", Color(0.8,0.8,0.4,0.2)));
+ get_text_edit()->add_color_override("search_result_color",EDITOR_DEF("text_editor/search_result_color",Color(0.05,0.25,0.05,1)));
+ get_text_edit()->add_color_override("search_result_border_color",EDITOR_DEF("text_editor/search_result_border_color",Color(0.1,0.45,0.1,1)));
Color keyword_color= EDITOR_DEF("text_editor/keyword_color",Color(0.5,0.0,0.2));
@@ -210,18 +214,19 @@ void ShaderEditor::_menu_option(int p_option) {
} break;
case SEARCH_FIND: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->popup_search();
+ current->get_find_replace_bar()->popup_search();
} break;
case SEARCH_FIND_NEXT: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->search_next();
+ current->get_find_replace_bar()->search_next();
+ } break;
+ case SEARCH_FIND_PREV: {
+
+ current->get_find_replace_bar()->search_prev();
} break;
case SEARCH_REPLACE: {
- find_replace_dialog->set_text_edit(current->get_text_edit());
- find_replace_dialog->popup_replace();
+ current->get_find_replace_bar()->popup_replace();
} break;
// case SEARCH_LOCATE_SYMBOL: {
@@ -505,18 +510,16 @@ ShaderEditor::ShaderEditor() {
search_menu->set_text(TTR("Search"));
search_menu->get_popup()->add_item(TTR("Find.."),SEARCH_FIND,KEY_MASK_CMD|KEY_F);
search_menu->get_popup()->add_item(TTR("Find Next"),SEARCH_FIND_NEXT,KEY_F3);
+ search_menu->get_popup()->add_item(TTR("Find Previous"),SEARCH_FIND_PREV,KEY_MASK_SHIFT|KEY_F3);
search_menu->get_popup()->add_item(TTR("Replace.."),SEARCH_REPLACE,KEY_MASK_CMD|KEY_R);
search_menu->get_popup()->add_separator();
-// search_menu->get_popup()->add_item(TTR("Locate Symbol.."),SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
+// search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
search_menu->get_popup()->add_item(TTR("Goto Line.."),SEARCH_GOTO_LINE,KEY_MASK_CMD|KEY_G);
search_menu->get_popup()->connect("item_pressed", this,"_menu_option");
tab_container->connect("tab_changed", this,"_tab_changed");
- find_replace_dialog = memnew(FindReplaceDialog);
- add_child(find_replace_dialog);
-
erase_tab_confirm = memnew( ConfirmationDialog );
add_child(erase_tab_confirm);
erase_tab_confirm->connect("confirmed", this,"_close_current_tab");
diff --git a/tools/editor/plugins/shader_editor_plugin.h b/tools/editor/plugins/shader_editor_plugin.h
index e10c10a446..9219a1fbc2 100644
--- a/tools/editor/plugins/shader_editor_plugin.h
+++ b/tools/editor/plugins/shader_editor_plugin.h
@@ -76,6 +76,7 @@ class ShaderEditor : public Control {
EDIT_SELECT_ALL,
SEARCH_FIND,
SEARCH_FIND_NEXT,
+ SEARCH_FIND_PREV,
SEARCH_REPLACE,
//SEARCH_LOCATE_SYMBOL,
SEARCH_GOTO_LINE,
@@ -88,7 +89,6 @@ class ShaderEditor : public Control {
uint64_t idle;
TabContainer *tab_container;
- FindReplaceDialog *find_replace_dialog;
GotoLineDialog *goto_line_dialog;
ConfirmationDialog *erase_tab_confirm;
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.cpp b/tools/editor/plugins/shader_graph_editor_plugin.cpp
index f618f41cf8..d567c8e9b3 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.cpp
+++ b/tools/editor/plugins/shader_graph_editor_plugin.cpp
@@ -743,7 +743,7 @@ void ShaderGraphView::_vec_op_changed(int p_op, int p_id){
void ShaderGraphView::_vec_scalar_op_changed(int p_op, int p_id){
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
- ur->create_action(TTR("Change VecxScalar Operator"));
+ ur->create_action(TTR("Change Vec Scalar Operator"));
ur->add_do_method(graph.ptr(),"vec_scalar_op_node_set_op",type,p_id,p_op);
ur->add_undo_method(graph.ptr(),"vec_scalar_op_node_set_op",type,p_id,graph->vec_scalar_op_node_get_op(type,p_id));
ur->add_do_method(this,"_update_graph");
@@ -902,7 +902,7 @@ void ShaderGraphView::_variant_edited() {
break;
}
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
- ur->create_action(TTR("Change default value"));
+ ur->create_action(TTR("Change Default Value"));
ur->add_do_method(graph.ptr(),"default_set_value",type,edited_id,edited_def, v);
ur->add_undo_method(graph.ptr(),"default_set_value",type,edited_id,edited_def, v2);
ur->add_do_method(this,"_update_graph");
@@ -1427,7 +1427,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // all inputs (case Shader type dependent)
case ShaderGraph::NODE_SCALAR_CONST: {
- gn->set_title(TTR("Scalar"));
+ gn->set_title("Scalar");
SpinBox *sb = memnew( SpinBox );
sb->set_min(-100000);
sb->set_max(100000);
@@ -1440,7 +1440,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; //scalar constant
case ShaderGraph::NODE_VEC_CONST: {
- gn->set_title(TTR("Vector"));
+ gn->set_title("Vector");
Array v3p(true);
for(int i=0;i<3;i++) {
HBoxContainer *hbc = memnew( HBoxContainer );
@@ -1469,11 +1469,11 @@ void ShaderGraphView::_create_node(int p_id) {
cpb->connect("color_changed",this,"_rgb_const_changed",varray(p_id));
gn->add_child(cpb);
Label *l = memnew( Label );
- l->set_text(TTR("RGB"));
+ l->set_text("RGB");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
l = memnew( Label );
- l->set_text(TTR("Alpha"));
+ l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@@ -1482,7 +1482,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; //rgb constant (shows a color picker instead)
case ShaderGraph::NODE_XFORM_CONST: {
- gn->set_title(TTR("XForm"));
+ gn->set_title("XForm");
ToolButton *edit = memnew( ToolButton );
edit->set_text("edit..");
edit->connect("pressed",this,"_xform_const_changed",varray(p_id,edit));
@@ -1492,7 +1492,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 4x4 matrix constant
case ShaderGraph::NODE_TIME: {
- gn->set_title(TTR("Time"));
+ gn->set_title("Time");
Label *l = memnew( Label );
l->set_text("(s)");
l->set_align(Label::ALIGN_RIGHT);
@@ -1502,24 +1502,24 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // time in seconds
case ShaderGraph::NODE_SCREEN_TEX: {
- gn->set_title(TTR("ScreenTex"));
+ gn->set_title("ScreenTex");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (!graph->is_slot_connected(type,p_id,0)) {
Vector3 v = graph->default_get_value(type, p_id, 0);
- hbc->add_child(make_editor(TTR("UV: ") + v,gn,p_id,0,Variant::VECTOR3));
+ hbc->add_child(make_editor("UV: " + v,gn,p_id,0,Variant::VECTOR3));
} else {
- hbc->add_child(make_label(TTR("UV"),Variant::VECTOR3));
+ hbc->add_child(make_label("UV",Variant::VECTOR3));
}
hbc->add_spacer();
- hbc->add_child( memnew(Label(TTR("RGB"))));
+ hbc->add_child( memnew(Label("RGB")));
gn->add_child(hbc);
gn->set_slot(0,true,ShaderGraph::SLOT_TYPE_VEC,typecol[ShaderGraph::SLOT_TYPE_VEC],true,ShaderGraph::SLOT_TYPE_VEC,typecol[ShaderGraph::SLOT_TYPE_VEC]);
} break; // screen texture sampler (takes UV) (only usable in fragment case Shader)
case ShaderGraph::NODE_SCALAR_OP: {
- gn->set_title(TTR("ScalarOp"));
+ gn->set_title("ScalarOp");
static const char* op_name[ShaderGraph::SCALAR_MAX_OP]={
("Add"),
("Sub"),
@@ -1567,7 +1567,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar vs scalar op (mul: { } break; add: { } break; div: { } break; etc)
case ShaderGraph::NODE_VEC_OP: {
- gn->set_title(TTR("VecOp"));
+ gn->set_title("VecOp");
static const char* op_name[ShaderGraph::VEC_MAX_OP]={
("Add"),
("Sub"),
@@ -1615,7 +1615,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs vec3 op (mul: { } break;ad: { } break;div: { } break;crossprod: { } break;etc)
case ShaderGraph::NODE_VEC_SCALAR_OP: {
- gn->set_title(TTR("VecScalarOp"));
+ gn->set_title("VecScalarOp");
static const char* op_name[ShaderGraph::VEC_SCALAR_MAX_OP]={
("Mul"),
("Div"),
@@ -1657,7 +1657,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs scalar op (mul: { } break; add: { } break; div: { } break; etc)
case ShaderGraph::NODE_RGB_OP: {
- gn->set_title(TTR("RGB Op"));
+ gn->set_title("RGB Op");
static const char* op_name[ShaderGraph::RGB_MAX_OP]={
("Screen"),
("Difference"),
@@ -1702,7 +1702,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs vec3 rgb op (with scalar amount): { } break; like brighten: { } break; darken: { } break; burn: { } break; dodge: { } break; multiply: { } break; etc.
case ShaderGraph::NODE_XFORM_MULT: {
- gn->set_title(TTR("XFMult"));
+ gn->set_title("XFMult");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("a",Variant::TRANSFORM));
@@ -1725,9 +1725,9 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 x mat4
case ShaderGraph::NODE_XFORM_VEC_MULT: {
- gn->set_title(TTR("XFVecMult"));
+ gn->set_title("XFVecMult");
- CheckBox *button = memnew (CheckBox(TTR("RotOnly")));
+ CheckBox *button = memnew (CheckBox("RotOnly"));
button->set_pressed(graph->xform_vec_mult_node_get_no_translation(type,p_id));
button->connect("toggled",this,"_xform_inv_rev_changed",varray(p_id));
@@ -1758,10 +1758,10 @@ void ShaderGraphView::_create_node(int p_id) {
} break;
case ShaderGraph::NODE_XFORM_VEC_INV_MULT: {
- gn->set_title(TTR("XFVecInvMult"));
+ gn->set_title("XFVecInvMult");
- CheckBox *button = memnew( CheckBox(TTR("RotOnly")));
+ CheckBox *button = memnew( CheckBox("RotOnly"));
button->set_pressed(graph->xform_vec_mult_node_get_no_translation(type,p_id));
button->connect("toggled",this,"_xform_inv_rev_changed",varray(p_id));
@@ -1793,7 +1793,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 x vec3 inverse mult (with no-translation option)
case ShaderGraph::NODE_SCALAR_FUNC: {
- gn->set_title(TTR("ScalarFunc"));
+ gn->set_title("ScalarFunc");
static const char* func_name[ShaderGraph::SCALAR_MAX_FUNC]={
("Sin"),
("Cos"),
@@ -1846,7 +1846,7 @@ void ShaderGraphView::_create_node(int p_id) {
- gn->set_title(TTR("VecFunc"));
+ gn->set_title("VecFunc");
static const char* func_name[ShaderGraph::VEC_MAX_FUNC]={
("Normalize"),
("Saturate"),
@@ -1882,7 +1882,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vector function (normalize: { } break; negate: { } break; reciprocal: { } break; rgb2hsv: { } break; hsv2rgb: { } break; etc: { } break; etc)
case ShaderGraph::NODE_VEC_LEN: {
- gn->set_title(TTR("VecLength"));
+ gn->set_title("VecLength");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("in", Variant::VECTOR3));
@@ -1899,7 +1899,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 length
case ShaderGraph::NODE_DOT_PROD: {
- gn->set_title(TTR("DotProduct"));
+ gn->set_title("DotProduct");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@@ -1924,7 +1924,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 . vec3 (dot product -> scalar output)
case ShaderGraph::NODE_VEC_TO_SCALAR: {
- gn->set_title(TTR("Vec2Scalar"));
+ gn->set_title("Vec2Scalar");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@@ -1955,7 +1955,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 1 vec3 input: { } break; 3 scalar outputs
case ShaderGraph::NODE_SCALAR_TO_VEC: {
- gn->set_title(TTR("Scalar2Vec"));
+ gn->set_title("Scalar2Vec");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("x", Variant::REAL));
@@ -1986,7 +1986,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 scalar input: { } break; 1 vec3 output
case ShaderGraph::NODE_VEC_TO_XFORM: {
- gn->set_title(TTR("Vec2XForm"));
+ gn->set_title("Vec2XForm");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@@ -2025,7 +2025,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 vec input: { } break; 1 xform output
case ShaderGraph::NODE_XFORM_TO_VEC: {
- gn->set_title(TTR("XForm2Vec"));
+ gn->set_title("XForm2Vec");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
@@ -2057,7 +2057,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 vec input: { } break; 1 xform output
case ShaderGraph::NODE_SCALAR_INTERP: {
- gn->set_title(TTR("ScalarInterp"));
+ gn->set_title("ScalarInterp");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@@ -2090,7 +2090,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar interpolation (with optional curve)
case ShaderGraph::NODE_VEC_INTERP: {
- gn->set_title(TTR("VecInterp"));
+ gn->set_title("VecInterp");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("a", Variant::VECTOR3));
@@ -2174,7 +2174,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar interpolation (with optional curve)
case ShaderGraph::NODE_CURVE_MAP: {
- gn->set_title(TTR("CurveMap"));
+ gn->set_title("CurveMap");
GraphCurveMapEdit * map = memnew( GraphCurveMapEdit );
DVector<Vector2> points = graph->curve_map_node_get_points(type,p_id);
@@ -2221,7 +2221,7 @@ void ShaderGraphView::_create_node(int p_id) {
case ShaderGraph::NODE_SCALAR_INPUT: {
- gn->set_title(TTR("ScalarUniform"));
+ gn->set_title("ScalarUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2238,7 +2238,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar uniform (assignable in material)
case ShaderGraph::NODE_VEC_INPUT: {
- gn->set_title(TTR("VectorUniform"));
+ gn->set_title("VectorUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2265,7 +2265,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 uniform (assignable in material)
case ShaderGraph::NODE_RGB_INPUT: {
- gn->set_title(TTR("ColorUniform"));
+ gn->set_title("ColorUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2275,11 +2275,11 @@ void ShaderGraphView::_create_node(int p_id) {
cpb->connect("color_changed",this,"_rgb_input_changed",varray(p_id));
gn->add_child(cpb);
Label *l = memnew( Label );
- l->set_text(TTR("RGB"));
+ l->set_text("RGB");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
l = memnew( Label );
- l->set_text(TTR("Alpha"));
+ l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@@ -2289,7 +2289,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // color uniform (assignable in material)
case ShaderGraph::NODE_XFORM_INPUT: {
- gn->set_title(TTR("XFUniform"));
+ gn->set_title("XFUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2303,7 +2303,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 uniform (assignable in material)
case ShaderGraph::NODE_TEXTURE_INPUT: {
- gn->set_title(TTR("TexUniform"));
+ gn->set_title("TexUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2311,7 +2311,9 @@ void ShaderGraphView::_create_node(int p_id) {
TextureFrame *tex = memnew( TextureFrame );
tex->set_expand(true);
tex->set_custom_minimum_size(Size2(80,80));
+ tex->set_drag_forwarding(this);
gn->add_child(tex);
+ tex->set_ignore_mouse(false);
tex->set_texture(graph->texture_input_node_get_value(type,p_id));
ToolButton *edit = memnew( ToolButton );
edit->set_text("edit..");
@@ -2321,18 +2323,18 @@ void ShaderGraphView::_create_node(int p_id) {
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
- hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
+ hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
- hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
+ hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
- Label *l=memnew(Label(TTR("RGB")));
+ Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
- l->set_text(TTR("Alpha"));
+ l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@@ -2342,7 +2344,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // texture input (assignable in material)
case ShaderGraph::NODE_CUBEMAP_INPUT: {
- gn->set_title(TTR("TexUniform"));
+ gn->set_title("TexUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@@ -2357,18 +2359,18 @@ void ShaderGraphView::_create_node(int p_id) {
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
- hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
+ hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
- hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
+ hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
- Label *l=memnew(Label(TTR("RGB")));
+ Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
- l->set_text(TTR("Alpha"));
+ l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@@ -2378,22 +2380,22 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // cubemap input (assignable in material)
case ShaderGraph::NODE_DEFAULT_TEXTURE: {
- gn->set_title(TTR("CanvasItemTex"));
+ gn->set_title("CanvasItemTex");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
- hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
+ hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
- hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
+ hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
- Label *l=memnew(Label(TTR("RGB")));
+ Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
- l->set_text(TTR("Alpha"));
+ l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@@ -2404,7 +2406,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // screen texture sampler (takes UV) (only usable in fragment case Shader)
case ShaderGraph::NODE_OUTPUT: {
- gn->set_title(TTR("Output"));
+ gn->set_title("Output");
gn->set_show_close_button(false);
List<ShaderGraph::SlotInfo> si;
@@ -2412,22 +2414,22 @@ void ShaderGraphView::_create_node(int p_id) {
Array colors;
colors.push_back("Color");
- colors.push_back(TTR("LightColor"));
+ colors.push_back("LightColor");
colors.push_back("Light");
- colors.push_back(TTR("Diffuse"));
- colors.push_back(TTR("Specular"));
- colors.push_back(TTR("Emmision"));
+ colors.push_back("Diffuse");
+ colors.push_back("Specular");
+ colors.push_back("Emmision");
Array reals;
- reals.push_back(TTR("Alpha"));
- reals.push_back(TTR("DiffuseAlpha"));
- reals.push_back(TTR("NormalMapDepth"));
- reals.push_back(TTR("SpecExp"));
- reals.push_back(TTR("Glow"));
- reals.push_back(TTR("ShadeParam"));
- reals.push_back(TTR("SpecularExp"));
- reals.push_back(TTR("LightAlpha"));
- reals.push_back(TTR("PointSize"));
- reals.push_back(TTR("Discard"));
+ reals.push_back("Alpha");
+ reals.push_back("DiffuseAlpha");
+ reals.push_back("NormalMapDepth");
+ reals.push_back("SpecExp");
+ reals.push_back("Glow");
+ reals.push_back("ShadeParam");
+ reals.push_back("SpecularExp");
+ reals.push_back("LightAlpha");
+ reals.push_back("PointSize");
+ reals.push_back("Discard");
int idx=0;
for (List<ShaderGraph::SlotInfo>::Element *E=si.front();E;E=E->next()) {
@@ -2448,7 +2450,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // output (case Shader type dependent)
case ShaderGraph::NODE_COMMENT: {
- gn->set_title(TTR("Comment"));
+ gn->set_title("Comment");
TextEdit *te = memnew(TextEdit);
te->set_custom_minimum_size(Size2(100,100));
gn->add_child(te);
@@ -2517,6 +2519,105 @@ void ShaderGraphView::_sg_updated() {
}
}
+Variant ShaderGraphView::get_drag_data_fw(const Point2 &p_point, Control *p_from)
+{
+ TextureFrame* frame = p_from->cast_to<TextureFrame>();
+ if (!frame)
+ return Variant();
+
+ if (!frame->get_texture().is_valid())
+ return Variant();
+
+ RES res = frame->get_texture();
+ return EditorNode::get_singleton()->drag_resource(res,p_from);
+
+ return Variant();
+}
+
+bool ShaderGraphView::can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const
+{
+ if (p_data.get_type() != Variant::DICTIONARY)
+ return false;
+
+ Dictionary d = p_data;
+
+ if (d.has("type")){
+ if (d["type"] == "resource" && d.has("resource")) {
+ Variant val = d["resource"];
+
+ if (val.get_type()==Variant::OBJECT) {
+ RES res = val;
+ if (res.is_valid() && res->cast_to<Texture>())
+ return true;
+ }
+ }
+ else if (d["type"] == "files" && d.has("files")) {
+ Vector<String> files = d["files"];
+ if (files.size() != 1)
+ return false;
+ return (ResourceLoader::get_resource_type(files[0]) == "ImageTexture");
+ }
+ }
+
+ return false;
+}
+
+void ShaderGraphView::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from)
+{
+ if (!can_drop_data_fw(p_point, p_data, p_from))
+ return;
+
+ TextureFrame *frame = p_from->cast_to<TextureFrame>();
+ if (!frame)
+ return;
+
+ Dictionary d = p_data;
+ Ref<Texture> tex;
+
+ if (d.has("type")) {
+ if (d["type"] == "resource" && d.has("resource")){
+ Variant val = d["resource"];
+
+ if (val.get_type()==Variant::OBJECT) {
+ RES res = val;
+ if (res.is_valid())
+ tex = Ref<Texture>(res->cast_to<Texture>());
+ }
+ }
+ else if (d["type"] == "files" && d.has("files")) {
+ Vector<String> files = d["files"];
+ RES res = ResourceLoader::load(files[0]);
+ if (res.is_valid())
+ tex = Ref<Texture>(res->cast_to<Texture>());
+ }
+ }
+
+ if (!tex.is_valid()) return;
+
+ GraphNode *gn = frame->get_parent()->cast_to<GraphNode>();
+ if (!gn) return;
+
+ int id = -1;
+ for(Map<int,GraphNode*>::Element *E = node_map.front();E;E=E->next())
+ if (E->get() == gn) {
+ id = E->key();
+ break;
+ }
+ print_line(String::num(double(id)));
+ if (id < 0) return;
+
+ if (graph->node_get_type(type,id)==ShaderGraph::NODE_TEXTURE_INPUT) {
+
+ UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action(TTR("Change Texture Uniform"));
+ ur->add_do_method(graph.ptr(),"texture_input_node_set_value",type,id,tex);
+ ur->add_undo_method(graph.ptr(),"texture_input_node_set_value",type,id,graph->texture_input_node_get_value(type,id));
+ ur->add_do_method(this,"_update_graph");
+ ur->add_undo_method(this,"_update_graph");
+ ur->commit_action();
+ }
+}
+
void ShaderGraphView::set_graph(Ref<ShaderGraph> p_graph){
@@ -2623,6 +2724,10 @@ void ShaderGraphView::_bind_methods() {
ObjectTypeDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed);
ObjectTypeDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed);
+ ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw);
+ ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw);
+ ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw);
+
ObjectTypeDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated);
}
diff --git a/tools/editor/plugins/shader_graph_editor_plugin.h b/tools/editor/plugins/shader_graph_editor_plugin.h
index 0336696911..8d1d08ee1d 100644
--- a/tools/editor/plugins/shader_graph_editor_plugin.h
+++ b/tools/editor/plugins/shader_graph_editor_plugin.h
@@ -116,9 +116,9 @@ public:
GraphCurveMapEdit();
};
-class ShaderGraphView : public Node {
+class ShaderGraphView : public Control {
- OBJ_TYPE(ShaderGraphView,Node);
+ OBJ_TYPE(ShaderGraphView,Control);
@@ -181,6 +181,10 @@ class ShaderGraphView : public Node {
void _curve_changed(int p_id,Node* p_curve);
void _sg_updated();
Map<int,GraphNode*> node_map;
+
+ Variant get_drag_data_fw(const Point2& p_point,Control* p_from);
+ bool can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const;
+ void drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from);
protected:
void _notification(int p_what);
static void _bind_methods();
diff --git a/tools/editor/plugins/spatial_editor_plugin.cpp b/tools/editor/plugins/spatial_editor_plugin.cpp
index fa709eb0cb..e261b48f67 100644
--- a/tools/editor/plugins/spatial_editor_plugin.cpp
+++ b/tools/editor/plugins/spatial_editor_plugin.cpp
@@ -561,7 +561,7 @@ void SpatialEditorViewport::_select_region() {
void SpatialEditorViewport::_update_name() {
- String ortho = orthogonal?TTR("Orthogonal"):"Perspective";
+ String ortho = orthogonal?TTR("Orthogonal"):TTR("Perspective");
if (name!="")
view_menu->set_text("[ "+name+" "+ortho+" ]");
@@ -1229,7 +1229,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
case InputEvent::MOUSE_MOTION: {
const InputEventMouseMotion &m=p_event.mouse_motion;
_edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
-
+
if (spatial_editor->get_selected()) {
@@ -1265,7 +1265,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
NavigationMode nav_mode = NAVIGATION_NONE;
-
+
if (_edit.gizmo.is_valid()) {
Plane plane=Plane(_edit.gizmo_initial_pos,_get_camera_normal());
@@ -1353,7 +1353,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
scale = Math::stepify(scale,spatial_editor->get_scale_snap());
}
- set_message(TTR("Scaling to ")+String::num(scale,1)+"%.");
+ set_message(vformat(TTR("Scaling to %s%%."),String::num(scale,1)));
scale/=100.0;
Transform r;
@@ -1431,7 +1431,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
motion.snap(snap);
}
- //set_message(TTR("Translating: ")+motion);
+ //set_message("Translating: "+motion);
List<Node*> &selection = editor_selection->get_selected_node_list();
@@ -1493,13 +1493,13 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (snap) {
angle=Math::rad2deg(angle)+snap*0.5; //else it wont reach +180
angle-=Math::fmod(angle,snap);
- set_message(TTR("Rotating ")+rtos(angle)+" degrees.");
+ set_message(vformat(TTR("Rotating %s degrees."),rtos(angle)));
angle=Math::deg2rad(angle);
} else
- set_message(TTR("Rotating ")+rtos(Math::rad2deg(angle))+" degrees.");
+ set_message(vformat(TTR("Rotating %s degrees."),rtos(Math::rad2deg(angle))));
} else {
- set_message(TTR("Rotating ")+rtos(Math::rad2deg(angle))+" degrees.");
+ set_message(vformat(TTR("Rotating %s degrees."),rtos(Math::rad2deg(angle))));
}
@@ -1591,7 +1591,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
mod=KEY_CONTROL;
if (m.mod.meta)
mod=KEY_META;
-
+
if(mod){
if (mod == _get_key_modifier("3d_editor/pan_modifier"))
nav_mode = NAVIGATION_PAN;
@@ -1815,7 +1815,7 @@ void SpatialEditorViewport::_notification(int p_what) {
if (visible)
_update_camera();
-
+
call_deferred("update_transform_gizmo_view");
}
@@ -1967,7 +1967,7 @@ void SpatialEditorViewport::_draw() {
if (surface->has_focus()) {
Size2 size = surface->get_size();
Rect2 r =Rect2(Point2(),size);
- get_stylebox(TTR("EditorFocus"),"EditorStyles")->draw(surface->get_canvas_item(),r);
+ get_stylebox("EditorFocus","EditorStyles")->draw(surface->get_canvas_item(),r);
}
@@ -2482,7 +2482,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu->get_popup()->add_check_item(TTR("Orthogonal (Num5)"),VIEW_ORTHOGONAL);
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_PERSPECTIVE),true);
view_menu->get_popup()->add_separator();
- view_menu->get_popup()->add_check_item("Environment",VIEW_ENVIRONMENT);
+ view_menu->get_popup()->add_check_item(TTR("Environment"),VIEW_ENVIRONMENT);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(VIEW_ENVIRONMENT),true);
view_menu->get_popup()->add_separator();
view_menu->get_popup()->add_check_item(TTR("Audio Listener"),VIEW_AUDIO_LISTENER);
@@ -3945,7 +3945,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
tool_button[TOOL_MODE_LIST_SELECT]->set_flat(true);
button_binds[0]=MENU_TOOL_LIST_SELECT;
tool_button[TOOL_MODE_LIST_SELECT]->connect("pressed", this,"_menu_item_pressed",button_binds);
- tool_button[TOOL_MODE_LIST_SELECT]->set_tooltip("Show a list of all objects at the position clicked\n(same as Alt+RMB in selet mode).");
+ tool_button[TOOL_MODE_LIST_SELECT]->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode)."));
vs = memnew( VSeparator );
hbc_menu->add_child(vs);
@@ -3954,7 +3954,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
PopupMenu *p;
transform_menu = memnew( MenuButton );
- transform_menu->set_text("Transform");
+ transform_menu->set_text(TTR("Transform"));
hbc_menu->add_child( transform_menu );
p = transform_menu->get_popup();
@@ -3979,12 +3979,12 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) {
p->add_check_item(TTR("Use Default sRGB"),MENU_VIEW_USE_DEFAULT_SRGB);
p->add_separator();
- p->add_check_item("1 Viewport",MENU_VIEW_USE_1_VIEWPORT,KEY_MASK_CMD+KEY_1);
- p->add_check_item("2 Viewports",MENU_VIEW_USE_2_VIEWPORTS,KEY_MASK_CMD+KEY_2);
- p->add_check_item("2 Viewports (Alt)",MENU_VIEW_USE_2_VIEWPORTS_ALT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_2);
- p->add_check_item("3 Viewports",MENU_VIEW_USE_3_VIEWPORTS,KEY_MASK_CMD+KEY_3);
- p->add_check_item("3 Viewports (Alt)",MENU_VIEW_USE_3_VIEWPORTS_ALT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_3);
- p->add_check_item("4 Viewports",MENU_VIEW_USE_4_VIEWPORTS,KEY_MASK_CMD+KEY_4);
+ p->add_check_item(TTR("1 Viewport"),MENU_VIEW_USE_1_VIEWPORT,KEY_MASK_CMD+KEY_1);
+ p->add_check_item(TTR("2 Viewports"),MENU_VIEW_USE_2_VIEWPORTS,KEY_MASK_CMD+KEY_2);
+ p->add_check_item(TTR("2 Viewports (Alt)"),MENU_VIEW_USE_2_VIEWPORTS_ALT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_2);
+ p->add_check_item(TTR("3 Viewports"),MENU_VIEW_USE_3_VIEWPORTS,KEY_MASK_CMD+KEY_3);
+ p->add_check_item(TTR("3 Viewports (Alt)"),MENU_VIEW_USE_3_VIEWPORTS_ALT,KEY_MASK_SHIFT+KEY_MASK_CMD+KEY_3);
+ p->add_check_item(TTR("4 Viewports"),MENU_VIEW_USE_4_VIEWPORTS,KEY_MASK_CMD+KEY_4);
p->add_separator();
p->add_check_item(TTR("Display Normal"),MENU_VIEW_DISPLAY_NORMAL);
diff --git a/tools/editor/plugins/sprite_frames_editor_plugin.cpp b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
index b2f10ccaae..4532e91e1f 100644
--- a/tools/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/tools/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -78,7 +78,7 @@ void SpriteFramesEditor::_file_load_request(const DVector<String>& p_path,int p_
if (resource.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load frame resource!"));
dialog->set_title(TTR("Error!"));
- //dialog->get_cancel()->set_text(TTR("Close"));
+ //dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@@ -152,7 +152,7 @@ void SpriteFramesEditor::_item_edited() {
}
RES samp = frames->get_resource(old_name);
- undo_redo->create_action(TTR("Rename Resource"));
+ undo_redo->create_action("Rename Resource");
undo_redo->add_do_method(frames,"remove_resource",old_name);
undo_redo->add_do_method(frames,"add_resource",new_name,samp);
undo_redo->add_undo_method(frames,"remove_resource",new_name);
@@ -198,7 +198,7 @@ void SpriteFramesEditor::_paste_pressed() {
if (!r.is_valid()) {
dialog->set_text(TTR("Resource clipboard is empty or not a texture!"));
dialog->set_title(TTR("Error!"));
- //dialog->get_cancel()->set_text(TTR("Close"));
+ //dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@@ -333,11 +333,11 @@ void SpriteFramesEditor::_delete_pressed() {
_delete_confirm_pressed(); //it has undo.. why bother with a dialog..
/*
- dialog->set_title(TTR("Confirm..."));
- dialog->set_text(TTR("Remove Resource '")+tree->get_selected()->get_text(0)+"' ?");
- //dialog->get_cancel()->set_text(TTR("Cancel"));
+ dialog->set_title("Confirm...");
+ dialog->set_text("Remove Resource '"+tree->get_selected()->get_text(0)+"' ?");
+ //dialog->get_cancel()->set_text("Cancel");
//dialog->get_ok()->show();
- dialog->get_ok()->set_text(TTR("Remove"));
+ dialog->get_ok()->set_text("Remove");
dialog->popup_centered(Size2(300,60));*/
}
@@ -530,7 +530,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) {
if (frames->get_frame(edited_anim,i).is_null()) {
- name=itos(i)+TTR(": (empty)");
+ name=itos(i)+": "+TTR("(empty)");
} else {
name=itos(i)+": "+frames->get_frame(edited_anim,i)->get_name();
diff --git a/tools/editor/plugins/stream_editor_plugin.h b/tools/editor/plugins/stream_editor_plugin.h
index 90046a5fdf..5730612d61 100644
--- a/tools/editor/plugins/stream_editor_plugin.h
+++ b/tools/editor/plugins/stream_editor_plugin.h
@@ -69,7 +69,7 @@ class StreamEditorPlugin : public EditorPlugin {
public:
- virtual String get_name() const { return TTR("Stream"); }
+ virtual String get_name() const { return "Stream"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
diff --git a/tools/editor/plugins/texture_editor_plugin.cpp b/tools/editor/plugins/texture_editor_plugin.cpp
new file mode 100644
index 0000000000..1305e91105
--- /dev/null
+++ b/tools/editor/plugins/texture_editor_plugin.cpp
@@ -0,0 +1,141 @@
+#include "texture_editor_plugin.h"
+
+#include "io/resource_loader.h"
+#include "globals.h"
+#include "tools/editor/editor_settings.h"
+
+void TextureEditor::_input_event(InputEvent p_event) {
+
+
+}
+
+void TextureEditor::_notification(int p_what) {
+
+ if (p_what==NOTIFICATION_FIXED_PROCESS) {
+
+ }
+
+
+ if (p_what==NOTIFICATION_READY) {
+
+ //get_scene()->connect("node_removed",this,"_node_removed");
+
+ }
+
+ if (p_what==NOTIFICATION_DRAW) {
+
+
+ Ref<Texture> checkerboard = get_icon("Checkerboard","EditorIcons");
+ Size2 size = get_size();
+
+ draw_texture_rect(checkerboard,Rect2(Point2(),size),true);
+
+ int tex_width = texture->get_width() * size.height / texture ->get_height();
+ int tex_height = size.height;
+
+ if (tex_width>size.width) {
+ tex_width=size.width;
+ tex_height=texture->get_height() * tex_width / texture->get_width();
+ }
+
+ int ofs_x = (size.width - tex_width)/2;
+ int ofs_y = (size.height - tex_height)/2;
+
+ draw_texture_rect(texture,Rect2(ofs_x,ofs_y,tex_width,tex_height));
+
+ Ref<Font> font = get_font("font","Label");
+
+ String format;
+ if (texture->cast_to<ImageTexture>()) {
+ format = Image::get_format_name(texture->cast_to<ImageTexture>()->get_format());
+ } else {
+ format=texture->get_type();
+ }
+ String text = itos(texture->get_width())+"x"+itos(texture->get_height())+" "+format;
+
+ Size2 rect = font->get_string_size(text);
+
+ Vector2 draw_from = size-rect+Size2(-2,font->get_ascent()-2);
+ if (draw_from.x<0)
+ draw_from.x=0;
+
+ draw_string(font,draw_from+Vector2(2,2),text,Color(0,0,0,0.5),size.width);
+ draw_string(font,draw_from-Vector2(2,2),text,Color(0,0,0,0.5),size.width);
+ draw_string(font,draw_from,text,Color(1,1,1,1),size.width);
+ }
+}
+
+
+
+void TextureEditor::edit(Ref<Texture> p_texture) {
+
+ texture=p_texture;
+
+ if (!texture.is_null())
+ update();
+ else {
+
+ hide();
+ }
+
+}
+
+
+
+void TextureEditor::_bind_methods() {
+
+ ObjectTypeDB::bind_method(_MD("_input_event"),&TextureEditor::_input_event);
+
+}
+
+TextureEditor::TextureEditor() {
+
+ set_custom_minimum_size(Size2(1,150));
+
+}
+
+
+void TextureEditorPlugin::edit(Object *p_object) {
+
+ Texture * s = p_object->cast_to<Texture>();
+ if (!s)
+ return;
+
+ texture_editor->edit(Ref<Texture>(s));
+}
+
+bool TextureEditorPlugin::handles(Object *p_object) const {
+
+ return p_object->is_type("Texture");
+}
+
+void TextureEditorPlugin::make_visible(bool p_visible) {
+
+ if (p_visible) {
+ texture_editor->show();
+// texture_editor->set_process(true);
+ } else {
+
+ texture_editor->hide();
+// texture_editor->set_process(false);
+ }
+
+}
+
+TextureEditorPlugin::TextureEditorPlugin(EditorNode *p_node) {
+
+ editor=p_node;
+ texture_editor = memnew( TextureEditor );
+ add_control_to_container(CONTAINER_PROPERTY_EDITOR_BOTTOM,texture_editor);
+ texture_editor->hide();
+
+
+
+}
+
+
+TextureEditorPlugin::~TextureEditorPlugin()
+{
+}
+
+
diff --git a/tools/editor/plugins/texture_editor_plugin.h b/tools/editor/plugins/texture_editor_plugin.h
new file mode 100644
index 0000000000..5f58f4fcdb
--- /dev/null
+++ b/tools/editor/plugins/texture_editor_plugin.h
@@ -0,0 +1,49 @@
+#ifndef TEXTURE_EDITOR_PLUGIN_H
+#define TEXTURE_EDITOR_PLUGIN_H
+
+
+
+#include "tools/editor/editor_plugin.h"
+#include "tools/editor/editor_node.h"
+#include "scene/resources/texture.h"
+
+
+class TextureEditor : public Control {
+
+ OBJ_TYPE(TextureEditor, Control);
+
+
+ Ref<Texture> texture;
+
+protected:
+ void _notification(int p_what);
+ void _input_event(InputEvent p_event);
+ static void _bind_methods();
+public:
+
+ void edit(Ref<Texture> p_texture);
+ TextureEditor();
+};
+
+
+class TextureEditorPlugin : public EditorPlugin {
+
+ OBJ_TYPE( TextureEditorPlugin, EditorPlugin );
+
+ TextureEditor *texture_editor;
+ EditorNode *editor;
+
+public:
+
+ virtual String get_name() const { return "Texture"; }
+ bool has_main_screen() const { return false; }
+ virtual void edit(Object *p_node);
+ virtual bool handles(Object *p_node) const;
+ virtual void make_visible(bool p_visible);
+
+ TextureEditorPlugin(EditorNode *p_node);
+ ~TextureEditorPlugin();
+
+};
+
+#endif // TEXTURE_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/sprite_region_editor_plugin.cpp b/tools/editor/plugins/texture_region_editor_plugin.cpp
index 5e7816ffb5..b69b0d7a9b 100644
--- a/tools/editor/plugins/sprite_region_editor_plugin.cpp
+++ b/tools/editor/plugins/texture_region_editor_plugin.cpp
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* sprite_region_editor_plugin.cpp */
+/* texture_region_editor_plugin.cpp */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -29,14 +29,20 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#include "sprite_region_editor_plugin.h"
+#include "texture_region_editor_plugin.h"
#include "scene/gui/check_box.h"
#include "os/input.h"
#include "os/keyboard.h"
-void SpriteRegionEditor::_region_draw()
+void TextureRegionEditor::_region_draw()
{
- Ref<Texture> base_tex = node->get_texture();
+ Ref<Texture> base_tex = NULL;
+ if(node_type == "Sprite" && node_sprite)
+ base_tex = node_sprite->get_texture();
+ else if(node_type == "Patch9Frame" && node_patch9)
+ base_tex = node_patch9->get_texture();
+ else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ base_tex = obj_styleBox->get_texture();
if (base_tex.is_null())
return;
@@ -87,7 +93,9 @@ void SpriteRegionEditor::_region_draw()
mtx.basis_xform(rect.pos+rect.size),
mtx.basis_xform(rect.pos+Vector2(0,rect.size.y))
};
-
+ Color color(0.9,0.5,0.5);
+ if(this->editing_region == REGION_PATCH_MARGIN)
+ color = Color(0.21, 0.79, 0.31);
for(int i=0;i<4;i++) {
int prev = (i+3)%4;
@@ -96,7 +104,7 @@ void SpriteRegionEditor::_region_draw()
Vector2 ofs = ((endpoints[i] - endpoints[prev]).normalized() + ((endpoints[i] - endpoints[next]).normalized())).normalized();
ofs*=1.4144*(select_handle->get_size().width/2);
- edit_draw->draw_line(endpoints[i]-draw_ofs, endpoints[next]-draw_ofs, Color(0.9,0.5,0.5), 2);
+ edit_draw->draw_line(endpoints[i]-draw_ofs, endpoints[next]-draw_ofs, color , 2);
edit_draw->draw_texture(select_handle,(endpoints[i]+ofs-(select_handle->get_size()/2)).floor()-draw_ofs);
@@ -124,7 +132,7 @@ void SpriteRegionEditor::_region_draw()
updating_scroll=false;
}
-void SpriteRegionEditor::_region_input(const InputEvent& p_input)
+void TextureRegionEditor::_region_input(const InputEvent& p_input)
{
Matrix32 mtx;
mtx.elements[2]=-draw_ofs;
@@ -154,7 +162,12 @@ void SpriteRegionEditor::_region_input(const InputEvent& p_input)
drag_from=mtx.affine_inverse().xform(Vector2(mb.x,mb.y));
drag_from=snap_point(drag_from);
drag=true;
- rect_prev=node->get_region_rect();
+ if(node_type == "Sprite" && node_sprite )
+ rect_prev=node_sprite->get_region_rect();
+ else if(node_type == "Patch9Frame" && node_patch9)
+ rect_prev=node_patch9->get_region_rect();
+ else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ rect_prev=obj_styleBox->get_region_rect();
drag_index=-1;
for(int i=0;i<8;i++) {
@@ -172,14 +185,20 @@ void SpriteRegionEditor::_region_input(const InputEvent& p_input)
}
} else if (drag) {
-
- undo_redo->create_action(TTR("Set region_rect"));
- undo_redo->add_do_method(node,"set_region_rect",node->get_region_rect());
- undo_redo->add_undo_method(node,"set_region_rect",rect_prev);
- undo_redo->add_do_method(edit_draw,"update");
- undo_redo->add_undo_method(edit_draw,"update");
- undo_redo->commit_action();
-
+ if(editing_region == REGION_TEXTURE_REGION) {
+ undo_redo->create_action("Set region_rect");
+ if(node_type == "Sprite" && node_sprite ){
+ undo_redo->add_do_method(node_sprite ,"set_region_rect",node_sprite->get_region_rect());
+ undo_redo->add_undo_method(node_sprite,"set_region_rect",rect_prev);
+ }
+ else if(node_type == "Patch9Frame" && node_patch9){
+ undo_redo->add_do_method(node_patch9 ,"set_region_rect",node_patch9->get_region_rect());
+ undo_redo->add_undo_method(node_patch9,"set_region_rect",rect_prev);
+ }
+ undo_redo->add_do_method(edit_draw,"update");
+ undo_redo->add_undo_method(edit_draw,"update");
+ undo_redo->commit_action();
+ }
drag=false;
}
@@ -187,7 +206,7 @@ void SpriteRegionEditor::_region_input(const InputEvent& p_input)
if (drag) {
drag=false;
- node->set_region_rect(rect_prev);
+ apply_rect(rect_prev);
rect=rect_prev;
edit_draw->update();
}
@@ -218,60 +237,60 @@ void SpriteRegionEditor::_region_input(const InputEvent& p_input)
if (creating) {
rect = Rect2(drag_from,Size2());
rect.expand_to(new_pos);
- node->set_region_rect(rect);
+ apply_rect(rect);
edit_draw->update();
return;
}
switch(drag_index) {
case 0: {
- Vector2 p=rect_prev.pos+rect_prev.size;
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos+rect_prev.size;
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 1: {
- Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
- rect = Rect2(p,Size2(rect_prev.size.x,0));
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
+ rect = Rect2(p,Size2(rect_prev.size.x,0));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 2: {
- Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos+Vector2(0,rect_prev.size.y);
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 3: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2(0,rect_prev.size.y));
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2(0,rect_prev.size.y));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 4: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 5: {
- Vector2 p=rect_prev.pos;
- rect = Rect2(p,Size2(rect_prev.size.x,0));
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos;
+ rect = Rect2(p,Size2(rect_prev.size.x,0));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 6: {
- Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
- rect = Rect2(p,Size2());
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
+ rect = Rect2(p,Size2());
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
case 7: {
- Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
- rect = Rect2(p,Size2(0,rect_prev.size.y));
- rect.expand_to(new_pos);
- node->set_region_rect(rect);
- } break;
+ Vector2 p=rect_prev.pos+Vector2(rect_prev.size.x,0);
+ rect = Rect2(p,Size2(0,rect_prev.size.y));
+ rect.expand_to(new_pos);
+ apply_rect(rect);
+ } break;
}
edit_draw->update();
@@ -280,7 +299,7 @@ void SpriteRegionEditor::_region_input(const InputEvent& p_input)
}
}
-void SpriteRegionEditor::_scroll_changed(float)
+void TextureRegionEditor::_scroll_changed(float)
{
if (updating_scroll)
return;
@@ -292,47 +311,73 @@ void SpriteRegionEditor::_scroll_changed(float)
edit_draw->update();
}
-void SpriteRegionEditor::_set_use_snap(bool p_use)
+void TextureRegionEditor::_set_use_snap(bool p_use)
{
use_snap=p_use;
}
-void SpriteRegionEditor::_set_show_grid(bool p_show)
+void TextureRegionEditor::_set_show_grid(bool p_show)
{
snap_show_grid=p_show;
edit_draw->update();
}
-void SpriteRegionEditor::_set_snap_off_x(float p_val)
+void TextureRegionEditor::_set_snap_off_x(float p_val)
{
snap_offset.x=p_val;
edit_draw->update();
}
-void SpriteRegionEditor::_set_snap_off_y(float p_val)
+void TextureRegionEditor::_set_snap_off_y(float p_val)
{
snap_offset.y=p_val;
edit_draw->update();
}
-void SpriteRegionEditor::_set_snap_step_x(float p_val)
+void TextureRegionEditor::_set_snap_step_x(float p_val)
{
snap_step.x=p_val;
edit_draw->update();
}
-void SpriteRegionEditor::_set_snap_step_y(float p_val)
+void TextureRegionEditor::_set_snap_step_y(float p_val)
{
snap_step.y=p_val;
edit_draw->update();
}
-void SpriteRegionEditor::_notification(int p_what)
+void TextureRegionEditor::apply_rect(const Rect2& rect){
+
+ if(this->editing_region == REGION_TEXTURE_REGION) {
+ if(node_sprite)
+ node_sprite->set_region_rect(rect);
+ else if(node_patch9)
+ node_patch9->set_region_rect(rect);
+ else if(obj_styleBox)
+ obj_styleBox->set_region_rect(rect);
+ }
+ else if(this->editing_region == REGION_PATCH_MARGIN) {
+ if(node_patch9) {
+ node_patch9->set_patch_margin(MARGIN_LEFT, rect.pos.x - tex_region.pos.x);
+ node_patch9->set_patch_margin(MARGIN_RIGHT, tex_region.pos.x+tex_region.size.width-(rect.pos.x+rect.size.width));
+ node_patch9->set_patch_margin(MARGIN_TOP, rect.pos.y - tex_region.pos.y);
+ node_patch9->set_patch_margin(MARGIN_BOTTOM, tex_region.pos.y+tex_region.size.height-(rect.pos.y+rect.size.height));
+ }
+ else if(obj_styleBox) {
+ obj_styleBox->set_margin_size(MARGIN_LEFT, rect.pos.x - tex_region.pos.x);
+ obj_styleBox->set_margin_size(MARGIN_RIGHT, tex_region.pos.x+tex_region.size.width-(rect.pos.x+rect.size.width));
+ obj_styleBox->set_margin_size(MARGIN_TOP, rect.pos.y - tex_region.pos.y);
+ obj_styleBox->set_margin_size(MARGIN_BOTTOM, tex_region.pos.y+tex_region.size.height-(rect.pos.y+rect.size.height));
+ }
+ }
+}
+
+void TextureRegionEditor::_notification(int p_what)
{
switch(p_what) {
-
- case NOTIFICATION_READY: {
- edit_node->set_icon( get_icon("RegionEdit","EditorIcons"));
+ case NOTIFICATION_READY: {
+ region_button->set_icon( get_icon("RegionEdit","EditorIcons"));
+ margin_button->set_icon( get_icon("Patch9Frame", "EditorIcons"));
b_snap_grid->set_icon( get_icon("Grid", "EditorIcons"));
b_snap_enable->set_icon( get_icon("Snap", "EditorIcons"));
icon_zoom->set_texture( get_icon("Zoom", "EditorIcons"));
@@ -340,59 +385,129 @@ void SpriteRegionEditor::_notification(int p_what)
}
}
-void SpriteRegionEditor::_node_removed(Node *p_node)
+void TextureRegionEditor::_node_removed(Object *p_obj)
{
- if(p_node==node) {
- node=NULL;
+ if(p_obj == node_sprite || p_obj == node_patch9 || p_obj == obj_styleBox) {
+ node_patch9 = NULL;
+ node_sprite = NULL;
+ obj_styleBox = NULL;
hide();
}
}
-void SpriteRegionEditor::_bind_methods()
+void TextureRegionEditor::_bind_methods()
{
- ObjectTypeDB::bind_method(_MD("_edit_node"),&SpriteRegionEditor::_edit_node);
- ObjectTypeDB::bind_method(_MD("_region_draw"),&SpriteRegionEditor::_region_draw);
- ObjectTypeDB::bind_method(_MD("_region_input"),&SpriteRegionEditor::_region_input);
- ObjectTypeDB::bind_method(_MD("_scroll_changed"),&SpriteRegionEditor::_scroll_changed);
- ObjectTypeDB::bind_method(_MD("_node_removed"),&SpriteRegionEditor::_node_removed);
- ObjectTypeDB::bind_method(_MD("_set_use_snap"),&SpriteRegionEditor::_set_use_snap);
- ObjectTypeDB::bind_method(_MD("_set_show_grid"),&SpriteRegionEditor::_set_show_grid);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&SpriteRegionEditor::_set_snap_off_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&SpriteRegionEditor::_set_snap_off_y);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&SpriteRegionEditor::_set_snap_step_x);
- ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&SpriteRegionEditor::_set_snap_step_y);
+ ObjectTypeDB::bind_method(_MD("_edit_node"),&TextureRegionEditor::_edit_node);
+ ObjectTypeDB::bind_method(_MD("_edit_region"),&TextureRegionEditor::_edit_region);
+ ObjectTypeDB::bind_method(_MD("_edit_margin"),&TextureRegionEditor::_edit_margin);
+ ObjectTypeDB::bind_method(_MD("_region_draw"),&TextureRegionEditor::_region_draw);
+ ObjectTypeDB::bind_method(_MD("_region_input"),&TextureRegionEditor::_region_input);
+ ObjectTypeDB::bind_method(_MD("_scroll_changed"),&TextureRegionEditor::_scroll_changed);
+ ObjectTypeDB::bind_method(_MD("_node_removed"),&TextureRegionEditor::_node_removed);
+ ObjectTypeDB::bind_method(_MD("_set_use_snap"),&TextureRegionEditor::_set_use_snap);
+ ObjectTypeDB::bind_method(_MD("_set_show_grid"),&TextureRegionEditor::_set_show_grid);
+ ObjectTypeDB::bind_method(_MD("_set_snap_off_x"),&TextureRegionEditor::_set_snap_off_x);
+ ObjectTypeDB::bind_method(_MD("_set_snap_off_y"),&TextureRegionEditor::_set_snap_off_y);
+ ObjectTypeDB::bind_method(_MD("_set_snap_step_x"),&TextureRegionEditor::_set_snap_step_x);
+ ObjectTypeDB::bind_method(_MD("_set_snap_step_y"),&TextureRegionEditor::_set_snap_step_y);
}
-void SpriteRegionEditor::edit(Node *p_sprite)
+void TextureRegionEditor::edit(Object *p_obj)
{
- if (p_sprite) {
- node=p_sprite->cast_to<Sprite>();
- node->connect("exit_tree",this,"_node_removed",varray(p_sprite),CONNECT_ONESHOT);
+ if (p_obj) {
+ margin_button->hide();
+ node_type = p_obj->get_type();
+ if(node_type == "Sprite"){
+ node_sprite = p_obj->cast_to<Sprite>();
+ node_patch9 = NULL;
+ obj_styleBox = NULL;
+ }
+ else if(node_type == "Patch9Frame") {
+ node_patch9 = p_obj->cast_to<Patch9Frame>();
+ node_sprite = NULL;
+ obj_styleBox = NULL;
+ margin_button->show();
+ }
+ else if(node_type == "StyleBoxTexture") {
+ obj_styleBox = p_obj->cast_to<StyleBoxTexture>();
+ node_sprite = NULL;
+ node_patch9 = NULL;
+ margin_button->show();
+ }
+ p_obj->connect("exit_tree",this,"_node_removed",varray(p_obj),CONNECT_ONESHOT);
} else {
- if (node)
- node->disconnect("exit_tree",this,"_node_removed");
- node=NULL;
+ if(node_sprite)
+ node_sprite->disconnect("exit_tree",this,"_node_removed");
+ else if(node_patch9)
+ node_patch9->disconnect("exit_tree",this,"_node_removed");
+ else if(obj_styleBox)
+ obj_styleBox->disconnect("exit_tree",this,"_node_removed");
+ node_sprite = NULL;
+ node_patch9 = NULL;
+ obj_styleBox = NULL;
}
+}
+void TextureRegionEditor::_edit_region()
+{
+ this->_edit_node(REGION_TEXTURE_REGION);
+ dlg_editor->set_title(TTR("Texture Region Editor"));
}
-void SpriteRegionEditor::_edit_node()
+
+void TextureRegionEditor::_edit_margin()
{
- if (node->get_texture().is_null()) {
+ this->_edit_node(REGION_PATCH_MARGIN);
+ dlg_editor->set_title(TTR("Scale Region Editor"));
+}
- error->set_text("No texture in this sprite.\nSet a texture to be able to edit Region.");
+void TextureRegionEditor::_edit_node(int region)
+{
+ Ref<Texture> texture = NULL;
+ if(node_type == "Sprite" && node_sprite )
+ texture = node_sprite->get_texture();
+ else if(node_type == "Patch9Frame" && node_patch9 )
+ texture = node_patch9->get_texture();
+ else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ texture = obj_styleBox->get_texture();
+
+ if (texture.is_null()) {
+ error->set_text(TTR("No texture in this node.\nSet a texture to be able to edit region."));
error->popup_centered_minsize();
return;
}
- rect=node->get_region_rect();
+ if(node_type == "Sprite" && node_sprite )
+ tex_region = node_sprite->get_region_rect();
+ else if(node_type == "Patch9Frame" && node_patch9 )
+ tex_region = node_patch9->get_region_rect();
+ else if(node_type == "StyleBoxTexture" && obj_styleBox)
+ tex_region = obj_styleBox->get_region_rect();
+ rect = tex_region;
+
+ if(region == REGION_PATCH_MARGIN) {
+ if(node_patch9){
+ Patch9Frame *node = node_patch9;
+ rect.pos += Point2(node->get_patch_margin(MARGIN_LEFT),node->get_patch_margin(MARGIN_TOP));
+ rect.size -= Size2(node->get_patch_margin(MARGIN_RIGHT)+node->get_patch_margin(MARGIN_LEFT), node->get_patch_margin(MARGIN_BOTTOM)+node->get_patch_margin(MARGIN_TOP));
+ }
+ else if(obj_styleBox) {
+ StyleBoxTexture * node = obj_styleBox;
+ rect.pos += Point2(node->get_margin_size(MARGIN_LEFT),node->get_margin_size(MARGIN_TOP));
+ rect.size -= Size2(node->get_margin_size(MARGIN_RIGHT)+node->get_margin_size(MARGIN_LEFT), node->get_margin_size(MARGIN_BOTTOM)+node->get_margin_size(MARGIN_TOP));
+ }
+ }
+
dlg_editor->popup_centered_ratio(0.85);
+ dlg_editor->get_ok()->release_focus();
+
+ editing_region = region;
}
inline float _snap_scalar(float p_offset, float p_step, float p_target) {
return p_step != 0 ? Math::stepify(p_target - p_offset, p_step) + p_offset : p_target;
}
-Vector2 SpriteRegionEditor::snap_point(Vector2 p_target) const {
+Vector2 TextureRegionEditor::snap_point(Vector2 p_target) const {
if (use_snap) {
p_target.x = _snap_scalar(snap_offset.x, snap_step.x, p_target.x);
p_target.y = _snap_scalar(snap_offset.y, snap_step.y, p_target.y);
@@ -402,9 +517,10 @@ Vector2 SpriteRegionEditor::snap_point(Vector2 p_target) const {
return p_target;
}
-SpriteRegionEditor::SpriteRegionEditor(EditorNode* p_editor)
+TextureRegionEditor::TextureRegionEditor(EditorNode* p_editor)
{
- node=NULL;
+ node_sprite = NULL;
+ node_patch9 = NULL;
editor=p_editor;
undo_redo = editor->get_undo_redo();
@@ -414,13 +530,18 @@ SpriteRegionEditor::SpriteRegionEditor(EditorNode* p_editor)
drag=false;
add_child( memnew( VSeparator ));
- edit_node = memnew( ToolButton );
- add_child(edit_node);
- edit_node->connect("pressed",this,"_edit_node");
+ region_button = memnew( ToolButton );
+ add_child(region_button);
+ region_button->set_tooltip(TTR("Texture Region Editor"));
+ region_button->connect("pressed",this,"_edit_region");
+
+ margin_button = memnew( ToolButton );
+ add_child(margin_button);
+ margin_button->set_tooltip(TTR("Scale Region Editor"));
+ margin_button->connect("pressed",this,"_edit_margin");
dlg_editor = memnew( AcceptDialog );
add_child(dlg_editor);
- dlg_editor->set_title(TTR("Sprite Region Editor"));
dlg_editor->set_self_opacity(0.9);
VBoxContainer *main_vb = memnew( VBoxContainer );
@@ -533,17 +654,17 @@ SpriteRegionEditor::SpriteRegionEditor(EditorNode* p_editor)
}
-void SpriteRegionEditorPlugin::edit(Object *p_node)
+void TextureRegionEditorPlugin::edit(Object *p_node)
{
- region_editor->edit(p_node->cast_to<Node>());
+ region_editor->edit(p_node);
}
-bool SpriteRegionEditorPlugin::handles(Object *p_node) const
+bool TextureRegionEditorPlugin::handles(Object *p_obj) const
{
- return p_node->is_type("Sprite");
+ return p_obj->is_type("Sprite") || p_obj->is_type("Patch9Frame") || p_obj->is_type("StyleBoxTexture");
}
-void SpriteRegionEditorPlugin::make_visible(bool p_visible)
+void TextureRegionEditorPlugin::make_visible(bool p_visible)
{
if (p_visible) {
region_editor->show();
@@ -554,7 +675,7 @@ void SpriteRegionEditorPlugin::make_visible(bool p_visible)
}
-Dictionary SpriteRegionEditorPlugin::get_state() const {
+Dictionary TextureRegionEditorPlugin::get_state() const {
Dictionary state;
state["zoom"]=region_editor->zoom->get_val();
@@ -565,7 +686,7 @@ Dictionary SpriteRegionEditorPlugin::get_state() const {
return state;
}
-void SpriteRegionEditorPlugin::set_state(const Dictionary& p_state){
+void TextureRegionEditorPlugin::set_state(const Dictionary& p_state){
Dictionary state=p_state;
if (state.has("zoom")) {
@@ -597,12 +718,11 @@ void SpriteRegionEditorPlugin::set_state(const Dictionary& p_state){
}
}
-SpriteRegionEditorPlugin::SpriteRegionEditorPlugin(EditorNode *p_node)
+TextureRegionEditorPlugin::TextureRegionEditorPlugin(EditorNode *p_node)
{
editor = p_node;
- region_editor= memnew ( SpriteRegionEditor(p_node) );
+ region_editor= memnew ( TextureRegionEditor(p_node) );
CanvasItemEditor::get_singleton()->add_control_to_menu_panel(region_editor);
region_editor->hide();
}
-
diff --git a/tools/editor/plugins/sprite_region_editor_plugin.h b/tools/editor/plugins/texture_region_editor_plugin.h
index 6fe235c2ea..951b11e1e6 100644
--- a/tools/editor/plugins/sprite_region_editor_plugin.h
+++ b/tools/editor/plugins/texture_region_editor_plugin.h
@@ -1,5 +1,5 @@
/*************************************************************************/
-/* sprite_region_editor_plugin.h */
+/* texture_region_editor_plugin.h */
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
@@ -29,22 +29,27 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef SPRITE_REGION_EDITOR_PLUGIN_H
-#define SPRITE_REGION_EDITOR_PLUGIN_H
+#ifndef TEXTURE_REGION_EDITOR_PLUGIN_H
+#define TEXTURE_REGION_EDITOR_PLUGIN_H
#include "canvas_item_editor_plugin.h"
#include "tools/editor/editor_plugin.h"
#include "tools/editor/editor_node.h"
#include "scene/2d/sprite.h"
+#include "scene/gui/patch_9_frame.h"
+#include "scene/resources/style_box.h"
-class SpriteRegionEditor : public HBoxContainer {
+class TextureRegionEditor : public HBoxContainer {
- OBJ_TYPE(SpriteRegionEditor, HBoxContainer );
+ OBJ_TYPE(TextureRegionEditor, HBoxContainer );
+ enum RegionType {
+ REGION_TEXTURE_REGION,
+ REGION_PATCH_MARGIN
+ };
- friend class SpriteRegionEditorPlugin;
-
- ToolButton *edit_node;
-// Button *use_region;
+ friend class TextureRegionEditorPlugin;
+ ToolButton *region_button;
+ ToolButton *margin_button;
ToolButton *b_snap_enable;
ToolButton *b_snap_grid;
TextureFrame *icon_zoom;
@@ -59,7 +64,6 @@ class SpriteRegionEditor : public HBoxContainer {
VScrollBar *vscroll;
HScrollBar *hscroll;
- Sprite *node;
EditorNode *editor;
AcceptDialog *dlg_editor;
UndoRedo* undo_redo;
@@ -73,8 +77,17 @@ class SpriteRegionEditor : public HBoxContainer {
Vector2 snap_offset;
Vector2 snap_step;
+
+ String node_type;
+ Patch9Frame *node_patch9;
+ Sprite *node_sprite;
+ StyleBoxTexture *obj_styleBox;
+
+ int editing_region;
Rect2 rect;
Rect2 rect_prev;
+ Rect2 tex_region;
+
bool drag;
bool creating;
Vector2 drag_from;
@@ -88,38 +101,38 @@ class SpriteRegionEditor : public HBoxContainer {
void _set_snap_off_y(float p_val);
void _set_snap_step_x(float p_val);
void _set_snap_step_y(float p_val);
-
+ void apply_rect(const Rect2& rect);
protected:
void _notification(int p_what);
- void _node_removed(Node *p_node);
+ void _node_removed(Object *p_obj);
static void _bind_methods();
Vector2 snap_point(Vector2 p_target) const;
public:
- void edit();
- void _edit_node();
+ void _edit_node(int tex_region);
+ void _edit_region();
+ void _edit_margin();
void _region_draw();
void _region_input(const InputEvent &p_input);
void _scroll_changed(float);
- void edit(Node *p_sprite);
- SpriteRegionEditor(EditorNode* p_editor);
+ void edit(Object *p_obj);
+ TextureRegionEditor(EditorNode* p_editor);
};
-class SpriteRegionEditorPlugin : public EditorPlugin
+class TextureRegionEditorPlugin : public EditorPlugin
{
+ OBJ_TYPE( TextureRegionEditorPlugin, EditorPlugin );
- OBJ_TYPE( SpriteRegionEditorPlugin, EditorPlugin );
-
- SpriteRegionEditor *region_editor;
+ TextureRegionEditor *region_editor;
EditorNode *editor;
public:
- virtual String get_name() const { return TTR("SpriteRegion"); }
+ virtual String get_name() const { return "SpriteRegion"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;
@@ -127,7 +140,7 @@ public:
void set_state(const Dictionary &p_state);
Dictionary get_state() const;
- SpriteRegionEditorPlugin(EditorNode *p_node);
+ TextureRegionEditorPlugin(EditorNode *p_node);
};
-#endif // SPRITE_REGION_EDITOR_PLUGIN_H
+#endif // TEXTURE_REGION_EDITOR_PLUGIN_H
diff --git a/tools/editor/plugins/theme_editor_plugin.cpp b/tools/editor/plugins/theme_editor_plugin.cpp
index 3c394ab6ac..37cb0398e7 100644
--- a/tools/editor/plugins/theme_editor_plugin.cpp
+++ b/tools/editor/plugins/theme_editor_plugin.cpp
@@ -199,7 +199,7 @@ void ThemeEditor::_save_template_cbk(String fname) {
if (!file) {
- ERR_EXPLAIN(TTR("Can't save theme to file: ")+filename);
+ ERR_EXPLAIN(TTR("Can't save theme to file:")+" "+filename);
return;
}
file->store_line("; ******************* ");
@@ -398,7 +398,7 @@ void ThemeEditor::_dialog_cbk() {
}
- } break;
+ } break;
case POPUP_CLASS_REMOVE: {
StringName fromtype = type_edit->get_text();
List<StringName> names;
@@ -599,7 +599,7 @@ ThemeEditor::ThemeEditor() {
theme_menu->get_popup()->add_item(TTR("Add Item"),POPUP_ADD);
theme_menu->get_popup()->add_item(TTR("Add Class Items"),POPUP_CLASS_ADD);
theme_menu->get_popup()->add_item(TTR("Remove Item"),POPUP_REMOVE);
- theme_menu->get_popup()->add_item("Remove Class Items",POPUP_CLASS_REMOVE);
+ theme_menu->get_popup()->add_item(TTR("Remove Class Items"),POPUP_CLASS_REMOVE);
theme_menu->get_popup()->add_separator();
theme_menu->get_popup()->add_item(TTR("Create Template"),POPUP_CREATE_TEMPLATE);
hb_menu->add_child(theme_menu);
@@ -757,7 +757,7 @@ ThemeEditor::ThemeEditor() {
line_edit = memnew( LineEdit );
line_edit->set_pos( Point2( 25, 275 ) );
line_edit->set_size( Point2( 150, 5 ) );
- line_edit->set_text(TTR("Line Edit"));
+ line_edit->set_text("Line Edit");
panel->add_child(line_edit);
test_v_scroll = memnew( VScrollBar );
@@ -786,12 +786,12 @@ ThemeEditor::ThemeEditor() {
item = test_tree->create_item( test_tree->get_root() );
item->set_cell_mode(0, TreeItem::CELL_MODE_RANGE);
item->set_editable(0,true);
- item->set_text(0,TTR("Have,Many,Several,Options!"));
+ item->set_text(0,"Have,Many,Several,Options!"));
item->set_range(0,2);
Button *fd_button= memnew( Button );
fd_button->set_pos(Point2(300,275));
- fd_button->set_text(TTR("Open File Dialog"));
+ fd_button->set_text("Open File Dialog");
panel->add_child(fd_button);
test_file_dialog = memnew( EditorFileDialog );
@@ -852,8 +852,8 @@ ThemeEditor::ThemeEditor() {
type_select = memnew( OptionButton );
type_select->add_item(TTR("Icon"));
type_select->add_item(TTR("Style"));
- type_select->add_item("Font");
- type_select->add_item("Color");
+ type_select->add_item(TTR("Font"));
+ type_select->add_item(TTR("Color"));
type_select->add_item(TTR("Constant"));
type_select->set_pos( Point2( 400,25 ) );
type_select->set_size( Point2( 80,5 ) );
diff --git a/tools/editor/plugins/tile_map_editor_plugin.cpp b/tools/editor/plugins/tile_map_editor_plugin.cpp
index 843fc35d8b..6d5f2a519c 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_map_editor_plugin.cpp
@@ -205,7 +205,9 @@ void TileMapEditor::_update_palette() {
if (tiles.empty())
return;
+
palette->set_max_columns(0);
+ palette->add_constant_override("hseparation", 6);
palette->set_icon_mode(ItemList::ICON_MODE_TOP);
palette->set_max_text_lines(2);
@@ -239,6 +241,8 @@ void TileMapEditor::_update_palette() {
palette->set_item_metadata(palette->get_item_count()-1, E->get());
}
+
+ palette->set_same_column_width(true);
if (selected != -1)
set_selected_tile(selected);
@@ -1208,6 +1212,13 @@ void TileMapEditor::_tileset_settings_changed() {
canvas_item_editor->update();
}
+void TileMapEditor::_icon_size_changed(float p_value) {
+ if (node) {
+ palette->set_icon_scale(p_value);
+ _update_palette();
+ }
+}
+
void TileMapEditor::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_text_entered"),&TileMapEditor::_text_entered);
@@ -1222,6 +1233,8 @@ void TileMapEditor::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_fill_points"),&TileMapEditor::_fill_points);
ObjectTypeDB::bind_method(_MD("_erase_points"),&TileMapEditor::_erase_points);
+
+ ObjectTypeDB::bind_method(_MD("_icon_size_changed"), &TileMapEditor::_icon_size_changed);
}
TileMapEditor::CellOp TileMapEditor::_get_op_from_cell(const Point2i& p_pos)
@@ -1297,6 +1310,15 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
search_box->connect("input_event", this, "_sbox_input");
add_child(search_box);
+ size_slider = memnew( HSlider );
+ size_slider->set_h_size_flags(SIZE_EXPAND_FILL);
+ size_slider->set_min(0.1f);
+ size_slider->set_max(4.0f);
+ size_slider->set_step(0.1f);
+ size_slider->set_val(1.0f);
+ size_slider->connect("value_changed", this, "_icon_size_changed");
+ add_child(size_slider);
+
int mw = EDITOR_DEF("tile_map/palette_min_width", 80);
// Add tile palette
@@ -1318,13 +1340,13 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
PopupMenu *p = options->get_popup();
- p->add_item("Bucket", OPTION_BUCKET);
+ p->add_item(TTR("Bucket"), OPTION_BUCKET);
p->add_separator();
- p->add_item("Pick Tile", OPTION_PICK_TILE, KEY_CONTROL);
+ p->add_item(TTR("Pick Tile"), OPTION_PICK_TILE, KEY_CONTROL);
p->add_separator();
- p->add_item("Select", OPTION_SELECT, KEY_MASK_CMD+KEY_B);
+ p->add_item(TTR("Select"), OPTION_SELECT, KEY_MASK_CMD+KEY_B);
p->add_item(TTR("Duplicate Selection"), OPTION_DUPLICATE, KEY_MASK_CMD+KEY_D);
- p->add_item("Erase Selection", OPTION_ERASE_SELECTION, KEY_DELETE);
+ p->add_item(TTR("Erase Selection"), OPTION_ERASE_SELECTION, KEY_DELETE);
p->connect("item_pressed", this, "_menu_option");
diff --git a/tools/editor/plugins/tile_map_editor_plugin.h b/tools/editor/plugins/tile_map_editor_plugin.h
index b1da1bc48e..f586c5bf13 100644
--- a/tools/editor/plugins/tile_map_editor_plugin.h
+++ b/tools/editor/plugins/tile_map_editor_plugin.h
@@ -76,6 +76,7 @@ class TileMapEditor : public VBoxContainer {
Control *canvas_item_editor;
LineEdit *search_box;
+ HSlider *size_slider;
ItemList *palette;
HBoxContainer *toolbar;
@@ -130,7 +131,7 @@ class TileMapEditor : public VBoxContainer {
void _fill_points(const DVector<Vector2> p_points, const Dictionary& p_op);
void _erase_points(const DVector<Vector2> p_points);
-
+
void _select(const Point2i& p_from, const Point2i& p_to);
void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform);
@@ -151,6 +152,7 @@ class TileMapEditor : public VBoxContainer {
void _canvas_mouse_enter();
void _canvas_mouse_exit();
void _tileset_settings_changed();
+ void _icon_size_changed(float p_value);
protected:
diff --git a/tools/editor/plugins/tile_set_editor_plugin.cpp b/tools/editor/plugins/tile_set_editor_plugin.cpp
index b77d3fb5b3..a2c7147bf3 100644
--- a/tools/editor/plugins/tile_set_editor_plugin.cpp
+++ b/tools/editor/plugins/tile_set_editor_plugin.cpp
@@ -175,7 +175,7 @@ void TileSetEditor::_name_dialog_confirm(const String& name) {
if (tileset->has_tile(id)) {
tileset->remove_tile(id);
} else {
- err_dialog->set_text(TTR("Could not find tile: ") + name);
+ err_dialog->set_text(TTR("Could not find tile:")+" " + name);
err_dialog->popup_centered(Size2(300, 60));
}
} break;
diff --git a/tools/editor/progress_dialog.cpp b/tools/editor/progress_dialog.cpp
index 2814101a27..a950f7acfc 100644
--- a/tools/editor/progress_dialog.cpp
+++ b/tools/editor/progress_dialog.cpp
@@ -30,7 +30,7 @@
#include "main/main.h"
#include "message_queue.h"
#include "os/os.h"
-
+#include "editor_scale.h"
void BackgroundProgress::_add_task(const String& p_task,const String& p_label, int p_steps) {
_THREAD_SAFE_METHOD_
@@ -48,7 +48,7 @@ void BackgroundProgress::_add_task(const String& p_task,const String& p_label, i
ec->set_v_size_flags(SIZE_EXPAND_FILL);
t.progress->set_area_as_parent_rect();
ec->add_child(t.progress);
- ec->set_custom_minimum_size(Size2(80,5));
+ ec->set_custom_minimum_size(Size2(80,5)*EDSCALE);
t.hb->add_child(ec);
add_child(t.hb);
@@ -160,7 +160,7 @@ void ProgressDialog::_notification(int p_what) {
void ProgressDialog::_popup() {
Size2 ms = main->get_combined_minimum_size();
- ms.width = MAX(500,ms.width);
+ ms.width = MAX(500*EDSCALE,ms.width);
Ref<StyleBox> style = get_stylebox("panel","PopupMenu");
diff --git a/tools/editor/project_export.cpp b/tools/editor/project_export.cpp
index adb15c1f00..3b02c73189 100644
--- a/tools/editor/project_export.cpp
+++ b/tools/editor/project_export.cpp
@@ -470,7 +470,7 @@ void ProjectExportDialog::_export_action(const String& p_file) {
/* Checked if the export location is outside the project directory,
* now will check if a file name has been entered */
if (p_file.ends_with("/")) {
-
+
error->set_text("Please enter a file name!");
error->popup_centered_minsize();
return;
@@ -505,7 +505,7 @@ void ProjectExportDialog::_export_action_pck(const String& p_file) {
if (p_file.ends_with(".pck")) {
FileAccess *f = FileAccess::open(p_file,FileAccess::WRITE);
if (!f) {
- error->set_text(TTR("Error exporting project PCK! Can't write"));
+ error->set_text(TTR("Error writing the project PCK!"));
error->popup_centered_minsize();
}
ERR_FAIL_COND(!f);
@@ -586,7 +586,7 @@ void ProjectExportDialog::custom_action(const String&) {
Ref<EditorExportPlatform> exporter = EditorImportExport::get_singleton()->get_export_platform(platform);
if (exporter.is_null()) {
- error->set_text(TTR("No exporter for platform '")+platform+"' yet.");
+ error->set_text(vformat(TTR("No exporter for platform '%s' yet."),platform));
error->popup_centered_minsize();
return;
}
@@ -858,17 +858,17 @@ void ProjectExportDialog::_group_add() {
if (name=="") {
group_new_name_error->show();
- group_new_name_error->set_text(TTR("Group Name Can't be Empty!"));
+ group_new_name_error->set_text(TTR("Group name can't be empty!"));
return;
}
if (name.find("/")!=-1 || name.find(":")!=-1 || name.find(",")!=-1 || name.find("-")!=-1) {
- group_new_name_error->set_text(TTR("Invalid Character in Group Name!"));
+ group_new_name_error->set_text(TTR("Invalid character in group name!"));
group_new_name_error->show();
return;
}
if (EditorImportExport::get_singleton()->image_export_has_group(name)) {
- group_new_name_error->set_text(TTR("Group Name Already Exists!"));
+ group_new_name_error->set_text(TTR("Group name already exists!"));
group_new_name_error->show();
return;
}
@@ -1057,17 +1057,17 @@ void ProjectExportDialog::_group_atlas_preview() {
imd->set_option("atlas",true);
imd->set_option("crop",true);
- Ref<EditorTextureImportPlugin> plugin = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture_atlas");
+ Ref<EditorTextureImportPlugin> plugin = EditorImportExport::get_singleton()->get_import_plugin_by_name("texture");
Error err = plugin->import2(dst_file,imd,EditorExportPlatform::IMAGE_COMPRESSION_NONE,true);
if (err) {
- EditorNode::add_io_error(TTR("Error saving atlas! ")+dst_file.get_file());
+ EditorNode::add_io_error(TTR("Error saving atlas:")+" "+dst_file.get_file());
return;
}
Ref<Texture> tex = ResourceLoader::load(dst_file);
atlas_preview_frame->set_texture(tex); //clear previous
- atlas_preview_dialog->set_title(TTR("Atlas Preview (")+itos(tex->get_width())+"x"+itos(tex->get_height())+")");
+ atlas_preview_dialog->set_title(TTR("Atlas Preview")+" ("+itos(tex->get_width())+"x"+itos(tex->get_height())+")");
atlas_preview_dialog->popup_centered_ratio(0.9);
}
@@ -1211,14 +1211,14 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
tree->set_column_min_width(1,90);
filters = memnew( LineEdit );
- vb->add_margin_child(TTR("Filters to export non-resource files (Comma Separated, eg: *.json, *.txt):"),filters);
+ vb->add_margin_child(TTR("Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"),filters);
filters->connect("text_changed",this,"_filters_edited");
filters_exclude = memnew( LineEdit );
- vb->add_margin_child(TTR("Filters to exclude from export (Comma Separated, eg: *.json, *.txt):"),filters_exclude);
+ vb->add_margin_child(TTR("Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"),filters_exclude);
filters_exclude->connect("text_changed",this,"_filters_exclude_edited");
convert_text_scenes = memnew( CheckButton );
- convert_text_scenes->set_text(TTR("Convert text scenes to binary on export"));
+ convert_text_scenes->set_text(TTR("Convert text scenes to binary on export."));
vb->add_child(convert_text_scenes);
convert_text_scenes->connect("toggled",this,"_export_mode_changed");
@@ -1260,7 +1260,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
fmt->set_editable(0,true);
formats.push_back(fmt);
}
- image_vb->add_margin_child(TTR("Compress Formats: "),image_formats,true);
+ image_vb->add_margin_child(TTR("Compress Formats:")+" ",image_formats,true);
/// groups
HBoxContainer *group_hb = memnew( HBoxContainer );
@@ -1384,7 +1384,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
group_images->set_column_expand(1,false);
group_images->set_column_min_width(1,100);
group_images->set_column_titles_visible(true);
- group_images->set_column_title(0,"Image");
+ group_images->set_column_title(0,TTR("Images"));
group_images->set_column_title(1,TTR("Group"));
group_images->connect("item_edited",this,"_group_item_edited",varray(),CONNECT_DEFERRED);
@@ -1421,13 +1421,13 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
sample_max_hz = memnew( SpinBox );
sample_max_hz->set_max(192000);
sample_max_hz->set_min(8000);
- sample_vbox->add_margin_child(TTR("Sampling Rate Limit: (hz)"),sample_max_hz);
+ sample_vbox->add_margin_child(TTR("Sampling Rate Limit (Hz):"),sample_max_hz);
sample_trim = memnew( CheckButton );
sample_trim->set_text(TTR("Trim"));
sample_vbox->add_margin_child(TTR("Trailing Silence:"),sample_trim);
script_vbox = memnew( VBoxContainer );
- script_vbox->set_name("Script");
+ script_vbox->set_name(TTR("Script"));
sections->add_child(script_vbox);
script_mode = memnew( OptionButton );
script_vbox->add_margin_child(TTR("Script Export Mode:"),script_mode);
@@ -1529,7 +1529,7 @@ Error ProjectExport::export_project(const String& p_preset) {
String preset_path=Globals::get_singleton()->get("export_presets_path/"+selected);
if (preset_path=="") {
- error->set_text(TTR("Export path empty, see export options"));
+ error->set_text("Export path empty, see export options");
error->popup_centered_minsize(Size2(300,100));
ERR_FAIL_V(ERR_INVALID_DATA);
}
@@ -1551,9 +1551,9 @@ Error ProjectExport::export_project(const String& p_preset) {
}
if (pc%3 != 0 ) {
memdelete(d);
- error->set_text(TTR("Corrupted export data.."));
+ error->set_text("Corrupted export data..");
error->popup_centered_minsize(Size2(300,100));
- ERR_EXPLAIN(TTR("Corrupted export data..."));
+ ERR_EXPLAIN("Corrupted export data...");
ERR_FAIL_V(ERR_INVALID_DATA);
}
@@ -1706,7 +1706,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (err!=OK) {
memdelete(da);
memdelete(d);
- ERR_EXPLAIN(TTR("Cannot make dir: ")+cwd+"/"+p);
+ ERR_EXPLAIN("Cannot make dir: "+cwd+"/"+p);
ERR_FAIL_V(ERR_CANT_CREATE);
}
@@ -1714,7 +1714,7 @@ Error ProjectExport::export_project(const String& p_preset) {
memdelete(da);
memdelete(d);
- ERR_EXPLAIN(TTR("Cannot change to dir: ")+cwd+"/"+p);
+ ERR_EXPLAIN("Cannot change to dir: "+cwd+"/"+p);
ERR_FAIL_V(ERR_CANT_CREATE);
}
@@ -1742,7 +1742,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (!Globals::get_singleton()->has("optimizer_presets/"+preset)) {
memdelete(d);
- ERR_EXPLAIN(TTR("Unknown optimizer preset: ")+preset);
+ ERR_EXPLAIN("Unknown optimizer preset: "+preset);
ERR_FAIL_V(ERR_INVALID_DATA);
}
@@ -1763,7 +1763,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (saver.is_null()) {
memdelete(d);
- ERR_EXPLAIN(TTR("Preset '")+preset+"' references nonexistent saver: "+type);
+ ERR_EXPLAIN("Preset '"+preset+"' references nonexistent saver: "+type);
ERR_FAIL_COND_V(saver.is_null(),ERR_INVALID_DATA);
}
@@ -1807,7 +1807,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (res.is_null()) {
memdelete(d);
- ERR_EXPLAIN(TTR("Errr loading resource to optimize: ")+path);
+ ERR_EXPLAIN("Error loading resource to optimize: "+path);
ERR_FAIL_V(ERR_INVALID_DATA);
}
@@ -1830,7 +1830,7 @@ Error ProjectExport::export_project(const String& p_preset) {
Error err = ResourceSaver::save(write_file,res,flags,saver);
if (err) {
memdelete(d);
- ERR_EXPLAIN(TTR("Errr saving optimized resource: ")+write_file);
+ ERR_EXPLAIN("Error saving optimized resource: "+write_file);
ERR_FAIL_COND_V(err,ERR_CANT_OPEN);
}
source_file=write_file;
@@ -1853,7 +1853,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (err) {
- ERR_EXPLAIN(TTR("Error copying from: ")+source_file+" to "+dst_file+".");
+ ERR_EXPLAIN("Error copying from: "+source_file+" to "+dst_file+".");
ERR_FAIL_COND_V(err,err);
}
diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp
index abc64cd9cb..84d6a87688 100644
--- a/tools/editor/project_manager.cpp
+++ b/tools/editor/project_manager.cpp
@@ -45,8 +45,9 @@
#include "io/resource_saver.h"
#include "editor_icons.h"
+#include "editor_fonts.h"
-
+#include "editor_scale.h"
class NewProjectDialog : public ConfirmationDialog {
@@ -66,7 +67,7 @@ class NewProjectDialog : public ConfirmationDialog {
get_ok()->set_disabled(true);
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (project_path->get_text() != "" && d->change_dir(project_path->get_text())!=OK) {
- error->set_text(TTR("Invalid Path for Project, Path Must Exist!"));
+ error->set_text(TTR("Invalid project path, the path must exist!"));
memdelete(d);
return false;
}
@@ -75,7 +76,7 @@ class NewProjectDialog : public ConfirmationDialog {
if (d->file_exists("engine.cfg")) {
- error->set_text(TTR("Invalid Project Path (engine.cfg must not exist)."));
+ error->set_text(TTR("Invalid project path, engine.cfg must not exist."));
memdelete(d);
return false;
}
@@ -84,7 +85,7 @@ class NewProjectDialog : public ConfirmationDialog {
if (project_path->get_text() != "" && !d->file_exists("engine.cfg")) {
- error->set_text(TTR("Invalid Project Path (engine.cfg must exist)."));
+ error->set_text(TTR("Invalid project path, engine.cfg must exist."));
memdelete(d);
return false;
}
@@ -170,7 +171,7 @@ class NewProjectDialog : public ConfirmationDialog {
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (d->change_dir(project_path->get_text())!=OK) {
- error->set_text(TTR("Invalid Path for Project (changed anything?)"));
+ error->set_text(TTR("Invalid project path (changed anything?)."));
memdelete(d);
return;
}
@@ -180,7 +181,7 @@ class NewProjectDialog : public ConfirmationDialog {
FileAccess *f = FileAccess::open(dir.plus_file("/engine.cfg"),FileAccess::WRITE);
if (!f) {
- error->set_text(TTR("Couldn't create engine.cfg in project path"));
+ error->set_text(TTR("Couldn't create engine.cfg in project path."));
} else {
f->store_line("; Engine configuration file.");
@@ -247,7 +248,7 @@ public:
if (import_mode) {
set_title(TTR("Import Existing Project"));
get_ok()->set_text(TTR("Import"));
- pp->set_text(TTR("Project Path: (Must exist)"));
+ pp->set_text(TTR("Project Path (Must Exist):"));
pn->set_text(TTR("Project Name:"));
pn->hide();
project_name->hide();
@@ -788,7 +789,7 @@ void ProjectManager::_erase_project() {
return;
- erase_ask->set_text(TTR("Remove project from list?? (Folder contents will not be modified)"));
+ erase_ask->set_text(TTR("Remove project from the list? (Folder contents will not be modified)"));
erase_ask->popup_centered_minsize();
}
@@ -822,13 +823,24 @@ void ProjectManager::_bind_methods() {
ProjectManager::ProjectManager() {
- int margin = get_constant("margin",TTR("Dialogs"));
- int button_margin = get_constant("button_margin",TTR("Dialogs"));
+ int margin = get_constant("margin","Dialogs");
+ int button_margin = get_constant("button_margin","Dialogs");
// load settings
if (!EditorSettings::get_singleton())
EditorSettings::create();
+ {
+ int dpi_mode = EditorSettings::get_singleton()->get("global/hidpi_mode");
+ if (dpi_mode==0) {
+ editor_set_hidpi( OS::get_singleton()->get_screen_dpi(0) > 150 );
+ } else if (dpi_mode==2) {
+ editor_set_hidpi(true);
+ } else {
+ editor_set_hidpi(false);
+ }
+ }
+
FileDialog::set_default_show_hidden_files(EditorSettings::get_singleton()->get("file_dialog/show_hidden_files"));
set_area_as_parent_rect();
@@ -836,6 +848,7 @@ ProjectManager::ProjectManager() {
Ref<Theme> theme = Ref<Theme>( memnew( Theme ) );
set_theme(theme);
editor_register_icons(theme);
+ editor_register_fonts(theme);
String global_font = EditorSettings::get_singleton()->get("global/font");
if (global_font!="") {
@@ -999,8 +1012,8 @@ ProjectManager::ProjectManager() {
_scan_begin( EditorSettings::get_singleton()->get("global/autoscan_project_path") );
}
- //get_ok()->set_text(TTR("Open"));
- //get_ok()->set_text(TTR("Exit"));
+ //get_ok()->set_text("Open");
+ //get_ok()->set_text("Exit");
last_clicked = "";
}
@@ -1016,7 +1029,7 @@ void ProjectListFilter::_setup_filters() {
filter_option->clear();
filter_option->add_item(TTR("Name"));
- filter_option->add_item("Path");
+ filter_option->add_item(TTR("Path"));
}
void ProjectListFilter::_command(int p_command) {
diff --git a/tools/editor/project_settings.cpp b/tools/editor/project_settings.cpp
index d69d565795..6822e50b73 100644
--- a/tools/editor/project_settings.cpp
+++ b/tools/editor/project_settings.cpp
@@ -81,10 +81,10 @@ void ProjectSettings::_notification(int p_what) {
translation_list->connect("button_pressed",this,"_translation_delete");
_update_actions();
- popup_add->add_icon_item(get_icon("Keyboard","EditorIcons"),"Key",InputEvent::KEY);
- popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),"Joy Button",InputEvent::JOYSTICK_BUTTON);
- popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),"Joy Axis",InputEvent::JOYSTICK_MOTION);
- popup_add->add_icon_item(get_icon("Mouse","EditorIcons"),"Mouse Button",InputEvent::MOUSE_BUTTON);
+ popup_add->add_icon_item(get_icon("Keyboard","EditorIcons"),TTR("Key "),InputEvent::KEY);//"Key " - because the word 'key' has already been used as a key animation
+ popup_add->add_icon_item(get_icon("JoyButton","EditorIcons"),TTR("Joy Button"),InputEvent::JOYSTICK_BUTTON);
+ popup_add->add_icon_item(get_icon("JoyAxis","EditorIcons"),TTR("Joy Axis"),InputEvent::JOYSTICK_MOTION);
+ popup_add->add_icon_item(get_icon("Mouse","EditorIcons"),TTR("Mouse Button"),InputEvent::MOUSE_BUTTON);
List<String> tfn;
ResourceLoader::get_recognized_extensions_for_type("Translation",&tfn);
@@ -139,7 +139,7 @@ void ProjectSettings::_action_edited() {
ti->set_text(0,old_name);
add_at="input/"+old_name;
- message->set_text(TTR("Invalid Action (Anything goes but / or :)."));
+ message->set_text(TTR("Invalid action (anything goes but '/' or ':')."));
message->popup_centered(Size2(300,100));
return;
}
@@ -151,7 +151,7 @@ void ProjectSettings::_action_edited() {
ti->set_text(0,old_name);
add_at="input/"+old_name;
- message->set_text(TTR("Action '")+new_name+"' already exists!.");
+ message->set_text(vformat(TTR("Action '%s' already exists!"),new_name));
message->popup_centered(Size2(300,100));
return;
}
@@ -330,7 +330,7 @@ void ProjectSettings::_add_item(int p_item){
press_a_key_label->set_text(TTR("Press a Key.."));
last_wait_for_key=InputEvent();
- press_a_key->popup_centered(Size2(250,80));
+ press_a_key->popup_centered(Size2(250,80)*EDSCALE);
press_a_key->grab_focus();
} break;
case InputEvent::MOUSE_BUTTON: {
@@ -357,7 +357,7 @@ void ProjectSettings::_add_item(int p_item){
for(int i=0;i<JOY_AXIS_MAX*2;i++) {
String desc = _axis_names[i];
- device_index->add_item(TTR("Axis ")+itos(i/2)+" "+(i&1?"+":"-")+desc);
+ device_index->add_item(TTR("Axis")+" "+itos(i/2)+" "+(i&1?"+":"-")+desc);
}
device_input->popup_centered(Size2(350,95));
@@ -517,7 +517,7 @@ void ProjectSettings::_update_actions() {
} break;
case InputEvent::JOYSTICK_BUTTON: {
- String str = TTR("Device ")+itos(ie.device)+", Button "+itos(ie.joy_button.button_index);
+ String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Button")+" "+itos(ie.joy_button.button_index);
if (ie.joy_button.button_index>=0 && ie.joy_button.button_index<JOY_BUTTON_MAX)
str+=String()+" ("+_button_names[ie.joy_button.button_index]+").";
else
@@ -528,14 +528,14 @@ void ProjectSettings::_update_actions() {
} break;
case InputEvent::MOUSE_BUTTON: {
- String str = TTR("Device ")+itos(ie.device)+", ";
+ String str = TTR("Device")+" "+itos(ie.device)+", ";
switch (ie.mouse_button.button_index) {
case BUTTON_LEFT: str+=TTR("Left Button."); break;
case BUTTON_RIGHT: str+=TTR("Right Button."); break;
case BUTTON_MIDDLE: str+=TTR("Middle Button."); break;
case BUTTON_WHEEL_UP: str+=TTR("Wheel Up."); break;
case BUTTON_WHEEL_DOWN: str+=TTR("Wheel Down."); break;
- default: str+=TTR("Button ")+itos(ie.mouse_button.button_index)+".";
+ default: str+=TTR("Button")+" "+itos(ie.mouse_button.button_index)+".";
}
action->set_text(0,str);
@@ -546,7 +546,7 @@ void ProjectSettings::_update_actions() {
int ax = ie.joy_motion.axis;
int n = 2*ax + (ie.joy_motion.axis_value<0 ? 0:1);
String desc = _axis_names[n];
- String str = TTR("Device ")+itos(ie.device)+", Axis "+itos(ax)+" "+(ie.joy_motion.axis_value<0?"-":"+")+desc +".";
+ String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Axis")+" "+itos(ax)+" "+(ie.joy_motion.axis_value<0?"-":"+")+desc +".";
action->set_text(0,str);
action->set_icon(0,get_icon("JoyAxis","EditorIcons"));
} break;
@@ -650,13 +650,13 @@ void ProjectSettings::_action_add() {
String action = action_name->get_text();
if (action.find("/")!=-1 || action.find(":")!=-1 || action=="") {
- message->set_text(TTR("Invalid Action (Anything goes but / or :)."));
+ message->set_text(TTR("Invalid action (anything goes but '/' or ':')."));
message->popup_centered(Size2(300,100));
return;
}
if (Globals::get_singleton()->has("input/"+action)) {
- message->set_text(TTR("Action '")+action+"' already exists!.");
+ message->set_text(vformat(TTR("Action '%s' already exists!"),action));
message->popup_centered(Size2(300,100));
return;
}
@@ -710,7 +710,7 @@ void ProjectSettings::_item_checked(const String& p_item, bool p_check) {
void ProjectSettings::_save() {
Error err = Globals::get_singleton()->save();
- message->set_text(err!=OK?TTR("Error saving settings."):"Settings Saved OK.");
+ message->set_text(err!=OK?TTR("Error saving settings."):TTR("Settings saved OK."));
message->popup_centered(Size2(300,100));
}
@@ -834,42 +834,111 @@ void ProjectSettings::_autoload_edited() {
return;
TreeItem *ti = autoload_list->get_edited();
- if (!ti || autoload_list->get_edited_column()!=2)
+ int column = autoload_list->get_edited_column();
+
+ if (!ti || (column != 0 && column != 2))
return;
- updating_autoload=true;
- bool checked=ti->is_checked(2);
+ if (column == 0) {
+ String name = ti->get_text(0);
+ String old_name = selected_autoload.substr(selected_autoload.find("/")+1,selected_autoload.length());
- String base="autoload/"+ti->get_text(0);
+ if (!name.is_valid_identifier()) {
+ ti->set_text(0,old_name);
+ message->set_text(TTR("Invalid name.")+"\n"+TTR("Valid characters:")+" a-z, A-Z, 0-9 or _");
+ message->popup_centered(Size2(300,100));
+ return;
+ }
- String path = Globals::get_singleton()->get(base);
- int order = Globals::get_singleton()->get_order(base);
+ if (ObjectTypeDB::type_exists(name)) {
+ ti->set_text(0,old_name);
+ message->set_text(TTR("Invalid name. Must not collide with an existing engine class name."));
+ message->popup_centered(Size2(400,100));
+ return;
+ }
- if (path.begins_with("*"))
- path=path.substr(1,path.length());
+ for(int i=0;i<Variant::VARIANT_MAX;i++) {
+ if (Variant::get_type_name(Variant::Type(i))==name) {
+ ti->set_text(0,old_name);
+ message->set_text(TTR("Invalid name. Must not collide with an existing buit-in type name."));
+ message->popup_centered(Size2(400,100));
+ return;
+ }
+ }
- if (checked)
- path="*"+path;
+ for(int i=0;i<GlobalConstants::get_global_constant_count();i++) {
+ if (GlobalConstants::get_global_constant_name(i)==name) {
+ ti->set_text(0,old_name);
+ message->set_text(TTR("Invalid name. Must not collide with an existing global constant name."));
+ message->popup_centered(Size2(400,100));
+ return;
+ }
+ }
- undo_redo->create_action(TTR("Toggle Autoload GlobalVar"));
- undo_redo->add_do_property(Globals::get_singleton(),base,path);
- undo_redo->add_undo_property(Globals::get_singleton(),base,Globals::get_singleton()->get(base));
- undo_redo->add_do_method(Globals::get_singleton(),"set_order",base,order); // keep order, as config order matters for these
- undo_redo->add_undo_method(Globals::get_singleton(),"set_order",base,order);
- undo_redo->add_do_method(this,"_update_autoload");
- undo_redo->add_undo_method(this,"_update_autoload");
- undo_redo->add_do_method(this,"_settings_changed");
- undo_redo->add_undo_method(this,"_settings_changed");
- undo_redo->commit_action();
- updating_autoload=false;
+ if (Globals::get_singleton()->has("autoload/"+name)) {
+ ti->set_text(0,old_name);
+ message->set_text(vformat(TTR("Autoload '%s' already exists!"),name));
+ message->popup_centered(Size2(300,100));
+ return;
+ }
+
+ updating_autoload = true;
+
+ name = "autoload/"+name;
+ String path = Globals::get_singleton()->get(selected_autoload);
+ bool is_persisting = Globals::get_singleton()->is_persisting(selected_autoload);
+ int order = Globals::get_singleton()->get_order(selected_autoload);
+
+ undo_redo->create_action(TTR("Rename Autoload"));
+ undo_redo->add_do_property(Globals::get_singleton(),name,path);
+ undo_redo->add_do_method(Globals::get_singleton(),"set_persisting",name,is_persisting);
+ undo_redo->add_do_method(Globals::get_singleton(),"set_order",name,order);
+ undo_redo->add_do_method(Globals::get_singleton(),"clear",selected_autoload);
+ undo_redo->add_undo_property(Globals::get_singleton(),selected_autoload,path);
+ undo_redo->add_undo_method(Globals::get_singleton(),"set_persisting",selected_autoload,is_persisting);
+ undo_redo->add_undo_method(Globals::get_singleton(),"set_order",selected_autoload,order);
+ undo_redo->add_undo_method(Globals::get_singleton(),"clear",name);
+ undo_redo->add_do_method(this,"_update_autoload");
+ undo_redo->add_undo_method(this,"_update_autoload");
+ undo_redo->add_do_method(this,"_settings_changed");
+ undo_redo->add_undo_method(this,"_settings_changed");
+ undo_redo->commit_action();
+
+ selected_autoload = name;
+ } else if (column == 2) {
+ updating_autoload = true;
+ bool checked = ti->is_checked(2);
+ String base = "autoload/"+ti->get_text(0);
+ String path = Globals::get_singleton()->get(base);
+ int order = Globals::get_singleton()->get_order(base);
+
+ if (path.begins_with("*"))
+ path = path.substr(1,path.length());
+
+ if (checked)
+ path = "*" + path;
+
+ undo_redo->create_action(TTR("Toggle AutoLoad Globals"));
+ undo_redo->add_do_property(Globals::get_singleton(),base,path);
+ undo_redo->add_undo_property(Globals::get_singleton(),base,Globals::get_singleton()->get(base));
+ undo_redo->add_do_method(Globals::get_singleton(),"set_order",base,order); // keep order, as config order matters for these
+ undo_redo->add_undo_method(Globals::get_singleton(),"set_order",base,order);
+ undo_redo->add_do_method(this,"_update_autoload");
+ undo_redo->add_undo_method(this,"_update_autoload");
+ undo_redo->add_do_method(this,"_settings_changed");
+ undo_redo->add_undo_method(this,"_settings_changed");
+ undo_redo->commit_action();
+ }
+
+ updating_autoload = false;
}
void ProjectSettings::_autoload_add() {
String name = autoload_add_name->get_text();
if (!name.is_valid_identifier()) {
- message->set_text("Invalid Name.\nValid characters: a-z,A-Z,0-9 or _");
+ message->set_text(TTR("Invalid name.")+"\n"+TTR("Valid characters:")+" a-z, A-Z, 0-9 or _");
message->popup_centered(Size2(300,100));
return;
@@ -877,7 +946,7 @@ void ProjectSettings::_autoload_add() {
if (ObjectTypeDB::type_exists(name)) {
- message->set_text(TTR("Invalid Name.Must not collide with an existing engine class name."));
+ message->set_text(TTR("Invalid name. Must not collide with an existing engine class name."));
message->popup_centered(Size2(300,100));
return;
@@ -886,7 +955,7 @@ void ProjectSettings::_autoload_add() {
for(int i=0;i<Variant::VARIANT_MAX;i++) {
if (Variant::get_type_name(Variant::Type(i))==name) {
- message->set_text(TTR("Invalid Name.Must not collide with an existing buit-in type name."));
+ message->set_text(TTR("Invalid name. Must not collide with an existing buit-in type name."));
message->popup_centered(Size2(300,100));
return;
@@ -897,7 +966,7 @@ void ProjectSettings::_autoload_add() {
if (GlobalConstants::get_global_constant_name(i)==name) {
- message->set_text(TTR("Invalid Name.Must not collide with an existing global constant name."));
+ message->set_text(TTR("Invalid name. Must not collide with an existing global constant name."));
message->popup_centered(Size2(300,100));
return;
}
@@ -990,6 +1059,14 @@ void ProjectSettings::_autoload_delete(Object *p_item,int p_column, int p_button
}
+void ProjectSettings::_autoload_selected() {
+ TreeItem *ti = autoload_list->get_selected();
+
+ if (!ti)
+ return;
+
+ selected_autoload = "autoload/"+ti->get_text(0);
+}
void ProjectSettings::_translation_delete(Object *p_item,int p_column, int p_button) {
@@ -1348,6 +1425,7 @@ void ProjectSettings::_update_autoload() {
}
TreeItem *t = autoload_list->create_item(root);
t->set_text(0,name);
+ t->set_editable(0,true);
t->set_text(1,path);
t->set_cell_mode(2,TreeItem::CELL_MODE_CHECK);
t->set_editable(2,true);
@@ -1436,6 +1514,7 @@ void ProjectSettings::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_update_autoload"),&ProjectSettings::_update_autoload);
ObjectTypeDB::bind_method(_MD("_autoload_delete"),&ProjectSettings::_autoload_delete);
ObjectTypeDB::bind_method(_MD("_autoload_edited"),&ProjectSettings::_autoload_edited);
+ ObjectTypeDB::bind_method(_MD("_autoload_selected"),&ProjectSettings::_autoload_selected);
ObjectTypeDB::bind_method(_MD("_clear_search_box"),&ProjectSettings::_clear_search_box);
ObjectTypeDB::bind_method(_MD("_toggle_search_bar"),&ProjectSettings::_toggle_search_bar);
@@ -1556,7 +1635,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
save->set_anchor(MARGIN_BOTTOM,ANCHOR_END);
save->set_begin( Point2(80,28) );
save->set_end( Point2(10,20) );
- save->set_text(TTR("Save"));
+ save->set_text("Save");
save->connect("pressed",this,"_save");
*/
@@ -1684,7 +1763,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
save->set_anchor(MARGIN_BOTTOM,ANCHOR_END);
save->set_begin( Point2(80,28) );
save->set_end( Point2(10,20) );
- save->set_text(TTR("Save"));
+ save->set_text("Save");
save->connect("pressed",this,"_save");
*/
setting=false;
@@ -1761,7 +1840,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
tmc->add_child(translation_remap_options);
translation_remap_options->set_columns(2);
- translation_remap_options->set_column_title(0,"Path");
+ translation_remap_options->set_column_title(0,TTR("Path"));
translation_remap_options->set_column_title(1,TTR("Locale"));
translation_remap_options->set_column_titles_visible(true);
translation_remap_options->set_column_expand(0,true);
@@ -1827,7 +1906,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
autoload_list->set_column_title(0,TTR("Name"));
autoload_list->set_column_expand(0,true);
autoload_list->set_column_min_width(0,100);
- autoload_list->set_column_title(1,"Path");
+ autoload_list->set_column_title(1,TTR("Path"));
autoload_list->set_column_expand(1,true);
autoload_list->set_column_min_width(1,100);
autoload_list->set_column_title(2,TTR("Singleton"));
@@ -1838,6 +1917,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
autoload_list->connect("button_pressed",this,"_autoload_delete");
autoload_list->connect("item_edited",this,"_autoload_edited");
+ autoload_list->connect("cell_selected", this, "_autoload_selected");
updating_autoload=false;
@@ -1861,7 +1941,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
/*
Control * es = memnew( Control );
- es->set_name(TTR("Export"));
+ es->set_name("Export");
tab_container->add_child(es);
export_settings = memnew( ProjectExportSettings );
es->add_child(export_settings);
diff --git a/tools/editor/project_settings.h b/tools/editor/project_settings.h
index 113cc49b7c..5108378ff7 100644
--- a/tools/editor/project_settings.h
+++ b/tools/editor/project_settings.h
@@ -91,6 +91,7 @@ class ProjectSettings : public AcceptDialog {
Tree *autoload_list;
+ String selected_autoload;
EditorFileDialog *autoload_file_open;
LineEdit *autoload_add_name;
LineEdit *autoload_add_path;
@@ -104,6 +105,7 @@ class ProjectSettings : public AcceptDialog {
void _autoload_edited();
void _autoload_file_open();
void _autoload_delete(Object *p_item,int p_column, int p_button);
+ void _autoload_selected();
bool updating_autoload;
diff --git a/tools/editor/property_editor.cpp b/tools/editor/property_editor.cpp
index c4f54e04cb..3258bc6d74 100644
--- a/tools/editor/property_editor.cpp
+++ b/tools/editor/property_editor.cpp
@@ -306,14 +306,14 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
slider->set_step((type==Variant::REAL) ? step : 1);
slider->set_val(v);
slider->show();
- set_size(Size2(110,30));
+ set_size(Size2(110,30)*EDSCALE);
} else {
spinbox->set_min(min);
spinbox->set_max(max);
spinbox->set_step((type==Variant::REAL) ? step : 1);
spinbox->set_val(v);
spinbox->show();
- set_size(Size2(70,35));
+ set_size(Size2(70,35)*EDSCALE);
}
@@ -339,7 +339,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
}
- set_size(checks20[19]->get_pos()+Size2(20,25));
+ set_size(checks20[19]->get_pos()+Size2(20,25)*EDSCALE);
} else if (hint==PROPERTY_HINT_EXP_EASING) {
@@ -365,7 +365,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
type_button->show();
easing_draw->show();
- set_size(Size2(200,150));
+ set_size(Size2(200,150)*EDSCALE);
} else if (hint==PROPERTY_HINT_FLAGS) {
menu->clear();
Vector<String> flags = hint_text.split(",");
@@ -419,8 +419,8 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
//action_buttons[0];
- int button_margin = get_constant("button_margin",TTR("Dialogs"));
- int margin = get_constant("margin",TTR("Dialogs"));
+ int button_margin = get_constant("button_margin","Dialogs");
+ int margin = get_constant("margin","Dialogs");
action_buttons[0]->set_anchor( MARGIN_LEFT, ANCHOR_END );
action_buttons[0]->set_anchor( MARGIN_TOP, ANCHOR_END );
@@ -600,7 +600,7 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
color_picker->show();
color_picker->set_edit_alpha(hint!=PROPERTY_HINT_COLOR_NO_ALPHA);
color_picker->set_color(v);
- set_size( Size2(300, color_picker->get_combined_minimum_size().height+10));
+ set_size( Size2(300*EDSCALE, color_picker->get_combined_minimum_size().height+10*EDSCALE));
/*
int ofs=80;
int m=10;
@@ -691,10 +691,10 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
int id = TYPE_BASE_ID+idx;
if (has_icon(t,"EditorIcons")) {
- menu->add_icon_item(get_icon(t,"EditorIcons"),"New "+t,id);
+ menu->add_icon_item(get_icon(t,"EditorIcons"),TTR("New")+" "+t,id);
} else {
- menu->add_item(TTR("New ")+t,id);
+ menu->add_item(TTR("New")+" "+t,id);
}
idx++;
@@ -936,7 +936,7 @@ void CustomPropertyEditor::_node_path_selected(NodePath p_path) {
if (owner->is_type("Node"))
node = owner->cast_to<Node>();
- else if (owner->is_type(TTR("ArrayPropertyEdit")))
+ else if (owner->is_type("ArrayPropertyEdit"))
node = owner->cast_to<ArrayPropertyEdit>()->get_node();
if (!node) {
@@ -1673,6 +1673,7 @@ void CustomPropertyEditor::config_value_editors(int p_amount, int p_columns,int
}
+
void CustomPropertyEditor::_bind_methods() {
ObjectTypeDB::bind_method("_focus_enter", &CustomPropertyEditor::_focus_enter);
@@ -1691,6 +1692,7 @@ void CustomPropertyEditor::_bind_methods() {
ObjectTypeDB::bind_method( "_menu_option",&CustomPropertyEditor::_menu_option);
+
ADD_SIGNAL( MethodInfo("variant_changed") );
ADD_SIGNAL( MethodInfo("resource_edit_request") );
}
@@ -1732,7 +1734,7 @@ CustomPropertyEditor::CustomPropertyEditor() {
add_child(checks20[i]);
checks20[i]->hide();
checks20[i]->connect("pressed",this,"_action_pressed",make_binds(i));
- checks20[i]->set_tooltip(TTR("Bit ")+itos(i)+", val "+itos(1<<i)+".");
+ checks20[i]->set_tooltip(vformat(TTR("Bit %d, val %d."), i, 1<<i));
}
text_edit = memnew( TextEdit );
@@ -2180,6 +2182,11 @@ void PropertyEditor::set_item_text(TreeItem *p_item, int p_type, const String& p
}
}
+ if (!res->is_type("Texture")) {
+ //texture already previews via itself
+ EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",p_item->get_instance_ID());
+ }
+
}
@@ -2658,11 +2665,11 @@ void PropertyEditor::update_tree() {
TreeItem *title = tree->create_item(root);
title->set_custom_bg_color(0,get_color("prop_section","Editor"));
- title->set_text(0,TTR("Property")); // todo, fetch name if ID exists in database
+ title->set_text(0,"Property"); // todo, fetch name if ID exists in database
title->set_editable(0,false);
title->set_selectable(0,false);
title->set_custom_bg_color(1,get_color("prop_section","Editor"));
- title->set_text(1,TTR("Value")); // todo, fetch name if ID exists in database
+ title->set_text(1,"Value"); // todo, fetch name if ID exists in database
title->set_editable(1,false);
title->set_selectable(1,false);
*/
@@ -2671,7 +2678,7 @@ void PropertyEditor::update_tree() {
if (obj->cast_to<Node>() || obj->cast_to<Resource>()) {
TreeItem *type = tree->create_item(root);
- type->set_text(0,TTR("Type")); // todo, fetch name if ID exists in database
+ type->set_text(0,"Type"); // todo, fetch name if ID exists in database
type->set_text(1,obj->get_type()); // todo, fetch name if ID exists in database
if (has_icon(obj->get_type(),"EditorIcons"))
type->set_icon(1,get_icon(obj->get_type(),"EditorIcons") );
@@ -2684,7 +2691,7 @@ void PropertyEditor::update_tree() {
TreeItem *name = tree->create_item(root);
- name->set_text(0,TTR("Name")); // todo, fetch name if ID exists in database
+ name->set_text(0,"Name"); // todo, fetch name if ID exists in database
if (obj->is_type("Resource"))
name->set_text(1,obj->cast_to<Resource>()->get_name());
else if (obj->is_type("Node"))
@@ -2767,7 +2774,7 @@ void PropertyEditor::update_tree() {
}
- sep->set_tooltip(0,TTR("Class: ")+p.name+":\n\n"+class_descr_cache[type]);
+ sep->set_tooltip(0,TTR("Class:")+" "+p.name+":\n\n"+class_descr_cache[type]);
}
//sep->set_custom_color(0,Color(1,1,1));
@@ -2864,7 +2871,7 @@ void PropertyEditor::update_tree() {
descr_cache[type][setter]=descr;
}
- item->set_tooltip(0, TTR("Property: ")+p.name+"\n\n"+descr);
+ item->set_tooltip(0, TTR("Property:")+" "+p.name+"\n\n"+descr);
}
}
//EditorHelp::get_doc_data();
@@ -2989,6 +2996,32 @@ void PropertyEditor::update_tree() {
item->set_range(1, obj->get( p.name ) );
item->set_editable(1,!read_only);
break;
+ } else if (p.hint==PROPERTY_HINT_OBJECT_ID) {
+
+// int c = p.hint_string.get_slice_count(",");
+ item->set_cell_mode(1,TreeItem::CELL_MODE_CUSTOM);
+
+ String type=p.hint_string;
+ if (type=="")
+ type="Object";
+
+ ObjectID id = obj->get( p.name );
+ if (id!=0) {
+ item->set_text(1,type+" ID: "+itos(id));
+ item->add_button(1,get_icon("EditResource","EditorIcons"));
+ } else {
+ item->set_text(1,"[Empty]");
+ }
+
+ if (has_icon(p.hint_string,"EditorIcons")) {
+ type=p.hint_string;
+ } else {
+ type="Object";
+ }
+
+ item->set_icon(0,get_icon(type,"EditorIcons"));
+
+ break;
} else {
if (p.type == Variant::REAL) {
@@ -3331,6 +3364,10 @@ void PropertyEditor::update_tree() {
} else if (res.is_valid()) {
item->set_tooltip(1,res->get_name()+" ("+res->get_type()+")");
}
+ if (!res->is_type("Texture")) {
+ //texture already previews via itself
+ EditorResourcePreview::get_singleton()->queue_edited_resource_preview(res,this,"_resource_preview_done",item->get_instance_ID());
+ }
}
@@ -3433,7 +3470,7 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) {
} else {
- undo_redo->create_action(TTR("Set ")+p_name,true);
+ undo_redo->create_action(TTR("Set")+" "+p_name,true);
undo_redo->add_do_property(obj,p_name,p_value);
undo_redo->add_undo_property(obj,p_name,obj->get(p_name));
undo_redo->add_do_method(this,"_changed_callback",obj,p_name);
@@ -3758,6 +3795,11 @@ void PropertyEditor::_edit_button(Object *p_item, int p_column, int p_button) {
emit_signal("resource_selected",r,n);
}
+ } else if (t==Variant::INT && h==PROPERTY_HINT_OBJECT_ID) {
+
+ emit_signal("object_id_selected",obj->get(n));
+ print_line("OBJ ID SELECTED");
+
} else if (t==Variant::ARRAY || t==Variant::INT_ARRAY || t==Variant::REAL_ARRAY || t==Variant::STRING_ARRAY || t==Variant::VECTOR2_ARRAY || t==Variant::VECTOR3_ARRAY || t==Variant::COLOR_ARRAY || t==Variant::RAW_ARRAY) {
Variant v = obj->get(n);
@@ -3839,6 +3881,29 @@ void PropertyEditor::_filter_changed(const String& p_text) {
update_tree();
}
+
+
+void PropertyEditor::_resource_preview_done(const String& p_path,const Ref<Texture>& p_preview,Variant p_ud) {
+
+ if (p_preview.is_null())
+ return; //don't bother with empty preview
+
+ ObjectID id = p_ud;
+ Object *obj = ObjectDB::get_instance(id);
+
+ if (!obj)
+ return;
+
+ TreeItem *ti = obj->cast_to<TreeItem>();
+
+ ERR_FAIL_COND(!ti);
+
+ int tw = EditorSettings::get_singleton()->get("property_editor/texture_preview_width");
+
+ ti->set_icon(1,p_preview); //should be scaled I think?
+ ti->set_icon_max_width(1,tw);
+ ti->set_text(1,"");
+}
void PropertyEditor::_bind_methods() {
ObjectTypeDB::bind_method( "_item_edited",&PropertyEditor::_item_edited);
@@ -3853,6 +3918,7 @@ void PropertyEditor::_bind_methods() {
ObjectTypeDB::bind_method( "_set_range_def",&PropertyEditor::_set_range_def);
ObjectTypeDB::bind_method( "_filter_changed",&PropertyEditor::_filter_changed);
ObjectTypeDB::bind_method( "update_tree",&PropertyEditor::update_tree);
+ ObjectTypeDB::bind_method( "_resource_preview_done",&PropertyEditor::_resource_preview_done);
ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &PropertyEditor::get_drag_data_fw);
ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &PropertyEditor::can_drop_data_fw);
@@ -3860,6 +3926,7 @@ void PropertyEditor::_bind_methods() {
ADD_SIGNAL( MethodInfo("property_toggled",PropertyInfo( Variant::STRING, "property"),PropertyInfo( Variant::BOOL, "value")));
ADD_SIGNAL( MethodInfo("resource_selected", PropertyInfo( Variant::OBJECT, "res"),PropertyInfo( Variant::STRING, "prop") ) );
+ ADD_SIGNAL( MethodInfo("object_id_selected", PropertyInfo( Variant::INT, "id")) );
ADD_SIGNAL( MethodInfo("property_keyed",PropertyInfo( Variant::STRING, "property")));
ADD_SIGNAL( MethodInfo("property_edited",PropertyInfo( Variant::STRING, "property")));
}
@@ -4219,7 +4286,7 @@ PropertyEditor *SectionedPropertyEditor::get_property_editor() {
SectionedPropertyEditor::SectionedPropertyEditor() {
VBoxContainer *left_vb = memnew( VBoxContainer);
- left_vb->set_custom_minimum_size(Size2(160,0));
+ left_vb->set_custom_minimum_size(Size2(160,0)*EDSCALE);
add_child(left_vb);
sections = memnew( ItemList );
diff --git a/tools/editor/property_editor.h b/tools/editor/property_editor.h
index ac58011d43..a909b5ccd3 100644
--- a/tools/editor/property_editor.h
+++ b/tools/editor/property_editor.h
@@ -131,6 +131,7 @@ class CustomPropertyEditor : public Popup {
void config_value_editors(int p_amount, int p_columns,int p_label_w,const List<String>& p_strings);
void config_action_buttons(const List<String>& p_strings);
+
protected:
void _notification(int p_what);
@@ -231,6 +232,7 @@ class PropertyEditor : public Control {
bool can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const;
void drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from);
+ void _resource_preview_done(const String& p_path,const Ref<Texture>& p_preview,Variant p_ud);
UndoRedo *undo_redo;
protected:
diff --git a/tools/editor/pvrtc_compress.cpp b/tools/editor/pvrtc_compress.cpp
index fcb3c7abc8..75b5c69bc2 100644
--- a/tools/editor/pvrtc_compress.cpp
+++ b/tools/editor/pvrtc_compress.cpp
@@ -82,7 +82,7 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
}
- if (EditorSettings::get_singleton()->get(TTR("PVRTC/fast_conversion")).operator bool()) {
+ if (EditorSettings::get_singleton()->get("PVRTC/fast_conversion").operator bool()) {
args.push_back("-pvrtcfast");
}
if (p_image->get_mipmaps()>0)
@@ -93,13 +93,13 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
ResourceSaver::save(src_img,t);
Error err = OS::get_singleton()->execute(ttpath,args,true);
- ERR_EXPLAIN(TTR("Could not execute PVRTC Tool: ")+ttpath);
+ ERR_EXPLAIN(TTR("Could not execute PVRTC tool:")+" "+ttpath);
ERR_FAIL_COND(err!=OK);
t=ResourceLoader::load(dst_img,"Texture");
- ERR_EXPLAIN(TTR("Can't load back converted image using PVRTC Tool: ")+dst_img);
+ ERR_EXPLAIN(TTR("Can't load back converted image using PVRTC tool:")+" "+dst_img);
ERR_FAIL_COND(t.is_null());
*p_image=t->get_data();
diff --git a/tools/editor/register_exporters.h b/tools/editor/register_exporters.h
index 364ad5efc9..dccaa0641f 100644
--- a/tools/editor/register_exporters.h
+++ b/tools/editor/register_exporters.h
@@ -32,4 +32,4 @@
void register_exporters();
-#endif \ No newline at end of file
+#endif
diff --git a/tools/editor/reparent_dialog.cpp b/tools/editor/reparent_dialog.cpp
index 7803208c89..38b0372232 100644
--- a/tools/editor/reparent_dialog.cpp
+++ b/tools/editor/reparent_dialog.cpp
@@ -99,7 +99,7 @@ ReparentDialog::ReparentDialog() {
//Label *label = memnew( Label );
//label->set_pos( Point2( 15,8) );
- //label->set_text(TTR("Reparent Location (Select new Parent):"));
+ //label->set_text("Reparent Location (Select new Parent):");
keep_transform = memnew( CheckBox );
keep_transform->set_text(TTR("Keep Global Transform"));
@@ -107,7 +107,7 @@ ReparentDialog::ReparentDialog() {
vbc->add_child(keep_transform);
- //vbc->add_margin_child(TTR("Options:"),node_only);;
+ //vbc->add_margin_child("Options:",node_only);;
//cancel->connect("pressed", this,"_cancel");
diff --git a/tools/editor/run_settings_dialog.cpp b/tools/editor/run_settings_dialog.cpp
index fd2e9f9759..abcfe125f3 100644
--- a/tools/editor/run_settings_dialog.cpp
+++ b/tools/editor/run_settings_dialog.cpp
@@ -88,7 +88,7 @@ RunSettingsDialog::RunSettingsDialog() {
arguments->set_editable(false);
get_ok()->set_text(TTR("Close"));
- //get_cancel()->set_text(TTR("Close"));
+ //get_cancel()->set_text("Close");
arguments->set_text("-l $scene");
diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp
index eb6e96ac51..9612305a0f 100644
--- a/tools/editor/scene_tree_dock.cpp
+++ b/tools/editor/scene_tree_dock.cpp
@@ -66,7 +66,7 @@ void SceneTreeDock::instance(const String& p_file) {
current_option=-1;
//accept->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("Ok :( "));
+ accept->get_ok()->set_text(TTR("OK :("));
accept->set_text(TTR("No parent to instance a child at."));
accept->popup_centered_minsize();
return;
@@ -98,7 +98,7 @@ void SceneTreeDock::instance_scenes(const Vector<String>& p_files,Node* parent,i
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(String(TTR("Error loading scene from "))+p_files[i]);
+ accept->set_text(vformat(TTR("Error loading scene from %s"),p_files[i]));
accept->popup_centered_minsize();
error=true;
break;
@@ -110,7 +110,7 @@ void SceneTreeDock::instance_scenes(const Vector<String>& p_files,Node* parent,i
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
- accept->set_text(String(TTR("Error instancing scene from "))+p_files[i]);
+ accept->set_text(vformat(TTR("Error instancing scene from %s"),p_files[i]));
accept->popup_centered_minsize();
error=true;
break;
@@ -122,7 +122,7 @@ void SceneTreeDock::instance_scenes(const Vector<String>& p_files,Node* parent,i
if (_cyclical_dependency_exists(edited_scene->get_filename(), instanced_scene)) {
accept->get_ok()->set_text(TTR("Ok"));
- accept->set_text(String(TTR("Cannot instance the scene '"))+p_files[i]+String(TTR("' because the current scene exists within one of its' nodes.")));
+ accept->set_text(vformat(TTR("Cannot instance the scene '%s' because the current scene exists within one of its nodes."),p_files[i]));
accept->popup_centered_minsize();
error=true;
break;
@@ -225,7 +225,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
/* should be legal now
current_option=-1;
//confirmation->get_cancel()->hide();
- accept->get_ok()->set_text(TTR("I see.."));
+ accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a tree root.");
accept->popup_centered_minsize();
*/
@@ -260,8 +260,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
//if (!_validate_no_foreign())
// break;
- connect_dialog->popup_centered_ratio();
- connect_dialog->set_node(current);
+ //connect_dialog->popup_centered_ratio();
+ //connect_dialog->set_node(current);
} break;
case TOOL_GROUP: {
@@ -271,8 +271,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
break;
//if (!_validate_no_foreign())
// break;
- groups_editor->set_current(current);
- groups_editor->popup_centered_ratio();
+ //groups_editor->set_current(current);
+ //groups_editor->popup_centered_ratio();
} break;
case TOOL_SCRIPT: {
@@ -308,7 +308,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text("This operation can't be done on the tree root.");
+ accept->set_text(TTR("This operation can't be done on the tree root."));
accept->popup_centered_minsize();
break;
}
@@ -376,7 +376,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text("This operation can't be done on the tree root.");
+ accept->set_text(TTR("This operation can't be done on the tree root."));
accept->popup_centered_minsize();
break;
}
@@ -442,7 +442,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
dup->set_name(attempt);
- editor_data->get_undo_redo().add_do_method(parent,"add_child",dup);
+ editor_data->get_undo_redo().add_do_method(parent,"_add_child_below_node",node, dup);
for (List<Node*>::Element *F=owned.front();F;F=F->next()) {
if (!duplimap.has(F->get())) {
@@ -488,7 +488,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
current_option=-1;
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text("This operation can't be done on the tree root.");
+ accept->set_text(TTR("This operation can't be done on the tree root."));
accept->popup_centered_minsize();
break;
}
@@ -542,13 +542,17 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
}
} break;
+ case TOOL_MERGE_FROM_SCENE: {
+
+ EditorNode::get_singleton()->merge_from_scene();
+ } break;
case TOOL_NEW_SCENE_FROM: {
Node *scene = editor_data->get_edited_scene_root();
if (!scene) {
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text("This operation can't be done without a scene.");
+ accept->set_text(TTR("This operation can't be done without a scene."));
accept->popup_centered_minsize();
break;
}
@@ -566,7 +570,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
if (tocopy!=editor_data->get_edited_scene_root() && tocopy->get_filename()!="") {
accept->get_ok()->set_text(TTR("I see.."));
- accept->set_text("This operation can't be done on instanced scenes.");
+ accept->set_text(TTR("This operation can't be done on instanced scenes."));
accept->popup_centered_minsize();
break;
}
@@ -583,7 +587,8 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) {
String existing;
if (extensions.size()) {
- existing="new_scene."+extensions.front()->get().to_lower();
+ String root_name(tocopy->get_name());
+ existing=root_name+"."+extensions.front()->get().to_lower();
}
new_scene_from_dialog->set_current_path(existing);
@@ -612,26 +617,8 @@ void SceneTreeDock::_notification(int p_what) {
canvas_item_plugin->get_canvas_item_editor()->connect("item_group_status_changed", scene_tree, "_update_tree");
scene_tree->connect("node_changed", canvas_item_plugin->get_canvas_item_editor()->get_viewport_control(), "update");
}
- static const char* button_names[TOOL_BUTTON_MAX]={
- "New",
- "Add",
- "Replace",
- "Connect",
- "Groups",
- "Script",
- "MoveUp",
- "MoveDown",
- "Duplicate",
- "Reparent",
- "CreateNewSceneFrom",
- "MultiNodeEdit",
- "Remove",
- };
-
-
-
- for(int i=0;i<TOOL_BUTTON_MAX;i++)
- tool_buttons[i]->set_icon(get_icon(button_names[i],"EditorIcons"));
+ button_add->set_icon(get_icon("Add","EditorIcons"));
+ button_instance->set_icon(get_icon("Instance","EditorIcons"));
filter_icon->set_texture(get_icon("Zoom","EditorIcons"));
@@ -1246,33 +1233,11 @@ void SceneTreeDock::_delete_confirm() {
}
editor_data->get_undo_redo().commit_action();
- _update_tool_buttons();
-
-}
-
-void SceneTreeDock::_update_tool_buttons() {
- Node *sel = scene_tree->get_selected();
- bool disable = !sel || (sel!=edited_scene && sel->get_owner()!=edited_scene);
- disable = disable || (edited_scene->get_scene_inherited_state().is_valid() && edited_scene->get_scene_inherited_state()->find_node_by_path(edited_scene->get_path_to(sel))>=0);
- bool disable_root = disable || sel->get_parent()==scene_root;
- bool disable_edit = !sel;
- tool_buttons[TOOL_INSTANCE]->set_disabled(disable_edit);
- tool_buttons[TOOL_REPLACE]->set_disabled(disable);
- tool_buttons[TOOL_CONNECT]->set_disabled(disable_edit);
- tool_buttons[TOOL_GROUP]->set_disabled(disable_edit);
- tool_buttons[TOOL_SCRIPT]->set_disabled(disable_edit);
- tool_buttons[TOOL_MOVE_UP]->set_disabled(disable_root);
- tool_buttons[TOOL_MOVE_DOWN]->set_disabled(disable_root);
- tool_buttons[TOOL_DUPLICATE]->set_disabled(disable_root);
- tool_buttons[TOOL_REPARENT]->set_disabled(disable_root);
- tool_buttons[TOOL_ERASE]->set_disabled(disable);
- tool_buttons[TOOL_NEW_SCENE_FROM]->set_disabled(disable_root);
- tool_buttons[TOOL_MULTI_EDIT]->set_disabled(EditorNode::get_singleton()->get_editor_selection()->get_selection().size()<2);
+}
-}
void SceneTreeDock::_selection_changed() {
@@ -1281,7 +1246,7 @@ void SceneTreeDock::_selection_changed() {
//automatically turn on multi-edit
_tool_selected(TOOL_MULTI_EDIT);
}
-
+
//tool_buttons[TOOL_MULTI_EDIT]->set_disabled(EditorNode::get_singleton()->get_editor_selection()->get_selection().size()<2);
}
@@ -1415,7 +1380,7 @@ void SceneTreeDock::_create() {
memdelete(n);
- _update_tool_buttons();
+
}
@@ -1430,7 +1395,7 @@ void SceneTreeDock::set_edited_scene(Node* p_scene) {
void SceneTreeDock::set_selected(Node *p_node, bool p_emit_selected ) {
scene_tree->set_selected(p_node,p_emit_selected);
- _update_tool_buttons();
+
}
void SceneTreeDock::import_subscene() {
@@ -1451,7 +1416,7 @@ void SceneTreeDock::_import_subscene() {
/*
- editor_data->get_undo_redo().create_action(TTR("Import Subscene"));
+ editor_data->get_undo_redo().create_action("Import Subscene");
editor_data->get_undo_redo().add_do_method(parent,"add_child",ss);
//editor_data->get_undo_redo().add_do_method(editor_selection,"clear");
//editor_data->get_undo_redo().add_do_method(editor_selection,"add_node",child);
@@ -1698,8 +1663,8 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) {
if (!EditorNode::get_singleton()->get_edited_scene()) {
menu->clear();
- menu->add_item("New Scene Root",TOOL_NEW,KEY_MASK_CMD|KEY_A);
- menu->add_item("Inherit Scene",TOOL_INSTANCE);
+ menu->add_icon_item(get_icon("Add","EditorIcons"),TTR("New Scene Root"),TOOL_NEW,KEY_MASK_CMD|KEY_A);
+ menu->add_icon_item(get_icon("Instance","EditorIcons"),TTR("Inherit Scene"),TOOL_INSTANCE);
menu->set_size(Size2(1,1));
menu->set_pos(p_menu_pos);
@@ -1716,30 +1681,31 @@ void SceneTreeDock::_tree_rmb(const Vector2& p_menu_pos) {
if (selection.size()==1) {
- menu->add_item("Add Child Node",TOOL_NEW,KEY_MASK_CMD|KEY_A);
- menu->add_item("Instance Child",TOOL_INSTANCE);
+ menu->add_icon_item(get_icon("Add","EditorIcons"),TTR("Add Child Node"),TOOL_NEW,KEY_MASK_CMD|KEY_A);
+ menu->add_icon_item(get_icon("Instance","EditorIcons"),TTR("Instance Child Scene"),TOOL_INSTANCE);
menu->add_separator();
- menu->add_item("Change Type",TOOL_REPLACE);
+ menu->add_icon_item(get_icon("Reload","EditorIcons"),TTR("Change Type"),TOOL_REPLACE);
+ //menu->add_separator(); moved to their own dock
+ //menu->add_icon_item(get_icon("Groups","EditorIcons"),TTR("Edit Groups"),TOOL_GROUP);
+ //menu->add_icon_item(get_icon("Connect","EditorIcons"),TTR("Edit Connections"),TOOL_CONNECT);
menu->add_separator();
- menu->add_item("Edit Groups",TOOL_GROUP);
- menu->add_item("Edit Connections",TOOL_CONNECT);
- menu->add_separator();
- menu->add_item("Add Script",TOOL_SCRIPT);
+ menu->add_icon_item(get_icon("Script","EditorIcons"),TTR("Add Script"),TOOL_SCRIPT);
menu->add_separator();
}
- menu->add_item("Move Up",TOOL_MOVE_UP,KEY_MASK_CMD|KEY_UP);
- menu->add_item("Move Down",TOOL_MOVE_DOWN,KEY_MASK_CMD|KEY_DOWN);
- menu->add_item("Duplicate",TOOL_DUPLICATE,KEY_MASK_CMD|KEY_D);
- menu->add_item("Reparent",TOOL_REPARENT);
+ menu->add_icon_item(get_icon("Up","EditorIcons"),TTR("Move Up"),TOOL_MOVE_UP,KEY_MASK_CMD|KEY_UP);
+ menu->add_icon_item(get_icon("Down","EditorIcons"),TTR("Move Down"),TOOL_MOVE_DOWN,KEY_MASK_CMD|KEY_DOWN);
+ menu->add_icon_item(get_icon("Duplicate","EditorIcons"),TTR("Duplicate"),TOOL_DUPLICATE,KEY_MASK_CMD|KEY_D);
+ menu->add_icon_item(get_icon("Reparent","EditorIcons"),TTR("Reparent"),TOOL_REPARENT);
if (selection.size()==1) {
menu->add_separator();
- menu->add_item("Save Branch as Scene",TOOL_NEW_SCENE_FROM);
+ menu->add_icon_item(get_icon("Blend","EditorIcons"),TTR("Merge From Scene"),TOOL_MERGE_FROM_SCENE);
+ menu->add_icon_item(get_icon("Save","EditorIcons"),TTR("Save Branch as Scene"),TOOL_NEW_SCENE_FROM);
}
menu->add_separator();
- menu->add_item("Delete Node(s)",TOOL_ERASE,KEY_DELETE);
+ menu->add_icon_item(get_icon("Remove","EditorIcons"),TTR("Delete Node(s)"),TOOL_ERASE,KEY_DELETE);
menu->set_size(Size2(1,1));
menu->set_pos(p_menu_pos);
@@ -1803,56 +1769,30 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
VBoxContainer *vbc = this;
- HBoxContainer *hbc_top = memnew( HBoxContainer );
- vbc->add_child(hbc_top);
-
+ HBoxContainer *filter_hbc = memnew( HBoxContainer );
ToolButton *tb;
tb = memnew( ToolButton );
tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_NEW, false));
- tb->set_tooltip("Add/Create a New Node\n("+keycode_get_string(KEY_MASK_CMD|KEY_A)+")");
- hbc_top->add_child(tb);
- tool_buttons[TOOL_NEW]=tb;
+ tb->set_tooltip(TTR("Add/Create a New Node")+"\n("+keycode_get_string(KEY_MASK_CMD|KEY_A)+")");
+ filter_hbc->add_child(tb);
+ button_add=tb;
tb = memnew( ToolButton );
tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_INSTANCE, false));
- tb->set_tooltip(TTR("Instance a scene file as a Node."));
- hbc_top->add_child(tb);
- tool_buttons[TOOL_INSTANCE]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_REPLACE, false));
- tb->set_tooltip(TTR("Replace a Node by Another Node Type"));
- hbc_top->add_child(tb);
- tool_buttons[TOOL_REPLACE]=tb;
+ tb->set_tooltip(TTR("Instance a scene file as a Node. Creates an inherited scene if no root node exists."));
+ filter_hbc->add_child(tb);
+ button_instance=tb;
- hbc_top->add_spacer();
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_CONNECT, false));
- tb->set_tooltip(TTR("Edit the Node Connections"));
- hbc_top->add_child(tb);
- tool_buttons[TOOL_CONNECT]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_GROUP, false));
- tb->set_tooltip(TTR("Edit the Node Groups"));
- hbc_top->add_child(tb);
- tool_buttons[TOOL_GROUP]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_SCRIPT, false));
- tb->set_tooltip(TTR("Edit/Create the Node Script"));
- hbc_top->add_child(tb);
- tool_buttons[TOOL_SCRIPT]=tb;
- HBoxContainer *filter_hbc = memnew( HBoxContainer );
vbc->add_child(filter_hbc);
filter = memnew( LineEdit );
filter->set_h_size_flags(SIZE_EXPAND_FILL);
filter_hbc->add_child(filter);
filter_icon = memnew( TextureFrame );
filter_hbc->add_child(filter_icon);
+ filter_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED);
filter->connect("text_changed",this,"_filter_changed");
@@ -1875,66 +1815,18 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
scene_tree->set_editor_selection(editor_selection);
- HBoxContainer *hbc_bottom = memnew( HBoxContainer );
- vbc->add_child(hbc_bottom);
- hbc_bottom->add_constant_override("separation", 0);
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_MOVE_UP, false));
- tb->set_tooltip("Move Node Up\n("+keycode_get_string(KEY_MASK_CMD|KEY_UP)+")");
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_MOVE_UP]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_MOVE_DOWN, false));
- tb->set_tooltip("Move Node Down\n("+keycode_get_string(KEY_MASK_CMD|KEY_DOWN)+")");
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_MOVE_DOWN]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_DUPLICATE, false));
- tb->set_tooltip("Duplicate Selected Node(s)\n("+keycode_get_string(KEY_MASK_CMD|KEY_D)+")");
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_DUPLICATE]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_REPARENT, false));
- tb->set_tooltip(TTR("Reparent Selected Node(s)"));
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_REPARENT]=tb;
-
- hbc_bottom->add_spacer();
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_NEW_SCENE_FROM, false));
- tb->set_tooltip(TTR("Create New Scene From Node(s)"));
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_NEW_SCENE_FROM]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_MULTI_EDIT, false));
- tb->set_tooltip(TTR("Multi-Edit Selected Nodes"));
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_MULTI_EDIT]=tb;
-
- tb = memnew( ToolButton );
- tb->connect("pressed",this,"_tool_selected",make_binds(TOOL_ERASE, false));
- tb->set_tooltip(TTR("Erase Selected Node(s)"));
- hbc_bottom->add_child(tb);
- tool_buttons[TOOL_ERASE]=tb;
-
create_dialog = memnew( CreateDialog );
create_dialog->set_base_type("Node");
add_child(create_dialog);
create_dialog->connect("create",this,"_create");
- groups_editor = memnew( GroupsEditor );
- add_child(groups_editor);
- groups_editor->set_undo_redo(&editor_data->get_undo_redo());
+ //groups_editor = memnew( GroupsEditor );
+ //add_child(groups_editor);
+ //groups_editor->set_undo_redo(&editor_data->get_undo_redo());
- connect_dialog = memnew( ConnectionsDialog(p_editor) );
- add_child(connect_dialog);
- connect_dialog->set_undoredo(&editor_data->get_undo_redo());
+ //connect_dialog = memnew( ConnectionsDialog(p_editor) );
+ //add_child(connect_dialog);
+ //connect_dialog->set_undoredo(&editor_data->get_undo_redo());
script_create_dialog = memnew( ScriptCreateDialog );
add_child(script_create_dialog);
@@ -1971,12 +1863,6 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelec
menu->connect("item_pressed",this,"_tool_selected");
first_enter=true;
- if (!EditorSettings::get_singleton()->get("scenetree_editor/display_old_action_buttons")) {
- for(int i=0;i<TOOL_BUTTON_MAX;i++) {
- tool_buttons[i]->hide();
- }
- }
-
vbc->add_constant_override("separation",4);
}
diff --git a/tools/editor/scene_tree_dock.h b/tools/editor/scene_tree_dock.h
index d917cae64f..60bec9b4f4 100644
--- a/tools/editor/scene_tree_dock.h
+++ b/tools/editor/scene_tree_dock.h
@@ -64,6 +64,7 @@ class SceneTreeDock : public VBoxContainer {
TOOL_DUPLICATE,
TOOL_REPARENT,
TOOL_NEW_SCENE_FROM,
+ TOOL_MERGE_FROM_SCENE,
TOOL_MULTI_EDIT,
TOOL_ERASE,
TOOL_BUTTON_MAX
@@ -74,7 +75,9 @@ class SceneTreeDock : public VBoxContainer {
int current_option;
CreateDialog *create_dialog;
- ToolButton *tool_buttons[TOOL_BUTTON_MAX];
+ ToolButton *button_add;
+ ToolButton *button_instance;
+
SceneTreeEditor *scene_tree;
HBoxContainer *tool_hbc;
@@ -83,8 +86,8 @@ class SceneTreeDock : public VBoxContainer {
EditorData *editor_data;
EditorSelection *editor_selection;
- GroupsEditor *groups_editor;
- ConnectionsDialog *connect_dialog;
+ //GroupsEditor *groups_editor;
+ //ConnectionsDialog *connect_dialog;
ScriptCreateDialog *script_create_dialog;
AcceptDialog *accept;
ConfirmationDialog *delete_dialog;
@@ -121,7 +124,7 @@ class SceneTreeDock : public VBoxContainer {
void _script_created(Ref<Script> p_script);
void _delete_confirm();
- void _update_tool_buttons();
+
void _node_prerenamed(Node* p_node, const String& p_new_name);
@@ -163,6 +166,7 @@ public:
void perform_node_renames(Node* p_base,List<Pair<NodePath,NodePath> > *p_renames, Map<Ref<Animation>, Set<int> > *r_rem_anims=NULL);
SceneTreeEditor *get_tree_editor() { return scene_tree; }
+
SceneTreeDock(EditorNode *p_editor,Node *p_scene_root,EditorSelection *p_editor_selection,EditorData &p_editor_data);
};
diff --git a/tools/editor/scene_tree_editor.cpp b/tools/editor/scene_tree_editor.cpp
index 22b6cdfb5d..bc12ff23e5 100644
--- a/tools/editor/scene_tree_editor.cpp
+++ b/tools/editor/scene_tree_editor.cpp
@@ -207,6 +207,26 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item,int p_column,int p_id)
_update_tree();
emit_signal("node_changed");
}
+ } else if (p_id==BUTTON_WARNING) {
+
+ String config_err = n->get_configuration_warning();
+ if (config_err==String())
+ return;
+ config_err=config_err.world_wrap(80);
+ warning->set_text(config_err);
+ warning->popup_centered_minsize();
+
+ } else if (p_id==BUTTON_SIGNALS) {
+
+ item->select(0);
+ NodeDock::singleton->get_parent()->call("set_current_tab",NodeDock::singleton->get_index());
+ NodeDock::singleton->show_connections();
+
+ } else if (p_id==BUTTON_GROUPS) {
+
+ item->select(0);
+ NodeDock::singleton->get_parent()->call("set_current_tab",NodeDock::singleton->get_index());
+ NodeDock::singleton->show_groups();
}
}
@@ -276,15 +296,36 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
}
}
+
+
+ if (can_rename) { //should be can edit..
+
+ String warning = p_node->get_configuration_warning();
+ if (warning!=String()) {
+ item->add_button(0,get_icon("NodeWarning","EditorIcons"),BUTTON_WARNING);
+ }
+
+ bool has_connections = p_node->has_persistent_signal_connections();
+ bool has_groups = p_node->has_persistent_groups();
+
+ if (has_connections && has_groups) {
+ item->add_button(0,get_icon("ConnectionAndGroups","EditorIcons"),BUTTON_SIGNALS);
+ } else if (has_connections) {
+ item->add_button(0,get_icon("Connect","EditorIcons"),BUTTON_SIGNALS);
+ } else if (has_groups) {
+ item->add_button(0,get_icon("Groups","EditorIcons"),BUTTON_GROUPS);
+ }
+ }
+
if (p_node==get_scene_node() && p_node->get_scene_inherited_state().is_valid()) {
item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE);
- item->set_tooltip(0,TTR("Inherits: ")+p_node->get_scene_inherited_state()->get_path()+"\nType: "+p_node->get_type());
+ item->set_tooltip(0,TTR("Inherits:")+" "+p_node->get_scene_inherited_state()->get_path()+"\n"+TTR("Type:")+" "+p_node->get_type());
} else if (p_node!=get_scene_node() && p_node->get_filename()!="" && can_open_instance) {
item->add_button(0,get_icon("InstanceOptions","EditorIcons"),BUTTON_SUBSCENE);
- item->set_tooltip(0,TTR("Instance: ")+p_node->get_filename()+"\nType: "+p_node->get_type());
+ item->set_tooltip(0,TTR("Instance:")+" "+p_node->get_filename()+"\n"+TTR("Type:")+" "+p_node->get_type());
} else {
- item->set_tooltip(0,String(p_node->get_name())+"\nType: "+p_node->get_type());
+ item->set_tooltip(0,String(p_node->get_name())+"\n"+TTR("Type:")+" "+p_node->get_type());
}
if (can_open_instance) {
@@ -345,7 +386,7 @@ bool SceneTreeEditor::_add_nodes(Node *p_node,TreeItem *p_parent) {
item->set_as_cursor(0);
}
- bool keep= ( filter==String() || String(p_node->get_name()).find(filter)!=-1 );
+ bool keep= ( filter==String() || String(p_node->get_name()).to_lower().find(filter.to_lower())!=-1 );
for (int i=0;i<p_node->get_child_count();i++) {
@@ -558,6 +599,8 @@ void SceneTreeEditor::_notification(int p_what) {
get_tree()->connect("tree_changed",this,"_tree_changed");
get_tree()->connect("node_removed",this,"_node_removed");
+ get_tree()->connect("node_configuration_warning_changed",this,"_warning_changed");
+
instance_menu->set_item_icon(3,get_icon("Load","EditorIcons"));
tree->connect("item_collapsed",this,"_cell_collapsed");
inheritance_menu->set_item_icon(2,get_icon("Load","EditorIcons"));
@@ -574,6 +617,7 @@ void SceneTreeEditor::_notification(int p_what) {
get_tree()->disconnect("node_removed",this,"_node_removed");
tree->disconnect("item_collapsed",this,"_cell_collapsed");
clear_inherit_confirm->disconnect("confirmed",this,"_subscene_option");
+ get_tree()->disconnect("node_configuration_warning_changed",this,"_warning_changed");
}
}
@@ -666,7 +710,7 @@ void SceneTreeEditor::_renamed() {
String new_name=which->get_text(0);
if (new_name.find(".") != -1 || new_name.find("/") != -1) {
- error->set_text("Invalid node name, the following characters are not allowed:\n \".\", \"/\"");
+ error->set_text(TTR("Invalid node name, the following characters are not allowed:")+"\n \".\", \"/\"");
error->popup_centered_minsize();
new_name=n->get_name();
}
@@ -834,15 +878,22 @@ Variant SceneTreeEditor::get_drag_data_fw(const Point2& p_point,Control* p_from)
VBoxContainer *vb = memnew( VBoxContainer );
Array objs;
+ int list_max = 10;
+ float opacity_step = 1.0f / list_max;
+ float opacity_item = 1.0f;
for(int i=0;i<selected.size();i++) {
- HBoxContainer *hb = memnew( HBoxContainer );
- TextureFrame *tf = memnew(TextureFrame);
- tf->set_texture(icons[i]);
- hb->add_child(tf);
- Label *label = memnew( Label( selected[i]->get_name() ) );
- hb->add_child(label);
- vb->add_child(hb);
+ if (i<list_max){
+ HBoxContainer *hb = memnew( HBoxContainer );
+ TextureFrame *tf = memnew(TextureFrame);
+ tf->set_texture(icons[i]);
+ hb->add_child(tf);
+ Label *label = memnew( Label( selected[i]->get_name() ) );
+ hb->add_child(label);
+ vb->add_child(hb);
+ hb->set_opacity(opacity_item);
+ opacity_item -= opacity_step;
+ }
NodePath p = selected[i]->get_path();
objs.push_back(p);
}
@@ -942,6 +993,13 @@ void SceneTreeEditor::_rmb_select(const Vector2& p_pos) {
}
+void SceneTreeEditor::_warning_changed(Node* p_for_node) {
+
+ //should use a timer
+ update_timer->start();
+// print_line("WARNING CHANGED "+String(p_for_node->get_name()));
+
+}
void SceneTreeEditor::_bind_methods() {
@@ -958,6 +1016,7 @@ void SceneTreeEditor::_bind_methods() {
ObjectTypeDB::bind_method("_cell_collapsed",&SceneTreeEditor::_cell_collapsed);
ObjectTypeDB::bind_method("_subscene_option",&SceneTreeEditor::_subscene_option);
ObjectTypeDB::bind_method("_rmb_select",&SceneTreeEditor::_rmb_select);
+ ObjectTypeDB::bind_method("_warning_changed",&SceneTreeEditor::_warning_changed);
ObjectTypeDB::bind_method("_node_script_changed",&SceneTreeEditor::_node_script_changed);
ObjectTypeDB::bind_method("_node_visibility_changed",&SceneTreeEditor::_node_visibility_changed);
@@ -966,6 +1025,8 @@ void SceneTreeEditor::_bind_methods() {
ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &SceneTreeEditor::can_drop_data_fw);
ObjectTypeDB::bind_method(_MD("drop_data_fw"), &SceneTreeEditor::drop_data_fw);
+ ObjectTypeDB::bind_method(_MD("update_tree"), &SceneTreeEditor::update_tree);
+
ADD_SIGNAL( MethodInfo("node_selected") );
ADD_SIGNAL( MethodInfo("node_renamed") );
ADD_SIGNAL( MethodInfo("node_prerename") );
@@ -1027,6 +1088,11 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open
error = memnew( AcceptDialog );
add_child(error);
+ warning = memnew( AcceptDialog );
+ add_child(warning);
+ warning->set_title("Node Configuration Warning!");
+
+
show_enabled_subscene=false;
last_hash=0;
@@ -1055,6 +1121,11 @@ SceneTreeEditor::SceneTreeEditor(bool p_label,bool p_can_rename, bool p_can_open
clear_inherit_confirm->get_ok()->set_text(TTR("Clear!"));
add_child(clear_inherit_confirm);
+ update_timer = memnew(Timer);
+ update_timer->connect("timeout",this,"_update_tree");
+ update_timer->set_one_shot(true);
+ update_timer->set_wait_time(0.5);
+ add_child(update_timer);
}
diff --git a/tools/editor/scene_tree_editor.h b/tools/editor/scene_tree_editor.h
index e88922f73e..ae0afa32ec 100644
--- a/tools/editor/scene_tree_editor.h
+++ b/tools/editor/scene_tree_editor.h
@@ -49,6 +49,9 @@ class SceneTreeEditor : public Control {
BUTTON_SCRIPT=2,
BUTTON_LOCK=3,
BUTTON_GROUP=4,
+ BUTTON_WARNING=5,
+ BUTTON_SIGNALS=6,
+ BUTTON_GROUPS=7,
};
enum {
@@ -69,6 +72,7 @@ class SceneTreeEditor : public Control {
String filter;
AcceptDialog *error;
+ AcceptDialog *warning;
ConfirmationDialog *clear_inherit_confirm;
int blocked;
@@ -124,6 +128,10 @@ class SceneTreeEditor : public Control {
void _rmb_select(const Vector2& p_pos);
+ void _warning_changed(Node* p_for_node);
+
+ Timer* update_timer;
+
public:
void set_filter(const String& p_filter);
diff --git a/tools/editor/scenes_dock.cpp b/tools/editor/scenes_dock.cpp
index e00f470bc4..2ac439491d 100644
--- a/tools/editor/scenes_dock.cpp
+++ b/tools/editor/scenes_dock.cpp
@@ -190,8 +190,6 @@ void ScenesDock::_notification(int p_what) {
button_reload->set_icon( get_icon("Reload","EditorIcons"));
button_favorite->set_icon( get_icon("Favorites","EditorIcons"));
- button_fav_up->set_icon( get_icon("MoveUp","EditorIcons"));
- button_fav_down->set_icon( get_icon("MoveDown","EditorIcons"));
//button_instance->set_icon( get_icon("Add","EditorIcons"));
//button_open->set_icon( get_icon("Folder","EditorIcons"));
button_back->set_icon( get_icon("Filesystem","EditorIcons"));
@@ -201,7 +199,7 @@ void ScenesDock::_notification(int p_what) {
files->connect("item_activated",this,"_select_file");
button_hist_next->connect("pressed",this,"_fw_history");
button_hist_prev->connect("pressed",this,"_bw_history");
- search_button->set_icon( get_icon("Zoom","EditorIcons"));
+ search_icon->set_texture( get_icon("Zoom","EditorIcons"));
button_hist_next->set_icon( get_icon("Forward","EditorIcons"));
button_hist_prev->set_icon( get_icon("Back","EditorIcons"));
@@ -228,10 +226,16 @@ void ScenesDock::_notification(int p_what) {
case NOTIFICATION_DRAG_BEGIN: {
Dictionary dd = get_viewport()->gui_get_drag_data();
- if (tree->is_visible() && dd.has("type") && (
- (String(dd["type"])=="files") || (String(dd["type"])=="files_and_dirs") || (String(dd["type"])=="resource"))) {
- tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
+ if (tree->is_visible() && dd.has("type") ) {
+ if ( (String(dd["type"])=="files") || (String(dd["type"])=="files_and_dirs") || (String(dd["type"])=="resource")) {
+ tree->set_drop_mode_flags(Tree::DROP_MODE_ON_ITEM);
+ }
+ if ( (String(dd["type"])=="favorite") ) {
+ tree->set_drop_mode_flags(Tree::DROP_MODE_INBETWEEN);
+ }
}
+
+
} break;
case NOTIFICATION_DRAG_END: {
@@ -272,11 +276,7 @@ void ScenesDock::_dir_selected() {
if (ti->get_parent() && ti->get_parent()->get_parent()==tree->get_root() && !ti->get_parent()->get_prev()) {
//a favorite!!!
- button_fav_up->set_disabled(!ti->get_prev());
- button_fav_down->set_disabled(!ti->get_next());
} else {
- button_fav_up->set_disabled(true);
- button_fav_down->set_disabled(true);
}
@@ -287,83 +287,6 @@ void ScenesDock::_dir_selected() {
}
-void ScenesDock::_fav_up_pressed() {
-
- TreeItem *sel = tree->get_selected();
- if (!sel)
- return ;
-
- if (!sel->get_prev())
- return;
-
- String sw = sel->get_prev()->get_metadata(0);
- String txt = sel->get_metadata(0);
-
- Vector<String> favorited = EditorSettings::get_singleton()->get_favorite_dirs();
-
- int a_idx=favorited.find(sw);
- int b_idx=favorited.find(txt);
-
- if (a_idx==-1 || b_idx==-1)
- return;
- SWAP(favorited[a_idx],favorited[b_idx]);
-
- EditorSettings::get_singleton()->set_favorite_dirs(favorited);
-
- _update_tree();
-
- if (!tree->get_root() || !tree->get_root()->get_children() || !tree->get_root()->get_children()->get_children())
- return;
- sel = tree->get_root()->get_children()->get_children();
- while(sel) {
-
- String t = sel->get_metadata(0);
- if (t==txt) {
- sel->select(0);
- return;
- }
- sel=sel->get_next();
- }
-}
-
-void ScenesDock::_fav_down_pressed() {
-
- TreeItem *sel = tree->get_selected();
- if (!sel)
- return ;
-
- if (!sel->get_next())
- return;
-
- String sw = sel->get_next()->get_metadata(0);
- String txt = sel->get_metadata(0);
-
- Vector<String> favorited = EditorSettings::get_singleton()->get_favorite_dirs();
-
- int a_idx=favorited.find(sw);
- int b_idx=favorited.find(txt);
-
- if (a_idx==-1 || b_idx==-1)
- return;
- SWAP(favorited[a_idx],favorited[b_idx]);
-
- EditorSettings::get_singleton()->set_favorite_dirs(favorited);
-
- _update_tree();
-
- if (!tree->get_root() || !tree->get_root()->get_children() || !tree->get_root()->get_children()->get_children())
- return;
- sel = tree->get_root()->get_children()->get_children();
- while(sel) {
-
- String t = sel->get_metadata(0);
- if (t==txt) {
- sel->select(0);
- return;
- }
- sel=sel->get_next();
- }
-}
void ScenesDock::_favorites_pressed() {
@@ -403,6 +326,10 @@ String ScenesDock::get_selected_path() const {
return "res://"+path;
}
+String ScenesDock::get_current_path() const {
+
+ return path;
+}
void ScenesDock::_thumbnail_done(const String& p_path,const Ref<Texture>& p_preview, const Variant& p_udata) {
@@ -465,6 +392,25 @@ void ScenesDock::_search(EditorFileSystemDirectory *p_path,List<FileInfo>* match
fi.name=file;
fi.type=p_path->get_file_type(i);
fi.path=p_path->get_file_path(i);
+ if (p_path->get_file_meta(i)) {
+ if (p_path->is_missing_sources(i)) {
+ fi.import_status=3;
+ } else if (p_path->have_sources_changed(i)) {
+ fi.import_status=2;
+ } else {
+ fi.import_status=1;
+ }
+ } else {
+ fi.import_status=0;
+ }
+ for(int j=0;j<p_path->get_source_count(i);j++) {
+ String s = EditorImportPlugin::expand_source_path(p_path->get_source_file(i,j));
+ if (p_path->is_source_file_missing(i,j)) {
+ s+=" (Missing)";
+ }
+ fi.sources.push_back(s);
+ }
+
matches->push_back(fi);
if (matches->size()>p_max_items)
return;
@@ -495,11 +441,12 @@ void ScenesDock::_update_files(bool p_keep_selection) {
return;
int thumbnail_size = EditorSettings::get_singleton()->get("file_dialog/thumbnail_size");
+ thumbnail_size*=EDSCALE;
Ref<Texture> folder_thumbnail;
Ref<Texture> file_thumbnail;
bool use_thumbnails=!display_mode->is_pressed();
- bool use_folders = !search_box->is_visible() && split_mode;
+ bool use_folders = search_box->get_text().length()==0 && split_mode;
if (use_thumbnails) { //thumbnails
@@ -508,6 +455,7 @@ void ScenesDock::_update_files(bool p_keep_selection) {
files->set_fixed_column_width(thumbnail_size*3/2);
files->set_max_text_lines(2);
files->set_min_icon_size(Size2(thumbnail_size,thumbnail_size));
+ files->set_max_icon_size(Size2(thumbnail_size,thumbnail_size));
if (!has_icon("ResizedFolder","EditorIcons")) {
Ref<ImageTexture> folder = get_icon("FolderBig","EditorIcons");
@@ -579,7 +527,7 @@ void ScenesDock::_update_files(bool p_keep_selection) {
List<FileInfo> filelist;
- if (search_box->is_visible()) {
+ if (search_box->get_text().length()) {
if (search_box->get_text().length()>1) {
_search(EditorFileSystem::get_singleton()->get_filesystem(),&filelist,128);
@@ -594,6 +542,27 @@ void ScenesDock::_update_files(bool p_keep_selection) {
fi.name=efd->get_file(i);
fi.path=path.plus_file(fi.name);
fi.type=efd->get_file_type(i);
+ if (efd->get_file_meta(i)) {
+ if (efd->is_missing_sources(i)) {
+ fi.import_status=3;
+ } else if (efd->have_sources_changed(i)) {
+ fi.import_status=2;
+ } else {
+ fi.import_status=1;
+ }
+
+ for(int j=0;j<efd->get_source_count(i);j++) {
+ String s = EditorImportPlugin::expand_source_path(efd->get_source_file(i,j));
+ if (efd->is_source_file_missing(i,j)) {
+ s+=" (Missing)";
+ }
+ fi.sources.push_back(s);
+ }
+ } else {
+ fi.import_status=0;
+ }
+
+
filelist.push_back(fi);
}
@@ -610,12 +579,33 @@ void ScenesDock::_update_files(bool p_keep_selection) {
Ref<Texture> type_icon;
- if (has_icon(type,ei)) {
- type_icon=get_icon(type,ei);
- } else {
- type_icon=get_icon(oi,ei);
+ String tooltip=fname;
+
+ if (E->get().import_status==0) {
+
+ if (has_icon(type,ei)) {
+ type_icon=get_icon(type,ei);
+ } else {
+ type_icon=get_icon(oi,ei);
+ }
+ } else if (E->get().import_status==1) {
+ type_icon=get_icon("DependencyOk","EditorIcons");
+ } else if (E->get().import_status==2) {
+ type_icon=get_icon("DependencyChanged","EditorIcons");
+ tooltip+"\nStatus: Needs Re-Import";
+ } else if (E->get().import_status==3) {
+ type_icon=get_icon("ImportFail","EditorIcons");
+ tooltip+"\nStatus: Missing Dependencies";
}
+ if (E->get().sources.size()) {
+ for(int i=0;i<E->get().sources.size();i++) {
+ tooltip+="\nSource: "+E->get().sources[i];
+ }
+ }
+
+
+
if (use_thumbnails) {
files->add_item(fname,file_thumbnail,true);
files->set_item_metadata(files->get_item_count()-1,fp);
@@ -634,6 +624,9 @@ void ScenesDock::_update_files(bool p_keep_selection) {
if (cselection.has(fname))
files->select(files->get_item_count()-1,false);
+ files->set_item_tooltip(files->get_item_count()-1,tooltip);
+
+
}
@@ -653,8 +646,6 @@ void ScenesDock::_go_to_tree() {
tree->grab_focus();
tree->ensure_cursor_is_visible();
button_favorite->show();
- button_fav_up->show();
- button_fav_down->show();
//button_open->hide();
//file_options->hide();
}
@@ -680,8 +671,6 @@ void ScenesDock::_fs_changed() {
if (!tree->is_hidden()) {
button_favorite->show();
- button_fav_up->show();
- button_fav_down->show();
_update_tree();
}
@@ -859,7 +848,7 @@ void ScenesDock::_move_operation(const String& p_to_path) {
for(int i=0;i<move_dirs.size();i++) {
if (p_to_path.begins_with(move_dirs[i])) {
- EditorNode::get_singleton()->show_warning(TTR("Can't move directories to within themselves"));
+ EditorNode::get_singleton()->show_warning(TTR("Can't move directories to within themselves."));
return;
}
@@ -944,6 +933,7 @@ void ScenesDock::_file_option(int p_option) {
switch(p_option) {
+ case FILE_SHOW_IN_EXPLORER:
case FILE_OPEN: {
int idx=-1;
for(int i=0;i<files->get_item_count();i++) {
@@ -959,6 +949,12 @@ void ScenesDock::_file_option(int p_option) {
String path = files->get_item_metadata(idx);
+ if (p_option == FILE_SHOW_IN_EXPLORER) {
+ String dir = Globals::get_singleton()->globalize_path(path);
+ dir = dir.substr(0, dir.find_last("/"));
+ OS::get_singleton()->shell_open(String("file://")+dir);
+ return;
+ }
if (path.ends_with("/")) {
if (path!="res://") {
@@ -1036,7 +1032,7 @@ void ScenesDock::_file_option(int p_option) {
rename_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
rename_dialog->set_current_path(move_files[0]);
rename_dialog->popup_centered_ratio();
- rename_dialog->set_title(TTR("Pick New Name and Location For: ")+move_files[0].get_file());
+ rename_dialog->set_title(TTR("Pick New Name and Location For:")+" "+move_files[0].get_file());
} else {
@@ -1071,6 +1067,40 @@ void ScenesDock::_file_option(int p_option) {
case FILE_INFO: {
} break;
+ case FILE_REIMPORT: {
+
+
+ Vector<String> reimport;
+ for(int i=0;i<files->get_item_count();i++) {
+
+ if (!files->is_selected(i))
+ continue;
+
+ String path = files->get_item_metadata(i);
+ reimport.push_back(path);
+ }
+
+ ERR_FAIL_COND(reimport.size()==0);
+
+ Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(reimport[0]);
+ ERR_FAIL_COND(!rimd.is_valid());
+ String editor=rimd->get_editor();
+
+ if (editor.begins_with("texture_")) { //compatibility fix for old texture format
+ editor="texture";
+ }
+
+ Ref<EditorImportPlugin> rimp = EditorImportExport::get_singleton()->get_import_plugin_by_name(editor);
+ ERR_FAIL_COND(!rimp.is_valid());
+
+ if (reimport.size()==1) {
+ rimp->import_dialog(reimport[0]);
+ } else {
+ rimp->reimport_multiple_files(reimport);
+
+ }
+
+ } break;
}
}
@@ -1093,8 +1123,6 @@ void ScenesDock::_open_pressed(){
tree->hide();
file_list_vb->show();
button_favorite->hide();
- button_fav_up->hide();
- button_fav_down->hide();
}
//file_options->show();
@@ -1107,26 +1135,6 @@ void ScenesDock::_open_pressed(){
}
-void ScenesDock::_search_toggled(){
-
- if (search_button->is_pressed()) {
- //search_box->clear();
- search_box->select_all();
- search_box->show();
- current_path->hide();
- search_box->grab_focus();
-
- _update_files(false);
- } else {
-
- //search_box->clear();
- search_box->hide();
- current_path->show();
-
- _update_files(false);
-
- }
-}
void ScenesDock::_search_changed(const String& p_text) {
@@ -1173,7 +1181,14 @@ Variant ScenesDock::get_drag_data_fw(const Point2& p_point,Control* p_from) {
path=path+"/";
Vector<String> paths;
paths.push_back(path);
- return EditorNode::get_singleton()->drag_files(paths,p_from);
+ Dictionary d = EditorNode::get_singleton()->drag_files(paths,p_from);
+
+ if (selected->get_parent() && tree->get_root()->get_children()==selected->get_parent()) {
+ //a favorite.. treat as such
+ d["type"]="favorite";
+ }
+
+ return d;
}
@@ -1232,6 +1247,30 @@ bool ScenesDock::can_drop_data_fw(const Point2& p_point,const Variant& p_data,Co
Dictionary drag_data = p_data;
+ if (drag_data.has("type") && String(drag_data["type"])=="favorite") {
+
+ //moving favorite around
+ TreeItem *ti = tree->get_item_at_pos(p_point);
+ if (!ti)
+ return false;
+
+ int what = tree->get_drop_section_at_pos(p_point);
+
+ if (ti==tree->get_root()->get_children()) {
+ return (what==1); //the parent, first fav
+ }
+ if (ti->get_parent() && tree->get_root()->get_children()==ti->get_parent()) {
+ return true; // a favorite
+ }
+
+ if (ti==tree->get_root()->get_children()->get_next()) {
+ return (what==-1); //the tree, last fav
+ }
+
+ return false;
+
+ }
+
if (drag_data.has("type") && String(drag_data["type"])=="resource") {
return true;
@@ -1276,6 +1315,69 @@ void ScenesDock::drop_data_fw(const Point2& p_point,const Variant& p_data,Contro
return;
Dictionary drag_data = p_data;
+ if (drag_data.has("type") && String(drag_data["type"])=="favorite") {
+
+ //moving favorite around
+ TreeItem *ti = tree->get_item_at_pos(p_point);
+ if (!ti)
+ return;
+
+ Vector<String> files = drag_data["files"];
+
+ ERR_FAIL_COND(files.size()!=1);
+
+ String swap = files[0];
+ if (swap!="res://" && swap.ends_with("/")) {
+ swap=swap.substr(0,swap.length()-1);
+ }
+
+ int what = tree->get_drop_section_at_pos(p_point);
+
+ TreeItem *swap_item=NULL;
+
+ if (ti==tree->get_root()->get_children()) {
+ swap_item=tree->get_root()->get_children()->get_children();
+
+ } else if (ti->get_parent() && tree->get_root()->get_children()==ti->get_parent()) {
+ if (what==-1) {
+ swap_item=ti;
+ } else {
+ swap_item=ti->get_next();
+ }
+ }
+
+ String swap_with;
+
+ if (swap_item) {
+ swap_with=swap_item->get_metadata(0);
+ if (swap_with!="res://" && swap_with.ends_with("/")) {
+ swap_with=swap_with.substr(0,swap_with.length()-1);
+ }
+ }
+
+ if (swap==swap_with)
+ return;
+
+ Vector<String> dirs = EditorSettings::get_singleton()->get_favorite_dirs();
+
+ ERR_FAIL_COND(dirs.find(swap)==-1);
+ ERR_FAIL_COND(swap_with!=String() && dirs.find(swap_with)==-1);
+
+ dirs.erase(swap);
+
+ if (swap_with==String()) {
+ dirs.push_back(swap);
+ } else {
+ int idx = dirs.find(swap_with);
+ dirs.insert(idx,swap);
+ }
+
+ EditorSettings::get_singleton()->set_favorite_dirs(dirs);
+ _update_tree();
+ return;
+
+ }
+
if (drag_data.has("type") && String(drag_data["type"])=="resource") {
Ref<Resource> res = drag_data["resource"];
@@ -1328,7 +1430,7 @@ void ScenesDock::drop_data_fw(const Point2& p_point,const Variant& p_data,Contro
int at_pos = files->get_item_at_pos(p_point);
ERR_FAIL_COND(at_pos==-1);
- String to_dir = files->get_item_metadata(at_pos);
+ to_dir = files->get_item_metadata(at_pos);
} else {
TreeItem *ti = tree->get_item_at_pos(p_point);
if (!ti)
@@ -1364,6 +1466,8 @@ void ScenesDock::_files_list_rmb_select(int p_item,const Vector2& p_pos) {
Vector<String> filenames;
bool all_scenes=true;
+ bool all_can_reimport=true;
+ Set<String> types;
for(int i=0;i<files->get_item_count();i++) {
@@ -1383,6 +1487,38 @@ void ScenesDock::_files_list_rmb_select(int p_item,const Vector2& p_pos) {
}
+ EditorFileSystemDirectory *efsd=NULL;
+ int pos;
+
+ efsd = EditorFileSystem::get_singleton()->find_file(path,&pos);
+
+ if (efsd) {
+
+
+ if (!efsd->get_file_meta(pos)) {
+ all_can_reimport=false;
+
+
+ } else {
+ Ref<ResourceImportMetadata> rimd = ResourceLoader::load_import_metadata(path);
+ if (rimd.is_valid()) {
+
+ String editor=rimd->get_editor();
+ if (editor.begins_with("texture_")) { //compatibility fix for old texture format
+ editor="texture";
+ }
+ types.insert(editor);
+
+ } else {
+ all_can_reimport=false;
+
+ }
+ }
+ } else {
+ all_can_reimport=false;
+
+ }
+
filenames.push_back(path);
if (EditorFileSystem::get_singleton()->get_file_type(path)!="PackedScene")
all_scenes=false;
@@ -1414,8 +1550,34 @@ void ScenesDock::_files_list_rmb_select(int p_item,const Vector2& p_pos) {
file_options->add_item(TTR("Move To.."),FILE_MOVE);
}
+
file_options->add_item(TTR("Delete"),FILE_REMOVE);
+
//file_options->add_item(TTR("Info"),FILE_INFO);
+
+ file_options->add_separator();
+ file_options->add_item(TTR("Show In File Manager"),FILE_SHOW_IN_EXPLORER);
+
+ if (all_can_reimport && types.size()==1) { //all can reimport and are of the same type
+
+
+ bool valid=true;
+ Ref<EditorImportPlugin> rimp = EditorImportExport::get_singleton()->get_import_plugin_by_name(types.front()->get());
+ if (rimp.is_valid()) {
+
+ if (filenames.size()>1 && !rimp->can_reimport_multiple_files()) {
+ valid=false;
+ }
+ } else {
+ valid=false;
+ }
+
+ if (valid) {
+ file_options->add_separator();
+ file_options->add_item(TTR("Re-Import.."),FILE_REIMPORT);
+ }
+ }
+
file_options->set_pos(files->get_global_pos() + p_pos);
file_options->popup();
@@ -1438,12 +1600,10 @@ void ScenesDock::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_bw_history"), &ScenesDock::_bw_history);
ObjectTypeDB::bind_method(_MD("_fs_changed"), &ScenesDock::_fs_changed);
ObjectTypeDB::bind_method(_MD("_dir_selected"), &ScenesDock::_dir_selected);
- ObjectTypeDB::bind_method(_MD("_fav_up_pressed"), &ScenesDock::_fav_up_pressed);
- ObjectTypeDB::bind_method(_MD("_fav_down_pressed"), &ScenesDock::_fav_down_pressed);
ObjectTypeDB::bind_method(_MD("_file_option"), &ScenesDock::_file_option);
ObjectTypeDB::bind_method(_MD("_move_operation"), &ScenesDock::_move_operation);
ObjectTypeDB::bind_method(_MD("_rename_operation"), &ScenesDock::_rename_operation);
- ObjectTypeDB::bind_method(_MD("_search_toggled"), &ScenesDock::_search_toggled);
+
ObjectTypeDB::bind_method(_MD("_search_changed"), &ScenesDock::_search_changed);
ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ScenesDock::get_drag_data_fw);
@@ -1476,28 +1636,21 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
button_hist_next->set_focus_mode(FOCUS_NONE);
button_hist_next->set_tooltip(TTR("Next Directory"));
+ current_path=memnew( LineEdit );
+ current_path->set_h_size_flags(SIZE_EXPAND_FILL);
+ toolbar_hbc->add_child(current_path);
+
+
button_reload = memnew( Button );
button_reload->set_flat(true);
button_reload->connect("pressed",this,"_rescan");
toolbar_hbc->add_child(button_reload);
button_reload->set_focus_mode(FOCUS_NONE);
button_reload->set_tooltip(TTR("Re-Scan Filesystem"));
+ button_reload->hide();
- toolbar_hbc->add_spacer();
-
- button_fav_up = memnew( ToolButton );
- button_fav_up->set_flat(true);
- toolbar_hbc->add_child(button_fav_up);
- button_fav_up->set_disabled(true);
- button_fav_up->connect("pressed",this,"_fav_up_pressed");
- button_fav_up->set_tooltip(TTR("Move Favorite Up"));
+ //toolbar_hbc->add_spacer();
- button_fav_down = memnew( ToolButton );
- button_fav_down->set_flat(true);
- toolbar_hbc->add_child(button_fav_down);
- button_fav_down->set_disabled(true);
- button_fav_down->connect("pressed",this,"_fav_down_pressed");
- button_fav_down->set_tooltip(TTR("Move Favorite Down"));
button_favorite = memnew( Button );
button_favorite->set_flat(true);
@@ -1507,8 +1660,10 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
button_favorite->set_tooltip(TTR("Toggle folder status as Favorite"));
button_favorite->set_focus_mode(FOCUS_NONE);
- button_fav_up->set_focus_mode(FOCUS_NONE);
- button_fav_down->set_focus_mode(FOCUS_NONE);
+
+ Control *spacer = memnew( Control);
+
+
/*
button_open = memnew( Button );
@@ -1540,7 +1695,7 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
tree->set_hide_root(true);
split_box->add_child(tree);
- tree->set_custom_minimum_size(Size2(0,200));
+ tree->set_custom_minimum_size(Size2(0,200)*EDSCALE);
tree->set_drag_forwarding(this);
@@ -1566,20 +1721,15 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
button_back = memnew( ToolButton );
path_hb->add_child(button_back);
button_back->hide();
- current_path=memnew( LineEdit );
- current_path->set_h_size_flags(SIZE_EXPAND_FILL);
- path_hb->add_child(current_path);
search_box = memnew( LineEdit );
search_box->set_h_size_flags(SIZE_EXPAND_FILL);
path_hb->add_child(search_box);
- search_box->hide();
search_box->connect("text_changed",this,"_search_changed");
- search_button = memnew( ToolButton );
- path_hb->add_child(search_button);
- search_button->set_toggle_mode(true );
- search_button->connect("pressed",this,"_search_toggled");
+ search_icon = memnew( TextureFrame );
+ search_icon->set_stretch_mode(TextureFrame::STRETCH_KEEP_CENTERED);
+ path_hb->add_child(search_icon);
display_mode = memnew( ToolButton );
path_hb->add_child(display_mode);
@@ -1630,9 +1780,9 @@ ScenesDock::ScenesDock(EditorNode *p_editor) {
path="res://";
+ add_constant_override("separation",3);
}
ScenesDock::~ScenesDock() {
}
-
diff --git a/tools/editor/scenes_dock.h b/tools/editor/scenes_dock.h
index 327e5a25f0..9a0d6c87cf 100644
--- a/tools/editor/scenes_dock.h
+++ b/tools/editor/scenes_dock.h
@@ -62,7 +62,8 @@ class ScenesDock : public VBoxContainer {
FILE_MOVE,
FILE_REMOVE,
FILE_REIMPORT,
- FILE_INFO
+ FILE_INFO,
+ FILE_SHOW_IN_EXPLORER
};
@@ -76,15 +77,13 @@ class ScenesDock : public VBoxContainer {
Button *button_reload;
Button *button_favorite;
- Button *button_fav_up;
- Button *button_fav_down;
Button *button_back;
Button *display_mode;
Button *button_hist_next;
Button *button_hist_prev;
LineEdit *current_path;
LineEdit *search_box;
- Button *search_button;
+ TextureFrame *search_icon;
HBoxContainer *path_hb;
bool split_mode;
@@ -136,8 +135,6 @@ class ScenesDock : public VBoxContainer {
void _push_to_history();
- void _fav_up_pressed();
- void _fav_down_pressed();
void _dir_selected();
void _update_tree();
void _rescan();
@@ -146,7 +143,6 @@ class ScenesDock : public VBoxContainer {
void _favorites_pressed();
void _open_pressed();
- void _search_toggled();
void _search_changed(const String& p_text);
@@ -157,6 +153,8 @@ class ScenesDock : public VBoxContainer {
String name;
String path;
StringName type;
+ int import_status; //0 not imported, 1 - ok, 2- must reimport, 3- broken
+ Vector<String> sources;
bool operator<(const FileInfo& fi) const {
return name < fi.name;
@@ -175,6 +173,8 @@ protected:
public:
String get_selected_path() const;
+
+ String get_current_path() const;
void focus_on_filter();
void fix_dependencies(const String& p_for_file);
diff --git a/tools/editor/script_create_dialog.cpp b/tools/editor/script_create_dialog.cpp
index 8d410f6fa3..e88d603b30 100644
--- a/tools/editor/script_create_dialog.cpp
+++ b/tools/editor/script_create_dialog.cpp
@@ -74,17 +74,17 @@ bool ScriptCreateDialog::_validate(const String& p_string) {
void ScriptCreateDialog::_class_name_changed(const String& p_name) {
if (!_validate(parent_name->get_text())) {
- error_label->set_text(TTR("Invaild parent class name"));
+ error_label->set_text(TTR("Invalid parent class name"));
error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
} else if (class_name->is_editable()) {
if (class_name->get_text()=="") {
- error_label->set_text(TTR("Valid Chars: a-z A-Z 0-9 _"));
+ error_label->set_text(TTR("Valid chars:")+" a-z A-Z 0-9 _");
error_label->add_color_override("font_color",Color(1,1,1,0.6));
} else if (!_validate(class_name->get_text())) {
error_label->set_text(TTR("Invalid class name"));
error_label->add_color_override("font_color",Color(1,0.2,0.2,0.8));
} else {
- error_label->set_text(TTR("Valid Name"));
+ error_label->set_text(TTR("Valid name"));
error_label->add_color_override("font_color",Color(0,1.0,0.8,0.8));
}
} else {
@@ -98,12 +98,12 @@ void ScriptCreateDialog::ok_pressed() {
if (class_name->is_editable() && !_validate(class_name->get_text())) {
- alert->set_text(TTR("Class Name is Invalid!"));
+ alert->set_text(TTR("Class name is invalid!"));
alert->popup_centered_minsize();
return;
}
if (!_validate(parent_name->get_text())) {
- alert->set_text(TTR("Parent Class Name is Invalid!"));
+ alert->set_text(TTR("Parent class name is invalid!"));
alert->popup_centered_minsize();
return;
@@ -133,7 +133,7 @@ void ScriptCreateDialog::ok_pressed() {
script->set_path(lpath);
if (!path_valid) {
- alert->set_text(TTR("Path is Invalid!"));
+ alert->set_text(TTR("Invalid path!"));
alert->popup_centered_minsize();
return;
@@ -141,7 +141,7 @@ void ScriptCreateDialog::ok_pressed() {
Error err = ResourceSaver::save(lpath,scr,ResourceSaver::FLAG_CHANGE_PATH);
if (err!=OK) {
- alert->set_text(TTR("Could not create script in filesystem: ")+String(""));
+ alert->set_text(TTR("Could not create script in filesystem."));
alert->popup_centered_minsize();
return;
}
@@ -215,7 +215,7 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
if (p=="") {
- path_error_label->set_text(TTR("Path is Empty"));
+ path_error_label->set_text(TTR("Path is empty"));
path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
return;
@@ -234,7 +234,7 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
if (d->change_dir(p.get_base_dir())!=OK) {
- path_error_label->set_text(TTR("Base Path Invalid"));
+ path_error_label->set_text(TTR("Invalid base path"));
path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
memdelete(d);
return;
@@ -249,7 +249,7 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
if (f->file_exists(p)) {
- path_error_label->set_text(TTR("File Exists"));
+ path_error_label->set_text(TTR("File exists"));
path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
memdelete(f);
return;
@@ -273,13 +273,13 @@ void ScriptCreateDialog::_path_changed(const String& p_path) {
if (!found) {
- path_error_label->set_text(TTR("Invalid Extension"));
+ path_error_label->set_text(TTR("Invalid extension"));
path_error_label->add_color_override("font_color",Color(1,0.4,0.0,0.8));
return;
}
- path_error_label->set_text(TTR("Path is Valid"));
+ path_error_label->set_text(TTR("Valid path"));
path_error_label->add_color_override("font_color",Color(0,1.0,0.8,0.8));
path_valid=true;
@@ -363,7 +363,7 @@ ScriptCreateDialog::ScriptCreateDialog() {
set_size(Size2(200,150));
set_hide_on_ok(false);
- set_title(TTR("Create Script for Node"));
+ set_title(TTR("Create Node Script"));
file_browse = memnew( EditorFileDialog );
file_browse->connect("file_selected",this,"_file_selected");
diff --git a/tools/editor/script_editor_debugger.cpp b/tools/editor/script_editor_debugger.cpp
index 325eadc1e5..37a90ba7be 100644
--- a/tools/editor/script_editor_debugger.cpp
+++ b/tools/editor/script_editor_debugger.cpp
@@ -41,6 +41,8 @@
#include "globals.h"
#include "editor_node.h"
#include "main/performance.h"
+#include "editor_profiler.h"
+#include "editor_settings.h"
class ScriptEditorDebuggerVariables : public Object {
@@ -109,6 +111,68 @@ public:
}
};
+
+class ScriptEditorDebuggerInspectedObject : public Object {
+
+ OBJ_TYPE( ScriptEditorDebuggerInspectedObject, Object);
+
+
+
+
+protected:
+
+ bool _set(const StringName& p_name, const Variant& p_value) {
+
+ if (!prop_values.has(p_name))
+ return false;
+
+ emit_signal("value_edited",p_name,p_value);
+ prop_values[p_name]=p_value;
+ return true;
+ }
+
+ bool _get(const StringName& p_name,Variant &r_ret) const {
+
+ if (!prop_values.has(p_name))
+ return false;
+
+ r_ret=prop_values[p_name];
+ return true;
+
+ }
+ void _get_property_list( List<PropertyInfo> *p_list) const {
+
+ p_list->clear(); //sorry, no want category
+ for (const List<PropertyInfo>::Element *E=prop_list.front();E;E=E->next()) {
+ p_list->push_back(E->get());
+ }
+ }
+
+
+ static void _bind_methods() {
+
+ ADD_SIGNAL(MethodInfo("value_edited"));
+ }
+
+public:
+
+ ObjectID last_edited_id;
+ List<PropertyInfo> prop_list;
+ Map<StringName,Variant> prop_values;
+
+ void update() {
+ _change_notify();
+ }
+
+ void update_single(const char* p_prop) {
+ _change_notify(p_prop);
+ }
+
+ ScriptEditorDebuggerInspectedObject() { last_edited_id=0; }
+
+
+};
+
void ScriptEditorDebugger::debug_next() {
ERR_FAIL_COND(!breaked);
@@ -158,6 +222,72 @@ void ScriptEditorDebugger::debug_continue() {
}
+void ScriptEditorDebugger::_scene_tree_folded(Object* obj) {
+
+
+ if (updating_scene_tree) {
+
+ return;
+ }
+ TreeItem *item=obj->cast_to<TreeItem>();
+
+ if (!item)
+ return;
+
+ ObjectID id = item->get_metadata(0);
+ if (item->is_collapsed()) {
+ unfold_cache.erase(id);
+ } else {
+ unfold_cache.insert(id);
+ }
+
+
+}
+
+void ScriptEditorDebugger::_scene_tree_selected() {
+
+
+ if (updating_scene_tree) {
+
+ return;
+ }
+ TreeItem *item = inspect_scene_tree->get_selected();
+ if (!item) {
+
+ return;
+ }
+
+ inspected_object_id = item->get_metadata(0);
+
+ Array msg;
+ msg.push_back("inspect_object");
+ msg.push_back(inspected_object_id);
+ ppeer->put_var(msg);
+
+}
+
+void ScriptEditorDebugger::_scene_tree_property_value_edited(const String& p_prop,const Variant& p_value) {
+
+
+ Array msg;
+ msg.push_back("set_object_property");
+ msg.push_back(inspected_object_id);
+ msg.push_back(p_prop);
+ msg.push_back(p_value);
+ ppeer->put_var(msg);
+ inspect_edited_object_timeout=0.7; //avoid annoyance, don't request soon after editing
+}
+
+void ScriptEditorDebugger::_scene_tree_property_select_object(ObjectID p_object) {
+
+ inspected_object_id=p_object;
+ Array msg;
+ msg.push_back("inspect_object");
+ msg.push_back(inspected_object_id);
+ ppeer->put_var(msg);
+
+}
+
void ScriptEditorDebugger::_scene_tree_request() {
ERR_FAIL_COND(connection.is_null());
@@ -208,7 +338,13 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
docontinue->set_disabled(false);
emit_signal("breaked",true,can_continue);
OS::get_singleton()->move_window_to_foreground();
- tabs->set_current_tab(0);
+ if (!profiler->is_seeking())
+ tabs->set_current_tab(0);
+
+ profiler->set_enabled(false);
+
+ EditorNode::get_singleton()->get_pause_button()->set_pressed(true);
+
EditorNode::get_singleton()->make_bottom_panel_item_visible(this);
@@ -225,6 +361,11 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
docontinue->set_disabled(true);
emit_signal("breaked",false,false);
//tabs->set_current_tab(0);
+ profiler->set_enabled(true);
+ profiler->disable_seeking();
+
+ EditorNode::get_singleton()->get_pause_button()->set_pressed(false);
+
} else if (p_msg=="message:click_ctrl") {
@@ -233,10 +374,12 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
} else if (p_msg=="message:scene_tree") {
- scene_tree->clear();
+ inspect_scene_tree->clear();
Map<int,TreeItem*> lv;
- for(int i=0;i<p_data.size();i+=3) {
+ updating_scene_tree=true;
+
+ for(int i=0;i<p_data.size();i+=4) {
TreeItem *p;
int level = p_data[i];
@@ -247,15 +390,90 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
p=lv[level-1];
}
- TreeItem *it = scene_tree->create_item(p);
+
+ TreeItem *it = inspect_scene_tree->create_item(p);
+
+ ObjectID id = ObjectID(p_data[i+3]);
+
it->set_text(0,p_data[i+1]);
if (has_icon(p_data[i+2],"EditorIcons"))
it->set_icon(0,get_icon(p_data[i+2],"EditorIcons"));
+ it->set_metadata(0,id);
+ if (id==inspected_object_id) {
+ it->select(0);
+ }
+
+ if (p) {
+ if (!unfold_cache.has(id)) {
+ it->set_collapsed(true);
+ }
+ } else {
+ if (unfold_cache.has(id)) { //reverse for root
+ it->set_collapsed(true);
+ }
+ }
lv[level]=it;
}
+ updating_scene_tree=false;
le_clear->set_disabled(false);
le_set->set_disabled(false);
+ } else if (p_msg=="message:inspect_object") {
+
+
+ ObjectID id = p_data[0];
+ String type = p_data[1];
+ Variant path = p_data[2]; //what to do yet, i don't know
+ int prop_count=p_data[3];
+
+ int idx=4;
+
+
+ if (inspected_object->last_edited_id!=id) {
+ inspected_object->prop_list.clear();
+ inspected_object->prop_values.clear();
+ }
+
+ for(int i=0;i<prop_count;i++) {
+
+ PropertyInfo pinfo;
+ pinfo.name=p_data[idx++];
+ pinfo.type=Variant::Type(int(p_data[idx++]));
+ pinfo.hint=PropertyHint(int(p_data[idx++]));
+ pinfo.hint_string=p_data[idx++];
+ if (pinfo.name.begins_with("*")) {
+ pinfo.name=pinfo.name.substr(1,pinfo.name.length());
+ pinfo.usage=PROPERTY_USAGE_CATEGORY;
+ } else {
+ pinfo.usage=PROPERTY_USAGE_EDITOR;
+ }
+
+ if (inspected_object->last_edited_id!=id) {
+ //don't update.. it's the same, instead refresh
+ inspected_object->prop_list.push_back(pinfo);
+ }
+
+
+ inspected_object->prop_values[pinfo.name]=p_data[idx++];
+
+ if (inspected_object->last_edited_id==id) {
+ //same, just update value, don't rebuild
+ inspected_object->update_single(pinfo.name.ascii().get_data());
+ }
+
+ }
+
+
+
+ if (inspected_object->last_edited_id!=id) {
+ //only if different
+ inspected_object->update();
+ }
+
+ inspected_object->last_edited_id=id;
+
+
+ inspect_properties->edit(inspected_object);
} else if (p_msg=="message:video_mem") {
@@ -279,7 +497,7 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
it->set_icon(0,get_icon(type,"EditorIcons"));
}
- vmem_total->set_tooltip(TTR("Bytes: ")+itos(total));
+ vmem_total->set_tooltip(TTR("Bytes:")+" "+itos(total));
vmem_total->set_text(String::humanize_size(total));
} else if (p_msg=="stack_dump") {
@@ -397,14 +615,14 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
bool warning = err[9];
bool e;
String time = String("%d:%02d:%02d:%04d").sprintf(vals,&e);
- String txt=time+" - "+String(err[8]);
+ String txt=time+" - "+(err[8].is_zero()?String(err[7]):String(err[8]));
- String tooltip=TTR("Type:")+String(warning?"Warning":"Error");
- tooltip+="\nDescription: "+String(err[8]);
- tooltip+="\nTime: "+time;
- tooltip+="\nC Error: "+String(err[7]);
- tooltip+="\nC Source: "+String(err[5])+":"+String(err[6]);
- tooltip+="\nC Function: "+String(err[4]);
+ String tooltip=TTR("Type:")+String(warning?TTR("Warning"):TTR("Error"));
+ tooltip+="\n"+TTR("Description:")+" "+String(err[8]);
+ tooltip+="\n"+TTR("Time:")+" "+time;
+ tooltip+="\nC "+TTR("Error:")+" "+String(err[7]);
+ tooltip+="\nC "+TTR("Source:")+" "+String(err[5])+":"+String(err[6]);
+ tooltip+="\nC "+TTR("Function:")+" "+String(err[4]);
@@ -441,6 +659,137 @@ void ScriptEditorDebugger::_parse_message(const String& p_msg,const Array& p_dat
packet_peer_stream->put_var(oe.warning);
packet_peer_stream->put_var(oe.callstack);
*/
+
+ } else if (p_msg=="profile_sig") {
+ //cache a signature
+ print_line("SIG: "+String(Variant(p_data)));
+ profiler_signature[p_data[1]]=p_data[0];
+
+ } else if (p_msg=="profile_frame" || p_msg=="profile_total") {
+
+ EditorProfiler::Metric metric;
+ metric.valid=true;
+ metric.frame_number=p_data[0];
+ metric.frame_time=p_data[1];
+ metric.idle_time=p_data[2];
+ metric.fixed_time=p_data[3];
+ metric.fixed_frame_time=p_data[4];
+ int frame_data_amount = p_data[6];
+ int frame_function_amount = p_data[7];
+
+
+ if (frame_data_amount) {
+ EditorProfiler::Metric::Category frame_time;
+ frame_time.signature="category_frame_time";
+ frame_time.name="Frame Time";
+ frame_time.total_time=metric.frame_time;
+
+ EditorProfiler::Metric::Category::Item item;
+ item.calls=1;
+ item.line=0;
+ item.name="Fixed Time";
+ item.total=metric.fixed_time;
+ item.self=item.total;
+ item.signature="fixed_time";
+
+
+ frame_time.items.push_back(item);
+
+ item.name="Idle Time";
+ item.total=metric.idle_time;
+ item.self=item.total;
+ item.signature="idle_time";
+
+ frame_time.items.push_back(item);
+
+ item.name="Fixed Frame Time";
+ item.total=metric.fixed_frame_time;
+ item.self=item.total;
+ item.signature="fixed_frame_time";
+
+ frame_time.items.push_back(item);
+
+ metric.categories.push_back(frame_time);
+
+ }
+
+
+
+ int idx=8;
+ for(int i=0;i<frame_data_amount;i++) {
+
+ EditorProfiler::Metric::Category c;
+ String name=p_data[idx++];
+ Array values=p_data[idx++];
+ c.name=name.capitalize();
+ c.items.resize(values.size()/2);
+ c.total_time=0;
+ c.signature="categ::"+name;
+ for(int i=0;i<values.size();i+=2) {
+
+ EditorProfiler::Metric::Category::Item item;
+ item.name=values[i];
+ item.calls=1;
+ item.self=values[i+1];
+ item.total=item.self;
+ item.signature="categ::"+name+"::"+item.name;
+ item.name=item.name.capitalize();
+ c.total_time+=item.total;
+ c.items[i/2]=item;
+
+
+ }
+ metric.categories.push_back(c);
+ }
+
+ EditorProfiler::Metric::Category funcs;
+ funcs.total_time=p_data[5]; //script time
+ funcs.items.resize(frame_function_amount);
+ funcs.name="Script Functions";
+ funcs.signature="script_functions";
+ for(int i=0;i<frame_function_amount;i++) {
+
+ int signature = p_data[idx++];
+ int calls = p_data[idx++];
+ float total = p_data[idx++];
+ float self = p_data[idx++];
+
+
+
+ EditorProfiler::Metric::Category::Item item;
+ if (profiler_signature.has(signature)) {
+
+ item.signature=profiler_signature[signature];
+
+ String name = profiler_signature[signature];
+ Vector<String> strings = name.split("::");
+ if (strings.size()==3) {
+ item.name=strings[2];
+ item.script=strings[0];
+ item.line=strings[1].to_int();
+ }
+
+ } else {
+ item.name="SigErr "+itos(signature);
+ }
+
+
+
+
+ item.calls=calls;
+ item.self=self;
+ item.total=total;
+ funcs.items[i]=item;
+
+ }
+
+ metric.categories.push_back(funcs);
+
+ if (p_msg=="profile_frame")
+ profiler->add_frame_metric(metric,false);
+ else
+ profiler->add_frame_metric(metric,true);
+
} else if (p_msg=="kill_me") {
editor->call_deferred("stop_child_process");
@@ -540,7 +889,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
forward->set_icon( get_icon("Forward","EditorIcons"));
dobreak->set_icon( get_icon("Pause","EditorIcons"));
docontinue->set_icon( get_icon("DebugContinue","EditorIcons"));
- scene_tree_refresh->set_icon( get_icon("Reload","EditorIcons"));
+ //scene_tree_refresh->set_icon( get_icon("Reload","EditorIcons"));
le_set->connect("pressed",this,"_live_edit_set");
le_clear->connect("pressed",this,"_live_edit_clear");
error_list->connect("item_selected",this,"_error_selected");
@@ -550,6 +899,36 @@ void ScriptEditorDebugger::_notification(int p_what) {
} break;
case NOTIFICATION_PROCESS: {
+ if (connection.is_valid()) {
+ inspect_scene_tree_timeout-=get_process_delta_time();
+ if (inspect_scene_tree_timeout<0) {
+ inspect_scene_tree_timeout=EditorSettings::get_singleton()->get("debugger/scene_tree_refresh_interval");
+ if (inspect_scene_tree->is_visible()) {
+ _scene_tree_request();
+
+ if (inspected_object_id!=0) {
+ //take the chance and re-inspect selected object
+ Array msg;
+ msg.push_back("inspect_object");
+ msg.push_back(inspected_object_id);
+ ppeer->put_var(msg);
+ }
+ }
+ }
+
+ inspect_edited_object_timeout-=get_process_delta_time();
+ if (inspect_edited_object_timeout<0) {
+ inspect_edited_object_timeout=EditorSettings::get_singleton()->get("debugger/remote_inspect_refresh_interval");
+ if (inspect_scene_tree->is_visible() && inspected_object_id) {
+ //take the chance and re-inspect selected object
+ Array msg;
+ msg.push_back("inspect_object");
+ msg.push_back(inspected_object_id);
+ ppeer->put_var(msg);
+ }
+ }
+ }
+
if (error_count!=last_error_count) {
if (error_count==0) {
@@ -558,13 +937,14 @@ void ScriptEditorDebugger::_notification(int p_what) {
debugger_button->set_icon(Ref<Texture>());
tabs->set_tab_icon(error_split->get_index(),Ref<Texture>());
} else {
- error_split->set_name(TTR("Errors (")+itos(error_count)+")");
- debugger_button->set_text(TTR("Debugger (")+itos(error_count)+")");
+ error_split->set_name(TTR("Errors")+" ("+itos(error_count)+")");
+ debugger_button->set_text(TTR("Debugger")+" ("+itos(error_count)+")");
debugger_button->set_icon(get_icon("Error","EditorIcons"));
tabs->set_tab_icon(error_split->get_index(),get_icon("Error","EditorIcons"));
}
last_error_count=error_count;
}
+
if (connection.is_null()) {
if (server->is_connection_available()) {
@@ -586,15 +966,25 @@ void ScriptEditorDebugger::_notification(int p_what) {
reason->set_text(TTR("Child Process Connected"));
reason->set_tooltip(TTR("Child Process Connected"));
- scene_tree->clear();
+ profiler->clear();
+
+ inspect_scene_tree->clear();
le_set->set_disabled(true);
le_clear->set_disabled(false);
error_list->clear();
error_stack->clear();
error_count=0;
+ profiler_signature.clear();
//live_edit_root->set_text("/root");
+ EditorNode::get_singleton()->get_pause_button()->set_pressed(false);
+ EditorNode::get_singleton()->get_pause_button()->set_disabled(false);
+
update_live_edit_root();
+ if (profiler->is_profiling()) {
+ _profiler_activate(true);
+ }
+
} else {
@@ -656,6 +1046,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
}
message_type=cmd;
+ //print_line("GOT: "+message_type);
ret = ppeer->get_var(cmd);
if (ret!=OK) {
@@ -744,8 +1135,17 @@ void ScriptEditorDebugger::stop(){
node_path_cache.clear();
res_path_cache.clear();
+ profiler_signature.clear();
le_clear->set_disabled(false);
le_set->set_disabled(true);
+ profiler->set_enabled(true);
+
+ inspect_properties->edit(NULL);
+ inspect_scene_tree->clear();
+
+ EditorNode::get_singleton()->get_pause_button()->set_pressed(false);
+ EditorNode::get_singleton()->get_pause_button()->set_disabled(true);
+
if (hide_on_stop) {
@@ -756,6 +1156,44 @@ void ScriptEditorDebugger::stop(){
}
+void ScriptEditorDebugger::_profiler_activate(bool p_enable) {
+
+ if (!connection.is_valid())
+ return;
+
+
+ if (p_enable) {
+ profiler_signature.clear();
+ Array msg;
+ msg.push_back("start_profiling");
+ int max_funcs = EditorSettings::get_singleton()->get("debugger/profiler_frame_max_functions");
+ max_funcs = CLAMP(max_funcs,16,512);
+ msg.push_back(max_funcs);
+ ppeer->put_var(msg);
+
+ print_line("BEGIN PROFILING!");
+
+ } else {
+ Array msg;
+ msg.push_back("stop_profiling");
+ ppeer->put_var(msg);
+
+ print_line("END PROFILING!");
+
+ }
+
+}
+
+void ScriptEditorDebugger::_profiler_seeked() {
+
+ if (!connection.is_valid() || !connection->is_connected())
+ return;
+
+ if (breaked)
+ return;
+ debug_break();;
+}
+
void ScriptEditorDebugger::_stack_dump_frame_selected() {
@@ -992,7 +1430,7 @@ void ScriptEditorDebugger::_live_edit_set() {
if (!connection.is_valid())
return;
- TreeItem* ti = scene_tree->get_selected();
+ TreeItem* ti = inspect_scene_tree->get_selected();
if (!ti)
return;
String path;
@@ -1135,6 +1573,16 @@ void ScriptEditorDebugger::set_breakpoint(const String& p_path,int p_line,bool p
}
+void ScriptEditorDebugger::reload_scripts() {
+
+ if (connection.is_valid()) {
+ Array msg;
+ msg.push_back("reload_scripts");
+ ppeer->put_var(msg);
+ }
+}
+
+
void ScriptEditorDebugger::_error_selected(int p_idx) {
error_stack->clear();
@@ -1151,7 +1599,7 @@ void ScriptEditorDebugger::_error_selected(int p_idx) {
error_stack->add_item(str);
error_stack->set_item_metadata(error_stack->get_item_count()-1,md);
- error_stack->set_item_tooltip(error_stack->get_item_count()-1,TTR("File: ")+String(st[i])+"\nLine: "+itos(line));
+ error_stack->set_item_tooltip(error_stack->get_item_count()-1,TTR("File:")+" "+String(st[i])+"\n"+TTR("Line:")+" "+itos(line));
}
}
@@ -1172,6 +1620,21 @@ void ScriptEditorDebugger::set_hide_on_stop(bool p_hide) {
hide_on_stop=p_hide;
}
+void ScriptEditorDebugger::_paused() {
+
+ ERR_FAIL_COND(connection.is_null());
+ ERR_FAIL_COND(!connection->is_connected());
+
+ if (!breaked && EditorNode::get_singleton()->get_pause_button()->is_pressed()) {
+ debug_break();
+ }
+
+ if (breaked && !EditorNode::get_singleton()->get_pause_button()->is_pressed()) {
+ debug_continue();
+ }
+
+}
+
void ScriptEditorDebugger::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_stack_dump_frame_selected"),&ScriptEditorDebugger::_stack_dump_frame_selected);
@@ -1189,6 +1652,14 @@ void ScriptEditorDebugger::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_error_selected"),&ScriptEditorDebugger::_error_selected);
ObjectTypeDB::bind_method(_MD("_error_stack_selected"),&ScriptEditorDebugger::_error_stack_selected);
+ ObjectTypeDB::bind_method(_MD("_profiler_activate"),&ScriptEditorDebugger::_profiler_activate);
+ ObjectTypeDB::bind_method(_MD("_profiler_seeked"),&ScriptEditorDebugger::_profiler_seeked);
+
+ ObjectTypeDB::bind_method(_MD("_paused"),&ScriptEditorDebugger::_paused);
+
+ ObjectTypeDB::bind_method(_MD("_scene_tree_selected"),&ScriptEditorDebugger::_scene_tree_selected);
+ ObjectTypeDB::bind_method(_MD("_scene_tree_folded"),&ScriptEditorDebugger::_scene_tree_folded);
+
ObjectTypeDB::bind_method(_MD("live_debug_create_node"),&ScriptEditorDebugger::live_debug_create_node);
ObjectTypeDB::bind_method(_MD("live_debug_instance_node"),&ScriptEditorDebugger::live_debug_instance_node);
@@ -1197,6 +1668,8 @@ void ScriptEditorDebugger::_bind_methods() {
ObjectTypeDB::bind_method(_MD("live_debug_restore_node"),&ScriptEditorDebugger::live_debug_restore_node);
ObjectTypeDB::bind_method(_MD("live_debug_duplicate_node"),&ScriptEditorDebugger::live_debug_duplicate_node);
ObjectTypeDB::bind_method(_MD("live_debug_reparent_node"),&ScriptEditorDebugger::live_debug_reparent_node);
+ ObjectTypeDB::bind_method(_MD("_scene_tree_property_select_object"),&ScriptEditorDebugger::_scene_tree_property_select_object);
+ ObjectTypeDB::bind_method(_MD("_scene_tree_property_value_edited"),&ScriptEditorDebugger::_scene_tree_property_value_edited);
ADD_SIGNAL(MethodInfo("goto_script_line"));
ADD_SIGNAL(MethodInfo("breaked",PropertyInfo(Variant::BOOL,"reallydid"),PropertyInfo(Variant::BOOL,"can_debug")));
@@ -1216,243 +1689,284 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){
add_child(tabs);
- VBoxContainer *vbc = memnew( VBoxContainer );
- vbc->set_name(TTR("Debugger"));
- //tabs->add_child(vbc);
- Control *dbg=vbc;
+ { //debugger
+ VBoxContainer *vbc = memnew( VBoxContainer );
+ vbc->set_name(TTR("Debugger"));
+ //tabs->add_child(vbc);
+ Control *dbg=vbc;
+
+ HBoxContainer *hbc = memnew( HBoxContainer );
+ vbc->add_child(hbc);
- HBoxContainer *hbc = memnew( HBoxContainer );
- vbc->add_child(hbc);
+ reason = memnew( LineEdit );
+ reason->set_text("");
+ reason->set_editable(false);
+ hbc->add_child(reason);
+ reason->add_color_override("font_color",Color(1,0.4,0.0,0.8));
+ reason->set_h_size_flags(SIZE_EXPAND_FILL);
+ //reason->set_clip_text(true);
- reason = memnew( LineEdit );
- reason->set_text("");
- reason->set_editable(false);
- hbc->add_child(reason);
- reason->add_color_override("font_color",Color(1,0.4,0.0,0.8));
- reason->set_h_size_flags(SIZE_EXPAND_FILL);
- //reason->set_clip_text(true);
+ hbc->add_child( memnew( VSeparator) );
- hbc->add_child( memnew( VSeparator) );
+ step = memnew( Button );
+ hbc->add_child(step);
+ step->set_tooltip(TTR("Step Into"));
+ step->connect("pressed",this,"debug_step");
- step = memnew( Button );
- hbc->add_child(step);
- step->set_tooltip(TTR("Step Into"));
- step->connect("pressed",this,"debug_step");
+ next = memnew( Button );
+ hbc->add_child(next);
+ next->set_tooltip(TTR("Step Over"));
+ next->connect("pressed",this,"debug_next");
- next = memnew( Button );
- hbc->add_child(next);
- next->set_tooltip(TTR("Step Over"));
- next->connect("pressed",this,"debug_next");
+ hbc->add_child( memnew( VSeparator) );
- hbc->add_child( memnew( VSeparator) );
+ dobreak = memnew( Button );
+ hbc->add_child(dobreak);
+ dobreak->set_tooltip(TTR("Break"));
+ dobreak->connect("pressed",this,"debug_break");
- dobreak = memnew( Button );
- hbc->add_child(dobreak);
- dobreak->set_tooltip(TTR("Break"));
- dobreak->connect("pressed",this,"debug_break");
+ docontinue = memnew( Button );
+ hbc->add_child(docontinue);
+ docontinue->set_tooltip(TTR("Continue"));
+ docontinue->connect("pressed",this,"debug_continue");
- docontinue = memnew( Button );
- hbc->add_child(docontinue);
- docontinue->set_tooltip(TTR("Continue"));
- docontinue->connect("pressed",this,"debug_continue");
+ hbc->add_child( memnew( VSeparator) );
- hbc->add_child( memnew( VSeparator) );
+ back = memnew( Button );
+ hbc->add_child(back);
+ back->set_tooltip(TTR("Inspect Previous Instance"));
- back = memnew( Button );
- hbc->add_child(back);
- back->set_tooltip(TTR("Inspect Previous Instance"));
+ forward = memnew( Button );
+ hbc->add_child(forward);
+ forward->set_tooltip(TTR("Inspect Next Instance"));
- forward = memnew( Button );
- hbc->add_child(forward);
- back->set_tooltip(TTR("Inspect Next Instance"));
+ HSplitContainer *sc = memnew( HSplitContainer );
+ vbc->add_child(sc);
+ sc->set_v_size_flags(SIZE_EXPAND_FILL);
- HSplitContainer *sc = memnew( HSplitContainer );
- vbc->add_child(sc);
- sc->set_v_size_flags(SIZE_EXPAND_FILL);
+ stack_dump = memnew( Tree );
+ stack_dump->set_columns(1);
+ stack_dump->set_column_titles_visible(true);
+ stack_dump->set_column_title(0,TTR("Stack Frames"));
+ stack_dump->set_h_size_flags(SIZE_EXPAND_FILL);
+ stack_dump->set_hide_root(true);
+ stack_dump->connect("cell_selected",this,"_stack_dump_frame_selected");
+ sc->add_child(stack_dump);
- stack_dump = memnew( Tree );
- stack_dump->set_columns(1);
- stack_dump->set_column_titles_visible(true);
- stack_dump->set_column_title(0,TTR("Stack Frames"));
- stack_dump->set_h_size_flags(SIZE_EXPAND_FILL);
- stack_dump->set_hide_root(true);
- stack_dump->connect("cell_selected",this,"_stack_dump_frame_selected");
- sc->add_child(stack_dump);
+ inspector = memnew( PropertyEditor );
+ inspector->set_h_size_flags(SIZE_EXPAND_FILL);
+ inspector->hide_top_label();
+ inspector->get_scene_tree()->set_column_title(0,TTR("Variable"));
+ inspector->set_capitalize_paths(false);
+ inspector->set_read_only(true);
+ sc->add_child(inspector);
- inspector = memnew( PropertyEditor );
- inspector->set_h_size_flags(SIZE_EXPAND_FILL);
- inspector->hide_top_label();
- inspector->get_scene_tree()->set_column_title(0,TTR("Variable"));
- inspector->set_capitalize_paths(false);
- inspector->set_read_only(true);
- sc->add_child(inspector);
+ server = TCP_Server::create_ref();
- server = TCP_Server::create_ref();
+ pending_in_queue=0;
- pending_in_queue=0;
+ variables = memnew( ScriptEditorDebuggerVariables );
+
+ breaked=false;
- variables = memnew( ScriptEditorDebuggerVariables );
+ tabs->add_child(dbg);
+ //tabs->move_child(vbc,0);
- breaked=false;
+ hbc = memnew( HBoxContainer );
+ vbc->add_child(hbc);
- tabs->add_child(dbg);
- //tabs->move_child(vbc,0);
+ }
- hbc = memnew( HBoxContainer );
- vbc->add_child(hbc);
+ { //errors
- error_split = memnew( HSplitContainer );
- VBoxContainer *errvb = memnew( VBoxContainer );
- errvb->set_h_size_flags(SIZE_EXPAND_FILL);
- error_list = memnew( ItemList );
- errvb->add_margin_child(TTR("Errors:"),error_list,true);
- error_split->add_child(errvb);
+ error_split = memnew( HSplitContainer );
+ VBoxContainer *errvb = memnew( VBoxContainer );
+ errvb->set_h_size_flags(SIZE_EXPAND_FILL);
+ error_list = memnew( ItemList );
+ errvb->add_margin_child(TTR("Errors:"),error_list,true);
+ error_split->add_child(errvb);
- errvb = memnew( VBoxContainer );
- errvb->set_h_size_flags(SIZE_EXPAND_FILL);
- error_stack = memnew( ItemList );
- errvb->add_margin_child(TTR("Stack Trace (if applies):"),error_stack,true);
- error_split->add_child(errvb);
+ errvb = memnew( VBoxContainer );
+ errvb->set_h_size_flags(SIZE_EXPAND_FILL);
+ error_stack = memnew( ItemList );
+ errvb->add_margin_child(TTR("Stack Trace (if applicable):"),error_stack,true);
+ error_split->add_child(errvb);
- error_split->set_name(TTR("Errors"));
- tabs->add_child(error_split);
+ error_split->set_name(TTR("Errors"));
+ tabs->add_child(error_split);
+ }
- HSplitContainer *hsp = memnew( HSplitContainer );
+ { // inquire
- perf_monitors = memnew(Tree);
- perf_monitors->set_columns(2);
- perf_monitors->set_column_title(0,TTR("Monitor"));
- perf_monitors->set_column_title(1,TTR("Value"));
- perf_monitors->set_column_titles_visible(true);
- hsp->add_child(perf_monitors);
- perf_monitors->set_select_mode(Tree::SELECT_MULTI);
- perf_monitors->connect("multi_selected",this,"_performance_select");
- perf_draw = memnew( Control );
- perf_draw->connect("draw",this,"_performance_draw");
- hsp->add_child(perf_draw);
- hsp->set_name("Performance");
- hsp->set_split_offset(300);
- tabs->add_child(hsp);
- perf_max.resize(Performance::MONITOR_MAX);
- Map<String,TreeItem*> bases;
- TreeItem *root=perf_monitors->create_item();
- perf_monitors->set_hide_root(true);
- for(int i=0;i<Performance::MONITOR_MAX;i++) {
+ inspect_info = memnew( HSplitContainer );
+ inspect_info->set_name(TTR("Remote Inspector"));
+ tabs->add_child(inspect_info);
- String n = Performance::get_singleton()->get_monitor_name(Performance::Monitor(i));
- String base = n.get_slice("/",0);
- String name = n.get_slice("/",1);
- if (!bases.has(base)) {
- TreeItem *b = perf_monitors->create_item(root);
- b->set_text(0,base.capitalize());
- b->set_editable(0,false);
- b->set_selectable(0,false);
- bases[base]=b;
- }
+ VBoxContainer *info_left = memnew(VBoxContainer);
+ info_left->set_h_size_flags(SIZE_EXPAND_FILL);
+ inspect_info->add_child(info_left);
- TreeItem *it = perf_monitors->create_item(bases[base]);
- it->set_editable(0,false);
- it->set_selectable(0,true);
- it->set_text(0,name.capitalize());
- perf_items.push_back(it);
- perf_max[i]=0;
+ inspect_scene_tree = memnew( Tree );
+ info_left->add_margin_child(TTR("Live Scene Tree:"),inspect_scene_tree,true);
+ inspect_scene_tree->connect("cell_selected",this,"_scene_tree_selected");
+ inspect_scene_tree->connect("item_collapsed",this,"_scene_tree_folded");
+
+ //
+
+ VBoxContainer *info_right = memnew(VBoxContainer);
+ info_right->set_h_size_flags(SIZE_EXPAND_FILL);
+ inspect_info->add_child(info_right);
+
+ inspect_properties = memnew( PropertyEditor );
+ inspect_properties->hide_top_label();
+ inspect_properties->set_show_categories(true);
+ inspect_properties->connect("object_id_selected",this,"_scene_tree_property_select_object");
+ info_right->add_margin_child(TTR("Remote Object Properties: "),inspect_properties,true);
+
+ inspect_scene_tree_timeout=EDITOR_DEF("debugger/scene_tree_refresh_interval",1.0);
+ inspect_edited_object_timeout=EDITOR_DEF("debugger/remote_inspect_refresh_interval",0.2);
+ inspected_object_id=0;
+ updating_scene_tree=false;
+
+ inspected_object = memnew( ScriptEditorDebuggerInspectedObject );
+ inspected_object->connect("value_edited",this,"_scene_tree_property_value_edited");
+ }
+
+ { //profiler
+ profiler = memnew( EditorProfiler );
+ profiler->set_name(TTR("Profiler"));
+ tabs->add_child(profiler);
+ profiler->connect("enable_profiling",this,"_profiler_activate");
+ profiler->connect("break_request",this,"_profiler_seeked");
+ }
+
+
+ { //monitors
+
+ HSplitContainer *hsp = memnew( HSplitContainer );
+
+ perf_monitors = memnew(Tree);
+ perf_monitors->set_columns(2);
+ perf_monitors->set_column_title(0,TTR("Monitor"));
+ perf_monitors->set_column_title(1,TTR("Value"));
+ perf_monitors->set_column_titles_visible(true);
+ hsp->add_child(perf_monitors);
+ perf_monitors->set_select_mode(Tree::SELECT_MULTI);
+ perf_monitors->connect("multi_selected",this,"_performance_select");
+ perf_draw = memnew( Control );
+ perf_draw->connect("draw",this,"_performance_draw");
+ hsp->add_child(perf_draw);
+ hsp->set_name(TTR("Monitors"));
+ hsp->set_split_offset(300);
+ tabs->add_child(hsp);
+ perf_max.resize(Performance::MONITOR_MAX);
+
+ Map<String,TreeItem*> bases;
+ TreeItem *root=perf_monitors->create_item();
+ perf_monitors->set_hide_root(true);
+ for(int i=0;i<Performance::MONITOR_MAX;i++) {
+
+ String n = Performance::get_singleton()->get_monitor_name(Performance::Monitor(i));
+ String base = n.get_slice("/",0);
+ String name = n.get_slice("/",1);
+ if (!bases.has(base)) {
+ TreeItem *b = perf_monitors->create_item(root);
+ b->set_text(0,base.capitalize());
+ b->set_editable(0,false);
+ b->set_selectable(0,false);
+ bases[base]=b;
+ }
+
+ TreeItem *it = perf_monitors->create_item(bases[base]);
+ it->set_editable(0,false);
+ it->set_selectable(0,true);
+ it->set_text(0,name.capitalize());
+ perf_items.push_back(it);
+ perf_max[i]=0;
+
+ }
+ }
+
+ { //vmem inspect
+ VBoxContainer *vmem_vb = memnew( VBoxContainer );
+ HBoxContainer *vmem_hb = memnew( HBoxContainer );
+ Label *vmlb = memnew(Label(TTR("List of Video Memory Usage by Resource:")+" ") );
+ vmlb->set_h_size_flags(SIZE_EXPAND_FILL);
+ vmem_hb->add_child( vmlb );
+ vmem_hb->add_child( memnew(Label(TTR("Total:")+" ")) );
+ vmem_total = memnew( LineEdit );
+ vmem_total->set_editable(false);
+ vmem_total->set_custom_minimum_size(Size2(100,1)*EDSCALE);
+ vmem_hb->add_child(vmem_total);
+ vmem_refresh = memnew( Button );
+ vmem_hb->add_child(vmem_refresh);
+ vmem_vb->add_child(vmem_hb);
+ vmem_refresh->connect("pressed",this,"_video_mem_request");
+
+ MarginContainer *vmmc = memnew( MarginContainer );
+ vmem_tree = memnew( Tree );
+ vmem_tree->set_v_size_flags(SIZE_EXPAND_FILL);
+ vmem_tree->set_h_size_flags(SIZE_EXPAND_FILL);
+ vmmc->add_child(vmem_tree);
+ vmmc->set_v_size_flags(SIZE_EXPAND_FILL);
+ vmem_vb->add_child(vmmc);
+
+ vmem_vb->set_name(TTR("Video Mem"));
+ vmem_tree->set_columns(4);
+ vmem_tree->set_column_titles_visible(true);
+ vmem_tree->set_column_title(0,TTR("Resource Path"));
+ vmem_tree->set_column_expand(0,true);
+ vmem_tree->set_column_expand(1,false);
+ vmem_tree->set_column_title(1,TTR("Type"));
+ vmem_tree->set_column_min_width(1,100);
+ vmem_tree->set_column_expand(2,false);
+ vmem_tree->set_column_title(2,TTR("Format"));
+ vmem_tree->set_column_min_width(2,150);
+ vmem_tree->set_column_expand(3,false);
+ vmem_tree->set_column_title(3,TTR("Usage"));
+ vmem_tree->set_column_min_width(3,80);
+ vmem_tree->set_hide_root(true);
+
+ tabs->add_child(vmem_vb);
}
- VBoxContainer *vmem_vb = memnew( VBoxContainer );
- HBoxContainer *vmem_hb = memnew( HBoxContainer );
- Label *vmlb = memnew(Label(TTR("List of Video Memory Usage by Resource: ")) );
- vmlb->set_h_size_flags(SIZE_EXPAND_FILL);
- vmem_hb->add_child( vmlb );
- vmem_hb->add_child( memnew(Label(TTR("Total: "))) );
- vmem_total = memnew( LineEdit );
- vmem_total->set_editable(false);
- vmem_total->set_custom_minimum_size(Size2(100,1));
- vmem_hb->add_child(vmem_total);
- vmem_refresh = memnew( Button );
- vmem_hb->add_child(vmem_refresh);
- vmem_vb->add_child(vmem_hb);
- vmem_refresh->connect("pressed",this,"_video_mem_request");
-
- MarginContainer *vmmc = memnew( MarginContainer );
- vmem_tree = memnew( Tree );
- vmem_tree->set_v_size_flags(SIZE_EXPAND_FILL);
- vmem_tree->set_h_size_flags(SIZE_EXPAND_FILL);
- vmmc->add_child(vmem_tree);
- vmmc->set_v_size_flags(SIZE_EXPAND_FILL);
- vmem_vb->add_child(vmmc);
-
- vmem_vb->set_name(TTR("Video Mem"));
- vmem_tree->set_columns(4);
- vmem_tree->set_column_titles_visible(true);
- vmem_tree->set_column_title(0,TTR("Resource Path"));
- vmem_tree->set_column_expand(0,true);
- vmem_tree->set_column_expand(1,false);
- vmem_tree->set_column_title(1,TTR("Type"));
- vmem_tree->set_column_min_width(1,100);
- vmem_tree->set_column_expand(2,false);
- vmem_tree->set_column_title(2,TTR("Format"));
- vmem_tree->set_column_min_width(2,150);
- vmem_tree->set_column_expand(3,false);
- vmem_tree->set_column_title(3,TTR("Usage"));
- vmem_tree->set_column_min_width(3,80);
- vmem_tree->set_hide_root(true);
-
- tabs->add_child(vmem_vb);
-
- info = memnew( HSplitContainer );
- info->set_name(TTR("Info"));
- tabs->add_child(info);
-
- VBoxContainer *info_left = memnew( VBoxContainer );
- info_left->set_h_size_flags(SIZE_EXPAND_FILL);
- info->add_child(info_left);
- clicked_ctrl = memnew( LineEdit );
- info_left->add_margin_child(TTR("Clicked Control:"),clicked_ctrl);
- clicked_ctrl_type = memnew( LineEdit );
- info_left->add_margin_child(TTR("Clicked Control Type:"),clicked_ctrl_type);
-
- live_edit_root = memnew( LineEdit );
-
- {
- HBoxContainer *lehb = memnew( HBoxContainer );
- Label *l = memnew( Label(TTR("Live Edit Root:")) );
- lehb->add_child(l);
- l->set_h_size_flags(SIZE_EXPAND_FILL);
- le_set = memnew( Button(TTR("Set From Tree")) );
- lehb->add_child(le_set);
- le_clear = memnew( Button(TTR("Clear")) );
- lehb->add_child(le_clear);
- info_left->add_child(lehb);
- MarginContainer *mc = memnew( MarginContainer );
- mc->add_child(live_edit_root);
- info_left->add_child(mc);
- le_set->set_disabled(true);
- le_clear->set_disabled(true);
+ { // misc
+ VBoxContainer *info_left = memnew( VBoxContainer );
+ info_left->set_h_size_flags(SIZE_EXPAND_FILL);
+ info_left->set_name(TTR("Misc"));
+ tabs->add_child(info_left);
+ clicked_ctrl = memnew( LineEdit );
+ info_left->add_margin_child(TTR("Clicked Control:"),clicked_ctrl);
+ clicked_ctrl_type = memnew( LineEdit );
+ info_left->add_margin_child(TTR("Clicked Control Type:"),clicked_ctrl_type);
+
+ live_edit_root = memnew( LineEdit );
+
+ {
+ HBoxContainer *lehb = memnew( HBoxContainer );
+ Label *l = memnew( Label(TTR("Live Edit Root:")) );
+ lehb->add_child(l);
+ l->set_h_size_flags(SIZE_EXPAND_FILL);
+ le_set = memnew( Button(TTR("Set From Tree")) );
+ lehb->add_child(le_set);
+ le_clear = memnew( Button(TTR("Clear")) );
+ lehb->add_child(le_clear);
+ info_left->add_child(lehb);
+ MarginContainer *mc = memnew( MarginContainer );
+ mc->add_child(live_edit_root);
+ info_left->add_child(mc);
+ le_set->set_disabled(true);
+ le_clear->set_disabled(true);
+ }
+
}
- VBoxContainer *info_right = memnew(VBoxContainer);
- info_right->set_h_size_flags(SIZE_EXPAND_FILL);
- info->add_child(info_right);
- HBoxContainer *inforhb = memnew( HBoxContainer );
- info_right->add_child(inforhb);
- Label *l2 = memnew( Label(TTR("Scene Tree:") ) );
- l2->set_h_size_flags(SIZE_EXPAND_FILL);
- inforhb->add_child( l2 );
- Button *refresh = memnew( Button );
- inforhb->add_child(refresh);
- refresh->connect("pressed",this,"_scene_tree_request");
- scene_tree_refresh=refresh;
- MarginContainer *infomc = memnew( MarginContainer );
- info_right->add_child(infomc);
- infomc->set_v_size_flags(SIZE_EXPAND_FILL);
- scene_tree = memnew( Tree );
- infomc->add_child(scene_tree);
msgdialog = memnew( AcceptDialog );
@@ -1468,6 +1982,8 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor){
hide_on_stop=true;
last_error_count=0;
+ EditorNode::get_singleton()->get_pause_button()->connect("pressed",this,"_paused");
+
}
@@ -1479,5 +1995,6 @@ ScriptEditorDebugger::~ScriptEditorDebugger() {
ppeer->set_stream_peer(Ref<StreamPeer>());
server->stop();
+ memdelete(inspected_object);
}
diff --git a/tools/editor/script_editor_debugger.h b/tools/editor/script_editor_debugger.h
index ecd0494955..c4a7cea1b7 100644
--- a/tools/editor/script_editor_debugger.h
+++ b/tools/editor/script_editor_debugger.h
@@ -33,6 +33,7 @@
#include "scene/gui/button.h"
#include "core/io/tcp_server.h"
#include "core/io/packet_peer.h"
+#include "property_editor.h"
class Tree;
class PropertyEditor;
@@ -46,6 +47,11 @@ class AcceptDialog;
class TreeItem;
class HSplitContainer;
class ItemList;
+class EditorProfiler;
+
+
+
+class ScriptEditorDebuggerInspectedObject;
class ScriptEditorDebugger : public Control {
@@ -59,12 +65,23 @@ class ScriptEditorDebugger : public Control {
LineEdit *clicked_ctrl;
LineEdit *clicked_ctrl_type;
LineEdit *live_edit_root;
- Tree *scene_tree;
- HSplitContainer *info;
- Button *scene_tree_refresh;
Button *le_set;
Button *le_clear;
+
+
+ Tree *inspect_scene_tree;
+ HSplitContainer *inspect_info;
+ PropertyEditor *inspect_properties;
+ float inspect_scene_tree_timeout;
+ float inspect_edited_object_timeout;
+ ObjectID inspected_object_id;
+ ScriptEditorDebuggerInspectedObject *inspected_object;
+ bool updating_scene_tree;
+ Set<ObjectID> unfold_cache;
+
+
+
HSplitContainer *error_split;
ItemList *error_list;
ItemList *error_stack;
@@ -93,6 +110,8 @@ class ScriptEditorDebugger : public Control {
Vector<float> perf_max;
Vector<TreeItem*> perf_items;
+ Map<int,String> profiler_signature;
+
Tree *perf_monitors;
Control *perf_draw;
@@ -115,6 +134,7 @@ class ScriptEditorDebugger : public Control {
int last_path_id;
Map<String,int> res_path_cache;
+ EditorProfiler *profiler;
EditorNode *editor;
@@ -127,8 +147,13 @@ class ScriptEditorDebugger : public Control {
void _stack_dump_frame_selected();
void _output_clear();
+
+ void _scene_tree_folded(Object* obj);
+ void _scene_tree_selected();
void _scene_tree_request();
void _parse_message(const String& p_msg,const Array& p_data);
+ void _scene_tree_property_select_object(ObjectID p_object);
+ void _scene_tree_property_value_edited(const String& p_prop,const Variant& p_value);
void _video_mem_request();
@@ -148,6 +173,13 @@ class ScriptEditorDebugger : public Control {
void _error_selected(int p_idx);
void _error_stack_selected(int p_idx);
+ void _profiler_activate(bool p_enable);
+ void _profiler_seeked();
+
+
+
+ void _paused();
+
protected:
void _notification(int p_what);
@@ -185,6 +217,8 @@ public:
void set_tool_button(Button *p_tb) { debugger_button=p_tb; }
+ void reload_scripts();
+
virtual Size2 get_minimum_size() const;
ScriptEditorDebugger(EditorNode *p_editor=NULL);
~ScriptEditorDebugger();
diff --git a/tools/editor/settings_config_dialog.cpp b/tools/editor/settings_config_dialog.cpp
index 2a871efb18..e1a2ea162e 100644
--- a/tools/editor/settings_config_dialog.cpp
+++ b/tools/editor/settings_config_dialog.cpp
@@ -31,6 +31,9 @@
#include "scene/gui/margin_container.h"
#include "globals.h"
#include "editor_file_system.h"
+#include "editor_node.h"
+#include "os/keyboard.h"
+
void EditorSettingsDialog::ok_pressed() {
if (!EditorSettings::get_singleton())
@@ -45,6 +48,7 @@ void EditorSettingsDialog::_settings_changed() {
timer->start();
+ property_editor->get_property_editor()->update_tree(); // else color's won't update when theme is selected.
}
void EditorSettingsDialog::_settings_save() {
@@ -70,12 +74,15 @@ void EditorSettingsDialog::popup_edit_settings() {
if (!EditorSettings::get_singleton())
return;
+ EditorSettings::get_singleton()->list_text_editor_themes(); // make sure we have an up to date list of themes
+
property_editor->edit(EditorSettings::get_singleton());
property_editor->get_property_editor()->update_tree();
search_box->select_all();
search_box->grab_focus();
+ _update_shortcuts();
popup_centered_ratio(0.7);
}
@@ -98,11 +105,171 @@ void EditorSettingsDialog::_notification(int p_what) {
}
}
+
+void EditorSettingsDialog::_update_shortcuts() {
+
+ shortcuts->clear();
+
+ List<String> slist;
+ EditorSettings::get_singleton()->get_shortcut_list(&slist);
+ TreeItem *root = shortcuts->create_item();
+
+ Map<String,TreeItem*> sections;
+
+ for(List<String>::Element *E=slist.front();E;E=E->next()) {
+
+ Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(E->get());
+ if (!sc->has_meta("original"))
+ continue;
+
+ InputEvent original = sc->get_meta("original");
+
+ String section_name = E->get().get_slice("/",0);
+
+ TreeItem *section;
+
+ if (sections.has(section_name)) {
+ section=sections[section_name];
+ } else {
+ section = shortcuts->create_item(root);
+ section->set_text(0,section_name.capitalize());
+
+ sections[section_name]=section;
+ section->set_custom_bg_color(0,get_color("prop_subsection","Editor"));
+ section->set_custom_bg_color(1,get_color("prop_subsection","Editor"));
+
+ }
+
+ TreeItem *item = shortcuts->create_item(section);
+
+
+ item->set_text(0,sc->get_name());
+ item->set_text(1,sc->get_as_text());
+ if (!sc->is_shortcut(original) && !(sc->get_shortcut().type==InputEvent::NONE && original.type==InputEvent::NONE)) {
+ item->add_button(1,get_icon("Reload","EditorIcons"),2);
+ }
+ item->add_button(1,get_icon("Edit","EditorIcons"),0);
+ item->add_button(1,get_icon("Close","EditorIcons"),1);
+ item->set_tooltip(0,E->get());
+ item->set_metadata(0,E->get());
+ }
+
+
+
+
+}
+
+void EditorSettingsDialog::_shortcut_button_pressed(Object* p_item,int p_column,int p_idx) {
+
+ TreeItem *ti=p_item->cast_to<TreeItem>();
+ ERR_FAIL_COND(!ti);
+
+ String item = ti->get_metadata(0);
+ Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(item);
+
+ if (p_idx==0) {
+ press_a_key_label->set_text(TTR("Press a Key.."));
+ last_wait_for_key=InputEvent();
+ press_a_key->popup_centered(Size2(250,80)*EDSCALE);
+ press_a_key->grab_focus();
+ press_a_key->get_ok()->set_focus_mode(FOCUS_NONE);
+ press_a_key->get_cancel()->set_focus_mode(FOCUS_NONE);
+ shortcut_configured=item;
+
+ } else if (p_idx==1) {//erase
+ if (!sc.is_valid())
+ return; //pointless, there is nothing
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Erase Shortcut");
+ ur->add_do_method(sc.ptr(),"set_shortcut",InputEvent());
+ ur->add_undo_method(sc.ptr(),"set_shortcut",sc->get_shortcut());
+ ur->add_do_method(this,"_update_shortcuts");
+ ur->add_undo_method(this,"_update_shortcuts");
+ ur->add_do_method(this,"_settings_changed");
+ ur->add_undo_method(this,"_settings_changed");
+ ur->commit_action();
+ } else if (p_idx==2) {//revert to original
+ if (!sc.is_valid())
+ return; //pointless, there is nothing
+
+ InputEvent original = sc->get_meta("original");
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Restore Shortcut");
+ ur->add_do_method(sc.ptr(),"set_shortcut",original);
+ ur->add_undo_method(sc.ptr(),"set_shortcut",sc->get_shortcut());
+ ur->add_do_method(this,"_update_shortcuts");
+ ur->add_undo_method(this,"_update_shortcuts");
+ ur->add_do_method(this,"_settings_changed");
+ ur->add_undo_method(this,"_settings_changed");
+ ur->commit_action();
+ }
+}
+
+
+void EditorSettingsDialog::_wait_for_key(const InputEvent& p_event) {
+
+
+ if (p_event.type==InputEvent::KEY && p_event.key.pressed && p_event.key.scancode!=0) {
+
+ last_wait_for_key=p_event;
+ String str=keycode_get_string(p_event.key.scancode).capitalize();
+ if (p_event.key.mod.meta)
+ str=TTR("Meta+")+str;
+ if (p_event.key.mod.shift)
+ str=TTR("Shift+")+str;
+ if (p_event.key.mod.alt)
+ str=TTR("Alt+")+str;
+ if (p_event.key.mod.control)
+ str=TTR("Control+")+str;
+
+
+ press_a_key_label->set_text(str);
+ press_a_key->accept_event();
+
+ }
+}
+
+
+
+
+void EditorSettingsDialog::_press_a_key_confirm() {
+
+ if (last_wait_for_key.type!=InputEvent::KEY)
+ return;
+
+ InputEvent ie;
+ ie.type=InputEvent::KEY;
+ ie.key.scancode=last_wait_for_key.key.scancode;
+ ie.key.mod=last_wait_for_key.key.mod;
+
+ Ref<ShortCut> sc = EditorSettings::get_singleton()->get_shortcut(shortcut_configured);
+
+ UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
+ ur->create_action("Change Shortcut '"+shortcut_configured+"'");
+ ur->add_do_method(sc.ptr(),"set_shortcut",ie);
+ ur->add_undo_method(sc.ptr(),"set_shortcut",sc->get_shortcut());
+ ur->add_do_method(this,"_update_shortcuts");
+ ur->add_undo_method(this,"_update_shortcuts");
+ ur->add_do_method(this,"_settings_changed");
+ ur->add_undo_method(this,"_settings_changed");
+ ur->commit_action();
+
+
+
+}
+
void EditorSettingsDialog::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_settings_save"),&EditorSettingsDialog::_settings_save);
ObjectTypeDB::bind_method(_MD("_settings_changed"),&EditorSettingsDialog::_settings_changed);
ObjectTypeDB::bind_method(_MD("_clear_search_box"),&EditorSettingsDialog::_clear_search_box);
+ ObjectTypeDB::bind_method(_MD("_shortcut_button_pressed"),&EditorSettingsDialog::_shortcut_button_pressed);
+ ObjectTypeDB::bind_method(_MD("_update_shortcuts"),&EditorSettingsDialog::_update_shortcuts);
+ ObjectTypeDB::bind_method(_MD("_press_a_key_confirm"),&EditorSettingsDialog::_press_a_key_confirm);
+ ObjectTypeDB::bind_method(_MD("_wait_for_key"),&EditorSettingsDialog::_wait_for_key);
+
}
EditorSettingsDialog::EditorSettingsDialog() {
@@ -122,7 +289,7 @@ EditorSettingsDialog::EditorSettingsDialog() {
vbc->add_child(hbc);
Label *l = memnew( Label );
- l->set_text(TTR("Search: "));
+ l->set_text(TTR("Search:")+" ");
hbc->add_child(l);
search_box = memnew( LineEdit );
@@ -142,20 +309,41 @@ EditorSettingsDialog::EditorSettingsDialog() {
vbc = memnew( VBoxContainer );
tabs->add_child(vbc);
- vbc->set_name(TTR("Plugins"));
-
- hbc = memnew( HBoxContainer );
- vbc->add_child(hbc);
- hbc->add_child( memnew( Label(TTR("Plugin List: "))));
- hbc->add_spacer();
+ vbc->set_name(TTR("Shortcuts"));
+
+ shortcuts = memnew( Tree );
+ vbc->add_margin_child("Shortcut List:",shortcuts,true);
+ shortcuts->set_columns(2);
+ shortcuts->set_hide_root(true);
+ //shortcuts->set_hide_folding(true);
+ shortcuts->set_column_titles_visible(true);
+ shortcuts->set_column_title(0,"Name");
+ shortcuts->set_column_title(1,"Binding");
+ shortcuts->connect("button_pressed",this,"_shortcut_button_pressed");
+
+ press_a_key = memnew( ConfirmationDialog );
+ press_a_key->set_focus_mode(FOCUS_ALL);
+ add_child(press_a_key);
+
+ l = memnew( Label );
+ l->set_text(TTR("Press a Key.."));
+ l->set_area_as_parent_rect();
+ l->set_align(Label::ALIGN_CENTER);
+ l->set_margin(MARGIN_TOP,20);
+ l->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,30);
+ press_a_key_label=l;
+ press_a_key->add_child(l);
+ press_a_key->connect("input_event",this,"_wait_for_key");
+ press_a_key->connect("confirmed",this,"_press_a_key_confirm");
//Button *load = memnew( Button );
- //load->set_text(TTR("Load.."));
+
+ //load->set_text("Load..");
//hbc->add_child(load);
- //get_ok()->set_text(TTR("Apply"));
+ //get_ok()->set_text("Apply");
set_hide_on_ok(true);
- //get_cancel()->set_text(TTR("Close"));
+ //get_cancel()->set_text("Close");
timer = memnew( Timer );
timer->set_wait_time(1.5);
diff --git a/tools/editor/settings_config_dialog.h b/tools/editor/settings_config_dialog.h
index 5085132108..c930de6a77 100644
--- a/tools/editor/settings_config_dialog.h
+++ b/tools/editor/settings_config_dialog.h
@@ -50,6 +50,13 @@ class EditorSettingsDialog : public AcceptDialog {
Timer *timer;
+ Tree *shortcuts;
+
+ ConfirmationDialog *press_a_key;
+ Label *press_a_key_label;
+ InputEvent last_wait_for_key;
+ String shortcut_configured;
+
virtual void cancel_pressed();
virtual void ok_pressed();
@@ -59,8 +66,14 @@ class EditorSettingsDialog : public AcceptDialog {
void _notification(int p_what);
+ void _press_a_key_confirm();
+ void _wait_for_key(const InputEvent& p_event);
+
void _clear_search_box();
+ void _update_shortcuts();
+ void _shortcut_button_pressed(Object* p_item,int p_column,int p_idx);
+
protected:
static void _bind_methods();
diff --git a/tools/editor/spatial_editor_gizmos.cpp b/tools/editor/spatial_editor_gizmos.cpp
index b7fc722113..c32e3a2116 100644
--- a/tools/editor/spatial_editor_gizmos.cpp
+++ b/tools/editor/spatial_editor_gizmos.cpp
@@ -731,9 +731,9 @@ Vector3 EditorSpatialGizmo::get_handle_pos(int p_idx) const {
String LightSpatialGizmo::get_handle_name(int p_idx) const {
if (p_idx==0)
- return TTR("Radius");
+ return "Radius";
else
- return TTR("Aperture");
+ return "Aperture";
}
@@ -1030,9 +1030,9 @@ LightSpatialGizmo::LightSpatialGizmo(Light* p_light){
String CameraSpatialGizmo::get_handle_name(int p_idx) const {
if (camera->get_projection()==Camera::PROJECTION_PERSPECTIVE) {
- return TTR("FOV");
+ return "FOV";
} else {
- return TTR("Size");
+ return "Size";
}
}
Variant CameraSpatialGizmo::get_handle_value(int p_idx) const{
@@ -1695,22 +1695,22 @@ String CollisionShapeSpatialGizmo::get_handle_name(int p_idx) const {
if (s->cast_to<SphereShape>()) {
- return TTR("Radius");
+ return "Radius";
}
if (s->cast_to<BoxShape>()) {
- return TTR("Extents");
+ return "Extents";
}
if (s->cast_to<CapsuleShape>()) {
- return p_idx==0?TTR("Radius"):"Height";
+ return p_idx==0?"Radius":"Height";
}
if (s->cast_to<RayShape>()) {
- return TTR("Length");
+ return "Length";
}
return "";