summaryrefslogtreecommitdiff
path: root/src/Messages.zig
Commit message (Collapse)AuthorAge
* Let a pane's tag take a row for each line it holdsGabriel Schneider4 days
| | | | | | | | | | | A tag that is a text can hold a newline, and the tagline, the body under it and the pointer all assumed one row. The pane's tag now takes a row per line (up to eight, and never the body's last row); the body starts below it, the rows a pointer counts start the body after the tag's lines, a click on any line puts the tag's cursor there, and a pixel shell gets a tag layer per line. A tag of one line draws exactly as before. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Give the message log to Messages as its own fieldsGabriel Schneider4 days
| | | | | | | | | | | | | Not a pure move: state moves. Pardes's three message-log fields (`messages: [message_log]LoggedMessage`, `messages_head`, `messages_len`) become the fields of Messages.zig itself (`log`, `head`, `len`), and Pardes embeds one as `messages: Messages = .{}`. messageLog reads only the ring, so it now takes `m: *const Messages` and is called `p.messages.messageLog(i)` (Output's +Messages view and the log test); logMessage still needs the panes and the 9P event log, so it keeps `p: *Pardes` and writes `p.messages.log/head/len`. No behaviour change. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Move the message row out of pardes.zig into Messages.zigGabriel Schneider4 days
Pure move, no behaviour change: the Message stamp helpers, LoggedMessage, setStatus, setMessage, showMessage, dismissMessage, dismissLine, advanceMessages, advanceLine, messagesAnimating, MessageMotion, messageFrames, messageMotion, noticeText, noticeLife, blendRgb, logMessage, messageLog, reportError, the notice painters (leaderText, noticeCols, Printed, printRight), collectNotices, and the six message tests go verbatim to Messages.zig. The methods become free functions taking `p: *Pardes`. setStatus, setMessage and reportError are called from ~170 places as `p.setMessage(..)`, so Pardes keeps three declaration aliases (`pub const setMessage = Messages.setMessage;`) and those call sites stay as they are; every other call changes from `p.x(..)` to `Messages.x(p, ..)` (46 of them). The five shells' `pardes.Pardes.Message` become `pardes.Messages.Message`. The message ring's fields stay on Pardes for now; moving them into Messages is a separate change. Co-Authored-By: Claude Opus 5.5 <[email protected]>