Example #1
0
        public SAV_BoxViewer(SAVEditor p, SlotChangeManager m)
        {
            parent = p;
            InitializeComponent();
            Box.Setup(m);
            CenterToParent();

            AllowDrop     = true;
            GiveFeedback += (sender, e) => e.UseDefaultCursors = false;
            DragEnter    += Main_DragEnter;
            DragDrop     += (sender, e) =>
            {
                Cursor = DefaultCursor;
                System.Media.SystemSounds.Asterisk.Play();
            };
            Owner = p.ParentForm;

            MouseWheel += (s, e) =>
            {
                if (e.Delta > 1)
                {
                    Box.MoveLeft();
                }
                else
                {
                    Box.MoveRight();
                }
            };

            foreach (PictureBox pb in Box.SlotPictureBoxes)
            {
                pb.ContextMenuStrip = parent.SlotPictureBoxes[0].ContextMenuStrip;
            }
        }
Example #2
0
        public SAV_BoxList(SAVEditor p, SlotChangeManager m)
        {
            InitializeComponent();
            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);

            // initialize boxes dynamically
            var sav = p.SAV;

            Boxes = new BoxEditor[sav.BoxCount];
            AddControls(p, m, sav);
            SetWindowDimensions(sav.BoxCount);

            AllowDrop = true;
            AddEvents();
            CenterToParent();
            Owner = p.ParentForm;
            foreach (var b in Boxes)
            {
                m.Env.Slots.Publisher.Subscribers.Add(b);
            }
            FormClosing += (sender, e) =>
            {
                foreach (var b in Boxes)
                {
                    b.M?.Boxes.Remove(b);
                    m.Env.Slots.Publisher.Subscribers.Remove(b);
                }
            };
        }
Example #3
0
        private void AddControls(SAVEditor p, SlotChangeManager m, SaveFile sav)
        {
            for (int i = 0; i < sav.BoxCount; i++)
            {
                var boxEditor = new BoxEditor
                {
                    Name   = $"BE_Box{i:00}",
                    Margin = new Padding(1),
                    Editor = new BoxEdit(sav),
                };
                boxEditor.Setup(m);
                boxEditor.InitializeGrid();
                boxEditor.Reset();
                foreach (PictureBox pb in boxEditor.SlotPictureBoxes)
                {
                    pb.ContextMenuStrip = p.SlotPictureBoxes[0].ContextMenuStrip;
                }
                boxEditor.CurrentBox           = i;
                boxEditor.CB_BoxSelect.Enabled = false;
                Boxes[i] = boxEditor;
            }
            FLP_Boxes.Controls.AddRange(Boxes);

            // Setup swapping
            foreach (var box in Boxes)
            {
                box.ClearEvents();
                box.B_BoxLeft.Click += (s, e) =>
                {
                    if (s == null)
                    {
                        return;
                    }
                    int index = Array.IndexOf(Boxes, ((Button)s).Parent);
                    int other = (index + Boxes.Length - 1) % Boxes.Length;
                    m.SwapBoxes(index, other, p.SAV);
                };
                box.B_BoxRight.Click += (s, e) =>
                {
                    if (s == null)
                    {
                        return;
                    }
                    int index = Array.IndexOf(Boxes, ((Button)s).Parent);
                    int other = (index + 1) % Boxes.Length;
                    m.SwapBoxes(index, other, p.SAV);
                };
            }
        }
Example #4
0
        public SAV_BoxViewer(SAVEditor p, SlotChangeManager m)
        {
            parent = p;
            InitializeComponent();
            int deltaW = Width - Box.BoxPokeGrid.Width;
            int deltaH = Height - Box.BoxPokeGrid.Height;

            Box.Editor = new BoxEdit(m.SE.SAV);
            Box.Setup(m);
            Box.InitializeGrid();

            Width  = Box.BoxPokeGrid.Width + deltaW + 2;
            Height = Box.BoxPokeGrid.Height + deltaH + 2;

            Box.RecenterControls();
            Box.HorizontallyCenter(this);
            Box.Reset();
            CenterToParent();

            AllowDrop     = true;
            GiveFeedback += (sender, e) => e.UseDefaultCursors = false;
            DragEnter    += Main_DragEnter;
            DragDrop     += (sender, e) =>
            {
                Cursor = DefaultCursor;
                System.Media.SystemSounds.Asterisk.Play();
            };
            Owner = p.ParentForm;

            MouseWheel += (s, e) =>
            {
                if (parent.menu.mnuVSD.Visible)
                {
                    return;
                }
                Box.CurrentBox = e.Delta > 1 ? Box.Editor.MoveLeft() : Box.Editor.MoveRight();
            };

            foreach (PictureBox pb in Box.SlotPictureBoxes)
            {
                pb.ContextMenuStrip = parent.SlotPictureBoxes[0].ContextMenuStrip;
            }
            Box.ResetBoxNames(); // fix box names
            Box.ResetSlots();    // refresh box background
            p.EditEnv.Slots.Publisher.Subscribers.Add(Box);
        }
