Пример #1
0
        private void mnuColors_DropDownOpening(object sender, EventArgs e)
        {
            mnuPalettes.DropDownItems.Clear();

            var paths = Directory.GetFiles("Palettes", "*.json");

            foreach (var path in paths)
            {
                var fileName = Path.GetFileName(path);

                mnuPalettes.DropDownItems.Add(
                    new ToolStripMenuItem(
                        Path.GetFileNameWithoutExtension(path),
                        null,
                        (s, e) =>
                {
                    ColorManager.LoadPalette(PaletteDefinition.FromFile(fileName));
                    Settings.Default.CurrentColorPalette = fileName;
                }
                        )
                {
                    Checked = fileName == Settings.Default.CurrentColorPalette
                }
                    );
            }
        }
Пример #2
0
 private void mnuImportVICEPaletteFile_Click(object sender, EventArgs e)
 {
     if (ofdImportVicePaletteFile.ShowDialog() == DialogResult.OK)
     {
         var fn = ofdImportVicePaletteFile.FileName;
         var pd = PaletteDefinition.ImportVicePaletteFile(fn);
         ColorManager.LoadPalette(pd);
         Settings.Default.CurrentColorPalette = $"{Path.GetFileNameWithoutExtension(fn)}.json";
     }
 }
Пример #3
0
        public VicIi(TvSystem tvSystem)
        {
            ColorManager.LoadPalette(PaletteDefinition.FromFile(Settings.Default.CurrentColorPalette));

            _tvSystem   = tvSystem;
            _fullHeight = tvSystem == TvSystem.PAL ? FULL_HEIGHT_PAL : FULL_HEIGHT_NTSC;

            var fullHeight = tvSystem == TvSystem.PAL ? FULL_HEIGHT_PAL : FULL_HEIGHT_NTSC;

            FullFrame    = new Rectangle(0, 0, FULL_WIDTH, fullHeight);
            BorderFrame  = new Rectangle(48, 14, 403, USABLE_HEIGHT_BORDER);
            DisplayFrame = new Rectangle(88, 56, USABLE_WIDTH, USABLE_HEIGHT);

            ScreenBufferPixels = new Color[fullHeight, FULL_WIDTH];
        }
Пример #4
0
        private async Task HandleFileOpen(string fileName)
        {
            var ext = Path.GetExtension(fileName);

            switch (ext.ToLower())
            {
            case ".prg":
                await C64.Cpu.Pause();

                LoadPrg(fileName, true);
                C64.Cpu.Resume();
                _osdManager.AddItem($"Loaded {Path.GetFileName(fileName)}");
                fsw.Path = Path.GetDirectoryName(fileName);
                break;

            case ".crt":
            case ".bin":
                await InsertCartridge(fileName);

                _osdManager.AddItem($"Inserted {Path.GetFileName(fileName)}");
                break;

            case ".vpl":     // VICE Palette file
                ColorManager.LoadPalette(PaletteDefinition.FromVicePaletteFile(fileName));
                _osdManager.AddItem($"Loaded {Path.GetFileName(fileName)}");
                break;

            case ".json":     // Just color palettes for now
                ColorManager.LoadPalette(PaletteDefinition.FromFile(fileName));
                _osdManager.AddItem($"Loaded {Path.GetFileName(fileName)}");
                break;

            default:
                // Using Task.Run to prevent a bug where the window locks up when using drag and drop
                _osdManager.AddItem($"Unknown file format!");
                await Task.Run(() => MessageBox.Show("Unknown file format.", "Unknown", MessageBoxButtons.OK, MessageBoxIcon.Warning));

                return;
            }
        }
 public PaletteHolder(PaletteDefinition definition)
 {
     TreeItems  = new List <TreeItemModel>();
     Definition = definition;
 }
