This commit is contained in:
2026-09-09 18:06:21 +08:00
parent 161af68fe3
commit 45b9f9ed5d
79 changed files with 1167 additions and 1532 deletions
@@ -205,36 +205,6 @@ carrying no title of its own still reads as its localized display name.</p>
pane. The draggable vertical divider on screen belongs to the Execution page, between the left dock
— the Control Tree over the editor panel — and the central area; a second divider inside that dock
drags the height between the tree and the editor.</p>
<h2 id="the-wpf-clients-list-panel">The WPF Client's List Panel</h2>
<p>The WPF panel edits the <strong>root</strong> list only. It binds the project's player command as a list, its Add
menu offers no List item, and its content switch has no List arm, so a nested list entry selected
there renders the literal text &ldquo;No editor available for ListCommand&rdquo;. Nesting is a web surface.</p>
<ul>
<li>Two columns: a 400px entry column, a <code>GridSplitter</code>, and the selected command's content column,
both columns floored at 300px.</li>
<li>One toolbar over the list — Add, Remove, Move Up, Move Down — acting on the list selection. There
is no duplicate.</li>
<li>Add is a plain button that pops a fixed six-item context menu built in its click handler:
&ldquo;Pre-Setting Command&rdquo;, &ldquo;NC Opt Option Command&rdquo;, &ldquo;NC File Command&rdquo;, &ldquo;NC Code Command&rdquo;,
&ldquo;Script Command&rdquo; and &ldquo;Post Execution Command&rdquo;.</li>
<li>The list box is extended-select. Remove takes every selected entry, prompting with a count when
more than one is selected, and a drag can carry a whole selection; Move Up and Move Down stay
disabled unless exactly one entry is selected.</li>
<li>Each entry box carries a labelled Enable checkbox at its left, the command's title in bold, and a
pin icon with a &ldquo;Pin at beginning&rdquo; / &ldquo;Pin at end&rdquo; label — shown on the first entry when it is a
General Config command, and on the last when it is a Post-Execution command.</li>
<li>Insertion works around the ends: a new entry lands before a trailing Post-Execution when that is
the list's only one, and a General Config lands at the top unless the list already starts with
one. A drag that would move a pinned entry — or drop another entry onto it — is refused, the guard
testing that the entry is the only command of its kind and sits at that end. The Move Up / Move
Down buttons are not covered by that guard.</li>
<li>The content panel is greyed and made read-only while the selected entry's Enable box is clear.</li>
<li>Files dropped from the file explorer onto the entry list create one enabled NC File command per
file, taking a project-relative path when the file sits under the project directory.</li>
<li>The entry label falls back to the raw class name for a command that composes no title of its
own — <code>GeomDiffCommand</code>, <code>OptimizeToFilesCommand</code>, <code>WriteStepFilesCommand</code> and
<code>WriteShotFilesCommand</code>.</li>
</ul>
<h2 id="source-code-path">Source Code Path</h2>
<p>See <a class="xref" href="../../index.html">HiNC App Anatomy</a> for git repository links.</p>
<h3 id="web-application">Web Application</h3>