public void Handler_OnKeyDown(object sender, KeyEventArgs e) { if (lastClickedButton != null && lastClickedButton.Tag != null) { foreach (Keyboard.Key key in Enum.GetValues(typeof(Keyboard.Key)).Cast <Keyboard.Key>()) { if (Keyboard.IsKeyPressed(key)) { if (key != Keyboard.Key.Escape) { VirtualKey vk = (VirtualKey)lastClickedButton.Tag; PhysicalKey valueOld = UserSettings.GetInstance().KeyboardMappings[vk]; PhysicalKey valueNew = new PhysicalKey(); valueNew.KeyboardValue = key; UserSettings.SetMapping(vk, valueOld, valueNew); } lastClickedButton = null; ((MainViewModel)DataContext).RefreshData(); WaitingForKeyPress_Hide(); } } } }
private bool IsPhysicalKeyPressed(PhysicalKey key) { if (Keyboard.IsKeyPressed(key.KeyboardValue)) { return(true); } if (key.MouseValue != MouseButton.Unknown) { Mouse.Button csfmlMouseButton = (Mouse.Button)key.MouseValue; if (Mouse.IsButtonPressed(csfmlMouseButton)) { return(true); } } return(false); }
public void RefreshButtonContents() { Log.Debug("AdvancedMappingsPage.RefreshButtonContents IN"); Log.Debug("AdvancedMappingsPage.RefreshButtonContents Button Count " + UITools.FindVisualChildren <Button>(this).Count()); foreach (Button button in UITools.FindVisualChildren <Button>(this)) { // assume unmapped first button.Content = "set mapping"; button.Opacity = OpacityUnMappedButton; if (button != null && button.Tag != null) { StackPanel parentStackPanel = (StackPanel)button.Parent; if (parentStackPanel != null && parentStackPanel.Tag != null) { VirtualKey vk = (VirtualKey)parentStackPanel.Tag; if (Settings.Mappings != null && Settings.MappingsContainsKey(vk)) { PhysicalKeyGroup pkg = Settings.Mappings[vk]; if (pkg.PhysicalKeys != null) { int index = (int)button.Tag; if (index < pkg.PhysicalKeys.Count) { PhysicalKey pk = pkg.PhysicalKeys[index]; if (pk != null) { button.Content = pk.ToString(); button.Opacity = 1; } } } } } } } Log.Debug("AdvancedMappingsPage.RefreshButtonContents OUT"); }
private void Handler_AddMapping_GenericKeyDown(ExtraButtons extraValue, Keyboard.Key keyboardValue, MouseButton mouseValue) { if (lastClickedButton != null && lastClickedButton.Parent != null) { StackPanel parentStackPanel = (StackPanel)lastClickedButton.Parent; if (parentStackPanel.Tag != null) { if (keyboardValue != Keyboard.Key.Escape) { VirtualKey vk = (VirtualKey)parentStackPanel.Tag; int index = (int)lastClickedButton.Tag; PhysicalKey valueOld = null; if (Settings.MappingsContainsKey(vk)) { if (index < Settings.Mappings[vk].PhysicalKeys.Count) { valueOld = Settings.Mappings[vk].PhysicalKeys[index]; } } PhysicalKey valueNew = new PhysicalKey(); valueNew.ExtraValue = extraValue; valueNew.KeyboardValue = keyboardValue; valueNew.MouseValue = mouseValue; UserSettings.SetMapping(vk, valueOld, valueNew); } lastClickedButton = null; ((MainViewModel)DataContext).RefreshData(); WaitingForKeyPress_Hide(); } } }
private PhysicalLayoutModel InjectDesign(PhysicalLayoutModel physicalLayout, QcLayout qcLayout) { if (qcLayout == default) { return(physicalLayout); } double originY = 0; var counter = 0; return(new PhysicalLayoutModel { PhysicalRows = physicalLayout.PhysicalRows .Select((row, rowIndex) => { double offsetX = 0; double offsetY = 0; return new PhysicalRow { PhysicalKeys = row.PhysicalKeys .Select((key, colIndex) => { var qcKey = qcLayout.QcKeys.ElementAtOrDefault(counter); if (rowIndex == 0 && colIndex == 0) { originY = qcKey.Y; offsetY = qcKey.Y; } else if (colIndex == 0) { offsetY = qcKey.Y - originY - rowIndex; } else { var preQcKey = qcLayout.QcKeys.ElementAtOrDefault(counter - 1); offsetY = qcKey.Y - preQcKey.Y; } counter++; var physKey = new PhysicalKey(key.Tag) { Label = qcKey.Label, Row = rowIndex, Col = colIndex, OffsetX = Math.Round(qcKey.X - offsetX - colIndex, 3), OffsetY = Math.Round(offsetY, 3), Width = qcKey.Width, Height = qcKey.Height, }; if (physKey.Width != 0) { offsetX += physKey.Width - 1; } if (physKey.OffsetX != 0) { offsetX += physKey.OffsetX; } return physKey; }), }; }), }); }