func goTreeModelFilterFuncs(filter *C.GtkTreeModelFilter, iter *C.GtkTreeIter, data C.gpointer) C.gboolean {
	id := int(uintptr(data))

	treeModelVisibleFilterFuncRegistry.Lock()
	r := treeModelVisibleFilterFuncRegistry.m[id]
	treeModelVisibleFilterFuncRegistry.Unlock()

	goIter := &TreeIter{(C.GtkTreeIter)(*iter)}
	return gbool(r.fn(
		wrapTreeModelFilter(glib.Take(unsafe.Pointer(filter))),
		goIter,
		r.userData))
}
func goTreeModelFilterFuncs(filter *C.GtkTreeModelFilter, iter *C.GtkTreeIter, data C.gpointer) C.gboolean {
	id := int(uintptr(data))

	treeModelVisibleFilterFuncRegistry.Lock()
	r := treeModelVisibleFilterFuncRegistry.m[id]
	treeModelVisibleFilterFuncRegistry.Unlock()

	goIter := &TreeIter{(C.GtkTreeIter)(*iter)}
	return gbool(r.fn(
		wrapTreeModelFilter(glib.Take(unsafe.Pointer(filter))),
		goIter,
		r.userData))
}
func goTreeModelFilterFuncs ( filter * C . GtkTreeModelFilter , iter * C . GtkTreeIter , data C . gpointer ) C . gboolean { id := int ( uintptr ( data ) ) treeModelVisibleFilterFuncRegistry . Lock ( ) r := treeModelVisibleFilterFuncRegistry . m [ id ] treeModelVisibleFilterFuncRegistry . Unlock ( ) goIter := & TreeIter { ( C . GtkTreeIter ) ( * iter ) } return gbool ( r . fn ( wrapTreeModelFilter ( glib . Take ( unsafe . Pointer ( filter ) ) ) , goIter , r . userData ) ) }
//export goTreeModelFilterFuncs
export goTreeModelFilterFuncs