--------------------------------------------------------------- --# GtkRecentFilter --------------------------------------------------------------- include GtkEngine.e include std/net/url.e constant docs = `Recent Filter This shows how to filter types of files displayed by the RecentChooser. I've limited it to the most recent 50.` constant win = create(GtkWindow,"size=300x300,border=10,position=1,$destroy=Quit") constant panel = create(GtkBox,"orientation=VERTICAL") add(win,panel) constant lbl = create(GtkLabel,{{"markup",docs}}) add(panel,lbl) constant rf1 = create(GtkRecentFilter, -- filter by extension "name=Euphoria,add pattern=*.ex,add pattern=*.e") constant rf2 = create(GtkRecentFilter, -- filter by format "name=images,add pixbuf formats=TRUE") constant rf3 = create(GtkRecentFilter, -- filter by mime type "name=html,add mime type=text/html") constant rf4 = create(GtkRecentFilter, -- filter by app "name=pdf,add mime type=application/pdf") constant rf5 = create(GtkRecentFilter, -- wildcard filter "name=all files,add pattern=*") constant rc = create(GtkRecentChooserWidget,{ {"show tips",TRUE}, -- display filepath in tooltips {"show not found",FALSE}, {"sort type",GTK_RECENT_SORT_MRU}, -- sort most-recently-used first {"add filter",rf1}, {"add filter",rf2}, {"add filter",rf3}, {"add filter",rf4}, {"add filter",rf5}, {"limit",50}}) pack(panel,rc,TRUE,TRUE,10) constant btnbox = create(GtkButtonBox) pack(panel,-btnbox) constant btn1 = create(GtkButton,"gtk-quit","Quit") constant btn2 = create(GtkButton,"gtk-ok","getFile") add(btnbox,{btn1,btn2}) show_all(win) main() --------------------------------- global function getFile() --------------------------------- object info = get(rc,"current item") if info = 0 then return 1 end if object icon = get(info,"gicon") object name = get(info,"uri") name = url:decode(name) if match("file://",name) then name = name[9..$] end if if not file_exists(name) then Error(win,,"File not found",name,,GTK_BUTTONS_OK) else if Question(win,"Selected Item",name) = MB_YES then ifdef WINDOWS then system(sprintf("explorer %s",{abbreviate_path(name)}),0) return 1 end ifdef show_uri(name) end if end if return 1 end function