+
+(defgeneric container-show-recursive (container))
+
+(defmethod container-show-recursive ((container container))
+ "Recursively shows any child widgets except widgets explicit hidden during construction."
+ (labels ((recursive-show (widget)
+ (when (typep widget 'container)
+ (if (not (user-data-p widget 'show-recursive-p))
+ (container-foreach widget #'recursive-show)
+ (unset-user-data widget 'show-recursive-p)))
+ (unless (widget-hidden-p widget)
+ (widget-show widget))))
+ (container-foreach container #'recursive-show)))