Lisp Toolkit
![Abbozzo](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0e/Puzzle_stub.svg/45px-Puzzle_stub.svg.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/LTK_example.png/350px-LTK_example.png)
LTK è acronimo di Lisp Toolkit, una libreria per la creazione di interfacce grafiche multipiattaforma scritte in Common LISP.
Funzionamento
LTK contiene una serie di funzioni e di classi che convertono i comandi impartiti in Lisp in stringhe nel linguaggio di programmazione Tcl/Tk. Queste stringhe vengono inviate tramite uno stream bidirezionale all'apposito interprete wish (che deve essere installato sulla macchina), che elabora i comandi presenti nelle stringhe e si occupa della creazione delle finestre e dei widget.
Programmi di esempio
Caricamento di LTK
Prima di poter essere utilizzata, la libreria deve essere caricata dell'implementazione Common Lisp presente nel sistema. Per fare ciò conviene prima compilarla
(compile-file "ltk") ;; Compila la libreria
in modo che sia più rapidamente caricabile e utilizzabile in futuro tramite i comandi
(load "ltk") ;; Carica (in-package :ltk) ;; Entra nel package di LTK
Esempi contenuti in LTK
La libreria contiene già due esempi
(ltktest) ;; Esempio di finestra con vari pulsanti, menu, popup, ecc. (ltk-eyes) ;; Occhi che seguono il puntatore del mouse.
Creazione dell'interfaccia
Questa funzione crea una finestra e al suo interno un pulsante (b, istanza della classe button) con la scritta "Premi qui", che stampa in output la scritta "Hello world!".
(defun hello() (with-ltk () (let ((b (make-instance 'button :master nil :text "Premi qui" :command (lambda () (format t "Hello World!~&"))))) (pack b))))
Stato di sviluppo
LTK è in fase di sviluppo e non tutti i widget forniti da Tcl/Tk sono supportati. Ci sono anche alcuni problemi nella comunicazione con l'interprete wish in Microsoft Windows.
Collegamenti esterni
- (EN) Homepage del progetto, su peter-herth.de.
- Screenshots, su peter-herth.de.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Computer_n_screen.svg/24px-Computer_n_screen.svg.png)