So! Ist eingebaut & funktioniert einwandfrei.
Danke nochmals für den Tip & Dank an Omi für den Code.
Da ich ja für mein Projekt das ListIconGadget verwende, hab ich bei chabba.de auch den entsprechenden angepassten Code genommen.
Code: Alles auswählen
; 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