public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            System.Windows.Forms.SaveFileDialog saveDlg = new System.Windows.Forms.SaveFileDialog();

            saveDlg.FileName = Info.Charset.ExportFilename;
            saveDlg.Title    = "Export Charset to";
            saveDlg.Filter   = "Charset|*.chr|All Files|*.*";
            if (DocInfo.Project != null)
            {
                saveDlg.InitialDirectory = DocInfo.Project.Settings.BasePath;
            }
            if (saveDlg.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return(false);
            }
            GR.Memory.ByteBuffer charSet = new GR.Memory.ByteBuffer();

            List <int> exportIndices = Info.ExportIndices;

            foreach (int i in exportIndices)
            {
                charSet.Append(Info.Charset.Characters[i].Tile.Data);
            }
            if (checkPrefixLoadAddress.Checked)
            {
                ushort address = GR.Convert.ToU16(editPrefixLoadAddress.Text, 16);

                var addressData = new ByteBuffer();
                addressData.AppendU16(address);
                charSet = addressData + charSet;
            }
            GR.IO.File.WriteAllBytes(saveDlg.FileName, charSet);
            return(true);
        }
        public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            int    wrapByteCount = GetExportWrapCount();
            string prefix        = editPrefix.Text;

            GR.Memory.ByteBuffer charSet = new GR.Memory.ByteBuffer();
            foreach (int index in Info.ExportIndices)
            {
                charSet.Append(Info.Charset.Characters[index].Tile.Data);
            }

            bool wrapData  = checkExportToDataWrap.Checked;
            bool prefixRes = checkExportToDataIncludeRes.Checked;

            string resultText = "CHARS" + System.Environment.NewLine;

            resultText += Util.ToASMData(charSet, wrapData, wrapByteCount, prefixRes ? prefix : "");

            if (checkIncludeColor.Checked)
            {
                resultText += System.Environment.NewLine + "COLORS" + System.Environment.NewLine;

                GR.Memory.ByteBuffer colorData = new GR.Memory.ByteBuffer();
                foreach (int index in Info.ExportIndices)
                {
                    colorData.AppendU8((byte)Info.Charset.Characters[index].Tile.CustomColor);
                }
                resultText += Util.ToASMData(colorData, wrapData, wrapByteCount, prefixRes ? prefix : "");
            }

            EditOutput.Text = resultText;
            return(true);
        }
예제 #3
0
        public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            var sb = new StringBuilder();

            int startLine = GR.Convert.ToI32(editExportBASICLineNo.Text);

            if ((startLine < 0) ||
                (startLine > 63999))
            {
                startLine = 10;
            }
            int lineOffset = GR.Convert.ToI32(editExportBASICLineOffset.Text);

            if ((lineOffset < 0) ||
                (lineOffset > 63999))
            {
                lineOffset = 10;
            }

            List <int> exportIndices = Info.ExportIndices;

            foreach (int index in exportIndices)
            {
                sb.Append(startLine);
                sb.Append("CHARDEF");
                sb.Append(index);

                for (int i = 0; i < 8; ++i)
                {
                    if (checkExportHex.Checked)
                    {
                        sb.Append(",$");
                        sb.Append(Info.Charset.Characters[index].Tile.Data.ByteAt(i).ToString("X2"));
                    }
                    else
                    {
                        sb.Append(',');
                        sb.Append(Info.Charset.Characters[index].Tile.Data.ByteAt(i));
                    }
                }
                sb.AppendLine();

                startLine += lineOffset;
            }

            EditOutput.Font = new System.Drawing.Font(Core.MainForm.m_FontC64.Families[0], 16, System.Drawing.GraphicsUnit.Pixel);
            EditOutput.Text = sb.ToString();
            return(true);
        }
        public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            var sb = new StringBuilder();

            int startLine = GR.Convert.ToI32(editExportBASICLineNo.Text);

            if ((startLine < 0) ||
                (startLine > 63999))
            {
                startLine = 10;
            }
            int lineOffset = GR.Convert.ToI32(editExportBASICLineOffset.Text);

            if ((lineOffset < 0) ||
                (lineOffset > 63999))
            {
                lineOffset = 10;
            }

            int  wrapByteCount = GetExportWrapCount();
            bool asHex         = checkExportHex.Checked;
            int  wrapCharCount = GetExportCharCount();

            List <int> exportIndices = Info.ExportIndices;

            GR.Memory.ByteBuffer charSet = new GR.Memory.ByteBuffer();
            foreach (int index in exportIndices)
            {
                charSet.Append(Info.Charset.Characters[index].Tile.Data);
            }

            if (asHex)
            {
                sb.Append(Util.ToBASICHexData(charSet, startLine, lineOffset, wrapByteCount, wrapCharCount));
            }
            else
            {
                sb.Append(Util.ToBASICData(charSet, startLine, lineOffset, wrapByteCount, wrapCharCount));
            }

            EditOutput.Font = new System.Drawing.Font(Core.MainForm.m_FontC64.Families[0], 16, System.Drawing.GraphicsUnit.Pixel);
            EditOutput.Text = sb.ToString();
            return(true);
        }
