dynamically adding & removing widgets
Hazen Babcock <[email protected]> Wed, 4 Jul 2007 23:16:03 -0400
| Newsgroups | gmane.lisp.clg.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello,
I'd like to add/remove widgets from a dialog dynamically. I was
hoping something like this would work but it does not, i.e "button2"
is never displayed.
(defun dynamic-test ()
(let* ((dialog (make-instance 'dialog
:title "Dynamic Test"
:show-children t))
(button1 (make-instance 'button
:label "Button1"))
(button2 (make-instance 'button
:label "Button2"))
(v-box (make-instance 'v-box
:parent dialog
:show-children t
:border-width 5
:spacing 5
:child button1)))
(signal-connect button1 'clicked #'(lambda ()
(format t "Adding~%")
(container-add v-box button2)))
(signal-connect button2 'clicked #'(lambda ()
(format t "Removing~%")
(container-remove v-box button2)))
(dialog-add-button dialog
"gtk-close"
#'widget-destroy
:object t)
(dialog-run dialog)))
Suggestions? Do I need to force a redraw? I think this is possible
with gtk, but maybe not?
thanks,
-Hazen
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/