コード例 #1
0
        public void LoadSettings()
        {
            isLoading = true;
            this.flowMain.SuspendLayout();

            for (int i = flowMain.Controls.Count - 1; i > 0; i--)
            {
                flowMain.Controls.RemoveAt(i);
            }

            foreach (SplitName split in Splits)
            {
                MemberInfo           info        = typeof(SplitName).GetMember(split.ToString())[0];
                DescriptionAttribute description = (DescriptionAttribute)info.GetCustomAttributes(typeof(DescriptionAttribute), false)[0];

                HollowKnightSplitSettings setting = new HollowKnightSplitSettings();
                setting.cboName.DataSource = GetAvailableSplits();
                setting.cboName.Text       = description.Description;
                AddHandlers(setting);

                flowMain.Controls.Add(setting);
            }
            chkOldGameTime.Checked = OldGameTime;

            isLoading = false;
            this.flowMain.ResumeLayout(true);
        }
コード例 #2
0
        public void SetSettings(XmlNode settings)
        {
            XmlNode orderedNode          = settings.SelectSingleNode(".//Ordered");
            XmlNode AutosplitEndRunsNode = settings.SelectSingleNode(".//AutosplitEndRuns");
            bool    isOrdered            = false;
            bool    isAutosplitEndRuns   = false;

            if (orderedNode != null)
            {
                bool.TryParse(orderedNode.InnerText, out isOrdered);
            }
            if (AutosplitEndRunsNode != null)
            {
                bool.TryParse(AutosplitEndRunsNode.InnerText, out isAutosplitEndRuns);
            }
            Ordered          = isOrdered;
            AutosplitEndRuns = isAutosplitEndRuns;

            Splits.Clear();
            XmlNodeList splitNodes = settings.SelectNodes(".//Splits/Split");

            foreach (XmlNode splitNode in splitNodes)
            {
                string    splitDescription = splitNode.InnerText;
                SplitName split            = HollowKnightSplitSettings.GetSplitName(splitDescription);
                Splits.Add(split);
            }
        }
コード例 #3
0
        private void btnAddSplit_Click(object sender, EventArgs e)
        {
            HollowKnightSplitSettings setting    = new HollowKnightSplitSettings();
            List <string>             splitNames = GetAvailableSplits();

            setting.cboName.DataSource = splitNames;
            setting.cboName.Text       = splitNames[0];
            AddHandlers(setting);

            flowMain.Controls.Add(setting);
            UpdateSplits();
        }
コード例 #4
0
        public void SetSettings(XmlNode settings)
        {
            Splits.Clear();
            XmlNodeList splitNodes = settings.SelectNodes(".//Splits/Split");

            foreach (XmlNode splitNode in splitNodes)
            {
                string    splitDescription = splitNode.InnerText;
                SplitName split            = HollowKnightSplitSettings.GetSplitName(splitDescription);
                Splits.Add(split);
            }
        }
コード例 #5
0
 private void radio_CheckedChanged(object sender, EventArgs e)
 {
     foreach (Control c in flowMain.Controls)
     {
         if (c is HollowKnightSplitSettings)
         {
             HollowKnightSplitSettings setting = (HollowKnightSplitSettings)c;
             string text = setting.cboName.Text;
             setting.cboName.DataSource = GetAvailableSplits();
             setting.cboName.Text       = text;
         }
     }
 }
コード例 #6
0
        public void SetSettings(XmlNode settings)
        {
            Splits.Clear();
            XmlNodeList splitNodes = settings.SelectNodes(".//Splits/Split");

            foreach (XmlNode splitNode in splitNodes)
            {
                string    splitDescription = splitNode.InnerText;
                SplitName split            = HollowKnightSplitSettings.GetSplitName(splitDescription);
                Splits.Add(split);
            }

            XmlNode gameTime = settings.SelectSingleNode(".//OldGameTime");

            OldGameTime = gameTime == null || string.IsNullOrEmpty(gameTime.InnerText) ? false : bool.Parse(gameTime.InnerText);
        }
コード例 #7
0
        public void UpdateSplits()
        {
            if (isLoading)
            {
                return;
            }

            Splits.Clear();
            foreach (Control c in flowMain.Controls)
            {
                if (c is HollowKnightSplitSettings)
                {
                    HollowKnightSplitSettings setting = (HollowKnightSplitSettings)c;
                    if (!string.IsNullOrEmpty(setting.cboName.Text))
                    {
                        SplitName split = HollowKnightSplitSettings.GetSplitName(setting.cboName.Text);
                        Splits.Add(split);
                    }
                }
            }
        }
コード例 #8
0
        private void flowMain_DragOver(object sender, DragEventArgs e)
        {
            HollowKnightSplitSettings data        = (HollowKnightSplitSettings)e.Data.GetData(typeof(HollowKnightSplitSettings));
            FlowLayoutPanel           destination = (FlowLayoutPanel)sender;
            Point p     = destination.PointToClient(new Point(e.X, e.Y));
            var   item  = destination.GetChildAtPoint(p);
            int   index = destination.Controls.GetChildIndex(item, false);

            if (index == 0)
            {
                e.Effect = DragDropEffects.None;
            }
            else
            {
                e.Effect = DragDropEffects.Move;
                int oldIndex = destination.Controls.GetChildIndex(data);
                if (oldIndex != index)
                {
                    destination.Controls.SetChildIndex(data, index);
                    destination.Invalidate();
                }
            }
        }
コード例 #9
0
 private void RemoveHandlers(HollowKnightSplitSettings setting)
 {
     setting.cboName.SelectedIndexChanged -= ControlChanged;
     setting.btnRemove.Click -= btnRemove_Click;
 }
コード例 #10
0
 private void AddHandlers(HollowKnightSplitSettings setting)
 {
     setting.cboName.SelectedIndexChanged += new EventHandler(ControlChanged);
     setting.btnRemove.Click += new EventHandler(btnRemove_Click);
 }