private void PopulateComboBoxes()
        {
            try
            {
                BipFactory.SetAllDark();
                ComboBoxPosition.SelectionChanged -= ComboBox_OnSelectionChanged;
                ComboBoxPosition.Items.Clear();
                foreach (BIPLedPositionEnum position in Enum.GetValues(typeof(BIPLedPositionEnum)))
                {
                    var comboBoxItem = new ComboBoxItem();
                    comboBoxItem.Content = position;
                    ComboBoxPosition.Items.Add(comboBoxItem);
                }

                ComboBoxDelay.SelectionChanged -= ComboBox_OnSelectionChanged;
                ComboBoxDelay.Items.Clear();
                foreach (BIPLightDelays delay in Enum.GetValues(typeof(BIPLightDelays)))
                {
                    var comboBoxItem = new ComboBoxItem();
                    comboBoxItem.Content = delay;
                    ComboBoxDelay.Items.Add(comboBoxItem);
                    ComboBoxDelay.SelectedValue = BIPLightDelays.Zeroms;
                }

                ComboBoxColor.SelectionChanged -= ComboBox_OnSelectionChanged;
                ComboBoxColor.Items.Clear();
                foreach (PanelLEDColor color in Enum.GetValues(typeof(PanelLEDColor)))
                {
                    var comboBoxItem = new ComboBoxItem();
                    comboBoxItem.Content = color;
                    ComboBoxColor.Items.Add(comboBoxItem);
                }
                ComboBoxColor.SelectedValue = PanelLEDColor.GREEN;

                ComboBoxBIPPanel.SelectionChanged -= ComboBox_OnSelectionChanged;
                ComboBoxBIPPanel.Items.Clear();
                foreach (BacklitPanelBIP bip in BipFactory.GetBips())
                {
                    var comboBoxItem = new ComboBoxItem();
                    comboBoxItem.Content = bip.Hash;
                    ComboBoxBIPPanel.Items.Add(comboBoxItem);
                }

                if (_bipLight != null)
                {
                    ComboBoxPosition.SelectedValue = _bipLight.BIPLedPosition;
                    ComboBoxDelay.SelectedValue    = _bipLight.DelayBefore;
                    ComboBoxColor.SelectedValue    = _bipLight.LEDColor;
                    ComboBoxBIPPanel.SelectedValue = _bipLight.Hash;
                }
                ShowLED();
            }
            finally
            {
                ComboBoxPosition.SelectionChanged += ComboBox_OnSelectionChanged;
                ComboBoxDelay.SelectionChanged    += ComboBox_OnSelectionChanged;
                ComboBoxColor.SelectionChanged    += ComboBox_OnSelectionChanged;
                ComboBoxBIPPanel.SelectionChanged += ComboBox_OnSelectionChanged;
            }
        }
 private void ComboBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         BipFactory.SetAllDark();
         if (string.IsNullOrEmpty(ComboBoxPosition.Text) || ComboBoxPosition.SelectedIndex == -1)
         {
             return;
         }
         if (string.IsNullOrEmpty(ComboBoxDelay.Text) || ComboBoxDelay.SelectedIndex == -1)
         {
             return;
         }
         if (string.IsNullOrEmpty(ComboBoxColor.Text) || ComboBoxColor.SelectedIndex == -1)
         {
             return;
         }
         if (string.IsNullOrEmpty(ComboBoxBIPPanel.Text) || ComboBoxBIPPanel.SelectedIndex == -1)
         {
             return;
         }
         SetFormState();
         _isDirty = true;
         ShowLED();
     }
     catch (Exception ex)
     {
         Common.ShowErrorMessageBox(100906, ex);
     }
 }
Exemplo n.º 3
0
        // Protected implementation of Dispose pattern.
        protected override void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    BipFactory.DeRegisterBip(this);
                    BIOSEventHandler.DetachDataListener(this);
                }

                _disposed = true;
            }

            // Call base class implementation.
            base.Dispose(disposing);
        }
Exemplo n.º 4
0
        /*
         * 01000000 2nd BIP from left GREEN
         * 00000000
         *
         * 01000000 2nd BIP from left YELLOW
         * 01000000
         *
         * 00000000 2nd BIP from left RED
         * 01000000
         *
         * 00000000 2nd BIP from left DARK
         * 00000000
         *
         */
        public BacklitPanelBIP(uint ledBrightness, HIDSkeleton hidSkeleton)
            : base(GamingPanelEnum.BackLitPanel, hidSkeleton)
        {
            if (hidSkeleton.GamingPanelType != GamingPanelEnum.BackLitPanel)
            {
                throw new ArgumentException();
            }

            VendorId       = 0x6A3;
            ProductId      = 0xB4E;
            _ledBrightness = ledBrightness;
            BipFactory.RegisterBip(this);
            Startup();

            BIOSEventHandler.AttachDataListener(this);
        }
 private void ShowLED()
 {
     try
     {
         _bipLight = new BIPLight();
         _bipLight.BIPLedPosition = (BIPLedPositionEnum)ComboBoxPosition.SelectedValue;
         _bipLight.LEDColor       = (PanelLEDColor)ComboBoxColor.SelectedValue;
         _bipLight.DelayBefore    = (BIPLightDelays)ComboBoxDelay.SelectedValue;
         _bipLight.Hash           = (string)ComboBoxBIPPanel.SelectedValue;
         BipFactory.SetDark(_bipLight.Hash);
         BipFactory.ShowLight(_bipLight);
     }
     catch (Exception ex)
     {
         Common.ShowErrorMessageBox(10906, ex);
     }
 }
