Inspector.txt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Test new ScriptObject* system
  2. When I change an object in InspectableObject field I probably need to rebuild entire GUI hierarchy for that object. Right now I'm not.
  3. -----------------------------------------------
  4. FINE GRAINED TASKS
  5. - Add GUIUtility and a way how to calculate GUILayout height for use in inspectors
  6. - Determine how will InspectorFields update child GUI elements. i.e. when number of elements in an array changes.
  7. - Ensure all C++ editor fields have:
  8. - onValueChanged
  9. - setValue/getValue
  10. - undo/redo functionality
  11. - Ensure that focus lost gets sent even when element gets destroyed. Otherwise UndoRedo buffer will fail to be properly cleared.
  12. - Extend text field so it can be multi-line
  13. - Add label to foldout
  14. - Extend GameObject field so it can only accept a certain type
  15. - Add ResourceField to C++
  16. - Port to C#:
  17. - IntField
  18. - FloatField
  19. - ColorField
  20. - ToggleField
  21. - TextField
  22. - Vector2Field
  23. - Vector3Field
  24. - Vector4Field
  25. - GameObjectField
  26. - ResourceField
  27. -----------------------------------------------
  28. LESS IMPORTANT
  29. A way to close a window & destroy a GUI panel!
  30. - Will likely need to refactor ScriptEditorWindow as currently it performs initialization
  31. in constructor and destroy in destructor, but open/close will be called within its lifetime
  32. - Also a way to get notified if the window gets closed from C++
  33. - Once closed the referenced GUIPanels should no longer work (set "destroyed" flag?)
  34. - What about calling Destroy on a GUIPanel?
  35. - It should notify owning EditorWindow
  36. Ensure that setting depth for GUIArea works properly. It's not properly implemented yet.
  37. UndoRedo should work on URI type basis where it remembers object ID, and path across its fields to the field that was modified
  38. - This way it wont keep an unnecessary reference to object
  39. - SerializableField should probably be the type responsible for handling the URI
  40. - Will I need two different URI types for resources and scene objects?
  41. - Probably, resources don't need hierarchies, but I think I should ignore resources for now as I'm not sure they will be using Inspectable system
  42. - When trying to undo/redo and object id cannot be found, it just skips it
  43. - When recompiling clear the undo/redo queue
  44. Things to think about/do:
  45. - Add EditorFields to C#
  46. - Inspectable fields need TAB support
  47. - Modify C++ GUIElement so I can do setNextTabElement(GUIElement*)
  48. - Inspectable fields need Undo/Redo support. Consider how to best implement it
  49. - C++ Undo/Redo system needs nested contexts
  50. - C++ Ensure that Undo/Redo works on per-field basis (undoing items within a field)
  51. - Add C# UndoRedo
  52. - Modify C++ Editor fields so that calling setValue doesn't update the visual value until focus is lost
  53. - When user is currently writing in an input box I don't want refresh to overwrite that value.
  54. - Expand/Collapse needs to work for both Components and their sub-objects (Structs, Arrays, etc.)
  55. - How do I refresh currently visible inspector fields.
  56. - Also how will this be done with custom inspectors, when I might not use InspectableObject
  57. - Multi-rank arrays aren't properly supported in InspectableObject
  58. - Dictionaries aren't properly supported in InspectableObject
  59. - Need a way to add entries to arrays/lists/dictionaries (possibly also clone and delete entries) from inspector
  60. ----------------------
  61. Non-inspector:
  62. - Deleting first entry in input field moves the cursor incorrectly
  63. - Test if parsing int/float value from int/float field actually works
  64. - ProfilerOverlay elements are constantly dirty? even though I'm not calling update
  65. Refactor BuiltinMaterialFactory to BuiltinEngineResources
  66. Cursor
  67. - A way to save/load a set of cursors
  68. Get rid of the CamelotFramework namespace
  69. - I shouldn't need to prefix each variable with
  70. - Rename files/variables/macros starting with Cm
  71. - Rename projects starting with Camelot
  72. - Search for any remaining uses of "Camelot" and remove them
  73. Undocking a window wont remove the tabbed title bar
  74. While dragging an undocked window, dropping it over the main window (not over dock overlays) will not restore it
  75. - GameObjectField
  76. - When dragging over GameObjectField cursor needs to change depending whether drop will be accepted or not
  77. - How will I limit it to just certain component types?
  78. Make a common class for ScriptGUIElement as they all share:
  79. - Destroy(), DestroyInstance(), SetParent(), SetVisible() methods, and potentially others
  80. Add InsertElement to GUILayout
  81. Boost any replacement: http://www.codeproject.com/Articles/11250/High-Performance-Dynamic-Typing-in-C-using-a-Repla
  82. - Also POCO has any class