Пример #1
0
        /* 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;
            }
        }
Пример #3
0
        /* 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;
        }
Пример #4
0
        /* 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;
        }
Пример #7
0
 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);
     }
 }
Пример #8
0
 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);
            }
        }