Example #5
0
        public SAV_BoxList(SAVEditor p, SlotChangeManager m)
        {
            InitializeComponent();

            // initialize boxes dynamically
            var sav = p.SAV;

            AddControls(p, m, sav);
            SetWindowDimensions(sav.BoxCount);

            AllowDrop = true;
            AddEvents();
            CenterToParent();
            Owner        = p.ParentForm;
            FormClosing += (sender, e) =>
            {
                foreach (var b in Boxes)
                {
                    b.M.Boxes.Remove(b);
                }
            };
        }
Example #6
0
        private void AddControls(SAVEditor p, SlotChangeManager m, SaveFile sav)
        {
            for (int i = 0; i < sav.BoxCount; i++)
            {
                var boxEditor = new BoxEditor {
                    Name = $"BE_Box{i:00}", Margin = new Padding(1)
                };
                foreach (PictureBox pb in boxEditor.SlotPictureBoxes)
                {
                    pb.ContextMenuStrip = p.SlotPictureBoxes[0].ContextMenuStrip;
                }
                boxEditor.Setup(m);
                boxEditor.Reset();
                boxEditor.CurrentBox           = i;
                boxEditor.CB_BoxSelect.Enabled = false;
                Boxes.Add(boxEditor);
                FLP_Boxes.Controls.Add(Boxes[i]);
            }

            // Setup swapping
            foreach (var box in Boxes)
            {
                box.ClearEvents();
                box.B_BoxLeft.Click += (s, e) =>
                {
                    int index = Boxes.FindIndex(z => z == ((Button)s).Parent);
                    int other = (index + Boxes.Count - 1) % Boxes.Count;
                    m.SwapBoxes(index, other);
                };
                box.B_BoxRight.Click += (s, e) =>
                {
                    int index = Boxes.FindIndex(z => z == ((Button)s).Parent);
                    int other = (index + 1) % Boxes.Count;
                    m.SwapBoxes(index, other);
                };
            }
        }
Example #7
0
        public SAV_Database(PKMEditor f1, SAVEditor saveditor)
        {
            InitializeComponent();

            ToolStripMenuItem mnuView = new ToolStripMenuItem {
                Name = "mnuView", Text = "View"
            };
            ToolStripMenuItem mnuDelete = new ToolStripMenuItem {
                Name = "mnuDelete", Text = "Delete"
            };

            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            ContextMenuStrip mnu = new ContextMenuStrip();

            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete });

            SAV       = saveditor.SAV;
            BoxView   = saveditor;
            PKME_Tabs = f1;

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            PKXBOXES = new[]
            {
                bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6,
                bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12,
                bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18,
                bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24,
                bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30,

                bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36,
                bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42,
                bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48,
                bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54,
                bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60,
                bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66,
            };

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender, e);
                    }
                    else if (ModifierKeys == Keys.Alt)
                    {
                        ClickDelete(sender, e);
                    }
                    else if (ModifierKeys == Keys.Shift)
                    {
                        ClickSet(sender, e);
                    }
                };
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = string.Empty; // invis for now
            var hover = new ToolTip();

            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);
            PopulateComboBoxes();

            // Assign event handlers
            mnuView.Click   += ClickView;
            mnuDelete.Click += ClickDelete;

            // Add to main context menu

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            new Task(LoadDatabase).Start();

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CB_Format.Items[0] = MsgAny;
            CenterToParent();
        }
Example #8
0
        public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav)
        {
            InitializeComponent();

            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);

            SAV       = sav.SAV;
            BoxView   = sav;
            PKME_Tabs = tabs;

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            var grid        = MysteryPokeGrid;
            var smallWidth  = grid.Width;
            var smallHeight = grid.Height;

            grid.InitializeGrid(6, 11, SpriteUtil.Spriter);
            grid.SetBackground(Resources.box_wp_clean);
            var newWidth  = grid.Width;
            var newHeight = grid.Height;
            var wdelta    = newWidth - smallWidth;

            if (wdelta != 0)
            {
                Width += wdelta;
            }
            var hdelta = newHeight - smallHeight;

            if (hdelta != 0)
            {
                Height += hdelta;
            }

            PKXBOXES = grid.Entries.ToArray();

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender !, e);
                    }
                };

                slot.ContextMenuStrip = mnu;
            }

            Counter              = L_Count.Text;
            Viewed               = L_Viewed.Text;
            L_Viewed.Text        = string.Empty; // invis for now
            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            new Task(LoadDatabase).Start();

            CB_Format.Items[0] = MsgAny;
            CenterToParent();
        }
