コード例 #1
0
        /* Syntax menu callback (main form) */
        public static void Syntax(object sender, FaTabStrip e)
        {
            var item = (ToolStripMenuItem)sender;
            var tab  = e.SelectedItem;
            var doc  = (FastColoredTextBox)tab.Controls[0];

            if (item == null)
            {
                return;
            }
            /* Set this to false first */
            SettingsManager.ApplicationSettings.EditorWindow.AutoHighLight = false;
            /* Get file extension */
            var ext = tab.Tag != null?Path.GetExtension(tab.Tag.ToString()) : null;

            switch (item.Text.ToUpper())
            {
            case "AUTO":
                doc.Language = GetSyntaxHighLightAuto(ext);
                SettingsManager.ApplicationSettings.EditorWindow.AutoHighLight = true;
                break;

            case "XML":
                doc.Language = Language.Xml;
                break;

            case "HTML":
                doc.Language = Language.Html;
                break;

            case "PHP":
                doc.Language = Language.Php;
                break;

            case "SQL":
                doc.Language = Language.Sql;
                break;

            case "JAVA SCRIPT":
                doc.Language = Language.Js;
                break;

            case "CSHARP (C#)":
                doc.Language = Language.CSharp;
                break;

            case "VISUAL BASIC (VB)":
                doc.Language = Language.Vb;
                break;
            }
            /* Force update */
            doc.OnSyntaxHighlight(new TextChangedEventArgs(doc.Range));
            /* Check current selection */
            item.Checked = true;
            SettingsManager.ApplicationSettings.EditorWindow.SyntaxLanguage = doc.Language;
        }
コード例 #2
0
ファイル: DocumentControl.cs プロジェクト: TheAstro30/CodePad
 public DocumentControl(FaTabStrip tabStrip)
 {
     _tabStrip = tabStrip;
 }
