Cut 1.0.90 pretest: 500 mouse UX, version bump, NEWS, docs

Full-SVG 500 made mouse-operable for newcomers: kitty Discard button and
five-card cap, on-table phase banner, ? Help/Rules overlay with the bid
legend, legal-play dimming, card-size slider, and a layout pass that
moves the Help and size controls into the log panel so nothing overlaps.
Bump all files to 1.0.90, add NEWS, a README testing quick-start, and
make the shared engine files checkdoc-clean.
This commit is contained in:
Corwin Brust 2026-06-26 18:48:31 -05:00
parent 5ff6d8afed
commit 5da3144c0a
28 changed files with 360 additions and 112 deletions

View file

@ -4,7 +4,7 @@
;; Author: Corwin Brust <corwin@bru.st>
;; Maintainer: Corwin Brust <corwin@bru.st>
;; Version: 1.0.60
;; Version: 1.0.90
;; Package-Requires: ((emacs "26.1"))
;; Keywords: games
;; URL: https://code.bru.st/corwin/card-game.el
@ -49,6 +49,18 @@
Adjust with the card-size slider or the zoom keys (+/-/0)."
:type 'number :group 'card-games)
(defcustom cg-cursor-type nil
"Cursor shape in card-game buffers.
Card-game buffers are display surfaces -- you act on the highlighted
card or board cell, not on the text cursor -- so the text cursor is
hidden by default (nil), which also stops it blinking without touching
the global `blink-cursor-mode'. Set to a value such as `box' or `bar'
to show a cursor instead."
:type '(choice (const :tag "Hidden (no blink)" nil)
(const :tag "Box" box) (const :tag "Bar" bar)
(const :tag "Frame default" t))
:group 'card-games)
;;;; Engine base
@ -114,7 +126,7 @@ RECT being (X Y W H) in unscaled image pixels."))
Return non-nil when the click was handled.")
(cl-defmethod cg-renderer-draw ((renderer cg-renderer) (game cg-game))
"Default method: report that no drawing method exists for this pair."
"Default method: signal that RENDERER cannot draw GAME."
(error "No `cg-renderer-draw' for %s under the `%s' renderer"
(eieio-object-class-name game) (oref renderer name)))
@ -254,7 +266,7 @@ The clicked display string must carry a `cg-regions' text property."
(round (/ (car xy) sc)) (round (/ (cdr xy) sc))))))))
(defun cg-card-click (event)
"Dispatch a mouse click on a card or control to the current game."
"Dispatch mouse EVENT on a card or control to the current game."
(interactive "e")
(let ((action (cg-mouse-action event)))
(when (and action cg-current-game)