bump passepartout: v0.9.0 Warm TUI Redesign fixes
This commit is contained in:
@@ -976,17 +976,31 @@ Event handlers + daemon I/O + main loop.
|
||||
((eql btn :scroll-down)
|
||||
(setf (st :scroll-offset) (max 0 (- (st :scroll-offset) 3)))
|
||||
(setf (st :dirty) (list nil t nil))))))
|
||||
((cl-tty.input:dispatch-key-event data)
|
||||
nil)
|
||||
(t (on-key ch)))))))
|
||||
(when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty)))
|
||||
(cl-tty.backend:backend-clear be)
|
||||
(redraw curr-fb w h)
|
||||
(cl-tty.rendering:flush-framebuffer prev-fb curr-fb be)
|
||||
;; Draw separator line above input
|
||||
(cl-tty.backend:draw-text be 0 (- h 4) (make-string w :initial-element #\─)
|
||||
(theme-color :separator) nil)
|
||||
(rotatef prev-fb curr-fb))
|
||||
((member ch '(:enter 13 10 #\Newline #\Return 343))
|
||||
(on-key :enter))
|
||||
((cl-tty.input:dispatch-key-event data)
|
||||
nil)
|
||||
(t (on-key ch)))))))
|
||||
(when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty)))
|
||||
(cl-tty.backend:backend-clear be)
|
||||
(redraw curr-fb w h)
|
||||
;; Draw all rows from framebuffer directly
|
||||
(dotimes (row h)
|
||||
(let ((line (make-string w :initial-element #\Space))
|
||||
(fg (theme-color :agent-fg)) (bg nil))
|
||||
(dotimes (col w)
|
||||
(let* ((cell (aref curr-fb row col))
|
||||
(ch (cl-tty.rendering:cell-char cell))
|
||||
(cf (cl-tty.rendering:cell-fg cell))
|
||||
(cb (cl-tty.rendering:cell-bg cell)))
|
||||
(when ch (setf (char line col) ch))
|
||||
(when cf (setf fg cf))
|
||||
(when cb (setf bg cb))))
|
||||
(cl-tty.backend:draw-text be 0 row line fg bg)))
|
||||
;; Draw separator line above input
|
||||
(cl-tty.backend:draw-text be 0 (- h 4) (make-string w :initial-element #\─)
|
||||
(theme-color :separator) nil)
|
||||
(rotatef prev-fb curr-fb))
|
||||
(let ((ds (st :dialog-stack)))
|
||||
(when ds
|
||||
(let* ((dlg (car ds))
|
||||
|
||||
@@ -61,9 +61,11 @@ Returns a list of strings, one per line."
|
||||
(defun view-status (fb w h)
|
||||
(let* ((bg (theme-color :status-bg))
|
||||
(fg (theme-color :status-fg))
|
||||
(left (format nil " ~a ~a Rules:~a"
|
||||
(if (st :connected) "●" "○")
|
||||
(or (st :foveal-id) "passepartout") (or (st :rule-count) 0)))
|
||||
(left (format nil " ~a ~a msgs:~d Rules:~a"
|
||||
(if (st :connected) "●" "○")
|
||||
(or (st :foveal-id) "passepartout")
|
||||
(length (st :messages))
|
||||
(or (st :rule-count) 0)))
|
||||
(right (format nil "$~,2f ~a" (or (st :session-cost) 0.0) (now))))
|
||||
(dotimes (col w)
|
||||
(cl-tty.backend:draw-text fb 0 (- h 1) (make-string w :initial-element #\Space) nil bg))
|
||||
|
||||
Reference in New Issue
Block a user