Esempio n. 1
0
        private void reassignKeyButton_Click(object sender, EventArgs e)
        {
            var selectedFeature = featureList.SelectedItem as FeatureSelection;

            if (selectedFeature == null)
            {
                return;
            }
            using (var keyAssignDialog = new ButtonAssignment(true))
            {
                keyAssignDialog.StartPosition = FormStartPosition.CenterParent;
                keyAssignDialog.ShowDialog(this);
                var existing = KeyBindings.FirstOrDefault(b => b.Binding == (int)keyAssignDialog.KeyboardInput && b.Feature != (int)selectedFeature.Feature);
                if (keyAssignDialog.KeyboardInput != Keys.None && existing.Binding == (int)keyAssignDialog.KeyboardInput)
                {
                    MessageBox.Show(string.Format("This shortcut is already assigned to '{0}'", FeatureSelection.GetFeatureName((Feature)existing.Feature)),
                                    "Keyboard shortcuts", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    KeyBindings[selectedFeature.Feature] = keyAssignDialog.KeyboardInput;
                }
            }
            UpdateKeyboardShortcut();
        }
Esempio n. 2
0
        private void UpdateKeyboardShortcut()
        {
            var selectedFeature = featureList.SelectedItem as FeatureSelection;

            if (selectedFeature == null)
            {
                return;
            }
            var keys = KeyBindings[selectedFeature.Feature];

            if (keys == Keys.None)
            {
                shortcutText.Text = "";
            }
            else
            {
                /*var keyString = new StringBuilder();
                 * if (keys.HasFlag(Keys.Control)) keyString.Append("Ctrl+");
                 * if (keys.HasFlag(Keys.Alt)) keyString.Append("Alt+");
                 * if (keys.HasFlag(Keys.Shift)) keyString.Append("Shift+");
                 * keyString.Append((keys & Keys.KeyCode).ToString());
                 * shortcutText.Text = keyString.ToString();*/

                shortcutText.Text = ButtonAssignment.GetString(keys);
            }
        }
Esempio n. 3
0
        public void SetMappings(List <KeyboardMapping> mappings)
        {
            Mappings = mappings;
            SuspendLayout();
            Controls.Clear();
            foreach (var mapping in mappings)
            {
                var panel = new Panel();
                panel.Dock   = DockStyle.Top;
                panel.Height = 25;

                var button = new Button();
                button.Text = mapping.Name;
                button.Size = new System.Drawing.Size(75, 23);
                button.UseVisualStyleBackColor = true;

                panel.Controls.Add(button);

                var label = new Label();
                label.Location = new System.Drawing.Point(80, 5);
                label.Text     = mapping.MappedToName ?? NesEmulatorHandler.GetInputName(mapping.MappedTo);

                panel.Controls.Add(label);
                button.Click += (s, a) =>
                {
                    using (var keyAssignDialog = new ButtonAssignment(false))
                    {
                        keyAssignDialog.StartPosition = FormStartPosition.CenterParent;
                        keyAssignDialog.ShowDialog(this);
                        mapping.MappedTo     = keyAssignDialog.KeyCode;
                        mapping.MappedToName = keyAssignDialog.ButtonName;
                    }
                    label.Text = mapping.MappedToName ?? NesEmulatorHandler.GetInputName(mapping.MappedTo);
                    SelectNextControl(button, true, false, true, true);
                };

                Controls.Add(panel);
                Controls.SetChildIndex(panel, 0);
            }
            ResumeLayout();
        }