Exemplo n.º 6
0
        private void SetContextMenuClickHandlers()
        {
            foreach (var textBox in Common.FindVisualChildren <TextBox>(this))
            {
                if (!Equals(textBox, TextBoxLogTPM))
                {
                    var contectMenu = (ContextMenu)Resources["TextBoxContextMenuTPM"];

                    if (!BipFactory.HasBips())
                    {
                        MenuItem bipMenuItem = null;
                        foreach (var item in contectMenu.Items)
                        {
                            if (((MenuItem)item).Name == "contextMenuItemEditBIP")
                            {
                                bipMenuItem = (MenuItem)item;
                                break;
                            }
                        }
                        if (bipMenuItem != null)
                        {
                            contectMenu.Items.Remove(bipMenuItem);
                        }
                    }
                    if (Common.NoDCSBIOSEnabled())
                    {
                        MenuItem dcsBIOSMenuItem = null;
                        foreach (var item in contectMenu.Items)
                        {
                            if (((MenuItem)item).Name == "contextMenuItemEditDCSBIOS")
                            {
                                dcsBIOSMenuItem = (MenuItem)item;
                                break;
                            }
                        }
                        if (dcsBIOSMenuItem != null)
                        {
                            contectMenu.Items.Remove(dcsBIOSMenuItem);
                        }
                    }
                    textBox.ContextMenu         = contectMenu;
                    textBox.ContextMenuOpening += TextBoxContextMenuOpening;
                }
            }
        }
        public DCSFPContextMenuVisibility GetVisibility(ref int objectCount, bool isEmpty, bool containsKeyStroke, bool containsKeySequence, bool containsDCSBIOS, bool containsBIPLink, bool containsOSCommand)
        {
            var result = new DCSFPContextMenuVisibility();

            try
            {
                CopyPackage copyPackage = null;
                var         dataObject  = Clipboard.GetDataObject();
                if (dataObject != null && dataObject.GetDataPresent("NonVisuals.CopyPackage"))
                {
                    copyPackage = (CopyPackage)dataObject.GetData("NonVisuals.CopyPackage");

                    /*
                     * 31052022
                     * In PZ70 you can paste into the same textbox under different knob positions like ALT VS IAS etc.
                     * if (copyPackage?.SourceName == TextBox.Name)
                     * {
                     *  copyPackage = null;
                     * }*/
                }

                objectCount  = 0;
                objectCount += containsKeyStroke ? 1 : 0;
                objectCount += containsKeySequence ? 1 : 0;
                objectCount += containsDCSBIOS ? 1 : 0;
                objectCount += containsBIPLink ? 1 : 0;
                objectCount += containsOSCommand ? 1 : 0;

                if (isEmpty)
                {
                    result.AddNullKeyVisible   = true;
                    result.EditSequenceVisible = true;
                    if (Common.FullDCSBIOSEnabled() || Common.PartialDCSBIOSEnabled())
                    {
                        result.EditDCSBIOSVisible = true;
                    }

                    if (BipFactory.HasBips())
                    {
                        result.EditBIPVisible = true;
                    }

                    result.EditOSCommandVisible = true;

                    if (copyPackage != null)
                    {
                        result.PasteVisible = true;
                    }
                }

                if (containsKeyStroke)
                {
                    if (BipFactory.HasBips())
                    {
                        result.EditBIPVisible = true;
                    }

                    if (objectCount > 1)
                    {
                        result.CopySubMenuVisible   = true;
                        result.CopyKeyStrokeVisible = true;
                    }
                    else
                    {
                        result.CopySingleVisible = true;
                    }

                    if (copyPackage != null && copyPackage.ContentType == CopyContentType.BIPLink)
                    {
                        result.PasteVisible = true;
                    }
                }

                if (containsKeySequence)
                {
                    result.EditSequenceVisible = true;
                    if (BipFactory.HasBips())
                    {
                        result.EditBIPVisible = true;
                    }

                    if (objectCount > 1)
                    {
                        result.CopySubMenuVisible     = true;
                        result.CopyKeySequenceVisible = true;
                    }
                    else
                    {
                        result.CopySingleVisible = true;
                    }

                    if (copyPackage != null && copyPackage.ContentType == CopyContentType.BIPLink)
                    {
                        result.PasteVisible = true;
                    }
                }

                if (containsDCSBIOS)
                {
                    if (!_keyboardEmulationOnly)
                    {
                        result.EditDCSBIOSVisible = true;

                        if (objectCount > 1)
                        {
                            result.CopySubMenuVisible = true;
                            result.CopyDCSBIOSVisible = true;
                        }
                        else
                        {
                            result.CopySingleVisible = true;
                        }
                    }

                    if (BipFactory.HasBips())
                    {
                        result.EditBIPVisible = true;
                    }

                    if (copyPackage != null && copyPackage.ContentType == CopyContentType.BIPLink)
                    {
                        result.PasteVisible = true;
                    }
                }

                if (containsBIPLink)
                {
                    result.EditBIPVisible = true;
                    if (objectCount > 1)
                    {
                        result.CopySubMenuVisible = true;
                        result.CopyBIPLinkVisible = true;
                    }
                    else
                    {
                        result.CopySingleVisible = true;
                    }

                    if (copyPackage != null)
                    {
                        switch (copyPackage.ContentType)
                        {
                        case CopyContentType.KeySequence:
                        {
                            if (!containsKeyStroke && !containsKeySequence && !containsDCSBIOS && !containsOSCommand)
                            {
                                result.PasteVisible = true;
                            }

                            break;
                        }

                        case CopyContentType.DCSBIOS:
                        {
                            if (!containsKeyStroke && !containsKeySequence && !containsDCSBIOS && !containsOSCommand)
                            {
                                result.PasteVisible = true;
                            }

                            break;
                        }

                        case CopyContentType.BIPLink:
                        {
                            //Cannot paste BIPLink on BIPLink
                            break;
                        }

                        case CopyContentType.OSCommand:
                        {
                            if (!containsKeyStroke && !containsKeySequence && !containsDCSBIOS && !containsOSCommand)
                            {
                                result.PasteVisible = true;
                            }

                            break;
                        }
                        }
                    }
                }

                if (containsOSCommand)
                {
                    result.EditOSCommandVisible = true;
                    if (objectCount > 1)
                    {
                        result.CopySubMenuVisible   = true;
                        result.CopyOSCommandVisible = true;
                    }
                    else
                    {
                        result.CopySingleVisible = true;
                    }

                    if (copyPackage != null && copyPackage.ContentType == CopyContentType.BIPLink)
                    {
                        result.PasteVisible = true;
                    }
                }

                if (!isEmpty)
                {
                    result.DeleteSettingsVisible = true;
                }
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(ex);
            }

            return(result);
        }
