/* Retrive key data list from each of the keycap objects */ private List <qk.Key_items.Key> getKeyData() { List <qk.Key_items.Key> keyData = new List <qk.Key_items.Key>(); Border bd; foreach (UIElement control in visualEditorGrid.Children) { if (control is Border && ((Border)control).Child != null) { bd = (Border)control; KeyCapButton kcb = (KeyCapButton)bd.Child; qk.Key_items.Key key = new qk.Key_items.Key(); key.graphics.row = Grid.GetRow(control); key.graphics.col = Grid.GetColumn(control); key.graphics.text = kcb.text; if (kcb.SelectedMatrixPinRow != null && kcb.SelectedMatrixPinCol != null) { key.matrix.row = kcb.SelectedMatrixPinRow; key.matrix.col = kcb.SelectedMatrixPinCol; keyData.Add(key); } else { throw new Exception("Key's should have their pin values set. [Click on the key to access pin data]"); } } } return(keyData); }
private void Border_Drop(object sender, DragEventArgs e) { //System.Diagnostics.Debug.WriteLine(e.OriginalSource.ToString()); if (e.OriginalSource is Border) { Border targetBorder = (Border)e.OriginalSource; KeyCapButton kcb = new KeyCapButton(); targetBorder.Child = kcb; } }
/* keycap event oppener */ private void PopOpenSelector(object sender, RoutedEventArgs e) { keyDataForm.Visibility = Visibility.Visible; keyboardMatrixPanel.Visibility = Visibility.Hidden; visualControlPanel.Visibility = Visibility.Hidden; Button btn = (Button)sender; KeyCapButton data = (KeyCapButton)btn.DataContext; keyDataForm.DataContext = data; }
/* Border drop handler for draggin a key onto the grid */ private void Border_Drop(object sender, DragEventArgs e) { if (e.OriginalSource is Border) { Border targetBorder = (Border)e.OriginalSource; KeyCapButton kcb = new KeyCapButton(); kcb.keyButton.Click += PopOpenSelector; targetBorder.Child = kcb; } }
private void clearSelectedComboBoxes(object sender, RoutedEventArgs e) { clearMacroComboBox(); clearSingleKeyComboBox(); if (OnTapMacroTextBlock.DataContext is KeyCapButton) { KeyCapButton dc = (KeyCapButton)OnTapMacroTextBlock.DataContext; dc.OnTapMacroName = ""; dc.OnHoldMacroName = ""; } else { MessageBox.Show("You must first select a key before trying to clear its binding."); } }
private void selectKeyView(object sender, RoutedEventArgs e) { Button btn = (Button)sender; KeyCapButton data = (KeyCapButton)btn.DataContext; model.SelectedKeySingleMacro = null; model.SelectedKeyMacroBinding = null; singleKeyChoiceComboBox.SelectedIndex = -1; singleKeyChoiceComboBox.Text = ""; macroKeyChoiceComboBox.SelectedIndex = -1; macroKeyChoiceComboBox.Text = ""; OnTapMacroTextBlock.DataContext = data.DataContext; OnHoldMacroTextBlock.DataContext = data.DataContext; }
private void clearKeycapPinCol(object sender, RoutedEventArgs e) { try { if (model.SupportedPins != null) { KeyCapButton kcb = (KeyCapButton)keyDataForm.DataContext; kcb.SelectedMatrixPinCol = null; } else { throw new Exception("A pin must be selected first before trying to clear it."); } } catch (Exception err) { MessageBox.Show("Error: " + err.Message); } }
private void addKeyPinRow(object sender, RoutedEventArgs e) { try { if (model.SupportedPins != null) { KeyCapButton kcb = (KeyCapButton)keyDataForm.DataContext; kcb.SelectedMatrixPinRow = ((MatrixPin)keycapMatrixPinSelection.SelectedItem).pinName; keycapMatrixPinSelection.SelectedItem = null; } else { throw new Exception("A pin must be selected first before trying to add it."); } } catch (Exception err) { MessageBox.Show("Error: " + err.Message); } }
private void SetOnHoldMacro(object sender, RoutedEventArgs e) { int selected = 0; if (OnTapMacroTextBlock.DataContext is KeyCapButton) { try { selected = tryGetSelectionOnlyOne(); KeyCapButton dc = (KeyCapButton)OnTapMacroTextBlock.DataContext; if (selected == 0) { throw new Exception("Macro on hold only takes a single modifier key. \nExample Left Control."); } else { validateOnHoldMacro(model.SelectedKeySingleMacro); dc.OnHoldMacro = model.SelectedKeySingleMacro; dc.onHoldMacroListID = 1; clearSingleKeyComboBox(); } } catch (Exception err) { MessageBox.Show("Error: " + err.Message); clearMacroComboBox(); clearSingleKeyComboBox(); } } else { MessageBox.Show("You must first select a key before trying to set its binding."); } }
private void SetOnTapMacroModel(object sender, RoutedEventArgs e) { int selected = 0; if (OnTapMacroTextBlock.DataContext is KeyCapButton) { try { selected = tryGetSelectionOnlyOne(); KeyCapButton dc = (KeyCapButton)OnTapMacroTextBlock.DataContext; if (selected == 0) { dc.OnTapMacro = model.SelectedKeyMacroBinding; dc.onTapMacroListID = 0; clearMacroComboBox(); } else { dc.OnTapMacro = model.SelectedKeySingleMacro; dc.onTapMacroListID = 1; clearSingleKeyComboBox(); } } catch (Exception err) { MessageBox.Show("Error: " + err.Message); clearMacroComboBox(); clearSingleKeyComboBox(); } } else { MessageBox.Show("You must first select a key before trying to set its binding."); } }
private void generateKeyCaps(QK.Keyboard kc) { foreach (var key in kc.keys) { int row = key.graphics.row; int col = key.graphics.col; key.binding.on_hold.Clear(); key.binding.on_tap.Clear(); KeyCapButton kcb = new KeyCapButton(key); if (key.matrix.row == null && key.matrix.col == null) {/*skip*/ } else { //open model here. kcb.keyButton.Click += selectKeyView; } keyBoardGridPicker.Children.Add(kcb); Grid.SetRow(kcb, row); Grid.SetColumn(kcb, col); } }