code: func (v *TreeModelFilter) SetVisibleFunc(f TreeModelFilterVisibleFunc, userData ...interface{}) error {
  	if len(userData) > 1 {
  		return errors.New("userData len must be 0 or 1")
  	}
  
  	t := treeModelFilterVisibleFuncData{fn: f}
  	if len(userData) > 0 {
  		t.userData = userData[0]
  	}
  	treeModelVisibleFilterFuncRegistry.Lock()
  	id := treeModelVisibleFilterFuncRegistry.next
  	treeModelVisibleFilterFuncRegistry.next++
  	treeModelVisibleFilterFuncRegistry.m[id] = t
  	treeModelVisibleFilterFuncRegistry.Unlock()
  
  	C._gtk_tree_model_filter_set_visible_func(v.native(), C.gpointer(uintptr(id)))
  	return nil
  }
docs: // SetVisibleFunc is a wrapper around gtk_tree_model_filter_set_visible_func().