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);
        }
示例#2
0
 public void InitializeNodes(SaveData.SaveData someData)
 {
     myNodes = someData.Nodes;
     foreach (var node in myNodes)
     {
         node.FormConnections(this);
     }
 }
示例#3
0
        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();
         }
     }
 }
示例#5
0
        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;
        }
示例#6
0
        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();
        }
示例#10
0
        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());
        }
示例#11
0
 public static void Initialize(SaveData.SaveData someData)
 {
     instance.LoadKeys(someData);
 }