Example #9
0
        public SAV_Database(PKMEditor f1, SAVEditor saveditor)
        {
            InitializeComponent();

            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete });

            SAV       = saveditor.SAV;
            BoxView   = saveditor;
            PKME_Tabs = f1;

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=
            pokeGrid1.InitializeGrid(6, 11);
            pokeGrid1.SetBackground(Resources.box_wp_clean);
            PKXBOXES = pokeGrid1.Entries.ToArray();

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    switch (ModifierKeys)
                    {
                    case Keys.Control: ClickView(sender, e); break;

                    case Keys.Alt: ClickDelete(sender, e); break;

                    case Keys.Shift: ClickSet(sender, e); break;
                    }
                };

                if (Settings.Default.HoverSlotShowText)
                {
                    slot.MouseEnter += ShowHoverTextForSlot;
                }
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = string.Empty; // invisible for now
            PopulateComboBoxes();

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            new Task(LoadDatabase).Start();

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CB_Format.Items[0] = MsgAny;
            CenterToParent();
        }
Example #10
0
        public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav)
        {
            SAV       = sav.SAV;
            PKME_Tabs = tabs;
            InitializeComponent();

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            PKXBOXES = new[]
            {
                bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6,
                bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12,
                bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18,
                bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24,
                bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30,

                bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36,
                bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42,
                bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48,
                bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54,
                bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60,
                bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66,
            };

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender, e);
                    }
                };
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = ""; // invis for now
            var hover = new ToolTip();

            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);

            ContextMenuStrip  mnu       = new ContextMenuStrip();
            ToolStripMenuItem mnuView   = new ToolStripMenuItem("View");
            ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem("Save Gift");
            ToolStripMenuItem mnuSavePK = new ToolStripMenuItem("Save PKM");

            // Assign event handlers
            mnuView.Click   += ClickView;
            mnuSaveMG.Click += ClickSaveMG;
            mnuSavePK.Click += ClickSavePK;

            // Add to main context menu
            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK });

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            new Task(LoadDatabase).Start();

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CenterToParent();
        }
Example #11
0
        public SAV_Database(PKMEditor f1, SAVEditor saveditor)
        {
            InitializeComponent();

            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);

            SAV       = saveditor.SAV;
            BoxView   = saveditor;
            PKME_Tabs = f1;

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            var grid        = DatabasePokeGrid;
            var smallWidth  = grid.Width;
            var smallHeight = grid.Height;

            grid.InitializeGrid(6, 11, SpriteUtil.Spriter);
            grid.SetBackground(Resources.box_wp_clean);
            var newWidth  = grid.Width;
            var newHeight = grid.Height;
            var wdelta    = newWidth - smallWidth;

            if (wdelta != 0)
            {
                Width += wdelta;
            }
            var hdelta = newHeight - smallHeight;

            if (hdelta != 0)
            {
                Height += hdelta;
            }
            PKXBOXES = grid.Entries.ToArray();

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (sender == null)
                    {
                        return;
                    }
                    switch (ModifierKeys)
                    {
                    case Keys.Control: ClickView(sender, e); break;

                    case Keys.Alt: ClickDelete(sender, e); break;

                    case Keys.Shift: ClickSet(sender, e); break;
                    }
                };

                slot.ContextMenuStrip = mnu;
                if (Settings.Default.HoverSlotShowText)
                {
                    slot.MouseEnter += (o, args) => ShowHoverTextForSlot(slot, args);
                }
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = string.Empty; // invisible for now
            PopulateComboBoxes();

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            var task = new Task(LoadDatabase);

            task.ContinueWith(z =>
            {
                if (!z.IsFaulted)
                {
                    return;
                }
                Invoke((MethodInvoker)(() => L_Count.Text = "Failed."));
                if (z.Exception == null)
                {
                    return;
                }
                WinFormsUtil.Error("Loading database failed.", z.Exception.InnerException ?? new Exception(z.Exception.Message));
            });
            task.Start();

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CB_Format.Items[0] = MsgAny;
            CenterToParent();
        }
