protected void ButtonImage_PreviewMouseDown(object sender, MouseButtonEventArgs e) { try { if (SelectedButtonName == EnumStreamDeckButtonNames.BUTTON0_NO_BUTTON) { return; } var newlySelectedImage = (StreamDeckImage)sender; /* * Here we must check if event if we can change the button that is selected. If there are unsaved configurations we can't */ if (newlySelectedImage.Bill.Button != StreamDeckPanel.GetInstance(PanelHash).SelectedButton&& EventHandlers.AreThereDirtyListeners(this)) { if (CommonUI.DoDiscardAfterMessage(true, "Discard Changes to " + SelectedButtonName + " ?")) { SetFormState(); } else { e.Handled = true; } } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void ButtonExport_OnClick(object sender, RoutedEventArgs e) { try { var saveFileDialog = new SaveFileDialog(); saveFileDialog.InitialDirectory = string.IsNullOrEmpty(Settings.Default.LastStreamDeckExportFolder) ? Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) : Settings.Default.LastStreamDeckExportFolder; saveFileDialog.Filter = @"Compressed File|*.zip"; saveFileDialog.FileName = "streamdeck_export"; if (saveFileDialog.ShowDialog() == true) { _zipFileName = saveFileDialog.FileName; Settings.Default.LastStreamDeckExportFolder = Path.GetDirectoryName(saveFileDialog.FileName); Settings.Default.Save(); var buttonExports = DataGridStreamDeckButtons.SelectedItems.Cast <ButtonExport>().ToList(); StreamDeckPanel.GetInstance(_panelHash).Export(_zipFileName, buttonExports); } SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
protected bool Paste() { var iDataObject = Clipboard.GetDataObject(); if (iDataObject == null || !iDataObject.GetDataPresent("NonVisuals.StreamDeck.StreamDeckButton")) { return(false); } var result = false; var newStreamDeckButton = (StreamDeckButton)iDataObject.GetData("NonVisuals.StreamDeck.StreamDeckButton"); var oldStreamDeckButton = StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.GetStreamDeckButton(SelectedButtonName); if (oldStreamDeckButton.CheckIfWouldOverwrite(newStreamDeckButton) && MessageBox.Show("Overwrite previous configuration (partial or fully)", "Overwrite?)", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { result = oldStreamDeckButton.Consume(true, newStreamDeckButton); } else { result = oldStreamDeckButton.Consume(true, newStreamDeckButton); } if (result) { StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.AddButton(oldStreamDeckButton); UpdateButtonInfoFromSource(); SetIsDirty(); } return(result); }
public StreamDeckDCSBIOSConverterWindow(EnumStreamDeckButtonNames streamDeckButtonName, string streamDeckPanelInstanceId, DCSBIOSConverter dcsbiosConverter) { InitializeComponent(); _streamDeckButtonName = streamDeckButtonName; _streamDeckPanelInstanceId = streamDeckPanelInstanceId; _streamDeckPanel = StreamDeckPanel.GetInstance(_streamDeckPanelInstanceId); _dcsbiosConverter = dcsbiosConverter; }
private void LoadButtons() { var buttonList = StreamDeckPanel.GetInstance(_panelHash).GetButtonExports(); DataGridStreamDeckButtons.DataContext = buttonList; DataGridStreamDeckButtons.ItemsSource = buttonList; DataGridStreamDeckButtons.Items.Refresh(); }
protected void Copy() { var streamDeckButton = StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.GetStreamDeckButton(SelectedButtonName); if (streamDeckButton != null) { Clipboard.SetDataObject(streamDeckButton); } }
protected override void SetFormState() { try { SetButtonGridStatus(StreamDeckPanel.GetInstance(SDUIParent.GetStreamDeckInstanceId()).HasLayers); } catch (Exception ex) { Common.ShowErrorMessageBox(471473, ex); } }
private void LoadComboBoxLayers() { ComboBoxLayers.DropDownClosed -= ComboBoxLayers_OnDropDownClosed; var layerList = StreamDeckPanel.GetInstance(_bindingHash).GetStreamDeckLayerNames(); foreach (var layerName in layerList) { ComboBoxLayers.Items.Add(layerName); } ComboBoxLayers.DropDownClosed += ComboBoxLayers_OnDropDownClosed; }
private void LoadComboBoxButtonName() { ComboBoxButtonName.DropDownClosed -= ComboBoxButtonName_OnDropDownClosed; var buttonName = "BUTTON"; for (var i = 0; i < StreamDeckPanel.GetInstance(_bindingHash).ButtonCount; i++) { ComboBoxButtonName.Items.Add(buttonName + (i + 1).ToString()); } ComboBoxButtonName.DropDownClosed += ComboBoxButtonName_OnDropDownClosed; }
private void ButtonContextMenu_OnOpened(object sender, RoutedEventArgs e) { try { /* * Can't get context menu [ContextMenuOpening] events to work. Workaround. */ var contextMenu = (ContextMenu)sender; MenuItem menuItemCopy = null; MenuItem menuItemPaste = null; MenuItem menuItemDelete = null; foreach (var contextMenuItem in contextMenu.Items) { if (contextMenuItem.GetType() == typeof(MenuItem) && ((MenuItem)contextMenuItem).Name == "MenuItemCopy") { menuItemCopy = ((MenuItem)contextMenuItem); } } foreach (var contextMenuItem in contextMenu.Items) { if (contextMenuItem.GetType() == typeof(MenuItem) && ((MenuItem)contextMenuItem).Name == "MenuItemPaste") { menuItemPaste = ((MenuItem)contextMenuItem); } } foreach (var contextMenuItem in contextMenu.Items) { if (contextMenuItem.GetType() == typeof(MenuItem) && ((MenuItem)contextMenuItem).Name == "MenuItemPaste") { menuItemDelete = ((MenuItem)contextMenuItem); } } if (menuItemCopy == null || menuItemPaste == null || menuItemDelete == null) { return; } var selectedStreamDeckButton = StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.GetStreamDeckButton(SelectedButtonName); menuItemCopy.IsEnabled = selectedStreamDeckButton.HasConfig; menuItemDelete.IsEnabled = selectedStreamDeckButton.HasConfig; var iDataObject = Clipboard.GetDataObject(); menuItemPaste.IsEnabled = iDataObject != null && iDataObject.GetDataPresent("NonVisuals.StreamDeck.StreamDeckButton"); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void ButtonContextMenuDelete_OnClick(object sender, RoutedEventArgs e) { try { var streamDeckButton = StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.GetStreamDeckButton(SelectedButtonName); if (MessageBox.Show("Delete button" + streamDeckButton.StreamDeckButtonName.ToString() + "?", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { StreamDeckPanel.GetInstance(PanelHash).SelectedLayer.RemoveButton(streamDeckButton); } } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
public StreamDeckDCSBIOSDecoderWindow(string panelHash) { InitializeComponent(); _dcsbiosDecoder = new DCSBIOSDecoder(); _dcsbiosDecoder.DecoderSourceType = DCSBiosOutputType.INTEGER_TYPE; _dcsbiosDecoder.PanelHash = panelHash; LoadDefaults(); DCSBIOSControlLocator.LoadControls(); _dcsbiosControls = DCSBIOSControlLocator.GetIntegerOutputControls(); _dcsbiosDecoder.StreamDeckButtonName = StreamDeckPanel.GetInstance(panelHash).SelectedButtonName; _panelHash = panelHash; var thread = new Thread(ThreadLoop); thread.Start(); }
private void ButtonImport_OnClick(object sender, RoutedEventArgs e) { try { var stringBuilder = new StringBuilder(100); if (Settings.Default.ShowImportWarning) { stringBuilder.Append("WARNING !\n\n"); stringBuilder.Append("A failed import can corrupt a bindings file.\n"); stringBuilder.Append("Before you import, make a copy of your bindings file"); System.Windows.MessageBox.Show(stringBuilder.ToString(), "Make backup", MessageBoxButton.OK, MessageBoxImage.Information); } CopyFilesToNewLocation(); var selectedButtonExports = DataGridStreamDeckButtons.SelectedItems.Cast <ButtonExport>().ToList();; /*var duplicateList = selectedStreamDeckButtons.GroupBy(a => a.StreamDeckButtonName).Where(a => a.Count() > 1).Select(x => new { StreamDeckButtonName = x.Key }).ToList(); * * if (duplicateList.Count > 0) * { * var infoText = duplicateList[0].StreamDeckButtonName + " is repeated in the selection. Modify the selection."; * MessageBox.Show(infoText, "Duplicate buttons", MessageBoxButton.OK, MessageBoxImage.Exclamation); * return; * } */ var importMode = EnumButtonImportMode.None; if (CheckBoxReplace.IsChecked == true) { importMode = EnumButtonImportMode.Replace; } else if (CheckBoxOverwrite.IsChecked == true) { importMode = EnumButtonImportMode.Overwrite; } StreamDeckPanel.GetInstance(_bindingHash).ImportButtons(importMode, selectedButtonExports); System.Windows.MessageBox.Show("Import was completed", "Import successful", MessageBoxButton.OK, MessageBoxImage.Information); SetFormState(); } catch (Exception ex) { Common.ShowErrorMessageBox(ex); } }
private void SetTextBoxBills() { foreach (var textBox in _textBoxes) { textBox.Bill = new BillStreamDeckAction(textBox, new StreamDeckButtonOnOff(StreamDeckPanel.GetInstance(PanelHash).SelectedButtonName, !textBox.Name.Contains("Off"))); } }