get-values: make function! [ "Gets values from input widgets within a display or grouping widget." face [object!] "Display face" /type "Precede each value with its type" /local blk ] [ all [ find [scroll-panel tab-panel] face/type face: either block? face/pane [face: face/pane/1] [face/pane] ] blk: copy [] foreach widget face/pane [ if find [ area check check-group drop-list edit-list field group-box password radio-group scroll-panel slider tab-panel table text-list ] widget/type [ all [type insert tail blk widget/type] insert/only tail blk case [ find [area drop-list edit-list field password] widget/type [widget/text] find [check check-group slider] widget/type [widget/data] find [radio-group table text-list] widget/type [widget/picked] find [scroll-panel group-box tab-panel] widget/type [ either type [get-values/type widget] [get-values widget] ] ] ] ] blk ]