Vixen
dd8b0a81

Core · guide

Panels in markup

Writing a control in .vxml — @inherits for a class callers can hold and add, ref and refs for the parts they read, change: for the values they edit, and the key rule — for @for and for @if alike — that decides whether a row updates at all.

Edit this page on GitHub

Documents

Next

  • Building an interface, end to end — One panel built in the order the pieces actually go together — the markup file and what it compiles to, a list that is a keyed @for over a reactive collection, a form that is two-way bound and submitted, a verb declared as a command so a menu can run it, and the stylesheet that says what none of it looks like.
  • Inspectors in markup — Writing a custom inspector as a .vxml file with no code-behind, bound to the editing pipeline by name after the tree is built.
  • Key/value lists — One control for the label-and-value rows a debugger, a memory panel and a settings pane were each drawing by hand — equal halves, alternating shades, and a value slot that takes an editor.
  • Reactive collections — The two collections that live in the signal graph as one node each — a list whose changes are reported one at a time for the keyed @for reconciler, and a map written in place so a counter arriving every frame costs nothing.
  • Making a project compile markup — What turns a .vxml on disk into a class — one line outside this repository and one inside it — and the three build errors, VX4001, VX4002 and VX4003, that say which half is missing rather than blaming the markup.
  • Loading when a panel appears — Context.Load is the arrival hook a panel had no way to write — a tracked request, an untracked load, a token cancelled when the region goes, and a fault that arrives as a value markup can draw instead of an exception an effect swallows.