Example #1
0
        public ToggleTricksForm(LogicMode logicMode, string userLogicFilename, IEnumerable <string> tricksEnabled)
        {
            InitializeComponent();
            Result = tricksEnabled.ToList();

            var lines    = LogicUtils.ReadRulesetFromResources(logicMode, userLogicFilename);
            var itemList = LogicUtils.PopulateItemListFromLogicData(lines);

            var y      = 9;
            var deltaY = 23;
            var tricks = itemList.Where(io => io.IsTrick);

            foreach (var itemObject in tricks.OrderBy(io => io.Name))
            {
                var cTrick = new CheckBox();
                cTrick.Tag     = itemObject;
                cTrick.Checked = tricksEnabled.Contains(itemObject.Name);
                cTrick.Text    = itemObject.Name;
                TooltipBuilder.SetTooltip(cTrick, itemObject.TrickTooltip);
                cTrick.Location        = new Point(9, y);
                cTrick.Size            = new Size(pTricks.Width - 50, deltaY);
                cTrick.CheckedChanged += cTrick_CheckedChanged;
                pTricks.Controls.Add(cTrick);
                y += deltaY;
            }
        }
Example #2
0
        private void Write_Tricks()
        {
            pTricks.Controls.Clear();
            var itemList = LogicUtils.PopulateItemListFromLogicData(LogicFile);

            var y          = 9;
            var deltaY     = 23;
            var tricks     = itemList.Where(io => io.IsTrick);
            var categories = tricks.Select(io => string.IsNullOrWhiteSpace(io.TrickCategory) ? "Misc" : io.TrickCategory).Distinct().ToList();

            if (categories.Count > 1)
            {
                foreach (var i in tricks)
                {
                    i.TrickCategory = string.IsNullOrWhiteSpace(i.TrickCategory) ? "Misc" : i.TrickCategory;
                }
                tricks = tricks.OrderBy(io => categories.IndexOf(io.TrickCategory));
            }

            string currentCategory = string.Empty;

            foreach (var itemObject in tricks)
            {
                if (!itemObject.Name.ToLower().Contains(txtSearch.Text.ToLower()))
                {
                    continue;
                }
                if (itemObject.TrickCategory != null && currentCategory != itemObject.TrickCategory)
                {
                    currentCategory = itemObject.TrickCategory;
                    var cCategory = new InvertIndeterminateCheckBox();
                    cCategory.Text               = currentCategory + ":";
                    cCategory.Location           = new Point(9, y);
                    cCategory.Size               = new Size(pTricks.Width - 50, deltaY);
                    cCategory.CheckStateChanged += cTrick_CheckStateChanged;
                    cCategory.Tag = tricks
                                    .Where(io => io.TrickCategory == currentCategory && io.Name.ToLower().Contains(txtSearch.Text.ToLower()))
                                    .Select(io => io.Name)
                                    .ToHashSet();
                    pTricks.Controls.Add(cCategory);
                    y += deltaY;
                }
                var cTrick = new CheckBox();
                cTrick.Tag = new HashSet <string> {
                    itemObject.Name
                };
                cTrick.Checked = Result.Contains(itemObject.Name);
                cTrick.Text    = itemObject.Name;
                TooltipBuilder.SetTooltip(cTrick, itemObject.TrickTooltip);
                cTrick.Location           = new Point(18, y);
                cTrick.Size               = new Size(pTricks.Width - 50, deltaY);
                cTrick.CheckStateChanged += cTrick_CheckStateChanged;
                pTricks.Controls.Add(cTrick);
                y += deltaY;
            }
            CalculateCategoryCheckboxes();
        }