various fixes

This commit is contained in:
Vivianne 2024-02-03 05:47:29 -05:00
parent e0f035a7fb
commit 8f63e0b492
3 changed files with 17 additions and 12 deletions

View File

@ -10,8 +10,8 @@
;; Could steal more from fantasary in future...
(define (log-to-curses win prompt-win msg)
(addstr win "\n")
(addstr win msg)
(move win (+ 1 (getcury win)) 0)
(refresh win)
;; move cursor back to the prompt
(refresh prompt-win))

View File

@ -75,7 +75,8 @@
prompt-str)
#:x 3 #:y 1)
(resize log-win (- height 2) width)
(resize prompt-win 3 width)
(resize prompt-win 2 width)
(mvwin prompt-win (- height 2) 0)
(move prompt-win 1 (+ 3 (length prompt-input)))
(refresh prompt-win))
@ -168,6 +169,9 @@
(newwin (- height prompt-height)
width 0 0))
(scrollok! log-win #t)
(idcok! log-win #t)
(setscrreg! log-win 0 (- height prompt-height))
(move log-win (getmaxy log-win) 0)
(with-vat user-vat
(set! logger (spawn ^logger log-win prompt-win))
@ -188,6 +192,9 @@
;; Exit
((or (eqv? char #\esc) (eqv? char #\etx))
(halt-event-loop))
;; Resized window
((eqv? char KEY_RESIZE)
(add-task! tasks refresh-prompt))
;; Backspace
((or (eqv? char %BACKSPACE) (eqv? char #\delete))
(set! prompt-input (match prompt-input

View File

@ -13,10 +13,10 @@
(room room-data-room)
(presence room-data-presence))
(define (^user bcom logger name joined-room-data)
(define (^user bcom logger name room-data)
(methods
[(room) (room-data-room joined-room-data)]
[(presence) (room-data-presence joined-room-data)]
[(room) (and room-data (room-data-room room-data))]
[(presence) (and room-data (room-data-presence room-data))]
[(make-room)
(let* ((my-presence (spawn ^room-presence logger name))
(room (spawn ^room my-presence))
@ -25,15 +25,13 @@
[(join-room room)
(let ((my-presence (spawn ^room-presence logger name)))
(when joined-room-data
(<-np (room-data-room joined-room-data) 'kick-user (room-data-presence joined-room-data)))
(when room-data
(<-np (room-data-room room-data) 'kick-user (room-data-presence room-data)))
(<- room 'add-user my-presence)
(define room-data (make-room-data room my-presence))
(bcom (^user bcom logger name room-data)))]
(bcom (^user bcom logger name (make-room-data room my-presence))))]
[(leave-room room)
(when (eq? room (room-data-room joined-room-data))
(<-np room 'kick-user (room-data-presence joined-room-data))
(when (eq? room (room-data-room room-data))
(<-np room 'kick-user (room-data-presence room-data))
(bcom (^user bcom logger name #f)))]))