Exemplo n.º 1
0
        private bool RetrieveAppendConfigs(ref OutputConfig zOutputConfig, RemapEntry zRemapEntry)
        {
            var zCurrentOutputConfig = (OutputConfig)txtKeyOut.Tag;

            if (null == zCurrentOutputConfig)
            {
                MessageBox.Show(this, "Please specify an output key.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            if (zRemapEntry.OutputConfigCount == KeyCapConstants.MaxOutputs)
            {
                MessageBox.Show(this, "Failed to append item. The maximum number of outputs allowed is {0}.".FormatString(KeyCapConstants.MaxOutputs),
                                "Append Error!",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }

            zOutputConfig = UpdateOutputFlags(new OutputConfig(zCurrentOutputConfig));
            if (!ValidateOutputHasAction(zOutputConfig))
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 2
0
        private bool RetrieveAddConfigs(ref InputConfig zInputConfig, ref OutputConfig zOutputConfig, ref RemapEntry zRemapEntry)
        {
            var zCurrentInputConfig  = (InputConfig)txtKeyIn.Tag;
            var zCurrentOutputConfig = (OutputConfig)txtKeyOut.Tag;

            if (null == zCurrentInputConfig || null == zCurrentOutputConfig)
            {
                MessageBox.Show(this, "Please specify both an input and output key.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            // build cloned configs based on the ui state
            zInputConfig  = UpdateInputFlags(new InputConfig(zCurrentInputConfig));
            zOutputConfig = UpdateOutputFlags(new OutputConfig(zCurrentOutputConfig));

            if (!ValidateOutputHasAction(zOutputConfig))
            {
                return(false);
            }

            zRemapEntry = new RemapEntry(zInputConfig, zOutputConfig);

            // flip this result for indicator of a good remap entry
            return(!IsInputAlreadyDefined(zRemapEntry));
        }
Exemplo n.º 3
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            InputConfig  zInputConfig  = null;
            OutputConfig zOutputConfig = null;
            RemapEntry   zRemapEntry   = null;

            if (!RetrieveAddConfigs(ref zInputConfig, ref zOutputConfig, ref zRemapEntry))
            {
                return;
            }
            AddRemapEntryToListView(zRemapEntry, true);
        }
Exemplo n.º 4
0
        private bool IsInputAlreadyDefined(RemapEntry zNewRemapEntry)
        {
            // verify this is not already defined
            foreach (ListViewItem zListItem in listViewKeys.Items)
            {
                var zKeyOldDef = (RemapEntry)zListItem.Tag;
                if (zNewRemapEntry.GetHashCode() != zKeyOldDef.GetHashCode())
                {
                    continue;
                }

                MessageBox.Show(this, "Duplicate inputs are not allowed!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(true);
            }

            return(false);
        }
Exemplo n.º 5
0
        private void btnAddOutputString_Click(object sender, EventArgs e)
        {
            const string MACRO_STRING_KEY = "macro_string_key";
            var          zQuery           = new QueryPanelDialog("Enter String Macro", 400, false);

            zQuery.SetIcon(this.Icon);
            zQuery.AddTextBox("String", string.Empty, false, MACRO_STRING_KEY);
            if (DialogResult.OK != zQuery.ShowDialog(this))
            {
                return;
            }
            var sMacro = zQuery.GetString(MACRO_STRING_KEY);

            if (string.IsNullOrWhiteSpace(sMacro))
            {
                MessageBox.Show(this, "Please specify a string of output characters.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            var zCurrentInputConfig = (InputConfig)txtKeyIn.Tag;

            if (null == zCurrentInputConfig)
            {
                ShowKeysNotDefinedError();
                return;
            }

            try
            {
                var zRemapEntry = new RemapEntry(zCurrentInputConfig, CreateOutputConfigFromCharacter(sMacro[0]));
                for (var nIdx = 1; nIdx < sMacro.Length; nIdx++)
                {
                    zRemapEntry.AppendOutputConfig(CreateOutputConfigFromCharacter(sMacro[nIdx]));
                }
                if (!IsInputAlreadyDefined(zRemapEntry))
                {
                    AddRemapEntryToListView(zRemapEntry, true);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, "Unfortunately you have specified an unsupported character (at this time)." + ex.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 6
0
        private void AddRemapEntryToListView(RemapEntry zRemapEntry, bool bMarkDirty)
        {
            var zItem = new ListViewItem(new string[]
            {
                zRemapEntry.GetInputString(),
                zRemapEntry.GetOutputString()
            })
            {
                Tag         = zRemapEntry,
                ToolTipText = zRemapEntry.GetOutputString()
            };

            listViewKeys.Items.Add(zItem);
            listViewKeys.SelectedItems.Clear();
            zItem.Selected = true;
            if (bMarkDirty)
            {
                MarkDirty();
            }
        }
Exemplo n.º 7
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            InputConfig  zInputConfig  = null;
            OutputConfig zOutputConfig = null;
            RemapEntry   zRemapEntry   = null;

            if (!RetrieveAddConfigs(ref zInputConfig, ref zOutputConfig, ref zRemapEntry))
            {
                return;
            }

            var zItem = new ListViewItem(new string[] {
                zRemapEntry.GetInputString(),
                zRemapEntry.GetOutputString()
            });

            zItem.Tag = zRemapEntry;
            listViewKeys.Items.Add(zItem);
            listViewKeys.SelectedItems.Clear();
            zItem.Selected = true;
            MarkDirty();
        }
Exemplo n.º 8
0
        private bool RetrieveAddConfigs(ref InputConfig zInputConfig, ref OutputConfig zOutputConfig, ref RemapEntry zRemapEntry)
        {
            var zCurrentInputConfig  = (InputConfig)txtKeyIn.Tag;
            var zCurrentOutputConfig = (OutputConfig)txtKeyOut.Tag;

            if (null == zCurrentInputConfig || null == zCurrentOutputConfig)
            {
                MessageBox.Show(this, "Please specify both an input and output key.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            // build cloned configs based on the ui state
            zInputConfig  = UpdateInputFlags(new InputConfig(zCurrentInputConfig));
            zOutputConfig = UpdateOutputFlags(new OutputConfig(zCurrentOutputConfig));

            if (!ValidateOutputHasAction(zOutputConfig))
            {
                return(false);
            }

            zRemapEntry = new RemapEntry(zInputConfig, zOutputConfig);

            // verify this is not already defined
            foreach (ListViewItem zListItem in listViewKeys.Items)
            {
                var zKeyOldDef = (RemapEntry)zListItem.Tag;
                if (zRemapEntry.GetHashCode() != zKeyOldDef.GetHashCode())
                {
                    continue;
                }

                MessageBox.Show(this, "Duplicate inputs are not allowed!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(false);
            }

            return(true);
        }