Add viewer for protocol-info
part of darcs patch Thu Sep 22 18:29:43 EEST 2005 Martin Gasbichler <gasbichl@informatik.uni-tuebingen.de>
This commit is contained in:
		
							parent
							
								
									16fa9cb6ad
								
							
						
					
					
						commit
						a00af6e57b
					
				|  | @ -70,3 +70,70 @@ | |||
| 
 | ||||
| (register-plugin! | ||||
|  (make-view-plugin make-service-info-viewer service-info?)) | ||||
| 
 | ||||
| (define (make-protocol-info-select-list pi num-lines) | ||||
|   (make-select-list | ||||
|    (append | ||||
|     (list | ||||
|      (make-unmarked-text-element  | ||||
|       (cons 'name (protocol-info:name pi)) | ||||
|       #t | ||||
|       (format #f "Name: ~a" (protocol-info:name pi))) | ||||
|      (make-unmarked-text-element  | ||||
|       (cons 'number (protocol-info:number pi)) | ||||
|       #t | ||||
|       (format #f "Number: ~a" (number->string  | ||||
|                              (protocol-info:number pi)))) | ||||
|      (make-unmarked-text-element | ||||
|       (cons 'text "") #f "Aliases:")) | ||||
|     (map (lambda (alias) | ||||
|            (make-unmarked-text-element | ||||
|             (cons 'alias alias) #t | ||||
|             (format #f "  ~a" alias))) | ||||
|          (protocol-info:aliases pi))) | ||||
|    num-lines)) | ||||
| 
 | ||||
| (define (make-protocol-info-viewer pi buffer) | ||||
|   (let ((pi pi) | ||||
|         (select-list  | ||||
|          (make-protocol-info-select-list  | ||||
|           pi (result-buffer-num-lines buffer)))) | ||||
|      | ||||
|     (define (prepare-selection-for-scheme-mode sel) | ||||
|       (format #f "(~a)" | ||||
|               (string-join  | ||||
|                (map write-to-string (map cdr sel))))) | ||||
|      | ||||
|     (define (prepare-selection-for-command-mode sel) | ||||
|       (string-join (map display-to-string (map cdr sel)))) | ||||
| 
 | ||||
|     (define (get-selection-as-text self for-scheme-mode? focus-object-table) | ||||
|       (paste-selection (select-list-get-selection select-list) | ||||
|                        (select-list-has-marks? select-list) | ||||
|                        for-scheme-mode?  | ||||
|                        (lambda (se) | ||||
|                          (write-to-string (cdr se))) | ||||
|                        (lambda (se) | ||||
|                          (display-to-string (cdr se))))) | ||||
|      | ||||
|     (lambda (message) | ||||
|       (case message | ||||
|         ((paint) | ||||
|          (lambda (self win buffer have-focus?) | ||||
|            (paint-selection-list-at select-list 1 1 win | ||||
|                                     (result-buffer-num-cols buffer) | ||||
|                                     have-focus?))) | ||||
|         ((key-press) | ||||
|          (lambda (self key control-x-pressed?) | ||||
|            (set! select-list | ||||
|                  (select-list-handle-key-press select-list key)) | ||||
|            self)) | ||||
|         ((get-selection-as-text) | ||||
|          get-selection-as-text) | ||||
|         ((get-selection-as-ref) | ||||
|          "UII get-selection-as-ref") | ||||
|         (else | ||||
|          (error "protocol-info-viewer unknown message" message)))))) | ||||
| 
 | ||||
| (register-plugin! | ||||
|  (make-view-plugin make-protocol-info-viewer protocol-info?)) | ||||
		Loading…
	
		Reference in New Issue
	
	 eknauel
						eknauel