Repository navigation
Conversation
blit keys a button by its label, and the boundary's and the walls' gesture groups both offer Rectangle, Ellipse, Polygon and Freehand in the World panel's one id scope. Each pair of buttons shared an id, so their hover, press and chosen look were one widget's: a choice in one group lit the same label in the other, and the boundary's choice could not be moved off while the walls drew theirs over it. The selection's Clear collided the same way with the world's. Each group now keys its buttons under its own scope, and the boundary's choice is lit only while the bounds tool is the tool, as the walls' already was, so each group shows exactly the choice in effect.
… view The World tab is three folding sections: Shape (what the world is now, its topology, the boundary tool and its size), Walls, and Fill and select (randomize, clearing the world and the selection). An exclusive choice is one keyed group (look.choice), a tool's heading names its key and lights while it is the tool, and its usage note shows only then. Region picking is a toggle, and Remove bounds stays in place, disabled with nothing to remove. Taking the bounds, wall or select tool up from the toolbar or a key brings the World tab to the front of its dock with that tool's section open and scrolled to the top. A tool taken up in the panel leaves it where it is. Controls with a key name it in their tooltip (look.key_tip).
The engine choice, HashLife's step and going to a generation move into a popup off one button naming the engine and its step, which took a second row before. The speed slider is narrower and the state picker is as wide as the rule's last state needs. Play, step, reset and the tools name their keys in their tooltips.
The pattern's preview has Rotate and Flip for the stamp (Z, X). The selection's operations name their keys in their tooltips. The rule panel has headings over its presets, its string and its neighbourhood, and a preset cut to fit its button reads whole in its tooltip.
# Conflicts: # src/toolbar.mach
…ys what escape does now
…y row at 1280x800
octalide
marked this pull request as ready for review
October 4, 2026 04:34
…tip says what it does
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #311
Closes #307
Plan
cellar.look):look.choice, which is blit'sbutton_gridunder its own id scope, orsegmentedfor one row.Audit (before)
Captures at 1280x800 under a headless kwin are in the worktree, in
out/before/andout/after/. The panels and tabs were opened with an uncommitted hook.Decided
Ran
mach fmt --check .,mach build .,mach build . -p release, and under a headless kwin the fullmach test .. New tests:draw__the_boundary_and_wall_choices_are_apart_and_each_shows_its_own: chooses and switches in each group, with no id collisions.draw__a_tool_taken_up_by_key_brings_its_controls_into_view.