int32_t PListViewRemoveItem(void *pobject, void *in, void *out, void *extraData) { if (!pobject || !in || !out) return B_ERROR; PView *parent = static_cast<PView*>(pobject); if (!parent) return B_BAD_TYPE; BListView *backend = (BListView*)parent->GetView(); PArgs *args = static_cast<PArgs*>(in), *outArgs = static_cast<PArgs*>(out); int32 index; if (args->FindInt32("index", &index) != B_OK) return B_ERROR; if (backend->Window()) backend->Window()->Lock(); bool outValue = backend->RemoveItems(index, 1); if (backend->Window()) backend->Window()->Unlock(); outArgs->MakeEmpty(); outArgs->AddBool("value", outValue); return B_OK; }