Example #1
0
        private CPCDSK.Document.Item GetSelectedItem()
        {
            if (lvFiles.SelectedIndices.Count == 0)
            {
                return(null);
            }

            int index = lvFiles.SelectedIndices[0];

            CPCDSK.Document.Item item = Document.Items[index];
            return(item);
        }
Example #2
0
        private void cbTrackLoaderItem_CheckedChanged(object sender, EventArgs e)
        {
            CPCDSK.Document.Item item = GetSelectedItem();
            if (item == null)
            {
                return;
            }

            item.TrackLoaderItem = cbTrackLoaderItem.Checked;
            RefreshListViewItem(lvFiles.SelectedItems[0], item);

            SetModified(true);
        }
Example #3
0
        private void cbCopyToWinAPERomFolder_CheckedChanged(object sender, EventArgs e)
        {
            CPCDSK.Document.Item item = GetSelectedItem();
            if (item == null)
            {
                return;
            }

            item.CopyToWinAPEROMFolder = cbCopyToWinAPERomFolder.Checked;

            RefreshListViewItem(lvFiles.SelectedItems[0], item);

            SetModified(true);
        }
Example #4
0
        private void ExecAdress_TextChanged(object sender, EventArgs e)
        {
            CPCDSK.Document.Item item = GetSelectedItem();
            if (item == null)
            {
                return;
            }

            item.ExecAdress = GetInt(ExecAdress.Text);

            RefreshListViewItem(lvFiles.SelectedItems[0], item);

            SetModified(true);
        }
Example #5
0
        private void AmsdosFilename_TextChanged(object sender, EventArgs e)
        {
            CPCDSK.Document.Item item = GetSelectedItem();
            if (item == null)
            {
                return;
            }

            item.AmsdosFilename = AmsdosFilename.Text.ToUpper();

            RefreshListViewItem(lvFiles.SelectedItems[0], item);

            SetModified(true);
        }
Example #6
0
        private void lvFiles_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (isControlUpdating)
            {
                return;
            }

            RefreshMoveButtonStates();

            if (lvFiles.SelectedIndices.Count == 0)
            {
                ResetItemPropertiesUI();

                gbFileProperties.Enabled = false;

                return;
            }

            isControlUpdating = true;

            gbFileProperties.Enabled = true;

            int index = lvFiles.SelectedIndices[0];

            if (index >= 0)
            {
                CPCDSK.Document.Item item = Document.Items[index];

                AmsdosFilename.Text = item.AmsdosFilename;

                if (item.ItemType == CPCDSK.Document.ItemType.Binary)
                {
                    cbType.SelectedIndex = 0;
                }
                else
                {
                    cbType.SelectedIndex = 1;
                }

                LoadAdress.Text = "0x" + String.Format("{0:X4}", item.LoadAdress); // Load Adress
                ExecAdress.Text = "0x" + String.Format("{0:X4}", item.ExecAdress); // Execution Adress

                cbCopyToWinAPERomFolder.Checked = item.CopyToWinAPEROMFolder;
                cbTrackLoaderItem.Checked       = item.TrackLoaderItem;
            }

            isControlUpdating = false;
        }
Example #7
0
        private void cbType_SelectedIndexChanged(object sender, EventArgs e)
        {
            CPCDSK.Document.Item item = GetSelectedItem();

            if (item == null)
            {
                return;
            }

            if (cbType.SelectedIndex == 0)
            {
                item.ItemType = CPCDSK.Document.ItemType.Binary;
            }
            else
            {
                item.ItemType = CPCDSK.Document.ItemType.Basic;
            }

            RefreshListViewItem(lvFiles.SelectedItems[0], item);

            SetModified(true);
        }
Example #8
0
        private void MoveDown_Click(object sender, EventArgs e)
        {
            if (lvFiles.SelectedIndices.Count == 0)
            {
                return;
            }

            int index = lvFiles.SelectedIndices[0];

            if (index < (lvFiles.Items.Count - 1))
            {
                CPCDSK.Document.Item item = Document.Items[index];

                Document.Items.RemoveAt(index);
                Document.Items.Insert(index + 1, item);

                SetModified(true);
                RefreshUI();

                lvFiles.SelectedIndices.Clear();
                lvFiles.Items[index + 1].Selected = true;
                lvFiles.Items[index + 1].EnsureVisible();
            }
        }