예제 #5
0
        public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            GR.Image.MemoryImage targetImg = new GR.Image.MemoryImage(128, 128, Info.Charset.Characters[0].Tile.Image.PixelFormat);
            PaletteManager.ApplyPalette(targetImg);

            List <int> exportIndices = Info.ExportIndices;

            foreach (int i in exportIndices)
            {
                Info.Charset.Characters[i].Tile.Image.DrawTo(targetImg, (i % 16) * 8, (i / 16) * 8);
            }

            System.Drawing.Bitmap bmpTarget = targetImg.GetAsBitmap();

            Clipboard.SetImage(bmpTarget);
            bmpTarget.Dispose();

            return(true);
        }
예제 #6
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            List <int> exportIndices = ListOfExportIndices();

            GR.Memory.ByteBuffer charSet = new GR.Memory.ByteBuffer();
            foreach (int index in exportIndices)
            {
                charSet.Append(m_Charset.Characters[index].Tile.Data);
            }

            var exportInfo = new ExportCharsetInfo()
            {
                Charset       = m_Charset,
                ExportIndices = ListOfExportIndices()
            };

            editDataExport.Text = "";
            editDataExport.Font = m_DefaultOutputFont;
            m_ExportForm.HandleExport(exportInfo, editDataExport, DocumentInfo);
        }
예제 #7
0
        public override bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
        {
            System.Windows.Forms.SaveFileDialog saveDlg = new System.Windows.Forms.SaveFileDialog();

            saveDlg.Title  = "Export Characters to Image";
            saveDlg.Filter = Core.MainForm.FilterString(RetroDevStudio.Types.Constants.FILEFILTER_IMAGE_FILES);
            if (saveDlg.ShowDialog() != System.Windows.Forms.DialogResult.OK)
            {
                return(false);
            }

            GR.Image.MemoryImage targetImg = new GR.Image.MemoryImage(128, 128, Info.Charset.Characters[0].Tile.Image.PixelFormat);
            PaletteManager.ApplyPalette(targetImg);

            List <int> exportIndices = Info.ExportIndices;

            foreach (int i in exportIndices)
            {
                Info.Charset.Characters[i].Tile.Image.DrawTo(targetImg, (i % 16) * 8, (i / 16) * 8);
            }
            System.Drawing.Bitmap bmpTarget = targetImg.GetAsBitmap();
            bmpTarget.Save(saveDlg.FileName, System.Drawing.Imaging.ImageFormat.Png);
            return(true);
        }
예제 #8
0
 public virtual bool HandleExport(ExportCharsetInfo Info, TextBox EditOutput, DocumentInfo DocInfo)
 {
     return(false);
 }