+ (setf *dimensions* dims)
+ (let
+ ((known-button-names nil))
+ (setf *widgets*
+ (mapcar
+ (lambda (button-def)
+ (let
+ ((idx (length (remove (getf button-def :display) known-button-names :test-not #'equal))))
+ (push (getf button-def :display) known-button-names)
+ (list
+ button-def
+ (clnl-gltk:button
+ (getf button-def :left)
+ (- *window-height* (getf button-def :height) (getf button-def :top))
+ (getf button-def :width)
+ (getf button-def :height)
+ (getf button-def :display)
+ (lambda ()
+ (execute
+ (format nil ":button \"~A\"~A"
+ (getf button-def :display)
+ (if (zerop idx) "" (format nil " ~A" idx)))))))))
+ buttons))))