split result window into result-window and result-frame-window
This commit is contained in:
parent
214a66021f
commit
1e8cb9369c
|
@ -29,9 +29,12 @@
|
|||
|
||||
(define bar-1 #f)
|
||||
(define bar-2 #f)
|
||||
|
||||
(define command-frame-window #f)
|
||||
(define command-window #f)
|
||||
|
||||
(define result-window #f)
|
||||
(define result-frame-window #f)
|
||||
|
||||
(define shortcuts '("F1:Exit"
|
||||
"F2:Repaint (after change of buffer size)"
|
||||
|
@ -278,16 +281,21 @@
|
|||
(paint)
|
||||
(loop (wait-for-input))))
|
||||
|
||||
((= ch 35)
|
||||
(error "Is this what you want?"))
|
||||
|
||||
;; forward in result history
|
||||
((= ch key-npage)
|
||||
(history-forward)
|
||||
(paint-result-window)
|
||||
(refresh-result-window)
|
||||
(loop (wait-for-input)))
|
||||
|
||||
;; back in result history
|
||||
((= ch key-ppage)
|
||||
(history-back)
|
||||
(paint-result-window)
|
||||
(refresh-result-window)
|
||||
(loop (wait-for-input)))
|
||||
|
||||
;;if lower window is active a message is sent.
|
||||
|
@ -304,11 +312,12 @@
|
|||
97)))
|
||||
(focus-result-buffer!)
|
||||
(set! current-result-object (switch key-message))
|
||||
(paint-result-window))
|
||||
(paint-result-window)
|
||||
(refresh-result-window))
|
||||
(begin
|
||||
(focus-command-buffer!)
|
||||
(paint-command-window-contents)
|
||||
(set! command-buffer (move-cursor command-buffer))))
|
||||
(move-cursor command-buffer)))
|
||||
(set! c-x-pressed #f)
|
||||
(loop (wait-for-input)))
|
||||
|
||||
|
@ -358,6 +367,7 @@
|
|||
ch)))
|
||||
(set! current-result-object (switch key-message))
|
||||
(paint-result-window)
|
||||
(refresh-result-window)
|
||||
(loop (wait-for-input)))
|
||||
|
||||
(cond
|
||||
|
@ -373,21 +383,21 @@
|
|||
command-buffer
|
||||
(- (length (buffer-text command-buffer)) 1))
|
||||
(paint-result-window)
|
||||
(refresh-result-window)
|
||||
(paint-bar-2)
|
||||
(paint-command-window-contents)
|
||||
(set! command-buffer (move-cursor command-buffer))
|
||||
(move-cursor command-buffer)
|
||||
(refresh-command-window)
|
||||
(loop (wait-for-input))))
|
||||
|
||||
(else
|
||||
(set! command-buffer (input command-buffer ch))
|
||||
(debug-message "loop after input " command-buffer)
|
||||
(input command-buffer ch)
|
||||
;(debug-message "loop after input " command-buffer)
|
||||
(werase (app-window-curses-win command-window))
|
||||
(set! command-buffer
|
||||
(print-command-buffer (app-window-curses-win command-window)
|
||||
command-buffer))
|
||||
(debug-message "loop after print-command-buffer " command-buffer)
|
||||
(set! command-buffer (move-cursor command-buffer))
|
||||
(print-command-buffer (app-window-curses-win command-window)
|
||||
command-buffer)
|
||||
;(debug-message "loop after print-command-buffer " command-buffer)
|
||||
(move-cursor command-buffer)
|
||||
(refresh-command-window)
|
||||
(loop (wait-for-input))))))))))
|
||||
|
||||
|
@ -397,6 +407,13 @@
|
|||
(newwin (app-window-height window) (app-window-width window)
|
||||
(app-window-y window) (app-window-x window))))
|
||||
|
||||
(define (make-inlying-app-window outer-window)
|
||||
(make-app-window (+ (app-window-x outer-window) 1)
|
||||
(+ (app-window-y outer-window) 1)
|
||||
(- (app-window-width outer-window) 2)
|
||||
(- (app-window-height outer-window) 2)
|
||||
#f))
|
||||
|
||||
(define (init-windows!)
|
||||
(init-screen)
|
||||
(set! bar-1
|
||||
|
@ -411,32 +428,29 @@
|
|||
(make-app-window 1 2
|
||||
(- (COLS) 2) (- (app-window-y bar-2) 2)
|
||||
#f))
|
||||
(set! command-window
|
||||
(make-app-window (+ (app-window-x command-frame-window) 1)
|
||||
(+ (app-window-y command-frame-window) 1)
|
||||
(- (app-window-width command-frame-window) 2)
|
||||
(- (app-window-height command-frame-window) 2)
|
||||
#f))
|
||||
(set! result-window
|
||||
(set! command-window
|
||||
(make-inlying-app-window command-frame-window))
|
||||
(set! result-frame-window
|
||||
(make-app-window 1 (+ (app-window-y bar-2) 3)
|
||||
(- (COLS) 2)
|
||||
(- (- (LINES) 6) (app-window-height command-frame-window))
|
||||
#f))
|
||||
(window-init-curses-win! bar-1)
|
||||
(window-init-curses-win! bar-2)
|
||||
(window-init-curses-win! command-frame-window)
|
||||
(window-init-curses-win! command-window)
|
||||
(window-init-curses-win! result-window)
|
||||
(debug-message "init-windows!: bar-1 " bar-1 " bar-2 " bar-2
|
||||
" command-frame-window " command-frame-window
|
||||
" command-window " command-window
|
||||
" result-window " result-window)
|
||||
(wclear (app-window-curses-win bar-1))
|
||||
(wclear (app-window-curses-win bar-2))
|
||||
(wclear (app-window-curses-win command-window))
|
||||
(wclear (app-window-curses-win command-frame-window))
|
||||
(wclear (app-window-curses-win result-window))
|
||||
(clear))
|
||||
(set! result-window
|
||||
(make-inlying-app-window result-frame-window))
|
||||
|
||||
(let ((all-windows (list bar-1 bar-2
|
||||
command-frame-window command-window
|
||||
result-frame-window result-window)))
|
||||
(for-each window-init-curses-win! all-windows)
|
||||
|
||||
(debug-message "init-windows!: bar-1 " bar-1 " bar-2 " bar-2
|
||||
" command-frame-window " command-frame-window
|
||||
" command-window " command-window
|
||||
" result-frame-window " result-frame-window
|
||||
" result-window " result-window)
|
||||
(for-each wclear
|
||||
(map app-window-curses-win all-windows))
|
||||
(clear)))
|
||||
|
||||
(define (paint-bar-1)
|
||||
(mvwaddstr (app-window-curses-win bar-1) 0 1 "SCSH-NUIT")
|
||||
|
@ -458,20 +472,26 @@
|
|||
(set-buffer-num-cols! command-buffer
|
||||
(- (app-window-width command-window) 3))
|
||||
(werase (app-window-curses-win command-window))
|
||||
(set! command-buffer
|
||||
(print-command-buffer (app-window-curses-win command-window)
|
||||
command-buffer)))
|
||||
(print-command-buffer (app-window-curses-win command-window)
|
||||
command-buffer))
|
||||
|
||||
(define (refresh-command-window)
|
||||
(wrefresh (app-window-curses-win command-window)))
|
||||
|
||||
(define (paint-result-frame-window)
|
||||
(let ((win (app-window-curses-win result-frame-window)))
|
||||
(wclear win)
|
||||
(box win (ascii->char 0) (ascii->char 0))
|
||||
;;; EK: wtf is going on here?
|
||||
(set! result-lines (- (app-window-height result-window) 2))
|
||||
(set! result-cols (- (app-window-width result-window) 3))
|
||||
(wrefresh win)))
|
||||
|
||||
(define (paint-result-window)
|
||||
(wclear (app-window-curses-win result-window))
|
||||
(box (app-window-curses-win result-window)
|
||||
(ascii->char 0) (ascii->char 0))
|
||||
(set! result-lines (- (app-window-height result-window) 2))
|
||||
(set! result-cols (- (app-window-width result-window) 3))
|
||||
(print-result-buffer result-window)
|
||||
(print-result-buffer))
|
||||
|
||||
(define (refresh-result-window)
|
||||
(wrefresh (app-window-curses-win result-window)))
|
||||
|
||||
(define (paint)
|
||||
|
@ -480,9 +500,11 @@
|
|||
(paint-bar-2)
|
||||
(paint-command-frame-window)
|
||||
(paint-command-window-contents)
|
||||
(paint-result-frame-window)
|
||||
(paint-result-window)
|
||||
(move-cursor command-buffer)
|
||||
(refresh-command-window))
|
||||
(refresh-command-window)
|
||||
(refresh-result-window))
|
||||
|
||||
(define (wait-for-input)
|
||||
(noecho)
|
||||
|
@ -701,7 +723,7 @@
|
|||
(wrefresh win))))))
|
||||
|
||||
;;print the lower window
|
||||
(define (print-result-buffer result-window)
|
||||
(define (print-result-buffer)
|
||||
(let* ((window (app-window-curses-win result-window))
|
||||
(print-message (make-print-message active-command
|
||||
current-result-object
|
||||
|
@ -746,18 +768,18 @@
|
|||
(wattron window (A-REVERSE))
|
||||
(mvwaddstr window pos 1 line)
|
||||
(wattrset window (A-NORMAL))
|
||||
(wrefresh window)
|
||||
;(wrefresh window)
|
||||
(loop (+ pos 1)))
|
||||
(if (member pos marked-lines)
|
||||
(begin
|
||||
(wattron window (A-BOLD))
|
||||
(mvwaddstr window pos 1 line)
|
||||
(wattrset window (A-NORMAL))
|
||||
(wrefresh window)
|
||||
;(wrefresh window)
|
||||
(loop (+ pos 1)))
|
||||
(begin
|
||||
(mvwaddstr window pos 1 line)
|
||||
(wrefresh window)
|
||||
;(wrefresh window)
|
||||
(loop (+ pos 1))))))))))))
|
||||
|
||||
;;visible lines
|
||||
|
@ -798,7 +820,6 @@
|
|||
;;Cursor
|
||||
;;move cursor to the corrct position
|
||||
(define (move-cursor buffer)
|
||||
(debug-message "move-cursor " buffer)
|
||||
(if (focus-on-command-buffer?)
|
||||
(cursor-right-pos (app-window-curses-win command-window)
|
||||
buffer)
|
||||
|
@ -821,8 +842,7 @@
|
|||
(buffer-pos-fin-ln command-buffer)))
|
||||
(let ((posx (modulo (buffer-pos-col command-buffer)
|
||||
(buffer-num-cols command-buffer))))
|
||||
(set-buffer-pos-x! command-buffer posx))
|
||||
(debug-message "compute-y-x " command-buffer))
|
||||
(set-buffer-pos-x! command-buffer posx)))
|
||||
(begin
|
||||
(if (>= pos-result result-lines)
|
||||
(set! result-buffer-pos-y result-lines)
|
||||
|
|
Loading…
Reference in New Issue