Skip to content

Tool bar in one column or two - #189

Open
Fvzion wants to merge 1 commit into
robbietilton:mainfrom
Fvzion:feature/tool-rail-columns
Open

Fvzion wants to merge 1 commit into
robbietilton:mainfrom
Fvzion:feature/tool-rail-columns

Conversation

@Fvzion

@Fvzion Fvzion commented Sep 30, 2026

Copy link
Copy Markdown

The problem today

The tool bar is one column of 15 tools plus the color swatches. On a laptop screen, or any window under about 900 pt tall, it doesn't fit: the last tools and the swatches are hidden below and have to be scrolled to.

What changes for the user

A small double chevron (»/«) at the top of the tool bar switches it to two columns, as Photoshop's can. It's about half as tall, so every tool and the swatches fit without scrolling. It's 92 pt wide instead of 56, and the choice is remembered. Tools, their order, highlighting, icons and the swatches behave exactly as before.

How to try it

  1. Make the window short enough that the tool bar scrolls.
  2. Click » at the top of the tool bar: every tool is visible. Click « to go back.
  3. Quit and reopen: the layout is kept.

In the code

  • The rail moves out of ContentView into UI/ToolRail.swift (button code unchanged), laid out in rows by a small tested helper.
  • IndicatorlessScrollView gave its content a fixed 56 pt width; it now uses the scroll view's own width (its only user is the rail), otherwise the second column was cut off.
  • ToolRailTests (4 tests): widths, order, the scrolling rail's width, and that two columns really are shorter.

Can be trimmed

View › Tools in Two Columns does the same as the chevron and can go if you'd rather keep View short.

Tested on macOS 26.6 (Apple silicon): the full test suite passes. Not yet tried on macOS 27.

🤖 Generated with Claude Code

The double chevron at the top of the tool bar, or View › Tools in Two
Columns, lays the tools out in two columns, about half as tall, as
Photoshop's tool bar can; it's remembered. The rail moves out of
ContentView into its own view, its buttons unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant