Fixes for the changes in nuit-engine
This commit is contained in:
		
							parent
							
								
									c405bc02c5
								
							
						
					
					
						commit
						246660a299
					
				|  | @ -1,26 +1,5 @@ | |||
| (define-record-type inspector-state :inspector-state | ||||
|   (make-inspector-state val stack header num-cols num-lines selection-list) | ||||
|   inspector-state? | ||||
|   (val inspector-state-val) | ||||
|   (stack inspector-state-stack) | ||||
|   (header inspector-state-header) | ||||
|   (num-cols inspector-state-num-cols) | ||||
|   (num-lines inspector-state-num-lines) | ||||
|   (selection-list inspector-state-selection-list)) | ||||
| 
 | ||||
| (define footer-length 0) | ||||
| 
 | ||||
| (define (make-initial-inspector-state focus-obj num-cols num-lines) | ||||
|   (let ((header (make-header focus-obj num-cols))) | ||||
|     (make-inspector-state focus-obj | ||||
|                           '() | ||||
|                           header | ||||
|                           num-cols | ||||
|                           num-lines | ||||
|                           (make-inspector-selection-list num-cols | ||||
|                                                          (- num-lines (length header)) | ||||
|                                                          focus-obj)))) | ||||
| 
 | ||||
| (define (make-inspector-selection-list num-cols num-lines focus-obj) | ||||
|   (let ((menu (prepare-menu focus-obj))) | ||||
|     (make-select-list | ||||
|  | @ -36,7 +15,6 @@ | |||
|             "Press cont-down key to see more" | ||||
|             ""))) | ||||
| 
 | ||||
| 
 | ||||
| (define (layout-menu-entry num-cols entry) | ||||
|   (let ((head (format #f "[~a]" (or (car entry) "")))) | ||||
|     (string-append head (val-to-string (cdr entry)  | ||||
|  | @ -51,58 +29,6 @@ | |||
|     (let ((str (get-output-string out))) | ||||
|       (substring str 0 (min (string-length str) max-length))))) | ||||
| 
 | ||||
| (define (inspector-state-exchange-selection-list old-state sl) | ||||
|   (make-inspector-state (inspector-state-val old-state) | ||||
|                         (inspector-state-stack old-state) | ||||
|                         (inspector-state-header old-state) | ||||
|                         (inspector-state-num-cols old-state) | ||||
|                         (inspector-state-num-lines old-state) | ||||
|                         sl)) | ||||
| 
 | ||||
| (define (inspector-state-exchange-header-msg old-state msg) | ||||
|   (make-inspector-state  (inspector-state-val old-state) | ||||
|                          (inspector-state-stack old-state) | ||||
|                          (cons (car (inspector-state-header old-state)) | ||||
|                                (list msg)) | ||||
|                          (inspector-state-num-cols old-state) | ||||
|                          (inspector-state-num-lines old-state) | ||||
|                          (inspector-state-selection-list old-state))) | ||||
| 
 | ||||
| 
 | ||||
| (define (inspector-state-push-value state val) | ||||
|   (let* ((num-cols (inspector-state-num-cols state)) | ||||
|          (num-lines (inspector-state-num-lines state)) | ||||
|          (hdr (make-header val num-cols))) | ||||
|     (make-inspector-state val | ||||
|                           (cons (inspector-state-val state) | ||||
|                                 (inspector-state-stack state)) | ||||
|                           hdr | ||||
|                           num-cols | ||||
|                           num-lines | ||||
|                           (make-inspector-selection-list | ||||
|                            num-cols | ||||
|                            (- num-lines (length hdr)) | ||||
|                            val)))) | ||||
| 
 | ||||
| (define (inspector-state-pop-value state) | ||||
|   (let ((stack (inspector-state-stack state)) | ||||
|         (num-cols (inspector-state-num-cols state)) | ||||
|         (num-lines (inspector-state-num-lines state))) | ||||
|     (if (null? stack) | ||||
|         (inspector-state-exchange-header-msg state | ||||
|                                              "Can't go up from here.") | ||||
|         (let ((hdr (make-header (car stack) num-cols))) | ||||
|           (make-inspector-state (car stack) | ||||
|                                 (cdr stack) | ||||
|                                 hdr | ||||
|                                 num-cols | ||||
|                                 num-lines | ||||
|                                 (make-inspector-selection-list | ||||
|                                  num-cols | ||||
|                                  (- num-lines (length hdr)) | ||||
|                                  (car stack))))))) | ||||
| 
 | ||||
|                          | ||||
| (define (inspect-value val) | ||||
|   (error "not yet")) | ||||
| 
 | ||||
|  | @ -112,63 +38,66 @@ | |||
| (define down-key key-d) | ||||
| (define up-key key-u) | ||||
| 
 | ||||
| (define (inspector-receiver message) | ||||
|   (debug-message "inspector-receiver " message) | ||||
|   (cond  | ||||
|    ((init-with-result-message? message) | ||||
|     (let* ((focus-obj (init-with-result-message-result message)) | ||||
|            (buffer (init-with-result-message-buffer message)) | ||||
|            (num-cols (result-buffer-num-cols buffer)) | ||||
|            (num-lines (result-buffer-num-lines buffer))) | ||||
|       (make-initial-inspector-state focus-obj | ||||
| (define (make-inspector focus-obj buffer) | ||||
|   (let* ((num-cols (result-buffer-num-cols buffer)) | ||||
|          (num-lines (result-buffer-num-lines buffer)) | ||||
|          (val focus-obj) | ||||
|          (stack '()) | ||||
|          (header (make-header focus-obj num-cols)) | ||||
|          (num-cols num-cols) | ||||
|          (num-lines num-lines) | ||||
|          (selection-list | ||||
|           (make-inspector-selection-list num-cols | ||||
|                                          (- num-lines (length header)) | ||||
|                                          focus-obj))) | ||||
| 
 | ||||
|     (define (inspect-next-continuation) | ||||
|       (if (continuation? val) | ||||
|           (set! stack (cons stack (continuation-parent val))) | ||||
|           (set! header | ||||
|            "Can't go down from a non-continuation."))) | ||||
| 
 | ||||
|     (define (inspector-state-pop-value) | ||||
|       (if (null? stack) | ||||
|           (set! header "Can't go up from here.") | ||||
|           (begin | ||||
|             (set! header (make-header (car stack) num-cols)) | ||||
|             (set! val (car stack)) | ||||
|             (set! stack (cdr stack)) | ||||
|             (set! selection-list | ||||
|                   (make-inspector-selection-list | ||||
|                    num-cols | ||||
|                                     num-lines))) | ||||
|    ((print-message? message) | ||||
|     (lambda (win result-buffer have-focus?) | ||||
|       (let* ((state (message-result-object message)) | ||||
|              (hdr (inspector-state-header state)) | ||||
|              (hdr-len (length hdr))) | ||||
|                    (- num-lines (length header)) | ||||
|                    val))))) | ||||
| 
 | ||||
|     (lambda (message) | ||||
|       (case message | ||||
|         ((paint) | ||||
|          (lambda (self win result-buffer have-focus?) | ||||
|            (let ((hdr-len (length header))) | ||||
|              (for-each (lambda (text y) | ||||
|                          (mvwaddstr win y 0 text)) | ||||
|                   hdr | ||||
|                        header | ||||
|                        (iota hdr-len)) | ||||
|         ((paint-selection-list-at | ||||
|           (inspector-state-selection-list state) | ||||
|           0 hdr-len) | ||||
|              (paint-selection-list-at | ||||
|               selection-list | ||||
|               0 hdr-len | ||||
|               win result-buffer have-focus?)))) | ||||
| 
 | ||||
|    ((key-pressed-message? message) | ||||
|     (let ((old-state (message-result-object message)) | ||||
|           (key (key-pressed-message-key message))) | ||||
|         ((key-press) | ||||
|          (lambda (self key control-x-pressed?) | ||||
|            (cond | ||||
|             ((= key down-key) | ||||
|         (inspect-next-continuation old-state)) | ||||
|              (inspect-next-continuation)) | ||||
|             ((= key up-key) | ||||
|         (inspector-state-pop-value old-state)) | ||||
|              (inspector-state-pop-value)) | ||||
|             (else | ||||
|         (let ((old-state (message-result-object message))) | ||||
|           (inspector-state-exchange-selection-list | ||||
|            old-state | ||||
|              (set! selection-list | ||||
|                    (select-list-handle-key-press | ||||
|             (inspector-state-selection-list old-state) | ||||
|             message))))))) | ||||
|                     selection-list key)))) | ||||
|            self)) | ||||
|          (else | ||||
|     (debug-message "did not handle message " message)))) | ||||
| 
 | ||||
| (define (inspect-next-continuation state) | ||||
|   (let ((val (inspector-state-val state))) | ||||
|     (if (continuation? val) | ||||
|         (inspector-state-push-value state (continuation-parent val)) | ||||
|         (inspector-state-exchange-header-msg | ||||
|          state | ||||
|          "Can't go down from a non-continuation.")))) | ||||
|          | ||||
| (define (error-receiver message) | ||||
|   (inspector-receiver message)) | ||||
| 
 | ||||
|           (error "did not handle message " message)))))) | ||||
| 
 | ||||
| (register-plugin!  | ||||
|  (make-view-plugin error-receiver exception-continuation?)) | ||||
| 
 | ||||
| (register-plugin!  | ||||
|  (make-view-plugin inspector-receiver inspector-state?)) | ||||
|  (make-view-plugin make-inspector exception-continuation?)) | ||||
|  |  | |||
|  | @ -30,22 +30,15 @@ | |||
|       processes) | ||||
|      num-lines))) | ||||
| 
 | ||||
| (define (make-pps-viewer) | ||||
|   (let ((processes #f) | ||||
| 	(select-list #f)) | ||||
| (define (make-pps-viewer processes buffer) | ||||
|   (let ((processes processes) | ||||
|         (select-list | ||||
|          (make-process-selection-list  | ||||
|           (result-buffer-num-cols buffer) | ||||
|           (result-buffer-num-lines buffer) | ||||
|           processes))) | ||||
|     (lambda (message) | ||||
|       (cond | ||||
| 
 | ||||
|        ((eq? message 'init) | ||||
| 	(lambda (self process-list buffer) | ||||
| 	  (let ((num-cols (result-buffer-num-cols buffer)) | ||||
| 		(num-lines (result-buffer-num-lines buffer))) | ||||
| 	    (set! processes process-list) | ||||
| 	    (set! select-list | ||||
| 		  (make-process-selection-list  | ||||
| 		   num-cols num-lines processes)) | ||||
| 	    self))) | ||||
| 
 | ||||
|        ((eq? message 'paint) | ||||
| 	(lambda (self . args) | ||||
| 	  (apply paint-selection-list | ||||
|  |  | |||
|  | @ -1,21 +1,12 @@ | |||
| (define (make-standard-viewer) | ||||
| (define (make-standard-viewer value buffer) | ||||
|   (let ((x 1) | ||||
| 	(y 1) | ||||
| 	(text "") | ||||
| 	(value #f)) | ||||
| 
 | ||||
|         (value value) | ||||
|         (text (layout-result-standard  | ||||
|                (exp->string value) | ||||
|                (result-buffer-num-cols buffer)))) | ||||
|     (lambda (message)       | ||||
|       (cond | ||||
| 
 | ||||
|        ((eq? message 'init) | ||||
| 	(lambda (self new-value buffer) | ||||
| 	  (set! value new-value) | ||||
| 	  (set! text | ||||
| 		(layout-result-standard  | ||||
| 		 (exp->string value) | ||||
| 		 (result-buffer-num-cols buffer))) | ||||
| 	  self)) | ||||
| 	   | ||||
|        ((eq? message 'paint) | ||||
| 	(lambda (self win buffer have-focus?) | ||||
| 	  ;; #### get rid of this cruft | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 mainzelm
						mainzelm