--------------------------------------------------------------- --# GtkSearchEntry --------------------------------------------------------------- include GtkEngine.e requires("3.6","GtkSearchEntry") constant docs = `Search Entry ` constant win = create(GtkWindow,{ {"border width",20}, {"position",GTK_WIN_POS_CENTER}, {"default size",300,200}, {"signal","destroy","Quit"}}) constant panel = add(win,create(GtkBox,VERTICAL)) constant lbl = add(panel,create(GtkLabel,{{"markup",docs}})) constant se = add(panel,create(GtkSearchEntry,{ {"placeholder text","Type search term here"}})) constant btn1 = create(GtkButton,"gtk-quit","Quit") constant btn2 = create(GtkButton,"search#_Search","StartSearch") constant btn3 = create(GtkButton,"gtk-about","About") constant box = create(GtkButtonBox) pack(panel,-box) add(box,{btn1,btn2,btn3}) show_all(win) set(btn3,"grab focus") -- so that placeholder text will appear; main() ------------------------------- global function StartSearch() ------------------------------- Info(win,, sprintf("Search for %s",{get(se,"text")}), "Not really :)\nThere's no text to search!") return 1 end function ------------------------------ global function About() ------------------------------ Info(,"About", "GtkSearchEntry", `A subclass of GtkEntry that has been tailored for use as a search entry. It will show an inactive symbolic "find" icon when the search entry is empty, and a symbolic "clear" icon when there is text. Clicking on the "clear" icon will empty the search entry. Note that the search/clear icon is shown using a secondary icon, and thus does not work if you are using the secondary icon position for some other purpose. To make filtering appear more reactive, it is a good idea to not react to every change in the entry text immediately, but only after a short delay. To support this, GtkSearchEntry emits the "search-changed" signal which can be used instead of the "changed" signal. The "previous-match", "next-match" and "stop-search" signals can be uesd to implement moving between search results and ending the search. Often, GtkSearchEntry will be fed events by means of being placed inside a GtkSearchBar. If that is not the case, you can use gtk_search_entry_handle_event() to pass events.`) return 1 end function