private void OnAddControlScheme(object position)
        {
            var uniqueName = MakeUniqueControlSchemeName("New control scheme");

            ControlSchemePropertiesPopup.Show((Rect)position,
                                              new InputControlScheme(uniqueName),
                                              (s, _) => AddAndSelectControlScheme(s));
        }
        private void OnEditSelectedControlScheme(object position)
        {
            Debug.Assert(m_SelectedControlSchemeIndex >= 0, "Control scheme must be selected");

            ControlSchemePropertiesPopup.Show((Rect)position,
                                              m_ControlSchemes[m_SelectedControlSchemeIndex],
                                              UpdateControlScheme,
                                              m_SelectedControlSchemeIndex);
        }
        ////REVIEW: this does nothing to bindings; should this ask to duplicate bindings as well?
        private void OnDuplicateControlScheme(object position)
        {
            Debug.Assert(m_SelectedControlSchemeIndex >= 0, "Control scheme must be selected");

            var scheme = m_ControlSchemes[m_SelectedControlSchemeIndex];

            scheme = new InputControlScheme(MakeUniqueControlSchemeName(scheme.name),
                                            devices: scheme.deviceRequirements);

            ControlSchemePropertiesPopup.Show((Rect)position, scheme,
                                              (s, _) => AddAndSelectControlScheme(s));
        }