append-widget: make function! [ "Append a custom widget to widgets context." spec [block!] "Widget spec" /local word ] [ ; Is widget word already in use? all [ find words word: to word! first spec gui-error reform [word "is already in use"] ] ; append widget to widgets context widgets: make widgets spec ; Is widget derived from another widget? all [ find words third spec widgets/:word/type: third spec ] ; register new widget insert tail words word ]