(item TreeItem)
| 439 | } |
| 440 | |
| 441 | func (tv *TreeView) removeItem(item TreeItem) error { |
| 442 | if err := tv.removeDescendants(item); err != nil { |
| 443 | return err |
| 444 | } |
| 445 | |
| 446 | info := tv.item2Info[item] |
| 447 | if info == nil { |
| 448 | return newError("invalid item") |
| 449 | } |
| 450 | |
| 451 | if 0 == tv.SendMessage(win.TVM_DELETEITEM, 0, uintptr(info.handle)) { |
| 452 | return newError("SendMessage(TVM_DELETEITEM) failed") |
| 453 | } |
| 454 | |
| 455 | if parentInfo := tv.item2Info[item.Parent()]; parentInfo != nil { |
| 456 | delete(parentInfo.child2Handle, item) |
| 457 | } |
| 458 | delete(tv.item2Info, item) |
| 459 | delete(tv.handle2Item, info.handle) |
| 460 | |
| 461 | return nil |
| 462 | } |
| 463 | |
| 464 | func (tv *TreeView) removeDescendants(parent TreeItem) error { |
| 465 | for item, _ := range tv.item2Info[parent].child2Handle { |
no test coverage detected