public CircleDialEditor() { InitializeComponent(); if (DesignerProperties.GetIsInDesignMode(this)) { return; } BlockNavigator.AddNavigationExitHandler(FunctionButtonList, FunctionButtonList_NavigationExit); BlockNavigator.AddNavigationEnterHandler(FunctionButtonList, FunctionButtonList_NavigationEnter); BlockNavigator.AddNavigationExitHandler(DialAreaControl, DialAreaControl_NavigationExit); BlockNavigator.AddNavigationEnterHandler(DialAreaControl, DialAreaControl_NavigationEnter); BlockNavigator.AddConfirmClickHandler(DialAreaControl, DialAreaControl.DialArea_ConfirmClick); DialAreaControl.ItemPicked += DialArea_ItemPicked; FunctionButtonList.ItemSelected += FunctionButtonList_ItemSelected; var ctx = new SaveData.SaveData(); FunctionButtonList.LoadList(ctx.Functions.ToList()); Profiles_ComboBox.ItemsSource = ctx.Profiles.Select(p => new ComboBoxItemContainer { Text = p.Name, DataContext = p }).ToList(); var profile = ctx.Profiles.First(); var panelButtons = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id); var formData = new EditorFormData { Profile = profile, PanelButtons = panelButtons }; LoadProfile(formData); }
public void InitializeNodes(SaveData.SaveData someData) { myNodes = someData.Nodes; foreach (var node in myNodes) { node.FormConnections(this); } }
public CircleDial() { InitializeComponent(); Highlight.Visibility = Visibility.Hidden; IsVisibleChanged += OnIsVisibleChanged; var ctx = new SaveData.SaveData(); var currentProfile = ctx.Profiles.First(p => p.Id == 2); var sharedButtons = ctx.PanelButtons.Where(p => p.Profile.Id == SaveData.DefaultData.AllProfile.Id).ToArray(); var currentButtons = ctx.PanelButtons.Where(p => p.Profile.Id == currentProfile.Id).ToArray(); var dict = new System.Collections.Generic.Dictionary <int, SaveData.Models.PanelButton>(); foreach (var item in sharedButtons) { dict[item.Position] = item; } foreach (var item in currentButtons) { dict[item.Position] = item; } var saveData = dict.Select(p => p.Value).ToArray(); foreach (var data in saveData) { _buttons[data.Position] = new FunctionButton { ImageUri = new Uri(Utils.ResourcesPath + data.Function.ImageUrl), Title = data.Function.Title, Identifier = data.Function.Parameter, FunctionType = data.Function.FunctionType }; SetButton(data.Position, _buttons[data.Position]); } var elms = Canvas.Children.OfType <PadOS.CustomControls.AlphaSilhouetteImage>().ToArray(); const int upper = 8; const double tau = Math.PI * 2; const double segment = tau / upper; for (var i = 0; i < upper; i++) { Canvas.SetLeft(elms[i], Math.Cos(segment * i - segment * 2) * 270 + Width / 2); Canvas.SetTop(elms[i], Math.Sin(segment * i - segment * 2) * 270 + Height / 2); if (_buttons[i] != null) { continue; } elms[i].Source = null; elms[i].Visibility = Visibility.Hidden; } }
private void LoadData() { ProfilesListView.Items.Clear(); using (var data = new SaveData.SaveData()) { ProfilesListView.ItemsSource = data.Profiles.Where(p => p.Id != 1 && p.Id != 2).ToArray(); foreach (var profile in data.Profiles) { _profileAssociations[profile] = data.ProfileAssociations.Where(p => p.Profile.Id == profile.Id).ToList(); } } }
private void LoadKeys(SaveData.SaveData someData) { if (!someData.BasicKeys.ContainsKey("Random") || !someData.BasicKeys.ContainsKey("Event") || !someData.BasicKeys.ContainsKey("Setting")) { SetDefaultKeys(someData); } myBasicKeys = someData.BasicKeys; myCustomKeys = someData.CustomKeys; }
public static void Initialize() { _mainPanel = new CircleDial(); GamePadInput.StaticInputInstance.ButtonGuideDown += XInputOnButtonGuideDown; var ctx = new SaveData.SaveData(); _profileManager = new ProfileSwitcher.ProfileManager(); _profileManager.UpdateProfiles(ctx.ProfileAssociations.Select(p => new SaveData.ProfileXML.ApplicationAssociation { DllName = p.Profile.Plugins.FirstOrDefault(), Executable = p.Executable, //Profile = p.Profile, WindowTitle = p.WindowTitle })); }
private async void EditPanel_CancelClick(object sender, RoutedEventArgs args) { if (AssociationsStackPanel.Visibility == Visibility.Visible) { return; } args.Handled = true; AssociationsStackPanel.Visibility = Visibility.Visible; ItemEditView.Visibility = Visibility.Collapsed; await Input.BlockNavigator.BlockNavigator.RefreshLayout(ListPanel); Input.BlockNavigator.BlockNavigator.SetFocus(TextBox_ProfileName); var assocData = _selectedProfileAssociation.Data; if (assocData == null && string.IsNullOrEmpty(TextBox_Exec.Text) && string.IsNullOrEmpty(TextBox_Window.Text)) { return; } if (assocData != null && assocData.Executable == TextBox_Exec.Text && assocData.WindowTitle == TextBox_Window.Text) { return; } if (assocData == null) { assocData = new SaveData.Models.ProfileAssociation { Profile = _selectedProfile }; _selectedProfileAssociation.Data = assocData; _profileAssociations[_selectedProfile].Add(assocData); } assocData.Executable = TextBox_Exec.Text; assocData.WindowTitle = TextBox_Window.Text; using (var db = new SaveData.SaveData()) { db.ProfileAssociations.UpdateOrInsert(assocData); db.SaveChanges(); } RefreshListView(); await Input.BlockNavigator.BlockNavigator.RefreshLayout(ListPanel); }
private async void Profiles_ComboBox_ItemClicked(object sender, ComboBoxItemContainer item) { if (await ConfirmLeave((FrameworkElement)sender) == false) { return; } var ctx = new SaveData.SaveData(); var profile = (SaveData.Models.Profile)item.DataContext; var panelButtons = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id); var formData = new EditorFormData { Profile = profile, PanelButtons = panelButtons }; LoadProfile(formData); _hasUnsavedChanges = false; Profiles_ComboBox.Close(); BlockNavigator.NavigateBack((FrameworkElement)sender); }
private async void SaveChanges() { var data = DialAreaControl.GetData().ToArray(); var ctx = new SaveData.SaveData(); var profile = ctx.Profiles.First(p => p.Id == _editorFormData.Profile.Id); SaveData.Models.Function[] functions; { var functionIds = data.Select(p => p.Function.Id).ToArray(); functions = ctx.Functions.Where(p => functionIds.Contains(p.Id)).ToArray(); } foreach (var item in data) { item.Profile = profile; item.Function = functions.First(p => p.Id == item.Function.Id); } var existing = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id).ToArray(); ctx.PanelButtons.RemoveRange(existing); ctx.PanelButtons.AddRange(data); await ctx.SaveChangesAsync(); }
private void SetDefaultKeys(SaveData.SaveData someData) { var resourceReader = new System.IO.StreamReader(new System.IO.MemoryStream(Properties.Resources.defaultKeys)); someData.BasicKeys = JsonConvert.DeserializeObject <Dictionary <string, Dictionary <Guid, BaseKey> > >(resourceReader.ReadToEnd()); }
public static void Initialize(SaveData.SaveData someData) { instance.LoadKeys(someData); }