Inspector.txt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Needed controls:
  2. Array field/List field/Dictionary field
  3. Matrix3 field
  4. Matrix4 field
  5. GameObject field
  6. Resource field
  7. -------------
  8. A way to close a window & destroy a GUI panel!
  9. - Will likely need to refactor ScriptEditorWindow as currently it performs initialization
  10. in constructor and destroy in destructor, but open/close will be called within its lifetime
  11. - Also a way to get notified if the window gets closed from C++
  12. - Once closed the referenced GUIPanels should no longer work (set "destroyed" flag?)
  13. - What about calling Destroy on a GUIPanel?
  14. - It should notify owning EditorWindow
  15. Ensure that setting depth for GUIArea works properly. It's not properly implemented yet.
  16. Things to think about/do:
  17. - Add EditorFields to C#
  18. - Inspectable fields need TAB support
  19. - Modify C++ GUIElement so I can do setNextTabElement(GUIElement*)
  20. - Inspectable fields need Undo/Redo support. Consider how to best implement it
  21. - C++ Undo/Redo system needs nested contexts
  22. - C++ Ensure that Undo/Redo works on per-field basis (undoing items within a field)
  23. - Add C# UndoRedo
  24. - Modify C++ Editor fields so that calling setValue doesn't update the visual value until focus is lost
  25. - When user is currently writing in an input box I don't want refresh to overwrite that value.
  26. - Expand/Collapse needs to work for both Components and their sub-objects (Structs, Arrays, etc.)
  27. - Support for initializing SerializableObject/SerializableArray (and their fields, together with getters/setters)
  28. - How do I refresh currently visible inspector fields.
  29. - Also how will this be done with custom inspectors, when I might not use InspectableObject
  30. - Currently I do not have a way to creating an Inspector field for just a single field, only for an entire object
  31. - Finally once all other things are done implement support for multi-rank arrays, lists and dictionaries
  32. How will UndoRedo keep a reference to the object?
  33. - What if the object gets destroyed?
  34. - Keeping a reference will prevent the object from being destroyed.
  35. - Although heavy stuff is destroyed manually via Destroy anyway
  36. STUBBED IN METHODS:
  37. SerializableObject
  38. SerializableArray
  39. SerializableField
  40. ----------------------
  41. Non-inspector:
  42. - Deleting first entry in input field moves the cursor incorrectly
  43. - Test if parsing int/float value from int/float field actually works
  44. - ProfilerOverlay elements are constantly dirty? even though I'm not calling update
  45. Refactor BuiltinMaterialFactory to BuiltinEngineResources
  46. Cursor
  47. - A way to save/load a set of cursors
  48. Get rid of the CamelotFramework namespace
  49. - I shouldn't need to prefix each variable with CM::
  50. Undocking a window wont remove the tabbed title bar
  51. While dragging an undocked window, dropping it over the main window (not over dock overlays) will not restore it
  52. - GameObjectField
  53. - When dragging over GameObjectField cursor needs to change depending whether drop will be accepted or not
  54. - How will I limit it to just certain component types?
  55. Make a common class for ScriptGUIElement as they all share:
  56. - Destroy(), DestroyInstance(), SetParent(), SetVisible() methods, and potentially others
  57. Add InsertElement to GUILayout
  58. Boost any replacement: http://www.codeproject.com/Articles/11250/High-Performance-Dynamic-Typing-in-C-using-a-Repla
  59. - Also POCO has any class