Lay the band panel out the way N1MM lays it out, and colour it

N1MM's band panel is a row per band and a column per mode the contest runs,
with every cell painted by what the callsign being typed would be worth there:
red for one new multiplier, green for more than one, blue for points, grey for
a station already worked on that band and mode. With nothing typed every cell
is grey. That is the panel's point — it says where a station is still needed
without working the bands one at a time — and this had only the frame.

BandPanel holds the rule and is unit-tested without a window. The bands are the
six contest bands, with 30, 17 and 12 metres added for general logging: in N1MM
that is the one entry of the hundred and thirty-five that shows the WARC bands,
so Contest.ShowsWarcBands says so and GeneralLogging overrides it. The columns
are the modes the contest runs, so CQ WW CW has one column and IARU has two,
rather than always showing CW and phone. A digital entry gets one DIG column
where N1MM has RTTY and PSK: dupes and points here go by mode category, and
those two are the same category.

The labels are N1MM's: the metres alone up to 10, then the unit from 6m up. The
band the radio is on is ringed rather than filled, as N1MM rings it, so the
ring does not hide the colour underneath. The cells are labels with a click
handler rather than buttons, so the theme cannot paint over the colour under
the pointer.

Text on a filled cell is black or white by N1MM's rule: light is the three
channels adding up to more than 384.

Looked at under Xvfb in CQ WW CW: one CW column, six bands, grey with nothing
typed, and with a JA typed red on every band but 20, where the zone and country
are already claimed, and which carries the ring.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
2026-08-30 21:42:45 +00:00
parent a31c40fb2d
commit 13a1acfcab
12 changed files with 324 additions and 60 deletions

View File

@@ -214,12 +214,21 @@ The title bar says what N1MM's says: the frequency, the mode, whether the
frequency came from a radio or was typed, and which radio the window belongs to
when there are two.
### The band buttons
### The band panel
Down the left of the entry window are the bands, CW in one column and phone in
the other, as N1MM has them. A button puts the radio where you left that band
and mode, or at the start of that part of the band the first time. The button
for where the radio is now is marked.
Down the left of the entry window is N1MM's band panel: a row per band, a
column per mode the contest runs, and every cell painted with what the callsign
being typed would be worth on that band in that mode — red for one new
multiplier, green for more than one, blue for points, grey for a station already
worked there. So the panel says where the station is still needed without
working the bands one at a time. With nothing typed every cell is grey, as N1MM
leaves it.
The bands are the six contest bands, with 30, 17 and 12 metres added for general
logging, which is the only entry N1MM shows them for. Clicking a cell puts the
radio where you left that band and mode, or at the start of that part of the
band the first time. The band and mode the radio is on is ringed rather than
filled, so the ring does not hide what the cell is saying.
### The call frame