EditorWindowDock.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. DockManager implementation plan:
  2. - DockManager main class
  3. - When empty make sure it has a GUIElement that covers its entire space so it can catch and drop events. Will likely need a special transparent GUIElement?
  4. - Has a reference to one DockContainer, which is initially empty
  5. - DockContainer can have two DockContainer children, or one EditorWidgetContainer child (maybe make a container base class? - optional)
  6. - DockContainer should probably contain a GUIElement which can receieve events
  7. - This would mean extending GUIManager so it can send events to top level elements, and if they don't process them, send them one level lower?
  8. - Resizing a DockContainer resizes all child DockContainers recursively (and EditorWidgetContainers)
  9. - If DockContainer has DockContainer children then it also contains a GUIElement resizer (just an empty space, in the direction of the split)
  10. - Moving the element allows you to resize the two child DockContainers
  11. - When last element is removed from EditorWidgetContainer make sure to notify the parent
  12. - Make main render window frameless
  13. - Implement MainEditorWindow from EditorWindowBase
  14. - Make sure MainEditorWindow holds a DockManager reference and resizes it with the window
  15. DockContainer biggest issues:
  16. - How do I draw the drag and drop overlay??
  17. - How do I detect mouse input yet still let it through to child widget
  18. FIRST CREATE DOCK CONTAINER WITHOUT DRAG AND DROP SUPPORT
  19. Make sure to test everything thoroughly - right now I have tested very little
  20. Drag and drop manager currently ignores the provided icon, but it should use it as a cursor
  21. Prevent docking if available size is less than 20 pixels, otherwise there might be some weirdness
  22. GUIViewport:
  23. - MAJOR TODO - Don't forget to update GUIViewport is to also gets updated when only mesh is dirty!
  24. - In DX11 it is not possible to clear just a sub-region of a render target
  25. ------------------------
  26. Other things to remember:
  27. - Possibly add a way to have hidden widgets in the EditorWidgetContainer (like side-bars that pop on mouse over in Visual Studio)
  28. - A way to persist window states
  29. - Also a way to reset all widgets to original locations