split result window into result-window and result-frame-window

This commit is contained in:
eknauel 2005-05-19 13:59:52 +00:00
parent 214a66021f
commit 1e8cb9369c
1 changed files with 68 additions and 48 deletions

View File

@ -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)