def layout_from(widget):
    """
    redo layout of all widgets up the parent tree from this widget. 
    Stop when we get to a frame. This was taken from a wx wiki post
    """
    while widget.GetParent():
        widget = widget.GetParent()
        widget.Layout()
        if widget.IsTopLevel():
            break
