// contact Menu Window Navigation input handler func contactsWindowNavigation(contactsMenuWin *gc.Window, contactMenu *gc.Menu) int { var c gc.Char var rawInput gc.Key for { gc.Update() rawInput = contactsMenuWin.GetChar() c = gc.Char(rawInput) if rawInput == gc.KEY_TAB || rawInput == gc.KEY_RETURN { return 0 } else if c == gc.Char(27) { return 1 } else if c == gc.Char('j') || rawInput == gc.KEY_DOWN { contactMenu.Driver(gc.REQ_DOWN) changeContact(contactsMenuWin, contactMenu) } else if c == gc.Char('k') || rawInput == gc.KEY_UP { contactMenu.Driver(gc.REQ_UP) changeContact(contactsMenuWin, contactMenu) } else if c == gc.Char('g') { contactMenu.Driver(gc.REQ_FIRST) changeContact(contactsMenuWin, contactMenu) } else if c == gc.Char('G') { contactMenu.Driver(gc.REQ_LAST) changeContact(contactsMenuWin, contactMenu) } else { continue } } }