code: func (m *subMenu) Insert(pos int, i *MenuItem) (err error) {
  	if err = m.isActionable(); err != nil {
  		return
  	}
  	if pos > len(m.items) {
  		err = fmt.Errorf("Submenu has %d items, position %d is invalid", len(m.items), pos)
  		return
  	}
  	if _, err = synchronousEvent(m.c, m, m.w, Event{Name: EventNameSubMenuCmdInsert, TargetID: m.id, MenuItem: i.toEvent(), MenuItemPosition: PtrInt(pos)}, EventNameSubMenuEventInserted); err != nil {
  		return
  	}
  	m.items = append(m.items[:pos], append([]*MenuItem{i}, m.items[pos:]...)...)
  	return
  }
docs: // Insert inserts a menu item to the position of the sub menu