Vixen
02b45cc4
csharp
public sealed class PropertyField

The row the default inspector would have drawn, wherever markup asks for one.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Doc 36 § P4's PropertyField, and the reason an inspector can be markup at all. Nine rows out of ten in a hand-written inspector are "draw this member the way you would have anyway" — a slider for a float with a range, a colour well for a Color4, a tick for a bool. Writing each of those out is what makes people not write custom inspectors; naming the member and getting the row is what makes them.

⚠ Empty until it is bound, which is Unity's rule and is not an implementation detail. A markup tree is built by a Build body that knows nothing about what is being edited — it cannot, or the markup would have to name a C# type — so the join happens afterwards, in Bind. A PropertyField that is never bound draws nothing and says why in the panel rather than throwing.

⚠ It builds an InspectorRow inside itself rather than being one. An InspectorRow is what a drawer is handed and what the reset button and the override bar hang off; making this a subclass would mean markup could produce a row with no field in it, which every one of those parts would then have to tolerate.

Fields and properties (4)

  • protected override string TagName

    The element name this type answers to when a caller does not choose one.

  • protected override bool AcceptsFocus

    Whether the focus can rest on this kind of control at all.

  • public string? Path

    Which member it shows. Set from markup, read when the tree is bound.

  • public InspectorRow? Row

    The row that was built, or before binding.

Used by (4)

  • BrushInspectorMarkupTestsVixen.Editor.Terrain.Tests
  • MarkupBindingVixen.Editor.Inspector
  • MarkupBindingTestsVixen.Editor.Inspector.Tests
  • TerrainBrushInspectorVixen.Editor.Terrain