/* 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; }
public DocumentControl(FaTabStrip tabStrip) { _tabStrip = tabStrip; }
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; }