void category_Click(object sender, RoutedEventArgs e) { TweakStore.Category cat = (TweakStore.Category)(sender as ToggleButton).Tag; foreach (ToggleButton curBtn in this.catGrid.Children) { curBtn.IsChecked = curBtn == sender; curBtn.Background = new SolidColorBrush(((bool)curBtn.IsChecked) ? Color.FromArgb(255, 230, 240, 255) : Color.FromArgb(255, 235, 235, 235)); } this.groupGrid.Children.Clear(); this.groupGrid.RowDefinitions.Clear(); this.tweakGrid.Children.Clear(); this.tweakGrid.RowDefinitions.Clear(); foreach (TweakStore.Group group in cat.Groups.Values) { if (!showAll && !group.IsAvailable()) { continue; } TweakGroup item; if (!Groups.TryGetValue(group.Name, out item)) { item = new TweakGroup(group); Groups.Add(group.Name, item); //item.MouseDown += new MouseButtonEventHandler(group_Click); item.Click += new RoutedEventHandler(group_Click); item.Toggle += new RoutedEventHandler(group_Toggle); //item.ReqSU += new RoutedEventHandler(req_su); item.label.Content = group.Name; item.Tag = group; item.VerticalAlignment = VerticalAlignment.Top; item.HorizontalAlignment = HorizontalAlignment.Stretch; item.Margin = new Thickness(1, 1, 1, 1); if (!group.IsAvailable()) { item.toggle.IsEnabled = false; } } item.Update(); // note: this tests all tweaks in the groupe this.groupGrid.Children.Add(item); RowDefinition row = new RowDefinition(); row.Height = new GridLength(item.Height + 2); this.groupGrid.RowDefinitions.Add(row); Grid.SetRow(item, groupGrid.RowDefinitions.Count - 1); //Grid.SetColumn(item, 1); } }
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(); }