예제 #1
0
		private void SetDefaultFocusedTab()
		{
			var tab = FindTabByName(Global.Game.System);
			if (tab != null)
			{
				PathTabControl.SelectTab(tab);
			}
		}
예제 #2
0
파일: PathConfig.cs 프로젝트: zcatt/BizHawk
        private void SetDefaultFocusedTab()
        {
            var tab = FindTabByName(_currentSystemId);

            if (tab != null)
            {
                PathTabControl.SelectTab(tab);
            }
        }
예제 #3
0
        // All path text boxes should do some kind of error checking
        // Config path under base, config will default to %exe%
        private void LockDownCores()
        {
            if (VersionInfo.DeveloperBuild)
            {
                return;
            }

            string[] coresToHide = { };

            foreach (var core in coresToHide)
            {
                PathTabControl.TabPages.Remove(
                    PathTabControl.TabPages().FirstOrDefault(tp => tp.Name == core) ?? new TabPage());
            }
        }
예제 #4
0
        // All path text boxes should do some kind of error checking
        // Config path under base, config will default to %exe%
        private void LockDownCores()
        {
            if (VersionInfo.DeveloperBuild)
            {
                return;
            }

            string[] coresToHide = { "GB4x", "O2", "ChannelF", "AmstradCPC" };

            foreach (var core in coresToHide)
            {
                var tabPage = PathTabControl.TabPages().First(tp => tp.Name == core);
                PathTabControl.TabPages.Remove(tabPage);
            }
        }
예제 #5
0
 private void SetDefaultFocusedTab()
 {
     PathTabControl.SelectTab(FindTabByName(Global.Game.System));
 }
 private void comboSystem_SelectedIndexChanged(object sender, EventArgs e)
 {
     PathTabControl.SelectTab(((ComboBox)sender).SelectedIndex);
 }
예제 #7
0
        private void DoTabs(IList <PathEntry> pathCollection, string focusTabOfSystem)
        {
            int x             = UIHelper.ScaleX(6);
            int textBoxWidth  = UIHelper.ScaleX(70);
            int padding       = UIHelper.ScaleX(5);
            int buttonWidth   = UIHelper.ScaleX(26);
            int buttonHeight  = UIHelper.ScaleY(23);
            int buttonOffsetY = -1;             // To align the top with the TextBox I guess? Always 1 pixel regardless of scaling.
            int widgetOffset  = UIHelper.ScaleX(85);
            int rowHeight     = UIHelper.ScaleY(30);

            void AddTabPageForSystem(string system, string systemDisplayName)
            {
                var t = new TabPage
                {
                    Name       = system,
                    Text       = systemDisplayName,
                    Width      = UIHelper.ScaleX(200),                // Initial Left/Width of child controls are based on this size.
                    AutoScroll = true
                };
                var paths = pathCollection
                            .Where(p => p.System == system)
                            .OrderBy(p => p.Ordinal)
                            .ThenBy(p => p.Type);

                var y = UIHelper.ScaleY(14);

                foreach (var path in paths)
                {
                    var box = new TextBox
                    {
                        Text                     = path.Path,
                        Location                 = new Point(x, y),
                        Width                    = textBoxWidth,
                        Name                     = path.Type,
                        Anchor                   = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right,
                        MinimumSize              = new Size(UIHelper.ScaleX(26), UIHelper.ScaleY(23)),
                        AutoCompleteMode         = AutoCompleteMode.SuggestAppend,
                        AutoCompleteCustomSource = AutoCompleteOptions,
                        AutoCompleteSource       = AutoCompleteSource.CustomSource
                    };

                    var btn = new Button
                    {
                        Text     = "",
                        Image    = Properties.Resources.OpenFile,
                        Location = new Point(widgetOffset, y + buttonOffsetY),
                        Size     = new Size(buttonWidth, buttonHeight),
                        Name     = path.Type,
                        Anchor   = AnchorStyles.Top | AnchorStyles.Right
                    };

                    var tempBox    = box;
                    var tempPath   = path.Type;
                    var tempSystem = path.System;
                    btn.Click += (sender, args) => BrowseFolder(tempBox, tempPath, tempSystem);

                    var label = new Label
                    {
                        Text     = path.Type,
                        Location = new Point(widgetOffset + buttonWidth + padding, y + UIHelper.ScaleY(4)),
                        Size     = new Size(UIHelper.ScaleX(100), UIHelper.ScaleY(15)),
                        Name     = path.Type,
                        Anchor   = AnchorStyles.Top | AnchorStyles.Right
                    };

                    t.Controls.Add(label);
                    t.Controls.Add(btn);
                    t.Controls.Add(box);

                    y += rowHeight;
                }

                PathTabControl.TabPages.Add(t);
                if (system == focusTabOfSystem || system.Split('_').Contains(focusTabOfSystem))
                {
                    PathTabControl.SelectTab(PathTabControl.TabPages.Count - 1);
                }
            }

            PathTabControl.Visible = false;

            PathTabControl.TabPages.Clear();
            var systems = _pathEntries.Select(e => e.System).Distinct()             // group entries by "system" (intentionally using instance field here, not parameter)
                          .Select(sys => (SysGroup: sys, DisplayName: PathEntryCollection.GetDisplayNameFor(sys)))
                          .OrderBy(tuple => tuple.DisplayName)
                          .ToList();
            // add the Global tab first...
            const string idGlobal = "Global_NULL";

            systems.RemoveAll(tuple => tuple.SysGroup == idGlobal);
            AddTabPageForSystem(idGlobal, PathEntryCollection.GetDisplayNameFor(idGlobal));
            // ...then continue with the others
            foreach (var(sys, dispName) in systems)
            {
                AddTabPageForSystem(sys, dispName);
            }

            PathTabControl.Visible = true;
        }