Example #9
0
        private void Reorder_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter =
                "All Order files (*.*)|*.*";

            openFileDialog.Multiselect = false;
            openFileDialog.Title = "Select Order file(s)...";
            openFileDialog.FileName = String.Empty;
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                Plugin.ControllerEditor.Host.Log("Re-ordering...");

                var filename = openFileDialog.FileName;

                var orderContent = File.ReadAllBytes(filename);

                var newItems = new List<CPCDSK.Document.Item>(Document.Items.Count);

                foreach (var oldAmsdosItem in Document.Items)
                {
                    if ( oldAmsdosItem.TrackLoaderItem == false )
                    {
                        newItems.Add(oldAmsdosItem);
                    }
                }

                foreach( var fileIndex in orderContent )
                {
                    var oldItem = Document.Items[(int)(fileIndex)];

                    int foundCount = 0;
                    foreach( var newItem in newItems )
                    {
                        if ( newItem.ResourceID == oldItem.ResourceID )
                        {
                            foundCount++;
                        }
                    }

                    if (foundCount!=0)
                    {
                        PhactoryHost.Database.Resource resource = Plugin.ControllerEditor.Host.GetResource(oldItem.ResourceID);

                        var duplicateItem = new CPCDSK.Document.Item();
                        duplicateItem.ResourceID = oldItem.ResourceID;
                        duplicateItem.LoadAdress = oldItem.LoadAdress;
                        duplicateItem.ExecAdress = oldItem.ExecAdress;
                        duplicateItem.ItemType = oldItem.ItemType;
                        duplicateItem.CopyToWinAPEROMFolder = oldItem.CopyToWinAPEROMFolder;
                        duplicateItem.TrackLoaderItem = oldItem.TrackLoaderItem;
                        duplicateItem.AmsdosFilename = oldItem.AmsdosFilename;
                        duplicateItem.IsDuplicate = true;
                        duplicateItem.DuplicatedIndex = foundCount + 1;

                        Plugin.ControllerEditor.Host.Log("Duplicate created : " + resource.DisplayName + " (was File Index=" + ((int)fileIndex) + ")");

                        newItems.Add(duplicateItem);
                    }
                    else
                    {
                        newItems.Add(oldItem);
                    }
                }

                Document.Items = newItems;

                Plugin.ControllerEditor.Host.Log("Reorder completed");

                SetModified(true);

                RefreshUI();
            }
        }
Example #10
0
        private void Reorder_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter =
                "All Order files (*.*)|*.*";

            openFileDialog.Multiselect      = false;
            openFileDialog.Title            = "Select Order file(s)...";
            openFileDialog.FileName         = String.Empty;
            openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                Plugin.ControllerEditor.Host.Log("Re-ordering...");

                var filename = openFileDialog.FileName;

                var orderContent = File.ReadAllBytes(filename);

                var newItems = new List <CPCDSK.Document.Item>(Document.Items.Count);

                foreach (var oldAmsdosItem in Document.Items)
                {
                    if (oldAmsdosItem.TrackLoaderItem == false)
                    {
                        newItems.Add(oldAmsdosItem);
                    }
                }

                foreach (var fileIndex in orderContent)
                {
                    var oldItem = Document.Items[(int)(fileIndex)];

                    int foundCount = 0;
                    foreach (var newItem in newItems)
                    {
                        if (newItem.ResourceID == oldItem.ResourceID)
                        {
                            foundCount++;
                        }
                    }

                    if (foundCount != 0)
                    {
                        PhactoryHost.Database.Resource resource = Plugin.ControllerEditor.Host.GetResource(oldItem.ResourceID);

                        var duplicateItem = new CPCDSK.Document.Item();
                        duplicateItem.ResourceID            = oldItem.ResourceID;
                        duplicateItem.LoadAdress            = oldItem.LoadAdress;
                        duplicateItem.ExecAdress            = oldItem.ExecAdress;
                        duplicateItem.ItemType              = oldItem.ItemType;
                        duplicateItem.CopyToWinAPEROMFolder = oldItem.CopyToWinAPEROMFolder;
                        duplicateItem.TrackLoaderItem       = oldItem.TrackLoaderItem;
                        duplicateItem.AmsdosFilename        = oldItem.AmsdosFilename;
                        duplicateItem.IsDuplicate           = true;
                        duplicateItem.DuplicatedIndex       = foundCount + 1;

                        Plugin.ControllerEditor.Host.Log("Duplicate created : " + resource.DisplayName + " (was File Index=" + ((int)fileIndex) + ")");

                        newItems.Add(duplicateItem);
                    }
                    else
                    {
                        newItems.Add(oldItem);
                    }
                }

                Document.Items = newItems;

                Plugin.ControllerEditor.Host.Log("Reorder completed");

                SetModified(true);

                RefreshUI();
            }
        }