Exemplo n.º 8
0
        private void TextBoxContextMenuOpening(object sender, ContextMenuEventArgs e)
        {
            try
            {
                var textBox     = (TextBox)sender;
                var contextMenu = textBox.ContextMenu;
                if (!(textBox.IsFocused && Equals(textBox.Background, Brushes.Yellow)))
                {
                    //UGLY Must use this to get around problems having different color for BIPLink and Right Clicks
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        item.Visibility = Visibility.Collapsed;
                    }
                    return;
                }
                foreach (MenuItem item in contextMenu.Items)
                {
                    item.Visibility = Visibility.Collapsed;
                }

                if (((TagDataClassTPM)textBox.Tag).ContainsDCSBIOS())
                {
                    // 1) If Contains DCSBIOS, show Edit DCS-BIOS Control & BIP
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        if (Common.FullDCSBIOSEnabled() && item.Name.Contains("EditDCSBIOS"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        if (BipFactory.HasBips() && item.Name.Contains("EditBIP"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                    }
                }
                else if (((TagDataClassTPM)textBox.Tag).ContainsKeySequence())
                {
                    // 2)
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        if (item.Name.Contains("EditSequence"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        if (BipFactory.HasBips() && item.Name.Contains("EditBIP"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                    }
                }
                else if (((TagDataClassTPM)textBox.Tag).IsEmpty())
                {
                    // 4)
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        if (item.Name.Contains("EditSequence"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        else if (Common.FullDCSBIOSEnabled() && item.Name.Contains("EditDCSBIOS"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        else if (BipFactory.HasBips() && item.Name.Contains("EditBIP"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            item.Visibility = Visibility.Collapsed;
                        }
                    }
                }
                else if (((TagDataClassTPM)textBox.Tag).ContainsSingleKey())
                {
                    // 5)
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        if (!(item.Name.Contains("EditSequence") || item.Name.Contains("EditDCSBIOS")))
                        {
                            if (item.Name.Contains("EditBIP"))
                            {
                                if (BipFactory.HasBips())
                                {
                                    item.Visibility = Visibility.Visible;
                                }
                            }
                            else
                            {
                                item.Visibility = Visibility.Visible;
                            }
                        }
                    }
                }
                else if (((TagDataClassTPM)textBox.Tag).ContainsBIPLink())
                {
                    // 3)
                    foreach (MenuItem item in contextMenu.Items)
                    {
                        if (Common.FullDCSBIOSEnabled() && item.Name.Contains("EditDCSBIOS"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        if (BipFactory.HasBips() && item.Name.Contains("EditBIP"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                        if (item.Name.Contains("EditSequence"))
                        {
                            item.Visibility = Visibility.Visible;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Common.ShowErrorMessageBox(2081, ex);
            }
        }