Sorry the previous one I sent had a small error I didn't have the inner layout manager with the correct parent so here it is again:
(in-package #:graphic-forms.uitoolkit.tests)
(defclass fruit-events (gfw:event-dispatcher) ())
(defmethod gfw:event-close ((disp fruit-events) (dlg gfw:dialog)) (call-next-method) (let ((ownerp (gfw:owner dlg))) (gfs:dispose dlg) (unless ownerp (gfw:shutdown 0))))
(defun move-txt-content (txt lb) (gfw:append-item lb (truncate-text (gfw:text txt )) nil nil) (setf (gfw:text txt) "") (gfw:give-focus txt))
(defun remove-item ( lb txt ) (gfw:delete-selection lb) (gfw:give-focus txt)) ;
(defun fruit-dlg (title style parent) (let* ((dlg (make-instance 'gfw:dialog :owner parent :dispatcher (make-instance 'fruit-events) :layout (make-instance 'gfw:flow-layout :margins 8 :spacing 8 :style '(:vertical)) :style style :text title)) (edit-disp (make-instance 'edit-control-events)) (top-panel (make-instance 'gfw:panel :layout (make-instance 'gfw:flow-layout :spacing 4 :style '(:vertical)) :parent dlg)) (inner-panel (make-instance 'gfw:panel :layout (make-instance 'gfw:flow-layout :spacing 4 :style '(:horizontal)) :parent top-panel)) (fruit-label (make-instance 'gfw:label :text "Fruit:" :parent inner-panel)) (fruit-edit (make-instance 'gfw:edit :text "fffffffffffffffffffffffffffffff" :parent inner-panel)) (fruit-list (make-instance 'gfw:list-box ; :callback (fruit-list-callback) :parent top-panel)) (btn-panel (make-instance 'gfw:panel :layout (make-instance 'gfw:flow-layout :spacing 4 :style '(:horizontal :normalize)) :parent dlg)) (btn-add-callback (lambda (disp btn) (declare (ignore disp btn)) (move-txt-content fruit-edit fruit-list ))) (btn-add (make-instance 'gfw:button :callback btn-add-callback :style '(:default-button) :text "Add" :parent btn-panel)) (btn-remove-callback (lambda (disp btn) (declare (ignore disp btn)) (remove-item fruit-list fruit-edit))) (btn-remove (make-instance 'gfw:button :callback btn-remove-callback :style '(:default-button) :text "Remove" :parent btn-panel)) (btn-exit (make-instance 'gfw:button :callback (lambda (disp btn) (declare (ignore disp btn)) (let ((ownerp (gfw:owner dlg))) (gfs:dispose dlg) (unless ownerp (gfw:shutdown 0)))) :style '(:cancel-button) :text "Exit" :parent btn-panel)))
(declare (ignore fruit-label btn-add btn-remove btn-exit)) (setf (gfw:minimum-size fruit-list) (gfs:make-size :width 300 :height 77)) (setf (gfw:minimum-size dlg) (gfs:make-size :width 400 :height 300 )) (setf (gfw:minimum-size fruit-label) (gfs:make-size :width 50 :height 23)) (setf (gfw:minimum-size fruit-edit) (gfs:make-size :width 120 :height 23)) (setf (gfw:minimum-size fruit-list) (gfs:make-size :width 300 :height 77))
(gfw:pack dlg)
(setf (gfw:text fruit-edit) "") (gfw:show dlg t) dlg))
(defun fruit-basket-main () (fruit-dlg "Lisp Fruit basket demo" '(:appli) nil) )
(defun fruitbasket () (gfw:startup "Window/Dialog Tester" #'fruit-basket-main))