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