func (r *roster) getAccountAndJidFromEvent(bt *gdk.EventButton) (jid string, account *account, rowType string, ok bool) { x := bt.X() y := bt.Y() path := new(gtk.TreePath) found := r.view.GetPathAtPos(int(x), int(y), path, nil, nil, nil) if !found { return "", nil, "", false } iter, err := r.model.GetIter(path) if err != nil { return "", nil, "", false } jid = getFromModelIter(r.model, iter, indexJid) accountID := getFromModelIter(r.model, iter, indexAccountID) rowType = getFromModelIter(r.model, iter, indexRowType) account, ok = r.getAccount(accountID) return jid, account, rowType, ok }
func buttonCallback(area *gtk.DrawingArea, event *gdk.Event, v DrawAreaClient) { ev := gdk.EventButton{event} pos := image.Point{int(ev.X()), int(ev.Y())} v.ButtonCallback(DrawArea{area, 0, 0, 0, 0}, ev.Type(), pos) }