Fix painting of completions window, remove loop parameter
part of darcs patch Fri Sep 23 22:15:31 EEST 2005 Martin Gasbichler <gasbichl@informatik.uni-tuebingen.de>
This commit is contained in:
		
							parent
							
								
									de78de0050
								
							
						
					
					
						commit
						96973d961c
					
				|  | @ -404,10 +404,9 @@ | ||||||
| 	 (release-lock paint-lock) | 	 (release-lock paint-lock) | ||||||
| 	 (lp (cml-receive statistics-channel)))))) | 	 (lp (cml-receive statistics-channel)))))) | ||||||
| 
 | 
 | ||||||
|   ;;Loop |  | ||||||
|   (paint) |   (paint) | ||||||
|   (let loop ((ch (wait-for-input)) (c-x-pressed? #f) |   (let loop ((ch (wait-for-input))  | ||||||
| 	     (completion-selector #f)) |              (c-x-pressed? #f)) | ||||||
| 
 | 
 | ||||||
|     (cond |     (cond | ||||||
|      (maybe-modal-window |      (maybe-modal-window | ||||||
|  | @ -418,75 +417,69 @@ | ||||||
|             (when (current-history-item) |             (when (current-history-item) | ||||||
|               (paint-result-window (entry-data (current-history-item))) |               (paint-result-window (entry-data (current-history-item))) | ||||||
|               (refresh-result-window)))) |               (refresh-result-window)))) | ||||||
|       (loop (wait-for-input) c-x-pressed? completion-selector)) |       (loop (wait-for-input) c-x-pressed?)) | ||||||
|      ;; Ctrl-x -> wait for next input |      ;; Ctrl-x -> wait for next input | ||||||
|      ((= ch key-control-x) |      ((= ch key-control-x) | ||||||
|       (loop (wait-for-input) #t completion-selector)) |       (loop (wait-for-input) #t)) | ||||||
| 
 | 
 | ||||||
|      ;; tab pressed twice, select completion using select-list |      ;; tab is pressed, offer completions | ||||||
|      ((and (focus-on-command-buffer?) |  | ||||||
| 	   completion-selector |  | ||||||
| 	   (= ch key-tab)) |  | ||||||
|       (focus-result-buffer!) |  | ||||||
|       (loop (wait-for-input) #f completion-selector)) |  | ||||||
| 
 |  | ||||||
|      ;; tab is pressed in the first place, offer completions |  | ||||||
|      ((and (focus-on-command-buffer?) |      ((and (focus-on-command-buffer?) | ||||||
| 	   (command-buffer-in-command-mode?) | 	   (command-buffer-in-command-mode?) | ||||||
| 	   (= ch key-tab)) | 	   (= ch key-tab)) | ||||||
|       (offer-completions (last (buffer-text (command-buffer)))) |       (offer-completions (last (buffer-text (command-buffer)))) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ((and (focus-on-command-buffer?) |      ((and (focus-on-command-buffer?) | ||||||
| 	   (command-buffer-in-command-mode?) | 	   (command-buffer-in-command-mode?) | ||||||
| 	   c-x-pressed? | 	   c-x-pressed? | ||||||
| 	   (= ch (config 'main 'switch-command-buffer-mode-key))) | 	   (= ch (config 'main 'switch-command-buffer-mode-key))) | ||||||
|       (toggle-command/scheme-mode-with-conversion) |       (toggle-command/scheme-mode-with-conversion) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ((= ch (config 'main 'switch-command-buffer-mode-key)) |      ((= ch (config 'main 'switch-command-buffer-mode-key)) | ||||||
|       (toggle-command/scheme-mode) |       (toggle-command/scheme-mode) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ((= ch key-end) |      ((= ch key-end) | ||||||
|       (show-shell-screen) |       (show-shell-screen) | ||||||
|       (paint) |       (paint) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ;; C-x o --- toggle buffer focus |      ;; C-x o --- toggle buffer focus | ||||||
|      ((and c-x-pressed? (= ch key-o)) |      ((and c-x-pressed? (= ch key-o)) | ||||||
|       (toggle-buffer-focus) |       (toggle-buffer-focus) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ;; C-x p --- insert selection |      ;; C-x p --- insert selection | ||||||
|      ((and c-x-pressed? (current-history-item) |      ((and c-x-pressed? (current-history-item) | ||||||
| 	   (= ch 112)) | 	   (= ch 112)) | ||||||
|       (paste-selection/refresh (current-viewer)) |       (paste-selection/refresh (current-viewer)) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ;; C-x P --- insert focus object(s) |      ;; C-x P --- insert focus object(s) | ||||||
|      ((and c-x-pressed? (current-history-item) |      ((and c-x-pressed? (current-history-item) | ||||||
| 	   (= ch 80)) | 	   (= ch 80)) | ||||||
|       (paste-focus-object/refresh (current-viewer)) |       (paste-focus-object/refresh (current-viewer)) | ||||||
|       (loop (wait-for-input) #f #f)) |       (loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ((and c-x-pressed? (focus-on-result-buffer?)) |      ((and c-x-pressed? (focus-on-result-buffer?)) | ||||||
|       (update-current-viewer! |       (update-current-viewer! | ||||||
|        (send (current-viewer)  |        (send (current-viewer)  | ||||||
| 	     'key-press ch key-control-x)) | 	     'key-press ch key-control-x)) | ||||||
| 	(loop (wait-for-input) #f #f)) | 	(loop (wait-for-input) #f)) | ||||||
| 
 | 
 | ||||||
|      ;; C-x r --- redo |      ;; C-x r --- redo | ||||||
|      ((and c-x-pressed? (focus-on-command-buffer?) |      ((and c-x-pressed? (focus-on-command-buffer?) | ||||||
| 	   (= ch 114)) | 	   (= ch 114)) | ||||||
|       (debug-message "Eric should re-implement redo...")) |       (debug-message "Eric should re-implement redo...") | ||||||
|  |       (loop (wait-for-input) #f)) | ||||||
|       |       | ||||||
|      ((= ch key-f1) |      ((= ch key-f1) | ||||||
|       (endwin)) |       (endwin)) | ||||||
|       |       | ||||||
|      ((= ch key-f2) |      ((= ch key-f2) | ||||||
|       (paint) |       (paint) | ||||||
|       (loop (wait-for-input) c-x-pressed? #f)) |       (loop (wait-for-input) c-x-pressed?)) | ||||||
| 
 | 
 | ||||||
|      ;; forward in result history |      ;; forward in result history | ||||||
|      ((= ch key-npage) |      ((= ch key-npage) | ||||||
|  | @ -498,7 +491,7 @@ | ||||||
| 	(paint-result-window (entry-data (current-history-item)))) | 	(paint-result-window (entry-data (current-history-item)))) | ||||||
|       (refresh-result-window) |       (refresh-result-window) | ||||||
|       (release-lock paint-lock) |       (release-lock paint-lock) | ||||||
|       (loop (wait-for-input) c-x-pressed? #f)) |       (loop (wait-for-input) c-x-pressed?)) | ||||||
|       |       | ||||||
|      ;; back in result history |      ;; back in result history | ||||||
|      ((= ch key-ppage) |      ((= ch key-ppage) | ||||||
|  | @ -510,7 +503,7 @@ | ||||||
| 	(paint-result-window (entry-data (current-history-item)))) | 	(paint-result-window (entry-data (current-history-item)))) | ||||||
|       (refresh-result-window) |       (refresh-result-window) | ||||||
|       (release-lock paint-lock) |       (release-lock paint-lock) | ||||||
|       (loop (wait-for-input) c-x-pressed? #f)) |       (loop (wait-for-input) c-x-pressed?)) | ||||||
| 
 | 
 | ||||||
|      ((and (focus-on-command-buffer?) (= ch 10)) |      ((and (focus-on-command-buffer?) (= ch 10)) | ||||||
|       (input (command-buffer) ch) |       (input (command-buffer) ch) | ||||||
|  | @ -522,7 +515,7 @@ | ||||||
|       (refresh-command-window) |       (refresh-command-window) | ||||||
|       (release-lock paint-lock) |       (release-lock paint-lock) | ||||||
|       (handle-return-key) |       (handle-return-key) | ||||||
|       (loop (wait-for-input) c-x-pressed? #f)) |       (loop (wait-for-input) c-x-pressed?)) | ||||||
| 
 | 
 | ||||||
|      (else  |      (else  | ||||||
|       (cond |       (cond | ||||||
|  | @ -536,7 +529,7 @@ | ||||||
| 	  (move-cursor (command-buffer) (result-buffer)) | 	  (move-cursor (command-buffer) (result-buffer)) | ||||||
| 	  (refresh-result-window) | 	  (refresh-result-window) | ||||||
| 	  (release-lock paint-lock)) | 	  (release-lock paint-lock)) | ||||||
| 	(loop (wait-for-input) #f #f)) | 	(loop (wait-for-input) #f)) | ||||||
|        (else |        (else | ||||||
| 	(input (command-buffer) ch) | 	(input (command-buffer) ch) | ||||||
| 	(obtain-lock paint-lock) | 	(obtain-lock paint-lock) | ||||||
|  | @ -546,7 +539,7 @@ | ||||||
| 	(move-cursor (command-buffer) (result-buffer)) | 	(move-cursor (command-buffer) (result-buffer)) | ||||||
| 	(refresh-command-window) | 	(refresh-command-window) | ||||||
| 	(release-lock paint-lock) | 	(release-lock paint-lock) | ||||||
| 	(loop (wait-for-input) c-x-pressed? #f))))))) | 	(loop (wait-for-input) c-x-pressed?))))))) | ||||||
| 
 | 
 | ||||||
| (define (paint-bar-1) | (define (paint-bar-1) | ||||||
|   (mvwaddstr (app-window-curses-win (bar-1)) 0 1 "Commander S") |   (mvwaddstr (app-window-curses-win (bar-1)) 0 1 "Commander S") | ||||||
|  | @ -799,16 +792,6 @@ | ||||||
|   (move-cursor (command-buffer) (result-buffer)) |   (move-cursor (command-buffer) (result-buffer)) | ||||||
|   (refresh-command-window)) |   (refresh-command-window)) | ||||||
| 
 | 
 | ||||||
| (define (paint-completion-select-list win width select-list command) |  | ||||||
|   (wclear win) |  | ||||||
|   (wattron win (A-BOLD)) |  | ||||||
|   (mvwaddstr win 0 0  |  | ||||||
|              (string-append "Possible completions for " command)) |  | ||||||
|   (wattrset win (A-NORMAL)) |  | ||||||
|   (paint-selection-list-at select-list 0 2 |  | ||||||
|                            win width #t) |  | ||||||
|   (wrefresh win)) |  | ||||||
| 
 |  | ||||||
| (define (current-cursor-index) | (define (current-cursor-index) | ||||||
|   ;; #### No, I will not comment on this. |   ;; #### No, I will not comment on this. | ||||||
|   (- (buffer-pos-col (command-buffer)) 2)) |   (- (buffer-pos-col (command-buffer)) 2)) | ||||||
|  | @ -868,11 +851,16 @@ | ||||||
|                    0 |                    0 | ||||||
|                    (+ 1 (quotient (- inner-width header-length) 2)) |                    (+ 1 (quotient (- inner-width header-length) 2)) | ||||||
|                    header-line) |                    header-line) | ||||||
|         (paint-completion-select-list dialog-win inner-width select-list command) |         (paint-selection-list-at select-list 1 1 | ||||||
|  |                                  dialog-win inner-width #t) | ||||||
|         (wrefresh dialog-win)) |         (wrefresh dialog-win)) | ||||||
|       (paint) |       (paint) | ||||||
|       (lambda (key) |       (lambda (key) | ||||||
|         (cond |         (cond | ||||||
|  |          ((= key 27) | ||||||
|  |           (delete-app-window! dialog) | ||||||
|  |           (close-modal-window!) | ||||||
|  |           #t) | ||||||
|          ((= key 10) |          ((= key 10) | ||||||
|           (let ((completion |           (let ((completion | ||||||
|                  (select-list-selected-entry select-list))) |                  (select-list-selected-entry select-list))) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 eknauel
						eknauel