コード例 #3
0
        public FrmEditor()
        {
            _initialize = true;
            InitializeComponent();
            var version = Assembly.GetExecutingAssembly().GetName().Version;

            Text = string.Format("CodePad - v{0}.{1}.{2} (build: {3}) ©2020 KangaSoft Software", version.Major,
                                 version.Minor,
                                 version.MinorRevision, version.Build);
            /* Load application settings */
            SettingsManager.Load();
            /* Set window size, location and window state */
            ClientSize  = SettingsManager.ApplicationSettings.ApplicationWindow.Size;
            Location    = SettingsManager.ApplicationSettings.ApplicationWindow.Location;
            WindowState = SettingsManager.ApplicationSettings.ApplicationWindow.Maximized
                              ? FormWindowState.Maximized
                              : FormWindowState.Normal;
            /* Set menu and toolbar */
            _menu = new MenuStrip
            {
                CanOverflow = false,
                GripStyle   = ToolStripGripStyle.Visible,
                Stretch     = true,
                Padding     = new Padding(2, 2, 0, 2)
            };

            /* File */
            _mnuFile = new ToolStripMenuItem {
                AutoSize = true, Text = @"&File"
            };
            _mnuFile.DropDownItems.AddRange(
                new ToolStripItem[]
            {
                new ToolStripMenuItem("New", Properties.Resources.fileNew.ToBitmap(), MenuClickCallback, Keys.Control | Keys.N),
                new ToolStripSeparator(),
                new ToolStripMenuItem("Open", Properties.Resources.fileOpen.ToBitmap(), MenuClickCallback, Keys.Control | Keys.O),
                new ToolStripMenuItem("Save", Properties.Resources.fileSave.ToBitmap(), MenuClickCallback, Keys.Control | Keys.S),
                new ToolStripMenuItem("Save As...", Properties.Resources.fileSaveAs.ToBitmap(), MenuClickCallback, Keys.Control | Keys.Shift | Keys.S)
                ,
                new ToolStripMenuItem("Save All", Properties.Resources.fileSaveAll.ToBitmap(), MenuClickCallback),
                new ToolStripSeparator(),
                new ToolStripMenuItem("Close", Properties.Resources.fileClose.ToBitmap(), MenuClickCallback, Keys.Control | Keys.F4),
                new ToolStripSeparator(),
                new ToolStripMenuItem("Print", Properties.Resources.filePrint.ToBitmap(), MenuClickCallback, Keys.Control | Keys.P),
                new ToolStripSeparator(),
                new ToolStripMenuItem("Exit", Properties.Resources.fileExit.ToBitmap(), MenuClickCallback, Keys.Alt | Keys.F4)
            });
            /* View */
            _mnuView = new ToolStripMenuItem {
                AutoSize = true, Text = @"&View"
            };
            var theme = new ToolStripMenuItem {
                Text = @"Theme", Image = Properties.Resources.viewTheme.ToBitmap()
            };
            var index      = 0;
            var themeIndex = SettingsManager.ApplicationSettings.ApplicationWindow.Theme;

            foreach (var preset in ThemeManager.Presets)
            {
                var d = new ToolStripMenuItem(preset.Name)
                {
                    Tag = index
                };
                d.Click += MenuThemeClickCallback;
                if (index == themeIndex)
                {
                    d.Checked = true;
                }
                theme.DropDownItems.Add(d);
                index++;
            }
            _mnuView.DropDownItems.AddRange(new ToolStripItem[] { theme });
            /* Syntax */
            _mnuSyntax = new ToolStripMenuItem {
                AutoSize = true, Text = @"&Syntax"
            };
            _mnuSyntax.DropDownItems.AddRange(new ToolStripItem[]
            {
                new ToolStripMenuItem("Auto", null, MenuSyntaxClickCallback),
                new ToolStripSeparator(),
                new ToolStripMenuItem("CSharp (C#)", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("Visual Basic (VB)", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("HTML", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("XML", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("SQL", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("PHP", null, MenuSyntaxClickCallback),
                new ToolStripMenuItem("Java Script", null, MenuSyntaxClickCallback)
            });
            var lang = SettingsManager.ApplicationSettings.EditorWindow.SyntaxLanguage;

            if (SettingsManager.ApplicationSettings.EditorWindow.AutoHighLight)
            {
                ((ToolStripMenuItem)_mnuSyntax.DropDownItems[0]).Checked = true;
            }
            else if (lang != Language.Custom)
            {
                ((ToolStripMenuItem)_mnuSyntax.DropDownItems[(int)lang + 1]).Checked = true;
            }
            /* Help */
            _mnuHelp = new ToolStripMenuItem {
                AutoSize = true, Text = @"&Help"
            };
            _mnuHelp.DropDownItems.AddRange(new ToolStripItem[]
            {
                new ToolStripMenuItem("About", null, MenuClickCallback, Keys.None)
            });

            _menu.Items.AddRange(new ToolStripItem[] { _mnuFile, _mnuView, _mnuSyntax, _mnuHelp });

            _toolBar = new ToolStrip
            {
                Stretch          = true,
                AutoSize         = false,
                ImageScalingSize = new Size(16, 16),
                Padding          = new Padding(3, 0, 0, 1),
                Size             = new Size(704, 25)
            };

            _btnNew = new ToolStripMenuItem
            {
                Image        = Properties.Resources.fileNew.ToBitmap(),
                ImageScaling = ToolStripItemImageScaling.None,
                Size         = new Size(16, 16),
                ToolTipText  = @"New document",
                Tag          = "NEW"
            };
            _btnNew.Click += MenuClickCallback;

            _btnOpen = new ToolStripMenuItem
            {
                Image        = Properties.Resources.fileOpen.ToBitmap(),
                ImageScaling = ToolStripItemImageScaling.None,
                Size         = new Size(16, 16),
                ToolTipText  = @"Open",
                Tag          = "OPEN"
            };
            _btnOpen.Click += MenuClickCallback;

            _btnSave = new ToolStripMenuItem
            {
                Image        = Properties.Resources.fileSave.ToBitmap(),
                ImageScaling = ToolStripItemImageScaling.None,
                Size         = new Size(16, 16),
                ToolTipText  = @"Save",
                Tag          = "SAVE"
            };
            _btnSave.Click += MenuClickCallback;

            _btnSaveAll = new ToolStripMenuItem
            {
                Image        = Properties.Resources.fileSaveAll.ToBitmap(),
                ImageScaling = ToolStripItemImageScaling.None,
                Size         = new Size(16, 16),
                ToolTipText  = @"Save All",
                Tag          = "SAVE ALL"
            };
            _btnSaveAll.Click += MenuClickCallback;

            _btnPrint = new ToolStripMenuItem
            {
                Image        = Properties.Resources.filePrint.ToBitmap(),
                ImageScaling = ToolStripItemImageScaling.None,
                Size         = new Size(16, 16),
                ToolTipText  = @"Print",
                Tag          = "PRINT"
            };
            _btnPrint.Click += MenuClickCallback;

            _toolBar.Items.AddRange(new ToolStripItem[]
            {
                _btnNew,
                new ToolStripSeparator(),
                _btnOpen,
                _btnSave,
                _btnSaveAll,
                new ToolStripSeparator(),
                _btnPrint
            });

            _tsFiles = new FaTabStrip
            {
                Font =
                    new Font("Segoe UI", 9F, FontStyle.Regular,
                             GraphicsUnit.Point, 0),
                Location = new Point(136, 70),
                Dock     = DockStyle.Fill,
                Size     = new Size(350, 200),
                TabIndex = 10
            };
            _tsFiles.TabStripItemSelectionChanged += OnTabStripSelectionChanged;
            _tsFiles.TabStripItemClosing          += OnTabStripItemClosing;

            _doc = new DocumentControl(_tsFiles);

            _statusBar = new StatusStrip
            {
                Location   = new Point(0, 451),
                Padding    = new Padding(1, 0, 16, 0),
                RenderMode = ToolStripRenderMode.Professional,
                Size       = new Size(822, 22),
                Dock       = DockStyle.Bottom
            };

            Controls.AddRange(new Control[] { _tsFiles, _statusBar, _toolBar, _menu });
            /* Set renderers for toolbars */
            _statusBar.RenderMode = ToolStripRenderMode.ManagerRenderMode;

            ThemeManager.ThemeChanged += ThemeChanged;
            ToolStripManager.Renderer  = ThemeManager.Renderer;
            ThemeManager.SetTheme(SettingsManager.ApplicationSettings.ApplicationWindow.Theme);
            _initialize = false;
        }