HierarchyWindow.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. /// <summary>
  7. /// Editor window that displays the scene hierarchy tree view, displaying all scene objects in the current scene.
  8. /// </summary>
  9. public class HierarchyWindow : EditorWindow, IGlobalShortcuts
  10. {
  11. private GUISceneTreeView treeView;
  12. /// <summary>
  13. /// Opens the hierarchy window.
  14. /// </summary>
  15. [MenuItem("Windows/Hierarchy", ButtonModifier.CtrlAlt, ButtonCode.H, 6000)]
  16. private static void OpenHierarchyWindow()
  17. {
  18. OpenWindow<HierarchyWindow>();
  19. }
  20. /// <inheritdoc/>
  21. protected override LocString GetDisplayName()
  22. {
  23. return new LocEdString("Hierarchy");
  24. }
  25. /// <inheritdoc/>
  26. void IGlobalShortcuts.OnDeletePressed()
  27. {
  28. treeView.DeleteSelection();
  29. }
  30. /// <inheritdoc/>
  31. void IGlobalShortcuts.OnRenamePressed()
  32. {
  33. treeView.RenameSelection();
  34. }
  35. /// <inheritdoc/>
  36. void IGlobalShortcuts.OnDuplicatePressed()
  37. {
  38. treeView.DuplicateSelection();
  39. }
  40. /// <inheritdoc/>
  41. void IGlobalShortcuts.OnCopyPressed()
  42. {
  43. treeView.CopySelection();
  44. }
  45. /// <inheritdoc/>
  46. void IGlobalShortcuts.OnCutPressed()
  47. {
  48. treeView.CutSelection();
  49. }
  50. /// <inheritdoc/>
  51. void IGlobalShortcuts.OnPastePressed()
  52. {
  53. treeView.PasteToSelection();
  54. }
  55. private void OnInitialize()
  56. {
  57. GUIScrollArea scrollArea = new GUIScrollArea();
  58. GUI.AddElement(scrollArea);
  59. treeView = new GUISceneTreeView(GUIOption.FlexibleHeight(20), GUIOption.FlexibleWidth(20));
  60. scrollArea.Layout.AddElement(treeView);
  61. }
  62. private void OnEditorUpdate()
  63. {
  64. treeView.Update();
  65. }
  66. }
  67. }