Example #12
0
        public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav)
        {
            InitializeComponent();

            ToolStripMenuItem mnuView = new ToolStripMenuItem {
                Name = "mnuView", Text = "View", Image = Resources.other
            };
            ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem {
                Name = "mnuSaveMG", Text = "Save Gift", Image = Resources.gift
            };
            ToolStripMenuItem mnuSavePK = new ToolStripMenuItem {
                Name = "mnuSavePK", Text = "Save PKM", Image = Resources.savePKM
            };

            WinFormsUtil.TranslateInterface(this, Main.CurrentLanguage);
            ContextMenuStrip mnu = new ContextMenuStrip();

            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK });

            SAV       = sav.SAV;
            BoxView   = sav;
            PKME_Tabs = tabs;

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            pokeGrid1.InitializeGrid(6, 11);
            pokeGrid1.SetBackground(Resources.box_wp_clean);
            PKXBOXES = pokeGrid1.Entries.ToArray();

            // Enable Scrolling when hovered over
            foreach (var slot in PKXBOXES)
            {
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender, e);
                    }
                };
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = string.Empty; // invis for now
            var hover = new ToolTip();

            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);

            // Assign event handlers
            mnuView.Click   += ClickView;
            mnuSaveMG.Click += ClickSaveMG;
            mnuSavePK.Click += ClickSavePK;

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            B_Search.Enabled = false;
            L_Count.Text     = "Loading...";
            new Task(LoadDatabase).Start();

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CB_Format.Items[0] = MsgAny;
            CenterToParent();
        }
Example #13
0
 public BoxManipulatorWF(SAVEditor editor)
 {
     Editor = editor;
 }
Example #14
0
        public SAV_Database(PKMEditor f1, SAVEditor saveditor)
        {
            SAV       = saveditor.SAV;
            BoxView   = saveditor;
            PKME_Tabs = f1;
            InitializeComponent();

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            PKXBOXES = new[]
            {
                bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6,
                bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12,
                bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18,
                bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24,
                bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30,

                bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36,
                bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42,
                bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48,
                bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54,
                bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60,
                bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66,
            };

            // Enable Scrolling when hovered over
            PAN_Box.MouseWheel += (sender, e) =>
            {
                if (ActiveForm == this)
                {
                    SCR_Box.Focus();
                }
            };
            foreach (var slot in PKXBOXES)
            {
                slot.MouseWheel += (sender, e) =>
                {
                    if (ActiveForm == this)
                    {
                        SCR_Box.Focus();
                    }
                };
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender, e);
                    }
                    else if (ModifierKeys == Keys.Alt)
                    {
                        ClickDelete(sender, e);
                    }
                    else if (ModifierKeys == Keys.Shift)
                    {
                        ClickSet(sender, e);
                    }
                };
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = ""; // invis for now
            var hover = new ToolTip();

            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);
            PopulateComboBoxes();

            ContextMenuStrip  mnu       = new ContextMenuStrip();
            ToolStripMenuItem mnuView   = new ToolStripMenuItem("View");
            ToolStripMenuItem mnuDelete = new ToolStripMenuItem("Delete");

            // Assign event handlers
            mnuView.Click   += ClickView;
            mnuDelete.Click += ClickDelete;

            // Add to main context menu
            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuDelete });

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            var dbTemp = new ConcurrentBag <PKM>();
            var files  = Directory.GetFiles(DatabasePath, "*", SearchOption.AllDirectories);

            Parallel.ForEach(files, file =>
            {
                FileInfo fi = new FileInfo(file);
                if (!fi.Extension.Contains(".pk") || !PKX.IsPKM(fi.Length))
                {
                    return;
                }
                var pk = PKMConverter.GetPKMfromBytes(File.ReadAllBytes(file), file, prefer: (fi.Extension.Last() - 0x30) & 7);
                if (pk != null)
                {
                    dbTemp.Add(pk);
                }
            });

#if DEBUG
            if (SaveUtil.GetSavesFromFolder(Main.BackupPath, false, out IEnumerable <string> result))
            {
                Parallel.ForEach(result, file =>
                {
                    var sav  = SaveUtil.GetVariantSAV(File.ReadAllBytes(file));
                    var path = EXTERNAL_SAV + new FileInfo(file).Name;
                    if (sav.HasBox)
                    {
                        foreach (var pk in sav.BoxData)
                        {
                            addPKM(pk);
                        }
                    }

                    void addPKM(PKM pk)
                    {
                        pk.Identifier = Path.Combine(path, pk.Identifier);
                        dbTemp.Add(pk);
                    }
                });
            }
