fileviewer(Dir) :-
    new(F, frame('File Viewer')),
    send(F, append, new(B, browser)),
    send(new(D, dialog), below, B),
    send(D, append,
         button(view, message(@prolog, view,
                              B?selection?key))),
    send(D, append,
         button(quit, message(F, destroy))),
    send(B, members, directory(Dir)?files),
    send(F, open).

view(F) :-
    send(new(V, view(F)), open),
    send(V, load, F).
