void group_Click(object sender, RoutedEventArgs e) { TweakStore.Group group = (TweakStore.Group)(sender as TweakGroup).Tag; foreach (TweakGroup curBtn in this.groupGrid.Children) { curBtn.SetFocus(curBtn == sender); } this.tweakGrid.Children.Clear(); this.tweakGrid.RowDefinitions.Clear(); foreach (TweakManager.Tweak tweak in group.Tweaks.Values) { if (!showAll && !tweak.IsAvailable()) { continue; } TweakControl item; if (!Tweaks.TryGetValue(group.Name + "|" + tweak.Name, out item)) { item = new TweakControl(tweak); Tweaks.Add(group.Name + "|" + tweak.Name, item); //item.MouseDown += new MouseButtonEventHandler(tweak_Click); item.Click += new RoutedEventHandler(tweak_Click); item.Toggle += new RoutedEventHandler(tweak_Toggle); //item.ReqSU += new RoutedEventHandler(req_su); item.label.Content = tweak.Name; item.Tag = tweak; item.VerticalAlignment = VerticalAlignment.Top; item.HorizontalAlignment = HorizontalAlignment.Stretch; item.Margin = new Thickness(1, 1, 1, 1); if (!tweak.IsAvailable()) { item.toggle.IsEnabled = false; } } item.Update(); this.tweakGrid.Children.Add(item); RowDefinition row = new RowDefinition(); row.Height = new GridLength(item.Height + 2); this.tweakGrid.RowDefinitions.Add(row); Grid.SetRow(item, tweakGrid.RowDefinitions.Count - 1); //Grid.SetColumn(item, 1); } }
void ToggleGroup(TweakStore.Group group, TweakManager.Tweak.States value, bool bOnlyRecommended = false) { foreach (TweakManager.Tweak tweak in group.Tweaks.Values) { if (bOnlyRecommended && tweak.Hint != TweakManager.Tweak.Hints.Recommended) { continue; } if (value != TweakManager.Tweak.States.Unsellected && tweak.Hint == TweakManager.Tweak.Hints.Optional) // skip optional tweaks, thay are usually eider dangerouse or redundant { continue; } ToggleTweak(tweak, value); } }
void group_Toggle(object sender, RoutedEventArgs e) { TweakGroup item = sender as TweakGroup; TweakStore.Group group = item.Tag as TweakStore.Group; if (TestAdmin()) { if (item.oldValue == null) { int active_count = 0; List <TweakManager.Tweak> to_be_fixed = new List <TweakManager.Tweak>(); foreach (TweakManager.Tweak tweak in group.Tweaks.Values) { if (tweak.Status == true) { active_count++; } else if (tweak.State != TweakManager.Tweak.States.Unsellected) { to_be_fixed.Add(tweak); } } if (active_count == 0) { ToggleGroup(group, TweakManager.Tweak.States.Unsellected); } else // fix tweaks { foreach (TweakManager.Tweak tweak in to_be_fixed) { tweak.Apply(null); } } } else { ToggleGroup(group, (bool)item.IsChecked ? TweakManager.Tweak.States.SelGroupe : TweakManager.Tweak.States.Unsellected); } } UpdateView(); }
public TweakGroup(TweakStore.Group group) { myGroup = group; InitializeComponent(); HashSet <TweakManager.TweakType> tweakTypes = new HashSet <TweakManager.TweakType>(); foreach (TweakManager.Tweak tweak in group.Tweaks.Values) { if (!tweak.IsAvailable()) { continue; } //tweak.StatusChanged += OnStatusChanged; if (!tweakTypes.Contains(tweak.Type)) { tweakTypes.Add(tweak.Type); } } toggle.Click += new RoutedEventHandler(toggle_Checked); int height = 32; int i = 0; foreach (TweakManager.TweakType type in tweakTypes) { ContentControl item; item = new Label(); item.Padding = new Thickness(17, 0, 0, 0); item.MouseDown += new MouseButtonEventHandler(rect_Click); boxes.Add(type, item); item.Content = string.Format("{0}", TweakManager.Tweak.GetTypeStr(type)); item.Height = 16; item.VerticalAlignment = VerticalAlignment.Top; item.HorizontalAlignment = HorizontalAlignment.Left; //check.IsEnabled checks.Children.Add(item); RowDefinition row = new RowDefinition(); row.Height = new GridLength(item.Height); checks.RowDefinitions.Add(row); Grid.SetRow(item, i++); //Grid.SetColumn(item, 1); height += (int)item.Height; } this.Height = height; //OnStatusChanged(null, null); toggle.Click += new RoutedEventHandler(rect_Click); rect.MouseDown += new MouseButtonEventHandler(rect_Click); label.MouseDown += new MouseButtonEventHandler(rect_Click); }