Skip to content

Added support for read-only fields #48

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

i-xt
Copy link
Contributor

@i-xt i-xt commented Nov 30, 2021

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 new RuntimeInspectorReadonlyAttribute. This attribute can specify a static function, which is queried in InspectorField.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:

  1. C# doesn't allow delegates to be passed to attribute constructors, which only leaves reflection as alternative to find the method.
  2. Code that has access to the 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.

@yasirkula
Copy link
Owner

I will review your pull request with great enthusiasm when I get the chance, thank you 😺

@yasirkula
Copy link
Owner

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.

@yasirkula
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants