MCPcopy
hub / github.com/lxn/walk / attachModel

Method attachModel

combobox.go:326–354  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

324}
325
326func (cb *ComboBox) attachModel() {
327 itemsResetHandler := func() {
328 cb.resetItems()
329 }
330 cb.itemsResetHandlerHandle = cb.model.ItemsReset().Attach(itemsResetHandler)
331
332 itemChangedHandler := func(index int) {
333 if win.CB_ERR == cb.SendMessage(win.CB_DELETESTRING, uintptr(index), 0) {
334 newError("SendMessage(CB_DELETESTRING)")
335 }
336
337 cb.insertItemAt(index)
338
339 cb.SetCurrentIndex(cb.prevCurIndex)
340 }
341 cb.itemChangedHandlerHandle = cb.model.ItemChanged().Attach(itemChangedHandler)
342
343 cb.itemsInsertedHandlerHandle = cb.model.ItemsInserted().Attach(func(from, to int) {
344 for i := from; i <= to; i++ {
345 cb.insertItemAt(i)
346 }
347 })
348
349 cb.itemsRemovedHandlerHandle = cb.model.ItemsRemoved().Attach(func(from, to int) {
350 for i := to; i >= from; i-- {
351 cb.removeItem(i)
352 }
353 })
354}
355
356func (cb *ComboBox) detachModel() {
357 cb.model.ItemsReset().Detach(cb.itemsResetHandlerHandle)

Callers 1

SetModelMethod · 0.95

Calls 11

resetItemsMethod · 0.95
insertItemAtMethod · 0.95
SetCurrentIndexMethod · 0.95
removeItemMethod · 0.95
newErrorFunction · 0.85
ItemsResetMethod · 0.65
SendMessageMethod · 0.65
ItemChangedMethod · 0.65
ItemsInsertedMethod · 0.65
ItemsRemovedMethod · 0.65
AttachMethod · 0.45

Tested by

no test coverage detected