Пример #6
0
        private DefinitionBase CreateDefinition(FieldList source)
        {
            if (source == null)
            {
                return(null);
            }

            int   defID                   = source[MessageOutFieldID.DefinitionID].AsInteger() ?? 0;
            short primitiveType           = source[DefAgentFieldID.DefinitionType].AsShort() ?? 0;
            short secondaryCharacteristic = 0;

            DefinitionBase res = null;

            switch ((DefinitionType)primitiveType)
            {
            case DefinitionType.AtomicBlock:
            {
                FieldList firstStateData = (FieldList)source[DefAgentFieldID.DataPerComponentState];

                if (firstStateData != null)
                {
                    secondaryCharacteristic = firstStateData[DefAgentFieldID.LayoutType].AsByte() ?? 0;

                    switch ((LayoutType)secondaryCharacteristic)
                    {
                    case LayoutType.Table:
                        AtomicBlockDefinition ab = new AtomicBlockDefinition();
                        ab.Unpack(source);

                        res = ab;
                        break;

                    case LayoutType.SingleSlot:
                        SingleSlotBlockDefinition ssb = new SingleSlotBlockDefinition();
                        ssb.Unpack(source);

                        res = ssb;
                        break;

                    case LayoutType.ScrollingText:
                        ScrollingTextBlockDefinition stbd = new ScrollingTextBlockDefinition();
                        stbd.Unpack(source);

                        res = stbd;
                        break;

                    default:
                        DebugHelper.Out("Unsupported layout type for atomic: {0}", ((LayoutType)secondaryCharacteristic).ToString());
                        break;
                    }
                }

                break;
            }

            case DefinitionType.Container:
            {
                secondaryCharacteristic = source[DefAgentFieldID.LayoutType].AsByte() ?? 0;

                switch ((LayoutType)secondaryCharacteristic)
                {
                case LayoutType.Box:
                    BoxLayoutBlockDefinition bx = new BoxLayoutBlockDefinition();
                    bx.Unpack(source);

                    res = bx;
                    break;

                case LayoutType.Flow:
                    ListBlockDefinition fl = new ListBlockDefinition();
                    fl.Unpack(source);

                    res = fl;
                    break;

                case LayoutType.Grid:
                    GridBlockDefinition gr = new GridBlockDefinition();
                    gr.Unpack(source);

                    res = gr;
                    break;

                default:
                    DebugHelper.Out("Unsupported layout type for container: {0}", ((LayoutType)secondaryCharacteristic).ToString());
                    break;
                }

                break;
            }

            case DefinitionType.Frame:
            {
                FrameDefinition fd = new FrameDefinition();
                fd.Unpack(source);

                res = fd;
                break;
            }

            case DefinitionType.Plugin:
            {
                secondaryCharacteristic = source[DefAgentFieldID.PluginType].AsByte() ?? 0;

                switch ((PluginType)secondaryCharacteristic)
                {
                case PluginType.Map:
                    MapPluginBlockDefinition mpbd = new MapPluginBlockDefinition();
                    mpbd.Unpack(source);

                    res = mpbd;
                    break;

                default:
                    DebugHelper.Out("Unsupported plug-in type: {0}", ((PluginType)secondaryCharacteristic).ToString());
                    break;
                }

                break;
            }

            case DefinitionType.Palette:
            {
                PaletteDefinition palette = new PaletteDefinition();
                palette.Unpack(source);

                res = palette;
                break;
            }

            case DefinitionType.Font:
            {
                FontDefinition font = new FontDefinition();
                font.Unpack(source);

                res = font;
                break;
            }

            case DefinitionType.ApplicationEvents:
            {
                ApplicationEventsDefinition appEvents = new ApplicationEventsDefinition();
                appEvents.Unpack(source);

                res = appEvents;
                break;
            }

            default:
                DebugHelper.Out("Unsupported definition type: {0}", ((DefinitionType)primitiveType).ToString());
                break;
            }

            if ((res != null) && res.IsUnpacked)
            {
                return(res);
            }
            else
            {
                return(null);
            }
        }
Пример #7
0
 private void SetPalette(PaletteDefinition palette)
 {
     spaceGridControl.SetPalette(palette);
 }