TODO: - Callback on tree item select - Clicking on an already selectecd element starts rename - Will likely need some kind of check to ignore double-clicks? - Context menu with rename - When edit box is initially opened, focus on it - Delete with Undo/Redo support - Drag and drop - If a mouse drag is detected DragAndDropManager is activated - Element is not removed from its original position until drag is complete - Dragging over an element will make a highlight box appear around it - Dragging between elements will make a thick line appear between them - Releasing the drag changes the element parents - Auto scroll - Sliding over top or bottom of the tree view while dragging an element will search GUIElement parents to find a ScrollArea. If it finds one it will attempt to scroll up or down. MenuBar problems: - Mousing over a sub-menu hides the parent sub-menu - Clicking the top menu item closes and immediately opens the menu again (it should only close it) - Something similar probably also happens with ListBox Other: - When dragging in tree view automatically expand mouse over elements - Ability to select and drag multiple elements - "Ping" effect - All operations should be undo-redoable - Context menu with copy/paste - Copy/Paste/Duplicate - This is more of a problem with actual copying of SceneObjects (It's not implemented). I should be able to serialize, and then de-serialize with a new parent as a form of copy. -------------------------------------------------- LOW PRIORITY: Shoutcuts ideas: Remove Cut/Copy/Paste/Undo/Redo/Rename/SelectAll and similar shortcuts from InputCommands. Instead send generic shortcut commands whenever user presses some key (with shift/ctrl/alt state). - I will need some kind of generic shortcuts at some point so there is no point that Rename is hardcoded to F2 - I should also add a GUIShortcutManager, as a centralized place for dealing with shortcuts (so that I my edit them at a later date) - TODO - Figure out how would this work. How would the centralized system know all of the UI shortcuts? Probably register them somehow on program start? - This shortcut system would be separate from the input manager, and would not be meant for in-game use