; Module/File: LIG_SearchNative.pb ; Function: Native Search in LIG-column - Linux ; Author: Omi ; Date: Dec. 09, 2014 ; Version: 0.3; path_free, PeekS(*key, -1, #PB_UTF8) ; Target Compiler: PureBasic 5.22/5.31/5.40 ; Target OS: Linux: (X/K/L)ubuntu, Mint, 32/64, Ascii/Uni ;-------------------------------------------------------------- EnableExplicit ; Object constants #MainWin= 0 #LIG= 0 #Txt= 1 #WinX= 200 #WinY= 200 #WinW= 500 #WinH= 400 Global.i gEvent, gQuit Global.s Dim Zeile(20) ProcedureC Callback_SearchInTreeView(*model, column, *key, iter, *search_data) ; every path (line) which partially agrees in systemsearch is sent to this function ; on every change of editfield Protected.i I, Found= #True Protected.l Indices Protected path Protected.s Search= PeekS(*key, -1, #PB_UTF8); current search-string in UTF8-Format path = gtk_tree_model_get_path_(*model, iter); get path from iter, Indices= PeekL(gtk_tree_path_get_indices_(path)); then index (LIG-line) from path If FindString(GetGadgetItemText(#LIG, Indices, column), Search, 1, #PB_String_NoCase); own check to verify the suggestion Found= #False EndIf gtk_tree_path_free_(path); forgot it till V0.2 ProcedureReturn Found; #False = Ok ! EndProcedure Procedure CreateWindow_Main() Protected.i I, O If OpenWindow(#MainWin, #WinX, #WinY, #WinW, #WinH, "native Search in LIG", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) ListIconGadget(#LIG, 5, 30, 480, 355, "column 1", 100, #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_GridLines) TextGadget(#Txt, 5, 5, 300, 20, "select row and type the search item ...") For O= 1 To 2 AddGadgetColumn(#LIG, O, "column "+Str(O+ 1), 100) Next O Restore Surnames For I= 0 To 20 Read.s Zeile(I) Next I SortArray(Zeile(), #PB_Sort_NoCase) For I= 0 To 20 AddGadgetItem(#LIG, -1, Zeile(I)) Next I ;gtk_tree_view_set_enable_search_(GadgetID(#LIG), #True); must be ON gtk_tree_view_set_search_column_(GadgetID(#LIG), 0); set column 0 for search gtk_tree_view_set_search_equal_func_(GadgetID(#LIG), @Callback_SearchInTreeView(), #Null, 0); set function for verification EndIf EndProcedure CreateWindow_Main() Repeat gEvent= WaitWindowEvent() Select gEvent Case #PB_Event_CloseWindow gQuit= #True EndSelect Until gQuit End DataSection Surnames: Data.s "Bauer", "Müller", "Meier", "Maier", "Huber", "Schmidt", "Schreiner", "Taler", "Bach", "Binder", "Hofer", "Schneider", "Bader", "Berger", "Klein", "Groß", "Kaiser", "König", "Graf", "Weber", "Zauner" EndDataSection ; IDE Options = PureBasic 5.40 LTS Beta 9 (Linux - x86) ; CursorPosition = 8 ; Folding = - ; EnableUnicode ; EnableXP ; CurrentDirectory = /home/charly-xubuntu/Programming/PureBasic/purebasic/