#endif

            // Prepare Database
            RawDB = new List <PKM>(dbTemp.OrderBy(pk => pk.Identifier)
                                   .Concat(SAV.BoxData.Where(pk => pk.Species != 0))      // Fetch from save file
                                   .Where(pk => pk.ChecksumValid && pk.Species != 0 && pk.Sanity == 0)
                                   .Distinct());
            SetResults(RawDB);

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };
            CenterToParent();
        }
Example #15
0
        public SAV_MysteryGiftDB(PKMEditor tabs, SAVEditor sav)
        {
            SAV       = sav.SAV;
            PKME_Tabs = tabs;
            InitializeComponent();

            // Preset Filters to only show PKM available for loaded save
            CB_FormatComparator.SelectedIndex = 3; // <=

            PKXBOXES = new[]
            {
                bpkx1, bpkx2, bpkx3, bpkx4, bpkx5, bpkx6,
                bpkx7, bpkx8, bpkx9, bpkx10, bpkx11, bpkx12,
                bpkx13, bpkx14, bpkx15, bpkx16, bpkx17, bpkx18,
                bpkx19, bpkx20, bpkx21, bpkx22, bpkx23, bpkx24,
                bpkx25, bpkx26, bpkx27, bpkx28, bpkx29, bpkx30,

                bpkx31, bpkx32, bpkx33, bpkx34, bpkx35, bpkx36,
                bpkx37, bpkx38, bpkx39, bpkx40, bpkx41, bpkx42,
                bpkx43, bpkx44, bpkx45, bpkx46, bpkx47, bpkx48,
                bpkx49, bpkx50, bpkx51, bpkx52, bpkx53, bpkx54,
                bpkx55, bpkx56, bpkx57, bpkx58, bpkx59, bpkx60,
                bpkx61, bpkx62, bpkx63, bpkx64, bpkx65, bpkx66,
            };

            // Enable Scrolling when hovered over
            PAN_Box.MouseWheel += (sender, e) =>
            {
                if (ActiveForm == this)
                {
                    SCR_Box.Focus();
                }
            };
            foreach (var slot in PKXBOXES)
            {
                slot.MouseWheel += (sender, e) =>
                {
                    if (ActiveForm == this)
                    {
                        SCR_Box.Focus();
                    }
                };
                // Enable Click
                slot.MouseClick += (sender, e) =>
                {
                    if (ModifierKeys == Keys.Control)
                    {
                        ClickView(sender, e);
                    }
                };
            }

            Counter       = L_Count.Text;
            Viewed        = L_Viewed.Text;
            L_Viewed.Text = ""; // invis for now
            var hover = new ToolTip();

            L_Viewed.MouseEnter += (sender, e) => hover.SetToolTip(L_Viewed, L_Viewed.Text);

            ContextMenuStrip  mnu       = new ContextMenuStrip();
            ToolStripMenuItem mnuView   = new ToolStripMenuItem("View");
            ToolStripMenuItem mnuSaveMG = new ToolStripMenuItem("Save Gift");
            ToolStripMenuItem mnuSavePK = new ToolStripMenuItem("Save PKM");

            // Assign event handlers
            mnuView.Click   += ClickView;
            mnuSaveMG.Click += ClickSaveMG;
            mnuSavePK.Click += ClickSavePK;

            // Add to main context menu
            mnu.Items.AddRange(new ToolStripItem[] { mnuView, mnuSaveMG, mnuSavePK });

            // Assign to datagridview
            foreach (PictureBox p in PKXBOXES)
            {
                p.ContextMenuStrip = mnu;
            }

            // Load Data
            RawDB = new List <MysteryGift>();
            RawDB.AddRange(Legal.MGDB_G4);
            RawDB.AddRange(Legal.MGDB_G5);
            RawDB.AddRange(Legal.MGDB_G6);
            RawDB.AddRange(Legal.MGDB_G7);

            RawDB = new List <MysteryGift>(RawDB.Where(mg => !mg.IsItem && mg.IsPokémon && mg.Species > 0).Distinct().Concat(Legal.MGDB_G3).OrderBy(mg => mg.Species));
            foreach (var mg in RawDB)
            {
                mg.GiftUsed = false;
            }
            SetResults(RawDB);

            Menu_SearchSettings.DropDown.Closing += (sender, e) =>
            {
                if (e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
                {
                    e.Cancel = true;
                }
            };

            PopulateComboBoxes();
            CenterToParent();
        }