------------------------------------------------------------------------- --# GtkRecentChooser ------------------------------------------------------------------------- include GtkEngine.e include std/net/url.e constant win = create(GtkWindow,"size=300x100,border_width=10,position=1,$destroy=Quit") constant panel = create(GtkBox,VERTICAL) add(win,panel) constant lbl = create(GtkLabel, "markup='RecentChooserDialog\nClick OK to start',margin top=10") add(panel,lbl) constant box = create(GtkButtonBox) pack(panel,-box) add(box,{ create(GtkButton,"gtk-quit","Quit"), create(GtkButton,"gtk-ok","Foo")}) show_all(win) main() --------------------------------------------------- global function Foo() --------------------------------------------------- object rc_dlg = create(GtkRecentChooserDialog,"Recent Files",win) set(rc_dlg,{ {"title","Recent files"}, {"add button","gtk-cancel", MB_CANCEL}, {"add button","gtk-open", MB_ACCEPT}, {"default size",300,300}, {"show not found",TRUE}, -- don't know the conditions in which this works {"limit",10}, -- max number of items to display {"show tips",TRUE}, -- shows tooltip with full path to file {"local only",TRUE}, -- don't show networked files {"select multiple",FALSE}, -- if true, allow selecting more than one {"show icons",TRUE}, -- show file-type icons beside names {"sort type",GTK_RECENT_SORT_MRU}}) object filename if get(rc_dlg,"run") = MB_ACCEPT then filename = get(rc_dlg,"current uri") if sequence(filename) then if file_exists(canonical_path(filename[8..$])) then filename = url:decode(filename) -- in case url is encoded display(filename) -- on terminal show_uri(filename) -- use default app. else Warn(win,,filebase(filename),"has been deleted") end if end if end if set(rc_dlg,"destroy") return 1 end function