Esempio n. 1
0
        /*
         * void CodeList_SelectedIndexChanged(object sender, EventArgs e)
         * {
         *  FontProcessing.codePage = encodings[codeList.SelectedIndex];
         *  codepagePicture.Refresh();
         * }
         */

        void FontPicture_Paint(object sender, PaintEventArgs e)
        {
            if (fontFile == null)
            {
                return;
            }
            FontProcessing.DrawFontOn(fontFile, e.Graphics, e.ClipRectangle);
        }
Esempio n. 2
0
        public MainWindow()
        {
            mainWindow = new Form();

            var allSidesAnchorStyle      = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
            TableLayoutPanel layoutPanel = new TableLayoutPanel();

            layoutPanel.Anchor      = allSidesAnchorStyle;
            layoutPanel.Dock        = DockStyle.Fill;
            layoutPanel.ColumnCount = 2;
            layoutPanel.RowCount    = 4;

            /*
             * codeList = new ListBox();
             * codeList.SelectionMode = SelectionMode.One;
             * codeList.Anchor = allSidesAnchorStyle;
             * encodings = new List<Encoding>(Encoding.GetEncodings().Select(
             * (encodingInfo) => {
             *  return Encoding.GetEncoding(encodingInfo.CodePage);
             * }).Where((encoding) => encoding.IsSingleByte));
             * codeList.BeginUpdate();
             * foreach (var codePage in encodings)
             * {
             *  codeList.Items.Add(codePage.EncodingName);
             * }
             * codeList.EndUpdate();
             * codeList.Dock = DockStyle.Fill;
             * codeList.SelectedIndexChanged += CodeList_SelectedIndexChanged;
             * layoutPanel.Controls.Add(codeList);
             * layoutPanel.SetRow(codeList, 1);
             * layoutPanel.SetColumn(codeList, 1);
             * layoutPanel.SetColumnSpan(codeList, 2);
             */

            /*
             * FontSelectButton fontButton = new FontSelectButton();
             * fontButton.Text = "Codepage preview font";
             * fontButton.Anchor = allSidesAnchorStyle;
             * fontButton.Dock = DockStyle.Fill;
             * layoutPanel.Controls.Add(fontButton);
             * layoutPanel.SetRow(fontButton, 2);
             * layoutPanel.SetColumn(fontButton, 1);
             */

            FileSelectButton fileButton = new FileSelectButton();

            fileButton.Text   = "Font to convert";
            fileButton.Anchor = allSidesAnchorStyle;
            fileButton.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(fileButton);
            layoutPanel.SetRow(fileButton, 0);
            layoutPanel.SetColumn(fileButton, 0);

            fontNameLabel        = new Label();
            fontNameLabel.Anchor = allSidesAnchorStyle;
            fontNameLabel.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(fontNameLabel);
            layoutPanel.SetRow(fontNameLabel, 0);
            layoutPanel.SetColumn(fontNameLabel, 1);

            OutDirSelectButton outDirSelectButton = new OutDirSelectButton();

            outDirSelectButton.Text   = "Output directory";
            outDirSelectButton.Anchor = allSidesAnchorStyle;
            outDirSelectButton.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(outDirSelectButton);
            layoutPanel.SetRow(outDirSelectButton, 1);
            layoutPanel.SetColumn(outDirSelectButton, 0);

            outDirLabel        = new Label();
            outDirLabel.Anchor = allSidesAnchorStyle;
            outDirLabel.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(outDirLabel);
            layoutPanel.SetRow(outDirLabel, 1);
            layoutPanel.SetColumn(outDirLabel, 1);

            Button convertButton = new Button();

            convertButton.Text   = "Convert!";
            convertButton.Anchor = allSidesAnchorStyle;
            convertButton.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(convertButton);
            layoutPanel.SetRow(convertButton, 2);
            layoutPanel.SetColumn(convertButton, 0);

            /*
             * codepagePicture = new PictureBox();
             * codepagePicture.Anchor = allSidesAnchorStyle;
             * codepagePicture.Dock = DockStyle.Fill;
             * layoutPanel.Controls.Add(codepagePicture);
             * layoutPanel.SetRow(codepagePicture, 3);
             * layoutPanel.SetColumn(codepagePicture, 1);
             * fontButton.FontSelected += FontButton_FontSelected;
             * codepagePicture.Paint += CodepagePicture_Paint;
             */

            fontPicture        = new PictureBox();
            fontPicture.Anchor = allSidesAnchorStyle;
            fontPicture.Dock   = DockStyle.Fill;
            layoutPanel.Controls.Add(fontPicture);
            layoutPanel.SetRow(fontPicture, 3);
            layoutPanel.SetColumn(fontPicture, 0);
            layoutPanel.SetColumnSpan(fontPicture, 2);

            fileButton.FontFileSelected += (object sender, string fontFName) =>
            {
                Console.WriteLine($"Font: {fontFName}");
                fontFileName       = fontFName;
                fontNameLabel.Text = fontFileName;
                fontNameLabel.Refresh();
                fontFile = FontProcessing.ReadFont(fontFName);
                fontPicture.Refresh();
                // Set output directory as well, if it is not already set
                if (string.IsNullOrEmpty(outputDirectory))
                {
                    outputDirectory = Path.GetDirectoryName(fontFName);
                    Console.WriteLine($"Output directory: {outputDirectory}");
                    outDirLabel.Text = outputDirectory;
                }
            };
            outDirSelectButton.DirectorySelected += (object sender, string outDir) =>
            {
                Console.WriteLine($"Output directory: {outDir}");
                outDirLabel.Text = outDir;
                outDirLabel.Refresh();
                outputDirectory = outDir;
            };
            convertButton.Click += (object sender, EventArgs e) => {
                if (outputDirectory != null && fontFile != null && fontFileName != null)
                {
                    FontProcessing.ConvertFont(fontFileName, fontFile, outputDirectory);
                }
            };

            fontPicture.Paint += FontPicture_Paint;

            mainWindow.Controls.Add(layoutPanel);
        }