Open i-xt opened 2 years ago
I will review your pull request with great enthusiasm when I get the chance, thank you 😺
I've been focused on some other plugins for a couple of weeks and am still working on them so I still couldn't review the PR. Afterwards, I'll prioritize reviewing this.
We need to make sure that there aren't any edge cases with the text color modifications, for example when skin changes at runtime. I might ask you to only set the input fields' interactable to false and not touch the text color but I haven't decided yet. Please wait until #50 is merged. Even though that PR was created afterwards, it'll be easier to merge this PR to that one instead merging that PR to this one.
This PR adds support for read-only fields. A drawer can be made read-only from outside, for example in a
IRuntimeInspectorCustomEditor
, or via the newRuntimeInspectorReadonlyAttribute
. This attribute can specify a static function, which is queried inInspectorField.Refresh()
and returns whether the corresponding field or property should be rendered as read-only. If no function is supplied, members with this attribute are always considered read-only.Of course it would be nice to also link instance methods in the attribute, but this would necessitate further code changes, because:
MemberInfo
(InspectorField.BindTo()
) to get the attribute from, doesn't have access to the instance on which to search for the method.Let me know what you think about this implementation. If you are open for a merge, I'm happy to supply documentation.