/// <summary> /// ファイルを読み込み画面状態を初期化する /// </summary> public void loadOption() { if (m_krkrType == FileType.KrkrType.Kag) { //カラー設定 KagColorType type = new KagColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("KAG"); loadBaseTypeColor(type, hs); loadKagTypeColor(type, (DefaultHighlightingStrategy)hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); optionTabControl.TabPages.Add(completeTabPage); optionTabControl.TabPages.Add(kag1TabPage); optionTabControl.TabPages.Add(kag2TabPage); optionTabControl.TabPages.Add(kagex1TabPage); } else if (m_krkrType == FileType.KrkrType.Tjs) { TjsColorType type = new TjsColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("TJS2"); loadBaseTypeColor(type, hs); loadTjsTypeColor(type, (DefaultHighlightingStrategy)hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); //optionTabControl.TabPages.Add(completeTabPage); } else { BaseColorType type = new BaseColorType(); IHighlightingStrategy hs = HighlightingManager.Manager.FindHighlighter("Default"); loadBaseTypeColor(type, hs); colorPropertyGrid.SelectedObject = type; //タブ表示切り替え optionTabControl.TabPages.Clear(); optionTabControl.TabPages.Add(colorTabPage); optionTabControl.TabPages.Add(fontTabPage); optionTabControl.TabPages.Add(showTabPage); optionTabControl.TabPages.Add(actionTabPage); } //エディタ設定 EditorOption editorOption = GlobalStatus.EditorManager.GetEditorOption(m_krkrType); loadEditorOption(editorOption); }
/// <summary> /// 共通部分のデフォルトカラーを取得する /// </summary> /// <param name="deftype">ベースとなるカラータイプ</param> /// <returns>カラーオブジェクト</returns> private static BaseColorType getDefaultColor(DefaultColorType deftype) { BaseColorType type = new BaseColorType(); switch (deftype) { case DefaultColorType.Black: type.WindowFront = Color.FromArgb(0xDD, 0xDD, 0xDD); type.WindowBack = Color.FromArgb(0x22, 0x22, 0x22); type.SelectTextFront = Color.FromArgb(0xDD, 0xDD, 0xDD); type.SelectTextBack = Color.FromArgb(0x80, 0x80, 0x80); type.VRuler = Color.FromArgb(0x80, 0x80, 0x80); type.InvalidLines = Color.FromArgb(0x80, 0x00, 0x00); type.CaretMarker = Color.FromArgb(0x80, 0x40, 0x00); type.LineNumbersFront = Color.FromArgb(0xCC, 0xCC, 0xCC); type.LineNumbersBack = Color.FromArgb(0x22, 0x22, 0x22); type.FoldLineFront = Color.FromArgb(0x80, 0x80, 0x80); type.FoldLineBack = Color.White; type.FoldMarkerFront = Color.FromArgb(0x80, 0x80, 0x80); type.FoldMarkerBack = Color.Black; type.SelectFoldLineFront = Color.White; type.SelectFoldLineBack = Color.White; type.EolMarkers = Color.FromArgb(0x00, 0x80, 0x80); type.SpaceMakers = Color.FromArgb(0x80, 0x80, 0x80); type.TabMarkers = Color.FromArgb(0x80, 0x80, 0x80); type.Digits = Color.FromArgb(0xDD, 0xDD, 0xDD); break; case DefaultColorType.White: default: type.WindowFront = SystemColors.WindowText; type.WindowBack = SystemColors.Window; type.SelectTextFront = SystemColors.HighlightText; type.SelectTextBack = SystemColors.Highlight; type.VRuler = SystemColors.ControlDark; type.InvalidLines = Color.Red; type.CaretMarker = Color.FromArgb(0xFF, 0xE0, 0xC0); type.LineNumbersFront = Color.Teal; type.LineNumbersBack = SystemColors.Window; type.FoldLineFront = Color.FromArgb(0x80, 0x80, 0x80); type.FoldLineBack = Color.Black; type.FoldMarkerFront = Color.FromArgb(0x80, 0x80, 0x80); type.FoldMarkerBack = Color.White; type.SelectFoldLineFront = Color.Black; type.SelectFoldLineBack = Color.Black; type.EolMarkers = Color.Teal; type.SpaceMakers = SystemColors.Control; type.TabMarkers = SystemColors.Control; type.Digits = SystemColors.WindowText; break; } return(type); }
/// <summary> /// TJSファイルのデフォルトカラーオブジェクトを取得する /// </summary> /// <param name="deftype">ベースとなるカラータイプ</param> /// <returns>カラーオブジェクト</returns> private static TjsColorType getDefaultTjsColor(DefaultColorType deftype) { BaseColorType baseType = (BaseColorType)getDefaultColor(deftype); TjsColorType type = new TjsColorType(); type.WindowFront = baseType.WindowFront; type.WindowBack = baseType.WindowBack; type.SelectTextFront = baseType.SelectTextFront; type.SelectTextBack = baseType.SelectTextBack; type.VRuler = baseType.VRuler; type.InvalidLines = baseType.InvalidLines; type.CaretMarker = baseType.CaretMarker; type.LineNumbersFront = baseType.LineNumbersFront; type.LineNumbersBack = baseType.LineNumbersBack; type.FoldLineFront = baseType.FoldLineFront; type.FoldLineBack = baseType.FoldLineBack; type.FoldMarkerFront = baseType.FoldMarkerFront; type.FoldMarkerBack = baseType.FoldMarkerBack; type.SelectFoldLineFront = baseType.SelectFoldLineFront; type.SelectFoldLineBack = baseType.SelectFoldLineBack; type.EolMarkers = baseType.EolMarkers; type.SpaceMakers = baseType.SpaceMakers; type.TabMarkers = baseType.TabMarkers; type.Digits = baseType.Digits; switch (deftype) { case DefaultColorType.Black: type.Comment = Color.FromArgb(0x00, 0xC0, 0xFF); type.String = Color.FromArgb(0x80, 0xFF, 0x80); type.Regexp = Color.FromArgb(0x80, 0xFF, 0x80); type.Octet = Color.FromArgb(0x80, 0xFF, 0x80); type.PreProcessorKeyWord = Color.FromArgb(0xFF, 0xFF, 0x80); type.KeyWord = Color.FromArgb(0xFF, 0x80, 0x80); break; case DefaultColorType.White: default: type.Comment = Color.DarkCyan; type.String = Color.Green; type.Regexp = Color.Green; type.Octet = Color.Green; type.PreProcessorKeyWord = Color.Blue; type.KeyWord = Color.Red; break; } return(type); }
/// <summary> /// KAGファイルのデフォルトカラーオブジェクトを取得する /// </summary> /// <param name="deftype">ベースとなるカラータイプ</param> /// <returns>カラーオブジェクト</returns> private static KagColorType getDefaultKagColor(DefaultColorType deftype) { BaseColorType baseType = getDefaultColor(deftype); KagColorType type = new KagColorType(); type.WindowFront = baseType.WindowFront; type.WindowBack = baseType.WindowBack; type.SelectTextFront = baseType.SelectTextFront; type.SelectTextBack = baseType.SelectTextBack; type.VRuler = baseType.VRuler; type.InvalidLines = baseType.InvalidLines; type.CaretMarker = baseType.CaretMarker; type.LineNumbersFront = baseType.LineNumbersFront; type.LineNumbersBack = baseType.LineNumbersBack; type.FoldLineFront = baseType.FoldLineFront; type.FoldLineBack = baseType.FoldLineBack; type.FoldMarkerFront = baseType.FoldMarkerFront; type.FoldMarkerBack = baseType.FoldMarkerBack; type.SelectFoldLineFront = baseType.SelectFoldLineFront; type.SelectFoldLineBack = baseType.SelectFoldLineBack; type.EolMarkers = baseType.EolMarkers; type.SpaceMakers = baseType.SpaceMakers; type.TabMarkers = baseType.TabMarkers; type.Digits = baseType.Digits; switch (deftype) { case DefaultColorType.Black: type.Comment = Color.FromArgb(0x64, 0xB1, 0xFF); type.TjsScript = Color.FromArgb(0xDD, 0xDD, 0xDD); type.TagName = Color.FromArgb(0xFF, 0x80, 0x80); type.Label = Color.FromArgb(0x80, 0xFF, 0x00); type.AttributeName = Color.FromArgb(0xC0, 0xC0, 0x40); type.AttributeValue = Color.FromArgb(0x00, 0xA4, 0x5F); break; case DefaultColorType.White: default: type.Comment = Color.DarkGreen; type.TjsScript = SystemColors.WindowText; type.TagName = Color.DarkMagenta; type.Label = Color.Green; type.AttributeName = Color.Red; type.AttributeValue = Color.Blue; break; } return(type); }
/// <summary> /// ベースとなるカラーを読み込む /// </summary> /// <param name="type">設定するカラータイプ</param> /// <param name="hs">読み込むカラー情報</param> private void loadBaseTypeColor(BaseColorType type, IHighlightingStrategy hs) { HighlightColor color; color = hs.GetColorFor("Default"); type.WindowFront = color.Color; type.WindowBack = color.BackgroundColor; color = hs.GetColorFor("Selection"); type.SelectTextFront = color.Color; type.SelectTextBack = color.BackgroundColor; color = hs.GetColorFor("VRuler"); type.VRuler = color.Color; color = hs.GetColorFor("InvalidLines"); type.InvalidLines = color.Color; color = hs.GetColorFor("CaretMarker"); type.CaretMarker = color.Color; color = hs.GetColorFor("LineNumbers"); type.LineNumbersFront = color.Color; type.LineNumbersBack = color.BackgroundColor; color = hs.GetColorFor("FoldLine"); type.FoldLineFront = color.Color; type.FoldLineBack = color.BackgroundColor; color = hs.GetColorFor("FoldMarker"); type.FoldMarkerFront = color.Color; type.FoldMarkerBack = color.BackgroundColor; color = hs.GetColorFor("SelectedFoldLine"); type.SelectFoldLineFront = color.Color; type.SelectFoldLineBack = color.BackgroundColor; color = hs.GetColorFor("EOLMarkers"); type.EolMarkers = color.Color; color = hs.GetColorFor("SpaceMarkers"); type.SpaceMakers = color.Color; color = hs.GetColorFor("TabMarkers"); type.TabMarkers = color.Color; color = ((DefaultHighlightingStrategy)hs).DigitColor; type.Digits = color.Color; }
/// <summary> /// カラー設定をファイルに保存する /// </summary> /// <param name="type"></param> /// <param name="colorType"></param> public static bool SaveFile(FileType.KrkrType type, BaseColorType colorType) { string fileName = ""; string text = ""; switch (type) { case FileType.KrkrType.Kag: fileName = ConstEnvOption.KagModeFilePath; text = createKagXshd((KagColorType)colorType); break; case FileType.KrkrType.Tjs: fileName = ConstEnvOption.TjsModeFilePath; text = createTjsXshd((TjsColorType)colorType); break; default: fileName = ConstEnvOption.DefModeFilePath; text = createDefXshd(colorType); break; } if (text == "") { return(false); } //ファイルに保存する bool ret = true; StreamWriter sw; using (sw = new StreamWriter(fileName, false)) { try { sw.Write(text); } catch (Exception err) { System.Diagnostics.Debug.WriteLine("カラー設定ファイルの保存に失敗しました: " + err.ToString()); ret = false; } } return(ret); }
/// <summary> /// デフォルト強調定義ファイルを作成する /// </summary> /// <param name="fileName">作成するファイル名</param> private static string createDefXshd(BaseColorType colorType) { string text = ""; text += String.Format("<?xml version=\"1.0\"?>\n"); text += String.Format("\n"); text += String.Format("<!-- syntaxdefinition for Default by PORING SOFT -->\n"); text += String.Format("<SyntaxDefinition name=\"Default\" extensions=\".*\">\n"); //共通部の色設定 text += String.Format(" <Environment>\n"); text += String.Format(" <Default color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.WindowFront), getColorName(colorType.WindowBack)); text += String.Format(" <Selection color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.SelectTextFront), getColorName(colorType.SelectTextBack)); text += String.Format(" <VRuler color=\"{0}\" />\n", getColorName(colorType.VRuler)); text += String.Format(" <InvalidLines color=\"{0}\" />\n", getColorName(colorType.InvalidLines)); text += String.Format(" <CaretMarker color=\"{0}\" />\n", getColorName(colorType.CaretMarker)); text += String.Format(" \n"); text += String.Format(" <LineNumbers color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.LineNumbersFront), getColorName(colorType.LineNumbersBack)); text += String.Format(" \n"); text += String.Format(" <FoldLine color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.FoldLineFront), getColorName(colorType.FoldLineBack)); text += String.Format(" <FoldMarker color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.FoldMarkerFront), getColorName(colorType.FoldMarkerBack)); text += String.Format(" <SelectedFoldLine color=\"{0}\" bgcolor=\"{1}\" />\n", getColorName(colorType.SelectFoldLineFront), getColorName(colorType.SelectFoldLineBack)); text += String.Format(" \n"); text += String.Format(" <EOLMarkers color=\"{0}\" />\n", getColorName(colorType.EolMarkers)); text += String.Format(" <SpaceMarkers color=\"{0}\" />\n", getColorName(colorType.SpaceMakers)); text += String.Format(" <TabMarkers color=\"{0}\" />\n", getColorName(colorType.TabMarkers)); text += String.Format(" </Environment>\n"); text += String.Format(" \n"); //数値の色設定 text += String.Format(" <Digits name=\"Digits\" bold=\"false\" italic=\"false\" color=\"{0}\" />\n", getColorName(colorType.Digits)); text += String.Format(" \n"); text += String.Format(" <RuleSets>\n"); text += String.Format(" <RuleSet ignorecase=\"true\">\n"); text += String.Format(" </RuleSet>\n"); text += String.Format(" </RuleSets>\n"); text += String.Format("</SyntaxDefinition>\n"); text += String.Format("\n"); return(text); }
/// <summary> /// デフォルトのカラーオブジェクトを取得する /// </summary> /// <param name="type">取得したいファイルのタイプ</param> /// <param name="deftype">デフォルトカラータイプ</param> /// <returns>カラーオブジェクト</returns> public static BaseColorType GetDefault(FileType.KrkrType type, DefaultColorType deftype) { BaseColorType colorType = null; switch (type) { case FileType.KrkrType.Kag: colorType = getDefaultKagColor(deftype); break; case FileType.KrkrType.Tjs: colorType = getDefaultTjsColor(deftype); break; default: colorType = getDefaultColor(deftype); break; } return(colorType); }