");
+ else
+ Out(" ");
+ foreach (Row r in doc)
+ {
+ i++;
+ if (r.CanFold)
+ {
+ RenderCollapsed(r.VirtualCollapsedRow, r, i, ImagePath, guid);
+ Out(" ");
+
+ string img = "minus.gif";
+ try
+ {
+ if (r.expansion_StartSpan.Parent.Parent == null)
+ img = "minusNoTopLine.gif";
+ }
+ catch {}
+ Out("  ");
+ }
+ else
+ {
+ if (r.CanFoldEndPart)
+ {
+ Out("  ");
+ }
+ else
+ {
+ if (r.HasExpansionLine)
+ {
+ Out("  ");
+ }
+ else
+ {
+ Out("  ");
+ }
+ }
+ }
+ foreach (Word w in r)
+ {
+ write(w.Text, w.Style);
+ }
+ if (r.CanFoldEndPart)
+ Out(" \n");
+ else
+ Out(" \n");
+ }
+ Out(" |
");
+
+ return sb.ToString();
+ }
+
+
+ private void RenderCollapsed(Row r, Row TrueRow, int i, string ImagePath, string guid)
+ {
+ Out(" ");
+ string img = "plus.gif";
+ try
+ {
+ if (TrueRow.expansion_StartSpan.Parent.Parent == null)
+ img = "PlusNoLines.gif";
+ }
+ catch {}
+
+
+ Out("  ");
+
+ foreach (Word w in r)
+ {
+ write(w.Text, w.Style);
+ }
+
+ Out(" ");
+ }
+
+ private void write(string text, TextStyle s)
+ {
+ if (s != null)
+ {
+ if (s.Bold)
+ Out(" ");
+ if (s.Italic)
+ Out("");
+ if (s.Transparent)
+ Out("");
+ else
+ Out("");
+ }
+
+ text = text.Replace("&", "&");
+ text = text.Replace("<", "<");
+ text = text.Replace(">", ">");
+ text = text.Replace(" ", " ");
+ text = text.Replace("\t", " ");
+ Out(text);
+
+ if (s != null)
+ {
+ Out("");
+
+ if (s.Italic)
+ Out("");
+ if (s.Bold)
+ Out("");
+ }
+ }
+
+ private static string GetHTMLColor(Color c)
+ {
+ return string.Format("#{0}{1}{2}", c.R.ToString("x2"), c.G.ToString("x2"), c.B.ToString("x2"));
+ }
+
+ private void Out(string text)
+ {
+ sb.Append(text);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Export/SimpleHTMLExporter.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Export/SimpleHTMLExporter.cs
new file mode 100644
index 0000000..13b2a63
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Export/SimpleHTMLExporter.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Drawing;
+using System.Text;
+
+namespace Alsing.SourceCode.SyntaxDocumentExporters
+{
+ public class SimpleHTMLExporter
+ {
+ private static StringBuilder sb;
+
+ private static void write(string text, TextStyle s)
+ {
+ if (s != null)
+ {
+ if (s.Bold)
+ Out(" ");
+ if (s.Italic)
+ Out("");
+ if (s.Transparent)
+ Out("");
+ else
+ Out("");
+ }
+
+ text = text.Replace("&", "&");
+ text = text.Replace("<", "<");
+ text = text.Replace(">", ">");
+ text = text.Replace(" ", " ");
+ text = text.Replace("\t", " ");
+ Out(text);
+
+ if (s != null)
+ {
+ Out("");
+
+ if (s.Italic)
+ Out("");
+ if (s.Bold)
+ Out("");
+ }
+ }
+
+ private static string GetHTMLColor(Color c)
+ {
+ return string.Format("#{0}{1}{2}", c.R.ToString("x2"), c.G.ToString("x2"), c.B.ToString("x2"));
+ }
+
+ private static void Out(string text)
+ {
+ sb.Append(text);
+ }
+
+ public static string Export(SyntaxDocument doc, string CssClass)
+ {
+ sb = new StringBuilder();
+ doc.ParseAll(true);
+
+ Out(" " + Environment.NewLine);
+ foreach (Row r in doc)
+ {
+ foreach (Word w in r)
+ {
+ write(w.Text, w.Style);
+ }
+
+ Out(" " + Environment.NewLine);
+ }
+ Out(" ");
+
+ return sb.ToString();
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/ImageIndexList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/ImageIndexList.cs
new file mode 100644
index 0000000..f960805
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/ImageIndexList.cs
@@ -0,0 +1,19 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public class ImageIndexList : List {}
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/DefaultParser.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/DefaultParser.cs
new file mode 100644
index 0000000..9d29b7c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/DefaultParser.cs
@@ -0,0 +1,787 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+//no parsing , just splitting and making whitespace possible
+//1 sec to finnish ca 10000 rows
+
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ ///
+ ///
+ ///
+ public sealed class DefaultParser : IParser
+ {
+ private SyntaxDefinition mSyntaxDefinition;
+ private long Version;
+
+ ///
+ ///
+ ///
+ public DefaultParser()
+ {
+ mSyntaxDefinition = null;
+ }
+
+ #region IParser Members
+
+ ///
+ ///
+ ///
+ public SyntaxDefinition SyntaxDefinition
+ {
+ get { return mSyntaxDefinition; }
+ set
+ {
+ mSyntaxDefinition = value;
+
+ if (mSyntaxDefinition == null)
+ {
+ var l = new SyntaxDefinition();
+ l.mainSpanDefinition = new SpanDefinition(l) {MultiLine = true};
+ mSyntaxDefinition = l;
+ }
+
+ Version = long.MinValue;
+ mSyntaxDefinition.Version = long.MinValue + 1;
+ Document.ReParse();
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void ParseRow(int index, bool ParseKeywords)
+ {
+ InternalParseLine(index, ParseKeywords);
+ if (SyntaxDefinition != null)
+ {
+ if (Version != SyntaxDefinition.Version)
+ {
+ SyntaxDefinition.UpdateLists();
+ Version = SyntaxDefinition.Version;
+ }
+ }
+
+
+ Document.InvokeRowParsed(Document[index]);
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY SEPARATORS
+
+ public string Separators
+ {
+ get { return SyntaxDefinition.Separators; }
+ set { SyntaxDefinition.Separators = value; }
+ }
+
+ #endregion
+
+ #region Optimerat och klart
+
+ // ska anropas om "is same but different" är true
+
+ ///
+ ///
+ ///
+ public SyntaxDocument Document { get; set; }
+
+ ///
+ ///
+ ///
+ ///
+ public void Init(string SyntaxFile)
+ {
+ try
+ {
+ if (!SyntaxFile.ToLowerInvariant().EndsWith(".syn"))
+ SyntaxFile += ".syn";
+
+
+ SyntaxDefinition = new SyntaxDefinitionLoader().Load(SyntaxFile);
+ }
+ catch {}
+ }
+
+ public void Init(string syntaxFile, string separators)
+ {
+ try
+ {
+ if (!syntaxFile.ToLowerInvariant().EndsWith(".syn"))
+ syntaxFile += ".syn";
+
+
+ SyntaxDefinition = new SyntaxDefinitionLoader().Load(syntaxFile, separators);
+ }
+ catch {}
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void Init(SyntaxDefinition syntaxDefinition)
+ {
+ SyntaxDefinition = syntaxDefinition;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void ParsePreviewLine(int RowIndex)
+ {
+ Row Row = Document[RowIndex];
+ Row.Clear();
+ Row.Add(Row.Text);
+ Row.RowState = RowState.NotParsed;
+ }
+
+ private void MakeSame(int RowIndex)
+ {
+ Row row = Document[RowIndex];
+
+ //copy back the old segments to this line...
+ Span seg = row.endSpan;
+ Span seg2 = Document[RowIndex + 1].startSpan;
+ while (seg != null)
+ {
+ foreach (Word w in row)
+ {
+ if (w.Span == seg)
+ {
+ if (w.Span.StartWord == w)
+ seg2.StartWord = w;
+
+ if (w.Span.EndWord == w)
+ seg2.EndWord = w;
+
+ w.Span = seg2;
+ }
+ }
+
+ if (seg == row.startSpan)
+ row.startSpan = seg2;
+
+ if (seg == row.endSpan)
+ row.endSpan = seg2;
+
+
+ if (row.startSpans.IndexOf(seg) >= 0)
+ row.startSpans[row.startSpans.IndexOf(seg)] = seg2;
+
+ if (row.endSpans.IndexOf(seg) >= 0)
+ row.endSpans[row.endSpans.IndexOf(seg)] = seg2;
+
+ seg = seg.Parent;
+ seg2 = seg2.Parent;
+ }
+ row.SetExpansionSegment();
+ }
+
+ //om denna är true
+ // så ska INTE nästa rad parse'as , utan denna ska fixas så den blir som den förra... (kopiera span)
+ private bool IsSameButDifferent(int RowIndex, Span oldStartSpan)
+ {
+ //is this the last row ? , if so , bailout
+ if (RowIndex >= Document.Count - 1)
+ return false;
+
+ Row row = Document[RowIndex];
+ Span seg = row.endSpan;
+ Span oldEndSpan = Document[RowIndex + 1].startSpan;
+ Span oseg = oldEndSpan;
+
+ bool diff = false;
+
+ while (seg != null)
+ {
+ if (oseg == null)
+ {
+ diff = true;
+ break;
+ }
+
+ //Id1+=seg.spanDefinition.GetHashCode ().ToString (System.Globalization.CultureInfo.InvariantCulture);
+ if (seg.spanDefinition != oseg.spanDefinition)
+ {
+ diff = true;
+ break;
+ }
+
+ if (seg.Parent != oseg.Parent)
+ {
+ diff = true;
+ break;
+ }
+
+ seg = seg.Parent;
+ oseg = oseg.Parent;
+ }
+
+
+ if (diff || row.startSpan != oldStartSpan)
+ return false;
+
+ return true;
+ }
+
+ #endregion
+
+ private ScanResultWord GetNextWord(string Text, Span currentSpan, int StartPos, ref bool HasComplex)
+ {
+ SpanDefinition spanDefinition = currentSpan.spanDefinition;
+
+ #region ComplexFind
+
+ int BestComplexPos = - 1;
+ Pattern BestComplexPattern = null;
+ string BestComplexToken = "";
+ var complexword = new ScanResultWord();
+ if (HasComplex)
+ {
+ foreach (Pattern pattern in spanDefinition.ComplexPatterns)
+ {
+ PatternScanResult scanres = pattern.IndexIn(Text, StartPos, pattern.Parent.CaseSensitive, Separators);
+ if (scanres.Token != "")
+ {
+ if (scanres.Index < BestComplexPos || BestComplexPos == - 1)
+ {
+ BestComplexPos = scanres.Index;
+ BestComplexPattern = pattern;
+ BestComplexToken = scanres.Token;
+ }
+ }
+ }
+
+
+ if (BestComplexPattern != null)
+ {
+ complexword.HasContent = true;
+ complexword.ParentList = BestComplexPattern.Parent;
+ complexword.Pattern = BestComplexPattern;
+ complexword.Position = BestComplexPos;
+ complexword.Token = BestComplexToken;
+ }
+ else
+ {
+ HasComplex = false;
+ }
+ }
+
+ #endregion
+
+ #region SimpleFind
+
+ var simpleword = new ScanResultWord();
+ for (int i = StartPos; i < Text.Length; i++)
+ {
+ //bailout if we found a complex pattern before this char pos
+ if (i > complexword.Position && complexword.HasContent)
+ break;
+
+ #region 3+ char pattern
+
+ if (i <= Text.Length - 3)
+ {
+ string key = Text.Substring(i, 3).ToLowerInvariant();
+ var patterns2 = (PatternCollection) spanDefinition.LookupTable[key];
+ //ok , there are patterns that start with this char
+ if (patterns2 != null)
+ {
+ foreach (Pattern pattern in patterns2)
+ {
+ int len = pattern.StringPattern.Length;
+ if (i + len > Text.Length)
+ continue;
+
+ char lastpatternchar = char.ToLower(pattern.StringPattern[len - 1]);
+ char lasttextchar = char.ToLower(Text[i + len - 1]);
+
+ #region Case Insensitive
+
+ if (lastpatternchar == lasttextchar)
+ {
+ if (!pattern.IsKeyword || (pattern.IsKeyword && pattern.HasSeparators(Text, i)))
+ {
+ if (!pattern.Parent.CaseSensitive)
+ {
+ string s = Text.Substring(i, len).ToLowerInvariant();
+
+ if (s == pattern.StringPattern.ToLowerInvariant())
+ {
+ simpleword.HasContent = true;
+ simpleword.ParentList = pattern.Parent;
+ simpleword.Pattern = pattern;
+ simpleword.Position = i;
+ simpleword.Token = pattern.Parent.NormalizeCase
+ ? pattern.StringPattern
+ : Text.Substring(i, len);
+ break;
+ }
+ }
+ else
+ {
+ string s = Text.Substring(i, len);
+
+ if (s == pattern.StringPattern)
+ {
+ simpleword.HasContent = true;
+ simpleword.ParentList = pattern.Parent;
+ simpleword.Pattern = pattern;
+ simpleword.Position = i;
+ simpleword.Token = pattern.StringPattern;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+ }
+ }
+
+ #endregion
+
+ if (simpleword.HasContent)
+ break;
+
+ #region single char pattern
+
+ char c = Text[i];
+ var patterns = (PatternCollection) spanDefinition.LookupTable[c];
+ if (patterns != null)
+ {
+ //ok , there are patterns that start with this char
+ foreach (Pattern pattern in patterns)
+ {
+ int len = pattern.StringPattern.Length;
+ if (i + len > Text.Length)
+ continue;
+
+ char lastpatternchar = pattern.StringPattern[len - 1];
+ char lasttextchar = Text[i + len - 1];
+
+ if (!pattern.Parent.CaseSensitive)
+ {
+ #region Case Insensitive
+
+ if (char.ToLower(lastpatternchar) == char.ToLower(lasttextchar))
+ {
+ if (!pattern.IsKeyword || (pattern.IsKeyword && pattern.HasSeparators(Text, i)))
+ {
+ string s = Text.Substring(i, len).ToLowerInvariant();
+
+ if (s == pattern.StringPattern.ToLowerInvariant())
+ {
+ simpleword.HasContent = true;
+ simpleword.ParentList = pattern.Parent;
+ simpleword.Pattern = pattern;
+ simpleword.Position = i;
+ simpleword.Token = pattern.Parent.NormalizeCase
+ ? pattern.StringPattern
+ : Text.Substring(i, len);
+ break;
+ }
+ }
+ }
+
+ #endregion
+ }
+ else
+ {
+ #region Case Sensitive
+
+ if (lastpatternchar == lasttextchar)
+ {
+ if (!pattern.IsKeyword || (pattern.IsKeyword && pattern.HasSeparators(Text, i)))
+ {
+ string s = Text.Substring(i, len);
+
+ if (s == pattern.StringPattern)
+ {
+ simpleword.HasContent = true;
+ simpleword.ParentList = pattern.Parent;
+ simpleword.Pattern = pattern;
+ simpleword.Position = i;
+ simpleword.Token = pattern.StringPattern;
+ break;
+ }
+ }
+ }
+
+ #endregion
+ }
+ }
+
+ if (simpleword.HasContent)
+ break;
+ }
+
+ #endregion
+ }
+
+ #endregion
+
+ if (complexword.HasContent && simpleword.HasContent)
+ {
+ if (simpleword.Position == complexword.Position)
+ {
+ if (simpleword.Token.Length >= complexword.Token.Length)
+ return simpleword;
+ return complexword;
+ }
+
+ if (simpleword.Position < complexword.Position)
+ return simpleword;
+
+ if (simpleword.Position > complexword.Position)
+ return complexword;
+ }
+
+ if (simpleword.HasContent)
+ return simpleword;
+
+ if (complexword.HasContent)
+ return complexword;
+
+
+ return new ScanResultWord();
+ }
+
+
+ private void ParseText(Row Row, Span currentSpan, string Text)
+ {
+ int CurrentPosition = 0;
+ bool HasComplex = true;
+ while (true)
+ {
+ ScanResultWord Word = GetNextWord(Text, currentSpan, CurrentPosition, ref HasComplex);
+
+ if (!Word.HasContent)
+ {
+ ParseTools.AddString(Text.Substring(CurrentPosition), Row, currentSpan.spanDefinition.Style,
+ currentSpan);
+ break;
+ }
+ ParseTools.AddString(Text.Substring(CurrentPosition, Word.Position - CurrentPosition), Row,
+ currentSpan.spanDefinition.Style, currentSpan);
+ ParseTools.AddPatternString(Word.Token, Row, Word.Pattern, Word.ParentList.Style, currentSpan, false);
+ CurrentPosition = Word.Position + Word.Token.Length;
+ }
+ }
+
+ private void InternalParseLine(int index, bool ParseKeywords)
+ {
+ if (mSyntaxDefinition == null)
+ return;
+
+ //
+ // if (ParseKeywords)
+ // return;
+ // ParseKeywords=true;
+ SyntaxDocument doc = Document;
+ Row Row = doc[index];
+ Span oldEndSpan = Row.endSpan;
+ Span oldStartSpan = Row.startSpan;
+ bool Fold = !Row.IsCollapsed;
+
+
+ if (Row.IsCollapsedEndPart)
+ {
+ //Row.expansion_EndSpan.Expanded = true;
+ //Row.expansion_EndSpan.EndRow = null;
+ Row.expansion_EndSpan.EndWord = null;
+ }
+
+
+ //set startsegment for this row
+ if (index > 0)
+ {
+ Row.startSpan = Document[index - 1].endSpan;
+ }
+ else
+ {
+ if (Row.startSpan == null)
+ {
+ Row.startSpan = new Span(Row) {spanDefinition = mSyntaxDefinition.mainSpanDefinition};
+ }
+ }
+
+ int CurrentPosition = 0;
+ Span currentSpan = Row.startSpan;
+
+
+ //kör tills vi kommit till slutet av raden..
+ Row.endSpans.Clear();
+ Row.startSpans.Clear();
+ Row.Clear();
+ // bool HasEndSegment=false;
+
+ while (true)
+ {
+ ScanResultSegment ChildSegment = GetNextChildSegment(Row, currentSpan, CurrentPosition);
+ ScanResultSegment EndSegment = GetEndSegment(Row, currentSpan, CurrentPosition);
+
+ if ((EndSegment.HasContent && ChildSegment.HasContent && EndSegment.Position <= ChildSegment.Position) ||
+ (EndSegment.HasContent && ChildSegment.HasContent == false))
+ {
+ //this is an end span
+
+ if (ParseKeywords)
+ {
+ string Text = Row.Text.Substring(CurrentPosition, EndSegment.Position - CurrentPosition);
+ ParseText(Row, currentSpan, Text);
+ }
+
+ Span oldseg = currentSpan;
+ while (currentSpan != EndSegment.span)
+ {
+ Row.endSpans.Add(currentSpan);
+ currentSpan = currentSpan.Parent;
+ }
+ Row.endSpans.Add(currentSpan);
+
+ TextStyle st2 = currentSpan.Scope.Style;
+
+ ParseTools.AddPatternString(EndSegment.Token, Row, EndSegment.Pattern, st2, currentSpan, false);
+ while (oldseg != EndSegment.span)
+ {
+ oldseg.EndRow = Row;
+ oldseg.EndWord = Row[Row.Count - 1];
+ oldseg = oldseg.Parent;
+ }
+
+ currentSpan.EndRow = Row;
+ currentSpan.EndWord = Row[Row.Count - 1];
+
+
+ if (currentSpan.Parent != null)
+ currentSpan = currentSpan.Parent;
+
+ CurrentPosition = EndSegment.Position + EndSegment.Token.Length;
+ }
+ else if (ChildSegment.HasContent)
+ {
+ //this is a child block
+
+ if (ParseKeywords)
+ {
+ string Text = Row.Text.Substring(CurrentPosition, ChildSegment.Position - CurrentPosition);
+ //TextStyle st=currentSpan.spanDefinition.Style;
+ ParseText(Row, currentSpan, Text);
+ //ParseTools.AddString (Text,Row,st,currentSpan);
+ }
+
+
+ var NewSeg = new Span
+ {
+ Parent = currentSpan,
+ spanDefinition = ChildSegment.spanDefinition,
+ Scope = ChildSegment.Scope
+ };
+
+ Row.startSpans.Add(NewSeg);
+
+ TextStyle st2 = NewSeg.Scope.Style;
+ ParseTools.AddPatternString(ChildSegment.Token, Row, ChildSegment.Pattern, st2, NewSeg, false);
+ NewSeg.StartRow = Row;
+ NewSeg.StartWord = Row[Row.Count - 1];
+
+
+ currentSpan = NewSeg;
+ CurrentPosition = ChildSegment.Position + ChildSegment.Token.Length;
+
+ if (ChildSegment.Scope.spawnSpanOnStart != null)
+ {
+ var SpawnSeg = new Span
+ {
+ Parent = NewSeg,
+ spanDefinition = ChildSegment.Scope.spawnSpanOnStart,
+ Scope = new Scope(),
+ StartWord = NewSeg.StartWord
+ };
+ Row.startSpans.Add(SpawnSeg);
+ currentSpan = SpawnSeg;
+ }
+ }
+ else
+ {
+ if (CurrentPosition < Row.Text.Length)
+ {
+ if (ParseKeywords)
+ {
+ //we did not find a childblock nor an endblock , just output the last pice of text
+ string Text = Row.Text.Substring(CurrentPosition);
+ //TextStyle st=currentSpan.spanDefinition.Style;
+ ParseText(Row, currentSpan, Text);
+ //ParseTools.AddString (Text,Row,st,currentSpan);
+ }
+ }
+ break;
+ }
+ }
+
+ while (!currentSpan.spanDefinition.MultiLine)
+ {
+ Row.endSpans.Add(currentSpan);
+ currentSpan = currentSpan.Parent;
+ }
+
+ Row.endSpan = currentSpan;
+ Row.SetExpansionSegment();
+
+ Row.RowState = ParseKeywords ? RowState.AllParsed : RowState.SpanParsed;
+
+ if (IsSameButDifferent(index, oldStartSpan))
+ {
+ MakeSame(index);
+ //if (!IsSameButDifferent(index))
+ // System.Diagnostics.Debugger.Break();
+ }
+
+ if (Row.CanFold)
+ Row.expansion_StartSpan.Expanded = Fold;
+
+ //dont flag next line as needs parsing if only parsing keywords
+ if (!ParseKeywords)
+ {
+ if (oldEndSpan != null)
+ {
+ if (Row.endSpan != oldEndSpan && index <= Document.Count - 2)
+ {
+ //if (Row.CanFold)
+ // Row.expansion_StartSpan.Expanded = true;
+ Document[index + 1].AddToParseQueue();
+ Document.NeedResetRows = true;
+ }
+ }
+ else if (index <= Document.Count - 2)
+ {
+ //if (Row.CanFold)
+ // Row.expansion_StartSpan.Expanded = true;
+ Document[index + 1].AddToParseQueue();
+ Document.NeedResetRows = true;
+ }
+ }
+
+ if (oldEndSpan != null)
+ {
+ //expand span if this line dont have an end word
+ if (oldEndSpan.EndWord == null)
+ oldEndSpan.Expanded = true;
+ }
+ }
+
+
+ private ScanResultSegment GetEndSegment(Row Row, Span currentSpan, int StartPos)
+ {
+ //this row has no text , just bail out...
+ if (StartPos >= Row.Text.Length || currentSpan.Scope == null)
+ return new ScanResultSegment();
+
+ var Result = new ScanResultSegment {HasContent = false, IsEndSegment = false};
+
+
+ //--------------------------------------------------------------------------------
+ //scan for childblocks
+ //scan each scope in each childblock
+
+ Span seg = currentSpan;
+
+ while (seg != null)
+ {
+ if (seg == currentSpan || seg.spanDefinition.TerminateChildren)
+ {
+ foreach (Pattern end in seg.Scope.EndPatterns)
+ {
+ PatternScanResult psr = end.IndexIn(Row.Text, StartPos, seg.Scope.CaseSensitive, Separators);
+ int CurrentPosition = psr.Index;
+ if (psr.Token != "")
+ {
+ if ((psr.Index < Result.Position && Result.HasContent) || !Result.HasContent)
+ {
+ //we found a better match
+ //store this new match
+ Result.Pattern = end;
+ Result.Position = CurrentPosition;
+ Result.Token = psr.Token;
+ Result.HasContent = true;
+ Result.span = seg;
+ Result.Scope = null;
+
+
+ if (!end.IsComplex)
+ {
+ if (seg.Scope.NormalizeCase)
+ if (!seg.Scope.Start.IsComplex)
+ Result.Token = end.StringPattern;
+ }
+ }
+ }
+ }
+ }
+ seg = seg.Parent;
+ }
+
+ //no result , return new ScanResultSegment();
+ if (!Result.HasContent)
+ return new ScanResultSegment();
+
+ return Result;
+ }
+
+ private ScanResultSegment GetNextChildSegment(Row Row, Span currentSpan, int StartPos)
+ {
+ //this row has no text , just bail out...
+ if (StartPos >= Row.Text.Length)
+ return new ScanResultSegment();
+
+
+ var Result = new ScanResultSegment {HasContent = false, IsEndSegment = false};
+
+
+ foreach (SpanDefinition ChildBlock in currentSpan.spanDefinition.childSpanDefinitions)
+ {
+ //scan each scope in each childblock
+ foreach (Scope Scope in ChildBlock.ScopePatterns)
+ {
+ PatternScanResult psr = Scope.Start.IndexIn(Row.Text, StartPos, Scope.CaseSensitive, Separators);
+ int CurrentPosition = psr.Index;
+ if ((!Result.HasContent || CurrentPosition < Result.Position) && psr.Token != "")
+ {
+ //we found a better match
+ //store this new match
+ Result.Pattern = Scope.Start;
+ Result.Position = CurrentPosition;
+ Result.Token = psr.Token;
+ Result.HasContent = true;
+ Result.spanDefinition = ChildBlock;
+ Result.Scope = Scope;
+
+ if (Scope.NormalizeCase)
+ if (!Scope.Start.IsComplex)
+ Result.Token = Scope.Start.StringPattern;
+ }
+ }
+ }
+
+
+ //no result , new ScanResultSegment();
+ if (!Result.HasContent)
+ return new ScanResultSegment();
+
+ return Result;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/IParser.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/IParser.cs
new file mode 100644
index 0000000..395c209
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/IParser.cs
@@ -0,0 +1,63 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ ///
+ /// Parser interface.
+ /// Implement this interface if you want to create your own parser.
+ ///
+ public interface IParser
+ {
+ ///
+ /// Gets or Sets the Document object for this parser
+ ///
+ SyntaxDocument Document { get; set; }
+
+ ///
+ /// Gets or Sets the SyntaxDefinition for this parser
+ ///
+ SyntaxDefinition SyntaxDefinition { get; set; }
+
+ string Separators { get; set; }
+
+ ///
+ /// Initializes the parser with a spcified SyntaxFile
+ ///
+ /// Filename of the SyntaxFile that should be used
+ void Init(string syntaxDefinitionPath);
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ void Init(string syntaxDefinitionPath, string separators);
+
+ ///
+ /// Initializes the parser with a spcified syntaxDefinition object
+ ///
+ /// The Language object to assign to the parser
+ void Init(SyntaxDefinition syntaxDefinition);
+
+ ///
+ /// Called by the SyntaxDocument object when a row should be parsed
+ ///
+ /// The row index in the document
+ /// true if keywords and operators should be parsed , false if only a span parse should be performed
+ void ParseRow(int RowIndex, bool ParseKeywords);
+
+ ///
+ /// Called by the SyntaxDocument object when a row must be preview parsed.
+ ///
+ /// Row index in the document
+ void ParsePreviewLine(int RowIndex);
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/NewParser.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/NewParser.cs
new file mode 100644
index 0000000..6f2c5ef
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/NewParser.cs
@@ -0,0 +1,26 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ public sealed class NewParser : ParserBase
+ {
+ public override void ParseRow(int rowIndex, bool parseKeywords)
+ {
+ if (!parseKeywords)
+ ParseLineStructure(rowIndex);
+ else
+ ParseLineFully(rowIndex);
+ }
+
+ private void ParseLineFully(int rowIndex) {}
+
+ private void ParseLineStructure(int rowIndex) {}
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ParseTools.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ParseTools.cs
new file mode 100644
index 0000000..7325467
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ParseTools.cs
@@ -0,0 +1,126 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+using System.Text;
+
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ public sealed class ParseTools
+ {
+ public static void AddPatternString(string Text, Row Row, Pattern Pattern, TextStyle Style, Span span,
+ bool HasError)
+ {
+ var x = new Word {Style = Style, Pattern = Pattern, HasError = HasError, Span = span, Text = Text};
+ Row.Add(x);
+ }
+
+ public static unsafe void AddString(string Text, Row Row, TextStyle Style, Span span)
+ {
+ if (Text == "")
+ return;
+
+ var CurrentWord = new StringBuilder();
+ char[] Buff = Text.ToCharArray();
+ fixed (char* c = &Buff[0])
+ {
+ for (int i = 0; i < Text.Length; i++)
+ {
+ if (c[i] == ' ' || c[i] == '\t')
+ {
+ if (CurrentWord.Length != 0)
+ {
+ Word word = Row.Add(CurrentWord.ToString());
+ word.Style = Style;
+ word.Span = span;
+ CurrentWord = new StringBuilder();
+ }
+
+ Word ws = Row.Add(c[i].ToString());
+ if (c[i] == ' ')
+ ws.Type = WordType.Space;
+ else
+ ws.Type = WordType.Tab;
+ ws.Style = Style;
+ ws.Span = span;
+ }
+ else
+ CurrentWord.Append(c[i].ToString());
+ }
+ if (CurrentWord.Length != 0)
+ {
+ Word word = Row.Add(CurrentWord.ToString());
+ word.Style = Style;
+ word.Span = span;
+ }
+ }
+ }
+
+
+ public static List GetWords(string text)
+ {
+ var words = new List();
+ var CurrentWord = new StringBuilder();
+ foreach (char c in text)
+ {
+ if (c == ' ' || c == '\t')
+ {
+ if (CurrentWord.ToString() != "")
+ {
+ words.Add(CurrentWord.ToString());
+ CurrentWord = new StringBuilder();
+ }
+
+ words.Add(c.ToString());
+ }
+ else
+ CurrentWord.Append(c.ToString());
+ }
+ if (CurrentWord.ToString() != "")
+ words.Add(CurrentWord.ToString());
+ return words;
+ }
+
+ public static PatternScanResult GetFirstWord(char[] TextBuffer, PatternCollection Patterns, int StartPosition)
+ {
+ PatternScanResult Result;
+ Result.Index = 0;
+ Result.Token = "";
+
+ // for (int i=StartPosition;i
+ /// Parser event handler
+ ///
+ public delegate void ParserEventHandler(object sender, RowEventArgs e);
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultSegment.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultSegment.cs
new file mode 100644
index 0000000..a402c0e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultSegment.cs
@@ -0,0 +1,14 @@
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ public class ScanResultSegment
+ {
+ public bool HasContent;
+ public bool IsEndSegment;
+ public Pattern Pattern;
+ public int Position;
+ public Scope Scope;
+ public Span span;
+ public SpanDefinition spanDefinition;
+ public string Token = "";
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultWord.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultWord.cs
new file mode 100644
index 0000000..c0ffdd4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Parser/ScanResultWord.cs
@@ -0,0 +1,11 @@
+namespace Alsing.SourceCode.SyntaxDocumentParsers
+{
+ public class ScanResultWord
+ {
+ public bool HasContent;
+ public PatternList ParentList;
+ public Pattern Pattern;
+ public int Position;
+ public string Token = "";
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.cs
new file mode 100644
index 0000000..7ce7e48
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.cs
@@ -0,0 +1,214 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Printing;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// Printer document class.
+ ///
+ ///
+ ///
+ ///
+ /// Print the content of a SyntaxDocument:
+ ///
+ /// SourceCodePrintDocument PrintDoc=new SourceCodePrintDocument(MySyntaxDocument);
+ ///
+ /// PrintDialog1.Document =PrintDoc;
+ /// if (PrintDialog1.ShowDialog ()==DialogResult.OK)
+ /// PrintDoc.Print ();
+ ///
+ ///
+ /// Print Preview the content of a SyntaxDocument
+ ///
+ /// SourceCodePrintDocument PrintDoc=new SourceCodePrintDocument(MySyntaxDocument);
+ /// PrintPreviewDialog1.Document = PrintDoc
+ /// PrintPreviewDialog1.ShowDialog ();
+ ///
+ ///
+ [ToolboxItem(true)]
+ public class SourceCodePrintDocument : PrintDocument
+ {
+ private Font fontBreak;
+ private Font fontNormal;
+
+
+ private RowList rc;
+ private int RowIndex;
+
+ public SourceCodePrintDocument() {}
+
+ public SourceCodePrintDocument(SyntaxDocument document)
+ {
+ Document = document;
+ }
+
+ public SyntaxDocument Document { get; set; }
+
+ //Override OnBeginPrint to set up the font we are going to use
+ protected override void OnBeginPrint(PrintEventArgs ev)
+ {
+ base.OnBeginPrint(ev);
+ fontNormal = new Font("Courier new", 8, FontStyle.Regular);
+ fontBreak = new Font("Symbol", 8, FontStyle.Bold);
+ // fontBold = new Font("Arial", 10,FontStyle.Bold);
+ // fontItalic = new Font("Arial", 10,FontStyle.Italic);
+ // fontBoldItalic = new Font("Arial", 10,FontStyle.Bold | FontStyle.Italic);
+ // fontUnderline = new Font("Arial", 10,FontStyle.Underline);
+ // fontBoldUnderline = new Font("Arial", 10,FontStyle.Bold | FontStyle.Underline);
+ // fontItalicUnderline = new Font("Arial", 10,FontStyle.Italic | FontStyle.Underline);
+ // fontBoldItalicUnderline = new Font("Arial", 10,FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);
+ RowIndex = 0;
+ }
+
+ //Override the OnPrintPage to provide the printing logic for the document
+ protected override void OnPrintPage(PrintPageEventArgs ev)
+ {
+ int count = 0;
+ float leftMargin = ev.MarginBounds.Left;
+ float rightMargin = ev.MarginBounds.Right;
+ float topMargin = ev.MarginBounds.Top;
+ //ev.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
+
+ if (rc == null)
+ {
+ Document.ParseAll();
+ Document.ParseAll(true);
+
+
+ rc = new RowList();
+ foreach (Row r in Document)
+ {
+ bool hasbreak = false;
+ float x = leftMargin;
+ var newRow = new Row();
+ rc.Add(newRow);
+ foreach (Word w in r)
+ {
+ Font f = fontNormal;
+ if (w.Style != null)
+ {
+ FontStyle fs = 0;
+
+ if (w.Style.Bold)
+ fs |= FontStyle.Bold;
+
+ if (w.Style.Italic)
+ fs |= FontStyle.Italic;
+
+ if (w.Style.Underline)
+ fs |= FontStyle.Underline;
+
+ f = new Font("Courier new", 8, fs);
+ }
+ SizeF sf = ev.Graphics.MeasureString(w.Text, f);
+ if (x + sf.Width > rightMargin)
+ {
+ var chr = (char) 0xbf;
+ var br = new Word {Text = (chr + ""), InfoTip = "break char"};
+ newRow.Add(br);
+ hasbreak = true;
+
+
+ newRow = new Row();
+ rc.Add(newRow);
+ x = leftMargin;
+ }
+ x += sf.Width;
+ newRow.Add(w);
+ }
+ if (hasbreak)
+ {
+ rc.Add(new Row());
+ }
+ }
+ }
+ //------------------------------------------------------
+
+ base.OnPrintPage(ev);
+
+
+ float lpp = ev.MarginBounds.Height/fontNormal.GetHeight(ev.Graphics);
+
+
+ while (count < lpp && (RowIndex < rc.Count))
+ {
+ float x = leftMargin;
+ float yPos = topMargin + (count*fontNormal.GetHeight(ev.Graphics));
+
+ Row r = rc[RowIndex];
+
+ foreach (Word w in r)
+ {
+ if (w.InfoTip != null && w.InfoTip == "break char")
+ {
+ ev.Graphics.DrawString(w.Text, fontBreak, Brushes.Black, x, yPos, new StringFormat());
+ }
+ else
+ {
+ SizeF sf = ev.Graphics.MeasureString(w.Text, fontNormal);
+
+ if (w.Text != null && (".,:;".IndexOf(w.Text) >= 0))
+ {
+ sf.Width = 6;
+ x -= 4;
+ }
+ if (w.Text == "\t")
+ {
+ sf.Width = ev.Graphics.MeasureString("...", fontNormal).Width;
+ }
+
+
+ Color c = Color.Black;
+ Font f = fontNormal;
+ if (w.Style != null)
+ {
+ c = w.Style.ForeColor;
+ FontStyle fs = 0;
+
+ if (w.Style.Bold)
+ fs |= FontStyle.Bold;
+
+ if (w.Style.Italic)
+ fs |= FontStyle.Italic;
+
+ if (w.Style.Underline)
+ fs |= FontStyle.Underline;
+
+ f = new Font("Courier new", 8, fs);
+
+ if (!w.Style.Transparent)
+ {
+ Color bg = w.Style.BackColor;
+ ev.Graphics.FillRectangle(new SolidBrush(bg), x, yPos, sf.Width,
+ fontNormal.GetHeight(ev.Graphics));
+ }
+ }
+
+ c = Color.FromArgb(c.R, c.G, c.B);
+
+
+ ev.Graphics.DrawString(w.Text, f, new SolidBrush(c), x, yPos, new StringFormat());
+ x += sf.Width;
+ }
+ }
+
+ count++;
+ RowIndex++;
+ }
+
+ //If we have more lines then print another page
+ ev.HasMorePages = RowIndex < rc.Count;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.resx
new file mode 100644
index 0000000..6b3c4ce
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/Print/SourceCodePrintDocument.resx
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.0.0.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/Pattern.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/Pattern.cs
new file mode 100644
index 0000000..f7d8362
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/Pattern.cs
@@ -0,0 +1,170 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Text.RegularExpressions;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// A Pattern is a specific string or a RegEx pattern that is used by the parser.
+ /// There are two types of patterns , Simple and Complex.
+ ///
+ /// Simple Patterns are patterns that consists of a simple fixed string eg. "void" or "for".
+ /// Complex Patterns are patterns that consists of RegEx patterns , eg hex numbers or urls can be described as regex patterns.
+ ///
+ public sealed partial class Pattern
+ {
+ public static readonly string DefaultSeparators = ".,+-*^\\/()[]{}@:;'?£$#%& \t=<>";
+
+ private string _StringPattern = "";
+ public BracketType BracketType = BracketType.None;
+
+ ///
+ /// Category of the pattern
+ /// Built in categories are:
+ /// URL
+ /// MAIL
+ /// FILE
+ ///
+ public string Category;
+
+ ///
+ /// Gets if the pattern is a simple string or a RegEx pattern
+ ///
+ public bool IsComplex;
+
+ ///
+ /// Get or Sets if this pattern needs separator chars before and after it in order to be valid.
+ ///
+ public bool IsKeyword;
+
+ public bool IsMultiLineBracket = true;
+
+ ///
+ /// Gets or Sets if the pattern is a separator pattern .
+ /// A separator pattern can be "End Sub" in VB6 , whenever that pattern is found , the SyntaxBoxControl will render a horizontal separator line.
+ /// NOTE: this should not be mixed up with separator chars.
+ ///
+ public bool IsSeparator;
+
+ ///
+ /// For internal use only
+ ///
+ public string LowerStringPattern = "";
+
+ public Pattern MatchingBracket;
+
+ ///
+ /// The owning PatternList , eg a specific KeywordList or OperatorList
+ ///
+ public PatternList Parent;
+
+ internal Regex rx;
+
+ #region PUBLIC PROPERTY SEPARATORS
+
+ private string _Separators = DefaultSeparators;
+
+ public string Separators
+ {
+ get { return _Separators; }
+ set { _Separators = value; }
+ }
+
+ #endregion
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Pattern(string pattern, bool iscomplex)
+ {
+ StringPattern = pattern;
+ if (iscomplex)
+ {
+ IsComplex = true;
+ rx = new Regex(StringPattern, RegexOptions.Compiled);
+ }
+ else
+ {
+ IsComplex = false;
+ }
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Pattern(string pattern, bool iscomplex, bool separator, bool keyword)
+ {
+ Init(pattern, iscomplex, separator, keyword);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Pattern(string pattern, bool separator, bool keyword, string escapeChar)
+ {
+ escapeChar = Regex.Escape(escapeChar);
+ string escapePattern = string.Format("(?<=((?
+ /// Gets or Sets the the text of the pattern
+ /// this only applies if the pattern is a simple pattern.
+ ///
+ public string StringPattern
+ {
+ get { return _StringPattern; }
+ set
+ {
+ _StringPattern = value;
+ LowerStringPattern = _StringPattern.ToLowerInvariant();
+ }
+ }
+
+ ///
+ /// Returns true if the pattern contains separator chars
+ /// (This is used by the parser)
+ ///
+ public bool ContainsSeparator
+ {
+ get
+ {
+ foreach (char c in StringPattern)
+ {
+ if (Separators.IndexOf(c) >= 0)
+ return true;
+ }
+ return false;
+ }
+ }
+
+ private void Init(string pattern, bool isComplex, bool separator, bool keyword)
+ {
+ StringPattern = pattern;
+ IsSeparator = separator;
+ IsKeyword = keyword;
+ IsComplex = isComplex;
+ if (isComplex)
+ rx = new Regex(StringPattern, RegexOptions.Compiled);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternCollection.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternCollection.cs
new file mode 100644
index 0000000..e0e9905
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternCollection.cs
@@ -0,0 +1,19 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public sealed class PatternCollection : List {}
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternExtensions.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternExtensions.cs
new file mode 100644
index 0000000..7270545
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternExtensions.cs
@@ -0,0 +1,158 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Text.RegularExpressions;
+
+namespace Alsing.SourceCode
+{
+ public partial class Pattern
+ {
+ ///
+ /// For public use only
+ ///
+ ///
+ ///
+ ///
+ public bool HasSeparators(string text, int position)
+ {
+ return (CharIsSeparator(text, position - 1) && CharIsSeparator(text, position + StringPattern.Length));
+ }
+
+
+ private bool CharIsSeparator(string Text, int Position)
+ {
+ if (Position < 0 || Position >= Text.Length)
+ return true;
+
+ string s = Text.Substring(Position, 1);
+ if (Separators.IndexOf(s) >= 0)
+ return true;
+ return false;
+ }
+
+ ///
+ /// Returns the index of the pattern in a string
+ ///
+ ///
+ /// The string in which to find the pattern
+ /// Start index in the string
+ /// true if a case sensitive match should be performed
+ ///
+ /// A PatternScanResult containing information on where the pattern was found and also the text of the pattern
+ public PatternScanResult IndexIn(string text, int startPosition, bool matchCase, string separators)
+ {
+ if (separators == null) {}
+ else
+ {
+ Separators = separators;
+ }
+
+ if (!IsComplex)
+ {
+ if (!IsKeyword)
+ return SimpleFind(text, startPosition, matchCase);
+
+ return SimpleFindKeyword(text, startPosition, matchCase);
+ }
+ if (!IsKeyword)
+ return ComplexFind(text, startPosition);
+
+ return ComplexFindKeyword(text, startPosition);
+ }
+
+
+ private PatternScanResult SimpleFind(string text, int startPosition, bool matchCase)
+ {
+ int Position = matchCase
+ ? text.IndexOf(StringPattern, startPosition)
+ : text.ToLowerInvariant().IndexOf(LowerStringPattern, startPosition);
+
+ PatternScanResult Result;
+ if (Position >= 0)
+ {
+ Result.Index = Position;
+ Result.Token = text.Substring(Position, StringPattern.Length);
+ }
+ else
+ {
+ Result.Index = 0;
+ Result.Token = "";
+ }
+
+ return Result;
+ }
+
+ private PatternScanResult SimpleFindKeyword(string text, int startPosition, bool matchCase)
+ {
+ PatternScanResult res;
+ while (true)
+ {
+ res = SimpleFind(text, startPosition, matchCase);
+ if (res.Token == "")
+ return res;
+
+ if (CharIsSeparator(text, res.Index - 1) && CharIsSeparator(text, res.Index + res.Token.Length))
+ return res;
+
+ startPosition = res.Index + 1;
+ if (startPosition >= text.Length)
+ {
+ res.Token = "";
+ res.Index = 0;
+ return res;
+ }
+ }
+ }
+
+
+ private PatternScanResult ComplexFindKeyword(string text, int startPosition)
+ {
+ PatternScanResult res;
+ while (true)
+ {
+ res = ComplexFind(text, startPosition);
+ if (res.Token == "")
+ return res;
+
+ if (CharIsSeparator(text, res.Index - 1) && CharIsSeparator(text, res.Index + res.Token.Length))
+ return res;
+
+ startPosition = res.Index + 1;
+ if (startPosition >= text.Length)
+ {
+ res.Token = "";
+ res.Index = 0;
+ return res;
+ }
+ }
+ }
+
+ private PatternScanResult ComplexFind(string text, int startPosition)
+ {
+ MatchCollection mc = rx.Matches(text);
+ foreach (Match m in mc)
+ {
+ int pos = m.Index;
+ string p = m.Value;
+ if (pos >= startPosition)
+ {
+ PatternScanResult t;
+ t.Index = pos;
+ t.Token = p;
+ return t;
+ }
+ }
+ PatternScanResult res;
+ res.Index = 0;
+ res.Token = "";
+ return res;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternList.cs
new file mode 100644
index 0000000..dc14dbb
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternList.cs
@@ -0,0 +1,160 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Collections;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// A List containing patterns.
+ /// this could be for example a list of keywords or operators
+ ///
+ public sealed class PatternList : IEnumerable
+ {
+ private readonly PatternCollection patterns = new PatternCollection();
+
+ ///
+ /// Gets or Sets if this list contains case seinsitive patterns
+ ///
+ public bool CaseSensitive;
+
+ ///
+ /// For public use only
+ ///
+ public PatternCollection ComplexPatterns = new PatternCollection();
+
+ ///
+ /// The name of the pattern list
+ ///
+ public string Name = "";
+
+ ///
+ /// Gets or Sets if the patterns in this list should be case normalized
+ ///
+ public bool NormalizeCase;
+
+ ///
+ ///
+ ///
+ public PatternListList Parent;
+
+ ///
+ /// The parent spanDefinition of this list
+ ///
+ public SpanDefinition parentSpanDefinition;
+
+ ///
+ /// for public use only
+ ///
+ public Hashtable SimplePatterns = new Hashtable();
+
+ ///
+ ///
+ ///
+ public Hashtable SimplePatterns1Char = new Hashtable();
+
+ ///
+ /// For public use only
+ ///
+ public Hashtable SimplePatterns2Char = new Hashtable();
+
+ ///
+ /// Gets or Sets the TextStyle that should be assigned to patterns in this list
+ ///
+ public TextStyle Style = new TextStyle();
+
+ ///
+ ///
+ ///
+ public PatternList()
+ {
+ SimplePatterns = new Hashtable(CaseInsensitiveHashCodeProvider.Default, CaseInsensitiveComparer.Default);
+ }
+
+ #region IEnumerable Members
+
+ ///
+ ///
+ ///
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return patterns.GetEnumerator();
+ }
+
+ #endregion
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Pattern Add(Pattern Pattern)
+ {
+ if (Parent != null && Parent.Parent != null && Parent.Parent.Parent != null)
+ {
+ Pattern.Separators = Parent.Parent.Parent.Separators;
+ Parent.Parent.Parent.ChangeVersion();
+ }
+
+ if (!Pattern.IsComplex && !Pattern.ContainsSeparator)
+ {
+ //store pattern in lookuptable if it is a simple pattern
+ string s;
+
+ if (Pattern.StringPattern.Length >= 2)
+ s = Pattern.StringPattern.Substring(0, 2);
+ else
+ s = Pattern.StringPattern.Substring(0, 1) + " ";
+
+ s = s.ToLowerInvariant();
+
+ if (Pattern.StringPattern.Length == 1)
+ {
+ SimplePatterns1Char[Pattern.StringPattern] = Pattern;
+ }
+ else
+ {
+ if (SimplePatterns2Char[s] == null)
+ SimplePatterns2Char[s] = new PatternCollection();
+ var ar = (PatternCollection) SimplePatterns2Char[s];
+ ar.Add(Pattern);
+ }
+
+ if (CaseSensitive)
+ SimplePatterns[Pattern.LowerStringPattern] = Pattern;
+ else
+ SimplePatterns[Pattern.StringPattern] = Pattern;
+ }
+ else
+ {
+ ComplexPatterns.Add(Pattern);
+ }
+
+ patterns.Add(Pattern);
+ if (Pattern.Parent == null)
+ Pattern.Parent = this;
+ else
+ {
+ throw (new Exception("Pattern already assigned to another PatternList"));
+ }
+ return Pattern;
+ }
+
+ ///
+ ///
+ ///
+ public void Clear()
+ {
+ patterns.Clear();
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternListList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternListList.cs
new file mode 100644
index 0000000..d1fcbab
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternListList.cs
@@ -0,0 +1,93 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public sealed class PatternListList : IEnumerable
+ {
+ private readonly ArrayList mGroups = new ArrayList();
+
+ ///
+ ///
+ ///
+ public bool IsKeyword;
+
+ ///
+ ///
+ ///
+ public bool IsOperator;
+
+ ///
+ ///
+ ///
+ public SpanDefinition Parent;
+
+ ///
+ ///
+ ///
+ public PatternListList() {}
+
+ public PatternListList(SpanDefinition parent)
+ {
+ Parent = parent;
+ }
+
+ ///
+ ///
+ ///
+ public PatternList this[int index]
+ {
+ get { return (PatternList) mGroups[index]; }
+
+ set { mGroups[index] = value; }
+ }
+
+ #region IEnumerable Members
+
+ ///
+ ///
+ ///
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return mGroups.GetEnumerator();
+ }
+
+ #endregion
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public PatternList Add(PatternList Group)
+ {
+ mGroups.Add(Group);
+ Group.Parent = this;
+ if (Parent != null && Parent.Parent != null)
+ Parent.Parent.ChangeVersion();
+
+ return Group;
+ }
+
+ ///
+ ///
+ ///
+ public void Clear()
+ {
+ mGroups.Clear();
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternScanResult.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternScanResult.cs
new file mode 100644
index 0000000..0ddeecf
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Pattern/PatternScanResult.cs
@@ -0,0 +1,29 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// PatternScanResult struct is redurned by the Pattern class when an .IndexIn call has been performed.
+ ///
+ public struct PatternScanResult
+ {
+ ///
+ /// The index on which the pattern was found in the source string
+ ///
+ public int Index;
+
+ ///
+ /// The string that was found , this is always the same as the pattern StringPattern property if the pattern is a simple pattern.
+ /// if the pattern is complex this field will contain the string that was found by the scan.
+ ///
+ public string Token;
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/Scope.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/Scope.cs
new file mode 100644
index 0000000..be6560f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/Scope.cs
@@ -0,0 +1,70 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// The Scope class defines what patterns starts and ends a spanDefinition
+ ///
+ public sealed class Scope
+ {
+ ///
+ /// Gets or Sets if the scope patterns is case sensitive
+ ///
+ public bool CaseSensitive;
+
+ public bool CauseIndent;
+
+ ///
+ /// Gets or Sets if this block should be expanded or collapsed by default
+ ///
+ public bool DefaultExpanded = true;
+
+ ///
+ /// List of end patterns
+ ///
+ public PatternCollection EndPatterns = new PatternCollection();
+
+ ///
+ /// The text that should be displayed if the owner block is collapsed
+ ///
+ public string ExpansionText = "";
+
+ ///
+ /// Gets or Sets if the scope patterns should be case normalized
+ ///
+ public bool NormalizeCase = true;
+
+ ///
+ /// The owner spanDefinition
+ ///
+ public SpanDefinition Parent;
+
+ ///
+ /// spanDefinition that should be started directly after this block have ended
+ ///
+ public SpanDefinition spawnSpanOnEnd;
+
+ ///
+ /// spanDefinition that should be started directly after this block have started
+ ///
+ public SpanDefinition spawnSpanOnStart;
+
+ ///
+ /// The Start trigger Pattern
+ ///
+ public Pattern Start;
+
+ ///
+ /// The style that should be applied to the start and end patterns
+ ///
+ public TextStyle Style;
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/ScopeList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/ScopeList.cs
new file mode 100644
index 0000000..ca4dbc5
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/Scope/ScopeList.cs
@@ -0,0 +1,28 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+using T = Alsing.SourceCode.Scope;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public sealed class ScopeList : List
+ {
+ public ScopeList(SpanDefinition parent)
+ {
+ Parent = parent;
+ }
+
+ public SpanDefinition Parent { get; private set; }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinition.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinition.cs
new file mode 100644
index 0000000..33b50a4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinition.cs
@@ -0,0 +1,242 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections;
+using System.Collections.Generic;
+using System.Drawing;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// spanDefinition class
+ ///
+ ///
+ /// The spanDefinition class represents a specific code/text element
+ /// such as a string , comment or the code itself.
+ ///
+ /// a spanDefinition can contain keywords , operators , scopes and child spans.
+ ///
+ ///
+ /// For example , if we where to describe the syntax C#
+ /// we would have the following span:
+ ///
+ /// Code span - the spanDefinition containing all the keywords and operators.
+ /// Singleline comment span - a spanDefinition that starts on // terminates at the end of a line.
+ /// Multiline comment span - a spanDefinition that starts on /* can span multiple rows and terminates on */.
+ /// String span - a spanDefinition that starts on " terminates on " or at the end of a line.
+ /// Char span - a spanDefinition that starts on ' terminates on ' or at the end of a line.
+ ///
+ /// CHILD SPANS:
+ /// The code span would have all the other spans as childspans , since they can only appear inside the
+ /// code span . A string can for example never exist inside a comment in C#.
+ /// a spanDefinition can also have itself as a child span.
+ /// For example , the C# Code span can have itself as a childspan and use the scope patterns "{" and "}"
+ /// this way we can accomplish FOLDING since the parser will know where a new scope starts and ends.
+ ///
+ /// SCOPES:
+ /// Scopes describe what patterns starts and what patterns end a specific spanDefinition.
+ /// For example , the C# Multiline Comment have the scope patterns /* and */
+ ///
+ /// KEYWORDS:
+ /// A Keyword is a pattern that can only exist between separator chars.
+ /// For example the keyword "for" in c# is valid if it is contained in this string " for ("
+ /// but it is not valid if the containing string is " MyFormat "
+ ///
+ /// OPERATORS:
+ /// Operators is the same thing as keywords but are valid even if there are no separator chars around it.
+ /// In most cases operators are only one or two chars such as ":" or "->"
+ /// operators in this context should not be mixed up with code operators such as "and" or "xor" in VB6
+ /// in this context they are keywords.
+ ///
+ ///
+ ///
+ public class SpanDefinition
+ {
+ private readonly List tmpSimplePatterns = new List();
+
+ ///
+ /// The background color of a span.
+ ///
+ public Color BackColor = Color.Transparent;
+
+ ///
+ /// A list containing which spanDefinitions are valid child spans in a specific span.
+ /// eg. strings and comments are child spans for a code span
+ ///
+ public SpanDefinitionList childSpanDefinitions = new SpanDefinitionList();
+
+ public PatternCollection ComplexPatterns = new PatternCollection();
+
+ ///
+ /// A list of keyword groups.
+ /// For example , one keyword group could be "keywords" and another could be "datatypes"
+ /// theese groups could have different color shemes assigned to them.
+ ///
+ public PatternListList KeywordsList; //new PatternListList (this);
+
+ public Hashtable LookupTable = new Hashtable();
+
+ ///
+ /// Gets or Sets if the spanDefinition can span multiple lines or if it should terminate at the end of a line.
+ ///
+ public bool MultiLine;
+
+ ///
+ /// The name of this span.
+ /// names are not required for span but can be a good help when interacting with the parser.
+ ///
+ public string Name = "";
+
+ ///
+ /// A list of operator groups.
+ /// Each operator group can contain its own operator patterns and its own color shemes.
+ ///
+ public PatternListList OperatorsList; //new PatternListList (this);
+
+ ///
+ /// A list of scopes , most span only contain one scope , eg a scope with start and end patterns "/*" and "*/"
+ /// for multiline comments, but in some cases you will need more scopes , eg. PHP uses both "<?" , "?>" and "<?PHP" , "PHP?>"
+ ///
+ public ScopeList ScopePatterns;
+
+ ///
+ /// The style to use when colorizing the content of a span,
+ /// meaning everything in this span except keywords , operators and childspans.
+ ///
+ public TextStyle Style;
+
+ ///
+ /// Gets or Sets if the parser should terminate any child span when it finds an end scope pattern for this span.
+ /// for example %> in asp terminates any asp span even if it appears inside an asp string.
+ ///
+ public bool TerminateChildren;
+
+
+ ///
+ /// Default spanDefinition constructor
+ ///
+ public SpanDefinition(SyntaxDefinition parent) : this()
+ {
+ Parent = parent;
+ Parent.ChangeVersion();
+ }
+
+ public SpanDefinition()
+ {
+ KeywordsList = new PatternListList(this);
+ OperatorsList = new PatternListList(this);
+
+ Style = new TextStyle();
+ KeywordsList.Parent = this;
+ KeywordsList.IsKeyword = true;
+ OperatorsList.Parent = this;
+ OperatorsList.IsOperator = true;
+ ScopePatterns = new ScopeList(this);
+ }
+
+ #region PUBLIC PROPERTY PARENT
+
+ public SyntaxDefinition Parent { get; set; }
+
+ #endregion
+
+ ///
+ /// Returns false if any color has been assigned to the backcolor property
+ ///
+ public bool Transparent
+ {
+ get { return (BackColor.A == 0); }
+ }
+
+ public void ResetLookupTable()
+ {
+ LookupTable.Clear();
+ tmpSimplePatterns.Clear();
+ ComplexPatterns.Clear();
+ }
+
+ public void AddToLookupTable(Pattern pattern)
+ {
+ if (pattern.IsComplex)
+ {
+ ComplexPatterns.Add(pattern);
+ return;
+ }
+ tmpSimplePatterns.Add(pattern);
+ }
+
+ public void BuildLookupTable()
+ {
+ tmpSimplePatterns.Sort(new PatternComparer());
+ foreach (Pattern p in tmpSimplePatterns)
+ {
+ if (p.StringPattern.Length <= 2)
+ {
+ char c = p.StringPattern[0];
+
+ if (!p.Parent.CaseSensitive)
+ {
+ char c1 = char.ToLowerInvariant(c);
+ if (LookupTable[c1] == null)
+ LookupTable[c1] = new PatternCollection();
+
+ var patterns = LookupTable[c1] as PatternCollection;
+ if (patterns != null)
+ if (!patterns.Contains(p))
+ patterns.Add(p);
+
+ char c2 = char.ToUpper(c);
+ if (LookupTable[c2] == null)
+ LookupTable[c2] = new PatternCollection();
+
+ patterns = LookupTable[c2] as PatternCollection;
+ if (patterns != null)
+ if (!patterns.Contains(p))
+ patterns.Add(p);
+ }
+ else
+ {
+ if (LookupTable[c] == null)
+ LookupTable[c] = new PatternCollection();
+
+ var patterns = LookupTable[c] as PatternCollection;
+ if (patterns != null)
+ if (!patterns.Contains(p))
+ patterns.Add(p);
+ }
+ }
+ else
+ {
+ string c = p.StringPattern.Substring(0, 3).ToLowerInvariant();
+
+ if (LookupTable[c] == null)
+ LookupTable[c] = new PatternCollection();
+
+ var patterns = LookupTable[c] as PatternCollection;
+ if (patterns != null)
+ if (!patterns.Contains(p))
+ patterns.Add(p);
+ }
+ }
+ }
+ }
+
+ public class PatternComparer : IComparer
+ {
+ #region IComparer Members
+
+ public int Compare(Pattern x, Pattern y)
+ {
+ return y.StringPattern.Length.CompareTo(x.StringPattern.Length);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinitionList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinitionList.cs
new file mode 100644
index 0000000..1b7e538
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SpanDefinition/SpanDefinitionList.cs
@@ -0,0 +1,19 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public class SpanDefinitionList : List {}
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinition.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinition.cs
new file mode 100644
index 0000000..70c82e8
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinition.cs
@@ -0,0 +1,245 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// File type struct
+ ///
+ public class FileType
+ {
+ ///
+ /// The file type extension
+ ///
+ public string Extension = "";
+
+ ///
+ /// The name of the file type
+ ///
+ public string Name = "";
+ }
+
+ ///
+ /// The SyntaxDefinition class describes a syntax.
+ /// It consists of a mainSpanDefinition , which is the start spanDefinition of the SyntaxDefinition
+ /// It also have a list of filetypes that is valid for this syntax
+ ///
+ ///
+ /// Apply a Syntax to a SyntaxBox
+ ///
+ /// SyntaxBoxControl1.Document.SyntaxFile="C#.syn";
+ ///
+ ///
+ public class SyntaxDefinition
+ {
+ #region PUBLIC PROPERTY SEPARATORS
+
+ private string _Separators = ".,:;{}()[]+-*/\\ \t=&%$#@!|&";
+
+ public string Separators
+ {
+ get { return _Separators; }
+ set { _Separators = value; }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY VERSION
+
+ private long _Version = long.MinValue;
+
+ public long Version
+ {
+ get { return _Version; }
+ set { _Version = value; }
+ }
+
+ #endregion
+
+ private readonly Dictionary spanDefinitionLookup =
+ new Dictionary();
+
+ private readonly Dictionary styleLookup = new Dictionary();
+
+ ///
+ /// List containing the valid filetypes for this syntax
+ ///
+ public List FileTypes = new List();
+
+ ///
+ /// The start spanDefinition for this syntax
+ ///
+ public SpanDefinition mainSpanDefinition;
+
+ ///
+ /// Name of the SyntaxDefinition
+ ///
+ public string Name = "";
+
+ ///
+ /// Gets all BlockTypes in a given syntax.
+ ///
+ public SpanDefinition[] SpanDefinitions
+ {
+ get
+ {
+ spanDefinitionLookup.Clear();
+ FillBlocks(mainSpanDefinition);
+ var blocks = new SpanDefinition[spanDefinitionLookup.Values.Count];
+ int i = 0;
+ foreach (SpanDefinition bt in spanDefinitionLookup.Values)
+ {
+ blocks[i] = bt;
+ i++;
+ }
+
+ return blocks;
+ }
+ }
+
+ public TextStyle[] Styles
+ {
+ get
+ {
+ styleLookup.Clear();
+ SpanDefinition[] spanDefinitions = SpanDefinitions;
+ foreach (SpanDefinition bt in spanDefinitions)
+ {
+ styleLookup[bt.Style] = bt.Style;
+
+ foreach (Scope sc in bt.ScopePatterns)
+ {
+ if (sc.Style != null)
+ styleLookup[sc.Style] = sc.Style;
+ }
+
+ foreach (PatternList pl in bt.KeywordsList)
+ {
+ if (pl.Style != null)
+ styleLookup[pl.Style] = pl.Style;
+ }
+
+ foreach (PatternList pl in bt.OperatorsList)
+ {
+ if (pl.Style != null)
+ styleLookup[pl.Style] = pl.Style;
+ }
+ }
+
+ var styles = new TextStyle[styleLookup.Values.Count];
+ int i = 0;
+ foreach (TextStyle st in styleLookup.Values)
+ {
+ styles[i] = st;
+ i++;
+ }
+ return styles;
+ }
+ }
+
+ public void UpdateLists()
+ {
+ SpanDefinition[] spanDefinitions = SpanDefinitions;
+ foreach (SpanDefinition block in spanDefinitions)
+ {
+ block.Parent = this;
+ block.ResetLookupTable();
+
+ block.KeywordsList.Parent = block;
+ foreach (PatternList patterns in block.KeywordsList)
+ {
+ patterns.Parent = block.KeywordsList;
+
+ foreach (Pattern pattern in patterns)
+ {
+ block.AddToLookupTable(pattern);
+ }
+ }
+
+ block.OperatorsList.Parent = block;
+ foreach (PatternList patterns in block.OperatorsList)
+ {
+ patterns.Parent = block.OperatorsList;
+
+ foreach (Pattern pattern in patterns)
+ {
+ block.AddToLookupTable(pattern);
+ }
+ }
+ block.BuildLookupTable();
+ }
+ }
+
+ public void ChangeVersion()
+ {
+ Version++;
+ if (Version > long.MaxValue - 10)
+ Version = long.MinValue;
+ }
+
+ public static SyntaxDefinition FromSyntaxXml(string xml)
+ {
+ var sl = new SyntaxDefinitionLoader();
+ return sl.LoadXML(xml);
+ }
+
+ public static SyntaxDefinition FromSyntaxFile(string filename)
+ {
+ var sl = new SyntaxDefinitionLoader();
+ return sl.Load(filename);
+ }
+
+ public void MergeByMainBlock(SyntaxDefinition Target)
+ {
+ SpanDefinition[] spanDefinitions = SpanDefinitions;
+ foreach (SpanDefinition bt in spanDefinitions)
+ {
+ bt.childSpanDefinitions.Insert(0, Target.mainSpanDefinition);
+ }
+ }
+
+ public void MergeByChildBlocks(SyntaxDefinition Target)
+ {
+ SpanDefinition[] spanDefinitions = SpanDefinitions;
+ foreach (SpanDefinition bt in spanDefinitions)
+ {
+ for (int i = Target.mainSpanDefinition.childSpanDefinitions.Count - 1; i >= 0; i--)
+ {
+ SpanDefinition child = Target.mainSpanDefinition.childSpanDefinitions[i];
+ bt.childSpanDefinitions.Insert(0, child);
+ }
+ }
+ }
+
+
+ private void FillBlocks(SpanDefinition bt)
+ {
+ if (bt == null)
+ return;
+
+ if (spanDefinitionLookup.ContainsKey(bt))
+ return;
+
+ spanDefinitionLookup.Add(bt, bt);
+
+ foreach (SpanDefinition btc in bt.childSpanDefinitions)
+ {
+ FillBlocks(btc);
+ }
+ foreach (Scope sc in bt.ScopePatterns)
+ {
+ FillBlocks(sc.spawnSpanOnEnd);
+ FillBlocks(sc.spawnSpanOnStart);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionList.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionList.cs
new file mode 100644
index 0000000..47d7e59
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionList.cs
@@ -0,0 +1,69 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Collections.Generic;
+using System.IO;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// SyntaxDefinition list class
+ ///
+ public class SyntaxDefinitionList
+ {
+ private readonly List languages;
+
+
+ ///
+ ///
+ ///
+ public SyntaxDefinitionList()
+ {
+ languages = new List();
+
+ string[] files = Directory.GetFiles(".", "*.syn");
+ foreach (string file in files)
+ {
+ var loader = new SyntaxDefinitionLoader();
+ SyntaxDefinition syntax = loader.Load(file);
+ languages.Add(syntax);
+ }
+ }
+
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public SyntaxDefinition GetLanguageFromFile(string path)
+ {
+ string extension = Path.GetExtension(path);
+ foreach (SyntaxDefinition syntax in languages)
+ {
+ foreach (FileType ft in syntax.FileTypes)
+ {
+ if (extension.ToLowerInvariant() == ft.Extension.ToLowerInvariant())
+ return syntax;
+ }
+ }
+ return null;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public List GetSyntaxDefinitions()
+ {
+ return languages;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionLoader.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionLoader.cs
new file mode 100644
index 0000000..9c732e3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/SyntaxDefinitionLoader.cs
@@ -0,0 +1,614 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Collections;
+using System.Drawing;
+using System.Xml;
+
+namespace Alsing.SourceCode
+{
+ ///
+ ///
+ ///
+ public class SyntaxDefinitionLoader
+ {
+ private Hashtable spanDefinitionLookup = new Hashtable();
+ private Hashtable styleLookup = new Hashtable();
+ private SyntaxDefinition syntaxDefinition = new SyntaxDefinition();
+
+
+ ///
+ /// Load a specific syntax file
+ ///
+ /// File name
+ /// SyntaxDefinition object
+ public SyntaxDefinition Load(string File)
+ {
+ styleLookup = new Hashtable();
+ spanDefinitionLookup = new Hashtable();
+ syntaxDefinition = new SyntaxDefinition();
+
+ var xmlDocument = new XmlDocument();
+ xmlDocument.Load(File);
+ ReadLanguageDefinition(xmlDocument);
+
+ return syntaxDefinition;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public SyntaxDefinition Load(string File, string Separators)
+ {
+ styleLookup = new Hashtable();
+ spanDefinitionLookup = new Hashtable();
+ syntaxDefinition = new SyntaxDefinition {Separators = Separators};
+
+ var xmlDocument = new XmlDocument();
+ xmlDocument.Load(File);
+ ReadLanguageDefinition(xmlDocument);
+
+ if (syntaxDefinition.mainSpanDefinition == null)
+ {
+ throw new Exception("no main block found in syntax");
+ }
+
+ return syntaxDefinition;
+ }
+
+ ///
+ /// Load a specific syntax from an xml string
+ ///
+ ///
+ ///
+ public SyntaxDefinition LoadXML(string XML)
+ {
+ styleLookup = new Hashtable();
+ spanDefinitionLookup = new Hashtable();
+ syntaxDefinition = new SyntaxDefinition();
+
+ var xmlDocument = new XmlDocument();
+ xmlDocument.LoadXml(XML);
+ ReadLanguageDefinition(xmlDocument);
+
+ if (syntaxDefinition.mainSpanDefinition == null)
+ {
+ throw new Exception("no main block found in syntax");
+ }
+
+
+ return syntaxDefinition;
+ }
+
+ private void ReadLanguageDefinition(XmlNode xml)
+ {
+ ParseLanguage(xml["Language"]);
+ }
+
+ private void ParseLanguage(XmlNode node)
+ {
+ //get syntax name and startblock
+ string Name = "";
+ string StartBlock = "";
+
+ foreach (XmlAttribute att in node.Attributes)
+ {
+ if (att.Name.ToLowerInvariant() == "name")
+ Name = att.Value;
+
+ if (att.Name.ToLowerInvariant() == "startblock")
+ StartBlock = att.Value;
+ }
+
+ syntaxDefinition.Name = Name;
+ syntaxDefinition.mainSpanDefinition = GetBlock(StartBlock);
+
+ foreach (XmlNode n in node.ChildNodes)
+ {
+ if (n.NodeType == XmlNodeType.Element)
+ {
+ if (n.Name.ToLowerInvariant() == "filetypes")
+ ParseFileTypes(n);
+ if (n.Name.ToLowerInvariant() == "block")
+ ParseBlock(n);
+ if (n.Name.ToLowerInvariant() == "style")
+ ParseStyle(n);
+ }
+ }
+ }
+
+ private void ParseFileTypes(XmlNode node)
+ {
+ foreach (XmlNode n in node.ChildNodes)
+ {
+ if (n.NodeType == XmlNodeType.Element)
+ {
+ if (n.Name.ToLowerInvariant() == "filetype")
+ {
+ //add filetype
+ string Extension = "";
+ string Name = "";
+ foreach (XmlAttribute a in n.Attributes)
+ {
+ if (a.Name.ToLowerInvariant() == "name")
+ Name = a.Value;
+ if (a.Name.ToLowerInvariant() == "extension")
+ Extension = a.Value;
+ }
+ var ft = new FileType {Extension = Extension, Name = Name};
+ syntaxDefinition.FileTypes.Add(ft);
+ }
+ }
+ }
+ }
+
+ private void ParseBlock(XmlNode node)
+ {
+ string Name = "", Style = "";
+ bool IsMultiline = false;
+ bool TerminateChildren = false;
+ Color BackColor = Color.Transparent;
+ foreach (XmlAttribute att in node.Attributes)
+ {
+ if (att.Name.ToLowerInvariant() == "name")
+ Name = att.Value;
+ if (att.Name.ToLowerInvariant() == "style")
+ Style = att.Value;
+ if (att.Name.ToLowerInvariant() == "ismultiline")
+ IsMultiline = bool.Parse(att.Value);
+ if (att.Name.ToLowerInvariant() == "terminatechildren")
+ TerminateChildren = bool.Parse(att.Value);
+ if (att.Name.ToLowerInvariant() == "backcolor")
+ {
+ BackColor = Color.FromName(att.Value);
+ //Transparent =false;
+ }
+ }
+
+ //create block object here
+ SpanDefinition bl = GetBlock(Name);
+ bl.BackColor = BackColor;
+ bl.Name = Name;
+ bl.MultiLine = IsMultiline;
+ bl.Style = GetStyle(Style);
+ bl.TerminateChildren = TerminateChildren;
+
+
+ foreach (XmlNode n in node.ChildNodes)
+ {
+ if (n.NodeType == XmlNodeType.Element)
+ {
+ if (n.Name.ToLowerInvariant() == "scope")
+ {
+ //bool IsComplex=false;
+ //bool IsSeparator=false;
+ string Start = "";
+ string End = "";
+ string style = "";
+ string text = "";
+ string EndIsSeparator = "";
+ string StartIsComplex = "false";
+ string EndIsComplex = "false";
+ string StartIsKeyword = "false";
+ string EndIsKeyword = "false";
+ string spawnStart = "";
+ string spawnEnd = "";
+ string EscapeChar = "";
+ string CauseIndent = "false";
+
+ bool expanded = true;
+
+ foreach (XmlAttribute att in n.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "start":
+ Start = att.Value;
+ break;
+ case "escapechar":
+ EscapeChar = att.Value;
+ break;
+ case "end":
+ End = att.Value;
+ break;
+ case "style":
+ style = att.Value;
+ break;
+ case "text":
+ text = att.Value;
+ break;
+ case "defaultexpanded":
+ expanded = bool.Parse(att.Value);
+ break;
+ case "endisseparator":
+ EndIsSeparator = att.Value;
+ break;
+ case "startiskeyword":
+ StartIsKeyword = att.Value;
+ break;
+ case "startiscomplex":
+ StartIsComplex = att.Value;
+ break;
+ case "endiscomplex":
+ EndIsComplex = att.Value;
+ break;
+ case "endiskeyword":
+ EndIsKeyword = att.Value;
+ break;
+ case "spawnblockonstart":
+ spawnStart = att.Value;
+ break;
+ case "spawnblockonend":
+ spawnEnd = att.Value;
+ break;
+ case "causeindent":
+ CauseIndent = att.Value;
+ break;
+ }
+ }
+ if (Start != "")
+ {
+ //bl.StartPattern =new Pattern (Pattern,IsComplex,false,IsSeparator);
+ //bl.StartPatterns.Add (new Pattern (Pattern,IsComplex,IsSeparator,true));
+ bool blnStartIsComplex = bool.Parse(StartIsComplex);
+ bool blnEndIsComplex = bool.Parse(EndIsComplex);
+ bool blnCauseIndent = bool.Parse(CauseIndent);
+
+ var scope = new Scope
+ {
+ Style = GetStyle(style),
+ ExpansionText = text,
+ DefaultExpanded = expanded,
+ CauseIndent = blnCauseIndent
+ };
+
+ var StartP = new Pattern(Start, blnStartIsComplex, false, bool.Parse(StartIsKeyword));
+ Pattern endPattern = EscapeChar != ""
+ ? new Pattern(End, false, bool.Parse(EndIsKeyword), EscapeChar)
+ : new Pattern(End, blnEndIsComplex, false, bool.Parse(EndIsKeyword));
+
+ if (EndIsSeparator != "")
+ endPattern.IsSeparator = bool.Parse(EndIsSeparator);
+
+ scope.Start = StartP;
+ scope.EndPatterns.Add(endPattern);
+ bl.ScopePatterns.Add(scope);
+ if (spawnStart != "")
+ {
+ scope.spawnSpanOnStart = GetBlock(spawnStart);
+ }
+ if (spawnEnd != "")
+ {
+ scope.spawnSpanOnEnd = GetBlock(spawnEnd);
+ }
+ }
+ }
+ if (n.Name.ToLowerInvariant() == "bracket")
+ {
+ //bool IsComplex=false;
+ //bool IsSeparator=false;
+ string Start = "";
+ string End = "";
+ string style = "";
+
+ string StartIsComplex = "false";
+ string EndIsComplex = "false";
+
+ string StartIsKeyword = "false";
+ string EndIsKeyword = "false";
+ string IsMultiLineB = "true";
+
+ foreach (XmlAttribute att in n.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "start":
+ Start = att.Value;
+ break;
+ case "end":
+ End = att.Value;
+ break;
+ case "style":
+ style = att.Value;
+ break;
+ case "endisseparator":
+ if (att.Name.ToLowerInvariant() == "startisseparator")
+ if (att.Name.ToLowerInvariant() == "startiskeyword")
+ StartIsKeyword = att.Value;
+ break;
+ case "startiscomplex":
+ StartIsComplex = att.Value;
+ break;
+ case "endiscomplex":
+ EndIsComplex = att.Value;
+ break;
+ case "endiskeyword":
+ EndIsKeyword = att.Value;
+ break;
+ case "ismultiline":
+ IsMultiLineB = att.Value;
+ break;
+ }
+ }
+ if (Start != "")
+ {
+ var pl = new PatternList {Style = GetStyle(style)};
+
+ bool blnStartIsComplex = bool.Parse(StartIsComplex);
+ bool blnEndIsComplex = bool.Parse(EndIsComplex);
+ bool blnIsMultiLineB = bool.Parse(IsMultiLineB);
+
+ var StartP = new Pattern(Start, blnStartIsComplex, false, bool.Parse(StartIsKeyword));
+ var EndP = new Pattern(End, blnEndIsComplex, false, bool.Parse(EndIsKeyword));
+
+ StartP.MatchingBracket = EndP;
+ EndP.MatchingBracket = StartP;
+ StartP.BracketType = BracketType.StartBracket;
+ EndP.BracketType = BracketType.EndBracket;
+ StartP.IsMultiLineBracket = EndP.IsMultiLineBracket = blnIsMultiLineB;
+
+ pl.Add(StartP);
+ pl.Add(EndP);
+ bl.OperatorsList.Add(pl);
+ }
+ }
+ }
+
+ if (n.Name.ToLowerInvariant() == "keywords")
+ foreach (XmlNode cn in n.ChildNodes)
+ {
+ if (cn.Name.ToLowerInvariant() == "patterngroup")
+ {
+ var pl = new PatternList();
+ bl.KeywordsList.Add(pl);
+ foreach (XmlAttribute att in cn.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "style":
+ pl.Style = GetStyle(att.Value);
+ break;
+ case "name":
+ pl.Name = att.Value;
+ break;
+ case "normalizecase":
+ pl.NormalizeCase = bool.Parse(att.Value);
+ break;
+ case "casesensitive":
+ pl.CaseSensitive = bool.Parse(att.Value);
+ break;
+ }
+ }
+ foreach (XmlNode pt in cn.ChildNodes)
+ {
+ if (pt.Name.ToLowerInvariant() == "pattern")
+ {
+ bool IsComplex = false;
+ bool IsSeparator = false;
+ string Category = null;
+ string Pattern = "";
+ if (pt.Attributes != null)
+ {
+ foreach (XmlAttribute att in pt.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "text":
+ Pattern = att.Value;
+ break;
+ case "iscomplex":
+ IsComplex = bool.Parse(att.Value);
+ break;
+ case "isseparator":
+ IsSeparator = bool.Parse(att.Value);
+ break;
+ case "category":
+ Category = (att.Value);
+ break;
+ }
+ }
+ }
+ if (Pattern != "")
+ {
+ var pat = new Pattern(Pattern, IsComplex, IsSeparator, true)
+ {Category = Category};
+ pl.Add(pat);
+ }
+ }
+ else if (pt.Name.ToLowerInvariant() == "patterns")
+ {
+ string Patterns = pt.ChildNodes[0].Value;
+ Patterns = Patterns.Replace("\t", " ");
+ while (Patterns.IndexOf(" ") >= 0)
+ Patterns = Patterns.Replace(" ", " ");
+
+
+ foreach (string Pattern in Patterns.Split())
+ {
+ if (Pattern != "")
+ pl.Add(new Pattern(Pattern, false, false, true));
+ }
+ }
+ }
+ }
+ }
+ //if (n.Name == "Operators")
+ // ParseStyle(n);
+ if (n.Name.ToLowerInvariant() == "operators")
+ foreach (XmlNode cn in n.ChildNodes)
+ {
+ if (cn.Name.ToLowerInvariant() == "patterngroup")
+ {
+ var pl = new PatternList();
+ bl.OperatorsList.Add(pl);
+ foreach (XmlAttribute att in cn.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "style":
+ pl.Style = GetStyle(att.Value);
+ break;
+ case "name":
+ pl.Name = att.Value;
+ break;
+ case "normalizecase":
+ pl.NormalizeCase = bool.Parse(att.Value);
+ break;
+ case "casesensitive":
+ pl.CaseSensitive = bool.Parse(att.Value);
+ break;
+ }
+ }
+
+ foreach (XmlNode pt in cn.ChildNodes)
+ {
+ if (pt.Name.ToLowerInvariant() == "pattern")
+ {
+ bool IsComplex = false;
+ bool IsSeparator = false;
+ string Pattern = "";
+ string Category = null;
+ if (pt.Attributes != null)
+ {
+ foreach (XmlAttribute att in pt.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "text":
+ Pattern = att.Value;
+ break;
+ case "iscomplex":
+ IsComplex = bool.Parse(att.Value);
+ break;
+ case "isseparator":
+ IsSeparator = bool.Parse(att.Value);
+ break;
+ case "category":
+ Category = (att.Value);
+ break;
+ }
+ }
+ }
+ if (Pattern != "")
+ {
+ var pat = new Pattern(Pattern, IsComplex, IsSeparator, false)
+ {Category = Category};
+ pl.Add(pat);
+ }
+ }
+ else if (pt.Name.ToLowerInvariant() == "patterns")
+ {
+ string Patterns = pt.ChildNodes[0].Value;
+ Patterns = Patterns.Replace("\t", " ");
+ while (Patterns.IndexOf(" ") >= 0)
+ Patterns = Patterns.Replace(" ", " ");
+
+ foreach (string Pattern in Patterns.Split())
+ {
+ if (Pattern != "")
+ pl.Add(new Pattern(Pattern, false, false, false));
+ }
+ }
+ }
+ }
+ }
+
+ if (n.Name.ToLowerInvariant() == "childblocks")
+ {
+ foreach (XmlNode cn in n.ChildNodes)
+ {
+ if (cn.Name.ToLowerInvariant() == "child")
+ {
+ foreach (XmlAttribute att in cn.Attributes)
+ if (att.Name.ToLowerInvariant() == "name")
+ bl.childSpanDefinitions.Add(GetBlock(att.Value));
+ }
+ }
+ }
+ }
+ }
+
+
+ //done
+ private TextStyle GetStyle(string Name)
+ {
+ if (styleLookup[Name] == null)
+ {
+ var s = new TextStyle();
+ styleLookup.Add(Name, s);
+ }
+
+ return (TextStyle) styleLookup[Name];
+ }
+
+ //done
+ private SpanDefinition GetBlock(string Name)
+ {
+ if (spanDefinitionLookup[Name] == null)
+ {
+ var b = new SpanDefinition(syntaxDefinition);
+ spanDefinitionLookup.Add(Name, b);
+ }
+
+ return (SpanDefinition) spanDefinitionLookup[Name];
+ }
+
+ //done
+ private void ParseStyle(XmlNode node)
+ {
+ string Name = "";
+ string ForeColor = "", BackColor = "";
+ bool Bold = false, Italic = false, Underline = false;
+
+
+ foreach (XmlAttribute att in node.Attributes)
+ {
+ switch (att.Name.ToLowerInvariant())
+ {
+ case "name":
+ Name = att.Value;
+ break;
+ case "forecolor":
+ ForeColor = att.Value;
+ break;
+ case "backcolor":
+ BackColor = att.Value;
+ break;
+ case "bold":
+ Bold = bool.Parse(att.Value);
+ break;
+ case "italic":
+ Italic = bool.Parse(att.Value);
+ break;
+ case "underline":
+ Underline = bool.Parse(att.Value);
+ break;
+ }
+ }
+
+ TextStyle st = GetStyle(Name);
+
+ if (BackColor != "")
+ {
+ st.BackColor = Color.FromName(BackColor);
+ }
+
+ st.ForeColor = Color.FromName(ForeColor);
+ st.Bold = Bold;
+ st.Italic = Italic;
+ st.Underline = Underline;
+ st.Name = Name;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyle.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyle.cs
new file mode 100644
index 0000000..aef3015
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyle.cs
@@ -0,0 +1,187 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Design;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// TextStyles are used to describe the apperance of text.
+ ///
+ [Editor(typeof (TextStyleUIEditor), typeof (UITypeEditor))]
+ public class TextStyle : ICloneable
+ {
+ ///
+ /// Name of the style
+ ///
+ public string Name;
+
+ #region PUBLIC PROPERTY BOLD
+
+ private bool _Bold;
+
+ [Category("Font")]
+ [Description("Gets or Sets if the style uses a BOLD font")]
+ public bool Bold
+ {
+ get { return _Bold; }
+ set
+ {
+ _Bold = value;
+ OnChange();
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY ITALIC
+
+ private bool _Italic;
+
+ [Category("Font")]
+ [Description("Gets or Sets if the style uses an ITALIC font")]
+ public bool Italic
+ {
+ get { return _Italic; }
+ set
+ {
+ _Italic = value;
+ OnChange();
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY UNDERLINE
+
+ private bool _Underline;
+
+ [Category("Font")]
+ [Description("Gets or Sets if the style uses an UNDERLINED font")]
+ public bool Underline
+ {
+ get { return _Underline; }
+ set
+ {
+ _Underline = value;
+ OnChange();
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY FORECOLOR
+
+ private Color _ForeColor = Color.Black;
+
+ [Category("Color")]
+ [Description("Gets or Sets the fore color of the style")]
+ public Color ForeColor
+ {
+ get { return _ForeColor; }
+ set
+ {
+ _ForeColor = value;
+ OnChange();
+ }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY BACKCOLOR
+
+ private Color _BackColor = Color.Transparent;
+
+ [Category("Color")]
+ [Description("Gets or Sets the background color of the style")]
+ public Color BackColor
+ {
+ get { return _BackColor; }
+ set
+ {
+ _BackColor = value;
+ OnChange();
+ }
+ }
+
+ #endregion
+
+ ///
+ /// Gets or Sets if the style uses a Bold font
+ ///
+ ///
+ /// Gets or Sets if the style uses an Italic font
+ ///
+ ///
+ /// Gets or Sets if the style uses an Underlined font
+ ///
+ ///
+ /// Gets or Sets the ForeColor of the style
+ ///
+ ///
+ /// Gets or Sets the BackColor of the style
+ ///
+ ///
+ /// Default constructor
+ ///
+ public TextStyle()
+ {
+ ForeColor = Color.Black;
+ BackColor = Color.Transparent;
+ }
+
+ ///
+ /// Returns true if no color have been assigned to the backcolor
+ ///
+ [Browsable(false)]
+ public bool Transparent
+ {
+ get { return (BackColor.A == 0); }
+ }
+
+ public event EventHandler Change = null;
+
+ protected virtual void OnChange()
+ {
+ if (Change != null)
+ Change(this, EventArgs.Empty);
+ }
+
+ public override string ToString()
+ {
+ if (Name == null)
+ return "TextStyle";
+
+ return Name;
+ }
+
+ #region Implementation of ICloneable
+
+ public object Clone()
+ {
+ var ts = new TextStyle
+ {
+//TODO: verify if this actually works
+ BackColor = BackColor,
+ Bold = Bold,
+ ForeColor = ForeColor,
+ Italic = Italic,
+ Underline = Underline,
+ Name = Name
+ };
+ return ts;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.cs
new file mode 100644
index 0000000..38ba174
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.cs
@@ -0,0 +1,261 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// Summary description for TextStyleDesignerDialog.
+ ///
+ public class TextStyleDesignerDialog : Form
+ {
+ private readonly TextStyle _Style;
+ private readonly TextStyle _TmpStyle;
+ private Button btnCancel;
+ private Button btnOK;
+
+ ///
+ /// Required designer variable.
+ ///
+ private Container components;
+
+ private Label lblCaption;
+ private Label lblPreview;
+ private Panel panel1;
+ private Panel panel2;
+ private Panel panel3;
+ private PropertyGrid pgStyles;
+
+ public TextStyleDesignerDialog(TextStyle Style)
+ {
+ _Style = Style;
+ _TmpStyle = (TextStyle) Style.Clone();
+
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+
+ pgStyles.SelectedObject = _TmpStyle;
+ lblCaption.Text = _Style.ToString();
+ PreviewStyle();
+
+ //
+ // TODO: Add any constructor code after InitializeComponent call
+ //
+ }
+
+ public static event EventHandler Change;
+
+ protected static void OnChange()
+ {
+ if (Change != null)
+ Change(null, EventArgs.Empty);
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (components != null)
+ {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ private void pgStyles_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
+ {
+ PreviewStyle();
+ }
+
+ private void PreviewStyle()
+ {
+ TextStyle s = _TmpStyle;
+
+ lblPreview.ForeColor = s.ForeColor;
+ if (s.BackColor != Color.Transparent)
+ lblPreview.BackColor = s.BackColor;
+ else
+ lblPreview.BackColor = Color.White;
+
+
+ FontStyle fs = FontStyle.Regular;
+ if (s.Bold)
+ fs |= FontStyle.Bold;
+ if (s.Italic)
+ fs |= FontStyle.Italic;
+ if (s.Underline)
+ fs |= FontStyle.Underline;
+
+ lblPreview.Font = new Font("Courier New", 11f, fs);
+ }
+
+ private void btnOK_Click(object sender, EventArgs e)
+ {
+ _Style.BackColor = _TmpStyle.BackColor;
+ _Style.ForeColor = _TmpStyle.ForeColor;
+ _Style.Bold = _TmpStyle.Bold;
+ _Style.Italic = _TmpStyle.Italic;
+ _Style.Underline = _TmpStyle.Underline;
+ OnChange();
+ DialogResult = DialogResult.OK;
+ }
+
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ }
+
+ private void TextStyleDesignerDialog_Load(object sender, EventArgs e) {}
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.btnOK = new System.Windows.Forms.Button();
+ this.pgStyles = new System.Windows.Forms.PropertyGrid();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.panel3 = new System.Windows.Forms.Panel();
+ this.lblCaption = new System.Windows.Forms.Label();
+ this.lblPreview = new System.Windows.Forms.Label();
+ this.panel2.SuspendLayout();
+ this.panel3.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // panel2
+ //
+ this.panel2.Controls.AddRange(new System.Windows.Forms.Control[]
+ {this.lblPreview, this.btnCancel, this.btnOK});
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel2.Location = new System.Drawing.Point(4, 255);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(354, 80);
+ this.panel2.TabIndex = 8;
+ //
+ // btnCancel
+ //
+ this.btnCancel.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right);
+ this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel.Location = new System.Drawing.Point(279, 48);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.TabIndex = 4;
+ this.btnCancel.Text = "Cancel";
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // btnOK
+ //
+ this.btnOK.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right);
+ this.btnOK.Location = new System.Drawing.Point(200, 48);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.TabIndex = 3;
+ this.btnOK.Text = "OK";
+ this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+ //
+ // pgStyles
+ //
+ this.pgStyles.CommandsVisibleIfAvailable = true;
+ this.pgStyles.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pgStyles.LargeButtons = false;
+ this.pgStyles.LineColor = System.Drawing.SystemColors.ScrollBar;
+ this.pgStyles.Location = new System.Drawing.Point(4, 26);
+ this.pgStyles.Name = "pgStyles";
+ this.pgStyles.Size = new System.Drawing.Size(354, 221);
+ this.pgStyles.TabIndex = 6;
+ this.pgStyles.Text = "propertyGrid1";
+ this.pgStyles.ToolbarVisible = false;
+ this.pgStyles.ViewBackColor = System.Drawing.SystemColors.Window;
+ this.pgStyles.ViewForeColor = System.Drawing.SystemColors.WindowText;
+ this.pgStyles.PropertyValueChanged +=
+ new System.Windows.Forms.PropertyValueChangedEventHandler(this.pgStyles_PropertyValueChanged);
+ //
+ // panel1
+ //
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel1.Location = new System.Drawing.Point(4, 247);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(354, 8);
+ this.panel1.TabIndex = 9;
+ //
+ // panel3
+ //
+ this.panel3.BackColor = System.Drawing.SystemColors.ControlDark;
+ this.panel3.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCaption});
+ this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel3.Location = new System.Drawing.Point(4, 2);
+ this.panel3.Name = "panel3";
+ this.panel3.Size = new System.Drawing.Size(354, 24);
+ this.panel3.TabIndex = 10;
+ //
+ // lblCaption
+ //
+ this.lblCaption.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lblCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Bold,
+ System.Drawing.GraphicsUnit.Point, ((System.Byte) (0)));
+ this.lblCaption.ForeColor = System.Drawing.SystemColors.Window;
+ this.lblCaption.Name = "lblCaption";
+ this.lblCaption.Size = new System.Drawing.Size(354, 24);
+ this.lblCaption.TabIndex = 0;
+ this.lblCaption.Text = "-";
+ this.lblCaption.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // lblPreview
+ //
+ this.lblPreview.BackColor = System.Drawing.SystemColors.Window;
+ this.lblPreview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lblPreview.Dock = System.Windows.Forms.DockStyle.Top;
+ this.lblPreview.Font = new System.Drawing.Font("Courier New", 10F, System.Drawing.FontStyle.Regular,
+ System.Drawing.GraphicsUnit.Point, ((System.Byte) (0)));
+ this.lblPreview.Name = "lblPreview";
+ this.lblPreview.Size = new System.Drawing.Size(354, 40);
+ this.lblPreview.TabIndex = 8;
+ this.lblPreview.Text = "The quick brown fox jumped over the lazy dog. ";
+ this.lblPreview.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // TextStyleDesignerDialog
+ //
+ this.AcceptButton = this.btnOK;
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.CancelButton = this.btnCancel;
+ this.ClientSize = new System.Drawing.Size(362, 335);
+ this.ControlBox = false;
+ this.Controls.AddRange(new System.Windows.Forms.Control[]
+ {this.pgStyles, this.panel3, this.panel1, this.panel2});
+ this.DockPadding.Left = 4;
+ this.DockPadding.Right = 4;
+ this.DockPadding.Top = 2;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Name = "TextStyleDesignerDialog";
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Style Designer";
+ this.Load += new System.EventHandler(this.TextStyleDesignerDialog_Load);
+ this.panel2.ResumeLayout(false);
+ this.panel3.ResumeLayout(false);
+ this.ResumeLayout(false);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.resx
new file mode 100644
index 0000000..10cc786
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleDesignerDialog.resx
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ TextStyleDesignerDialog
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleUIEditor.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleUIEditor.cs
new file mode 100644
index 0000000..1d59ac9
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDefinition/TextStyle/TextStyleUIEditor.cs
@@ -0,0 +1,94 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Design;
+using System.Windows.Forms;
+using System.Windows.Forms.Design;
+
+namespace Alsing.SourceCode
+{
+ public class TextStyleUIEditor : UITypeEditor
+ {
+ private IWindowsFormsEditorService edSvc;
+
+ public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
+ {
+ if (context != null && context.Instance != null && provider != null)
+ {
+ edSvc = (IWindowsFormsEditorService) provider.GetService(typeof (IWindowsFormsEditorService));
+
+
+ if (edSvc != null)
+ {
+ var style = (TextStyle) value;
+ using (var tsd = new TextStyleDesignerDialog(style))
+ {
+ context.OnComponentChanging();
+ if (edSvc.ShowDialog(tsd) == DialogResult.OK)
+ {
+ ValueChanged(this, EventArgs.Empty);
+ context.OnComponentChanged();
+ return style;
+ }
+ }
+ }
+ }
+
+ return value;
+ }
+
+
+ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
+ {
+ return UITypeEditorEditStyle.Modal;
+ }
+
+
+ private void ValueChanged(object sender, EventArgs e)
+ {
+ if (edSvc != null) {}
+ }
+
+ public override void PaintValue(PaintValueEventArgs e)
+ {
+ var ts = (TextStyle) e.Value;
+ using (var b = new SolidBrush(ts.BackColor))
+ {
+ e.Graphics.FillRectangle(b, e.Bounds);
+ }
+
+ FontStyle fs = FontStyle.Regular;
+ if (ts.Bold)
+ fs |= FontStyle.Bold;
+ if (ts.Italic)
+ fs |= FontStyle.Italic;
+ if (ts.Underline)
+ fs |= FontStyle.Underline;
+
+ var f = new Font("arial", 8f, fs);
+
+
+ using (var b = new SolidBrush(ts.ForeColor))
+ {
+ e.Graphics.DrawString("abc", f, b, e.Bounds);
+ }
+
+ f.Dispose();
+ }
+
+ public override bool GetPaintValueSupported(ITypeDescriptorContext context)
+ {
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.cs
new file mode 100644
index 0000000..3569e78
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.cs
@@ -0,0 +1,1745 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.IO;
+using System.Reflection;
+using System.Text;
+using Alsing.SourceCode.SyntaxDocumentParsers;
+
+namespace Alsing.SourceCode
+{
+ ///
+ /// The SyntaxDocument is a component that is responsible for Parsing , Folding , Undo / Redo actions and various text actions.
+ ///
+ public class SyntaxDocument : Component, IEnumerable
+ {
+ #region General declarations
+
+ private readonly RowList rows = new RowList();
+
+ ///
+ /// Buffer containing undo actions
+ ///
+ public readonly UndoBuffer UndoBuffer = new UndoBuffer();
+
+ private UndoBlockCollection captureBlock;
+ private bool captureMode;
+ private bool folding = true;
+
+ ///
+ /// For public use only
+ ///
+ private bool isParsed = true;
+
+ ///
+ ///
+ ///
+ public RowList KeywordQueue = new RowList();
+
+ private bool modified;
+
+ private string mSyntaxFile = "";
+
+
+ ///
+ /// Gets or Sets if folding needs to be recalculated
+ ///
+ public bool NeedResetRows;
+
+ ///
+ /// List of rows that should be parsed
+ ///
+ public RowList ParseQueue = new RowList();
+
+
+ ///
+ /// The active parser of the document
+ ///
+ public IParser Parser = new DefaultParser();
+
+ ///
+ /// Tag property , lets the user store custom data in the row.
+ ///
+ public object Tag;
+
+ ///
+ /// List of rows that is not hidden by folding
+ ///
+ public RowList VisibleRows = new RowList();
+
+ #region PUBLIC PROPERTY UNDOSTEP
+
+ private int _UndoStep;
+
+ public int UndoStep
+ {
+ get
+ {
+ if (_UndoStep > UndoBuffer.Count)
+ _UndoStep = UndoBuffer.Count;
+
+ return _UndoStep;
+ }
+ set { _UndoStep = value; }
+ }
+
+ #endregion
+
+ ///
+ /// Event that is raised when there is no more rows to parse
+ ///
+ public event EventHandler ParsingCompleted;
+
+ public event EventHandler UndoBufferChanged = null;
+
+ ///
+ /// Raised when the parser is active
+ ///
+ public event EventHandler Parsing;
+
+ ///
+ /// Raised when the document content is changed
+ ///
+ public event EventHandler Change;
+
+ public event RowEventHandler BreakPointAdded;
+ public event RowEventHandler BreakPointRemoved;
+
+ public event RowEventHandler BookmarkAdded;
+ public event RowEventHandler BookmarkRemoved;
+
+ protected virtual void OnBreakPointAdded(Row r)
+ {
+ if (BreakPointAdded != null)
+ BreakPointAdded(this, new RowEventArgs(r));
+ }
+
+ protected virtual void OnBreakPointRemoved(Row r)
+ {
+ if (BreakPointRemoved != null)
+ BreakPointRemoved(this, new RowEventArgs(r));
+ }
+
+ protected virtual void OnBookmarkAdded(Row r)
+ {
+ if (BookmarkAdded != null)
+ BookmarkAdded(this, new RowEventArgs(r));
+ }
+
+ protected virtual void OnBookmarkRemoved(Row r)
+ {
+ if (BookmarkRemoved != null)
+ BookmarkRemoved(this, new RowEventArgs(r));
+ }
+
+ protected virtual void OnUndoBufferChanged()
+ {
+ if (UndoBufferChanged != null)
+ UndoBufferChanged(this, EventArgs.Empty);
+ }
+
+
+ public virtual void InvokeBreakPointAdded(Row r)
+ {
+ OnBreakPointAdded(r);
+ }
+
+ public virtual void InvokeBreakPointRemoved(Row r)
+ {
+ OnBreakPointRemoved(r);
+ }
+
+ public virtual void InvokeBookmarkAdded(Row r)
+ {
+ OnBookmarkAdded(r);
+ }
+
+ public virtual void InvokeBookmarkRemoved(Row r)
+ {
+ OnBookmarkRemoved(r);
+ }
+
+
+ //public event System.EventHandler CreateParser;
+
+ ///
+ /// Raised when the modified flag has changed
+ ///
+ public event EventHandler ModifiedChanged;
+
+ //----------------------------------------------
+
+ ///
+ /// Raised when a row have been parsed
+ ///
+ public event ParserEventHandler RowParsed;
+
+ // public event ParserEventHandler RowAdded;
+ ///
+ /// Raised when a row have been deleted
+ ///
+ public event ParserEventHandler RowDeleted;
+
+ #endregion
+
+ #region PUBLIC PROPERTY MAXUNDOBUFFERSIZE
+
+ ///
+ /// Gets or Sets the Maximum number of entries in the undobuffer
+ ///
+ public int MaxUndoBufferSize
+ {
+ get { return UndoBuffer.MaxSize; }
+ set { UndoBuffer.MaxSize = value; }
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY VERSION
+
+ private long _Version = long.MinValue;
+
+ [Browsable(false)]
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+ public long Version
+ {
+ get { return _Version; }
+ set { _Version = value; }
+ }
+
+ #endregion
+
+ ///
+ ///
+ ///
+ ///
+ public SyntaxDocument(IContainer container) : this()
+ {
+ container.Add(this);
+ InitializeComponent();
+ }
+
+ ///
+ ///
+ ///
+ public SyntaxDocument()
+ {
+ Parser.Document = this;
+ Text = "";
+ ResetVisibleRows();
+ Init();
+ }
+
+ ///
+ /// Get or Set the Modified flag
+ ///
+ public bool Modified
+ {
+ get { return modified; }
+ set
+ {
+ modified = value;
+ OnModifiedChanged();
+ }
+ }
+
+ ///
+ /// Get or Set the Name of the Syntaxfile to use
+ ///
+ [DefaultValue("")]
+ public string SyntaxFile
+ {
+ get { return mSyntaxFile; }
+ set
+ {
+ mSyntaxFile = value;
+ // this.Parser=new Parser_Default();
+ Parser.Init(value);
+ Text = Text;
+ }
+ }
+
+ ///
+ /// Gets or Sets if the document should use folding or not
+ ///
+ [DefaultValue(true)]
+ public bool Folding
+ {
+ get { return folding; }
+ set
+ {
+ folding = value;
+ if (!value)
+ {
+ foreach (Row r in this)
+ {
+ r.Expanded = true;
+ }
+ }
+ ResetVisibleRows();
+
+ OnChange();
+ }
+ }
+
+ ///
+ /// Gets if the document is fully parsed
+ ///
+ [Browsable(false)]
+ public bool IsParsed
+ {
+ get { return isParsed; }
+ }
+
+ ///
+ /// Returns the row at the specified index
+ ///
+ public Row this[int index]
+ {
+ get
+ {
+ if (index < 0 || index >= rows.Count)
+ {
+ // System.Diagnostics.Debugger.Break ();
+ return null;
+ }
+ return rows[index];
+ }
+
+ set { rows[index] = value; }
+ }
+
+ ///
+ /// Gets the row count of the document
+ ///
+ [Browsable(false)]
+ public int Count
+ {
+ get { return rows.Count; }
+ }
+
+ ///
+ /// Gets or Sets the text of the entire document
+ ///
+ [Browsable(false)]
+ // [RefreshProperties (RefreshProperties.All)]
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+ public string Text
+ {
+ get
+ {
+ int i = 0;
+ var sb = new StringBuilder();
+
+ ParseAll(true);
+ foreach (Row tr in rows)
+ {
+ if (i > 0)
+ sb.Append(Environment.NewLine);
+ tr.MatchCase();
+ sb.Append(tr.Text);
+ i++;
+ }
+ return sb.ToString();
+ }
+
+ set
+ {
+ clear();
+ Add("");
+ InsertText(value, 0, 0);
+ UndoBuffer.Clear();
+ UndoStep = 0;
+ Modified = false;
+ isParsed = false;
+
+ foreach (Row r in this)
+ {
+ r.RevisionMark = RowRevisionMark.Unchanged;
+ }
+
+ //OnChange();
+ InvokeChange();
+ }
+ }
+
+ ///
+ /// Gets and string array containing the text of all rows.
+ ///
+ public string[] Lines
+ {
+ get { return Text.Split("\n".ToCharArray()); }
+ set
+ {
+ string s = "";
+ foreach (string sl in value)
+ s += sl + "\n";
+ Text = s.Substring(0, s.Length - 1);
+ }
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ new System.ComponentModel.Container();
+ }
+
+ #endregion
+
+ #region IEnumerable Members
+
+ ///
+ ///
+ ///
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return rows.GetEnumerator();
+ }
+
+ #endregion
+
+ ///
+ /// For internal use only
+ ///
+ public void ChangeVersion()
+ {
+ Version ++;
+ if (Version > long.MaxValue - 10)
+ Version = long.MinValue;
+ }
+
+ public void SaveRevisionMark()
+ {
+ foreach (Row r in this)
+ {
+ if (r.RevisionMark == RowRevisionMark.BeforeSave)
+ {
+ r.RevisionMark = RowRevisionMark.AfterSave;
+ }
+ }
+
+ Modified = false;
+ ResetVisibleRows();
+ }
+
+ ///
+ /// Starts an Undo Capture.
+ /// This method can be called if you with to collect multiple text operations into one undo action
+ ///
+ public void StartUndoCapture()
+ {
+ captureMode = true;
+ captureBlock = new UndoBlockCollection();
+ }
+
+ ///
+ /// Ends an Undo capture and pushes the collected actions onto the undostack
+ ///
+ ///
+ ///
+ public UndoBlockCollection EndUndoCapture()
+ {
+ captureMode = false;
+ AddToUndoList(captureBlock);
+ return captureBlock;
+ }
+
+ ///
+ /// ReParses the document
+ ///
+ public void ReParse()
+ {
+ Text = Text;
+ }
+
+ ///
+ /// Removes all bookmarks in the document
+ ///
+ public void ClearBookmarks()
+ {
+ foreach (Row r in this)
+ {
+ r.Bookmarked = false;
+ }
+ InvokeChange();
+ }
+
+ ///
+ /// Removes all breakpoints in the document.
+ ///
+ public void ClearBreakpoints()
+ {
+ foreach (Row r in this)
+ {
+ r.Breakpoint = false;
+ }
+ InvokeChange();
+ }
+
+
+ ///
+ /// Call this method to ensure that a specific row is fully parsed
+ ///
+ ///
+ public void EnsureParsed(Row Row)
+ {
+ ParseAll();
+ Parser.ParseRow(Row.Index, true);
+ }
+
+ private void Init()
+ {
+ var l = new SyntaxDefinition();
+ l.mainSpanDefinition = new SpanDefinition(l) {MultiLine = true};
+ Parser.Init(l);
+ }
+
+ ///
+ /// Call this method to make the SyntaxDocument raise the Changed event
+ ///
+ public void InvokeChange()
+ {
+ OnChange();
+ }
+
+ ///
+ /// Performs a span parse on all rows. No Keyword colorizing
+ ///
+ public void ParseAll()
+ {
+ while (ParseQueue.Count > 0)
+ ParseSome();
+
+ ParseQueue.Clear();
+ }
+
+ ///
+ /// Parses all rows , either a span parse or a full parse with keyword colorizing
+ ///
+ public void ParseAll(bool ParseKeywords)
+ {
+ ParseAll();
+ if (ParseKeywords)
+ {
+ for (int i = 0; i < Count; i++)
+ {
+ if (this[i].RowState != RowState.AllParsed)
+ Parser.ParseRow(i, true);
+ }
+ ParseQueue.Clear();
+ KeywordQueue.Clear();
+ }
+ }
+
+ ///
+ /// Folds all foldable rows
+ ///
+ public void FoldAll()
+ {
+ ParseAll(false);
+ foreach (Row r in this)
+ {
+ r.Expanded = false;
+ }
+ ResetVisibleRows();
+ OnChange();
+ }
+
+ ///
+ /// UnFolds all foldable rows
+ ///
+ public void UnFoldAll()
+ {
+ ParseAll(false);
+ foreach (Row r in this)
+ {
+ r.Expanded = true;
+ }
+ ResetVisibleRows();
+ OnChange();
+ }
+
+
+ ///
+ /// Parses a chunk of 1000 rows , this is not thread safe
+ ///
+ public void ParseSome()
+ {
+ ParseSome(1000);
+ }
+
+ ///
+ /// Parse a chunk of rows, this is not thread safe
+ ///
+ /// The number of rows to parse
+ public void ParseSome(int RowCount)
+ {
+ if (ParseQueue.Count > 0)
+ {
+ isParsed = false;
+ int i = 0;
+ while (i < RowCount && ParseQueue.Count > 0)
+ {
+ Row row = ParseQueue[0];
+ i += ParseRows(row);
+ }
+
+ if (NeedResetRows)
+ ResetVisibleRows();
+
+ if (Parsing != null)
+ Parsing(this, new EventArgs());
+ }
+ else
+ {
+ if (!isParsed && !Modified)
+ {
+ isParsed = true;
+
+ foreach (Row r in this)
+ {
+ if (r.expansion_StartSpan != null && r.Expansion_EndRow != null)
+ {
+ if (r.expansion_StartSpan.Scope.DefaultExpanded == false)
+ r.Expanded = false;
+ }
+ }
+ ResetVisibleRows();
+ if (ParsingCompleted != null)
+ ParsingCompleted(this, new EventArgs());
+ }
+ }
+
+ if (ParseQueue.Count == 0 && KeywordQueue.Count > 0)
+ {
+// Console.WriteLine (this.KeywordQueue.Count.ToString ());
+ int i = 0;
+ while (i < RowCount/20 && KeywordQueue.Count > 0)
+ {
+ Row row = KeywordQueue[0];
+ i += ParseRows(row, true);
+ }
+ }
+ }
+
+
+ ///
+ /// Add a new row with the specified text to the bottom of the document
+ ///
+ /// Text to add
+ /// The row that was added
+ public Row Add(string text)
+ {
+ return Add(text, true);
+ }
+
+ ///
+ /// Add a new row with the specified text to the bottom of the document
+ ///
+ /// Text to add
+ /// true if and undo action should be added to the undo stack
+ /// The row that was added
+ public Row Add(string text, bool StoreUndo)
+ {
+ var xtl = new Row();
+ rows.Add(xtl);
+ xtl.Document = this;
+ xtl.Text = text;
+ return xtl;
+ }
+
+ ///
+ /// Insert a text at the specified row index
+ ///
+ /// Text to insert
+ /// Row index where the text should be inserted
+ /// The row that was inserted
+ public Row Insert(string text, int index)
+ {
+ return Insert(text, index, true);
+ }
+
+ ///
+ /// Insert a text at the specified row index
+ ///
+ /// Text to insert
+ /// Row index where the text should be inserted
+ /// true if and undo action should be added to the undo stack
+ /// The row that was inserted
+ public Row Insert(string text, int index, bool storeUndo)
+ {
+ var xtl = new Row {Document = this};
+ rows.Insert(index, xtl);
+ xtl.Text = text;
+ if (storeUndo)
+ {
+ var undo = new UndoBlock {Text = text,};
+
+ undo.Position.Y = IndexOf(xtl);
+ AddToUndoList(undo);
+ }
+
+ //this.ResetVisibleRows ();
+ return xtl;
+ }
+
+
+ ///
+ /// Remove a row at specified row index
+ ///
+ /// index of the row that should be removed
+ public void Remove(int index)
+ {
+ Remove(index, true);
+ }
+
+ public void Remove(int index, bool StoreUndo)
+ {
+ Remove(index, StoreUndo, true);
+ }
+
+ ///
+ /// Remove a row at specified row index
+ ///
+ /// index of the row that should be removed
+ /// true if and undo action should be added to the undo stack
+ ///
+ public void Remove(int index, bool storeUndo, bool raiseChanged)
+ {
+ Row r = this[index];
+
+ if (storeUndo)
+ {
+ var ra = new TextRange();
+
+ if (index != Count - 1)
+ {
+ ra.FirstColumn = 0;
+ ra.FirstRow = index;
+ ra.LastRow = index + 1;
+ ra.LastColumn = 0;
+ }
+ else
+ {
+ ra.FirstColumn = r.PrevRow.Text.Length;
+ ra.FirstRow = index - 1;
+ ra.LastRow = index;
+ ra.LastColumn = r.Text.Length;
+ }
+ PushUndoBlock(UndoAction.DeleteRange, GetRange(ra), ra.FirstColumn, ra.FirstRow, r.RevisionMark);
+ }
+
+
+ rows.RemoveAt(index);
+ if (r.InKeywordQueue)
+ KeywordQueue.Remove(r);
+
+ if (r.InQueue)
+ ParseQueue.Remove(r);
+
+ //this.ResetVisibleRows ();
+ OnRowDeleted(r);
+ if (raiseChanged)
+ OnChange();
+ }
+
+ ///
+ /// Deletes a range of text
+ ///
+ /// the range that should be deleted
+ public void DeleteRange(TextRange Range)
+ {
+ DeleteRange(Range, true);
+ }
+
+ private int ParseRows(Row row)
+ {
+ return ParseRows(row, false);
+ }
+
+
+ private int ParseRows(Row row, bool Keywords)
+ {
+ if (!Keywords)
+ {
+ int index = IndexOf(row);
+ int count = 0;
+ try
+ {
+ while (row.InQueue && count < 100)
+ {
+ if (index >= 0)
+ {
+ if (index > 0)
+ if (this[index - 1].InQueue)
+ ParseRow(this[index - 1]);
+
+ Parser.ParseRow(index, false);
+ }
+
+ int i = ParseQueue.IndexOf(row);
+ if (i >= 0)
+ ParseQueue.RemoveAt(i);
+ row.InQueue = false;
+ index++;
+ count++;
+ row = this[index];
+
+ if (row == null)
+ break;
+ }
+ }
+ catch
+ {
+ }
+
+ return count;
+ }
+ else
+ {
+ int index = IndexOf(row);
+ if (index == -1 || row.InKeywordQueue == false)
+ {
+ KeywordQueue.Remove(row);
+ return 0;
+ }
+ int count = 0;
+ try
+ {
+ while (row.InKeywordQueue && count < 100)
+ {
+ if (index >= 0)
+ {
+ if (index > 0)
+ if (this[index - 1].InQueue)
+ ParseRow(this[index - 1]);
+
+ Parser.ParseRow(index, true);
+ }
+ index++;
+ count++;
+ row = this[index];
+
+ if (row == null)
+ break;
+ }
+ }
+ catch
+ {
+ }
+
+ return count;
+ }
+ }
+
+
+ ///
+ /// Forces a row to be parsed
+ ///
+ /// Row to parse
+ /// true if keywords and operators should be parsed
+ public void ParseRow(Row r, bool ParseKeywords)
+ {
+ int index = IndexOf(r);
+ if (index >= 0)
+ {
+ if (index > 0)
+ if (this[index - 1].InQueue)
+ ParseRow(this[index - 1]);
+
+ Parser.ParseRow(index, false);
+ if (ParseKeywords)
+ Parser.ParseRow(index, true);
+ }
+
+ int i = ParseQueue.IndexOf(r);
+ if (i >= 0)
+ ParseQueue.RemoveAt(i);
+
+ r.InQueue = false;
+ }
+
+
+ ///
+ /// Forces a row to be parsed
+ ///
+ /// Row to parse
+ public void ParseRow(Row r)
+ {
+ ParseRow(r, false);
+ }
+
+ ///
+ /// Gets the row index of the next bookmarked row
+ ///
+ /// Start index
+ /// Index of the next bookmarked row
+ public int GetNextBookmark(int StartIndex)
+ {
+ for (int i = StartIndex + 1; i < Count; i++)
+ {
+ Row r = this[i];
+ if (r.Bookmarked)
+ return i;
+ }
+
+ for (int i = 0; i < StartIndex; i++)
+ {
+ Row r = this[i];
+ if (r.Bookmarked)
+ return i;
+ }
+
+ return StartIndex;
+ }
+
+ ///
+ /// Gets the row index of the previous bookmarked row
+ ///
+ /// Start index
+ /// Index of the previous bookmarked row
+ public int GetPreviousBookmark(int StartIndex)
+ {
+ for (int i = StartIndex - 1; i >= 0; i--)
+ {
+ Row r = this[i];
+ if (r.Bookmarked)
+ return i;
+ }
+
+ for (int i = Count - 1; i >= StartIndex; i--)
+ {
+ Row r = this[i];
+ if (r.Bookmarked)
+ return i;
+ }
+
+ return StartIndex;
+ }
+
+ ///
+ /// Deletes a range of text
+ ///
+ /// Range to delete
+ /// true if the actions should be pushed onto the undo stack
+ public void DeleteRange(TextRange Range, bool StoreUndo)
+ {
+ TextRange r = Range;
+ Modified = true;
+ if (StoreUndo)
+ {
+ string deltext = GetRange(Range);
+ Row xtr = this[r.FirstRow];
+ PushUndoBlock(UndoAction.DeleteRange, deltext, r.FirstColumn, r.FirstRow, xtr.RevisionMark);
+ }
+
+
+ if (r.FirstRow == r.LastRow)
+ {
+ Row xtr = this[r.FirstRow];
+ int max = Math.Min(r.FirstColumn, xtr.Text.Length);
+ string left = xtr.Text.Substring(0, max);
+ string right = "";
+ if (xtr.Text.Length >= r.LastColumn)
+ right = xtr.Text.Substring(r.LastColumn);
+ xtr.Text = left + right;
+ }
+ else
+ {
+ if (r.LastRow > Count - 1)
+ r.LastRow = Count - 1;
+
+ Row xtr = this[r.FirstRow];
+ if (r.FirstColumn > xtr.Text.Length)
+ {
+ int diff = r.FirstColumn - xtr.Text.Length;
+ var ws = new string(' ', diff);
+ InsertText(ws, xtr.Text.Length, r.FirstRow, true);
+ //return;
+ }
+
+ string row1 = xtr.Text.Substring(0, r.FirstColumn);
+
+ Row xtr2 = this[r.LastRow];
+ int Max = Math.Min(xtr2.Text.Length, r.LastColumn);
+ string row2 = xtr2.Text.Substring(Max);
+
+ string tot = row1 + row2;
+ //bool fold=this[r.LastRow].IsCollapsed | this[r.FirstRow].IsCollapsed ;
+
+ int start = r.FirstRow;
+ int end = r.LastRow;
+
+ for (int i = end - 1; i >= start; i--)
+ {
+ Remove(i, false, false);
+ }
+
+ //todo: DeleteRange error
+ //this.Insert ( tot ,r.FirstRow,false);
+
+
+ Row row = this[start];
+ row.Expanded = true;
+ row.Text = tot;
+ row.startSpans.Clear();
+ row.endSpans.Clear();
+ row.startSpan = null;
+ row.endSpan = null;
+ row.Parse();
+ }
+
+ ResetVisibleRows();
+ OnChange();
+ }
+
+ ///
+ /// Get a range of text
+ ///
+ /// The range to get
+ /// string containing the text inside the given range
+ public string GetRange(TextRange Range)
+ {
+ if (Range.FirstRow >= Count)
+ Range.FirstRow = Count;
+
+ if (Range.LastRow >= Count)
+ Range.LastRow = Count;
+
+ if (Range.FirstRow != Range.LastRow)
+ {
+ //note:error has been tracked here
+ Row r1 = this[Range.FirstRow];
+ int mx = Math.Min(r1.Text.Length, Range.FirstColumn);
+ string s1 = r1.Text.Substring(mx) + Environment.NewLine;
+
+ //if (Range.LastRow >= this.Count)
+ // Range.LastRow=this.Count -1;
+
+ Row r2 = this[Range.LastRow];
+ if (r2 == null)
+ return "";
+
+ int Max = Math.Min(r2.Text.Length, Range.LastColumn);
+ string s2 = r2.Text.Substring(0, Max);
+
+ var sb = new StringBuilder();
+ for (int i = Range.FirstRow + 1; i <= Range.LastRow - 1; i++)
+ {
+ Row r3 = this[i];
+
+ sb.Append(r3.Text + Environment.NewLine);
+ }
+
+ string s3 = sb.ToString();
+ return s1 + s3 + s2;
+ }
+ else
+ {
+ Row r = this[Range.FirstRow];
+ int Max = Math.Min(r.Text.Length, Range.LastColumn);
+ int Length = Max - Range.FirstColumn;
+ if (Length <= 0)
+ return "";
+ string s = r.Text.Substring(Range.FirstColumn, Max - Range.FirstColumn);
+ return s;
+ }
+ }
+
+
+ ///
+ /// Returns the index of a given row
+ ///
+ /// row to find
+ /// Index of the given row
+ public int IndexOf(Row xtr)
+ {
+ return rows.IndexOf(xtr);
+ }
+
+ ///
+ /// Clear all content in the document
+ ///
+ public void clear()
+ {
+ foreach (Row r in rows)
+ {
+ OnRowDeleted(r);
+ }
+ rows.Clear();
+ // this.FormatRanges.Clear ();
+ ParseQueue.Clear();
+ KeywordQueue.Clear();
+ UndoBuffer.Clear();
+ UndoStep = 0;
+ // this.Add ("");
+ // ResetVisibleRows();
+ // this.OnChange ();
+ }
+
+ public void Clear()
+ {
+ Text = "";
+ }
+
+ ///
+ /// Inserts a text into the document at a given column,row.
+ ///
+ /// Text to insert
+ /// Column
+ /// Row index
+ /// TextPoint containing the end of the inserted text
+ public TextPoint InsertText(string text, int xPos, int yPos)
+ {
+ return InsertText(text, xPos, yPos, true);
+ }
+
+ ///
+ /// Inserts a text into the document at a given column,row.
+ ///
+ /// Text to insert
+ /// Column
+ /// Row index
+ /// true if this action should be pushed onto the undo stack
+ /// TextPoint containing the end of the inserted text
+ public TextPoint InsertText(string text, int xPos, int yPos, bool StoreUndo)
+ {
+ Modified = true;
+ Row xtr = this[yPos];
+
+ RowRevisionMark mark = xtr.RevisionMark;
+
+ if (xPos > xtr.Text.Length)
+ {
+ //virtualwhitespace fix
+ int Padd = xPos - xtr.Text.Length;
+ var PaddStr = new string(' ', Padd);
+ text = PaddStr + text;
+ xPos -= Padd;
+ }
+ string lft = xtr.Text.Substring(0, xPos);
+ string rgt = xtr.Text.Substring(xPos);
+ string NewText = lft + text + rgt;
+
+
+ string t = NewText.Replace(Environment.NewLine, "\n");
+ string[] lines = t.Split('\n');
+ xtr.Text = lines[0];
+
+ Row lastrow = xtr;
+
+ //this.Parser.ParsePreviewLine(xtr);
+ xtr.Parse();
+ if (!xtr.InQueue)
+ ParseQueue.Add(xtr);
+ xtr.InQueue = true;
+
+ int i = IndexOf(xtr);
+ for (int j = 1; j <= lines.GetUpperBound(0); j++)
+ {
+ lastrow = Insert(lines[j], j + i, false);
+ }
+
+ if (StoreUndo)
+ PushUndoBlock(UndoAction.InsertRange, text, xPos, yPos, mark);
+
+ ResetVisibleRows();
+ OnChange();
+
+
+ return new TextPoint(lastrow.Text.Length - rgt.Length, IndexOf(lastrow));
+ }
+
+ private void OnModifiedChanged()
+ {
+ if (ModifiedChanged != null)
+ ModifiedChanged(this, new EventArgs());
+ }
+
+ private void OnChange()
+ {
+ if (Change != null)
+ Change(this, new EventArgs());
+ }
+
+ private void OnRowParsed(Row r)
+ {
+ if (RowParsed != null)
+ RowParsed(this, new RowEventArgs(r));
+
+ OnApplyFormatRanges(r);
+ }
+
+ // private void OnRowAdded(Row r)
+ // {
+ // if (RowAdded != null)
+ // RowAdded(this,new RowEventArgs(r));
+ // }
+ private void OnRowDeleted(Row r)
+ {
+ if (RowDeleted != null)
+ RowDeleted(this, new RowEventArgs(r));
+ }
+
+ public void PushUndoBlock(UndoAction Action, string Text, int x, int y, RowRevisionMark mark)
+ {
+ var undo = new UndoBlock();
+ undo.Action = Action;
+ undo.Text = Text;
+ undo.Position.Y = y;
+ undo.Position.X = x;
+ undo.RowModified = (mark != RowRevisionMark.Unchanged);
+ //AddToUndoList(undo);
+
+ if (captureMode)
+ {
+ captureBlock.Add(undo);
+ }
+ else
+ {
+ AddToUndoList(undo);
+ }
+ }
+
+ ///
+ /// Gets a Range from a given text
+ ///
+ ///
+ ///
+ ///
+ ///
+ public TextRange GetRangeFromText(string text, int xPos, int yPos)
+ {
+ string t = text.Replace(Environment.NewLine, "\n");
+ string[] lines = t.Split("\n".ToCharArray());
+ var r = new TextRange
+ {
+ FirstColumn = xPos,
+ FirstRow = yPos,
+ LastRow = (lines.Length - 1 + yPos),
+ LastColumn = lines[lines.Length - 1].Length
+ };
+
+ if (r.FirstRow == r.LastRow)
+ r.LastColumn += r.FirstColumn;
+
+ return r;
+ }
+
+ public void AddToUndoList(UndoBlock undo)
+ {
+ //store the undo action in a actiongroup
+ var ActionGroup = new UndoBlockCollection {undo};
+
+ AddToUndoList(ActionGroup);
+ }
+
+ ///
+ /// Add an action to the undo stack
+ ///
+ /// action to add
+ public void AddToUndoList(UndoBlockCollection ActionGroup)
+ {
+ UndoBuffer.ClearFrom(UndoStep);
+ UndoBuffer.Add(ActionGroup);
+ UndoStep++;
+ OnUndoBufferChanged();
+ }
+
+ ///
+ /// Perform an undo action
+ ///
+ /// The position where the caret should be placed
+ public TextPoint Undo()
+ {
+ if (UndoStep == 0)
+ return new TextPoint(-1, -1);
+
+
+ UndoBlockCollection ActionGroup = UndoBuffer[UndoStep - 1];
+ UndoBlock undo = ActionGroup[0];
+
+ for (int i = ActionGroup.Count - 1; i >= 0; i--)
+ {
+ undo = ActionGroup[i];
+ //TextPoint tp=new TextPoint (undo.Position.X,undo.Position.Y);
+ switch (undo.Action)
+ {
+ case UndoAction.DeleteRange:
+ InsertText(undo.Text, undo.Position.X, undo.Position.Y, false);
+ break;
+ case UndoAction.InsertRange:
+ {
+ TextRange r = GetRangeFromText(undo.Text, undo.Position.X, undo.Position.Y);
+ DeleteRange(r, false);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ UndoStep--;
+ ResetVisibleRows();
+
+ //no undo steps left , the document is not dirty
+ if (UndoStep == 0)
+ Modified = false;
+
+ var tp = new TextPoint(undo.Position.X, undo.Position.Y);
+ OnUndoBufferChanged();
+ return tp;
+ }
+
+ public void AutoIndentSegment(Span span)
+ {
+ if (span == null)
+ span = this[0].startSpan;
+
+ Row start = span.StartRow;
+ Row end = span.EndRow;
+ if (start == null)
+ start = this[0];
+
+ if (end == null)
+ end = this[Count - 1];
+
+
+ for (int i = start.Index; i <= end.Index; i++)
+ {
+ Row r = this[i];
+ int depth = r.Indent;
+ string text = r.Text.Substring(r.GetLeadingWhitespace().Length);
+ var indent = new string('\t', depth);
+ r.Text = indent + text;
+ }
+ ResetVisibleRows();
+ }
+
+ //Returns the span object at the given position
+ ///
+ /// Gets a span object form a given column , Row index
+ /// (This only applies if the row is fully parsed)
+ ///
+ /// Column and Rowindex
+ /// span object at the given position
+ public Span GetSegmentFromPos(TextPoint p)
+ {
+ Row xtr = this[p.Y];
+ int CharNo = 0;
+
+ if (xtr.Count == 0)
+ return xtr.startSpan;
+
+ Span prev = xtr.startSpan;
+ foreach (Word w in xtr)
+ {
+ if (w.Text.Length + CharNo > p.X)
+ {
+ if (CharNo == p.X)
+ return prev;
+ return w.Span;
+ }
+ CharNo += w.Text.Length;
+ prev = w.Span;
+ }
+
+ return xtr.endSpan;
+ }
+
+ //the specific word that contains the char in point p
+ ///
+ /// Gets a Word object form a given column , Row index
+ /// (this only applies if the row is fully parsed)
+ ///
+ /// Column and Rowindex
+ /// Word object at the given position
+ public Word GetWordFromPos(TextPoint p)
+ {
+ Row xtr = this[p.Y];
+ int CharNo = 0;
+ Word CorrectWord = null;
+ foreach (Word w in xtr)
+ {
+ if (CorrectWord != null)
+ {
+ if (w.Text == "")
+ return w;
+ return CorrectWord;
+ }
+
+ if (w.Text.Length + CharNo > p.X || w == xtr[xtr.Count - 1])
+ {
+ //return w;
+ CorrectWord = w;
+ }
+ else
+ {
+ CharNo += w.Text.Length;
+ }
+ }
+ return CorrectWord;
+ }
+
+ //the specific word that contains the char in point p
+ ///
+ /// Gets a Word object form a given column , Row index
+ /// (this only applies if the row is fully parsed)
+ ///
+ /// Column and Rowindex
+ /// Word object at the given position
+ public Word GetFormatWordFromPos(TextPoint p)
+ {
+ Row xtr = this[p.Y];
+ int CharNo = 0;
+ Word CorrectWord = null;
+ foreach (Word w in xtr.FormattedWords)
+ {
+ if (CorrectWord != null)
+ {
+ if (w.Text == "")
+ return w;
+ return CorrectWord;
+ }
+
+ if (w.Text.Length + CharNo > p.X || w == xtr[xtr.Count - 1])
+ {
+ //return w;
+ CorrectWord = w;
+ }
+ else
+ {
+ CharNo += w.Text.Length;
+ }
+ }
+ return CorrectWord;
+ }
+
+ ///
+ /// Call this method to make the document raise the RowParsed event
+ ///
+ ///
+ public void InvokeRowParsed(Row row)
+ {
+ OnRowParsed(row);
+ }
+
+
+ ///
+ /// Call this method to recalculate the visible rows
+ ///
+ public void ResetVisibleRows()
+ {
+ InternalResetVisibleRows();
+ }
+
+ private void InternalResetVisibleRows()
+ {
+// if (System.DateTime.Now > new DateTime (2002,12,31))
+// {
+//
+// this.rows = new RowList ();
+// this.Add ("BETA VERSION EXPIRED");
+// VisibleRows = this.rows;
+// return;
+// }
+
+ if (!folding)
+ {
+ VisibleRows = rows;
+ NeedResetRows = false;
+ }
+ else
+ {
+ NeedResetRows = false;
+ VisibleRows = new RowList(); //.Clear ();
+ int RealRow = 0;
+ for (int i = 0; i < Count; i++)
+ {
+ Row r = this[RealRow];
+ VisibleRows.Add(r);
+ bool collapsed = false;
+ if (r.CanFold)
+ if (r.expansion_StartSpan.Expanded == false)
+ {
+ if (r.expansion_StartSpan.EndWord == null)
+ {
+ }
+ else
+ {
+ r = r.Expansion_EndRow; // .expansion_StartSpan.EndRow;
+ collapsed = true;
+ }
+ }
+
+ if (!collapsed)
+ RealRow++;
+ else
+ RealRow = IndexOf(r) + 1;
+
+ if (RealRow >= Count)
+ break;
+ }
+ }
+ }
+
+ ///
+ /// Converts a Column/Row index position into a char index
+ ///
+ /// TextPoint where x is column and y is row index
+ /// Char index in the document text
+ public int PointToIntPos(TextPoint pos)
+ {
+ int y = 0;
+ int p = 0;
+ foreach (Row r in this)
+ {
+ if (y == pos.Y)
+ break;
+ p += r.Text.Length + Environment.NewLine.Length;
+ y++;
+ }
+
+ return p + Math.Min(pos.X, this[pos.Y].Text.Length);
+ }
+
+ ///
+ /// Converts a char index into a Column/Row index
+ ///
+ /// Char index to convert
+ /// Point where x is column and y is row index
+ public TextPoint IntPosToPoint(int pos)
+ {
+ int p = 0;
+ int y = 0;
+ foreach (Row r in this)
+ {
+ p += r.Text.Length + Environment.NewLine.Length;
+ if (p > pos)
+ {
+ p -= r.Text.Length + Environment.NewLine.Length;
+ int x = pos - p;
+ return new TextPoint(x, y);
+ }
+ y++;
+ }
+ return new TextPoint(-1, -1);
+ }
+
+ ///
+ /// Toggle expansion of a given row
+ ///
+ ///
+ public void ToggleRow(Row r)
+ {
+ if (!folding)
+ return;
+
+ if (r.Expansion_EndRow == null || r.Expansion_StartRow == null)
+ return;
+
+
+// if (r.IsCollapsed)
+// {
+// r.expansion_StartSpan.Expanded = true;
+// ExpandRow(r);
+// }
+// else
+// {
+// r.expansion_StartSpan.Expanded = false;
+// CollapseRow(r);
+// }
+
+ if (r.CanFold)
+ r.Expanded = !r.Expanded;
+ ResetVisibleRows();
+
+ OnChange();
+ }
+
+ ///
+ /// Perform an redo action
+ ///
+ /// The position where the caret should be placed
+ public TextPoint Redo()
+ {
+ if (UndoStep >= UndoBuffer.Count)
+ return new TextPoint(-1, -1);
+
+ UndoBlockCollection ActionGroup = UndoBuffer[UndoStep];
+ UndoBlock undo = ActionGroup[0];
+ for (int i = 0; i < ActionGroup.Count; i++)
+ {
+ undo = ActionGroup[i];
+
+ switch (undo.Action)
+ {
+ case UndoAction.InsertRange:
+ {
+ InsertText(undo.Text, undo.Position.X, undo.Position.Y, false);
+ }
+ break;
+ case UndoAction.DeleteRange:
+ {
+ TextRange r = GetRangeFromText(undo.Text, undo.Position.X, undo.Position.Y);
+ DeleteRange(r, false);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ TextRange ran = GetRangeFromText(undo.Text, undo.Position.X, undo.Position.Y);
+ UndoStep++;
+ ResetVisibleRows();
+ OnUndoBufferChanged();
+ return new TextPoint(ran.LastColumn, ran.LastRow);
+ }
+
+ public Word GetStartBracketWord(Word Start, Pattern End, Span FindIn)
+ {
+ if (Start == null || Start.Pattern == null || Start.Span == null)
+ return null;
+
+ int CurrentRow = Start.Row.Index;
+ int FirstRow = FindIn.StartRow.Index;
+ int x = Start.Index;
+ int count = 0;
+ while (CurrentRow >= FirstRow)
+ {
+ for (int i = x; i >= 0; i--)
+ {
+ Word w = this[CurrentRow][i];
+ if (w.Span == FindIn && w.Type == WordType.Word)
+ {
+ if (w.Pattern == Start.Pattern)
+ count++;
+ if (w.Pattern == End)
+ count--;
+
+ if (count == 0)
+ return w;
+ }
+ }
+
+ if (!Start.Pattern.IsMultiLineBracket)
+ break;
+
+ CurrentRow--;
+ if (CurrentRow >= 0)
+ x = this[CurrentRow].Count - 1;
+ }
+ return null;
+ }
+
+
+ public Word GetEndBracketWord(Word Start, Pattern End, Span FindIn)
+ {
+ if (Start == null || Start.Pattern == null || Start.Span == null)
+ return null;
+
+ int CurrentRow = Start.Row.Index;
+
+ int LastRow = Count - 1;
+ if (FindIn.EndRow != null)
+ LastRow = FindIn.EndRow.Index;
+
+
+ int x = Start.Index;
+ int count = 0;
+ while (CurrentRow <= LastRow)
+ {
+ for (int i = x; i < this[CurrentRow].Count; i++)
+ {
+ Word w = this[CurrentRow][i];
+ if (w.Span == FindIn && w.Type == WordType.Word)
+ {
+ if (w.Pattern == Start.Pattern)
+ count++;
+ if (w.Pattern == End)
+ count--;
+
+ if (count == 0)
+ return w;
+ }
+ }
+
+ if (!Start.Pattern.IsMultiLineBracket)
+ break;
+
+ CurrentRow++;
+ x = 0;
+ }
+ return null;
+ }
+
+
+ ///
+ /// Sets a syntax file, from an embedded resource.
+ ///
+ /// The assembly which contains the embedded resource.
+ /// The name of the resource.
+ public void SetSyntaxFromEmbeddedResource(Assembly assembly, String resourceName)
+ {
+ if (assembly == null)
+ throw new ArgumentNullException("assembly");
+
+ if (string.IsNullOrEmpty(resourceName))
+ throw new ArgumentNullException("resourceName");
+
+ //
+ // Get the xml from an embedded resource. Load the stream.
+ //
+
+ Stream stream = assembly.GetManifestResourceStream(resourceName);
+ if (stream != null)
+ {
+ stream.Seek(0, SeekOrigin.Begin);
+
+
+ //
+ // Read stream.
+ //
+
+ var reader = new StreamReader(stream);
+ String xml = reader.ReadToEnd();
+
+ //
+ // Clean up stream.
+ //
+
+ stream.Close();
+
+ //
+ // Initialize.
+ //
+
+ Parser.Init(SyntaxDefinition.FromSyntaxXml(xml));
+ Text = Text;
+ }
+ }
+
+
+ public void OnApplyFormatRanges(Row row)
+ {
+ row.FormattedWords = row.words;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.resx
new file mode 100644
index 0000000..5b6a13f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Document/SyntaxDocument.resx
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.0.0.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DesktopGraphics.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DesktopGraphics.cs
new file mode 100644
index 0000000..9d37a32
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DesktopGraphics.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Drawing;
+using Alsing.Windows;
+
+namespace Alsing.Drawing
+{
+ public class DesktopGraphics : IDisposable
+ {
+ public readonly Graphics Graphics;
+ protected IntPtr handle = new IntPtr(0);
+ protected IntPtr hdc = new IntPtr(0);
+
+ public DesktopGraphics()
+ {
+ handle = NativeMethods.GetDesktopWindow();
+ hdc = NativeMethods.GetWindowDC(hdc);
+ Graphics = Graphics.FromHdc(hdc);
+ }
+
+ #region IDisposable Members
+
+ public void Dispose()
+ {
+ NativeMethods.ReleaseDC(handle, hdc);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DrawingTools.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DrawingTools.cs
new file mode 100644
index 0000000..8b83988
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/DrawingTools.cs
@@ -0,0 +1,382 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Drawing.Imaging;
+using System.Windows.Forms;
+using Alsing.Windows;
+using Alsing.Windows.Forms;
+
+namespace Alsing.Drawing
+{
+ public static class DrawingTools
+ {
+ public static Color MixColors(Color c1, Color c2, double mix)
+ {
+ double d = mix;
+ return Color.FromArgb((int) (c1.R*(1 - d) + c2.R*d), (int) (c1.G*(1 - d) + c2.G*d),
+ (int) (c1.B*(1 - d) + c2.B*d));
+ }
+
+ private static void DrawBorder(Border3DStyle Style, Color BorderColor, Graphics g, Rectangle r)
+ {
+ using (SolidBrush normal = GetNormalBrush(BorderColor))
+ using (SolidBrush light = GetLightBrush(BorderColor))
+ using (SolidBrush dark = GetDarkBrush(BorderColor))
+ using (SolidBrush darkdark = GetDarkDarkBrush(BorderColor))
+ {
+ switch (Style)
+ {
+ case Border3DStyle.Sunken:
+ {
+ DrawSunkenBorder(g, dark, r, darkdark, light, normal);
+ break;
+ }
+ case Border3DStyle.Raised:
+ {
+ DrawRaisedBorder(g, dark, r, darkdark, light, normal);
+ break;
+ }
+ case Border3DStyle.RaisedInner:
+ {
+ RaisedInnerBorder(g, dark, r, light);
+ break;
+ }
+ case Border3DStyle.SunkenOuter:
+ {
+ DrawSunkenOuterBorder(g, dark, r, light);
+ break;
+ }
+ case Border3DStyle.Etched:
+ {
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+ private static void DrawSunkenOuterBorder(Graphics g, Brush dark, Rectangle r, Brush light)
+ {
+ g.FillRectangle(dark, r.Left, r.Top, r.Width, 1);
+ g.FillRectangle(dark, r.Left, r.Top, 1, r.Height);
+
+ g.FillRectangle(light, r.Right - 1, r.Top + 1, 1, r.Height - 1);
+ g.FillRectangle(light, r.Left + 1, r.Bottom - 1, r.Width - 1, 1);
+ }
+
+ private static void RaisedInnerBorder(Graphics g, Brush dark, Rectangle r, Brush light)
+ {
+ g.FillRectangle(light, r.Left, r.Top, r.Width - 1, 1);
+ g.FillRectangle(light, r.Left, r.Top, 1, r.Height - 1);
+
+ g.FillRectangle(dark, r.Right - 1, r.Top, 1, r.Height);
+ g.FillRectangle(dark, r.Left, r.Bottom - 1, r.Width, 1);
+ }
+
+ private static void DrawRaisedBorder(Graphics g, Brush dark, Rectangle r, Brush darkdark, Brush light,
+ Brush normal)
+ {
+ g.FillRectangle(normal, r.Left, r.Top, r.Width - 1, 1);
+ g.FillRectangle(normal, r.Left, r.Top, 1, r.Height - 1);
+ g.FillRectangle(light, r.Left + 1, r.Top + 1, r.Width - 2, 1);
+ g.FillRectangle(light, r.Left + 1, r.Top + 1, 1, r.Height - 2);
+
+ g.FillRectangle(darkdark, r.Right - 1, r.Top, 1, r.Height);
+ g.FillRectangle(darkdark, r.Left, r.Bottom - 1, r.Width, 1);
+ g.FillRectangle(dark, r.Right - 2, r.Top + 1, 1, r.Height - 2);
+ g.FillRectangle(dark, r.Left + 1, r.Bottom - 2, r.Width - 2, 1);
+ }
+
+ private static void DrawSunkenBorder(Graphics g, Brush dark, Rectangle r, Brush darkdark, Brush light,
+ Brush normal)
+ {
+ g.FillRectangle(dark, r.Left, r.Top, r.Width, 1);
+ g.FillRectangle(dark, r.Left, r.Top, 1, r.Height);
+ g.FillRectangle(darkdark, r.Left + 1, r.Top + 1, r.Width - 2, 1);
+ g.FillRectangle(darkdark, r.Left + 1, r.Top + 1, 1, r.Height - 2);
+
+ g.FillRectangle(light, r.Right - 1, r.Top + 1, 1, r.Height - 1);
+ g.FillRectangle(light, r.Left + 1, r.Bottom - 1, r.Width - 1, 1);
+ g.FillRectangle(normal, r.Right - 2, r.Top + 2, 1, r.Height - 3);
+ g.FillRectangle(normal, r.Left + 2, r.Bottom - 2, r.Width - 3, 1);
+ }
+
+ private static SolidBrush GetNormalBrush(Color BorderColor)
+ {
+ return new SolidBrush(BorderColor);
+ }
+
+ private static SolidBrush GetLightBrush(Color BorderColor)
+ {
+ return BorderColor.GetBrightness() > 0.6
+ ? new SolidBrush(MixColors(BorderColor, Color.White, 1))
+ : new SolidBrush(MixColors(BorderColor, Color.White, 0.5));
+ }
+
+ private static SolidBrush GetDarkDarkBrush(Color BorderColor)
+ {
+ SolidBrush darkdark = BorderColor.GetBrightness() < 0.5
+ ? new SolidBrush(MixColors(BorderColor, Color.Black, 1))
+ : new SolidBrush(MixColors(BorderColor, Color.Black, 0.6));
+ return darkdark;
+ }
+
+ private static SolidBrush GetDarkBrush(Color BorderColor)
+ {
+ SolidBrush dark = BorderColor.GetBrightness() < 0.5
+ ? new SolidBrush(MixColors(BorderColor, Color.Black, 0.7))
+ : new SolidBrush(MixColors(BorderColor, Color.Black, 0.4));
+ return dark;
+ }
+
+
+ public static void DrawBorder(BorderStyle2 Style, Color BorderColor, Graphics g, Rectangle r)
+ {
+ switch (Style)
+ {
+ case BorderStyle2.Dotted:
+ {
+ r.Width --;
+ r.Height --;
+ g.DrawRectangle(new Pen(SystemColors.Control), r);
+ var p = new Pen(BorderColor) {DashStyle = DashStyle.Dot};
+ g.DrawRectangle(p, r);
+ break;
+ }
+ case BorderStyle2.Dashed:
+ {
+ r.Width --;
+ r.Height --;
+ g.DrawRectangle(new Pen(SystemColors.Control), r);
+ var p = new Pen(BorderColor) {DashStyle = DashStyle.Dash};
+ g.DrawRectangle(p, r);
+
+ break;
+ }
+ case BorderStyle2.Sunken:
+ {
+ if (BorderColor == Color.Black)
+ BorderColor = SystemColors.Control;
+ //System.Windows.Forms.ControlPaint.DrawBorder3D (g,r,Border3DStyle.Sunken);
+ DrawBorder(Border3DStyle.Sunken, BorderColor, g, r);
+ break;
+ }
+ case BorderStyle2.FixedSingle:
+ {
+ r.Width --;
+ r.Height --;
+ g.DrawRectangle(new Pen(BorderColor), r);
+ break;
+ }
+ case BorderStyle2.FixedDouble:
+ {
+ g.DrawRectangle(new Pen(BorderColor), r.Left, r.Top, r.Width - 1, r.Height - 1);
+ g.DrawRectangle(new Pen(BorderColor), r.Left + 1, r.Top + 1, r.Width - 3, r.Height - 3);
+ break;
+ }
+ case BorderStyle2.Raised:
+ {
+ if (BorderColor == Color.Black)
+ BorderColor = SystemColors.Control;
+
+ DrawBorder(Border3DStyle.Raised, BorderColor, g, r);
+ //System.Windows.Forms.ControlPaint.DrawBorder3D (g,r,Border3DStyle.Raised);
+ break;
+ }
+ case BorderStyle2.RaisedThin:
+ {
+ if (BorderColor == Color.Black)
+ BorderColor = Color.FromArgb(SystemColors.Control.R, SystemColors.Control.G,
+ SystemColors.Control.B);
+
+ DrawBorder(Border3DStyle.RaisedInner, BorderColor, g, r);
+ //System.Windows.Forms.ControlPaint.DrawBorder3D (g,r,Border3DStyle.Raised);
+ break;
+ }
+ case BorderStyle2.SunkenThin:
+ {
+ if (BorderColor == Color.Black)
+ BorderColor = Color.FromArgb(SystemColors.Control.R, SystemColors.Control.G,
+ SystemColors.Control.B);
+
+ DrawBorder(Border3DStyle.SunkenOuter, BorderColor, g, r);
+ //System.Windows.Forms.ControlPaint.DrawBorder3D (g,r,Border3DStyle.Raised);
+ break;
+ }
+ case BorderStyle2.Etched:
+ {
+ ControlPaint.DrawBorder3D(g, r, Border3DStyle.Etched);
+
+ break;
+ }
+ case BorderStyle2.Bump:
+ {
+ if (BorderColor == Color.Black)
+ BorderColor = SystemColors.Control;
+
+ var b = new SolidBrush(BorderColor);
+ g.FillRectangle(b, r.Left, r.Top, r.Width, 4);
+ g.FillRectangle(b, r.Left, r.Bottom - 4, r.Width, 4);
+
+ g.FillRectangle(b, r.Left, r.Top, 4, r.Height);
+ g.FillRectangle(b, r.Right - 4, r.Top, 4, r.Height);
+ b.Dispose();
+
+ DrawBorder(Border3DStyle.Raised, BorderColor, g, r);
+ DrawBorder(Border3DStyle.Sunken, BorderColor, g,
+ new Rectangle(r.Left + 4, r.Top + 4, r.Width - 8, r.Height - 8));
+ break;
+ }
+ case BorderStyle2.Column:
+ {
+ var light = new SolidBrush(MixColors(BorderColor, Color.White, 1));
+ var dark = new SolidBrush(MixColors(BorderColor, Color.Black, 0.4));
+
+ g.FillRectangle(light, r.Left, r.Top, r.Width, 1);
+ g.FillRectangle(light, r.Left, r.Top + 3, 1, r.Height - 1 - 6);
+ g.FillRectangle(dark, r.Right - 1, r.Top + 3, 1, r.Height - 6);
+ g.FillRectangle(dark, r.Left, r.Bottom - 1, r.Width, 1);
+ break;
+ }
+ case BorderStyle2.Row:
+ {
+ var light = new SolidBrush(MixColors(BorderColor, Color.White, 1));
+ var dark = new SolidBrush(MixColors(BorderColor, Color.Black, 0.4));
+
+ g.FillRectangle(light, r.Left + 3, r.Top, r.Width - 6, 1);
+ g.FillRectangle(light, r.Left, r.Top, 1, r.Height - 1);
+ g.FillRectangle(dark, r.Right - 1, r.Top, 1, r.Height);
+ g.FillRectangle(dark, r.Left + 3, r.Bottom - 1, r.Width - 6, 1);
+ break;
+ }
+ }
+ }
+
+ public static void DrawDesignTimeLine(Graphics g, int x1, int y1, int x2, int y2)
+ {
+ var p = new Pen(SystemColors.ControlDarkDark) {DashOffset = 10, DashStyle = DashStyle.Dash};
+ g.DrawLine(p, x1, y1, x2, y2);
+ p.Dispose();
+ }
+
+ public static void DrawGrayImage(Graphics g, Image Image, int X, int Y, float TransparencyFactor)
+ {
+ var cm = new ColorMatrix();
+ var ia = new ImageAttributes();
+
+ cm.Matrix33 = TransparencyFactor;
+
+ cm.Matrix00 = 0.33333334F;
+ cm.Matrix01 = 0.33333334F;
+ cm.Matrix02 = 0.33333334F;
+ cm.Matrix10 = 0.33333334F;
+ cm.Matrix11 = 0.33333334F;
+ cm.Matrix12 = 0.33333334F;
+ cm.Matrix20 = 0.33333334F;
+ cm.Matrix21 = 0.33333334F;
+ cm.Matrix22 = 0.33333334F;
+
+ ia.SetColorMatrix(cm);
+ g.DrawImage(Image, new Rectangle(X, Y, Image.Width, Image.Height), 0, 0, Image.Width, Image.Height,
+ GraphicsUnit.Pixel, ia);
+ }
+
+ public static void DrawTransparentImage(Graphics g, Image Image, int X, int Y, float TransparencyFactor)
+ {
+ var ia = new ImageAttributes();
+ var cm = new ColorMatrix {Matrix33 = TransparencyFactor, Matrix00 = 1.0F, Matrix11 = 1.0F, Matrix22 = 1.0F};
+
+ ia.SetColorMatrix(cm);
+ g.DrawImage(Image, new Rectangle(X, Y, Image.Width, Image.Height), 0, 0, Image.Width, Image.Height,
+ GraphicsUnit.Pixel, ia);
+ }
+
+ public static void DrawDesignTimeBorder(Graphics g, Rectangle rect)
+ {
+ rect.Width --;
+ rect.Height --;
+ var p = new Pen(SystemColors.ControlDarkDark) {DashStyle = DashStyle.Dash};
+ g.DrawRectangle(p, rect);
+ p.Dispose();
+ }
+
+ public static void DrawInsertIndicatorH(int x, int y, int width, Graphics g, Color c)
+ {
+ y -= 3;
+ x -= 2;
+
+ ControlPaint.FillReversibleRectangle(new Rectangle(x, y, 2, 7), c);
+ ControlPaint.FillReversibleRectangle(new Rectangle(x + 2, y + 1, width, 5), c);
+ ControlPaint.FillReversibleRectangle(new Rectangle(width + 2 + x, y, 2, 7), c);
+ }
+
+ public static void DrawInsertIndicatorV(int x, int y, int height, Graphics g, Color c)
+ {
+ x -= 3;
+ y -= 2;
+
+ ControlPaint.FillReversibleRectangle(new Rectangle(x, y, 7, 2), c);
+ ControlPaint.FillReversibleRectangle(new Rectangle(x + 1, y + 2, 5, height), c);
+ ControlPaint.FillReversibleRectangle(new Rectangle(x, height + 2 + y, 7, 2), c);
+ }
+
+
+ public static Bitmap DrawControl(Control control)
+ {
+ var b = new Bitmap(control.Width, control.Height);
+ Graphics g = Graphics.FromImage(b);
+ IntPtr hdc = g.GetHdc();
+ NativeMethods.SendMessage(control.Handle, (int) WindowMessage.WM_PRINT, (int) hdc,
+ (int) (WMPrintFlags.PRF_CLIENT | WMPrintFlags.PRF_ERASEBKGND));
+ g.ReleaseHdc(hdc);
+ g.Dispose();
+
+ return b;
+ }
+
+ public static bool DrawControl(Control control, Bitmap b)
+ {
+ Graphics g = Graphics.FromImage(b);
+ IntPtr hdc = g.GetHdc();
+ int i = NativeMethods.SendMessage(control.Handle, (int) WindowMessage.WM_PRINT, (int) hdc,
+ (int) (WMPrintFlags.PRF_CLIENT | WMPrintFlags.PRF_ERASEBKGND));
+ g.ReleaseHdc(hdc);
+ g.Dispose();
+ return i != 0;
+ }
+
+
+ public static void DrawSortArrow(int x, int y, Graphics g, bool Ascending)
+ {
+ Color c1 = Color.FromArgb(220, 255, 255, 255);
+ Color c2 = Color.FromArgb(140, 0, 0, 0);
+
+ var p1 = new Pen(c1);
+ var p2 = new Pen(c2);
+
+ if (Ascending)
+ {
+ g.DrawLine(p1, x, y + 6, x + 7, y + 6);
+ g.DrawLine(p2, x + 3, y, x, y + 6);
+ g.DrawLine(p1, x + 4, y, x + 7, y + 6);
+ }
+ else
+ {
+ g.DrawLine(p2, x, y, x + 7, y);
+ g.DrawLine(p2, x, y, x + 3, y + 6);
+ g.DrawLine(p1, x + 7, y, x + 4, y + 6);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/Enums.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/Enums.cs
new file mode 100644
index 0000000..67c1ed2
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/Enums.cs
@@ -0,0 +1,45 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Windows.Forms
+{
+ public enum BorderStyle
+ {
+ None = 0,
+ Sunken = 1,
+ SunkenThin = 2,
+ Raised = 3,
+ RaisedThin = 4,
+ Etched = 5,
+ Bump = 6,
+ FixedSingle = 7,
+ FixedDouble = 8,
+ Dotted = 9,
+ Dashed = 10,
+ }
+
+ public enum BorderStyle2
+ {
+ None = 0,
+ Sunken = 1,
+ SunkenThin = 2,
+ Raised = 3,
+ RaisedThin = 4,
+ Etched = 5,
+ Bump = 6,
+ FixedSingle = 7,
+ FixedDouble = 8,
+ Dotted = 9,
+ Dashed = 10,
+ Column = 11,
+ Row = 12,
+ NoCorners = 13,
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/FontEnum.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/FontEnum.cs
new file mode 100644
index 0000000..d52e559
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/FontEnum.cs
@@ -0,0 +1,194 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Design;
+using System.Windows.Forms;
+using System.Windows.Forms.Design;
+using Alsing.Windows;
+
+namespace Alsing.Drawing.GDI
+{
+ public class FontList : UITypeEditor
+ {
+ private IWindowsFormsEditorService edSvc;
+ private ListBox FontListbox;
+ private bool handleLostfocus;
+
+ private void LB_DrawItem(object sender, DrawItemEventArgs e)
+ {
+ bool selected = (e.State & DrawItemState.Selected) == DrawItemState.Selected;
+
+ if (e.Index == -1)
+ return;
+
+
+ object li = FontListbox.Items[e.Index];
+ string text = li.ToString();
+
+ Brush fg = selected ? SystemBrushes.HighlightText : SystemBrushes.WindowText;
+
+ if (selected)
+ {
+ const int ofs = 37;
+ e.Graphics.FillRectangle(SystemBrushes.Window,
+ new Rectangle(ofs, e.Bounds.Top, e.Bounds.Width - ofs, FontListbox.ItemHeight));
+ e.Graphics.FillRectangle(SystemBrushes.Highlight,
+ new Rectangle(ofs + 1, e.Bounds.Top + 1, e.Bounds.Width - ofs - 2,
+ FontListbox.ItemHeight - 2));
+ ControlPaint.DrawFocusRectangle(e.Graphics,
+ new Rectangle(ofs, e.Bounds.Top, e.Bounds.Width - ofs,
+ FontListbox.ItemHeight));
+ }
+ else
+ {
+ e.Graphics.FillRectangle(SystemBrushes.Window, 0, e.Bounds.Top, e.Bounds.Width, FontListbox.ItemHeight);
+ }
+
+
+ e.Graphics.DrawString(text, e.Font, fg, 38, e.Bounds.Top + 4);
+
+ e.Graphics.SetClip(new Rectangle(1, e.Bounds.Top + 2, 34, FontListbox.ItemHeight - 4));
+
+
+ e.Graphics.FillRectangle(SystemBrushes.Highlight,
+ new Rectangle(1, e.Bounds.Top + 2, 34, FontListbox.ItemHeight - 4));
+
+ IntPtr hdc = e.Graphics.GetHdc();
+ var gf = new GDIFont(text, 9);
+ int a = 0;
+ IntPtr res = NativeMethods.SelectObject(hdc, gf.hFont);
+ NativeMethods.SetTextColor(hdc, ColorTranslator.ToWin32(SystemColors.Window));
+ NativeMethods.SetBkMode(hdc, 0);
+ NativeMethods.TabbedTextOut(hdc, 3, e.Bounds.Top + 5, "abc", 3, 0, ref a, 0);
+ NativeMethods.SelectObject(hdc, res);
+ gf.Dispose();
+ e.Graphics.ReleaseHdc(hdc);
+ e.Graphics.DrawRectangle(Pens.Black, new Rectangle(1, e.Bounds.Top + 2, 34, FontListbox.ItemHeight - 4));
+ e.Graphics.ResetClip();
+ }
+
+ public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
+ {
+ if (context != null && context.Instance != null && provider != null)
+ {
+ edSvc = (IWindowsFormsEditorService) provider.GetService(typeof (IWindowsFormsEditorService));
+
+ if (edSvc != null)
+ {
+ // Create a CheckedListBox and populate it with all the enum values
+ FontListbox = new ListBox
+ {DrawMode = DrawMode.OwnerDrawFixed, BorderStyle = BorderStyle.None, Sorted = true};
+ FontListbox.MouseDown += OnMouseDown;
+ FontListbox.DoubleClick += ValueChanged;
+ FontListbox.DrawItem += LB_DrawItem;
+ FontListbox.ItemHeight = 20;
+ FontListbox.Height = 200;
+ FontListbox.Width = 180;
+
+ ICollection fonts = new FontEnum().EnumFonts();
+ foreach (string font in fonts)
+ {
+ FontListbox.Items.Add(font);
+ }
+ edSvc.DropDownControl(FontListbox);
+ if (FontListbox.SelectedItem != null)
+ return FontListbox.SelectedItem.ToString();
+ }
+ }
+
+ return value;
+ }
+
+
+ public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
+ {
+ return UITypeEditorEditStyle.DropDown;
+ }
+
+ private void OnMouseDown(object sender, MouseEventArgs e)
+ {
+ if (!handleLostfocus && FontListbox.ClientRectangle.Contains(FontListbox.PointToClient(new Point(e.X, e.Y))))
+ {
+ FontListbox.LostFocus += ValueChanged;
+ handleLostfocus = true;
+ }
+ }
+
+ private void ValueChanged(object sender, EventArgs e)
+ {
+ if (edSvc != null)
+ {
+ edSvc.CloseDropDown();
+ }
+ }
+
+ public override void PaintValue(PaintValueEventArgs e)
+ {
+ string text = e.Value.ToString();
+ var bp = new Bitmap(e.Bounds.Width, e.Bounds.Height);
+ Graphics g = Graphics.FromImage(bp);
+
+ g.FillRectangle(SystemBrushes.Highlight, e.Bounds);
+
+ IntPtr hdc = g.GetHdc();
+ var gf = new GDIFont(text, 9);
+ int a = 0;
+ IntPtr res = NativeMethods.SelectObject(hdc, gf.hFont);
+ NativeMethods.SetTextColor(hdc, ColorTranslator.ToWin32(SystemColors.Window));
+ NativeMethods.SetBkMode(hdc, 0);
+ NativeMethods.TabbedTextOut(hdc, 1, 1, "abc", 3, 0, ref a, 0);
+ NativeMethods.SelectObject(hdc, res);
+ gf.Dispose();
+ g.ReleaseHdc(hdc);
+ e.Graphics.DrawImage(bp, e.Bounds.Left, e.Bounds.Top);
+
+ // e.Graphics.DrawString ("abc",new Font (text,10f),SystemBrushes.Window,3,0);
+ }
+
+ public override bool GetPaintValueSupported(ITypeDescriptorContext context)
+ {
+ return true;
+ }
+ }
+
+
+ public class FontEnum
+ {
+ private Hashtable Fonts;
+
+
+ public ICollection EnumFonts()
+ {
+ var bmp = new Bitmap(10, 10);
+ Graphics g = Graphics.FromImage(bmp);
+
+ IntPtr hDC = g.GetHdc();
+ Fonts = new Hashtable();
+ var lf = new LogFont {lfCharSet = 1};
+ FONTENUMPROC callback = CallbackFunc;
+ NativeMethods.EnumFontFamiliesEx(hDC, lf, callback, 0, 0);
+
+ g.ReleaseHdc(hDC);
+ g.Dispose();
+ bmp.Dispose();
+ return Fonts.Keys;
+ }
+
+ private int CallbackFunc(ENUMLOGFONTEX f, int a, int b, int LParam)
+ {
+ Fonts[f.elfLogFont.lfFaceName] = "abc";
+ return 1;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIBrushes.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIBrushes.cs
new file mode 100644
index 0000000..e8c2ea0
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIBrushes.cs
@@ -0,0 +1,229 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using Alsing.Windows;
+
+namespace Alsing.Drawing.GDI
+{
+ //wrapper class for gdi brushes
+ public class GDIBrush : GDIObject
+ {
+ public IntPtr hBrush;
+ protected bool mSystemBrush;
+
+ public GDIBrush(Color color)
+ {
+ hBrush = NativeMethods.CreateSolidBrush(NativeMethods.ColorToInt(color));
+ Create();
+ }
+
+
+ public GDIBrush(Bitmap pattern)
+ {
+ hBrush = NativeMethods.CreatePatternBrush(pattern.GetHbitmap());
+ Create();
+ }
+
+ public GDIBrush(IntPtr hBMP_Pattern)
+ {
+ hBrush = NativeMethods.CreatePatternBrush(hBMP_Pattern);
+ //if (hBrush==(IntPtr)0)
+ //Alsing.Debug.Debugger.WriteLine ("Failed to create brush with color : {0}",color.ToString());
+
+ Create();
+ }
+
+ public GDIBrush(int Style, Color color)
+ {
+ hBrush = NativeMethods.CreateHatchBrush(Style, NativeMethods.ColorToInt(color));
+ Create();
+ }
+
+ public GDIBrush(int BrushIndex)
+ {
+ hBrush = (IntPtr) BrushIndex;
+ mSystemBrush = true;
+ Create();
+ }
+
+ protected override void Destroy()
+ {
+ //only destroy if brush is created by us
+ if (!mSystemBrush)
+ {
+ if (hBrush != (IntPtr) 0)
+ NativeMethods.DeleteObject(hBrush);
+ }
+
+ base.Destroy();
+ hBrush = (IntPtr) 0;
+ }
+ }
+
+
+ //needs to be recoded , cant create new instances for the same colors
+ public class GDIBrushes
+ {
+ public static GDIBrush Black
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush White
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Red
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Cyan
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Green
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Blue
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Yellow
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Orange
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Purple
+ {
+ get { return new GDIBrush(0); }
+ }
+ }
+
+ public class GDISystemBrushes
+ {
+ public static GDIBrush ActiveBorder
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ActiveCaption
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ActiveCaptionText
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush AppWorkspace
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Control
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ControlDark
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ControlDarkDark
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ControlLight
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ControlLightLight
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ControlText
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Desktop
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Highlight
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush HighlightText
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush HotTrack
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush InactiveBorder
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush InactiveCaption
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Info
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Menu
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush ScrollBar
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush Window
+ {
+ get { return new GDIBrush(0); }
+ }
+
+ public static GDIBrush WindowText
+ {
+ get { return new GDIBrush(0); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIFont.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIFont.cs
new file mode 100644
index 0000000..7232cef
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIFont.cs
@@ -0,0 +1,83 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using Alsing.Windows;
+
+namespace Alsing.Drawing.GDI
+{
+ public class GDIFont : GDIObject
+ {
+ public bool Bold;
+ public byte Charset;
+ public string FontName;
+ public IntPtr hFont;
+ public bool Italic;
+ public float Size;
+ public bool Strikethrough;
+ public bool Underline;
+
+
+ public GDIFont()
+ {
+ Create();
+ }
+
+ public GDIFont(string fontname, float size)
+ {
+ Init(fontname, size, false, false, false, false);
+ Create();
+ }
+
+ public GDIFont(string fontname, float size, bool bold, bool italic, bool underline, bool strikethrough)
+ {
+ Init(fontname, size, bold, italic, underline, strikethrough);
+ Create();
+ }
+
+ protected void Init(string fontname, float size, bool bold, bool italic, bool underline, bool strikethrough)
+ {
+ FontName = fontname;
+ Size = size;
+ Bold = bold;
+ Italic = italic;
+ Underline = underline;
+ Strikethrough = strikethrough;
+
+ var tFont = new LogFont
+ {
+ lfItalic = ((byte) (Italic ? 1 : 0)),
+ lfStrikeOut = ((byte) (Strikethrough ? 1 : 0)),
+ lfUnderline = ((byte) (Underline ? 1 : 0)),
+ lfWeight = (Bold ? 700 : 400),
+ lfWidth = 0,
+ lfHeight = ((int) (-Size*1.3333333333333)),
+ lfCharSet = 1,
+ lfFaceName = FontName
+ };
+
+
+ hFont = NativeMethods.CreateFontIndirect(tFont);
+ }
+
+ ~GDIFont()
+ {
+ Destroy();
+ }
+
+ protected override void Destroy()
+ {
+ if (hFont != (IntPtr) 0)
+ NativeMethods.DeleteObject(hFont);
+ base.Destroy();
+ hFont = (IntPtr) 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIObject.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIObject.cs
new file mode 100644
index 0000000..1b2b6d2
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIObject.cs
@@ -0,0 +1,41 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+
+namespace Alsing.Drawing.GDI
+{
+ ///
+ /// Summary description for GDIObject.
+ ///
+ public abstract class GDIObject : IDisposable
+ {
+ protected bool IsCreated;
+
+ protected virtual void Destroy()
+ {
+ IsCreated = false;
+ }
+
+ protected void Create()
+ {
+ IsCreated = true;
+ }
+
+ #region Implementation of IDisposable
+
+ public void Dispose()
+ {
+ Destroy();
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIPens.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIPens.cs
new file mode 100644
index 0000000..9ff53c2
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDIPens.cs
@@ -0,0 +1,35 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using Alsing.Windows;
+
+namespace Alsing.Drawing.GDI
+{
+ public class GDIPen : GDIObject
+ {
+ public IntPtr hPen;
+
+ public GDIPen(Color color, int width)
+ {
+ hPen = NativeMethods.CreatePen(0, width, NativeMethods.ColorToInt(color));
+ Create();
+ }
+
+ protected override void Destroy()
+ {
+ if (hPen != (IntPtr) 0)
+ NativeMethods.DeleteObject(hPen);
+ base.Destroy();
+ hPen = (IntPtr) 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDISurface.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDISurface.cs
new file mode 100644
index 0000000..944fc60
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Drawing/GDI32/GDISurface.cs
@@ -0,0 +1,348 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+using Alsing.Windows;
+
+namespace Alsing.Drawing.GDI
+{
+ public class GDISurface : GDIObject
+ {
+ private WeakReference _Control;
+ protected IntPtr _OldBmp = IntPtr.Zero;
+ protected IntPtr _OldBrush = IntPtr.Zero;
+ protected IntPtr _OldFont = IntPtr.Zero;
+ protected IntPtr _OldPen = IntPtr.Zero;
+ protected IntPtr mhBMP;
+ protected IntPtr mhDC;
+ protected int mHeight;
+ protected int mTabSize = 4;
+ protected int mWidth;
+
+ public GDISurface(IntPtr hDC)
+ {
+ mhDC = hDC;
+ }
+
+ public GDISurface(int width, int height, IntPtr hdc)
+ {
+ Init(width, height, hdc);
+ Create();
+ }
+
+ public GDISurface(int width, int height, GDISurface surface)
+ {
+ Init(width, height, surface.hDC);
+ Create();
+ }
+
+
+ public GDISurface(int width, int height, Control CompatibleControl, bool BindControl)
+ {
+ IntPtr hDCControk = NativeMethods.ControlDC(CompatibleControl);
+ Init(width, height, hDCControk);
+ NativeMethods.ReleaseDC(CompatibleControl.Handle, hDCControk);
+
+ if (BindControl)
+ {
+ Control = CompatibleControl;
+ }
+
+ Create();
+ }
+
+ private Control Control
+ {
+ get
+ {
+ if (_Control != null)
+ return (Control) _Control.Target;
+ return null;
+ }
+ set { _Control = new WeakReference(value); }
+ }
+
+
+ public IntPtr hDC
+ {
+ get { return mhDC; }
+ }
+
+ public IntPtr hBMP
+ {
+ get { return mhBMP; }
+ }
+
+ public Color TextForeColor
+ {
+ //map get,settextcolor
+ get { return NativeMethods.IntToColor(NativeMethods.GetTextColor(mhDC)); }
+ set { NativeMethods.SetTextColor(mhDC, NativeMethods.ColorToInt(value)); }
+ }
+
+ public Color TextBackColor
+ {
+ //map get,setbkcolor
+ get { return NativeMethods.IntToColor(NativeMethods.GetBkColor(mhDC)); }
+ set { NativeMethods.SetBkColor(mhDC, NativeMethods.ColorToInt(value)); }
+ }
+
+
+ public bool FontTransparent
+ {
+ //map get,setbkmode
+ //1=transparent , 2=solid
+ get { return NativeMethods.GetBkMode(mhDC) < 2; }
+ set { NativeMethods.SetBkMode(mhDC, value ? 1 : 2); }
+ }
+
+ public GDIFont Font
+ {
+ get
+ {
+ var tm = new GDITextMetric();
+ var fontname = new string(' ', 48);
+
+ NativeMethods.GetTextMetrics(mhDC, ref tm);
+ NativeMethods.GetTextFace(mhDC, 79, fontname);
+
+ var gf = new GDIFont
+ {
+ FontName = fontname,
+ Bold = (tm.tmWeight > 400),
+ Italic = (tm.tmItalic != 0),
+ Underline = (tm.tmUnderlined != 0),
+ Strikethrough = (tm.tmStruckOut != 0),
+ Size = ((int) (((tm.tmMemoryHeight)/(double) tm.tmDigitizedAspectY)*72))
+ };
+
+ return gf;
+ }
+ set
+ {
+ IntPtr res = NativeMethods.SelectObject(mhDC, value.hFont);
+ if (_OldFont == IntPtr.Zero)
+ _OldFont = res;
+ }
+ }
+
+ protected void Init(int width, int height, IntPtr hdc)
+ {
+ mWidth = width;
+ mHeight = height;
+ mhDC = NativeMethods.CreateCompatibleDC(hdc);
+
+ mhBMP = NativeMethods.CreateCompatibleBitmap(hdc, width, height);
+
+ IntPtr ret = NativeMethods.SelectObject(mhDC, mhBMP);
+ _OldBmp = ret;
+
+ if (mhDC == (IntPtr) 0)
+ throw new OutOfMemoryException("hDC creation FAILED!!");
+
+ if (mhDC == (IntPtr) 0)
+ throw new OutOfMemoryException("hBMP creation FAILED!!");
+ }
+
+
+ public Size MeasureString(string Text)
+ {
+ //map GetTabbedTextExtent
+ //to be implemented
+ return new Size(0, 0);
+ }
+
+ public Size MeasureTabbedString(string Text, int tabsize)
+ {
+ int ret = NativeMethods.GetTabbedTextExtent(mhDC, Text, Text.Length, 1, ref tabsize);
+ return new Size(ret & 0xFFFF, (ret >> 16) & 0xFFFF);
+ }
+
+ public void DrawString(string Text, int x, int y, int width, int height)
+ {
+ //to be implemented
+ //map DrawText
+ }
+
+ public Size DrawTabbedString(string Text, int x, int y, int taborigin, int tabsize)
+ {
+ int ret = NativeMethods.TabbedTextOut(mhDC, x, y, Text, Text.Length, 1, ref tabsize, taborigin);
+ return new Size(ret & 0xFFFF, (ret >> 16) & 0xFFFF);
+ }
+
+
+ //---------------------------------------
+ //render methods ,
+ //render to dc ,
+ //render to control
+ //render to gdisurface
+
+ public void RenderTo(IntPtr hdc, int x, int y)
+ {
+ //map bitblt
+ NativeMethods.BitBlt(hdc, x, y, mWidth, mHeight, mhDC, 0, 0, (int) GDIRop.SrcCopy);
+ }
+
+
+ public void RenderTo(GDISurface target, int x, int y)
+ {
+ RenderTo(target.hDC, x, y);
+ }
+
+ public void RenderTo(GDISurface target, int SourceX, int SourceY, int Width, int Height, int DestX, int DestY)
+ {
+ NativeMethods.BitBlt(target.hDC, DestX, DestY, Width, Height, hDC, SourceX, SourceY, (int) GDIRop.SrcCopy);
+ }
+
+ public void RenderToControl(int x, int y)
+ {
+ IntPtr hdc = NativeMethods.ControlDC(Control);
+
+ RenderTo(hdc, x, y);
+ NativeMethods.ReleaseDC(Control.Handle, hdc);
+ }
+
+ //---------------------------------------
+
+ public Graphics CreateGraphics()
+ {
+ return Graphics.FromHdc(mhDC);
+ }
+
+ //---------------------------------------
+
+ public void FillRect(GDIBrush brush, int x, int y, int width, int height)
+ {
+ APIRect gr;
+ gr.top = y;
+ gr.left = x;
+ gr.right = width + x;
+ gr.bottom = height + y;
+
+ NativeMethods.FillRect(mhDC, ref gr, brush.hBrush);
+ }
+
+ public void DrawFocusRect(int x, int y, int width, int height)
+ {
+ APIRect gr;
+ gr.top = y;
+ gr.left = x;
+ gr.right = width + x;
+ gr.bottom = height + y;
+
+ NativeMethods.DrawFocusRect(mhDC, ref gr);
+ }
+
+ public void FillRect(Color color, int x, int y, int width, int height)
+ {
+ var b = new GDIBrush(color);
+ FillRect(b, x, y, width, height);
+ b.Dispose();
+ }
+
+ public void InvertRect(int x, int y, int width, int height)
+ {
+ APIRect gr;
+ gr.top = y;
+ gr.left = x;
+ gr.right = width + x;
+ gr.bottom = height + y;
+
+ NativeMethods.InvertRect(mhDC, ref gr);
+ }
+
+ public void DrawLine(GDIPen pen, Point p1, Point p2)
+ {
+ IntPtr oldpen = NativeMethods.SelectObject(mhDC, pen.hPen);
+ APIPoint gp;
+ gp.x = 0;
+ gp.y = 0;
+ NativeMethods.MoveToEx(mhDC, p1.X, p1.Y, ref gp);
+ NativeMethods.LineTo(mhDC, p2.X, p2.Y);
+ NativeMethods.SelectObject(mhDC, oldpen);
+ }
+
+ public void DrawLine(Color color, Point p1, Point p2)
+ {
+ var p = new GDIPen(color, 1);
+ DrawLine(p, p1, p2);
+ p.Dispose();
+ }
+
+ public void DrawRect(Color color, int left, int top, int width, int height)
+ {
+ var p = new GDIPen(color, 1);
+ DrawRect(p, left, top, width, height);
+ p.Dispose();
+ }
+
+ public void DrawRect(GDIPen pen, int left, int top, int width, int height)
+ {
+ DrawLine(pen, new Point(left, top), new Point(left + width, top));
+ DrawLine(pen, new Point(left, top + height), new Point(left + width, top + height));
+ DrawLine(pen, new Point(left, top), new Point(left, top + height));
+ DrawLine(pen, new Point(left + width, top), new Point(left + width, top + height + 1));
+ }
+
+ public void Clear(Color color)
+ {
+ var b = new GDIBrush(color);
+ Clear(b);
+ b.Dispose();
+ }
+
+ public void Clear(GDIBrush brush)
+ {
+ FillRect(brush, 0, 0, mWidth, mHeight);
+ }
+
+ public void Flush()
+ {
+ NativeMethods.GdiFlush();
+ }
+
+ protected override void Destroy()
+ {
+ if (_OldBmp != IntPtr.Zero)
+ NativeMethods.SelectObject(hDC, _OldBmp);
+
+ if (_OldFont != IntPtr.Zero)
+ NativeMethods.SelectObject(hDC, _OldFont);
+
+ if (_OldPen != IntPtr.Zero)
+ NativeMethods.SelectObject(hDC, _OldPen);
+
+ if (_OldBrush != IntPtr.Zero)
+ NativeMethods.SelectObject(hDC, _OldBrush);
+
+ if (mhBMP != (IntPtr) 0)
+ NativeMethods.DeleteObject(mhBMP);
+
+ if (mhDC != (IntPtr) 0)
+ NativeMethods.DeleteDC(mhDC);
+
+ mhBMP = (IntPtr) 0;
+ mhDC = (IntPtr) 0;
+
+
+ base.Destroy();
+ }
+
+ public void SetBrushOrg(int x, int y)
+ {
+ APIPoint p;
+ p.x = 0;
+ p.y = 0;
+ NativeMethods.SetBrushOrgEx(mhDC, x, y, ref p);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/FlippedCursor.cur b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/FlippedCursor.cur
new file mode 100644
index 0000000..b41c9db
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/FlippedCursor.cur differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Globalization/IMEWindow.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Globalization/IMEWindow.cs
new file mode 100644
index 0000000..8474e5f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Globalization/IMEWindow.cs
@@ -0,0 +1,105 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using Alsing.Windows;
+
+namespace Alsing.Globalization
+{
+ public class IMEWindow
+ {
+ private const int CFS_POINT = 0x0002;
+ private const byte FF_MODERN = 48;
+ private const byte FIXED_PITCH = 1;
+ private const int IMC_SETCOMPOSITIONFONT = 0x000a;
+ private const int IMC_SETCOMPOSITIONWINDOW = 0x000c;
+ private readonly IntPtr hIMEWnd;
+
+ #region ctor
+
+ public IMEWindow(IntPtr hWnd, string fontname, float fontsize)
+ {
+ hIMEWnd = NativeMethods.ImmGetDefaultIMEWnd(hWnd);
+ SetFont(fontname, fontsize);
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY FONT
+
+ private Font _Font;
+
+ public Font Font
+ {
+ get { return _Font; }
+ set
+ {
+ if (_Font.Equals(value) == false)
+ {
+ SetFont(value);
+ _Font = value;
+ }
+ }
+ }
+
+ public void SetFont(Font font)
+ {
+ var lf = new LogFont();
+ font.ToLogFont(lf);
+ lf.lfPitchAndFamily = FIXED_PITCH | FF_MODERN;
+
+ NativeMethods.SendMessage(hIMEWnd, (int) WindowMessage.WM_IME_CONTROL, IMC_SETCOMPOSITIONFONT, lf);
+ }
+
+ public void SetFont(string fontname, float fontsize)
+ {
+ var tFont = new LogFont
+ {
+ lfItalic = 0,
+ lfStrikeOut = 0,
+ lfUnderline = 0,
+ lfWeight = 400,
+ lfWidth = 0,
+ lfHeight = ((int) (-fontsize*1.3333333333333)),
+ lfCharSet = 1,
+ lfPitchAndFamily = (FIXED_PITCH | FF_MODERN),
+ lfFaceName = fontname
+ };
+
+ LogFont lf = tFont;
+
+ NativeMethods.SendMessage(hIMEWnd, (int) WindowMessage.WM_IME_CONTROL, IMC_SETCOMPOSITIONFONT, lf);
+ }
+
+ #endregion
+
+ #region PUBLIC PROPERTY LOATION
+
+ private Point _Loation;
+
+ public Point Loation
+ {
+ get { return _Loation; }
+ set
+ {
+ _Loation = value;
+
+ var p = new APIPoint {x = value.X, y = value.Y};
+
+ var lParam = new COMPOSITIONFORM {dwStyle = CFS_POINT, ptCurrentPos = p, rcArea = new APIRect()};
+
+ NativeMethods.SendMessage(hIMEWnd, (int) WindowMessage.WM_IME_CONTROL, IMC_SETCOMPOSITIONWINDOW, lParam);
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Interfaces/IPainter.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Interfaces/IPainter.cs
new file mode 100644
index 0000000..fa30f2f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Interfaces/IPainter.cs
@@ -0,0 +1,72 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using Alsing.SourceCode;
+
+namespace Alsing.Windows.Forms.SyntaxBox.Painter
+{
+ ///
+ ///
+ ///
+ public interface IPainter : IDisposable
+ {
+ ///
+ /// Measures the length of a specific row in pixels
+ ///
+ Size MeasureRow(Row xtr, int Count);
+
+ ///
+ /// Renders the entire screen
+ ///
+ void RenderAll();
+
+ ///
+ /// Renders the entire screen
+ ///
+ /// Target Graphics object
+ void RenderAll(Graphics g);
+
+ ///
+ /// Renders the caret only
+ ///
+ ///
+ void RenderCaret(Graphics g);
+
+ ///
+ ///
+ ///
+ ///
+ void RenderRow(int RowIndex);
+
+ ///
+ /// Returns a Point (Column,Row in the active document) from the x and y screen pixel positions.
+ ///
+ TextPoint CharFromPixel(int X, int Y);
+
+ ///
+ /// Called by the control to notify the Painter object that the client area has resized.
+ ///
+ void Resize();
+
+ ///
+ /// Called by the control to notify the Painter object that one or more Appearance properties has changed.
+ ///
+ void InitGraphics();
+
+ ///
+ /// Measures the length of a string in pixels
+ ///
+ Size MeasureString(string str);
+
+ int GetMaxCharWidth();
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveDown.cur b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveDown.cur
new file mode 100644
index 0000000..e3c9cb5
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveDown.cur differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUp.cur b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUp.cur
new file mode 100644
index 0000000..135b554
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUp.cur differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUpDown.cur b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUpDown.cur
new file mode 100644
index 0000000..14d9181
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/MoveUpDown.cur differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.Designer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..7852a39
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.Designer.cs
@@ -0,0 +1,112 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3031
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ internal static byte[] FlippedCursor {
+ get {
+ object obj = ResourceManager.GetObject("FlippedCursor", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ internal static byte[] MoveDown {
+ get {
+ object obj = ResourceManager.GetObject("MoveDown", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ internal static byte[] MoveUp {
+ get {
+ object obj = ResourceManager.GetObject("MoveUp", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ internal static byte[] MoveUpDown {
+ get {
+ object obj = ResourceManager.GetObject("MoveUpDown", resourceCulture);
+ return ((byte[])(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap SourceCodePrintDocument {
+ get {
+ object obj = ResourceManager.GetObject("SourceCodePrintDocument", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap SyntaxBoxControl {
+ get {
+ object obj = ResourceManager.GetObject("SyntaxBoxControl", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ internal static System.Drawing.Bitmap SyntaxDocument {
+ get {
+ object obj = ResourceManager.GetObject("SyntaxDocument", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.resx
new file mode 100644
index 0000000..3e91021
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Properties/Resources.resx
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ ..\flippedcursor.cur;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\movedown.cur;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\moveup.cur;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\moveupdown.cur;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ..\Alsing.sourcecode.sourcecodeprintdocument.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Alsing.windows.forms.syntaxboxcontrol.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Alsing.sourcecode.syntaxdocument.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/SyntaxBox.hst b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/SyntaxBox.hst
new file mode 100644
index 0000000..c8cc039
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/SyntaxBox.hst
@@ -0,0 +1,27 @@
+
+
+
+ Fix:
+Selection performance fix.
+ Fix:
+InfoTip display problem in .NET 1.1 fix.
+ Fix:
+AutoList display problem in .NET 1.1 fix.
+ New Feature:
+Extend selection , it is now possible to hold shift and click the text to extend the selection.
+ New Feature:
+drag drop feature , it is now possible to hold shift and copy text while drag dropping.
+ Fix:
+Horizontal scrollbar fix. the horizontal scrollbar maxvalue is now more exact than before.
+ New Feature:
+Disable splitview. it is now possible to remove the splitview.
+ New Feature:
+Scrollbars , it is now possible to show/hide the scrollbars.
+ New Feature:
+BreakPoint events . the SyntaxDocument will now raise BreakPointAdd and BreakPointRemoved when breakpoints are added/removed.
+ New Feature:
+Bookmark events . the SyntaxDocument will now raise BookmarkAdd and BookmarkRemoved when bookmarks are added/removed.
+ Fix:
+Multi Monitor support. infotips and autolistsare now working with multi monitor settings.
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/BinPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/BinPatternMatcher.cs
new file mode 100644
index 0000000..8d607c9
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/BinPatternMatcher.cs
@@ -0,0 +1,47 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that matches binary tokens
+ ///
+ public class BinPatternMatcher : PatternMatcherBase
+ {
+ public static readonly BinPatternMatcher Default = new BinPatternMatcher();
+ //perform the match
+
+ //patterns that trigger this matcher
+ public override string[] DefaultPrefixes
+ {
+ get { return new[] {"0", "1"}; }
+ }
+
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ int currentIndex = matchAtIndex;
+ do
+ {
+ char currentChar = textToMatch[currentIndex];
+ if (currentChar == '0' || currentChar == '1')
+ {
+ //current char is hexchar
+ }
+ else
+ {
+ break;
+ }
+ currentIndex++;
+ } while (currentIndex < textToMatch.Length);
+
+ return currentIndex - matchAtIndex;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/DecPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/DecPatternMatcher.cs
new file mode 100644
index 0000000..2a9ec19
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/DecPatternMatcher.cs
@@ -0,0 +1,56 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that matches culture invariant decimal values
+ ///
+ public class DecPatternMatcher : PatternMatcherBase
+ {
+ public static readonly DecPatternMatcher Default = new DecPatternMatcher();
+
+ //perform the match
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ // matchAtIndex --;
+ int currentIndex = matchAtIndex;
+ bool comma = false;
+ do
+ {
+ char currentChar = textToMatch[currentIndex];
+ if (currentChar >= '0' && currentChar <= '9')
+ {
+ //current char is hexchar
+ }
+ else if (currentChar == '.' && comma == false)
+ {
+ comma = true;
+ }
+ else
+ {
+ break;
+ }
+ currentIndex++;
+ } while (currentIndex < textToMatch.Length);
+
+ return currentIndex - matchAtIndex;
+ }
+
+// //patterns that trigger this matcher
+// public override string[] DefaultPrefixes
+// {
+// get
+// {
+// return new string[] {};//"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "."};
+// }
+// }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/HexPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/HexPatternMatcher.cs
new file mode 100644
index 0000000..827942e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/HexPatternMatcher.cs
@@ -0,0 +1,42 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that matches case insensitive hex values
+ ///
+ public class HexPatternMatcher : PatternMatcherBase
+ {
+ public static readonly HexPatternMatcher Default = new HexPatternMatcher();
+
+ //perform the match
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ int currentIndex = matchAtIndex;
+ do
+ {
+ char currentChar = textToMatch[currentIndex];
+ if ((currentChar >= '0' && currentChar <= '9') || (currentChar >= 'a' && currentChar <= 'f') ||
+ (currentChar >= 'A' && currentChar <= 'F'))
+ {
+ //current char is hexchar
+ }
+ else
+ {
+ break;
+ }
+ currentIndex++;
+ } while (currentIndex < textToMatch.Length);
+
+ return currentIndex - matchAtIndex;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IPatternMatcher.cs
new file mode 100644
index 0000000..e55b14e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IPatternMatcher.cs
@@ -0,0 +1,21 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ ///
+ ///
+ public interface IPatternMatcher
+ {
+ string[] DefaultPrefixes { get; }
+ int Match(string textToMatch, int matchAtIndex);
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IntPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IntPatternMatcher.cs
new file mode 100644
index 0000000..614f914
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/IntPatternMatcher.cs
@@ -0,0 +1,49 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that matches culture invariant integer values
+ ///
+ public class IntPatternMatcher : PatternMatcherBase
+ {
+ public static readonly IntPatternMatcher Default = new IntPatternMatcher();
+
+ //perform the match
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ int currentIndex = matchAtIndex;
+ do
+ {
+ char currentChar = textToMatch[currentIndex];
+ if (currentChar >= '0' && currentChar <= '9')
+ {
+ //current char is hexchar
+ }
+ else
+ {
+ break;
+ }
+ currentIndex++;
+ } while (currentIndex < textToMatch.Length);
+
+ return currentIndex - matchAtIndex;
+ }
+
+ //public override string[] DefaultPrefixes
+ //{
+ // get
+ // {
+ // return new[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+ // }
+ //}
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PatternMatcherBase.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PatternMatcherBase.cs
new file mode 100644
index 0000000..bb3fe2d
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PatternMatcherBase.cs
@@ -0,0 +1,32 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Base implementation for pattern matchers
+ ///
+ public abstract class PatternMatcherBase : IPatternMatcher
+ {
+ #region IPatternMatcher Members
+
+ public virtual int Match(string textToMatch, int matchAtIndex)
+ {
+ return 0;
+ }
+
+ public virtual string[] DefaultPrefixes
+ {
+ get { return null; }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PropertyPathPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PropertyPathPatternMatcher.cs
new file mode 100644
index 0000000..b9a746c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/PropertyPathPatternMatcher.cs
@@ -0,0 +1,84 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that matches a propertypath
+ ///
+ public class PropertyPathPatterhMatcher : PatternMatcherBase
+ {
+ //perform the match
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ bool start = true;
+
+ int currentIndex = matchAtIndex;
+ do
+ {
+ char currentChar = textToMatch[currentIndex];
+ if (start && IsValidStartChar(currentChar))
+ {
+ start = false;
+ }
+ else if (start && IsWildcard(currentChar))
+ {
+ currentIndex++;
+ break;
+ }
+ else if (!start && IsSeparator(currentChar))
+ {
+ start = true;
+ }
+ else if (!start && IsValidChar(currentChar)) {}
+ else
+ {
+ break;
+ }
+ currentIndex++;
+ } while (currentIndex < textToMatch.Length);
+
+ if (textToMatch.Substring(matchAtIndex, currentIndex - matchAtIndex) == "*")
+ return 0;
+
+ return currentIndex - matchAtIndex;
+ }
+
+
+ private static bool IsWildcard(char c)
+ {
+ return c == '*' || c == '¤';
+ }
+
+ private static bool IsSeparator(char c)
+ {
+ return c == '.';
+ }
+
+ private static bool IsValidStartChar(char c)
+ {
+ if (CharUtils.IsLetter(c))
+ return true;
+
+ if ("_@".IndexOf(c) >= 0)
+ return true;
+
+ return false;
+ }
+
+ private static bool IsValidChar(char c)
+ {
+ if (CharUtils.IsLetterOrDigit(c) || c == '_')
+ return true;
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegexPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegexPatternMatcher.cs
new file mode 100644
index 0000000..41c5c5e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegexPatternMatcher.cs
@@ -0,0 +1,101 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Alsing.Text.PatternMatchers
+{
+ ///
+ /// Pattern matcher that allows regex patterns to be matched
+ ///
+ public class RegexPatternMatcher : PatternMatcherBase
+ {
+ private Regex regEx;
+
+ public RegexPatternMatcher()
+ {
+ PatternChanged += RegexPatternMatcher_PatternChanged;
+ }
+
+ public RegexPatternMatcher(string pattern) : this()
+ {
+ Pattern = pattern;
+ }
+
+ #region PUBLIC PROPERTY PATTERN (+PATTERNCHANGED EVENT)
+
+ private string pattern;
+
+ ///
+ /// Gets or Sets the Pattern property
+ ///
+ public string Pattern
+ {
+ get { return pattern; }
+ set
+ {
+ //Ignore same value
+ if (pattern == value)
+ return;
+
+ //Set the new value
+ pattern = value;
+
+ //Raise the changed event
+ OnPatternChanged(EventArgs.Empty);
+ }
+ }
+
+ #region PUBLIC EVENT PATTERNCHANGED
+
+ ///
+ /// Fires when the 'Pattern' Property changes
+ ///
+ public event EventHandler PatternChanged = null;
+
+ ///
+ /// Raises the PatternChanged Event
+ ///
+ /// EventArgs
+ protected virtual void OnPatternChanged(EventArgs e)
+ {
+ if (PatternChanged != null)
+ PatternChanged(this, e);
+ }
+
+ #endregion //END PUBLIC EVENT PATTERNCHANGED
+
+ #endregion //END PUBLIC PROPERTY PATTERN (+PATTERNCHANGED EVENT)
+
+ //perform the match
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ if (regEx == null)
+ return 0;
+
+ Match match = regEx.Match(textToMatch, matchAtIndex);
+
+ if (match.Success)
+ {
+ return match.Length;
+ }
+
+ return 0;
+ }
+
+ private void RegexPatternMatcher_PatternChanged(object sender, EventArgs e)
+ {
+ const RegexOptions options = RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.Singleline;
+
+ regEx = new Regex(string.Format(@"\G({0})", pattern), options);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegionPatternMatcher.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegionPatternMatcher.cs
new file mode 100644
index 0000000..6fbb6f3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/PatternMatchers/RegionPatternMatcher.cs
@@ -0,0 +1,66 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ public class RangePatternMatcher : PatternMatcherBase
+ {
+ public RangePatternMatcher(char quote)
+ {
+ StartChar = quote;
+ EndChar = quote;
+ }
+
+ public RangePatternMatcher(char start, char end)
+ {
+ StartChar = start;
+ EndChar = end;
+ }
+
+ public RangePatternMatcher(char start, char end, char escape)
+ {
+ StartChar = start;
+ EndChar = end;
+ EscapeChar = escape;
+ }
+
+ public override string[] DefaultPrefixes
+ {
+ get { return new[] {StartChar.ToString()}; }
+ }
+
+ public char StartChar { get; set; }
+ public char EndChar { get; set; }
+ public char EscapeChar { get; set; }
+
+ public override int Match(string textToMatch, int matchAtIndex)
+ {
+ int length = 0;
+ int textLength = textToMatch.Length;
+
+ while (matchAtIndex + length != textLength)
+ {
+ if (textToMatch[matchAtIndex + length] == EndChar &&
+ (matchAtIndex + length < textLength - 1 && textToMatch[matchAtIndex + length + 1] == EndChar))
+ {
+ length++;
+ }
+ else if (textToMatch[matchAtIndex + length] == EndChar &&
+ (matchAtIndex + length == textLength - 1 || textToMatch[matchAtIndex + length + 1] != EndChar))
+ return length + 1;
+
+ length++;
+ }
+
+
+ return 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/ReadMe.txt b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/ReadMe.txt
new file mode 100644
index 0000000..5995d19
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/ReadMe.txt
@@ -0,0 +1,6 @@
+The Alsing.Text namespace contains my old DFA tokenizer.
+This is not documented and there are no samples other than the usage in Alsing Framework - NPath
+
+Documentation and samples will come in time ;-)
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/CharUtils.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/CharUtils.cs
new file mode 100644
index 0000000..c291d91
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/CharUtils.cs
@@ -0,0 +1,137 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System.Globalization;
+
+namespace Alsing.Text
+{
+ //(c) WE WASTE MEMORY 2004
+ public class CharUtils
+ {
+ private static bool[] isLetterLookup;
+ private static bool[] isLetterOrDigitLookup;
+ private static char[] lowerCharLookup;
+ private static bool[] separatorCharLookup;
+ private static char[] upperCharLookup;
+
+ public static bool[] IsLetterOrDigitLookup
+ {
+ get
+ {
+ if (isLetterOrDigitLookup == null)
+ {
+ isLetterOrDigitLookup = new bool[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ isLetterOrDigitLookup[i] = char.IsLetterOrDigit((char) i);
+ }
+ }
+
+ return isLetterOrDigitLookup;
+ }
+ }
+
+ public static bool[] IsLetterLookup
+ {
+ get
+ {
+ if (isLetterLookup == null)
+ {
+ isLetterLookup = new bool[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ isLetterLookup[i] = char.IsLetter((char) i);
+ }
+ }
+
+ return isLetterLookup;
+ }
+ }
+
+ public static bool[] SeparatorCharLookup
+ {
+ get
+ {
+ if (separatorCharLookup == null)
+ {
+ separatorCharLookup = new bool[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ separatorCharLookup[i] = char.IsSeparator((char) i);
+ }
+ }
+
+ return separatorCharLookup;
+ }
+ }
+
+ public static char[] LowerCharLookup
+ {
+ get
+ {
+ if (lowerCharLookup == null)
+ {
+ lowerCharLookup = new char[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ lowerCharLookup[i] = char.ToLower((char) i, CultureInfo.InvariantCulture);
+ }
+ }
+
+ return lowerCharLookup;
+ }
+ }
+
+ public static char[] UpperCharLookup
+ {
+ get
+ {
+ if (upperCharLookup == null)
+ {
+ upperCharLookup = new char[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ upperCharLookup[i] = char.ToUpper((char) i, CultureInfo.InvariantCulture);
+ }
+ }
+
+ return upperCharLookup;
+ }
+ }
+
+ //This is 4.5 times faster than a standard char.ToUpper
+ public static char ToUpper(char c)
+ {
+ return UpperCharLookup[c];
+ }
+
+ //This is 4.5 times faster than a standard char.ToLower
+ public static char ToLower(char c)
+ {
+ return LowerCharLookup[c];
+ }
+
+ //This is 2.4 times faster than a standard char.IsSeparator
+ public static bool IsSeparator(char c)
+ {
+ return SeparatorCharLookup[c];
+ }
+
+ public static bool IsLetter(char c)
+ {
+ return IsLetterLookup[c];
+ }
+
+ public static bool IsLetterOrDigit(char c)
+ {
+ return IsLetterOrDigitLookup[c];
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/MatchResult.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/MatchResult.cs
new file mode 100644
index 0000000..27894e2
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/MatchResult.cs
@@ -0,0 +1,49 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text
+{
+ public struct MatchResult
+ {
+ public bool Found;
+ public int Index;
+ public int Length;
+ public object[] Tags;
+ public string Text;
+
+ public static MatchResult NoMatch
+ {
+ get
+ {
+ var result = new MatchResult {Found = false};
+ return result;
+ }
+ }
+
+ public override string ToString()
+ {
+ if (Found == false)
+ return "no match"; // do not localize
+
+ if (Tags != null)
+ return Tags + " " + Index + " " + Length;
+
+ return "MatchResult";
+ }
+
+ public string GetText()
+ {
+ if (Text != null)
+ return Text.Substring(Index, Length);
+
+ return "";
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/PatternMatchReference.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/PatternMatchReference.cs
new file mode 100644
index 0000000..2265519
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/PatternMatchReference.cs
@@ -0,0 +1,25 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+namespace Alsing.Text.PatternMatchers
+{
+ public class PatternMatchReference
+ {
+ public IPatternMatcher Matcher;
+ public bool NeedSeparators;
+ public PatternMatchReference NextSibling;
+ public object[] Tags;
+
+ public PatternMatchReference(IPatternMatcher matcher)
+ {
+ Matcher = matcher;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Token.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Token.cs
new file mode 100644
index 0000000..673f47f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Token.cs
@@ -0,0 +1,29 @@
+using System;
+
+namespace Alsing.Text
+{
+ public sealed class Token
+ {
+ public Token(string text, object[] tags)
+ {
+ if (tags == null)
+ tags = new object[0];
+
+ Text = text;
+ Tags = tags;
+ }
+
+ public string Text { get; private set; }
+ public object[] Tags { get; private set; }
+
+ public override string ToString()
+ {
+ return Text;
+ }
+
+ public bool HasTag(object tag)
+ {
+ return Array.IndexOf(Tags, tag) >= 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-API.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-API.cs
new file mode 100644
index 0000000..3195970
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-API.cs
@@ -0,0 +1,59 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using Alsing.Text.PatternMatchers;
+
+namespace Alsing.Text
+{
+ public partial class TokenTree
+ {
+ public void AddPattern(IPatternMatcher matcher, bool caseSensitive, bool needSeparators, object[] tags)
+ {
+ if (matcher == null)
+ throw new ArgumentNullException("matcher");
+
+ AddPattern(null, matcher, caseSensitive, needSeparators, tags);
+ }
+
+ public void AddPattern(string prefix, IPatternMatcher matcher, bool caseSensitive, bool needSeparators,
+ object[] tags)
+ {
+ if (string.IsNullOrEmpty(prefix))
+ {
+ AddPatternWithoutPrefix(matcher, caseSensitive, needSeparators, tags);
+ }
+ else if (caseSensitive)
+ {
+ AddPatternWithCaseSensitivePrefix(prefix, matcher, needSeparators, tags);
+ }
+ else
+ {
+ AddPatternWithCaseInsensitivePrefix(prefix, matcher, needSeparators, tags);
+ }
+ }
+
+
+ public void AddToken(string text, bool caseSensitive, bool needSeparators, object[] tags)
+ {
+ if (string.IsNullOrEmpty(text))
+ throw new ArgumentNullException(text);
+
+ if (caseSensitive)
+ {
+ AddCaseSensitiveToken(text, needSeparators, tags);
+ }
+ else
+ {
+ AddCaseInsensitiveToken(text, needSeparators, tags);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-Util.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-Util.cs
new file mode 100644
index 0000000..0084d04
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree-Util.cs
@@ -0,0 +1,105 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using Alsing.Text.PatternMatchers;
+
+namespace Alsing.Text
+{
+ public partial class TokenTree
+ {
+ private void AddCaseInsensitiveToken(string text, bool needSeparators, object[] tags)
+ {
+ //make a lowercase string and add it as a token
+ text = text.ToLower();
+ char startChar = text[0];
+ int startIndex = startChar;
+
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddToken(text, false, needSeparators, tags);
+
+ //make a lowercase string with a uppercase start char and add it as a token
+ text = char.ToUpper(startChar) + text.Substring(1);
+ startChar = text[0];
+ startIndex = startChar;
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddToken(text, false, needSeparators, tags);
+ }
+
+ private void AddCaseSensitiveToken(string text, bool needSeparators, object[] tags)
+ {
+ char startChar = text[0];
+ int startIndex = startChar;
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddToken(text, true, needSeparators, tags);
+ }
+
+ private void AddPatternWithCaseInsensitivePrefix(string prefix, IPatternMatcher matcher, bool needSeparators,
+ object[] tags)
+ {
+ //make a lowercase string and add it as a token
+ prefix = prefix.ToLower();
+ char startChar = prefix[0];
+ int startIndex = startChar;
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddPattern(prefix, false, needSeparators, matcher, tags);
+
+ //make a lowercase string with a uppercase start char and add it as a token
+ prefix = char.ToUpper(startChar) + prefix.Substring(1);
+ startChar = prefix[0];
+ startIndex = startChar;
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddPattern(prefix, false, needSeparators, matcher, tags);
+ }
+
+ private void AddPatternWithCaseSensitivePrefix(string prefix, IPatternMatcher matcher, bool needSeparators,
+ object[] tags)
+ {
+ char startChar = prefix[0];
+ int startIndex = startChar;
+ if (nodes[startIndex] == null)
+ nodes[startIndex] = new TokenTreeNode();
+
+ nodes[startIndex].AddPattern(prefix, true, needSeparators, matcher, tags);
+ }
+
+ private void AddPatternWithoutPrefix(IPatternMatcher matcher, bool caseSensitive, bool needSeparators,
+ object[] tags)
+ {
+ if (matcher.DefaultPrefixes != null)
+ {
+ foreach (string defaultPrefix in matcher.DefaultPrefixes)
+ {
+ AddPattern(defaultPrefix, matcher, caseSensitive, needSeparators, tags);
+ }
+ }
+ else
+ {
+ var patternMatcherReference = new PatternMatchReference(matcher)
+ {
+ Tags = tags,
+ NextSibling = root.FirstExpression,
+ NeedSeparators = needSeparators
+ };
+
+ root.FirstExpression = patternMatcherReference;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree.cs
new file mode 100644
index 0000000..643ca81
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTree.cs
@@ -0,0 +1,194 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using Alsing.Text.PatternMatchers;
+
+namespace Alsing.Text
+{
+ public partial class TokenTree
+ {
+ private readonly TokenTreeNode[] nodes;
+ private readonly TokenTreeNode root;
+ private readonly char[] textLookup;
+ private bool[] separatorCharLookup;
+
+ public TokenTree()
+ {
+ nodes = new TokenTreeNode[65536];
+ Separators = ".,;:<>[](){}!\"#¤%&/=?*+-/\\ \t\n\r";
+ textLookup = new char[65536];
+ for (int i = 0; i < 65536; i++)
+ {
+ textLookup[i] = (char) i;
+ }
+ textLookup['\t'] = ' ';
+
+ root = new TokenTreeNode();
+ }
+
+ #region PUBLIC PROPERTY SEPARATORS
+
+ private string separators;
+
+ public string Separators
+ {
+ get { return separators; }
+ set
+ {
+ separators = value;
+ separatorCharLookup = new bool[65536]; //initialize all to false
+ foreach (char separatorChar in value)
+ {
+ separatorCharLookup[separatorChar] = true;
+ }
+ }
+ }
+
+ #endregion //END PUBLIC PROPERTY SEPARATORS
+
+ //this is wicked fast
+ //do not refactor extract methods from this if you want to keep the speed
+ public MatchResult Match(string text, int startIndex)
+ {
+ if (string.IsNullOrEmpty(text))
+ throw new ArgumentNullException(text);
+
+ var lastMatch = new MatchResult {Text = text};
+ int textLength = text.Length;
+
+ for (int currentIndex = startIndex; currentIndex < textLength; currentIndex ++)
+ {
+ //call any prefixless patternmatchers
+
+ #region HasExpressions
+
+ if (root.FirstExpression != null)
+ {
+ //begin with the first expression of the _root node_
+ PatternMatchReference patternMatcherReference = root.FirstExpression;
+ while (patternMatcherReference != null)
+ {
+ int patternMatchIndex = patternMatcherReference.Matcher.Match(text, currentIndex);
+ if (patternMatchIndex > 0 && patternMatchIndex > lastMatch.Length)
+ {
+ bool leftIsSeparator = currentIndex == 0
+ ? true
+ : separatorCharLookup[text[currentIndex - 1]];
+ bool rightIsSeparator = (currentIndex + patternMatchIndex) == textLength
+ ? true
+ : separatorCharLookup[text[currentIndex + patternMatchIndex]];
+
+ if (!patternMatcherReference.NeedSeparators || (leftIsSeparator && rightIsSeparator))
+ {
+ lastMatch.Index = currentIndex;
+ lastMatch.Length = patternMatchIndex;
+ lastMatch.Found = true;
+ lastMatch.Tags = patternMatcherReference.Tags;
+ }
+ }
+
+ patternMatcherReference = patternMatcherReference.NextSibling;
+ }
+ }
+
+ #endregion
+
+ //lookup the first token tree node
+ TokenTreeNode node = nodes[text[currentIndex]];
+ if (node == null)
+ {
+ if (lastMatch.Found)
+ break;
+
+ continue;
+ }
+
+
+ for (int matchIndex = currentIndex + 1; matchIndex <= textLength; matchIndex++)
+ {
+ //call patternmatchers for the current prefix
+
+ #region HasExpressions
+
+ if (node.FirstExpression != null)
+ {
+ //begin with the first expression of the _current node_
+ PatternMatchReference patternMatcherReference = node.FirstExpression;
+ while (patternMatcherReference != null)
+ {
+ int patternMatchIndex = patternMatcherReference.Matcher.Match(text, matchIndex);
+ if (patternMatchIndex > 0 && patternMatchIndex > lastMatch.Length)
+ {
+ bool leftIsSeparator = currentIndex == 0
+ ? true
+ : separatorCharLookup[text[currentIndex - 1]];
+ bool rightIsSeparator = (currentIndex + patternMatchIndex + matchIndex) == textLength
+ ? true
+ : separatorCharLookup[
+ text[currentIndex + patternMatchIndex + matchIndex]];
+
+ if (!patternMatcherReference.NeedSeparators || (leftIsSeparator && rightIsSeparator))
+ {
+ lastMatch.Index = currentIndex;
+ lastMatch.Length = patternMatchIndex + matchIndex - currentIndex;
+ lastMatch.Found = true;
+ lastMatch.Tags = patternMatcherReference.Tags;
+ }
+ }
+
+ patternMatcherReference = patternMatcherReference.NextSibling;
+ }
+ }
+
+ #endregion
+
+ #region IsEndNode
+
+ if (node.IsEnd && matchIndex - currentIndex >= lastMatch.Length)
+ {
+ bool leftIsSeparator = currentIndex == 0 ? true : separatorCharLookup[text[currentIndex - 1]];
+ bool rightIsSeparator = matchIndex == textLength ? true : separatorCharLookup[text[matchIndex]];
+
+ if (!node.NeedSeparators || (leftIsSeparator && rightIsSeparator))
+ {
+ lastMatch.Index = currentIndex;
+ lastMatch.Tags = node.Tags;
+ lastMatch.Found = true;
+ lastMatch.Length = matchIndex - currentIndex;
+ //TODO:perform case test here , case sensitive words might be matched even if they have incorrect case
+ if (currentIndex + lastMatch.Length == textLength)
+ break;
+ }
+ }
+
+ #endregion
+
+ //try fetch a node at this index
+ node = node.GetNextNode(textLookup[text[matchIndex]]);
+
+ //we found no node on the lookupindex or none of the siblingnodes at that index matched the current char
+ if (node == null)
+ break; // continue with the next character
+ }
+
+ //return last match
+ if (lastMatch.Found)
+ return lastMatch;
+ }
+
+ if (lastMatch.Found)
+ return lastMatch;
+
+ //no match was found
+ return MatchResult.NoMatch;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTreeNode.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTreeNode.cs
new file mode 100644
index 0000000..7cf9d71
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/TokenTreeNode.cs
@@ -0,0 +1,168 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.rogeralsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using Alsing.Text.PatternMatchers;
+
+namespace Alsing.Text
+{
+ public class TokenTreeNode
+ {
+ public bool CaseSensitive = true;
+ public char Char = char.MinValue;
+ public TokenTreeNode[] ChildNodes;
+ public bool ContainsCaseInsensitiveData;
+ public long Count;
+ public PatternMatchReference FirstExpression;
+ public bool IsEnd;
+ public bool NeedSeparators;
+ public TokenTreeNode NextSibling;
+ public object[] Tags;
+
+ public TokenTreeNode()
+ {
+ ChildNodes = new TokenTreeNode[256];
+ }
+
+ public override string ToString()
+ {
+ if (Tags != null)
+ return Tags.ToString();
+
+ return "TokenTreeNode " + Char; // do not localize
+ }
+
+ public void AddPattern(string prefix, bool caseSensitive, bool needSeparators, IPatternMatcher matcher,
+ object[] tags)
+ {
+ if (string.IsNullOrEmpty(prefix))
+ throw new ArgumentNullException("prefix");
+
+ TokenTreeNode node = AddTokenInternal(prefix, caseSensitive);
+
+ var patternMatcherReference = new PatternMatchReference(matcher)
+ {NextSibling = FirstExpression, Tags = tags, NeedSeparators = needSeparators};
+
+ node.FirstExpression = patternMatcherReference;
+ }
+
+ public void AddPattern(bool caseSensitive, bool needSeparators, IPatternMatcher matcher, object[] tags)
+ {
+ var patternMatcherReference = new PatternMatchReference(matcher)
+ {NextSibling = FirstExpression, Tags = tags, NeedSeparators = needSeparators};
+
+ FirstExpression = patternMatcherReference;
+ }
+
+ public void AddToken(string token, bool caseSensitive, bool needSeparators, object[] tags)
+ {
+ if (string.IsNullOrEmpty(token))
+ throw new ArgumentNullException("token");
+
+ TokenTreeNode node = AddTokenInternal(token, caseSensitive);
+ node.IsEnd = true;
+ node.Tags = tags;
+ node.NeedSeparators = needSeparators;
+ node.CaseSensitive = caseSensitive;
+ }
+
+ public TokenTreeNode AddTokenInternal(string token, bool caseSensitive)
+ {
+ Char = token[0];
+
+
+ if (!caseSensitive)
+ ContainsCaseInsensitiveData = true;
+
+ if (token.Length == 1)
+ return this;
+
+ string leftovers = token.Substring(1);
+ char childChar = leftovers[0];
+ int childIndex = childChar & 0xff;
+ //make a lookupindex (dont mind if unicode chars end up as siblings as ascii)
+
+ TokenTreeNode node = ChildNodes[childIndex];
+ TokenTreeNode res;
+ if (node == null)
+ {
+ var child = new TokenTreeNode();
+ ChildNodes[childIndex] = child;
+ res = child.AddTokenInternal(leftovers, caseSensitive);
+
+ MakeRepeatingWS(child);
+ }
+ else
+ {
+ node = GetMatchingNode(childChar, node);
+ res = node.AddTokenInternal(leftovers, caseSensitive);
+ }
+
+ return res;
+ }
+
+ private static void MakeRepeatingWS(TokenTreeNode child)
+ {
+ if (child.Char == ' ')
+ {
+ // if the node contains " " (whitespace)
+ // then add the node as a childnode of itself.
+ // thus allowing it to parse things like
+ // "end sub" even if the pattern is "end sub" // do not localize
+ child.ChildNodes[' '] = child;
+ }
+ }
+
+ private static TokenTreeNode GetMatchingNode(char childChar, TokenTreeNode node)
+ {
+ //find a bucket with the same childChar as we need
+ while (node.NextSibling != null && node.Char != childChar)
+ {
+ node = node.NextSibling;
+ }
+
+ if (node.Char != childChar)
+ {
+ var child = new TokenTreeNode();
+ node.NextSibling = child;
+ return child;
+ }
+ return node;
+ }
+
+ public TokenTreeNode GetNextNode(char c)
+ {
+ char tmp = c;
+ //if case sensitive, to lower
+ if (ContainsCaseInsensitiveData)
+ tmp = CharUtils.ToLower(c);
+
+ //hash the index
+ int index = tmp & 0xff;
+
+ //get node at index
+ TokenTreeNode node = ChildNodes[index];
+
+ while (node != null)
+ {
+ tmp = c;
+ if (node.ContainsCaseInsensitiveData)
+ tmp = CharUtils.ToLower(c);
+
+ if (node.Char == tmp)
+ break;
+
+ node = node.NextSibling;
+ }
+
+ return node;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Tokenizer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Tokenizer.cs
new file mode 100644
index 0000000..1af7a3b
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Text/Tokenizer/Tokenizer.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using Alsing.Text.PatternMatchers;
+
+namespace Alsing.Text
+{
+ public class Tokenizer
+ {
+ private readonly TokenTree tree;
+
+ public Tokenizer()
+ {
+ tree = new TokenTree();
+ }
+
+ public bool IsImmutable { get; private set; }
+
+ public string Text { get; set; }
+
+ public Tokenizer AddPattern(IPatternMatcher matcher, bool caseSensitive, bool needsSeparators,
+ params object[] tags)
+ {
+ ThrowIfImmutable();
+
+ tree.AddPattern(matcher, caseSensitive, needsSeparators, tags);
+ return this;
+ }
+
+ public Tokenizer AddToken(string token, bool caseSensitive, bool needsSeparators, params object[] tags)
+ {
+ ThrowIfImmutable();
+
+ tree.AddToken(token, caseSensitive, needsSeparators, tags);
+ return this;
+ }
+
+ public Token[] Tokenize()
+ {
+ if (Text == null)
+ throw new ArgumentNullException("Text");
+
+ MakeImmutable();
+
+ var tokens = new List();
+
+ int index = 0;
+ while (index < Text.Length)
+ {
+ MatchResult match = tree.Match(Text, index);
+
+ if (match.Found)
+ {
+ string dummyText = Text.Substring(index, match.Index - index);
+ var dummyToken = new Token(dummyText, null);
+ tokens.Add(dummyToken);
+
+ var realToken = new Token(match.GetText(), match.Tags);
+ index = match.Index + match.Length;
+ tokens.Add(realToken);
+ }
+ else
+ {
+ string dummyText = Text.Substring(index);
+ var dummyToken = new Token(dummyText, null);
+ tokens.Add(dummyToken);
+
+ index = Text.Length;
+ }
+ }
+
+ return tokens.ToArray();
+ }
+
+ private void ThrowIfImmutable()
+ {
+ if (IsImmutable)
+ throw new Exception("Tokens can not be added to an immutable tokenizer");
+ }
+
+ public void MakeImmutable()
+ {
+ IsImmutable = true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/Enums.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/Enums.cs
new file mode 100644
index 0000000..54fc170
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/Enums.cs
@@ -0,0 +1,762 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+
+namespace Alsing.Windows
+{
+
+ #region WINDOWPOS
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct WINDOWPOS
+ {
+ public IntPtr hwnd;
+ public IntPtr hwndInsertAfter;
+ public int x;
+ public int y;
+ public int cx;
+ public int cy;
+ public uint flags;
+ }
+
+ #endregion
+
+ #region _NCCALCSIZE_PARAMS
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct _NCCALCSIZE_PARAMS
+ {
+ public APIRect NewRect;
+ public APIRect OldRect;
+ public APIRect OldClientRect;
+
+ public WINDOWPOS lppos;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct MyStruct
+ {
+ public int SomeValue;
+ public byte b1;
+ public byte b2;
+ public byte b3;
+ public byte b4;
+ public byte b5;
+ public byte b6;
+ public byte b7;
+ public byte b8;
+ }
+
+ #endregion
+
+ public enum WindowStylesEx
+ {
+ WS_EX_DLGMODALFRAME = 0x00000001,
+ WS_EX_NOPARENTNOTIFY = 0x00000004,
+ WS_EX_TOPMOST = 0x00000008,
+ WS_EX_ACCEPTFILES = 0x00000010,
+ WS_EX_TRANSPARENT = 0x00000020,
+
+ WS_EX_MDICHILD = 0x00000040,
+ WS_EX_TOOLWINDOW = 0x00000080,
+ WS_EX_WINDOWEDGE = 0x00000100,
+ WS_EX_CLIENTEDGE = 0x00000200,
+ WS_EX_CONTEXTHELP = 0x00000400,
+
+ WS_EX_RIGHT = 0x00001000,
+ WS_EX_LEFT = 0x00000000,
+ WS_EX_RTLREADING = 0x00002000,
+ WS_EX_LTRREADING = 0x00000000,
+ WS_EX_LEFTSCROLLBAR = 0x00004000,
+ WS_EX_RIGHTSCROLLBAR = 0x00000000,
+
+ WS_EX_CONTROLPARENT = 0x00010000,
+ WS_EX_STATICEDGE = 0x00020000,
+ WS_EX_APPWINDOW = 0x00040000,
+ }
+
+ public enum WindowStyles
+ {
+ WS_OVERLAPPED = 0x00000000,
+ WS_POPUP = unchecked((int) 0x80000000),
+ WS_CHILD = 0x40000000,
+ WS_MINIMIZE = 0x20000000,
+ WS_VISIBLE = 0x10000000,
+ WS_DISABLED = 0x08000000,
+ WS_CLIPSIBLINGS = 0x04000000,
+ WS_CLIPCHILDREN = 0x02000000,
+ WS_MAXIMIZE = 0x01000000,
+ WS_CAPTION = 0x00C00000,
+ WS_BORDER = 0x00800000,
+ WS_DLGFRAME = 0x00400000,
+ WS_VSCROLL = 0x00200000,
+ WS_HSCROLL = 0x00100000,
+ WS_SYSMENU = 0x00080000,
+ WS_THICKFRAME = 0x00040000,
+ WS_GROUP = 0x00020000,
+ WS_TABSTOP = 0x00010000,
+ WS_MINIMIZEBOX = 0x00020000,
+ WS_MAXIMIZEBOX = 0x00010000,
+ WS_TILED = WS_OVERLAPPED,
+ WS_ICONIC = WS_MINIMIZE,
+ WS_SIZEBOX = WS_THICKFRAME,
+ }
+
+ public enum DrawTextFlags
+ {
+ DT_TOP = 0x00000000,
+ DT_LEFT = 0x00000000,
+ DT_CENTER = 0x00000001,
+ DT_RIGHT = 0x00000002,
+ DT_VCENTER = 0x00000004,
+ DT_BOTTOM = 0x00000008,
+ DT_WORDBREAK = 0x00000010,
+ DT_SINGLELINE = 0x00000020,
+ DT_EXPANDTABS = 0x00000040,
+ DT_TABSTOP = 0x00000080,
+ DT_NOCLIP = 0x00000100,
+ DT_EXTERNALLEADING = 0x00000200,
+ DT_CALCRECT = 0x00000400,
+ DT_NOPREFIX = 0x00000800,
+ DT_INTERNAL = 0x00001000,
+ DT_EDITCONTROL = 0x00002000,
+ DT_PATH_ELLIPSIS = 0x00004000,
+ DT_END_ELLIPSIS = 0x00008000,
+ DT_MODIFYSTRING = 0x00010000,
+ DT_RTLREADING = 0x00020000,
+ DT_WORD_ELLIPSIS = 0x00040000,
+ DT_NOFULLWIDTHCHARBREAK = 0x00080000,
+ DT_HIDEPREFIX = 0x00100000,
+ DT_PREFIXONLY = 0x00200000,
+ }
+
+ public enum TextBoxNotifications
+ {
+ EN_SETFOCUS = 0x0100,
+ EN_KILLFOCUS = 0x0200,
+ EN_CHANGE = 0x0300,
+ EN_UPDATE = 0x0400,
+ EN_ERRSPACE = 0x0500,
+ EN_MAXTEXT = 0x0501,
+ EN_HSCROLL = 0x0601,
+ EN_VSCROLL = 0x0602,
+ }
+
+ public enum TextBoxStyles
+ {
+ ES_LEFT = 0x0000,
+ ES_CENTER = 0x0001,
+ ES_RIGHT = 0x0002,
+ ES_MULTILINE = 0x0004,
+ ES_UPPERCASE = 0x0008,
+ ES_LOWERCASE = 0x0010,
+ ES_PASSWORD = 0x0020,
+ ES_AUTOVSCROLL = 0x0040,
+ ES_AUTOHSCROLL = 0x0080,
+ ES_NOHIDESEL = 0x0100,
+ ES_OEMCONVERT = 0x0400,
+ ES_READONLY = 0x0800,
+ ES_WANTRETURN = 0x1000,
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct APIPoint
+ {
+ public int x;
+ public int y;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct APIRect
+ {
+ public int left;
+ public int top;
+ public int right;
+ public int bottom;
+
+ public int Width
+ {
+ get { return right - left; }
+ }
+
+ public int Height
+ {
+ get { return bottom - top; }
+ }
+
+ public APIRect(Rectangle rect)
+ {
+ bottom = rect.Bottom;
+ left = rect.Left;
+ right = rect.Right;
+ top = rect.Top;
+ }
+
+ public APIRect(int left, int top, int right, int bottom)
+ {
+ this.bottom = bottom;
+ this.left = left;
+ this.right = right;
+ this.top = top;
+ }
+ }
+
+ #region HitTest
+
+ public enum HitTest
+ {
+ HTERROR = (-2),
+ HTTRANSPARENT = (-1),
+ HTNOWHERE = 0,
+ HTCLIENT = 1,
+ HTCAPTION = 2,
+ HTSYSMENU = 3,
+ HTGROWBOX = 4,
+ HTSIZE = HTGROWBOX,
+ HTMENU = 5,
+ HTHSCROLL = 6,
+ HTVSCROLL = 7,
+ HTMINBUTTON = 8,
+ HTMAXBUTTON = 9,
+ HTLEFT = 10,
+ HTRIGHT = 11,
+ HTTOP = 12,
+ HTTOPLEFT = 13,
+ HTTOPRIGHT = 14,
+ HTBOTTOM = 15,
+ HTBOTTOMLEFT = 16,
+ HTBOTTOMRIGHT = 17,
+ HTBORDER = 18,
+ HTREDUCE = HTMINBUTTON,
+ HTZOOM = HTMAXBUTTON,
+ HTSIZEFIRST = HTLEFT,
+ HTSIZELAST = HTBOTTOMRIGHT,
+ HTOBJECT = 19,
+ HTCLOSE = 20,
+ HTHELP = 21
+ }
+
+ #endregion
+
+ public enum TextBoxMessages
+ {
+ EM_GETSEL = 0x00B0,
+ EM_LINEINDEX = 0x00BB,
+ EM_LINEFROMCHAR = 0x00C9,
+ EM_POSFROMCHAR = 0x00D6,
+ }
+
+ [Flags]
+ public enum WMPrintFlags
+ {
+ PRF_CHECKVISIBLE = 0x00000001,
+ PRF_NONCLIENT = 0x00000002,
+ PRF_CLIENT = 0x00000004,
+ PRF_ERASEBKGND = 0x00000008,
+ PRF_CHILDREN = 0x00000010,
+ PRF_OWNED = 0x0000020,
+ }
+
+ public enum WindowMessage
+ {
+ WM_NULL = 0x0000,
+ WM_CREATE = 0x0001,
+ WM_DESTROY = 0x0002,
+ WM_MOVE = 0x0003,
+ WM_SIZE = 0x0005,
+ WM_ACTIVATE = 0x0006,
+ WM_SETFOCUS = 0x0007,
+ WM_KILLFOCUS = 0x0008,
+ WM_ENABLE = 0x000A,
+ WM_SETREDRAW = 0x000B,
+ WM_SETTEXT = 0x000C,
+ WM_GETTEXT = 0x000D,
+ WM_GETTEXTLENGTH = 0x000E,
+ WM_PAINT = 0x000F,
+ WM_CLOSE = 0x0010,
+ WM_QUERYENDSESSION = 0x0011,
+ WM_QUIT = 0x0012,
+ WM_QUERYOPEN = 0x0013,
+ WM_ERASEBKGND = 0x0014,
+ WM_SYSCOLORCHANGE = 0x0015,
+ WM_ENDSESSION = 0x0016,
+ WM_SHOWWINDOW = 0x0018,
+ WM_CTLCOLOR = 0x0019,
+ WM_WININICHANGE = 0x001A,
+ WM_SETTINGCHANGE = 0x001A,
+ WM_DEVMODECHANGE = 0x001B,
+ WM_ACTIVATEAPP = 0x001C,
+ WM_FONTCHANGE = 0x001D,
+ WM_TIMECHANGE = 0x001E,
+ WM_CANCELMODE = 0x001F,
+ WM_SETCURSOR = 0x0020,
+ WM_MOUSEACTIVATE = 0x0021,
+ WM_CHILDACTIVATE = 0x0022,
+ WM_QUEUESYNC = 0x0023,
+ WM_GETMINMAXINFO = 0x0024,
+ WM_PAINTICON = 0x0026,
+ WM_ICONERASEBKGND = 0x0027,
+ WM_NEXTDLGCTL = 0x0028,
+ WM_SPOOLERSTATUS = 0x002A,
+ WM_DRAWITEM = 0x002B,
+ WM_MEASUREITEM = 0x002C,
+ WM_DELETEITEM = 0x002D,
+ WM_VKEYTOITEM = 0x002E,
+ WM_CHARTOITEM = 0x002F,
+ WM_SETFONT = 0x0030,
+ WM_GETFONT = 0x0031,
+ WM_SETHOTKEY = 0x0032,
+ WM_GETHOTKEY = 0x0033,
+ WM_QUERYDRAGICON = 0x0037,
+ WM_COMPAREITEM = 0x0039,
+ WM_GETOBJECT = 0x003D,
+ WM_COMPACTING = 0x0041,
+ WM_COMMNOTIFY = 0x0044,
+ WM_WINDOWPOSCHANGING = 0x0046,
+ WM_WINDOWPOSCHANGED = 0x0047,
+ WM_POWER = 0x0048,
+ WM_COPYDATA = 0x004A,
+ WM_CANCELJOURNAL = 0x004B,
+ WM_NOTIFY = 0x004E,
+ WM_INPUTLANGCHANGEREQUEST = 0x0050,
+ WM_INPUTLANGCHANGE = 0x0051,
+ WM_TCARD = 0x0052,
+ WM_HELP = 0x0053,
+ WM_USERCHANGED = 0x0054,
+ WM_NOTIFYFORMAT = 0x0055,
+ WM_CONTEXTMENU = 0x007B,
+ WM_STYLECHANGING = 0x007C,
+ WM_STYLECHANGED = 0x007D,
+ WM_DISPLAYCHANGE = 0x007E,
+ WM_GETICON = 0x007F,
+ WM_SETICON = 0x0080,
+ WM_NCCREATE = 0x0081,
+ WM_NCDESTROY = 0x0082,
+ WM_NCCALCSIZE = 0x0083,
+ WM_NCHITTEST = 0x0084,
+ WM_NCPAINT = 0x0085,
+ WM_NCACTIVATE = 0x0086,
+ WM_GETDLGCODE = 0x0087,
+ WM_SYNCPAINT = 0x0088,
+ WM_NCMOUSEMOVE = 0x00A0,
+ WM_NCLBUTTONDOWN = 0x00A1,
+ WM_NCLBUTTONUP = 0x00A2,
+ WM_NCLBUTTONDBLCLK = 0x00A3,
+ WM_NCRBUTTONDOWN = 0x00A4,
+ WM_NCRBUTTONUP = 0x00A5,
+ WM_NCRBUTTONDBLCLK = 0x00A6,
+ WM_NCMBUTTONDOWN = 0x00A7,
+ WM_NCMBUTTONUP = 0x00A8,
+ WM_NCMBUTTONDBLCLK = 0x00A9,
+ WM_KEYDOWN = 0x0100,
+ WM_KEYUP = 0x0101,
+ WM_CHAR = 0x0102,
+ WM_DEADCHAR = 0x0103,
+ WM_SYSKEYDOWN = 0x0104,
+ WM_SYSKEYUP = 0x0105,
+ WM_SYSCHAR = 0x0106,
+ WM_SYSDEADCHAR = 0x0107,
+ WM_KEYLAST = 0x0108,
+ WM_IME_STARTCOMPOSITION = 0x010D,
+ WM_IME_ENDCOMPOSITION = 0x010E,
+ WM_IME_COMPOSITION = 0x010F,
+ WM_IME_KEYLAST = 0x010F,
+ WM_INITDIALOG = 0x0110,
+ WM_Element = 0x0111,
+ WM_COMMAND = 0x0111,
+ WM_SYSElement = 0x0112,
+ WM_TIMER = 0x0113,
+ WM_HSCROLL = 0x0114,
+ WM_VSCROLL = 0x0115,
+ WM_INITMENU = 0x0116,
+ WM_INITMENUPOPUP = 0x0117,
+ WM_MENUSELECT = 0x011F,
+ WM_MENUCHAR = 0x0120,
+ WM_ENTERIDLE = 0x0121,
+ WM_MENURBUTTONUP = 0x0122,
+ WM_MENUDRAG = 0x0123,
+ WM_MENUGETOBJECT = 0x0124,
+ WM_UNINITMENUPOPUP = 0x0125,
+ WM_MENUElement = 0x0126,
+ WM_CTLCOLORMSGBOX = 0x0132,
+ WM_CTLCOLOREDIT = 0x0133,
+ WM_CTLCOLORLISTBOX = 0x0134,
+ WM_CTLCOLORBTN = 0x0135,
+ WM_CTLCOLORDLG = 0x0136,
+ WM_CTLCOLORSCROLLBAR = 0x0137,
+ WM_CTLCOLORSTATIC = 0x0138,
+ WM_MOUSEMOVE = 0x0200,
+ WM_LBUTTONDOWN = 0x0201,
+ WM_LBUTTONUP = 0x0202,
+ WM_LBUTTONDBLCLK = 0x0203,
+ WM_RBUTTONDOWN = 0x0204,
+ WM_RBUTTONUP = 0x0205,
+ WM_RBUTTONDBLCLK = 0x0206,
+ WM_MBUTTONDOWN = 0x0207,
+ WM_MBUTTONUP = 0x0208,
+ WM_MBUTTONDBLCLK = 0x0209,
+ WM_MOUSEWHEEL = 0x020A,
+ WM_PARENTNOTIFY = 0x0210,
+ WM_ENTERMENULOOP = 0x0211,
+ WM_EXITMENULOOP = 0x0212,
+ WM_NEXTMENU = 0x0213,
+ WM_SIZING = 0x0214,
+ WM_CAPTURECHANGED = 0x0215,
+ WM_MOVING = 0x0216,
+ WM_DEVICECHANGE = 0x0219,
+ WM_MDICREATE = 0x0220,
+ WM_MDIDESTROY = 0x0221,
+ WM_MDIACTIVATE = 0x0222,
+ WM_MDIRESTORE = 0x0223,
+ WM_MDINEXT = 0x0224,
+ WM_MDIMAXIMIZE = 0x0225,
+ WM_MDITILE = 0x0226,
+ WM_MDICASCADE = 0x0227,
+ WM_MDIICONARRANGE = 0x0228,
+ WM_MDIGETACTIVE = 0x0229,
+ WM_MDISETMENU = 0x0230,
+ WM_ENTERSIZEMOVE = 0x0231,
+ WM_EXITSIZEMOVE = 0x0232,
+ WM_DROPFILES = 0x0233,
+ WM_MDIREFRESHMENU = 0x0234,
+ WM_IME_SETCONTEXT = 0x0281,
+ WM_IME_NOTIFY = 0x0282,
+ WM_IME_CONTROL = 0x0283,
+ WM_IME_COMPOSITIONFULL = 0x0284,
+ WM_IME_SELECT = 0x0285,
+ WM_IME_CHAR = 0x0286,
+ WM_IME_REQUEST = 0x0288,
+ WM_IME_KEYDOWN = 0x0290,
+ WM_IME_KEYUP = 0x0291,
+ WM_MOUSEHOVER = 0x02A1,
+ WM_MOUSELEAVE = 0x02A3,
+ WM_CUT = 0x0300,
+ WM_COPY = 0x0301,
+ WM_PASTE = 0x0302,
+ WM_CLEAR = 0x0303,
+ WM_UNDO = 0x0304,
+ WM_RENDERFORMAT = 0x0305,
+ WM_RENDERALLFORMATS = 0x0306,
+ WM_DESTROYCLIPBOARD = 0x0307,
+ WM_DRAWCLIPBOARD = 0x0308,
+ WM_PAINTCLIPBOARD = 0x0309,
+ WM_VSCROLLCLIPBOARD = 0x030A,
+ WM_SIZECLIPBOARD = 0x030B,
+ WM_ASKCBFORMATNAME = 0x030C,
+ WM_CHANGECBCHAIN = 0x030D,
+ WM_HSCROLLCLIPBOARD = 0x030E,
+ WM_QUERYNEWPALETTE = 0x030F,
+ WM_PALETTEISCHANGING = 0x0310,
+
+ WM_PALETTECHANGED = 0x0311,
+ WM_HOTKEY = 0x0312,
+ WM_PRINT = 0x0317,
+ WM_PRINTCLIENT = 0x0318,
+ WM_HANDHELDFIRST = 0x0358,
+ WM_HANDHELDLAST = 0x035F,
+ WM_AFXFIRST = 0x0360,
+ WM_AFXLAST = 0x037F,
+ WM_PENWINFIRST = 0x0380,
+ WM_PENWINLAST = 0x038F,
+ WM_APP = 0x8000,
+ WM_USER = 0x0400,
+ WM_REFLECT = WM_USER + 0x1c00,
+ WM_THEMECHANGED = 794,
+ }
+
+
+ public enum GDIRop
+ {
+ SrcCopy = 13369376,
+ Blackness = 0, //to be implemented
+ Whiteness = 0
+ }
+
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct GDITextMetric
+ {
+ public int tmMemoryHeight;
+ public int tmAscent;
+ public int tmDescent;
+ public int tmInternalLeading;
+ public int tmExternalLeading;
+ public int tmAveCharWidth;
+ public int tmMaxCharWidth;
+ public int tmWeight;
+ public int tmOverhang;
+ public int tmDigitizedAspectX;
+ public int tmDigitizedAspectY;
+ public byte tmFirstChar;
+ public byte tmLastChar;
+ public byte tmDefaultChar;
+ public byte tmBreakChar;
+ public byte tmItalic;
+ public byte tmUnderlined;
+ public byte tmStruckOut;
+ public byte tmPitchAndFamily;
+ public byte tmCharSet;
+ }
+
+ // public IntPtr Fontname;
+
+ [StructLayout(LayoutKind.Sequential)]
+ public class ENUMLOGFONTEX
+ {
+ public LogFont elfLogFont;
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] public string elfFullName = "";
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] elfStyle;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] elfScript;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public class COMPOSITIONFORM
+ {
+ public int dwStyle;
+ public APIPoint ptCurrentPos;
+ public APIRect rcArea;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public class LogFont
+ {
+ public int lfHeight;
+ public int lfWidth;
+ public int lfEscapement;
+ public int lfOrientation;
+ public int lfWeight;
+ public byte lfItalic;
+ public byte lfUnderline;
+ public byte lfStrikeOut;
+ public byte lfCharSet;
+ public byte lfOutPrecision;
+ public byte lfClipPrecision;
+ public byte lfQuality;
+ public byte lfPitchAndFamily;
+
+ [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] public string lfFaceName = "";
+ }
+
+// public enum VirtualKeys
+// {
+// VK_LBUTTON = 0x01,
+// VK_RBUTTON =0x02,
+// VK_CANCEL =0x03,
+// VK_MBUTTON =0x04 ,
+// VK_XBUTTON1 =0x05,
+// VK_XBUTTON2 =0x06,
+// VK_BACK =0x08 ,
+// VK_TAB =0x09,
+// — 0A–0B Reserved
+// VK_CLEAR 0C CLEAR key
+// VK_RETURN 0D ENTER key
+// — 0E–0F Undefined
+// VK_SHIFT 10 SHIFT key
+// VK_CONTROL 11 CTRL key
+// VK_MENU 12 ALT key
+// VK_PAUSE 13 PAUSE key
+// VK_CAPITAL 14 CAPS LOCK key
+// VK_KANA 15 IME Kana mode
+// VK_HANGUEL 15 IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
+// VK_HANGUL 15 IME Hangul mode
+// — 16 Undefined
+// VK_JUNJA 17 IME Junja mode
+// VK_FINAL 18 IME final mode
+// VK_HANJA 19 IME Hanja mode
+// VK_KANJI 19 IME Kanji mode
+// — 1A Undefined
+// VK_ESCAPE 1B ESC key
+// VK_CONVERT 1C IME convert
+// VK_NONCONVERT 1D IME nonconvert
+// VK_ACCEPT 1E IME accept
+// VK_MODECHANGE 1F IME mode change request
+// VK_SPACE 20 SPACEBAR
+// VK_PRIOR 21 PAGE UP key
+// VK_NEXT 22 PAGE DOWN key
+// VK_END 23 END key
+// VK_HOME 24 HOME key
+// VK_LEFT 25 LEFT ARROW key
+// VK_UP 26 UP ARROW key
+// VK_RIGHT 27 RIGHT ARROW key
+// VK_DOWN 28 DOWN ARROW key
+// VK_SELECT 29 SELECT key
+// VK_PRINT 2A PRINT key
+// VK_EXECUTE 2B EXECUTE key
+// VK_SNAPSHOT 2C PRINT SCREEN key
+// VK_INSERT 2D INS key
+// VK_DELETE 2E DEL key
+// VK_HELP 2F HELP key
+// 30 0 key
+// 31 1 key
+// 32 2 key
+// 33 3 key
+// 34 4 key
+// 35 5 key
+// 36 6 key
+// 37 7 key
+// 38 8 key
+// 39 9 key
+// — 3A–40 Undefined
+// 41 A key
+// 42 B key
+// 43 C key
+// 44 D key
+// 45 E key
+// 46 F key
+// 47 G key
+// 48 H key
+// 49 I key
+// 4A J key
+// 4B K key
+// 4C L key
+// 4D M key
+// 4E N key
+// 4F O key
+// 50 P key
+// 51 Q key
+// 52 R key
+// 53 S key
+// 54 T key
+// 55 U key
+// 56 V key
+// 57 W key
+// 58 X key
+// 59 Y key
+// 5A Z key
+// VK_LWIN 5B Left Windows key (Microsoft® Natural® keyboard)
+// VK_RWIN 5C Right Windows key (Natural keyboard)
+// VK_APPS 5D Applications key (Natural keyboard)
+// — 5E Reserved
+// VK_SLEEP 5F Computer Sleep key
+// VK_NUMPAD0 60 Numeric keypad 0 key
+// VK_NUMPAD1 61 Numeric keypad 1 key
+// VK_NUMPAD2 62 Numeric keypad 2 key
+// VK_NUMPAD3 63 Numeric keypad 3 key
+// VK_NUMPAD4 64 Numeric keypad 4 key
+// VK_NUMPAD5 65 Numeric keypad 5 key
+// VK_NUMPAD6 66 Numeric keypad 6 key
+// VK_NUMPAD7 67 Numeric keypad 7 key
+// VK_NUMPAD8 68 Numeric keypad 8 key
+// VK_NUMPAD9 69 Numeric keypad 9 key
+// VK_MULTIPLY 6A Multiply key
+// VK_ADD 6B Add key
+// VK_SEPARATOR 6C Separator key
+// VK_SUBTRACT 6D Subtract key
+// VK_DECIMAL 6E Decimal key
+// VK_DIVIDE 6F Divide key
+// VK_F1 70 F1 key
+// VK_F2 71 F2 key
+// VK_F3 72 F3 key
+// VK_F4 73 F4 key
+// VK_F5 74 F5 key
+// VK_F6 75 F6 key
+// VK_F7 76 F7 key
+// VK_F8 77 F8 key
+// VK_F9 78 F9 key
+// VK_F10 79 F10 key
+// VK_F11 7A F11 key
+// VK_F12 7B F12 key
+// VK_F13 7C F13 key
+// VK_F14 7D F14 key
+// VK_F15 7E F15 key
+// VK_F16 7F F16 key
+// VK_F17 80H F17 key
+// VK_F18 81H F18 key
+// VK_F19 82H F19 key
+// VK_F20 83H F20 key
+// VK_F21 84H F21 key
+// VK_F22 85H F22 key
+// VK_F23 86H F23 key
+// VK_F24 87H F24 key
+// — 88–8F Unassigned
+// VK_NUMLOCK 90 NUM LOCK key
+// VK_SCROLL 91 SCROLL LOCK key
+// 92–96 OEM specific
+// — 97–9F Unassigned
+// VK_LSHIFT A0 Left SHIFT key
+// VK_RSHIFT A1 Right SHIFT key
+// VK_LCONTROL A2 Left CONTROL key
+// VK_RCONTROL A3 Right CONTROL key
+// VK_LMENU A4 Left MENU key
+// VK_RMENU A5 Right MENU key
+// VK_BROWSER_BACK A6 Windows 2000/XP: Browser Back key
+// VK_BROWSER_FORWARD A7 Windows 2000/XP: Browser Forward key
+// VK_BROWSER_REFRESH A8 Windows 2000/XP: Browser Refresh key
+// VK_BROWSER_STOP A9 Windows 2000/XP: Browser Stop key
+// VK_BROWSER_SEARCH AA Windows 2000/XP: Browser Search key
+// VK_BROWSER_FAVORITES AB Windows 2000/XP: Browser Favorites key
+// VK_BROWSER_HOME AC Windows 2000/XP: Browser Start and Home key
+// VK_VOLUME_MUTE AD Windows 2000/XP: Volume Mute key
+// VK_VOLUME_DOWN AE Windows 2000/XP: Volume Down key
+// VK_VOLUME_UP AF Windows 2000/XP: Volume Up key
+// VK_MEDIA_NEXT_TRACK B0 Windows 2000/XP: Next Track key
+// VK_MEDIA_PREV_TRACK B1 Windows 2000/XP: Previous Track key
+// VK_MEDIA_STOP B2 Windows 2000/XP: Stop Media key
+// VK_MEDIA_PLAY_PAUSE B3 Windows 2000/XP: Play/Pause Media key
+// VK_LAUNCH_MAIL B4 Windows 2000/XP: Start Mail key
+// VK_LAUNCH_MEDIA_SELECT B5 Windows 2000/XP: Select Media key
+// VK_LAUNCH_APP1 B6 Windows 2000/XP: Start Application 1 key
+// VK_LAUNCH_APP2 B7 Windows 2000/XP: Start Application 2 key
+// — B8-B9 Reserved
+// VK_OEM_1 BA Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the ';:' key
+//
+// VK_OEM_PLUS BB Windows 2000/XP: For any country/region, the '+' key
+// VK_OEM_COMMA BC Windows 2000/XP: For any country/region, the ',' key
+// VK_OEM_MINUS BD Windows 2000/XP: For any country/region, the '-' key
+// VK_OEM_PERIOD BE Windows 2000/XP: For any country/region, the '.' key
+// VK_OEM_2 BF Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the '/?' key
+//
+// VK_OEM_3 C0 Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the '`~' key
+//
+// — C1–D7 Reserved
+// — D8–DA Unassigned
+// VK_OEM_4 DB Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the '[{' key
+//
+// VK_OEM_5 DC Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the '\|' key
+//
+// VK_OEM_6 DD Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the ']}' key
+//
+// VK_OEM_7 DE Used for miscellaneous characters; it can vary by keyboard.
+// Windows 2000/XP: For the US standard keyboard, the 'single-quote/double-quote' key
+//
+// VK_OEM_8 DF Used for miscellaneous characters; it can vary by keyboard.
+// — E0 Reserved
+// E1 OEM specific
+// VK_OEM_102 E2 Windows 2000/XP: Either the angle bracket key or the backslash key on the RT 102-key keyboard
+// E3–E4 OEM specific
+// VK_PROCESSKEY E5 Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: IME PROCESS key
+// E6 OEM specific
+// VK_PACKET E7 Windows 2000/XP: Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
+// — E8 Unassigned
+// E9–F5 OEM specific
+// VK_ATTN F6 Attn key
+// VK_CRSEL F7 CrSel key
+// VK_EXSEL F8 ExSel key
+// VK_EREOF F9 Erase EOF key
+// VK_PLAY FA Play key
+// VK_ZOOM FB Zoom key
+// VK_NONAME FC Reserved for future use
+// VK_PA1 FD PA1 key
+// VK_OEM_CLEAR FE Clear key
+//
+// }
+
+
+ public delegate int FONTENUMPROC(ENUMLOGFONTEX f, int lpntme, int FontType, int lParam);
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeMethods.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeMethods.cs
new file mode 100644
index 0000000..aad3a12
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeMethods.cs
@@ -0,0 +1,375 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Drawing;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+namespace Alsing.Windows
+{
+ public static class NativeMethods
+ {
+ public const int GWL_STYLE = -16;
+ public const int WS_CHILD = 0x40000000;
+
+ #region uxTheme.dll
+
+ [DllImport("uxtheme.dll", SetLastError = true, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr OpenThemeData(IntPtr hwnd, [MarshalAs(UnmanagedType.LPWStr)] string pszClassList);
+
+ [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CloseThemeData(IntPtr hTheme);
+
+ [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern bool IsThemeActive();
+
+ [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int DrawThemeBackground(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId,
+ ref APIRect rect, ref APIRect clipRect);
+
+ [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int DrawThemeText(IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, string pszText,
+ int iCharCount, uint dwTextFlags, uint dwTextFlags2,
+ [MarshalAs(UnmanagedType.Struct)] ref APIRect rect);
+
+ [DllImport("uxtheme.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetThemeColor(IntPtr hTheme, int iPartId, int iStateId, int iPropId, out ulong color);
+
+ /*
+ [DllImportAttribute( "uxtheme.dll")]
+ public static extern void GetThemeBackgroundContentRect( int hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pBoundingRect, ref RECT pContentRect );
+
+ [DllImportAttribute( "uxtheme.dll" )]
+ public static extern void GetThemeBackgroundExtent( int hTheme, IntPtr hdc, int iPartId, int iStateId, ref RECT pContentRect, ref RECT pExtentRect );
+
+ [DllImportAttribute( "uxtheme.dll")]
+ public static extern uint GetThemePartSize( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, IntPtr prc, int sizeType, out SIZE psz );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern uint GetThemeTextExtent( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, string pszText, int iCharCount, uint dwTextFlags, [MarshalAs( UnmanagedType.Struct )] ref RECT pBoundingRect, out RECT pExtentRect );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeTextMetrics( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, out TEXTMETRIC ptm );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeBackgroundRegion( IntPtr hTheme, int iPartId, int iStateId, RECT pRect, out IntPtr pRegion );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong HitTestThemeBackground( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, ulong dwOptions, RECT pRect, IntPtr hrgn, POINT ptTest, out uint wHitTestCode );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong DrawThemeLine( IntPtr hTheme, IntPtr hdc, int iStateId, RECT pRect, ulong dwDtlFlags );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong DrawThemeEdge( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, RECT pDestRect, uint uEdge, uint uFlags, out RECT contentRect );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong DrawThemeBorder( IntPtr hTheme, IntPtr hdc, int iStateId, RECT pRect );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong DrawThemeIcon( IntPtr hTheme, IntPtr hdc, int iPartId, int iStateId, RECT pRect, IntPtr himl, int iImageIndex );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern bool IsThemePartDefined( IntPtr hTheme, int iPartId, int iStateId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern bool IsThemeBackgroundPartiallyTransparent( IntPtr hTheme, int iPartId, int iStateId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern int GetThemeColor( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out ulong color );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeMetric( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out int iVal );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeString( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out string pszBuff, int cchMaxBuffChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeBool( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out bool fVal );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeInt( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out int iVal );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeEnumValue( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out int iVal );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemePosition( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out POINT point );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeFont( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out LOGFONT font );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeRect( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out RECT pRect );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeMargins( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out MARGINS margins );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeIntList( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out INTLIST intList );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemePropertyOrigin( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out int origin );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong SetWindowTheme( IntPtr hwnd, string pszSubAppName, string pszSubIdList );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeFilename( IntPtr hTheme, int iPartId, int iStateId, int iPropId, out string pszThemeFileName, int cchMaxBuffChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeSysColor( IntPtr hTheme, int iColorId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern IntPtr GetThemeSysColorBrush( IntPtr hTheme, int iColorId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern int GetThemeSysSize( IntPtr hTheme, int iSizeId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern bool GetThemeSysBool( IntPtr hTheme, int iBoolId );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeSysFont( IntPtr hTheme, int iFontId, out LOGFONT lf );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeSysString( IntPtr hTheme, int iStringId, out string pszStringBuff, int cchMaxStringChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeSysInt( IntPtr hTheme, int iIntId, out int iValue );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern bool IsAppThemed();
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern IntPtr GetWindowTheme( IntPtr hwnd );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong EnableThemeDialogTexture( IntPtr hwnd, bool fEnable );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern bool IsThemeDialogTextureEnabled( IntPtr hwnd );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeAppProperties();
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern void SetThemeAppProperties( ulong dwFlags );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetCurrentThemeName( out string pszThemeFileName, int cchMaxNameChars, out string pszColorBuff, int cchMaxColorChars, out string pszSizeBuff, int cchMaxSizeChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeDocumentationProperty( string pszThemeName, string pszPropertyName, out string pszValueBuff, int cchMaxValChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeLastErrorContext( out THEME_ERROR_CONTEXT context );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong FormatThemeMessage( ulong dwLanguageId, THEME_ERROR_CONTEXT context, out string pszMessageBuff, int cchMaxMessageChars );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern ulong GetThemeImageFromParent( IntPtr hwnd, IntPtr hdc, RECT rc );
+
+ [DllImportAttribute( "uxtheme.dll", CharSet=CharSet.Auto )]
+ public static extern IntPtr DrawThemeParentBackground( IntPtr hwnd, IntPtr hdc, ref RECT prc );
+*/
+
+ #endregion
+
+ [DllImport("imm32.dll")]
+ public static extern IntPtr ImmGetDefaultIMEWnd(IntPtr hWnd);
+
+ [DllImport("user32.dll")]
+ public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, COMPOSITIONFORM lParam);
+
+ [DllImport("user32.dll")]
+ public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, LogFont lParam);
+
+ [DllImport("user32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int DrawText(IntPtr hDC, string lpString, int nCount, ref APIRect Rect, int wFormat);
+
+
+ [DllImport("gdi32", SetLastError = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+ public static extern int EnumFontFamiliesEx(IntPtr hDC, [MarshalAs(UnmanagedType.LPStruct)] LogFont lf,
+ FONTENUMPROC proc, Int64 LParam, Int64 DW);
+
+ [DllImport("shlwapi.dll", SetLastError = true)]
+ public static extern int SHAutoComplete(IntPtr hWnd, UInt32 flags);
+
+ [DllImport("user32.dll")]
+ public static extern IntPtr GetDesktopWindow();
+
+ [DllImport("user32.DLL")]
+ public static extern IntPtr GetWindowRect(IntPtr hWND, ref APIRect Rect);
+
+ [DllImport("user32.dll", EntryPoint = "SendMessage")]
+ public static extern int SendMessage(IntPtr hWND, int message, int WParam, int LParam);
+
+ [DllImport("user32.dll")]
+ public static extern bool ReleaseCapture();
+
+ [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetBkColor(IntPtr hDC, int crColor);
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetBkMode(IntPtr hDC, int Mode);
+
+ [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr ReleaseDC(IntPtr hWND, IntPtr hDC);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr DeleteDC(IntPtr hDC);
+
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr GdiFlush();
+
+ [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr GetWindowDC(IntPtr hWND);
+
+ [DllImport("user32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr GetDC(IntPtr hWND);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, int nHeight);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreateCompatibleDC(IntPtr hDC);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr DeleteObject(IntPtr hObject);
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetTextColor(IntPtr hDC);
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetTextColor(IntPtr hDC, int crColor);
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetBkColor(IntPtr hDC);
+
+
+ [DllImport("gdi32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetBkMode(IntPtr hDC);
+
+ [DllImport("user32", SetLastError = false, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall
+ )]
+ public static extern int DrawFocusRect(IntPtr hDC, ref APIRect rect);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreateSolidBrush(int crColor);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int Rectangle(IntPtr hDC, int left, int top, int right, int bottom);
+
+ [DllImport("gdi32.DLL", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreateHatchBrush(int Style, int crColor);
+
+ [DllImport("user32.DLL", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int TabbedTextOut(IntPtr hDC, int x, int y, string lpString, int nCount, int nTabPositions,
+ ref int lpnTabStopPositions, int nTabOrigin);
+
+ [DllImport("gdi32.dll", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr BitBlt(IntPtr hDestDC, int x, int y, int nWidth, int nHeight, IntPtr hSrcDC,
+ int xSrc, int ySrc, int dwRop);
+
+ [DllImport("user32.dll", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int FillRect(IntPtr hDC, ref APIRect rect, IntPtr hBrush);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetTextFace(IntPtr hDC, int nCount, string lpFacename);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int GetTextMetrics(IntPtr hDC, ref GDITextMetric TextMetric);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreateFontIndirect([MarshalAs(UnmanagedType.LPStruct)] LogFont LogFont);
+
+ [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
+ public static extern int GetTabbedTextExtent(IntPtr hDC, string lpString, int nCount, int nTabPositions,
+ ref int lpnTabStopPositions);
+
+ [DllImport("user32.dll", SetLastError = false, CharSet = CharSet.Auto,
+ CallingConvention = CallingConvention.StdCall)]
+ public static extern int InvertRect(IntPtr hDC, ref APIRect rect);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreatePen(int nPenStyle, int nWidth, int crColor);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int SetBrushOrgEx(IntPtr hDC, int x, int y, ref APIPoint p);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr CreatePatternBrush(IntPtr hBMP);
+
+ [DllImport("User32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern int ShowWindow(IntPtr hWnd, short cmdShow);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr MoveToEx(IntPtr hDC, int x, int y, ref APIPoint lpPoint);
+
+ [DllImport("gdi32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern IntPtr LineTo(IntPtr hDC, int x, int y);
+
+ [DllImport("user32", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern UInt16 GetAsyncKeyState(int vKey);
+
+ public static bool IsKeyPressed(Keys k)
+ {
+ int s = GetAsyncKeyState((int) k);
+ s = (s & 0x8000) >> 15;
+ return (s == 1);
+ }
+
+
+ //---------------------------------------
+ //helper , return DC of a control
+ public static IntPtr ControlDC(Control control)
+ {
+ return GetDC(control.Handle);
+ }
+
+ //---------------------------------------
+
+ //---------------------------------------
+ //helper , convert from and to colors from int values
+ public static int ColorToInt(Color color)
+ {
+ return (color.B << 16 | color.G << 8 | color.R);
+ }
+
+ public static Color IntToColor(int color)
+ {
+ int b = (color >> 16) & 0xFF;
+ int g = (color >> 8) & 0xFF;
+ int r = (color) & 0xFF;
+ return Color.FromArgb(r, g, b);
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeSubclasser.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeSubclasser.cs
new file mode 100644
index 0000000..be91e1a
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Alsing.SyntaxBox/Win32/NativeSubclasser.cs
@@ -0,0 +1,85 @@
+// *
+// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com
+// *
+// * This library is free software; you can redistribute it and/or modify it
+// * under the terms of the GNU Lesser General Public License 2.1 or later, as
+// * published by the Free Software Foundation. See the included license.txt
+// * or http://www.gnu.org/copyleft/lesser.html for details.
+// *
+// *
+
+using System;
+using System.Windows.Forms;
+
+namespace Alsing.Windows.Forms
+{
+
+ #region params
+
+ public class NativeMessageArgs : EventArgs
+ {
+ public bool Cancel;
+ public Message Message;
+ }
+
+ public delegate void NativeMessageHandler(object s, NativeMessageArgs e);
+
+ #endregion
+
+ public class NativeSubclasser : NativeWindow
+ {
+ public NativeSubclasser() {}
+
+ public NativeSubclasser(Control Target)
+ {
+ AssignHandle(Target.Handle);
+ Target.HandleCreated += Handle_Created;
+ Target.HandleDestroyed += Handle_Destroyed;
+ }
+
+ public NativeSubclasser(IntPtr hWnd)
+ {
+ AssignHandle(hWnd);
+ }
+
+ public event NativeMessageHandler Message = null;
+
+ protected virtual void OnMessage(NativeMessageArgs e)
+ {
+ if (Message != null)
+ Message(this, e);
+ }
+
+ private void Handle_Created(object o, EventArgs e)
+ {
+ AssignHandle(((Control) o).Handle);
+ }
+
+ private void Handle_Destroyed(object o, EventArgs e)
+ {
+ ReleaseHandle();
+ }
+
+ public void Detatch()
+ {
+ // this.ReleaseHandle ();
+ }
+
+ protected override void WndProc(ref Message m)
+ {
+ try
+ {
+ var e = new NativeMessageArgs {Message = m, Cancel = false};
+
+ OnMessage(e);
+
+ if (!e.Cancel)
+ base.WndProc(ref m);
+ }
+ catch (Exception x)
+ {
+ Console.WriteLine(x.Message);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.Designer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.Designer.cs
new file mode 100644
index 0000000..d43bb23
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.Designer.cs
@@ -0,0 +1,957 @@
+namespace HelloWorld
+{
+ partial class Form1
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.syntaxBoxControl1 = new Alsing.Windows.Forms.SyntaxBoxControl();
+ this.syntaxDocument1 = new Alsing.SourceCode.SyntaxDocument(this.components);
+ this.SuspendLayout();
+ //
+ // syntaxBoxControl1
+ //
+ this.syntaxBoxControl1.ActiveView = Alsing.Windows.Forms.ActiveView.BottomRight;
+ this.syntaxBoxControl1.AutoListPosition = null;
+ this.syntaxBoxControl1.AutoListSelectedText = "a123";
+ this.syntaxBoxControl1.AutoListVisible = false;
+ this.syntaxBoxControl1.BackColor = System.Drawing.Color.White;
+ this.syntaxBoxControl1.BorderStyle = Alsing.Windows.Forms.BorderStyle.None;
+ this.syntaxBoxControl1.CopyAsRTF = false;
+ this.syntaxBoxControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.syntaxBoxControl1.Document = this.syntaxDocument1;
+ this.syntaxBoxControl1.FontName = "Courier new";
+ this.syntaxBoxControl1.FontSize = 12F;
+ this.syntaxBoxControl1.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.syntaxBoxControl1.InfoTipCount = 1;
+ this.syntaxBoxControl1.InfoTipPosition = null;
+ this.syntaxBoxControl1.InfoTipSelectedIndex = 1;
+ this.syntaxBoxControl1.InfoTipVisible = false;
+ this.syntaxBoxControl1.Location = new System.Drawing.Point(0, 0);
+ this.syntaxBoxControl1.LockCursorUpdate = false;
+ this.syntaxBoxControl1.Name = "syntaxBoxControl1";
+ this.syntaxBoxControl1.ShowScopeIndicator = false;
+ this.syntaxBoxControl1.Size = new System.Drawing.Size(844, 592);
+ this.syntaxBoxControl1.SmoothScroll = false;
+ this.syntaxBoxControl1.SplitviewH = -4;
+ this.syntaxBoxControl1.SplitviewV = -4;
+ this.syntaxBoxControl1.TabGuideColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(243)))), ((int)(((byte)(234)))));
+ this.syntaxBoxControl1.TabIndex = 0;
+ this.syntaxBoxControl1.Text = "syntaxBoxControl1";
+ this.syntaxBoxControl1.WhitespaceColor = System.Drawing.SystemColors.ControlDark;
+ //
+ // syntaxDocument1
+ //
+ this.syntaxDocument1.Lines = new string[] {
+ "// *\r",
+ "// * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com\r",
+ "// *\r",
+ "// * This library is free software; you can redistribute it and/or modify it\r",
+ "// * under the terms of the GNU Lesser General Public License 2.1 or later, as\r",
+ "// * published by the Free Software Foundation. See the included license.txt\r",
+ "// * or http://www.gnu.org/copyleft/lesser.html for details.\r",
+ "// *\r",
+ "// *\r",
+ "//no parsing , just splitting and making whitespace possible\r",
+ "//1 sec to finnish ca 10000 rows\r",
+ "\r",
+ "namespace Alsing.SourceCode.SyntaxDocumentParsers\r",
+ "{\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public sealed class DefaultParser : IParser\r",
+ " {\r",
+ " private SyntaxDefinition mSyntaxDefinition;\r",
+ " private long Version;\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public DefaultParser()\r",
+ " {\r",
+ " mSyntaxDefinition = null;\r",
+ " }\r",
+ "\r",
+ " #region IParser Members\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public SyntaxDefinition SyntaxDefinition\r",
+ " {\r",
+ " get { return mSyntaxDefinition; }\r",
+ " set\r",
+ " {\r",
+ " mSyntaxDefinition = value;\r",
+ "\r",
+ " if (mSyntaxDefinition == null)\r",
+ " {\r",
+ " var l = new SyntaxDefinition();\r",
+ " l.mainSpanDefinition = new SpanDefinition(l) {MultiLine = tru" +
+ "e};\r",
+ " mSyntaxDefinition = l;\r",
+ " }\r",
+ "\r",
+ " Version = long.MinValue;\r",
+ " mSyntaxDefinition.Version = long.MinValue + 1;\r",
+ " Document.ReParse();\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public void ParseRow(int index, bool ParseKeywords)\r",
+ " {\r",
+ " InternalParseLine(index, ParseKeywords);\r",
+ " if (SyntaxDefinition != null)\r",
+ " {\r",
+ " if (Version != SyntaxDefinition.Version)\r",
+ " {\r",
+ " SyntaxDefinition.UpdateLists();\r",
+ " Version = SyntaxDefinition.Version;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ "\r",
+ " Document.InvokeRowParsed(Document[index]);\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " #region PUBLIC PROPERTY SEPARATORS\r",
+ "\r",
+ " public string Separators\r",
+ " {\r",
+ " get { return SyntaxDefinition.Separators; }\r",
+ " set { SyntaxDefinition.Separators = value; }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " #region Optimerat och klart\r",
+ "\r",
+ " // ska anropas om \"is same but different\" är true\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public SyntaxDocument Document { get; set; }\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public void Init(string SyntaxFile)\r",
+ " {\r",
+ " try\r",
+ " {\r",
+ " if (!SyntaxFile.ToLowerInvariant().EndsWith(\".syn\")\r",
+ " )\r",
+ " SyntaxFile += \".syn\";\r",
+ "\r",
+ "\r",
+ " SyntaxDefinition = new SyntaxDefinitionLoader().Load(SyntaxFile);" +
+ "\r",
+ " }\r",
+ " catch {}\r",
+ " }\r",
+ "\r",
+ " public void Init(string syntaxFile, string separators)\r",
+ " {\r",
+ " try\r",
+ " {\r",
+ " if (!syntaxFile.ToLowerInvariant().EndsWith(\".syn\")\r",
+ " )\r",
+ " syntaxFile += \".syn\";\r",
+ "\r",
+ "\r",
+ " SyntaxDefinition = new SyntaxDefinitionLoader().Load(syntaxFile, " +
+ "separators);\r",
+ " }\r",
+ " catch {}\r",
+ " }\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public void Init(SyntaxDefinition syntaxDefinition)\r",
+ " {\r",
+ " SyntaxDefinition = syntaxDefinition;\r",
+ " }\r",
+ "\r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " /// \r",
+ " public void ParsePreviewLine(int RowIndex)\r",
+ " {\r",
+ " Row Row = Document[RowIndex];\r",
+ " Row.Clear();\r",
+ " Row.Add(Row.Text);\r",
+ " Row.RowState = RowState.NotParsed;\r",
+ " }\r",
+ "\r",
+ " private void MakeSame(int RowIndex)\r",
+ " {\r",
+ " Row row = Document[RowIndex];\r",
+ "\r",
+ " //copy back the old segments to this line...\r",
+ " Span seg = row.endSpan;\r",
+ " Span seg2 = Document[RowIndex + 1].startSpan;\r",
+ " while (seg != null)\r",
+ " {\r",
+ " foreach (Word w in row)\r",
+ " {\r",
+ " if (w.Span == seg)\r",
+ " {\r",
+ " if (w.Span.StartWord == w)\r",
+ " seg2.StartWord = w;\r",
+ "\r",
+ " if (w.Span.EndWord == w)\r",
+ " seg2.EndWord = w;\r",
+ "\r",
+ " w.Span = seg2;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " if (seg == row.startSpan)\r",
+ " row.startSpan = seg2;\r",
+ "\r",
+ " if (seg == row.endSpan)\r",
+ " row.endSpan = seg2;\r",
+ "\r",
+ "\r",
+ " if (row.startSpans.IndexOf(seg) >= 0)\r",
+ " row.startSpans[row.startSpans.IndexOf(seg)] = seg2;\r",
+ "\r",
+ " if (row.endSpans.IndexOf(seg) >= 0)\r",
+ " row.endSpans[row.endSpans.IndexOf(seg)] = seg2;\r",
+ "\r",
+ " seg = seg.Parent;\r",
+ " seg2 = seg2.Parent;\r",
+ " }\r",
+ " row.SetExpansionSegment();\r",
+ " }\r",
+ "\r",
+ " //om denna är true\r",
+ " // så ska INTE nästa rad parse\'as , utan denna ska fixas så den blir som " +
+ "den förra... (kopiera span)\r",
+ " private bool IsSameButDifferent(int RowIndex, Span oldStartSpan)\r",
+ " {\r",
+ " //is this the last row ? , if so , bailout\r",
+ " if (RowIndex >= Document.Count - 1)\r",
+ " return false;\r",
+ "\r",
+ " Row row = Document[RowIndex];\r",
+ " Span seg = row.endSpan;\r",
+ " Span oldEndSpan = Document[RowIndex + 1].startSpan;\r",
+ " Span oseg = oldEndSpan;\r",
+ "\r",
+ " bool diff = false;\r",
+ "\r",
+ " while (seg != null)\r",
+ " {\r",
+ " if (oseg == null)\r",
+ " {\r",
+ " diff = true;\r",
+ " break;\r",
+ " }\r",
+ "\r",
+ " //Id1+=seg.spanDefinition.GetHashCode ().ToString (System.Globali" +
+ "zation.CultureInfo.InvariantCulture);\r",
+ " if (seg.spanDefinition != oseg.spanDefinition)\r",
+ " {\r",
+ " diff = true;\r",
+ " break;\r",
+ " }\r",
+ "\r",
+ " if (seg.Parent != oseg.Parent)\r",
+ " {\r",
+ " diff = true;\r",
+ " break;\r",
+ " }\r",
+ "\r",
+ " seg = seg.Parent;\r",
+ " oseg = oseg.Parent;\r",
+ " }\r",
+ "\r",
+ "\r",
+ " if (diff || row.startSpan != oldStartSpan)\r",
+ " return false;\r",
+ "\r",
+ " return true;\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " private ScanResultWord GetNextWord(string Text, Span currentSpan, int\r",
+ " " +
+ " StartPos, ref bool HasComplex)\r",
+ " {\r",
+ " SpanDefinition spanDefinition = currentSpan.spanDefinition;\r",
+ "\r",
+ " #region ComplexFind\r",
+ "\r",
+ " int BestComplexPos = - 1;\r",
+ " Pattern BestComplexPattern = null;\r",
+ " string BestComplexToken = \"\";\r",
+ " var complexword = new ScanResultWord();\r",
+ " if (HasComplex)\r",
+ " {\r",
+ " foreach (Pattern pattern in spanDefinition.ComplexPatterns)\r",
+ " {\r",
+ " PatternScanResult scanres = pattern.IndexIn(Text, StartPos,\r",
+ " pattern.Parent.Ca" +
+ "seSensitive, Separators);\r",
+ " if (scanres.Token != \"\")\r",
+ " {\r",
+ " if (scanres.Index < BestComplexPos || BestComplexPos == -" +
+ " 1)\r",
+ " {\r",
+ " BestComplexPos = scanres.Index;\r",
+ " BestComplexPattern = pattern;\r",
+ " BestComplexToken = scanres.Token;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ "\r",
+ "\r",
+ " if (BestComplexPattern != null)\r",
+ " {\r",
+ " complexword.HasContent = true;\r",
+ " complexword.ParentList = BestComplexPattern.Parent;\r",
+ " complexword.Pattern = BestComplexPattern;\r",
+ " complexword.Position = BestComplexPos;\r",
+ " complexword.Token = BestComplexToken;\r",
+ " }\r",
+ " else\r",
+ " {\r",
+ " HasComplex = false;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " #region SimpleFind \r",
+ "\r",
+ " var simpleword = new ScanResultWord();\r",
+ " for (int i = StartPos; i < Text.Length; i++)\r",
+ " {\r",
+ " //bailout if we found a complex pattern before this char pos\r",
+ " if (i > complexword.Position && complexword.HasContent)\r",
+ " break;\r",
+ "\r",
+ " #region 3+ char pattern\r",
+ "\r",
+ " if (i <= Text.Length - 3)\r",
+ " {\r",
+ " string key = Text.Substring(i, 3).ToLowerInvariant();\r",
+ " var patterns2 = (PatternCollection)\r",
+ " spanDefinition.LookupTable[key];\r",
+ " //ok , there are patterns that start with this char\r",
+ " if (patterns2 != null)\r",
+ " {\r",
+ " foreach (Pattern pattern in patterns2)\r",
+ " {\r",
+ " int len = pattern.StringPattern.Length;\r",
+ " if (i + len > Text.Length)\r",
+ " continue;\r",
+ "\r",
+ " char lastpatternchar = char.ToLower(pattern.StringPat" +
+ "tern[len -\r",
+ " " +
+ " 1]);\r",
+ " char lasttextchar = char.ToLower(Text[i + len - 1]);\r" +
+ "",
+ "\r",
+ " #region Case Insensitive\r",
+ "\r",
+ " if (lastpatternchar == lasttextchar)\r",
+ " {\r",
+ " if (!pattern.IsKeyword || (pattern.IsKeyword &&\r",
+ " pattern.HasSeparators(" +
+ "Text, i)))\r",
+ " {\r",
+ " if (!pattern.Parent.CaseSensitive)\r",
+ " {\r",
+ " string s = Text.Substring(i, len).ToLower" +
+ "Invariant();\r",
+ "\r",
+ " if (s == pattern.StringPattern.ToLowerInv" +
+ "ariant())\r",
+ " {\r",
+ " simpleword.HasContent = true;\r",
+ " simpleword.ParentList = pattern.Paren" +
+ "t;\r",
+ " simpleword.Pattern = pattern;\r",
+ " simpleword.Position = i;\r",
+ " simpleword.Token = pattern.Parent.Nor" +
+ "malizeCase ? pattern.StringPattern : Text.Substring(i, len);\r",
+ " break;\r",
+ " }\r",
+ " }\r",
+ " else\r",
+ " {\r",
+ " string s = Text.Substring(i, len);\r",
+ "\r",
+ " if (s == pattern.StringPattern)\r",
+ " {\r",
+ " simpleword.HasContent = true;\r",
+ " simpleword.ParentList = pattern.Paren" +
+ "t;\r",
+ " simpleword.Pattern = pattern;\r",
+ " simpleword.Position = i;\r",
+ " simpleword.Token = pattern.StringPatt" +
+ "ern;\r",
+ " break;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " if (simpleword.HasContent)\r",
+ " break;\r",
+ "\r",
+ " #region single char pattern\r",
+ "\r",
+ " char c = Text[i];\r",
+ " var patterns = (PatternCollection) spanDefinition.LookupTable[c];" +
+ "\r",
+ " if (patterns != null)\r",
+ " {\r",
+ " //ok , there are patterns that start with this char\r",
+ " foreach (Pattern pattern in patterns)\r",
+ " {\r",
+ " int len = pattern.StringPattern.Length;\r",
+ " if (i + len > Text.Length)\r",
+ " continue;\r",
+ "\r",
+ " char lastpatternchar = pattern.StringPattern[len - 1];\r",
+ " char lasttextchar = Text[i + len - 1];\r",
+ "\r",
+ " if (!pattern.Parent.CaseSensitive)\r",
+ " {\r",
+ " #region Case Insensitive\r",
+ "\r",
+ " if (char.ToLower(lastpatternchar) == char.ToLower(las" +
+ "ttextchar))\r",
+ " {\r",
+ " if (!pattern.IsKeyword || (pattern.IsKeyword &&\r",
+ " pattern.HasSeparators(" +
+ "Text, i)))\r",
+ " {\r",
+ " string s = Text.Substring(i, len).ToLowerInva" +
+ "riant();\r",
+ "\r",
+ " if (s == pattern.StringPattern.ToLowerInvaria" +
+ "nt())\r",
+ " {\r",
+ " simpleword.HasContent = true;\r",
+ " simpleword.ParentList = pattern.Parent;\r",
+ " simpleword.Pattern = pattern;\r",
+ " simpleword.Position = i;\r",
+ " simpleword.Token = pattern.Parent.Normali" +
+ "zeCase ? pattern.StringPattern : Text.Substring(i, len);\r",
+ " break;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ " }\r",
+ " else\r",
+ " {\r",
+ " #region Case Sensitive\r",
+ "\r",
+ " if (lastpatternchar == lasttextchar)\r",
+ " {\r",
+ " if (!pattern.IsKeyword || (pattern.IsKeyword &&\r",
+ " pattern.HasSeparators(" +
+ "Text, i)))\r",
+ " {\r",
+ " string s = Text.Substring(i, len);\r",
+ "\r",
+ " if (s == pattern.StringPattern)\r",
+ " {\r",
+ " simpleword.HasContent = true;\r",
+ " simpleword.ParentList = pattern.Parent;\r",
+ " simpleword.Pattern = pattern;\r",
+ " simpleword.Position = i;\r",
+ " simpleword.Token = pattern.StringPattern;" +
+ "\r",
+ " break;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " if (simpleword.HasContent)\r",
+ " break;\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ " }\r",
+ "\r",
+ " #endregion\r",
+ "\r",
+ " if (complexword.HasContent && simpleword.HasContent)\r",
+ " {\r",
+ " if (simpleword.Position == complexword.Position)\r",
+ " {\r",
+ " if (simpleword.Token.Length >= complexword.Token.Length)\r",
+ " return simpleword;\r",
+ " return complexword;\r",
+ " }\r",
+ "\r",
+ " if (simpleword.Position < complexword.Position)\r",
+ " return simpleword;\r",
+ "\r",
+ " if (simpleword.Position > complexword.Position)\r",
+ " return complexword;\r",
+ " }\r",
+ "\r",
+ " if (simpleword.HasContent)\r",
+ " return simpleword;\r",
+ "\r",
+ " if (complexword.HasContent)\r",
+ " return complexword;\r",
+ "\r",
+ "\r",
+ " return new ScanResultWord();\r",
+ " }\r",
+ "\r",
+ "\r",
+ " private void ParseText(Row Row, Span currentSpan, string Text)\r",
+ " {\r",
+ " int CurrentPosition = 0;\r",
+ " bool HasComplex = true;\r",
+ " while (true)\r",
+ " {\r",
+ " ScanResultWord Word = GetNextWord(Text, currentSpan, CurrentPosit" +
+ "ion,\r",
+ " ref HasComplex);\r",
+ "\r",
+ " if (!Word.HasContent)\r",
+ " {\r",
+ " ParseTools.AddString(Text.Substring(CurrentPosition), Row,\r",
+ " currentSpan.spanDefinition.Style, curren" +
+ "tSpan);\r",
+ " break;\r",
+ " }\r",
+ " ParseTools.AddString(Text.Substring(CurrentPosition, Word.Positio" +
+ "n -\r",
+ " CurrentPosit" +
+ "ion), Row,\r",
+ " currentSpan.spanDefinition.Style, currentSpa" +
+ "n);\r",
+ " ParseTools.AddPatternString(Word.Token, Row, Word.Pattern,\r",
+ " Word.ParentList.Style, currentSpan,\r",
+ " false);\r",
+ " CurrentPosition = Word.Position + Word.Token.Length;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " private void InternalParseLine(int index, bool ParseKeywords)\r",
+ " {\r",
+ " if (mSyntaxDefinition == null)\r",
+ " return;\r",
+ "\r",
+ " //\r",
+ " //\t\t\tif (ParseKeywords)\r",
+ " //\t\t\t\treturn;\r",
+ " //\t\t\tParseKeywords=true;\r",
+ " SyntaxDocument doc = Document;\r",
+ " Row Row = doc[index];\r",
+ " Span oldEndSpan = Row.endSpan;\r",
+ " Span oldStartSpan = Row.startSpan;\r",
+ " bool Fold = !Row.IsCollapsed;\r",
+ "\r",
+ "\r",
+ " if (Row.IsCollapsedEndPart)\r",
+ " {\r",
+ " //Row.expansion_EndSpan.Expanded = true;\r",
+ " //Row.expansion_EndSpan.EndRow = null;\r",
+ " Row.expansion_EndSpan.EndWord = null;\r",
+ " }\r",
+ "\r",
+ "\r",
+ " //set startsegment for this row\r",
+ " if (index > 0)\r",
+ " {\r",
+ " Row.startSpan = Document[index - 1].endSpan;\r",
+ " }\r",
+ " else\r",
+ " {\r",
+ " if (Row.startSpan == null)\r",
+ " {\r",
+ " Row.startSpan = new Span(Row) {spanDefinition = mSyntaxDefini" +
+ "tion.mainSpanDefinition};\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " int CurrentPosition = 0;\r",
+ " Span currentSpan = Row.startSpan;\r",
+ "\r",
+ "\r",
+ " //kör tills vi kommit till slutet av raden..\r",
+ " Row.endSpans.Clear();\r",
+ " Row.startSpans.Clear();\r",
+ " Row.Clear();\r",
+ " //\t\tbool HasEndSegment=false;\r",
+ "\r",
+ " while (true)\r",
+ " {\r",
+ " ScanResultSegment ChildSegment = GetNextChildSegment(Row,\r",
+ " currentSpan," +
+ " CurrentPosition);\r",
+ " ScanResultSegment EndSegment = GetEndSegment(Row, currentSpan,\r",
+ " CurrentPosition);\r",
+ "\r",
+ " if ((EndSegment.HasContent && ChildSegment.HasContent &&\r",
+ " EndSegment.Position <= ChildSegment.Position) ||\r",
+ " (EndSegment.HasContent && ChildSegment.HasContent == false))\r" +
+ "",
+ " {\r",
+ " //this is an end span\r",
+ "\r",
+ " if (ParseKeywords)\r",
+ " {\r",
+ " string Text = Row.Text.Substring(CurrentPosition,\r",
+ " EndSegment.Position - Cu" +
+ "rrentPosition);\r",
+ " ParseText(Row, currentSpan, Text);\r",
+ " }\r",
+ "\r",
+ " Span oldseg = currentSpan;\r",
+ " while (currentSpan != EndSegment.span)\r",
+ " {\r",
+ " Row.endSpans.Add(currentSpan);\r",
+ " currentSpan = currentSpan.Parent;\r",
+ " }\r",
+ " Row.endSpans.Add(currentSpan);\r",
+ "\r",
+ " TextStyle st2 = currentSpan.Scope.Style;\r",
+ "\r",
+ " ParseTools.AddPatternString(EndSegment.Token, Row, EndSegment" +
+ ".Pattern,\r",
+ " st2, currentSpan, false);\r",
+ " while (oldseg != EndSegment.span)\r",
+ " {\r",
+ " oldseg.EndRow = Row;\r",
+ " oldseg.EndWord = Row[Row.Count - 1];\r",
+ " oldseg = oldseg.Parent;\r",
+ " }\r",
+ "\r",
+ " currentSpan.EndRow = Row;\r",
+ " currentSpan.EndWord = Row[Row.Count - 1];\r",
+ "\r",
+ "\r",
+ " if (currentSpan.Parent != null)\r",
+ " currentSpan = currentSpan.Parent;\r",
+ "\r",
+ " CurrentPosition = EndSegment.Position + EndSegment.Token.Leng" +
+ "th;\r",
+ " }\r",
+ " else if (ChildSegment.HasContent)\r",
+ " {\r",
+ " //this is a child block\r",
+ "\r",
+ " if (ParseKeywords)\r",
+ " {\r",
+ " string Text = Row.Text.Substring(CurrentPosition,\r",
+ " ChildSegment.Position - " +
+ "CurrentPosition);\r",
+ " //TextStyle st=currentSpan.spanDefinition.Style;\r",
+ " ParseText(Row, currentSpan, Text);\r",
+ " //ParseTools.AddString (Text,Row,st,currentSpan);\r",
+ " }\r",
+ "\r",
+ "\r",
+ " var NewSeg = new Span\r",
+ " {\r",
+ " Parent = currentSpan,\r",
+ " spanDefinition = ChildSegment.spanDefinition" +
+ ",\r",
+ " Scope = ChildSegment.Scope\r",
+ " };\r",
+ "\r",
+ " Row.startSpans.Add(NewSeg);\r",
+ "\r",
+ " TextStyle st2 = NewSeg.Scope.Style;\r",
+ " ParseTools.AddPatternString(ChildSegment.Token, Row,\r",
+ " ChildSegment.Pattern, st2, NewSeg" +
+ ", false);\r",
+ " NewSeg.StartRow = Row;\r",
+ " NewSeg.StartWord = Row[Row.Count - 1];\r",
+ "\r",
+ "\r",
+ " currentSpan = NewSeg;\r",
+ " CurrentPosition = ChildSegment.Position + ChildSegment.Token." +
+ "Length;\r",
+ "\r",
+ " if (ChildSegment.Scope.spawnSpanOnStart != null)\r",
+ " {\r",
+ " var SpawnSeg = new Span\r",
+ " {\r",
+ " Parent = NewSeg,\r",
+ " spanDefinition = ChildSegment.Scope.sp" +
+ "awnSpanOnStart,\r",
+ " Scope = new Scope(),\r",
+ " StartWord = NewSeg.StartWord\r",
+ " };\r",
+ " Row.startSpans.Add(SpawnSeg);\r",
+ " currentSpan = SpawnSeg;\r",
+ " }\r",
+ " }\r",
+ " else\r",
+ " {\r",
+ " if (CurrentPosition < Row.Text.Length)\r",
+ " {\r",
+ " if (ParseKeywords)\r",
+ " {\r",
+ " //we did not find a childblock nor an endblock , just" +
+ " output the last pice of text\r",
+ " string Text = Row.Text.Substring(CurrentPosition);\r",
+ " //TextStyle st=currentSpan.spanDefinition.Style;\t\r",
+ " ParseText(Row, currentSpan, Text);\r",
+ " //ParseTools.AddString (Text,Row,st,currentSpan);\r",
+ " }\r",
+ " }\r",
+ " break;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " while (!currentSpan.spanDefinition.MultiLine)\r",
+ " {\r",
+ " Row.endSpans.Add(currentSpan);\r",
+ " currentSpan = currentSpan.Parent;\r",
+ " }\r",
+ "\r",
+ " Row.endSpan = currentSpan;\r",
+ " Row.SetExpansionSegment();\r",
+ "\r",
+ " Row.RowState = ParseKeywords ? RowState.AllParsed : RowState.SpanPars" +
+ "ed;\r",
+ "\r",
+ " if (IsSameButDifferent(index, oldStartSpan))\r",
+ " {\r",
+ " MakeSame(index);\r",
+ " //if (!IsSameButDifferent(index))\r",
+ " //\tSystem.Diagnostics.Debugger.Break();\r",
+ " }\r",
+ "\r",
+ " if (Row.CanFold)\r",
+ " Row.expansion_StartSpan.Expanded = Fold;\r",
+ "\r",
+ " //dont flag next line as needs parsing if only parsing keywords\r",
+ " if (!ParseKeywords)\r",
+ " {\r",
+ " if (oldEndSpan != null)\r",
+ " {\r",
+ " if (Row.endSpan != oldEndSpan && index <= Document.Count - 2)" +
+ "\r",
+ " {\r",
+ " //if (Row.CanFold)\r",
+ " //\tRow.expansion_StartSpan.Expanded = true;\r",
+ " Document[index + 1].AddToParseQueue();\r",
+ " Document.NeedResetRows = true;\r",
+ " }\r",
+ " }\r",
+ " else if (index <= Document.Count - 2)\r",
+ " {\r",
+ " //if (Row.CanFold)\r",
+ " //\tRow.expansion_StartSpan.Expanded = true;\r",
+ " Document[index + 1].AddToParseQueue();\r",
+ " Document.NeedResetRows = true;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ " if (oldEndSpan != null)\r",
+ " {\r",
+ " //expand span if this line dont have an end word\r",
+ " if (oldEndSpan.EndWord == null)\r",
+ " oldEndSpan.Expanded = true;\r",
+ " }\r",
+ " }\r",
+ "\r",
+ "\r",
+ " private ScanResultSegment GetEndSegment(Row Row, Span currentSpan,\r",
+ " int StartPos)\r",
+ " {\r",
+ " //this row has no text , just bail out...\r",
+ " if (StartPos >= Row.Text.Length || currentSpan.Scope == null)\r",
+ " return new ScanResultSegment();\r",
+ "\r",
+ " var Result = new ScanResultSegment {HasContent = false, IsEndSegment " +
+ "= false};\r",
+ "\r",
+ "\r",
+ " //-------------------------------------------------------------------" +
+ "-------------\r",
+ " //scan for childblocks\r",
+ " //scan each scope in each childblock\r",
+ "\r",
+ " Span seg = currentSpan;\r",
+ "\r",
+ " while (seg != null)\r",
+ " {\r",
+ " if (seg == currentSpan || seg.spanDefinition.TerminateChildren)\r",
+ " {\r",
+ " foreach (Pattern end in seg.Scope.EndPatterns)\r",
+ " {\r",
+ " PatternScanResult psr = end.IndexIn(Row.Text, StartPos,\r",
+ " seg.Scope.CaseSensiti" +
+ "ve, Separators);\r",
+ " int CurrentPosition = psr.Index;\r",
+ " if (psr.Token != \"\")\r",
+ " {\r",
+ " if ((psr.Index < Result.Position && Result.HasContent" +
+ ") ||\r",
+ " !Result.HasContent)\r",
+ " {\r",
+ " //we found a better match\r",
+ " //store this new match\r",
+ " Result.Pattern = end;\r",
+ " Result.Position = CurrentPosition;\r",
+ " Result.Token = psr.Token;\r",
+ " Result.HasContent = true;\r",
+ " Result.span = seg;\r",
+ " Result.Scope = null;\r",
+ "\r",
+ "\r",
+ " if (!end.IsComplex)\r",
+ " {\r",
+ " if (seg.Scope.NormalizeCase)\r",
+ " if (!seg.Scope.Start.IsComplex)\r",
+ " Result.Token = end.StringPattern;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ " seg = seg.Parent;\r",
+ " }\r",
+ "\r",
+ " //no result , return new ScanResultSegment();\r",
+ " if (!Result.HasContent)\r",
+ " return new ScanResultSegment();\r",
+ "\r",
+ " return Result;\r",
+ " }\r",
+ "\r",
+ " private ScanResultSegment GetNextChildSegment(Row Row, Span\r",
+ " currentSpan, i" +
+ "nt StartPos)\r",
+ " {\r",
+ " //this row has no text , just bail out...\r",
+ " if (StartPos >= Row.Text.Length)\r",
+ " return new ScanResultSegment();\r",
+ "\r",
+ "\r",
+ " var Result = new ScanResultSegment {HasContent = false, IsEndSegment " +
+ "= false};\r",
+ "\r",
+ "\r",
+ " foreach (SpanDefinition ChildBlock in currentSpan.spanDefinition.chil" +
+ "dSpanDefinitions)\r",
+ " {\r",
+ " //scan each scope in each childblock\r",
+ " foreach (Scope Scope in ChildBlock.ScopePatterns)\r",
+ " {\r",
+ " PatternScanResult psr = Scope.Start.IndexIn(Row.Text, StartPo" +
+ "s,\r",
+ " Scope.CaseSensiti" +
+ "ve, Separators);\r",
+ " int CurrentPosition = psr.Index;\r",
+ " if ((!Result.HasContent || CurrentPosition < Result.Position)" +
+ " &&\r",
+ " psr.Token != \"\")\r",
+ " {\r",
+ " //we found a better match\r",
+ " //store this new match\r",
+ " Result.Pattern = Scope.Start;\r",
+ " Result.Position = CurrentPosition;\r",
+ " Result.Token = psr.Token;\r",
+ " Result.HasContent = true;\r",
+ " Result.spanDefinition = ChildBlock;\r",
+ " Result.Scope = Scope;\r",
+ "\r",
+ " if (Scope.NormalizeCase)\r",
+ " if (!Scope.Start.IsComplex)\r",
+ " Result.Token = Scope.Start.StringPattern;\r",
+ " }\r",
+ " }\r",
+ " }\r",
+ "\r",
+ "\r",
+ " //no result , new ScanResultSegment();\r",
+ " if (!Result.HasContent)\r",
+ " return new ScanResultSegment();\r",
+ "\r",
+ " return Result;\r",
+ " }\r",
+ " }\r",
+ "}"};
+ this.syntaxDocument1.MaxUndoBufferSize = 1000;
+ this.syntaxDocument1.Modified = false;
+ this.syntaxDocument1.SyntaxFile = "C:\\Puzzle\\SyntaxBox\\Puzzle.Syntaxbox.DefaultSyntaxFiles\\CSharp.syn";
+ this.syntaxDocument1.UndoStep = 0;
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(844, 592);
+ this.Controls.Add(this.syntaxBoxControl1);
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Alsing.Windows.Forms.SyntaxBoxControl syntaxBoxControl1;
+ private Alsing.SourceCode.SyntaxDocument syntaxDocument1;
+ }
+}
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.cs
new file mode 100644
index 0000000..9ca1581
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+
+namespace HelloWorld
+{
+ public partial class Form1 : Form
+ {
+ public Form1()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.resx
new file mode 100644
index 0000000..af2e293
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/HelloWorld.csproj b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/HelloWorld.csproj
new file mode 100644
index 0000000..6612dc8
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/HelloWorld.csproj
@@ -0,0 +1,95 @@
+
+
+
+ Debug
+ AnyCPU
+ 9.0.21022
+ 2.0
+ {FCF83FF2-7D05-4301-9CC0-09234A9ED0DC}
+ WinExe
+ Properties
+ HelloWorld
+ HelloWorld
+ v2.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+ 3.5
+
+
+ 3.5
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ Form1.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ {19EF75B2-B414-4EB0-9486-160FAF93E62C}
+ Alsing.SyntaxBox.NET
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Program.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Program.cs
new file mode 100644
index 0000000..f0009a3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Windows.Forms;
+
+namespace HelloWorld
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/AssemblyInfo.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..08654bd
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HelloWorld")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Precio Systemutveckling AB")]
+[assembly: AssemblyProduct("HelloWorld")]
+[assembly: AssemblyCopyright("Copyright © Precio Systemutveckling AB 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3d6e90b9-66dc-4780-9aef-40912bc86993")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.Designer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..fc6eccd
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3031
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace HelloWorld.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HelloWorld.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.resx
new file mode 100644
index 0000000..ffecec8
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.Designer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..a58fcaf
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3031
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace HelloWorld.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.settings b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.settings
new file mode 100644
index 0000000..abf36c5
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/HelloWorld/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/App.ico b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/App.ico
new file mode 100644
index 0000000..3a5525f
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/App.ico differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/AssemblyInfo.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/AssemblyInfo.cs
new file mode 100644
index 0000000..177a4f0
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/AssemblyInfo.cs
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+// (*) If no key is specified, the assembly is not signed.
+// (*) KeyName refers to a key that has been installed in the Crypto Service
+// Provider (CSP) on your machine. KeyFile refers to a file which contains
+// a key.
+// (*) If the KeyFile and the KeyName values are both specified, the
+// following processing occurs:
+// (1) If the KeyName can be found in the CSP, that key is used.
+// (2) If the KeyName does not exist and the KeyFile does exist, the key
+// in the KeyFile is installed into the CSP and used.
+// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+// When specifying the KeyFile, the location of the KeyFile should be
+// relative to the project output directory which is
+// %Project Directory%\obj\. For example, if your KeyFile is
+// located in the project directory, you would specify the AssemblyKeyFile
+// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+// documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Caption.ico b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Caption.ico
new file mode 100644
index 0000000..203f2fc
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Caption.ico differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Document.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Document.cs
new file mode 100644
index 0000000..eb70905
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Document.cs
@@ -0,0 +1,9 @@
+namespace MDIDemo
+{
+ public class Document
+ {
+ public string Path = "";
+ public string Text = "";
+ public string Title = "";
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.cs
new file mode 100644
index 0000000..14beb00
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.cs
@@ -0,0 +1,355 @@
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+using Alsing.SourceCode;
+using Alsing.Windows.Forms;
+
+
+namespace MDIDemo
+{
+ ///
+ /// Summary description for EditForm.
+ ///
+ public class EditForm : Form
+ {
+ private ToolBarButton btnFolding;
+ private ToolBarButton btnSettings;
+ private ToolBarButton btnTabGuides;
+ private ToolBarButton btnWhitespace;
+ private IContainer components;
+ public Document Doc;
+ private ImageList imlIcons;
+ public SyntaxBoxControl sBox;
+ public SyntaxDocument sDoc;
+ private StatusBar statusBar1;
+ private StatusBarPanel statusBarPanel1;
+ private StatusBarPanel statusBarPanel2;
+ private StatusBarPanel statusBarPanel3;
+
+ private SyntaxDocument syntaxDocument1;
+ private ToolBar tbrSettings;
+
+ public EditForm()
+ {
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+
+ //
+ // TODO: Add any constructor code after InitializeComponent call
+ //
+ Doc = new Document {Title = "Untitled"};
+ sBox.Document = sDoc;
+ Text = Doc.Title;
+ }
+
+ //create an EditForm and attatch our opened document and tell the parser to use the given syntax.
+ public EditForm(Document Document, SyntaxDefinition SyntaxDefinition)
+ {
+ InitializeComponent();
+
+ Doc = Document;
+ sBox.Document = sDoc;
+ sBox.Document.Parser.Init(SyntaxDefinition);
+ sBox.Document.Text = Document.Text;
+ Text = Doc.Title;
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (components != null)
+ {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ //event fired when the caret moves
+
+ //event fired when the modified flag of the document changes (eg if you undo every change , the modified flag will be reset
+ private void sDoc_ModifiedChanged(object sender, EventArgs e)
+ {
+ string s = "";
+ if (sDoc.Modified)
+ s = "*";
+
+ Text = Doc.Title + s;
+ statusBar1.Panels[1].Text = "Undo buffer :\t" + sDoc.UndoStep;
+ //show number of steps in the undostack in one of the panels in the statusbar
+ }
+
+ //event fired when the content is modified
+ private void sDoc_Change(object sender, EventArgs e)
+ {
+ statusBar1.Panels[1].Text = "Undo buffer :\t" + sDoc.UndoStep;
+ }
+
+ private void tbrSettings_ButtonClick(object sender, ToolBarButtonClickEventArgs e)
+ {
+ ToolBarButton tbb = e.Button;
+
+ if (tbb == btnFolding)
+ {
+ sDoc.Folding = tbb.Pushed; //toggle folding
+ }
+
+ if (tbb == btnTabGuides)
+ {
+ sBox.ShowTabGuides = tbb.Pushed; //toggle tabguides
+ }
+
+ if (tbb == btnWhitespace)
+ {
+ sBox.ShowWhitespace = tbb.Pushed; //toggle visible whitespace
+ }
+
+ if (tbb == btnSettings)
+ {
+ var sf = new SettingsForm(sBox); //show a settings form
+ sf.ShowDialog();
+ }
+ }
+
+
+ //save the content of the editor
+ public void SaveAs(string FileName)
+ {
+ try
+ {
+ var fs = new StreamWriter(FileName, false, Encoding.Default);
+ fs.Write(sDoc.Text);
+ fs.Flush();
+ fs.Close();
+ sDoc.SaveRevisionMark();
+ }
+ catch (Exception x)
+ {
+ MessageBox.Show(x.Message);
+ }
+ }
+
+ //occurs when a form is about to be closed
+ private void EditForm_Closing(object sender, CancelEventArgs e)
+ {
+ if (sDoc.Modified)
+ {
+ DialogResult res = MessageBox.Show("Save changes to " + Doc.Title, "SyntaxBox",
+ MessageBoxButtons.YesNoCancel);
+ if (res == DialogResult.Cancel)
+ {
+ e.Cancel = true;
+ return;
+ }
+ if (res == DialogResult.No)
+ {
+ e.Cancel = false;
+ return;
+ }
+ if (res == DialogResult.Yes)
+ {
+ if (Doc.Path != "")
+ {
+ SaveAs(Doc.Path);
+ }
+ else
+ {
+ var mp = (MDIParent) MdiParent;
+ mp.ShowSaveDialog(this);
+ }
+ e.Cancel = false;
+ return;
+ }
+ }
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditForm));
+ this.statusBar1 = new System.Windows.Forms.StatusBar();
+ this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
+ this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel();
+ this.statusBarPanel3 = new System.Windows.Forms.StatusBarPanel();
+ this.sDoc = new Alsing.SourceCode.SyntaxDocument(this.components);
+ this.tbrSettings = new System.Windows.Forms.ToolBar();
+ this.btnWhitespace = new System.Windows.Forms.ToolBarButton();
+ this.btnTabGuides = new System.Windows.Forms.ToolBarButton();
+ this.btnFolding = new System.Windows.Forms.ToolBarButton();
+ this.btnSettings = new System.Windows.Forms.ToolBarButton();
+ this.imlIcons = new System.Windows.Forms.ImageList(this.components);
+ this.sBox = new Alsing.Windows.Forms.SyntaxBoxControl();
+ this.syntaxDocument1 = new Alsing.SourceCode.SyntaxDocument(this.components);
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel3)).BeginInit();
+ this.SuspendLayout();
+ //
+ // statusBar1
+ //
+ this.statusBar1.Location = new System.Drawing.Point(0, 471);
+ this.statusBar1.Name = "statusBar1";
+ this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
+ this.statusBarPanel1,
+ this.statusBarPanel2,
+ this.statusBarPanel3});
+ this.statusBar1.ShowPanels = true;
+ this.statusBar1.Size = new System.Drawing.Size(504, 22);
+ this.statusBar1.TabIndex = 1;
+ //
+ // statusBarPanel1
+ //
+ this.statusBarPanel1.Name = "statusBarPanel1";
+ this.statusBarPanel1.Width = 200;
+ //
+ // statusBarPanel2
+ //
+ this.statusBarPanel2.Name = "statusBarPanel2";
+ this.statusBarPanel2.Width = 200;
+ //
+ // statusBarPanel3
+ //
+ this.statusBarPanel3.Name = "statusBarPanel3";
+ //
+ // sDoc
+ //
+ this.sDoc.Lines = new string[] {
+ "abc"};
+ this.sDoc.MaxUndoBufferSize = 1000;
+ this.sDoc.Modified = false;
+ this.sDoc.UndoStep = 0;
+ this.sDoc.Change += new System.EventHandler(this.sDoc_Change);
+ this.sDoc.ModifiedChanged += new System.EventHandler(this.sDoc_ModifiedChanged);
+ //
+ // tbrSettings
+ //
+ this.tbrSettings.Appearance = System.Windows.Forms.ToolBarAppearance.Flat;
+ this.tbrSettings.AutoSize = false;
+ this.tbrSettings.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] {
+ this.btnWhitespace,
+ this.btnTabGuides,
+ this.btnFolding,
+ this.btnSettings});
+ this.tbrSettings.Divider = false;
+ this.tbrSettings.Dock = System.Windows.Forms.DockStyle.Left;
+ this.tbrSettings.DropDownArrows = true;
+ this.tbrSettings.ImageList = this.imlIcons;
+ this.tbrSettings.Location = new System.Drawing.Point(0, 0);
+ this.tbrSettings.Name = "tbrSettings";
+ this.tbrSettings.ShowToolTips = true;
+ this.tbrSettings.Size = new System.Drawing.Size(25, 471);
+ this.tbrSettings.TabIndex = 2;
+ this.tbrSettings.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.tbrSettings_ButtonClick);
+ //
+ // btnWhitespace
+ //
+ this.btnWhitespace.ImageIndex = 1;
+ this.btnWhitespace.Name = "btnWhitespace";
+ this.btnWhitespace.Style = System.Windows.Forms.ToolBarButtonStyle.ToggleButton;
+ this.btnWhitespace.ToolTipText = "Toggle Whitespace On/Off";
+ //
+ // btnTabGuides
+ //
+ this.btnTabGuides.ImageIndex = 0;
+ this.btnTabGuides.Name = "btnTabGuides";
+ this.btnTabGuides.Style = System.Windows.Forms.ToolBarButtonStyle.ToggleButton;
+ this.btnTabGuides.ToolTipText = "Toggle Tab guides On/Off";
+ //
+ // btnFolding
+ //
+ this.btnFolding.ImageIndex = 2;
+ this.btnFolding.Name = "btnFolding";
+ this.btnFolding.Pushed = true;
+ this.btnFolding.Style = System.Windows.Forms.ToolBarButtonStyle.ToggleButton;
+ this.btnFolding.ToolTipText = "Toggle Folding On/Off";
+ //
+ // btnSettings
+ //
+ this.btnSettings.Name = "btnSettings";
+ this.btnSettings.Text = "S";
+ //
+ // imlIcons
+ //
+ this.imlIcons.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imlIcons.ImageStream")));
+ this.imlIcons.TransparentColor = System.Drawing.Color.Transparent;
+ this.imlIcons.Images.SetKeyName(0, "");
+ this.imlIcons.Images.SetKeyName(1, "");
+ this.imlIcons.Images.SetKeyName(2, "");
+ //
+ // sBox
+ //
+ this.sBox.ActiveView = Alsing.Windows.Forms.ActiveView.BottomRight;
+ this.sBox.AutoListPosition = null;
+ this.sBox.AutoListSelectedText = "a123";
+ this.sBox.AutoListVisible = false;
+ this.sBox.BackColor = System.Drawing.Color.White;
+ this.sBox.BorderStyle = Alsing.Windows.Forms.BorderStyle.None;
+ this.sBox.ChildBorderColor = System.Drawing.Color.White;
+ this.sBox.ChildBorderStyle = Alsing.Windows.Forms.BorderStyle.None;
+ this.sBox.CopyAsRTF = false;
+ this.sBox.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.sBox.Document = this.sDoc;
+ this.sBox.FontName = "Courier new";
+ this.sBox.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+ this.sBox.InfoTipCount = 1;
+ this.sBox.InfoTipPosition = null;
+ this.sBox.InfoTipSelectedIndex = 1;
+ this.sBox.InfoTipVisible = false;
+ this.sBox.Location = new System.Drawing.Point(25, 0);
+ this.sBox.LockCursorUpdate = false;
+ this.sBox.Name = "sBox";
+ this.sBox.ScopeIndicatorColor = System.Drawing.Color.Black;
+ this.sBox.ShowScopeIndicator = false;
+ this.sBox.Size = new System.Drawing.Size(479, 471);
+ this.sBox.SmoothScroll = false;
+ this.sBox.SplitviewH = -4;
+ this.sBox.SplitviewV = -4;
+ this.sBox.TabGuideColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(219)))), ((int)(((byte)(214)))));
+ this.sBox.TabIndex = 3;
+ this.sBox.Text = "syntaxBoxControl1";
+ this.sBox.WhitespaceColor = System.Drawing.SystemColors.ControlDark;
+ //
+ // syntaxDocument1
+ //
+ this.syntaxDocument1.Lines = new string[] {
+ ""};
+ this.syntaxDocument1.MaxUndoBufferSize = 1000;
+ this.syntaxDocument1.Modified = false;
+ this.syntaxDocument1.UndoStep = 0;
+ //
+ // EditForm
+ //
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.ClientSize = new System.Drawing.Size(504, 493);
+ this.Controls.Add(this.sBox);
+ this.Controls.Add(this.tbrSettings);
+ this.Controls.Add(this.statusBar1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "EditForm";
+ this.Text = "EditForm";
+ this.Closing += new System.ComponentModel.CancelEventHandler(this.EditForm_Closing);
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel3)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.resx
new file mode 100644
index 0000000..cad6d79
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/EditForm.resx
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 92, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
+ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAi
+ BQAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABEAEAARABAAT/ARkBAAj/AUIBTQE2BwABNgMAASgDAAFA
+ AwABEAMAAQEBAAEYBgABDP8ASwAMQrQAA0JFAAObAyYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEF
+ AQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYDJgObSAADQkUAAyYBBAEF
+ AQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYBBAEFAQYDqQEEAQUBBgEE
+ AQUBBgP/AQQBBQEGAyZIAANCRQABCgEOAQ8BCgEOAQ8BCgEOAQ8BCgEOAQ8BCgEOAQ8BCgEOAQ8BCgEO
+ AQ8BCgEOAQ8BCgEOAQ8BCgEOAQ8D/wOpAQoBDgEPA/8BCgEOAQ8BCgEOAQ8eAAEyAUMBSgEyAUMBSiQA
+ A0JFAAESARcBGgESARcBGgESARcBGgERARgBGQESARcBGgESARcBGgESARcBGg//A6kD/wESARcBGgES
+ ARcBGiEAATIBQwFKATIBQwFKaQABGQEhASUBGQEhASUD/wEZASEBJQEZASEBJQOpARkBIQElARkBIQEl
+ ARkBIQElARkBIQElA/8DqQEZASEBJQP/ARkBIQElARkBIQElJAABMgFDAUoBMgFDAUoSABtCOQABHwEq
+ AS8BHwEqAS8D/wEfASoBLwOpA/8BHwEqAS8BHwEqAS8BIAEqAS8BIAEqAS8DqQEfASoBLwEfASoBLwP/
+ AR8BKgEvAR8BKgEvAwABMgFDAUoBMgFDAUoDAAEyAUMBSgEyAUMBSgMAATIBQwFKATIBQwFKCQABMgFD
+ AUoBMgFDAUoBMgFDAUoPAANCFf8DQjkAAScBNAE6AScBNAE6A/8DqQ//AScBNAE6AScBNAE6AScBNAE6
+ AScBNAE6AScBNAE6AScBNAE6AScBNAE6IQABMgFDAUoBMgFDAUoBMgFDAUoSAANCCf8DAAn/A0I5AAEu
+ AT0BRAEuAT0BRAP/AS4BPQFEA6kD/wEuAT0BRAEuAT0BRAEuAT0BRAEuAT0BRAEuAT0BRAEuAT0BRAEu
+ AT0BRAEuAT0BRAEuAT0BRAEuAT0BRB4AATIBQwFKATIBQwFKATIBQwFKFQADQgn/AwAJ/wNCOQABQgFN
+ AVIBMgFDAUoD/wEyAUMBSgEyAUMBSgOpATIBQwFKATIBQwFKATIBQwFKATIBQwFKATIBQwFKATIBQwFK
+ ATIBQwFKATIBQwFKATIBQwFKAUIBTQFSHgABMgFDAUoBMgFDAUoYAANCA/8PAAP/A0I5AAGmAaoBqwFC
+ AU0BUgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEyAUMBSgEy
+ AUMBSgEyAUMBSgEyAUMBSgFCAU0BUgGmAaoBqzwAA0IJ/wMACf8DQqUAA0IJ/wMACf8DQqUAA0IV/wNC
+ pQAbQjkAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAb/AgAF/wEPAgAF/wF/
+ BAAD/wF/BAAB/wHPAf8BfwQAAf8BxwH/AX8EAAH/AeMC/wQAAZIBcQHwAQcEAAGSAXEB8AEHBAAB/wHj
+ AfABBwQAAf8BxwHwAQcEAAH/Ac8B8AEHBAAC/wHwAQcCAAT/AfABBwIABP8B8AEHAgAE/wHwAQcCAAs=
+
+
+
+ 185, 17
+
+
+
+
+ AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAB
+ AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW
+ FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA
+ MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm
+ /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/
+ zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm
+ ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM
+ /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz
+ mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM
+ MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz
+ MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM
+ AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA
+ mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ
+ MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/
+ zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m
+ zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/
+ ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy
+ sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
+ AAD///8ACgoKCgwMDAoKDAwMCgoKCgoKCgxtdHMMDOsc7AwKCgoKCjwSeTJZ6wp6MnrrPAoKCgoKc1ky
+ OBwSWTJZeQoKCgoKCkN6ODgc7Fk4WUMKCgoKPBMSSiNZeXlZI0oSEjwKX0p5dEoSWZSUWepKeVhKXwqZ
+ WVlYeZQyMpR5WFlZegoKmjIyWViUMjKUeVkyMnoKPHNZWUttWZSUWetLWFlzPAo8c3MVI1lYeVkjFetz
+ PAoKCgoQeVk4HO1ZOHoRCgoKCgoKc1kyOHNtWTJZHAoKCgoKDOt6MlkK6lkyWXMMCgoKCgoMc3ocDAxz
+ ehwMCgoKCgoKCgoKCgoKCgoKCgoKCvGPAADgBwAAwAMAAMADAADAAwAAgAEAAAAAAAAAAAAAAAAAAAAA
+ AACAAQAAwAMAAMADAADAAwAA4AcAAPGPAAA=
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.cs
new file mode 100644
index 0000000..2843cbd
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.cs
@@ -0,0 +1,191 @@
+using System;
+using System.ComponentModel;
+using System.Windows.Forms;
+using Alsing.SourceCode;
+
+namespace MDIDemo
+{
+ ///
+ /// Summary description for LanguageForm.
+ ///
+ public class LanguageForm : Form
+ {
+ private Button btnCancel;
+ private Button btnOK;
+ private IContainer components;
+ public EditForm EditForm;
+ private ImageList imlIcons;
+ private ListView lvFileTypes;
+ private TreeView trvFileTypes;
+
+ public LanguageForm()
+ {
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+
+ //
+ // TODO: Add any constructor code after InitializeComponent call
+ //
+ }
+
+ public LanguageForm(SyntaxDefinitionList LangList)
+ {
+ InitializeComponent();
+ trvFileTypes.Nodes.Clear();
+ foreach (SyntaxDefinition syntax in LangList.GetSyntaxDefinitions())
+ {
+ TreeNode tn = trvFileTypes.Nodes.Add(syntax.Name);
+ tn.Tag = syntax;
+ }
+ trvFileTypes.SelectedNode = trvFileTypes.Nodes[0];
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (components != null)
+ {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ private void LanguageForm_Load(object sender, EventArgs e) {}
+
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ private void btnOK_Click(object sender, EventArgs e)
+ {
+ OK();
+ }
+
+ private void trvFileTypes_AfterSelect(object sender, TreeViewEventArgs e)
+ {
+ var syntax = (SyntaxDefinition) e.Node.Tag;
+ lvFileTypes.Items.Clear();
+ foreach (FileType ft in syntax.FileTypes)
+ {
+ ListViewItem lvi = lvFileTypes.Items.Add(ft.Name + " (" + ft.Extension + ")");
+ lvi.Tag = ft;
+ lvi.ImageIndex = 0;
+ }
+ }
+
+ private void OK()
+ {
+ if (lvFileTypes.SelectedItems.Count == 0)
+ {
+ lvFileTypes.Items[0].Selected = true;
+ }
+
+ var syntax = (SyntaxDefinition) trvFileTypes.SelectedNode.Tag;
+ var ft = (FileType) lvFileTypes.SelectedItems[0].Tag;
+ var doc = new Document {Title = ("Untitled" + ft.Extension), Text = ""};
+
+
+ var ef = new EditForm(doc, syntax);
+ EditForm = ef;
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ private void lvFileTypes_DoubleClick(object sender, EventArgs e)
+ {
+ OK();
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ var resources = new System.Resources.ResourceManager(typeof (LanguageForm));
+ this.lvFileTypes = new System.Windows.Forms.ListView();
+ this.imlIcons = new System.Windows.Forms.ImageList(this.components);
+ this.btnOK = new System.Windows.Forms.Button();
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.trvFileTypes = new System.Windows.Forms.TreeView();
+ this.SuspendLayout();
+ //
+ // lvFileTypes
+ //
+ this.lvFileTypes.HideSelection = false;
+ this.lvFileTypes.LargeImageList = this.imlIcons;
+ this.lvFileTypes.Location = new System.Drawing.Point(176, 8);
+ this.lvFileTypes.Name = "lvFileTypes";
+ this.lvFileTypes.Size = new System.Drawing.Size(272, 224);
+ this.lvFileTypes.SmallImageList = this.imlIcons;
+ this.lvFileTypes.TabIndex = 0;
+ this.lvFileTypes.DoubleClick += new System.EventHandler(this.lvFileTypes_DoubleClick);
+ //
+ // imlIcons
+ //
+ this.imlIcons.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
+ this.imlIcons.ImageSize = new System.Drawing.Size(25, 29);
+ this.imlIcons.ImageStream =
+ ((System.Windows.Forms.ImageListStreamer) (resources.GetObject("imlIcons.ImageStream")));
+ this.imlIcons.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // btnOK
+ //
+ this.btnOK.Location = new System.Drawing.Point(288, 240);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.TabIndex = 1;
+ this.btnOK.Text = "OK";
+ this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+ //
+ // btnCancel
+ //
+ this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel.Location = new System.Drawing.Point(376, 240);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.TabIndex = 2;
+ this.btnCancel.Text = "Cancel";
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // trvFileTypes
+ //
+ this.trvFileTypes.HideSelection = false;
+ this.trvFileTypes.ImageIndex = -1;
+ this.trvFileTypes.Location = new System.Drawing.Point(8, 8);
+ this.trvFileTypes.Name = "trvFileTypes";
+ this.trvFileTypes.SelectedImageIndex = -1;
+ this.trvFileTypes.Size = new System.Drawing.Size(168, 224);
+ this.trvFileTypes.TabIndex = 3;
+ this.trvFileTypes.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.trvFileTypes_AfterSelect);
+ //
+ // LanguageForm
+ //
+ this.AcceptButton = this.btnOK;
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.CancelButton = this.btnCancel;
+ this.ClientSize = new System.Drawing.Size(458, 271);
+ this.ControlBox = false;
+ this.Controls.AddRange(new System.Windows.Forms.Control[]
+ {this.trvFileTypes, this.btnCancel, this.btnOK, this.lvFileTypes});
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.Name = "LanguageForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Select file type";
+ this.Load += new System.EventHandler(this.LanguageForm_Load);
+ this.ResumeLayout(false);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.resx
new file mode 100644
index 0000000..d6640a7
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/LanguageForm.resx
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFpTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuMzMw
+ MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZT
+ eXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMA
+ AABYCgAAAk1TRnQBSQFMAwEBAAEEAQABBAEAARkBAAEdAQAE/wEhARAI/wFCAU0BNgcAATYDAAEoAwAB
+ ZAMAAR0DAAEBAQABIAUAAVABLRUAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8D
+ AAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf//
+ AC0AA4QB/wPOAf8DzgH/A84B/wPOAf8DzgH/A84B/wPOAf8DzgH/A84B/wPOAf8DzgH/A84B/wPOAf8D
+ zgH/A84B/wPOAf8DzgH/A84B/wPOAf8DzgH/A84B/wPOAf8DzgH/AwAB//8ALQADhAX/A/cF/wP3Bf8D
+ 9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Af8DzgH/AwAB//8ALQADhAn/A/cF/wP3Bf8D
+ 9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wPOAf8DAAH//wAtAAOEBf8D9wX/AZwBYwExAf8B
+ nAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMB
+ MQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8B
+ nAFjATEF/wP3Af8DzgH/AwAB//8ALQADhAn/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D
+ 9wX/A/cF/wPOAf8DAAH//wAtAAOEBf8D9wX/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8B
+ nAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMB
+ MQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEF/wP3Af8DzgH/AwAB//8ALQAD
+ hAn/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wPOAf8DAAH//wAtAAOEBf8D
+ 9wX/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8B
+ nAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMBMQH/AZwBYwExAf8BnAFjATEB/wGcAWMB
+ MQH/AZwBYwExAf8BnAFjATEF/wP3Af8DzgH/AwAB//8ALQADhAn/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D
+ 9wX/A/cF/wP3Bf8D9wX/A/cF/wPOAf8DAAH//wAtAAOEDf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D
+ 9wX/A/cF/wP3Bf8D9wH/A84B/wMAAf//AC0AA4QJ/wP3Bf8D9wX/A/cF/wP3Bf8D9wX/A/cF/wP3Bf8D
+ 9wX/A/cF/wP3Bf8DzgH/AwAB//8ALQADhA3/A/cF/wP3Bf8D9wX/A/cB/wMAAf8DAAH/AwAB/wP3Bf8D
+ 9wX/A/cF/wP3Bf8D9wH/A84B/wMAAf//AC0AA4QJ/wP3Bf8D9wX/A/cF/wMAAf8DAAL/AgAC/wIAAv8C
+ AAH/AwAB/wMABf8D9wX/A/cF/wP3Bf8DzgH/AwAB//8ALQADhA3/A/cB/wGcAgAB/wP3Bf8BAAGcATEB
+ /wEAAZwBMQH/AQABYwEAAv8BYwExAv8BYwExAv8BYwExAv8CAAL/AgAB/wMABf8D9wH/AZwCAAH/A/cF
+ /wP3Af8DzgH/AwAB//8ALQADhA3/AZwCAAH/AfcBzgGlBf8D9wH/AQABnAExAf8BMQHOATEB/wEAAWMB
+ AAH/AQABYwEAAv8BnAEAAv8BYwExAf8BAAFjAQAB/wEAAWMBAAH/AQABhAEAAf8DAAX/AfcBzgGlAf8B
+ nAIAAf8D9wX/A84B/wMAAf//AC0AA4QG/wHvAc4B/wGcAgAB/wH3Ac4BpQX/A/cB/wEAAZwBMQX/ATEB
+ zgExAf8BAAFjAQAC/wGcAQAC/wGcAQAB/wEAAWMBAAH/ATEBzgExAf8BAAGcATEB/wEAAZwBMQH/AwAB
+ /wP3Bf8B9wHOAaUB/wGcAgAC/wHvAc4B/wPOAf8DAAH//wAtAAOEBf8BnAIAAf8B9wHOAaUF/wP3Bv8B
+ YwExAf8BAAGcATEB/wEAAZwBMQL/AZwBAAL/Ac4BMQL/AZwBAAH/AQABYwEAAf8BAAFjAQAB/wHOAf8B
+ zgH/AQABnAExAf8DAAX/A/cF/wH3Ac4BpQH/AZwCAAH/A84B/wMAAf//AC0AA4QG/wHvAc4B/wGcAgAB
+ /wH3Ac4BpQX/A/cC/wFjATED/wHOA/8BMQL/Ac4BMQL/Ac4BMQL/Ac4BMQL/AZwBAAL/AWMBMQH/AQAB
+ YwEAAf8BAAGcATEB/wMAAf8D9wX/AfcBzgGlAf8BnAIAAv8B7wHOAf8DzgH/AwAB//8ALQADhA3/AZwC
+ AAH/AfcBzgGlBv8BYwExA/8BzgL/AZwBAAH/AQABYwExAv8BYwExAv8BzgExAv8BzgExAv8BYwExAv8B
+ YwExAf8BAAFjAQAB/wMABf8B9wHOAaUB/wGcAgAB/wP3Bf8DzgH/AwAB//8ALQADhBH/AZwCAAH/A/cG
+ /wFjATEB/wEAAWMBMQH/ATEBzgExAf8BAAFjATEB/wEAAWMBMQL/Ac4BMQL/AZwBAAL/AWMBMQH/AwAF
+ /wP3Af8BnAIAAf8D9wX/A/cB/wPOAf8DAAH//wAtAAOEGf8D9wH/AQABnAExBf8BzgH/Ac4B/wExAc4B
+ MQH/AQABnAExAf8BAAFjATEB/wEAAWMBMQL/AWMBMQL/AWMBMQH/A/cF/wP3Bf8D9wX/A84B/wMAAf//
+ AC0AA4Qd/wP3Af8BAAGcATEB/wEAAZwBMQX/ATEBzgExAf8BAAGcATEB/wEAAWMBMQL/AWMBMQH/A/cF
+ /wOEAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf//AC0AA4Qh/wP3Bf8BAAGcATEB/wEAAZwBMQH/AQAB
+ nAExBf8D9wX/A/cB/wOEDf8DxgH/AwAB//8AMQADhCX/A/cF/wP3Bf8D9wX/A/cF/wOECf8DxgH/AwAB
+ //8ANQADhCn/A/cF/wP3Bf8D9wX/A/cB/wOEBf8DxgH/AwAB//8AOQADhC3/A/cF/wP3Bf8D9wX/A4QB
+ /wPGAf8DAAH//wA9AAOEOf8D9wX/A/cB/wOEAf8DAAH//wBBAAOEAf8DhAH/A4QB/wOEAf8DhAH/A4QB
+ /wOEAf8DhAH/A4QB/wOEAf8DhAH/A4QB/wOEAf8DhAH/A4QB/wOEAf8DhAH/A4QB/wOEAf//AEUAAUIB
+ TQE+BwABPgMAASgDAAFkAwABHQMAAQEBAAEBBQAB0AEBFgAD//8AdQABgA4AAQEBgA4AAQMBgA4AAQcB
+ gA4AAQ8BgA4AAR8BgCIACw==
+
+
+
+ LanguageForm
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj
new file mode 100644
index 0000000..1fe14e9
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj
@@ -0,0 +1,191 @@
+
+
+ Local
+ 9.0.21022
+ 2.0
+ {2AE13325-8AC7-4AE8-A835-F434DC3F11EF}
+ Debug
+ AnyCPU
+ App.ico
+
+
+ SyntaxBoxMDIDemo
+
+
+ JScript
+ Grid
+ IE50
+ false
+ WinExe
+ MDIDemo
+ MDIDemo.MDIParent
+
+
+ 0.0
+
+
+ http://localhost/SyntaxBoxMDIDemo/
+ true
+ Web
+ true
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ true
+ false
+ true
+
+
+ bin\Debug\
+ false
+ 285212672
+ false
+
+
+ DEBUG;TRACE
+
+
+ true
+ 4096
+ false
+ false
+ false
+ false
+ 4
+ full
+ prompt
+
+
+ bin\Release\
+ false
+ 285212672
+ false
+
+
+ TRACE
+
+
+ false
+ 4096
+ true
+ false
+ false
+ false
+ 4
+ none
+ prompt
+
+
+
+ System
+
+
+ System.Data
+
+
+ System.Drawing
+
+
+ System.Web
+
+
+ System.Web.Services
+
+
+ System.Windows.Forms
+
+
+ System.XML
+
+
+
+
+
+
+ Code
+
+
+ Code
+
+
+ Form
+
+
+ Form
+
+
+ Form
+
+
+ True
+ True
+ Resources.resx
+
+
+ Form
+
+
+ Component
+
+
+ EditForm.cs
+ Designer
+
+
+ LanguageForm.cs
+ Designer
+
+
+ MDIParent.cs
+ Designer
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ SettingsForm.cs
+ Designer
+
+
+ Style.cs
+ Designer
+
+
+
+
+ False
+ .NET Framework 2.0 %28x86%29
+ true
+
+
+ False
+ .NET Framework 3.0 %28x86%29
+ false
+
+
+ False
+ .NET Framework 3.5
+ false
+
+
+
+
+ {19EF75B2-B414-4EB0-9486-160FAF93E62C}
+ Alsing.SyntaxBox.NET
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj.user b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj.user
new file mode 100644
index 0000000..5d79810
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.csproj.user
@@ -0,0 +1,68 @@
+
+
+ Debug
+ AnyCPU
+ C:\ComponaStuff\InstallPackage\BIN\;C:\ComponaStuff\Projects\SyntaxBox\SAMPLES\SyntaxBox\Binary\;C:\output\;C:\ComponaStuff\Projects\SyntaxBox\SyntaxBox 0.98\syntaxbox\bin\Release\;c:\winnt\assembly\gac\crystaldecisions.windows.forms\9.1.3300.0__692fbea5521e1304\;c:\projects\beta with license\syntaxbox\bin\release\;c:\documents and settings\rogerj\skrivbord\beta with license\syntaxbox\bin\release\;C:\Documents and Settings\rogerj\Skrivbord\working beta 020923\editor\XTextbox\bin\Debug\;c:\documents and settings\rogerj\skrivbord\working beta 020923\editor\xtextbox\bin\release\;c:\documents and settings\rogerj\skrivbord\beta with license\editor\syntaxbox\bin\debug\;C:\Documents and Settings\rogerj\Skrivbord\beta with License\syntaxbox\bin\debug\;c:\mystuff\projects\beta with license\syntaxbox\bin\release\;C:\Documents and Settings\RogerJ\Skrivbord\demos\Binary\
+
+
+
+
+ 0
+ ProjectFiles
+ 0
+
+
+
+
+
+
+
+
+
+
+ en-US
+ true
+
+
+ false
+ false
+ false
+ false
+ false
+
+
+ Project
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+ false
+ false
+ false
+ false
+
+
+ Project
+
+
+
+
+
+
+
+
+
+
+ true
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.sln b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.sln
new file mode 100644
index 0000000..ec3f0b1
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MDIDemo", "MDIDemo.csproj", "{2AE13325-8AC7-4AE8-A835-F434DC3F11EF}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2AE13325-8AC7-4AE8-A835-F434DC3F11EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2AE13325-8AC7-4AE8-A835-F434DC3F11EF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2AE13325-8AC7-4AE8-A835-F434DC3F11EF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2AE13325-8AC7-4AE8-A835-F434DC3F11EF}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.suo b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.suo
new file mode 100644
index 0000000..0faa868
Binary files /dev/null and b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIDemo.suo differ
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.cs
new file mode 100644
index 0000000..e8a5b28
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.cs
@@ -0,0 +1,595 @@
+using System;
+using System.ComponentModel;
+using System.IO;
+using System.Text;
+using System.Windows.Forms;
+using Alsing.SourceCode;
+
+namespace MDIDemo
+{
+ ///
+ /// Summary description for MDIParent.
+ ///
+ public class MDIParent : Form
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private Container components;
+
+ private OpenFileDialog dlgOpen;
+ private PrintDialog dlgPrint;
+ private PrintPreviewDialog dlgPrintPreview;
+ private SaveFileDialog dlgSave;
+ private Label label1;
+ private MainMenu MainMenu;
+ private MenuItem menuItem1;
+
+ private MenuItem menuItem12;
+ private MenuItem menuItem17;
+ private MenuItem menuItem19;
+ private MenuItem menuItem4;
+ private MenuItem menuItem5;
+ private MenuItem mnuEdit;
+ private MenuItem mnuEdit_Copy;
+ private MenuItem mnuEdit_Cut;
+ private MenuItem mnuEdit_Delete;
+ private MenuItem mnuEdit_NextBookmark;
+ private MenuItem mnuEdit_Paste;
+ private MenuItem mnuEdit_PrevBookmark;
+ private MenuItem mnuEdit_Redo;
+ private MenuItem mnuEdit_SelectAll;
+ private MenuItem mnuEdit_ToggleBookmark;
+ private MenuItem mnuEdit_Undo;
+ private MenuItem mnuFile;
+ private MenuItem mnuFile_Exit;
+ private MenuItem mnuFile_New;
+ private MenuItem mnuFile_Open;
+ private MenuItem mnuFile_Print;
+ private MenuItem mnuFile_PrintPreview;
+ private MenuItem mnuFile_Save;
+ private MenuItem mnuFile_SaveAs;
+ private Panel panel1;
+ private Panel panel2;
+
+ #region general declarations
+
+ private readonly SyntaxDefinitionList Languages = new SyntaxDefinitionList();
+
+ #endregion
+
+ public MDIParent()
+ {
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+
+ //
+ // TODO: Add any constructor code after InitializeComponent call
+ //
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (components != null)
+ {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ [STAThread]
+ private static void Main()
+ {
+ Application.Run(new MDIParent());
+ }
+
+ private void mnuFile_Open_Click(object sender, EventArgs e)
+ {
+ //create a filter for the open dialog
+
+ //add a *.* pattern to the filter
+ string filter = "All Files(*.*)|*.*";
+
+ //get all filetypes from our syntax list.
+ foreach (SyntaxDefinition l in Languages.GetSyntaxDefinitions())
+ foreach (FileType ft in l.FileTypes)
+ //add the filetype to the filter
+ filter += "|" + ft.Name + "(*" + ft.Extension + ")|*" + ft.Extension;
+
+ //apply the filter to the dialog
+ dlgOpen.Filter = filter;
+
+ //Show the open dialog
+ dlgOpen.Title = "Select a file to open";
+ DialogResult res = dlgOpen.ShowDialog(this);
+
+ //Bail out if cancel was pressed or no file was selected.
+ if (res != DialogResult.OK || dlgOpen.FileName == "")
+ return;
+
+
+ //load the file
+ string FileName = dlgOpen.FileName;
+ var sr = new StreamReader(FileName, Encoding.Default);
+ //read the content into the "text" variable
+ string text = sr.ReadToEnd();
+
+
+ //create a new document
+ var doc = new Document {Path = FileName};
+ var fi = new FileInfo(FileName);
+ doc.Title = fi.Name;
+ doc.Text = text;
+ SyntaxDefinition syntax = Languages.GetLanguageFromFile(doc.Path);
+
+ var ef = new EditForm(doc, syntax) {MdiParent = this};
+ ef.Show();
+ }
+
+ //enable / disable menu items
+ private void mnuEdit_Popup(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null)
+ {
+ foreach (MenuItem mi in mnuEdit.MenuItems)
+ {
+ mi.Enabled = false;
+ }
+ return;
+ }
+ else
+ {
+ foreach (MenuItem mi in mnuEdit.MenuItems)
+ {
+ mi.Enabled = true;
+ }
+ }
+ var ef = (EditForm) ActiveMdiChild;
+
+ mnuEdit_Copy.Enabled = ef.sBox.CanCopy;
+ mnuEdit_Cut.Enabled = ef.sBox.CanCopy;
+ mnuEdit_Paste.Enabled = ef.sBox.CanPaste;
+ mnuEdit_Delete.Enabled = ef.sBox.CanCopy;
+ mnuEdit_Redo.Enabled = ef.sBox.CanRedo;
+ mnuEdit_Undo.Enabled = ef.sBox.CanUndo;
+ }
+
+ //perform an undo action
+ private void mnuEdit_Undo_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Undo();
+ }
+
+ //perform a redo action
+ private void mnuEdit_Redo_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Redo();
+ }
+
+ //perform a copy action
+ private void mnuEdit_Copy_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Copy();
+ }
+
+ //perform a cut action
+ private void mnuEdit_Cut_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Cut();
+ }
+
+ //paste clipboard
+ private void mnuEdit_Paste_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Paste();
+ }
+
+ //delete selected text
+ private void mnuEdit_Delete_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.Delete();
+ }
+
+ //select all
+ private void mnuEdit_SelectAll_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.SelectAll();
+ }
+
+ //toggle bookmark
+ private void mnuEdit_ToggleBookmark_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.ToggleBookmark();
+ }
+
+ //jump to next bookmark
+ private void mnuEdit_NextBookmark_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.GotoNextBookmark();
+ }
+
+ //jump to previous bookmark
+ private void mnuEdit_PrevBookmark_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ef.sBox.GotoPreviousBookmark();
+ }
+
+ private void MDIParent_Closing(object sender, CancelEventArgs e) {}
+
+ private void mnuFile_New_Click(object sender, EventArgs e)
+ {
+ var lf = new LanguageForm(Languages);
+ if (lf.ShowDialog() == DialogResult.OK)
+ {
+ lf.EditForm.MdiParent = this;
+ lf.EditForm.Show();
+ }
+ }
+
+ public void ShowSaveDialog(EditForm ef)
+ {
+ dlgSave.FileName = ef.Doc.Path;
+ if (dlgSave.ShowDialog(this) == DialogResult.OK)
+ {
+ string f = dlgSave.FileName;
+ ef.SaveAs(f);
+ }
+ }
+
+ private void mnuFile_Save_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ if (ef.Doc.Path != "")
+ ef.SaveAs(ef.Doc.Path);
+ else
+ {
+ ShowSaveDialog(ef);
+ }
+ }
+
+ private void mnuFile_SaveAs_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ ShowSaveDialog(ef);
+ }
+
+ private void mnuFile_Exit_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+
+ //print preview the active editor
+ private void mnuFile_PrintPreview_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ var pd = new SourceCodePrintDocument(ef.sDoc);
+ dlgPrintPreview.Document = pd;
+ dlgPrintPreview.ShowDialog(this);
+ }
+
+ //print the content of the active editor
+ private void mnuFile_Print_Click(object sender, EventArgs e)
+ {
+ if (ActiveMdiChild == null) return;
+ var ef = (EditForm) ActiveMdiChild;
+ var pd = new SourceCodePrintDocument(ef.sDoc);
+ dlgPrint.Document = pd;
+ if (dlgPrint.ShowDialog(this) == DialogResult.OK)
+ pd.Print();
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ var resources = new System.Resources.ResourceManager(typeof (MDIParent));
+ this.MainMenu = new System.Windows.Forms.MainMenu();
+ this.mnuFile = new System.Windows.Forms.MenuItem();
+ this.mnuFile_New = new System.Windows.Forms.MenuItem();
+ this.mnuFile_Open = new System.Windows.Forms.MenuItem();
+ this.mnuFile_Save = new System.Windows.Forms.MenuItem();
+ this.mnuFile_SaveAs = new System.Windows.Forms.MenuItem();
+ this.menuItem5 = new System.Windows.Forms.MenuItem();
+ this.mnuFile_PrintPreview = new System.Windows.Forms.MenuItem();
+ this.mnuFile_Print = new System.Windows.Forms.MenuItem();
+ this.menuItem4 = new System.Windows.Forms.MenuItem();
+ this.mnuFile_Exit = new System.Windows.Forms.MenuItem();
+ this.mnuEdit = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Undo = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Redo = new System.Windows.Forms.MenuItem();
+ this.menuItem12 = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Copy = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Cut = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Paste = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_Delete = new System.Windows.Forms.MenuItem();
+ this.menuItem17 = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_SelectAll = new System.Windows.Forms.MenuItem();
+ this.menuItem19 = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_ToggleBookmark = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_NextBookmark = new System.Windows.Forms.MenuItem();
+ this.mnuEdit_PrevBookmark = new System.Windows.Forms.MenuItem();
+ this.menuItem1 = new System.Windows.Forms.MenuItem();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.label1 = new System.Windows.Forms.Label();
+ this.dlgOpen = new System.Windows.Forms.OpenFileDialog();
+ this.dlgSave = new System.Windows.Forms.SaveFileDialog();
+ this.dlgPrintPreview = new System.Windows.Forms.PrintPreviewDialog();
+ this.dlgPrint = new System.Windows.Forms.PrintDialog();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // MainMenu
+ //
+ this.MainMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
+ {this.mnuFile, this.mnuEdit, this.menuItem1});
+ //
+ // mnuFile
+ //
+ this.mnuFile.Index = 0;
+ this.mnuFile.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
+ {
+ this.mnuFile_New, this.mnuFile_Open, this.mnuFile_Save, this.mnuFile_SaveAs
+ , this.menuItem5, this.mnuFile_PrintPreview, this.mnuFile_Print,
+ this.menuItem4, this.mnuFile_Exit
+ });
+ this.mnuFile.Text = "File";
+ //
+ // mnuFile_New
+ //
+ this.mnuFile_New.Index = 0;
+ this.mnuFile_New.Text = "New";
+ this.mnuFile_New.Click += new System.EventHandler(this.mnuFile_New_Click);
+ //
+ // mnuFile_Open
+ //
+ this.mnuFile_Open.Index = 1;
+ this.mnuFile_Open.Text = "&Open";
+ this.mnuFile_Open.Click += new System.EventHandler(this.mnuFile_Open_Click);
+ //
+ // mnuFile_Save
+ //
+ this.mnuFile_Save.Index = 2;
+ this.mnuFile_Save.Text = "&Save";
+ this.mnuFile_Save.Click += new System.EventHandler(this.mnuFile_Save_Click);
+ //
+ // mnuFile_SaveAs
+ //
+ this.mnuFile_SaveAs.Index = 3;
+ this.mnuFile_SaveAs.Text = "Save &As";
+ this.mnuFile_SaveAs.Click += new System.EventHandler(this.mnuFile_SaveAs_Click);
+ //
+ // menuItem5
+ //
+ this.menuItem5.Index = 4;
+ this.menuItem5.Text = "-";
+ //
+ // mnuFile_PrintPreview
+ //
+ this.mnuFile_PrintPreview.Index = 5;
+ this.mnuFile_PrintPreview.Text = "Print Preview";
+ this.mnuFile_PrintPreview.Click += new System.EventHandler(this.mnuFile_PrintPreview_Click);
+ //
+ // mnuFile_Print
+ //
+ this.mnuFile_Print.Index = 6;
+ this.mnuFile_Print.Text = "Print";
+ this.mnuFile_Print.Click += new System.EventHandler(this.mnuFile_Print_Click);
+ //
+ // menuItem4
+ //
+ this.menuItem4.Index = 7;
+ this.menuItem4.Text = "-";
+ //
+ // mnuFile_Exit
+ //
+ this.mnuFile_Exit.Index = 8;
+ this.mnuFile_Exit.Text = "&Exit";
+ this.mnuFile_Exit.Click += new System.EventHandler(this.mnuFile_Exit_Click);
+ //
+ // mnuEdit
+ //
+ this.mnuEdit.Index = 1;
+ this.mnuEdit.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
+ {
+ this.mnuEdit_Undo, this.mnuEdit_Redo, this.menuItem12, this.mnuEdit_Copy,
+ this.mnuEdit_Cut, this.mnuEdit_Paste, this.mnuEdit_Delete, this.menuItem17,
+ this.mnuEdit_SelectAll, this.menuItem19, this.mnuEdit_ToggleBookmark,
+ this.mnuEdit_NextBookmark, this.mnuEdit_PrevBookmark
+ });
+ this.mnuEdit.Text = "Edit";
+ this.mnuEdit.Popup += new System.EventHandler(this.mnuEdit_Popup);
+ //
+ // mnuEdit_Undo
+ //
+ this.mnuEdit_Undo.Index = 0;
+ this.mnuEdit_Undo.Shortcut = System.Windows.Forms.Shortcut.CtrlZ;
+ this.mnuEdit_Undo.Text = "Undo";
+ this.mnuEdit_Undo.Click += new System.EventHandler(this.mnuEdit_Undo_Click);
+ //
+ // mnuEdit_Redo
+ //
+ this.mnuEdit_Redo.Index = 1;
+ this.mnuEdit_Redo.Shortcut = System.Windows.Forms.Shortcut.CtrlY;
+ this.mnuEdit_Redo.Text = "Redo";
+ this.mnuEdit_Redo.Click += new System.EventHandler(this.mnuEdit_Redo_Click);
+ //
+ // menuItem12
+ //
+ this.menuItem12.Index = 2;
+ this.menuItem12.Text = "-";
+ //
+ // mnuEdit_Copy
+ //
+ this.mnuEdit_Copy.Index = 3;
+ this.mnuEdit_Copy.Shortcut = System.Windows.Forms.Shortcut.CtrlC;
+ this.mnuEdit_Copy.Text = "Copy";
+ this.mnuEdit_Copy.Click += new System.EventHandler(this.mnuEdit_Copy_Click);
+ //
+ // mnuEdit_Cut
+ //
+ this.mnuEdit_Cut.Index = 4;
+ this.mnuEdit_Cut.Shortcut = System.Windows.Forms.Shortcut.CtrlX;
+ this.mnuEdit_Cut.Text = "Cut";
+ this.mnuEdit_Cut.Click += new System.EventHandler(this.mnuEdit_Cut_Click);
+ //
+ // mnuEdit_Paste
+ //
+ this.mnuEdit_Paste.Index = 5;
+ this.mnuEdit_Paste.Shortcut = System.Windows.Forms.Shortcut.CtrlV;
+ this.mnuEdit_Paste.Text = "Paste";
+ this.mnuEdit_Paste.Click += new System.EventHandler(this.mnuEdit_Paste_Click);
+ //
+ // mnuEdit_Delete
+ //
+ this.mnuEdit_Delete.Index = 6;
+ this.mnuEdit_Delete.Text = "Delete";
+ this.mnuEdit_Delete.Click += new System.EventHandler(this.mnuEdit_Delete_Click);
+ //
+ // menuItem17
+ //
+ this.menuItem17.Index = 7;
+ this.menuItem17.Text = "-";
+ //
+ // mnuEdit_SelectAll
+ //
+ this.mnuEdit_SelectAll.Index = 8;
+ this.mnuEdit_SelectAll.Shortcut = System.Windows.Forms.Shortcut.CtrlA;
+ this.mnuEdit_SelectAll.Text = "Select All";
+ this.mnuEdit_SelectAll.Click += new System.EventHandler(this.mnuEdit_SelectAll_Click);
+ //
+ // menuItem19
+ //
+ this.menuItem19.Index = 9;
+ this.menuItem19.Text = "-";
+ //
+ // mnuEdit_ToggleBookmark
+ //
+ this.mnuEdit_ToggleBookmark.Index = 10;
+ this.mnuEdit_ToggleBookmark.Shortcut = System.Windows.Forms.Shortcut.AltF2;
+ this.mnuEdit_ToggleBookmark.Text = "Toggle Bookmark";
+ this.mnuEdit_ToggleBookmark.Click += new System.EventHandler(this.mnuEdit_ToggleBookmark_Click);
+ //
+ // mnuEdit_NextBookmark
+ //
+ this.mnuEdit_NextBookmark.Index = 11;
+ this.mnuEdit_NextBookmark.Shortcut = System.Windows.Forms.Shortcut.F2;
+ this.mnuEdit_NextBookmark.Text = "Next Bookmark";
+ this.mnuEdit_NextBookmark.Click += new System.EventHandler(this.mnuEdit_NextBookmark_Click);
+ //
+ // mnuEdit_PrevBookmark
+ //
+ this.mnuEdit_PrevBookmark.Index = 12;
+ this.mnuEdit_PrevBookmark.Shortcut = System.Windows.Forms.Shortcut.ShiftF2;
+ this.mnuEdit_PrevBookmark.Text = "Prev Bookmark";
+ this.mnuEdit_PrevBookmark.Click += new System.EventHandler(this.mnuEdit_PrevBookmark_Click);
+ //
+ // menuItem1
+ //
+ this.menuItem1.Index = 2;
+ this.menuItem1.MdiList = true;
+ this.menuItem1.Text = "Window";
+ //
+ // panel1
+ //
+ this.panel1.BackColor = System.Drawing.SystemColors.ActiveCaption;
+ this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {this.label1});
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel1.Location = new System.Drawing.Point(0, 549);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(696, 24);
+ this.panel1.TabIndex = 1;
+ //
+ // label1
+ //
+ this.label1.BackColor = System.Drawing.SystemColors.ActiveCaption;
+ this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold,
+ System.Drawing.GraphicsUnit.Point, ((System.Byte) (0)));
+ this.label1.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(696, 24);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Powered by Compona SyntaxBox";
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // dlgSave
+ //
+ this.dlgSave.FileName = "doc1";
+ //
+ // dlgPrintPreview
+ //
+ this.dlgPrintPreview.AutoScrollMargin = new System.Drawing.Size(0, 0);
+ this.dlgPrintPreview.AutoScrollMinSize = new System.Drawing.Size(0, 0);
+ this.dlgPrintPreview.ClientSize = new System.Drawing.Size(400, 300);
+ this.dlgPrintPreview.Enabled = true;
+ this.dlgPrintPreview.Icon = ((System.Drawing.Icon) (resources.GetObject("dlgPrintPreview.Icon")));
+ this.dlgPrintPreview.Location = new System.Drawing.Point(302, 17);
+ this.dlgPrintPreview.MaximumSize = new System.Drawing.Size(0, 0);
+ this.dlgPrintPreview.Name = "dlgPrintPreview";
+ this.dlgPrintPreview.Opacity = 1;
+ this.dlgPrintPreview.TransparencyKey = System.Drawing.Color.Empty;
+ this.dlgPrintPreview.Visible = false;
+ //
+ // panel2
+ //
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel2.Location = new System.Drawing.Point(0, 541);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(696, 8);
+ this.panel2.TabIndex = 3;
+ //
+ // MDIParent
+ //
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.ClientSize = new System.Drawing.Size(696, 573);
+ this.Controls.AddRange(new System.Windows.Forms.Control[] {this.panel2, this.panel1});
+ this.Icon = ((System.Drawing.Icon) (resources.GetObject("$this.Icon")));
+ this.IsMdiContainer = true;
+ this.Menu = this.MainMenu;
+ this.Name = "MDIParent";
+ this.Text = "ComPad";
+ this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+ this.Closing += new System.ComponentModel.CancelEventHandler(this.MDIParent_Closing);
+ this.panel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.resx
new file mode 100644
index 0000000..ceacf30
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/MDIParent.resx
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 119, 17
+
+
+ 212, 17
+
+
+ 302, 17
+
+
+
+ AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/
+ AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiI
+ iIiIiIiIiIiIiIAACAAAAAjMzMzMzMzIAAiAAAgAAAAIzubm5ubmyAAIgAAIAAAACM5ubm5ubsgACIAA
+ CAAAAAjO5ubm5ubIAAiAAAgAAAAIzm5ubm5uyAAIgAAIAAAACM7m5ubm5sgACIiIiIiIiIjObm5ubm7I
+ AAiBEREREREYzu7u7u7uyAAIgdlZWVlZGMzMzMzMzMgACIHVlZWVlRiIiIiIiIiIiIiB2VlZWVkYMzMz
+ MzMzMzM4gdWVlZWVGD+4uLi4uLi4OIHZWVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZ
+ GD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHd
+ 3d3d3Rg/u4uLi4uLiziBEREREREYP7i4uLi4uLg4iIiIiIiIiD+7i4uLi4uLOIAAAAAAAAg/uLi4uLi4
+ uDiAAAAAAAAIP7uLi4uLi4s4gAAAAAAACD+4uLi4uLi4OIAAAAAAAAg/u7u7u7u7uziAAAAAAAAIP///
+ //////84gAAAAAAACDMzMzMzMzMzOIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAAAAAAAAAAAAAA////////
+ //8AAAAAe/gADnv4AA57+AAOe/gADnv4AA57+AAOAAAADgAAAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gAAH/4AAB/+AAAf/gAAH/4AAB/+AAAAAAAAP//
+ //8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
+ AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAiIiIiIiI
+ iIiACACMzMzICIAIAIzmZsgIiIiIjO7uyAiBERGMzMzICIHZkYiIiIiIgdmRgzMzMziB2ZGD+7u7OIHd
+ 0YP7u7s4gRERg/u7uziIiIiD+7u7OIAAAIP7u7s4gAAAg////ziAAACDMzMzOIiIiIiIiIiI//8AAAAA
+ AABsAgAAbAIAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAHwAAAB8AAAAAAAAAA==
+
+
+
+ 430, 17
+
+
+ MDIParent
+
+
+
+ AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAB
+ AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAMDcwADwyqYABAQEAAgICAAMDAwAERERABYW
+ FgAcHBwAIiIiACkpKQBVVVUATU1NAEJCQgA5OTkAgHz/AFBQ/wCTANYA/+zMAMbW7wDW5+cAkKmtAAAA
+ MwAAAGYAAACZAAAAzAAAMwAAADMzAAAzZgAAM5kAADPMAAAz/wAAZgAAAGYzAABmZgAAZpkAAGbMAABm
+ /wAAmQAAAJkzAACZZgAAmZkAAJnMAACZ/wAAzAAAAMwzAADMZgAAzJkAAMzMAADM/wAA/2YAAP+ZAAD/
+ zAAzAAAAMwAzADMAZgAzAJkAMwDMADMA/wAzMwAAMzMzADMzZgAzM5kAMzPMADMz/wAzZgAAM2YzADNm
+ ZgAzZpkAM2bMADNm/wAzmQAAM5kzADOZZgAzmZkAM5nMADOZ/wAzzAAAM8wzADPMZgAzzJkAM8zMADPM
+ /wAz/zMAM/9mADP/mQAz/8wAM///AGYAAABmADMAZgBmAGYAmQBmAMwAZgD/AGYzAABmMzMAZjNmAGYz
+ mQBmM8wAZjP/AGZmAABmZjMAZmZmAGZmmQBmZswAZpkAAGaZMwBmmWYAZpmZAGaZzABmmf8AZswAAGbM
+ MwBmzJkAZszMAGbM/wBm/wAAZv8zAGb/mQBm/8wAzAD/AP8AzACZmQAAmTOZAJkAmQCZAMwAmQAAAJkz
+ MwCZAGYAmTPMAJkA/wCZZgAAmWYzAJkzZgCZZpkAmWbMAJkz/wCZmTMAmZlmAJmZmQCZmcwAmZn/AJnM
+ AACZzDMAZsxmAJnMmQCZzMwAmcz/AJn/AACZ/zMAmcxmAJn/mQCZ/8wAmf//AMwAAACZADMAzABmAMwA
+ mQDMAMwAmTMAAMwzMwDMM2YAzDOZAMwzzADMM/8AzGYAAMxmMwCZZmYAzGaZAMxmzACZZv8AzJkAAMyZ
+ MwDMmWYAzJmZAMyZzADMmf8AzMwAAMzMMwDMzGYAzMyZAMzMzADMzP8AzP8AAMz/MwCZ/2YAzP+ZAMz/
+ zADM//8AzAAzAP8AZgD/AJkAzDMAAP8zMwD/M2YA/zOZAP8zzAD/M/8A/2YAAP9mMwDMZmYA/2aZAP9m
+ zADMZv8A/5kAAP+ZMwD/mWYA/5mZAP+ZzAD/mf8A/8wAAP/MMwD/zGYA/8yZAP/MzAD/zP8A//8zAMz/
+ ZgD//5kA///MAGZm/wBm/2YAZv//AP9mZgD/Zv8A//9mACEApQBfX18Ad3d3AIaGhgCWlpYAy8vLALKy
+ sgDX19cA3d3dAOPj4wDq6uoA8fHxAPj4+ADw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
+ AAD///8ACgoKCgwMDAoKDAwMCgoKCgoKCgxtdHMMDOsc7AwKCgoKCjwSeTJZ6wp6MnrrPAoKCgoKc1ky
+ OBwSWTJZeQoKCgoKCkN6ODgc7Fk4WUMKCgoKPBMSSiNZeXlZI0oSEjwKX0p5dEoSWZSUWepKeVhKXwqZ
+ WVlYeZQyMpR5WFlZegoKmjIyWViUMjKUeVkyMnoKPHNZWUttWZSUWetLWFlzPAo8c3MVI1lYeVkjFetz
+ PAoKCgoQeVk4HO1ZOHoRCgoKCgoKc1kyOHNtWTJZHAoKCgoKDOt6MlkK6lkyWXMMCgoKCgoMc3ocDAxz
+ ehwMCgoKCgoKCgoKCgoKCgoKCgoKCvGPAADgBwAAwAMAAMADAADAAwAAgAEAAAAAAAAAAAAAAAAAAAAA
+ AACAAQAAwAMAAMADAADAAwAA4AcAAPGPAAA=
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.Designer.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..e56ca04
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3031
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace MDIDemo.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MDIDemo.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.resx
new file mode 100644
index 0000000..5ea0895
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Properties/Resources.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.cs
new file mode 100644
index 0000000..abd0a99
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.cs
@@ -0,0 +1,243 @@
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Windows.Forms;
+using Alsing.SourceCode;
+using Alsing.Windows.Forms;
+
+namespace MDIDemo
+{
+ ///
+ /// Summary description for SettingsForm.
+ ///
+ public class SettingsForm : Form
+ {
+ private readonly SyntaxBoxControl sb;
+ private Button btnCancel;
+ private Button btnOK;
+ private IContainer components;
+ private ImageList imageList1;
+ private Label lblPreview;
+ private ListBox lbStyles;
+ private Panel panel1;
+ private Panel panel2;
+ private PropertyGrid pgStyles;
+ private Splitter splitter1;
+ private Splitter splitter2;
+
+ public SettingsForm(SyntaxBoxControl sb)
+ {
+ //
+ // Required for Windows Form Designer support
+ //
+ InitializeComponent();
+ this.sb = sb;
+
+ SyntaxDefinition l = sb.Document.Parser.SyntaxDefinition;
+ TextStyle[] tss = l.Styles;
+
+
+ lbStyles.Items.Clear();
+ for (int i = 0; i < tss.Length; i++)
+ {
+ TextStyle ts = tss[i];
+ var s = new Style {TextStyle = ts, Name = ts.Name};
+ //s.Name=ts.Name;
+ lbStyles.Items.Add(s);
+ }
+ lbStyles.SelectedIndex = 0;
+ }
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (components != null)
+ {
+ components.Dispose();
+ }
+ }
+ base.Dispose(disposing);
+ }
+
+ private void SettingsForm_Load(object sender, EventArgs e) {}
+
+ private void lbStyles_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ pgStyles.SelectedObject = lbStyles.SelectedItem;
+ var st = lbStyles.SelectedItem as Style;
+ PreviewStyle(st);
+ }
+
+ private void pgStyles_PropertyValueChanged(object s, PropertyValueChangedEventArgs e)
+ {
+ var st = lbStyles.SelectedItem as Style;
+ PreviewStyle(st);
+ sb.Refresh();
+ }
+
+ private void PreviewStyle(Style s)
+ {
+ lblPreview.ForeColor = s.ForeColor;
+ lblPreview.BackColor = s.BackColor != Color.Transparent ? s.BackColor : sb.BackColor;
+
+ FontStyle fs = FontStyle.Regular;
+ if (s.FontBold)
+ fs |= FontStyle.Bold;
+ if (s.FontItalic)
+ fs |= FontStyle.Italic;
+ if (s.FontUnderline)
+ fs |= FontStyle.Underline;
+
+ lblPreview.Font = new Font("Courier New", 11f, fs);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.pgStyles = new System.Windows.Forms.PropertyGrid();
+ this.imageList1 = new System.Windows.Forms.ImageList(this.components);
+ this.splitter1 = new System.Windows.Forms.Splitter();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.lblPreview = new System.Windows.Forms.Label();
+ this.splitter2 = new System.Windows.Forms.Splitter();
+ this.lbStyles = new System.Windows.Forms.ListBox();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.btnOK = new System.Windows.Forms.Button();
+ this.panel1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // pgStyles
+ //
+ this.pgStyles.CommandsVisibleIfAvailable = true;
+ this.pgStyles.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pgStyles.HelpVisible = false;
+ this.pgStyles.LargeButtons = false;
+ this.pgStyles.LineColor = System.Drawing.SystemColors.ScrollBar;
+ this.pgStyles.Name = "pgStyles";
+ this.pgStyles.Size = new System.Drawing.Size(304, 265);
+ this.pgStyles.TabIndex = 0;
+ this.pgStyles.Text = "propertyGrid1";
+ this.pgStyles.ToolbarVisible = false;
+ this.pgStyles.ViewBackColor = System.Drawing.SystemColors.Window;
+ this.pgStyles.ViewForeColor = System.Drawing.SystemColors.WindowText;
+ this.pgStyles.PropertyValueChanged +=
+ new System.Windows.Forms.PropertyValueChangedEventHandler(this.pgStyles_PropertyValueChanged);
+ //
+ // imageList1
+ //
+ this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
+ this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
+ this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
+ //
+ // splitter1
+ //
+ this.splitter1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.splitter1.Location = new System.Drawing.Point(189, 7);
+ this.splitter1.Name = "splitter1";
+ this.splitter1.Size = new System.Drawing.Size(6, 265);
+ this.splitter1.TabIndex = 1;
+ this.splitter1.TabStop = false;
+ //
+ // panel1
+ //
+ this.panel1.Controls.AddRange(new System.Windows.Forms.Control[]
+ {this.splitter2, this.lblPreview, this.pgStyles});
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Right;
+ this.panel1.Location = new System.Drawing.Point(195, 7);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(304, 265);
+ this.panel1.TabIndex = 3;
+ //
+ // lblPreview
+ //
+ this.lblPreview.BackColor = System.Drawing.SystemColors.Window;
+ this.lblPreview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.lblPreview.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.lblPreview.Font = new System.Drawing.Font("Courier New", 11F, System.Drawing.FontStyle.Regular,
+ System.Drawing.GraphicsUnit.Point, ((System.Byte) (0)));
+ this.lblPreview.Location = new System.Drawing.Point(0, 169);
+ this.lblPreview.Name = "lblPreview";
+ this.lblPreview.Size = new System.Drawing.Size(304, 96);
+ this.lblPreview.TabIndex = 3;
+ this.lblPreview.Text = "The quick brown fox jumped over the cliff";
+ this.lblPreview.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ //
+ // splitter2
+ //
+ this.splitter2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.splitter2.Location = new System.Drawing.Point(0, 163);
+ this.splitter2.Name = "splitter2";
+ this.splitter2.Size = new System.Drawing.Size(304, 6);
+ this.splitter2.TabIndex = 4;
+ this.splitter2.TabStop = false;
+ //
+ // lbStyles
+ //
+ this.lbStyles.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbStyles.IntegralHeight = false;
+ this.lbStyles.Location = new System.Drawing.Point(7, 7);
+ this.lbStyles.Name = "lbStyles";
+ this.lbStyles.Size = new System.Drawing.Size(182, 265);
+ this.lbStyles.Sorted = true;
+ this.lbStyles.TabIndex = 4;
+ this.lbStyles.SelectedIndexChanged += new System.EventHandler(this.lbStyles_SelectedIndexChanged);
+ //
+ // panel2
+ //
+ this.panel2.Controls.AddRange(new System.Windows.Forms.Control[] {this.btnCancel, this.btnOK});
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel2.Location = new System.Drawing.Point(7, 272);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(492, 40);
+ this.panel2.TabIndex = 5;
+ //
+ // btnCancel
+ //
+ this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel.Location = new System.Drawing.Point(408, 9);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.TabIndex = 4;
+ this.btnCancel.Text = "Cancel";
+ //
+ // btnOK
+ //
+ this.btnOK.Location = new System.Drawing.Point(320, 9);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.TabIndex = 3;
+ this.btnOK.Text = "OK";
+ //
+ // SettingsForm
+ //
+ this.AcceptButton = this.btnOK;
+ this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+ this.CancelButton = this.btnCancel;
+ this.ClientSize = new System.Drawing.Size(506, 319);
+ this.Controls.AddRange(new System.Windows.Forms.Control[]
+ {this.lbStyles, this.splitter1, this.panel1, this.panel2});
+ this.DockPadding.All = 7;
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "SettingsForm";
+ this.Text = "SettingsForm";
+ this.Load += new System.EventHandler(this.SettingsForm_Load);
+ this.panel1.ResumeLayout(false);
+ this.panel2.ResumeLayout(false);
+ this.ResumeLayout(false);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.resx
new file mode 100644
index 0000000..d340b97
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/SettingsForm.resx
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ SettingsForm
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.cs b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.cs
new file mode 100644
index 0000000..2ac0451
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.cs
@@ -0,0 +1,84 @@
+using System.ComponentModel;
+using System.Drawing;
+using Alsing.SourceCode;
+
+
+namespace MDIDemo
+{
+ public class Style : Component
+ {
+ private Container components;
+ public string Name = "";
+ public TextStyle TextStyle;
+
+ public Style(IContainer container)
+ {
+ container.Add(this);
+ InitializeComponent();
+ }
+
+ public Style()
+ {
+ InitializeComponent();
+ }
+
+ [Category("Color")]
+ public Color ForeColor
+ {
+ get { return TextStyle.ForeColor; }
+ set { TextStyle.ForeColor = value; }
+ }
+
+ [Category("Color")]
+ public Color BackColor
+ {
+ get { return TextStyle.BackColor; }
+ set { TextStyle.BackColor = value; }
+ }
+
+ [Category("Font")]
+ public bool FontBold
+ {
+ get { return TextStyle.Bold; }
+ set { TextStyle.Bold = value; }
+ }
+
+ [Category("Font")]
+ public bool FontItalic
+ {
+ get { return TextStyle.Italic; }
+ set { TextStyle.Italic = value; }
+ }
+
+ [Category("Font")]
+ public bool FontUnderline
+ {
+ get { return TextStyle.Underline; }
+ set { TextStyle.Underline = value; }
+ }
+
+ public Container Components
+ {
+ get { return components; }
+ }
+
+
+ public override string ToString()
+ {
+ return Name;
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.resx b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.resx
new file mode 100644
index 0000000..6b3c4ce
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/Style.resx
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.0.0.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3102.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/6502.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/6502.syn
new file mode 100644
index 0000000..13e4518
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/6502.syn
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ADC AND ASL
+BCC BCS BEQ BIT BMI BNE BPL BRA BRK BVC BVS
+CLC CLD CLI CLV CMP CPX CPY
+DEC DEX DEY
+EOR
+INC INX INY
+JMP JSR
+LDA LDX LDY LSR
+NOP
+ORA
+PHA PHP PHX PHY PLA PLP PLX PLY
+ROL ROR RTI RTS
+SBC SEC SED SEI STA STX STY STZ
+TAX TAY TSX TXA TXS TYA
+
+
+
+
+
+
+.byte .text .word .asc .scrl .scru .include .incbin .label .goto .if .end .enrty .opt
+.set .title
+X
+Y
+C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+$
+%
+(
+)
++
+,
+;
+*=
+*
+=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/ASP.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/ASP.Syn
new file mode 100644
index 0000000..e23ad92
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/ASP.Syn
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+And As
+Call Case Class Const
+Dim Do
+Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit
+For Function
+Get Goto
+If Imp Is
+Let Loop
+Mod
+Next New Not Nothing Null
+On Option Or
+Private Property Public
+Randomize ReDim Rem Resume
+Select Set Stop Sub
+Then To
+Until
+Wend While With
+True False
+
+
+
+
+
+
+Server Request Response Session Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/C++.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/C++.syn
new file mode 100644
index 0000000..2dcdcb4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/C++.syn
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bool NULL
+char class const case catch const_cast
+double default do delete dynamic_cast
+else enum explicit export extern
+for false float friend
+if inline int
+long
+mutable
+new namespace
+operator
+protected private public
+reinterpret_cast return
+short signed sizeof static struct static_cast switch
+template throw true typedef typename this try typeid
+union unsigned using
+virtual void volatile
+wchar_t while
+
+
+
+
+
+
+
+
+
+
+asm auto
+break
+continue
+goto
+register
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSS.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSS.Syn
new file mode 100644
index 0000000..086144e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSS.Syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+BODY DIV SPAN TABLE TD TR TEXTAREA
+A:link
+A:visited
+A:active
+A:hover
+A
+INPUT SELECT TH
+OL
+UL
+LI
+BUTTON
+OBJECT
+LABEL
+P
+IMG
+H1
+H2
+H3
+H4
+H5
+PRE
+CODE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSharp.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSharp.syn
new file mode 100644
index 0000000..f0a8a6e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/CSharp.syn
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract base break byte case catch checked class const continue
+ default delegate do
+ else enum event exdouble explicit extern
+ false finally fixed for foreach
+ get goto
+ if implicit in interface internal is
+ lock
+ namespace new null
+ object operator out override
+ private protected public
+ readonly ref return
+ sealed set sizeof static struct switch
+ this throw true try typeof
+ unchecked unsafe using
+ virtual
+ while
+
+
+
+
+
+
+
+
+
+
+ string exfloat float int long sbyte short uint ulong void double decimal bool char ushort
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Cobol.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Cobol.syn
new file mode 100644
index 0000000..ea8f772
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Cobol.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ accept access acquire actual add address advancing after all allowing alphabet alphabetic alphabetic-lower alphabetic-upper alphanumeric alphanumeric-edited also alter alternate and any apply are area areas as ascending assign at attribute author auto auto-hyphen-skip auto-skip automatic autoterminate background-color background-colour backward basis beep before beginning bell binary blank blink blinking block bold bottom box boxed by c01 c02 c02 c04 c05 c06 c07 c08 c09 c10 c11 c12 cancel cbl cd centered cf ch chain chaining changed character characters chart class clock-units close cobol code code-set col collating color colour column com-reg comma command-line commit commitment common communication comp comp-0 comp-1 comp-2 comp-3 comp-4 comp-5 comp-6 comp-x compression computational computational-1 computational-2 computational-3 computational-4 computational-5 computational-6 computational-x computational compute configuration console contains content continue control control-area controls conversion convert converting core-index corr corresponding count crt crt-under csp currency current-date cursor cycle cyl-index cyl-overflow data date date-compiled date-written day day-of-week dbcs de debug debug-contents debug-item debug-line debug-name debug-sub-1 debug-sub-2 debug-sub-3 debugging decimal-point declaratives default delete delimited delimiter depending descending destination detail disable disk disp display display-1 display-st divide division down draw drop duplicates dynamic echo egcs egi eject emi empty-check enable encryption end end-accept end-add end-call end-chain end-compute end-delete end-display end-divide end-invoke end-multiply end-of-page end-perform end-read end-receive end-return end-rewrite end-search end-start end-string end-subtract end-unstring end-write ending enter entry environment environment-division eol eop eos equal equals erase error escape esi every examine exceeds exception excess-3 exclusive exec execute exhibit extend extended-search external externally-described-key factory false fd fh--fcd fh--keydef file file-control file-id file-limit file-limits file-prefix filler final first fixed footing for foreground-color foreground-colour footing format from full function generate giving global go goback greater grid group heading high high-value high-values highlight i-o i-o-control id identification ignore in index indexed indic indicate indicator indicators inheriting initial initialize initiate input input-output insert inspect installation into invalid invoke invoked is japanese just justified kanji kept key keyboard label last leading leave left lrft-justify leftline length length-check less limit limits lin linage linage-counter line line-counter lines linkage local-storage lock lock-holding locking low low-value low-values lower lowlight manual mass-update master-index memory merge message method mode modified modules more-labels move multiple multiply name named national national-edited native nchar negative next no no-echo nominal not note nstd-reels null nulls number numeric numeric-edited numeric-fill o-fill object object-computer object-storage occurs of off omitted on oostackptr open optional or order organization other others otherwise output overflow overline packed-decimal padding page page-counter packed-decimal paragraph password pf ph pic picture plus pointer pop-up pos position positioning positive previous print print-control print-switch printer printer-1 printing prior private procedure procedure-pointer procedures proceed process processing program program-id prompt protected public purge queue quote quotes random range rd read readers ready receive record record-overflow recording records redefines reel reference references relative release reload remainder remarks removal renames reorg-criteria repeated replace replacing report reporting reports required reread rerun reserve reset resident return return-code returning reverse reverse-video reversed rewind rewrite rf rh right right-justify rollback rolling rounded run s01 s02 s03 s04 s05 same screen scroll sd search section secure security seek segment segment-limit select selective self selfclass send sentence separate sequence sequential service set setshadow shift-in shift-out sign size skip1 skip2 skip3 sort sort-control sort-core-size sort-file-size sort-merge sort-message sort-mode-size sort-option sort-return source source-computer space spaces space-fill spaces special-names standard standard-1 standard-2 start starting status stop store string sub-queue-1 sub-queue-2 sub-queue-3 subfile subtract sum super supress symbolic sync synchronized sysin sysipt syslst sysout syspch syspunch system-info tab tallying tape terminal terminal-info terminate test text than through thru time time-of-day time-out timeout times title to top totaled totaling trace track-area track-limit tracks trailing trailing-sign transaction transform true type typedef underline underlined unequal unit unlock unstring until up update updaters upon upper upsi-0 upsi-1 upsi-2 upsi-3 upsi-4 upsi-5 upsi-6 upsi-7 usage use user using value values variable varying wait when-compiled window with words working-storage wrap write write-only write-verify writerszero zero zero-fill zeros zeroes
+
+
+
+
+ call exit else end-if end-evaluate evaluate if perform then when
+
+
+
+
+ 01 15 77 78 z 88
+
+
+
+
+ x 02 03 04 05
+
+
+
+
+ copy d ddebug
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ $ % " & * ( ) _ + = | \ / { } [ ] : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DOSBatch.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DOSBatch.syn
new file mode 100644
index 0000000..4bf7c3f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DOSBatch.syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % > < * ? $e [ call do echo errorlevel exit exist edit edlin for goto if in not off on pause prompt path qbasic set shift
+
+
+
+
+
+ attrib append backup cd choice cls copy chdir command comp chkdsk del dir deltree diskcopy debug diskcomp doskey expand format fc fdisk find ftp graphics help interlnk intersvr keyb label loadfix mkdir md mode msd more mem move msav msbackup nslfunc print rd rmdir replace restore sort share smartdrv sys scandisk setver subst setver type tree undelete unformat ver vol vsafe xcopy setlocal endlocal
+
+
+
+
+ date time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ( ) + = | @ { } [ ] ; ' < > , . / = ~ ! " &
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DataFlex.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DataFlex.syn
new file mode 100644
index 0000000..2815922
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/DataFlex.syn
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #endheader #header #include #replace
+
+
+
+
+ abort abort_transaction accept activate_view add append append_output ascii attach autopage backfield begin begin_contraints begin_transaction blankform body break broadcast broadcast_focus calc calculate call call_driver cd_end_object cd_popup_object chain character class clear clear_option clearform clearscreen clearwarning clearxy close close_input close_output cmdline constrain contrained_clear constrained_find constraint_set constraint_validate copy_db copy_records copyfile create_field create_index date debug declare_datafile decrement deferred_view define delegate delete delete_db delete_field delete_index dependent_item despool direct_input direct_output directory diskfree display else end end_class end_constraints end_function end_enumeration_list end_item_group end_item_list end_object end_procedure end_transaction end_type endgroup entagain entdisplay enter enterend entergroup entermode entry entry_item entry_name_item enumeration_list erase_file error error_report export_files field field_def field_map file_mode file_size filelist fill_field find for format formfeed forward forward_begin_construct forward_end_construct from function function_return get get_argument_size get_attribute get_channel_position get_channel_size get_current_colors get_current_directory get_current_input_channel get_current_lockcount get_current_output_channel get_current_user_count get_date_format get_environment get_field_value get_filelist get_licensed_max_users get_number_format get_resource_name get_resource_type get_transaction_retry get_video_mode gosub goto gotoxy group header help if ifchange import_class_protocol inactivate include_resource increment ind index_def indicate inherit_screen inkey inkey$ input insert is_file_included item_group item_list keycheck keyproc left length load_def local_driver local lock login logout loop make_file memory mid move movedate moveint movenum movereal movestr move_sub_page name name_item name_items name_object next not object on on_item on_key on_name_item open output output_aux_file output_wrap pad page pagecheck pathname pos print print_wrap procedure procedure_return property read read_block read_dfini read_hex readln register_function register_object register_procedure register_resource registration relate renamefile repeat repeat_item replace report reportend reread return right runprogram save saverecord screenmode screen_optimize section send set set_argument_size set_attribute set_channel_position set_dfpath set_field_value set_filelist set_option set_relate set_resource_library set_transaction_retry set_video_mode setchange show showln showxy sleep sort start_ui stop structure_abort structure_copy structure_end structure_start sub sub_page subtotal sysconf sysdate sysdate4 system to trim type ui_accept unload_driver unlock until uppercase use vconstrain vfind while write write_hex writeln zerofile
+
+
+
+
+ abs acos asin atan callback center cos eval exp hi log low lowercase ltrim mod overstrike random remove replaces round rtrim sin sqrt status tan
+
+
+
+
+ an and as contains eq ge gt iand in ior is le lt match matches max min ne or
+
+
+
+
+ autoback autoclear autofind autofind_ge autoreturn capslock channel check displayonly fill findreq float$ forceput modal_insert no_calc noenter noput points range required resident resource retain retainall signrt skipfound suppress thousands wait zero_suppress
+
+
+
+
+ constrain_found_count constrain_tests_count current_image current_window
+
+
+
+
+ indicator integer number real string
+
+
+
+
+
+
+
+
+
+
+ + - * / ( ) ^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Delphi.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Delphi.syn
new file mode 100644
index 0000000..1298b88
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Delphi.syn
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ absolute
+abstract
+and
+array
+as
+asm
+at
+automated
+begin
+case
+cdecl
+class
+const
+constructor
+default
+deprecated
+destructor
+dispinterface
+div
+do
+downto
+dynamic
+else
+end
+except
+export
+exports
+far
+finalization
+finally
+for
+function
+goto
+if
+implementation
+in
+inherited
+initialization
+inline
+interface
+is
+label
+library
+message
+mod
+near
+nil
+nodefault
+not
+object
+of
+on
+or
+out
+overload
+packed
+pascal
+platform
+private
+procedure
+program
+property
+protected
+public
+published
+raise
+read
+record
+register
+repeat
+resourcestring
+safecall
+set
+shl
+shr
+stdcall
+stored
+then
+threadvar
+to
+try
+type
+unit
+until
+uses
+var
+while
+virtual
+with
+write
+xor
+
+
+
+
+
+
+
+
+
+
+ bool
+boolean
+byte
+cardinal
+char
+comp
+double
+extended
+file
+int64
+integer
+longbool
+longint
+longword
+pchar
+pointer
+real
+shortbool
+shortint
+single
+smallint
+string
+word
+wordbool
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Fortran90.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Fortran90.syn
new file mode 100644
index 0000000..24f88c1
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Fortran90.syn
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ADMIT ALLOCATABLE ALLOCATE ASSIGN ASSIGNMENT AT BACKSPACE BLOCK CALL CASE CHARACTER CLOSE COMMON COMPLEX CONTAINS CONTINUE CYCLE DATA DEALLOCATE DEFAULT DIMENSION DO DOUBLE ELSE ELSEIF ELSEWHERE END ENDDO ENDFILE ENDIF ENDWHILE ENTRY EQUIVALENCE EXECUTE EXIT EXTERNAL FORALL FORMAT FUNCTION GO GOTO GUESS IF IMPLICIT IN INOUT INQUIRE INTEGER INTENT INTERFACE INTRINSIC KIND LOGICAL LOOP MAP MODULE NAMELIST NONE NULLIFY ONLY OPEN OPERATOR OPTIONAL OTHERWISE OUT PARAMETER POINTER PRIVATE PROCEDURE PROGRAM PUBLIC QUIT READ REAL RECORD RECURSIVE REMOTE RESULT RETURN REWIND SAVE SELECT SEQUENCE STOP STRUCTURE SUBROUTINE TARGET THEN TO TYPE UNION UNTIL USE WHERE WHILE WRITE
+
+
+
+
+ .AND. .EQ. .EQV. .GE. .GT. .LE. .LT. .NE. .NEQV. .NOT. .OR.
+
+
+
+
+ ABS ACHAR ACOS ADJUSTL ADJUSTR AIMAG AINT ALL ALLOCATED ANINT ANY ASIN ASSOCIATED ATAN ATAN2 BIT_SIZE BREAK BTEST CARG CEILING CHAR CMPLX CONJG COS COSH COUNT CSHIFT DATE_AND_TIME DBLE DIGITS DIM DOT_PRODUCT DPROD DVCHK EOSHIFT EPSILON ERROR EXP EXPONENT FLOOR FLUSH FRACTION GETCL HUGE IACHAR IAND IBCLR IBITS IBSET ICHAR IEOR INDEX INT INTRUP INVALOP IOR IOSTAT_MSG ISHFT ISHFTC LBOUND LEN LEN_TRIM LGE LGT LLE LLT LOG LOG10 MATMUL MAX MAXEXPONENT MAXLOC MAXVAL MERGE MIN MINEXPONENT MINLOC MINVAL MOD MODULO MVBITS NBREAK NDPERR NDPEXC NEAREST NINT NOT OFFSET OVEFL PACK PRECFILL PRECISION PRESENT PRODUCT PROMPT RADIX RANDOM_NUMBER RANDOM_SEED RANGE REPEAT RESHAPE RRSPACING SCALE SCAN SEGMENT SELECTED_INT_KIND SELECTED_REAL_KIND SET_EXPONENT SHAPE SIGN SIN SINH SIZE SPACING SPREAD SQRT SUM SYSTEM SYSTEM_CLOCK TAN TANH TIMER TINY TRANSFER TRANSPOSE TRIM UBOUND UNDFL UNPACK VAL VERIFY
+
+
+
+
+ ASSIGN BACKSPACE CLOSE ENDFILE OPEN PAUSE PRINT READ REWIND WRITE
+
+
+
+
+ ACCESS ACTION BLANK BLOCKSIZE CARRIAGECONTROL DIRECT ERR EXIST FILE FMT FORM FORMATTED FROM IOSTAT LOCATION NAME NAMED NEXTREC NUMBER OPENED POSITION RECL RECORDTYPE SEQUENTIAL STAT STATUS UNFORMATTED UNIT
+
+
+
+
+ INCLUDE
+
+
+
+
+ == = < > + * " - // / ! &
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/FoxPro.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/FoxPro.syn
new file mode 100644
index 0000000..abff12c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/FoxPro.syn
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ACCEPT ACTIVATE ACTIVATE ALTERNATIVE AMERICAN AND ANSI APPEND ARRAY AUTOSAVE AVERAGE BAR BELL BLANK BLICK BLOCKSIZE BOX BORDER BROWSE BRSTATUS BUILD BUILD EXE BUILD PROJECT CALCULATE CALL CANCEL CARRY CASE CENTURY CHANGE CLEAR CLOCK CLOSE COLLATE COLOR COMMAND COMPILE COMPATABLE CONFIRM CONSOLE CONTINUE COPY COUNT CPCOMPILE CPDIALOG CREATE CURRENCY CURSOR DATABASES DATE DEACTIVATE DEBUG DECIMALS DECLARE DEFAULT DEFINE DELETE DELETED DELIMITERS DEVELOPMENT DEVICE DIMENSION DIR DIRECTORY DISPLAY DO DOHISTORY ECHO EDIT EJECT ELSE ENDCASE ENDDO ENDFOR ENDSCAN ENDTEXT ENDIF ENDPRINTJOB ERASE ERROR ESCAPE EXACT EXCLUSIVE EXIT EXPORT EXTENDED EXTERNAL FIELDS FILES FILER FILL FILTER FIND FIXED FORMAT FLUSH FOR FROM FULLPATH FUNCTION FUNCTION GATHER GENERAL GET GETS GETEXPR GO GOTO HEADINGS HELP HELPFILTER HIDE HOURS IF IMPORT INDEX INDEXES INPUT INSERT INTENSITY JOIN KEY KEYBOARD KEYCOMP LABEL LIBRARY LIST LOAD LOCATE LOCK LOGERRORS MACKEY MACRO MARGIN MARK MARK MEMO MEMOWIDTH MENU MESSAGE MODIFY MODULE MOUSE MOVE MULTILOCKS NEAR NOCPTRANS NORMALIZE NOTE NOTIFY OBJECT ODOMETER OFF ON OPTIMIZE ORDER OTHERWISE PAD PAGE PALETTE PARAMETERS PATH PDSETUP PICTURE PLAY POINT POP POPUP PRINTER PRINTJOB PRIVATE PROCEDURE PROJECT PROMPT PUBLIC PUSH QUERY READ READBORDER READERROR RECALL REGIONAL REINDEX RELEASE RELEASE RENAME REPLACE REPORT RESTORE RESUME RETRY RETURN REFRESH RELATION RELATION REPORT REPROCESS RESOURCE RUN SAFETY SAVE SAY SCAN SCATTER SCHEME SCOREBOARD SCREEN SEEK SELECT SELECTION SEPERATOR SET SHADOWS SHOW SHUTDOWN SIZE SKIP SORT STATUS STICKY STEP STORE STRUCTURE SUM SUSPEND SYSMENU SQL TABLE TAG TALK TEXTMERGE TEXT TO TOPIC TOTAL TRBETWEEN TYPE TYPEAHEAD UDFPARAMS UNIQUE UNLOCK UPDATE USE VIEW WAIT WHILE WINDOW WITH ZAP ZOOM
+
+
+
+
+ ABS ACOPY ACOS ADEL ADIR AELEMENT AFIELDS AFONT AINS ALEN ALIAS ALLTRIM ANSITOOEM ASC ASCAN ASIN ASORT ASUBSCRIPT AT ATAN ATC ATCLINE ATLINE ATN2 BAR BETWEEN BOF CAPSLOCK CDOW CDX CEILING CHR CHRSAW CHRTRAN CMONTH CNTBAR CNTPAD COL COS CPCONVERT CPCURRENT CPDBF CTOD CURDIR DATE DAY DBF DDE DDEAbortTrans DDEAdvise DDEEnabled DDEExecute DDEInitiate DDELastError DDEPoke DDERequest DDESetOption DDESetService DDESetTopic DDETerminate DELETED DESCENDING DIFFERENCE DISKSPACE DMY DOW DTOC DTOR DTOS EMPTY EOF ERROR EVALUATE EXP FCHSIZE FCLOSE FCOUNT FCREATE FEOF FERROR FFLUSH FGETS FIELD FILE FILTER FKLABEL FKMAX FLOCK FLOOR FONTMETRIC FOPEN FOR FOUND FPUTS FREAD FSEEK FSIZE FULLPATH FV FWRITE GETBAR GETDIR GETENV GETFILE GETFONT GETPAD GOMONTH HEADER HOME IDXCOLLATE IIF INKEY INLIST INSMODE INT ISALPHA ISBLANK ISCOLOR ISDIGIT ISLOWER ISREADONLY ISUPPER KEY KEYMATCH LASTKEY LEFT LEN LIKE LINENO LOCFILE LOCK LOG LOG10 LOOKUP LOWER LTRIM LUPDATE MAX MCOL MDOWN MDX MDY MEMLINES MEMORY MENU MESSAGE MIN MLINE MOD MONTH MRKBAR MRKPAD MROW( MWINDOW NDX NUMLOCK OBJNUM OBJVAR OCCURS OEMTOANSI ON ORDER OS PACK PAD PADC PADL PADR PARAMETERS PAYMENT PCOL PI POPUP PRINTSTATUS PRMBAR PRMPAD PROGRAM PROMPT PROPER PROW PRTINFOPUTFILE PV QUIT RAND RAT RATLINE RDLEVEL READKEY RECCOUNT RECNO RECSIZE RELATION REPLICATE RGBSCHEME RIGHT RLOCK ROUND ROW RTOD RTRIM SCHEME SCOLS SCROLL SECONDS SEEK SELECT SET SIGN SIN SIZE POPUP SKPBAR SKPPAD SOUNDEX SPACE SQRT SROWS STR STRTRAN STUFF SUBSTR SYS SYS(0) SYS(1) SYS(2) SYS(3) SYS(5) SYS(6) SYS(7) SYS(9) SYS(10) SYS(11) SYS(12) SYS(13) SYS(14) SYS(15) SYS(16) SYS(17) SYS(18) SYS(20) SYS(21) SYS(22) SYS(23) SYS(24) SYS(100) SYS(101) SYS(102) SYS(103) SYS(1001) SYS(1016) SYS(1037) SYS(2000) SYS(2001) SYS(2002) SYS(2003) SYS(2004) SYS(2005) SYS(2006) SYS(2007) SYS(2008) SYS(2009) SYS(2010) SYS(2011) SYS(2012) SYS(2013) SYS(2014) SYS(2015) SYS(2016) SYS(2017) SYS(2018) SYS(2019) SYS(2020) SYS(2021) SYS(2022) SYS(2023) SYSMETRIC( TAG TAN TARGET TIME TRANSFORM TRIM TXTWIDTH TYPE UPDATED UPPER USED VAL VALID VARREAD VERSION WBORDER WCHILD WCOLS WEXIST WFONT WLAST WLCOL WLROW WMAXIMUM WMINIMUM WONTOP WOUTPUT WPARENT WREAD WROWS WTITLE WVISIBLE YEAR
+
+
+
+
+ .AND. .F. .NOT. .OR. .T. AND NOT OR
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JSP.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JSP.syn
new file mode 100644
index 0000000..5bba134
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JSP.syn
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <A </A> <ABBR> <ABBR </ABBR> <ABOVE> <ACRONYM> <ACRONYM </ACRONYM> <ADDRESS> <ADDRESS </ADDRESS> <APPLET </APPLET> <ARRAY> <AREA </AREA <B> <B </B> <BASE <BASEFONT <BDO> <BDO </BDO> <BGSOUND <BIG> <BIG </BIG> <BLINK> </BLINK> <BLOCKQUOTE> <BLOCKQUOTE </BLOCKQUOTE> <BODY <BODY> </BODY> <BOX> <BR <BR> <BIG <BLINK <BUTTON> </BUTTON> <CAPTION> <CAPTION </CAPTION> <CENTER> <CENTER </CENTER> <CITE> <CITE </CITE> <CODE> <CODE </CODE> <COL> <COLGROUP> </COLGROUP> <COMMENT> </COMMENT> <DD> <DD </DD> <DEL> <DEL </DEL> <DFN> <DFN </DFN> <DIR> <DIR </DIR> <DIV> <DIV </DIV> <DL> <DL </DL> <DT> <DT </DT> <EM> <EM </EM> <EMBED <FIELDSET> <FIELDSET </FIELDSET> <FIG> <FONT </FONT> <FORM> <FORM </FORM> <FRAME <FRAMESET </FRAMESET> <H1> <H1 </H1> <H2> <H2 </H2> <H3> <H3 </H3> <H4> <H4 </H4> <H5> <H5 </H5> <H6> <H6 </H6> <HEAD> <HEAD </HEAD> <HR> <HR <HTML> <HTML </HTML> <I> <I </I> <IFRAME> </IFRAME> <ILAYER> </ILAYER> <IMG <INPUT> <INPUT <INS> <INS </INS> <ISINDEX> <ISINDEX <KBD> <KBD </KBD> <LABEL> <LABEL </LABEL> <LAYER> <LAYER </LAYER> <LEGEND> <LEGEND </LEGEND> <LI> <LI </LI> <LINK <LISTING> </LISTING> <MAP </MAP> <MARQUEE </MARQUEE> <MENU> <MENU </MENU> <META <MULTICOL> </MULTICOL> <NEXTID <NOBR> </NOBR> <NOFRAMES> </NOFRAMES> <NOLAYER> </NOLAYER> <NOTE> </NOTE> <NOSCRIPT> </NOSCRIPT> <OBJECT> <OBJECT <OL> <OL </OL> <OPTION> <OPTION </OPTION> <OPTGROUP> <OPTGROUP </OPTGROUP> <P <P> </P> <PARAM <PRE> <PRE </PRE> <Q> <Q </Q> <QUOTE> <RANGE> <ROOT> <S> <S </S> <SAMP> <SAMP </SAMP> <SCRIPT <SCRIPT> </SCRIPT> <SELECT </SELECT> <SMALL> <SMALL </SMALL> <SOUND <SPACER> <SPAN> <SPAN </SPAN> <SQRT> <STRIKE> <STRIKE </STRIKE> <STRONG> <STRONG </STRONG> <STYLE> <STYLE </STYLE> <SUB> <SUB </SUB> <SUP> <SUP </SUP> <TABLE> <TABLE </TABLE> <TBODY> <TBODY </TBODY> <TD <TD> </TD> <TEXT> <TEXTAREA <TEXTAREA> </TEXTAREA> <TFOOT> <TFOOT </TFOOT> <TH <TH> </TH> <THEAD> <THEAD </THEAD> <TITLE> </TITLE> <TR <TR> </TR> <TT> </TT> <TT <U> <U </U> <UL> <UL </UL> <VAR> </VAR> <VAR <WBR> <XMP> </XMP>
+
+
+
+
+ ABBR= ACCEPT-CHARSET= ACCEPT= ACCESSKEY= ACTION= ALIGN= ALINK= ALT= ARCHIVE= AXIS= BACKGROUND= BEHAVIOR BELOW BGCOLOR= BORDER= CELLPADDING= CELLSPACING= CHAR= CHAROFF= CHARSET= CHECKED CITE= CLASS= CLASSID= CLEAR= CODE= CODEBASE= CODETYPE= COLOR= COLS= COLSPAN= COMPACT CONTENT= COORDS= DATA= DATETIME= DECLARE DEFER DIR= DISABLED ENCTYPE= FACE= FOR= FRAME= FRAMEBORDER= FRAMESPACING= HEADERS= HEIGHT= HIDDEN= HREF= HREFLANG= HSPACE= HTTP-EQUIV= ID= ISMAP= LABEL= LANG= LANGUAGE= LINK= LOOP= LONGDESC= MAILTO= MARGINHEIGHT= MARGINWIDTH= MAXLENGTH= MEDIA= METHOD= MULTIPLE NAME= NOHREF NORESIZE NOSHADE OBJECT= ONBLUR= ONCHANGE= ONFOCUS= ONKEYDOWN= ONKEYPRESS= ONKEYUP= ONLOAD= ONRESET= ONSELECT= ONSUBMIT= ONUNLOAD= ONCLICK= ONDBLCLICK= ONMOUSEDOWN= ONMOUSEMOVE= ONMOUSEOUT= ONMOUSEOVER= ONMOUSEUP= PROFILE= PROMPT= READONLY REL= REV= ROWS= ROWSPAN= RULES= SCHEME= SCOPE= SCROLLING= SELECTED SHAPE= SIZE= SPAN= SRC= STANDBY= START= STYLE= SUMMARY= TABINDEX= TARGET= TEXT= TITLE= TOPMARGIN= TYPE= URL= USEMAP= VALIGN= VALUE= VALUETYPE= VERSION= VLINK= VSPACE= WIDTH=
+
+
+
+
+ abstract break byte boolean catch case class char continue default double do DNAList else extends false final float for finally if import implements include int interface instanceof long length native new null package private protected public return switch synchronized short static super try true this throw throws threadsafe transient void while
+
+
+
+
+ AbstractAction AbstractBorder AbstractButton AbstractCollection AbstractColorChooserPanel AbstractDocument AbstractDocument.AttributeContext AbstractDocument.Content AbstractDocument.ElementEdit AbstractLayoutCache AbstractLayoutCache.NodeDimensions AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractSequentialList AbstractSet AbstractTableModel AbstractUndoableEdit AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible AccessibleAction AccessibleBundle AccessibleComponent AccessibleContext AccessibleHyperlink AccessibleHypertext AccessibleObject AccessibleResourceBundle AccessibleRole AccessibleSelection AccessibleState AccessibleStateSet AccessibleText AccessibleValue Acl AclEntry AclNotFoundException Action ActionEvent ActionListener Activatable ActivateFailedException ActivationDesc ActivationException ActivationGroup ActivationGroupDesc ActivationGroupDesc.CommandEnvironment ActivationGroupID ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent Adjustable AdjustmentEvent AdjustmentListener Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite AlreadyBound AlreadyBoundException AlreadyBoundHelper AlreadyBoundHolder AncestorEvent AncestorListener Annotation Any AnyHolder Applet AppletContext AppletInitializer AppletStub ApplicationException Arc2D Arc2D.Double Arc2D.Float Area AreaAveragingScaleFilter ARG_IN ARG_INOUT ARG_OUT ArithmeticException Array Array ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException AttributedCharacterIterator AttributedCharacterIterator.Attribute AttributedString AttributeList Attributes Attributes.Name AttributeSet AttributeSet.CharacterAttribute AttributeSet.ColorAttribute AttributeSet.FontAttribute AttributeSet.ParagraphAttribute AudioClip Authenticator Autoscroll AWTError AWTEvent AWTEventListener AWTEventMulticaster AWTException AWTPermission BAD_CONTEXT BAD_INV_ORDER BAD_OPERATION BAD_PARAM BAD_POLICY BAD_POLICY_TYPE BAD_POLICY_VALUE BAD_TYPECODE BadKind BadLocationException BandCombineOp BandedSampleModel BasicArrowButton BasicBorders BasicBorders.ButtonBorder BasicBorders.FieldBorder BasicBorders.MarginBorder BasicBorders.MenuBarBorder BasicBorders.RadioButtonBorder BasicBorders.SplitPaneBorder BasicBorders.ToggleButtonBorder BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI BasicColorChooserUI BasicComboBoxEditor BasicComboBoxEditor.UIResource BasicComboBoxRenderer BasicComboBoxRenderer.UIResource BasicComboBoxUI BasicComboPopup BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI BasicFileChooserUI BasicGraphicsUtils BasicIconFactory BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicOptionPaneUI.ButtonAreaLayout BasicPanelUI BasicPasswordFieldUI BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI BasicRadioButtonUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicTextUI.BasicCaret BasicTextUI.BasicHighlighter BasicToggleButtonUI BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextServicesSupport.BCSSServiceProvider BeanContextSupport BeanContextSupport.BCSIterator BeanDescriptor BeanInfo Beans BevelBorder BigDecimal BigInteger BindException Binding BindingHelper BindingHolder BindingIterator BindingIteratorHelper BindingIteratorHolder BindingListHelper BindingListHolder BindingType BindingTypeHelper BindingTypeHolder BitSet Blob BlockView Book Boolean BooleanHolder Border BorderFactory BorderLayout BorderUIResource BorderUIResource.BevelBorderUIResource BorderUIResource.CompoundBorderUIResource BorderUIResource.EmptyBorderUIResource BorderUIResource.EtchedBorderUIResource BorderUIResource.LineBorderUIResource BorderUIResource.MatteBorderUIResource BorderUIResource.TitledBorderUIResource BoundedRangeModel Bounds Bounds Box Box.Filler BoxLayout BoxView BreakIterator BufferedImage BufferedImageFilter BufferedImageOp BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter Button ButtonGroup ButtonModel ButtonUI Byte ByteArrayInputStream ByteArrayOutputStream ByteHolder ByteLookupTable Calendar CallableStatement CannotProceed CannotProceedHelper CannotProceedHolder CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor CellEditorListener CellRendererPane Certificate Certificate CertificateEncodingException CertificateException CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException CertificateParsingException ChangedCharSetException ChangeEvent ChangeListener Character Character.Subset Character.UnicodeBlock CharacterIterator CharArrayReader CharArrayWriter CharConversionException CharHolder Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice ChoiceFormat Class ClassCastException ClassCircularityError ClassFormatError ClassLoader ClassNotFoundException Clipboard ClipboardOwner Clob Cloneable CloneNotSupportedException CMMException CodeSource CollationElementIterator CollationKey Collator Collection Collections Color ColorChooserComponentFactory ColorChooserUI ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorUIResource ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup COMM_FAILURE Comparable Comparator Compiler CompletionStatus Component ComponentAdapter ComponentColorModel ComponentEvent ComponentListener ComponentOrientation ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeView CompoundBorder CompoundEdit ConcurrentModificationException ConnectException ConnectException ConnectIOException Connection Constructor Container ContainerAdapter ContainerEvent ContainerListener ContentHandler ContentHandlerFactory ContentModel Context ContextList ContextualRenderedImageFactory ConvolveOp CRC32 CRL CRLException CropImageFilter CSS CSS.Attribute CTX_RESTRICT_SCOPE CubicCurve2D CubicCurve2D.Double CubicCurve2D.Float Current Cursor Customizer DATA_CONVERSION DatabaseMetaData DataBuffer DataBufferByte DataBufferInt DataBufferShort DataBufferUShort DataFlavor DataFormatException DatagramPacket DatagramSocket DatagramSocketImpl DataInput DataInputStream DataOutput DataOutputStream DataTruncation Date Date DateFormat DateFormatSymbols DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel DefaultDesktopManager DefaultEditorKit DefaultEditorKit.BeepAction DefaultEditorKit.CopyAction DefaultEditorKit.CutAction DefaultEditorKit.DefaultKeyTypedAction DefaultEditorKit.InsertBreakAction DefaultEditorKit.InsertContentAction DefaultEditorKit.InsertTabAction DefaultEditorKit.PasteAction DefaultFocusManager DefaultHighlighter DefaultHighlighter.DefaultHighlightPainter DefaultListCellRenderer DefaultListCellRenderer.UIResource DefaultListModel DefaultListSelectionModel DefaultMenuLayout DefaultMetalTheme DefaultMutableTreeNode DefaultSingleSelectionModel DefaultStyledDocument DefaultStyledDocument.AttributeUndoableEdit DefaultStyledDocument.ElementSpec DefaultTableCellRenderer DefaultTableCellRenderer.UIResource DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel DefinitionKind Deflater DeflaterOutputStream Delegate DesignMode DesktopIconUI DesktopManager DesktopPaneUI DGC Dialog Dictionary DigestException DigestInputStream DigestOutputStream Dimension Dimension2D DimensionUIResource DirectColorModel DnDConstants Document DocumentEvent DocumentEvent.ElementChange DocumentEvent.EventType DocumentListener DocumentParser DomainManager Double DoubleHolder DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener Driver DriverManager DriverPropertyInfo DropTarget DropTarget.DropTargetAutoScroller DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey DSAPublicKeySpec DTD DTDConstants DynamicImplementation DynAny DynArray DynEnum DynFixed DynSequence DynStruct DynUnion DynValue EditorKit Element Element ElementIterator Ellipse2D Ellipse2D.Double Ellipse2D.Float EmptyBorder EmptyStackException EncodedKeySpec Entity Enumeration Environment EOFException Error EtchedBorder Event EventListener EventListenerList EventObject EventQueue EventSetDescriptor Exception ExceptionInInitializerError ExceptionList ExpandVetoException ExportException Externalizable FeatureDescriptor Field FieldPosition FieldView File FileChooserUI FileDescriptor FileDialog FileFilter FileFilter FileInputStream FilenameFilter FileNameMap FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter FilteredImageSource FilterInputStream FilterOutputStream FilterReader FilterWriter FixedHeightLayoutCache FixedHolder FlatteningPathIterator FlavorMap Float FloatHolder FlowLayout FocusAdapter FocusEvent FocusListener FocusManager Font FontMetrics FontRenderContext FontUIResource Format FormView Frame FREE_MEM GapContent GeneralPath GeneralSecurityException GlyphJustificationInfo GlyphMetrics GlyphVector GradientPaint GraphicAttribute Graphics Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream GZIPOutputStream HashMap HashSet Hashtable Highlighter Highlighter.Highlight Highlighter.HighlightPainter HTML HTML.Attribute HTML.Tag HTML.UnknownTag HTMLDocument HTMLDocument.Iterator HTMLEditorKit HTMLEditorKit.HTMLFactory HTMLEditorKit.HTMLTextAction HTMLEditorKit.InsertHTMLTextAction HTMLEditorKit.LinkController HTMLEditorKit.Parser HTMLEditorKit.ParserCallback HTMLFrameHyperlinkEvent HTMLWriter HttpURLConnection HyperlinkEvent HyperlinkEvent.EventType HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon IconUIResource IconView Identity IdentityScope IDLEntity IDLType IllegalAccessError IllegalAccessException IllegalArgumentException IllegalComponentStateException IllegalMonitorStateException IllegalPathStateException IllegalStateException IllegalThreadStateException Image ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageObserver ImageProducer ImagingOpException IMP_LIMIT IncompatibleClassChangeError InconsistentTypeCode IndexColorModel IndexedPropertyDescriptor IndexOutOfBoundsException InetAddress Inflater InflaterInputStream InheritableThreadLocal INITIALIZE InlineView InputContext InputEvent InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests InputStream InputStream InputStreamReader InputSubset Insets InsetsUIResource InstantiationError InstantiationException Integer INTERNAL InternalError InternalFrameAdapter InternalFrameEvent InternalFrameListener InternalFrameUI InterruptedException InterruptedIOException INTF_REPOS IntHolder IntrospectionException Introspector INV_FLAG INV_IDENT INV_OBJREF INV_POLICY Invalid INVALID_TRANSACTION InvalidAlgorithmParameterException InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException InvalidName InvalidName InvalidNameHelper InvalidNameHolder InvalidObjectException InvalidParameterException InvalidParameterSpecException InvalidSeq InvalidValue InvocationEvent InvocationTargetException InvokeHandler IOException IRObject IstringHelper ItemEvent ItemListener ItemSelectable Iterator JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComboBox.KeySelectionManager JComponent JDesktopPane JDialog JEditorPane JFileChooser JFrame JInternalFrame JInternalFrame.JDesktopIcon JLabel JLayeredPane JList JMenu JMenuBar JMenuItem JOptionPane JPanel JPasswordField JPopupMenu JPopupMenu.Separator JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator JSlider JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextComponent.KeyBinding JTextField JTextPane JToggleButton JToggleButton.ToggleButtonModel JToolBar JToolBar.Separator JToolTip JTree JTree.DynamicUtilTreeNode JTree.EmptySelectionModel JViewport JWindow Kernel Key KeyAdapter KeyEvent KeyException KeyFactory KeyFactorySpi KeyListener KeyManagementException Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeySpec KeyStore KeyStoreException KeyStoreSpi KeyStroke Label LabelUI LabelView LastOwnerException LayeredHighlighter LayeredHighlighter.LayerPainter LayoutManager LayoutManager2 Lease Line2D Line2D.Double Line2D.Float LineBorder LineBreakMeasurer LineMetrics LineNumberInputStream LineNumberReader LinkageError LinkedList List List ListCellRenderer ListDataEvent ListDataListener ListIterator ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView LoaderHandler Locale LocateRegistry LogStream Long LongHolder LookAndFeel LookupOp LookupTable MalformedURLException Manifest Map Map.Entry MARSHAL MarshalException MarshalledObject Math MatteBorder MediaTracker Member MemoryImageSource Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetalBorders MetalBorders.ButtonBorder MetalBorders.Flush3DBorder MetalBorders.InternalFrameBorder MetalBorders.MenuBarBorder MetalBorders.MenuItemBorder MetalBorders.PopupMenuBorder MetalBorders.RolloverButtonBorder MetalBorders.ScrollPaneBorder MetalBorders.TextFieldBorder MetalBorders.ToolBarBorder MetalButtonUI MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxEditor.UIResource MetalComboBoxIcon MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalIconFactory.FileIcon16 MetalIconFactory.FolderIcon16 MetalIconFactory.TreeControlIcon MetalIconFactory.TreeFolderIcon MetalIconFactory.TreeLeafIcon MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalPopupMenuSeparatorUI MetalProgressBarUI MetalRadioButtonUI MetalScrollBarUI MetalScrollButton MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI Method MethodDescriptor MinimalHTMLWriter MissingResourceException Modifier MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInputAdapter MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI MultiDesktopPaneUI MultiFileChooserUI MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleMaster MultiPopupMenuUI MultiProgressBarUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI MultiSliderUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet MutableComboBoxModel MutableTreeNode NameComponent NameComponentHelper NameComponentHolder NamedValue NameHelper NameHolder NameValuePair Naming NamingContext NamingContextHelper NamingContextHolder NegativeArraySizeException NetPermission NO_IMPLEMENT NO_MEMORY NO_PERMISSION NO_RESOURCES NO_RESPONSE NoClassDefFoundError NoninvertibleTransformException NoRouteToHostException NoSuchAlgorithmException NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException NoSuchObjectException NoSuchProviderException NotActiveException NotBoundException NotEmpty NotEmptyHelper NotEmptyHolder NotFound NotFoundHelper NotFoundHolder NotFoundReason NotFoundReasonHelper NotFoundReasonHolder NotOwnerException NotSerializableException NullPointerException Number NumberFormat NumberFormatException NVList OBJ_ADAPTER Object Object OBJECT_NOT_EXIST ObjectHolder ObjectImpl ObjectInput ObjectInputStream ObjectInputStream.GetField ObjectInputValidation ObjectOutput ObjectOutputStream ObjectOutputStream.PutField ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID Observable Observer OpenType Operation Option OptionalDataException OptionPaneUI ORB OutOfMemoryError OutputStream OutputStream OutputStreamWriter OverlayLayout Owner Package PackedColorModel Pageable PageFormat Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParagraphView ParameterBlock ParameterDescriptor ParseException ParsePosition Parser ParserDelegator PasswordAuthentication PasswordView PathIterator Permission Permission PermissionCollection Permissions PERSIST_STORE PhantomReference PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel PKCS8EncodedKeySpec PlainDocument PlainView Point Point2D Point2D.Double Point2D.Float Policy Policy PolicyError Polygon PopupMenu PopupMenuEvent PopupMenuListener PopupMenuUI Position Position.Bias PreparedStatement Principal Principal PrincipalHolder Printable PrinterAbortException PrinterException PrinterGraphics PrinterIOException PrinterJob PrintGraphics PrintJob PrintStream PrintWriter PRIVATE_MEMBER PrivateKey PrivilegedAction PrivilegedActionException PrivilegedExceptionAction Process ProfileDataException ProgressBarUI ProgressMonitor ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener PropertyChangeSupport PropertyDescriptor PropertyEditor PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException PUBLIC_MEMBER PublicKey PushbackInputStream PushbackReader QuadCurve2D QuadCurve2D.Double QuadCurve2D.Float Random RandomAccessFile Raster RasterFormatException RasterOp Reader Rectangle Rectangle2D Rectangle2D.Double Rectangle2D.Float RectangularShape Ref Reference ReferenceQueue ReflectPermission Registry RegistryHandler RemarshalException Remote RemoteCall RemoteException RemoteObject RemoteRef RemoteServer RemoteStub RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage RenderedImageFactory Renderer RenderingHints RenderingHints.Key RepaintManager ReplicateScaleFilter Request RescaleOp ResourceBundle ResponseHandler ResultSet ResultSetMetaData RGBImageFilter RMIClassLoader RMIClientSocketFactory RMIFailureHandler RMISecurityException RMISecurityManager RMIServerSocketFactory RMISocketFactory RootPaneContainer RoundRectangle2D RoundRectangle2D.Double RoundRectangle2D.Float RowMapper RSAPrivateCrtKey RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit RuleBasedCollator Runnable Runtime RuntimeException RuntimePermission SampleModel Scrollable Scrollbar ScrollBarUI ScrollPane ScrollPaneConstants ScrollPaneLayout ScrollPaneLayout.UIResource ScrollPaneUI SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException SecurityManager SecurityPermission Segment SeparatorUI SequenceInputStream Serializable SerializablePermission ServantObject ServerCloneException ServerError ServerException ServerNotActiveException ServerRef ServerRequest ServerRuntimeException ServerSocket ServiceDetail ServiceDetailHelper ServiceInformation ServiceInformationHelper ServiceInformationHolder Set SetOverrideType Shape ShapeGraphicAttribute Short ShortHolder ShortLookupTable Signature SignatureException SignatureSpi SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleTimeZone SinglePixelPackedSampleModel SingleSelectionModel SizeRequirements Skeleton SkeletonMismatchException SkeletonNotFoundException SliderUI Socket SocketException SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException SoftBevelBorder SoftReference SortedMap SortedSet SplitPaneUI SQLData SQLException SQLInput SQLOutput SQLWarning Stack StackOverflowError StateEdit StateEditable Statement Streamable StreamCorruptedException StreamTokenizer String StringBuffer StringBufferInputStream StringCharacterIterator StringContent StringHolder StringIndexOutOfBoundsException StringReader StringSelection StringTokenizer StringWriter Stroke Struct StructMember StubNotFoundException Style StyleConstants StyleConstants.CharacterConstants StyleConstants.ColorConstants StyleConstants.FontConstants StyleConstants.ParagraphConstants StyleContext StyledDocument StyledEditorKit StyledEditorKit.AlignmentAction StyledEditorKit.BoldAction StyledEditorKit.FontFamilyAction StyledEditorKit.FontSizeAction StyledEditorKit.ForegroundAction StyledEditorKit.ItalicAction StyledEditorKit.StyledTextAction StyledEditorKit.UnderlineAction StyleSheet StyleSheet.BoxPainter StyleSheet.ListPainter SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFailedException System SystemColor SystemException SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TagElement TCKind TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo TextLayout TextLayout.CaretPolicy TextLine.TextLineMetrics TextListener TextUI TexturePaint Thread ThreadDeath ThreadGroup ThreadLocal Throwable TileObserver Time Timer Timestamp TimeZone TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException TRANSACTION_REQUIRED TRANSACTION_ROLLEDBACK Transferable TransformAttribute TRANSIENT Transparency TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TypeCode TypeCodeHolder TypeMismatch Types UID UIDefaults UIDefaults.ActiveValue UIDefaults.LazyValue UIManager UIManager.LookAndFeelInfo UIResource UndoableEdit UndoableEditEvent UndoableEditListener UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnionMember UNKNOWN UnknownError UnknownGroupException UnknownHostException UnknownHostException UnknownObjectException UnknownServiceException UnknownUserException UnmarshalException UnrecoverableKeyException Unreferenced UnresolvedPermission UnsatisfiedLinkError UNSUPPORTED_POLICY UNSUPPORTED_POLICY_VALUE UnsupportedClassVersionError UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException UnsupportedOperationException URL URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory UserException UTFDataFormatException Utilities ValueMember VariableHeightLayoutCache Vector VerifyError VetoableChangeListener VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI VirtualMachineError Visibility VM_ABSTRACT VM_CUSTOM VM_NONE VM_TRUNCATABLE VMID Void WeakHashMap WeakReference Window WindowAdapter WindowConstants WindowEvent WindowListener WrappedPlainView WritableRaster WritableRenderedImage WriteAbortedException Writer WrongTransaction X509Certificate X509CRL X509CRLEntry X509EncodedKeySpec X509Extension ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream _BindingIteratorImplBase _BindingIteratorStub _NamingContextImplBase _NamingContextStub
+
+
+
+
+ <jsp:useBean <jsp:plugin <jsp:include <jsp:setProperty <jsp:getProperty <jsp:forward // /> <%= <%! <%-- <%@ <% %>
+
+
+
+
+ + - & | = ! // /
+
+
+
+
+
+
+
+
+
+
+ ~ @ ! " & * ( ) + = | \ { } [ ] ; " ' , ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Java.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Java.syn
new file mode 100644
index 0000000..fe490df
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Java.syn
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract
+break
+catch case class continue
+default do
+else extends
+final for finally
+if import implements interface instanceof
+length
+native new
+package private protected public
+return
+switch synchronized static super
+try this throw throws threadsafe transient
+while
+
+
+
+
+
+
+
+
+
+
+ void short null long int float double char byte boolean true false Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JavaScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JavaScript.syn
new file mode 100644
index 0000000..b6333c4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/JavaScript.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract break byte case catch char class const continue default delete do double else extends false final finally float for function goto if implements import in instanceof int interface long native null package private protected public reset return short static super switch synchronized this throw transient true try var void while with
+
+
+
+
+ Anchor Applet Area Arguments Array Boolean Button Checkbox Collection Crypto Date Dictionary Document Drive Drives Element Enumerator Event File FileObject FileSystemObject FileUpload Folder Folders Form Frame Function Global Hidden History HTMLElement Image Infinity Input JavaArray JavaClass JavaObject JavaPackage JSObject Layer Link Math MimeType Navigator Number Object Option Packages Password Plugin PrivilegeManager Random RegExp Screen Select String Submit Text Textarea URL VBArray Window WScript
+
+
+
+
+ above abs acos action activeElement alert alinkColor all altKey anchor anchors appCodeName applets apply appName appVersion arguments arity asin assign atan atan2 atob availHeight availLeft availTop availWidth ActiveXObject back background below bgColor big blink blur bold border borderWidths bottom btoa button call callee caller cancelBubble captureEvents ceil charAt charCodeAt charset checked children classes className clear clearInterval clearTimeout click clientInformation clientX clientY close closed colorDepth compile complete concat confirm constructir contains contextual cookie cos crypto ctrlKey current data defaultCharset defaultChecked defaultSelected defaultStatus defaultValue description disableExternalCapture disablePrivilege document domain E Echo element elements embeds enabledPlugin enableExternalCapture enablePrivilege encoding escape eval event exec exp expando FromPoint fgColor fileName find fixed floor focus fontColor fontSize form forms forward frames fromCharCode fromElement getAttribute get getClass getDate getDay getFullYear getHours getMember getMilliseconds getMinutes getMonth getSeconds getSelection getSlot getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getWindow getYear global go HandleEvent Height hash hidden history home host hostName href hspace id ids ignoreCase images index indexOf inner innerHTML innerText innerWidth insertAdjacentHTML insertAdjacentText isFinite isNAN italics java javaEnabled join keyCode Links LN10 LN2 LOG10E LOG2E lang language lastIndex lastIndexOf lastMatch lastModified lastParen layers layerX layerY left leftContext length link linkColor load location locationBar log lowsrc MAX_VALUE MIN_VALUE margins match max menubar method mimeTypes min modifiers moveAbove moveBelow moveBy moveTo moveToAbsolute multiline NaN NEGATIVE_INFINITY name navigate navigator netscape next number offscreenBuffering offset offsetHeight offsetLeft offsetParent offsetTop offsetWidth offsetX offsetY onabort onblur onchange onclick ondblclick ondragdrop onerror onfocus onHelp onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseout onmouseover onmouseup onmove onreset onresize onsubmit onunload open opener options outerHeight outerHTML outerText outerWidth POSITIVE_INFINITY PI paddings pageX pageXOffset pageY pageYOffset parent parentElement parentLayer parentWindow parse parseFloat parseInt pathname personalbar pixelDepth platform plugins pop port pow preference previous print prompt protocol prototype push random readyState reason referrer refresh releaseEvents reload removeAttribute removeMember replace resizeBy resizeTo returnValue reverse right rightcontext round SQRT1_2 SQRT2 screenX screenY scroll scrollbars scrollBy scrollIntoView scrollTo search select selected selectedIndex self setAttribute setDay setFullYear setHotkeys setHours setInterval setMember setMilliseconds setMinutes setMonth setResizable setSeconds setSlot setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMillseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift shiftKey siblingAbove siblingBelow signText sin slice smallsort source sourceIndex splice split sqrt src srcElement srcFilter status statusbar stop strike style sub submit substr substring suffixes sun sup systemLanguage TYPE tagName tags taint taintEnabled tan target test text title toElement toGMTString toLocaleString toLowerCase toolbar top toString toUpperCase toUTCString type typeOf UTC unescape unshift untaint unwatch userAgent userLanguage value valueOf visibility vlinkColor vspace watch which width window write writeln x y zIndex
+
+
+
+
+ ! $ % & * + - // / : < = > ? [ ] " | ~ is new sizeof typeof unchecked
+
+
+
+
+ ( ) , ; { }
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/LotusScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/LotusScript.syn
new file mode 100644
index 0000000..014cfd6
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/LotusScript.syn
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abs Access ACos ActivateApp Alias And Any Append As Asc ASin Atn Atn2 Base Beep Bin Bin$ Binary Bind ByVal Call CCur CDat CDbl ChDir ChDrive Chr Chr$ CInt Class CLng Close Command Command$ Compare Const Cos CSng CStr CurDir CurDir$ CurDrive CurDrive$ CVar DataType Date Date$ DateNumber DateValue Day Declare DefCur DefDbl DefInt DefLng DefSng DefStr DefVar Delete Dim Dir Dir$ Environ Environ$ EOF Eqv Erase Erl Err Error Error$ Evaluate Event Execute Exit Exp FALSE FileAttr FileCopy FileDateTime FileLen Fix Format Format$ Fraction FreeFile FromFunction Get GetFileAttr Hex Hex$ Hour IMEStatus Imp In Input Input$ InputB InputB$ InputBox InputBox$ InputBP InputBP$ InStr InStrB InStrBP Int Is IsArray IsDate IsElement IsEmpty IsList IsNull IsNumeric IsObject IsScalar IsUnknown Kill LBound LCase LCase$ Left Left$ LeftB LeftB$ LeftBP LeftBP$ Len LenB LenBP Let Lib Like Line List ListTag LMBCS Loc Lock LOF Log Loop LSet LTrim LTrim$ Me MessageBox Mid Mid$ MidB MidB$ Minute MkDir Mod Month Name New NoCase NoPitch Not NOTHING Now NULL Oct Oct$ On Open Option Or Output PI Pitch Preserve Print Private Property Public Put Random Randomize Read ReDim Rem Remove Reset Resume Return Right Right$ RightB RightB$ RightBP RightBP$ RmDir Rnd Round RSet RTrim RTrim$ Second Seek SendKeys Set SetFileAttr Sgn Shared Shell Sin Space Space$ Spc Sqr Static Step Stop Str Str$ StrCompare String$ Sub Tab Tan Time Time$ TimeNumber Timer TimeValue To Today Trim Trim$ TRUE Type TypeName UBound UCase UCase$ UChr UChr$ Uni Unicode Unlock Use UseLSX UString UString$ Val With Write Xor Year Yield
+
+
+
+
+ Currency Double Integer Long Single String Variant
+
+
+
+
+ Case Do Else End ElseIf For Forall If Next Select Then Until Wend While GoSub GoTo
+
+
+
+
+ NotesACLNotesACLEntry NotesAgent NotesDatabase NotesDateRange NotesDateTime NotesDbDirectory NotesDocument NotesDocumentCollection NotesEmbeddedObject NotesForm NotesInternational NotesItem NotesLog NotesName NotesNewsLetter NotesRegistration NotesRichTextItem NotesRichTextStyle NotesSession NotesTimer NotesView NotesViewColumn NotesUIDatabase NotesUIDocument NotesUIView NotesUIWorkspace Navigator notesaclnotesaclentry notesagent notesdatabase notesdaterange notesdatetime notesdbdirectory notesdocument notesdocumentcollection notesembeddedobject notesform notesinternational notesitem noteslog notesname notesnewsletter notesregistration notesrichtextitem notesrichtextstyle notessession notestimer notesview notesviewcolumn notesuidatabase notesuidocument notesuiview notesuiworkspace navigator
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MSIL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MSIL.syn
new file mode 100644
index 0000000..99ed576
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MSIL.syn
@@ -0,0 +1,594 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+bool
+char
+wchar
+int
+int8
+int16
+int32
+int64
+float
+float32
+float64
+refany
+typedref
+object
+string
+native
+unsigned
+value
+valuetype
+class
+const
+vararg
+default
+stdcall
+thiscall
+fastcall
+unmanaged
+not_in_gc_heap
+beforefieldinit
+instance
+filter
+catch
+static
+public
+private
+synchronized
+interface
+extends
+implements
+handler
+finally
+fault
+to
+abstract
+auto
+sequential
+explicit
+wrapper
+ansi
+unicode
+autochar
+import
+enum
+virtual
+notremotable
+special
+il
+cil
+optil
+managed
+preservesig
+runtime
+method
+field
+bytearray
+final
+sealed
+specialname
+family
+assembly
+famandassem
+famorassem
+privatescope
+nested
+hidebysig
+newslot
+rtspecialname
+pinvokeimpl
+unmanagedexp
+reqsecobj
+.ctor
+.cctor
+initonly
+literal
+notserialized
+forwardref
+internalcall
+noinlining
+nomangle
+lasterr
+winapi
+cdecl
+stdcall
+thiscall
+fastcall
+as
+pinned
+modreq
+modopt
+serializable
+at
+tls
+true
+false
+.class
+.namespace
+.method
+.field
+.emitbyte
+.try
+.maxstack
+.locals
+.entrypoint
+.zeroinit
+.pdirect
+.data
+.event
+.addon
+.removeon
+.fire
+.other
+protected
+.property
+.set
+.get
+default
+.import
+.permission
+.permissionset
+request
+demand
+assert
+deny
+permitonly
+linkcheck
+inheritcheck
+reqmin
+reqopt
+reqrefuse
+prejitgrant
+prejitdeny
+noncasdemand
+noncaslinkdemand
+noncasinheritance
+.line
+.language
+#line
+.custom
+init
+.size
+.pack
+.file
+nometadata
+.hash
+.assembly
+implicitcom
+noappdomain
+noprocess
+nomachine
+.publickey
+.publickeytoken
+algorithm
+.ver
+.locale
+extern
+.export
+.manifestres
+.mresource
+.localized
+.module
+marshal
+custom
+sysstring
+fixed
+variant
+currency
+syschar
+decimal
+date
+bstr
+tbstr
+lpstr
+lpwstr
+lptstr
+objectref
+iunknown
+idispatch
+struct
+safearray
+byvalstr
+lpvoid
+any
+array
+lpstruct
+.vtfixup
+fromunmanaged
+callmostderived
+.vtentry
+in
+out
+opt
+lcid
+retval
+.param
+.override
+with
+null
+error
+hresult
+carray
+userdefined
+record
+filetime
+blob
+stream
+storage
+streamed_object
+stored_object
+blob_object
+cf
+clsid
+vector
+nullref
+.subsystem
+.corflags
+alignment
+.imagebase
+.vtable
+readonly
+implicitres
+
+
+
+
+
+
+
+
+
+
+
+
+nop
+break
+ldarg.0
+ldarg.1
+ldarg.2
+ldarg.3
+ldloc.0
+ldloc.1
+ldloc.2
+ldloc.3
+stloc.0
+stloc.1
+stloc.2
+stloc.3
+ldarg.s
+ldarga.s
+starg.s
+ldloc.s
+ldloca.s
+stloc.s
+ldnull
+ldc.i4.m1
+ldc.i4.0
+ldc.i4.1
+ldc.i4.2
+ldc.i4.3
+ldc.i4.4
+ldc.i4.5
+ldc.i4.6
+ldc.i4.7
+ldc.i4.8
+ldc.i4.s
+ldc.i4
+ldc.i8
+ldc.r4
+ldc.r8
+dup
+pop
+jmp
+call
+calli
+ret
+br.s
+brfalse.s
+brtrue.s
+beq.s
+bge.s
+bgt.s
+ble.s
+blt.s
+bne.un.s
+bge.un.s
+bgt.un.s
+ble.un.s
+blt.un.s
+br
+brfalse
+brtrue
+beq
+bge
+bgt
+ble
+blt
+bne.un
+bge.un
+bgt.un
+ble.un
+blt.un
+switch
+ldind.i1
+ldind.u1
+ldind.i2
+ldind.u2
+ldind.i4
+ldind.u4
+ldind.i8
+ldind.i
+ldind.r4
+ldind.r8
+ldind.ref
+stind.ref
+stind.i1
+stind.i2
+stind.i4
+stind.i8
+stind.r4
+stind.r8
+add
+sub
+mul
+div
+div.un
+rem
+rem.un
+and
+or
+xor
+shl
+shr
+shr.un
+neg
+not
+conv.i1
+conv.i2
+conv.i4
+conv.i8
+conv.r4
+conv.r8
+conv.u4
+conv.u8
+callvirt
+cpobj
+ldobj
+ldstr
+newobj
+castclass
+isinst
+conv.r.un
+unbox
+throw
+ldfld
+ldflda
+stfld
+ldsfld
+ldsflda
+stsfld
+stobj
+conv.ovf.i1.un
+conv.ovf.i2.un
+conv.ovf.i4.un
+conv.ovf.i8.un
+conv.ovf.u1.un
+conv.ovf.u2.un
+conv.ovf.u4.un
+conv.ovf.u8.un
+conv.ovf.i.un
+conv.ovf.u.un
+box
+newarr
+ldlen
+ldelema
+ldelem.i1
+ldelem.u1
+ldelem.i2
+ldelem.u2
+ldelem.i4
+ldelem.u4
+ldelem.i8
+ldelem.i
+ldelem.r4
+ldelem.r8
+ldelem.ref
+stelem.i
+stelem.i1
+stelem.i2
+stelem.i4
+stelem.i8
+stelem.r4
+stelem.r8
+stelem.ref
+conv.ovf.i1
+conv.ovf.u1
+conv.ovf.i2
+conv.ovf.u2
+conv.ovf.i4
+conv.ovf.u4
+conv.ovf.i8
+conv.ovf.u8
+refanyval
+ckfinite
+mkrefany
+ldtoken
+conv.u2
+conv.u1
+conv.i
+conv.ovf.i
+conv.ovf.u
+add.ovf
+add.ovf.un
+mul.ovf
+mul.ovf.un
+sub.ovf
+sub.ovf.un
+endfinally
+leave
+leave.s
+stind.i
+conv.u
+arglist
+ceq
+cgt
+cgt.un
+clt
+clt.un
+ldftn
+ldvirtftn
+ldarg
+ldarga
+starg
+ldloc
+ldloca
+stloc
+localloc
+endfilter
+unaligned.
+volatile.
+tail.
+initobj
+cpblk
+initblk
+rethrow
+sizeof
+refanytype
+
+
+
+
+
+brnull
+brnull.s
+brzero
+brzero.s
+brinst
+brinst.s
+ldind.u8
+ldelem.u8
+ldc.i4.M1
+endfault
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MySQL_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MySQL_SQL.syn
new file mode 100644
index 0000000..cef1854
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/MySQL_SQL.syn
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ add all alter and as asc auto_increment between binary both by change check column columns create cross data database databases default delayed delete desc describe distinct drop enclosed escaped exists explain field fields flush for foreign from function grant group having identified if ignore index insert infile into join key keys kill leading left like limit lines load local lock low_priority modify natural not null on optimize option optionally or order outer outfile primary proceedure read references regexp rename replace returns revoke rlike select set show soname status straight_join table tables teminated to trailing unique unlock unsigned update use using values variables where with write zerofill xor
+
+
+
+
+ abs acos adddate ascii asin atan atan2 avg bin bit_and bit_count bit_or ceiling char_lengh character_length concat conv cos cot count curdate curtime current_time current_timestamp date_add date_format date_sub dayname dayofmonth dayofweek dayofyear degrees elt encrypt exp find_in_set floor format from_days from_unixtime get_lock greatest hex hour ifnull instr isnull interval last_insert_id lcase lower least length locate log log10 lpad ltrim max mid min minute mod month monthname now oct octet_length password period_add period_diff pi position pow quarter radians rand release_lock repeat reverse right round rpad rtrim second sec_to_time session_user sign sin soundex space sqrt strcmp substring substring_index sysdate system_user std sum tan time_format time_to_sec to_days trim truncate ucase unix_timestamp user version week weekday year
+
+
+
+
+ bigint blob char date datetime decimal double doubleprecision enum float float4 float8 int int1 int2 int3 int4 int8 integer long longblob longtext mediumblob mediumint mediumtext middleint numeric real smallint text time timestamp tinyint tinytext tinyblob varbinary varchar varying
+
+
+
+
+
+
+
+
+
+
+ ! & * ( ) + = | / ; " ' < > , . /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Oracle_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Oracle_SQL.syn
new file mode 100644
index 0000000..5b298d0
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Oracle_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ACCESS ADD ADMIN AFTER ALL ALLOCATE ALTER ANALYZE AND ANY ARCHIVE ARCHIVELOG AS ASC AUDIT BACKUP BECOME BEFORE BETWEEN BLOCK BY CACHE CANCEL CASCADE CHANGE CHARACTER CHECK CHECKPOINT CLUSTER COBOL COLUMN COMMENT COMPILE COMPRESS CONNECT CONSTRAINT CONSTRAINTS CONTENTS CONTINUE CONTROLFILE CREATE CURRENT CYCLE DATAFILE DEC DECIMAL DEFAULT DELETE DESC DISABLE DISMOUNT DISTINCT DOUBLE DROP EACH ELSE ENABLE ERRORS ESCAPE EVENTS EXCEPT EXCEPTIONS EXCLUSIVE EXEC EXECUTE EXISTS EXPLAIN EXTENT EXTERNALLY FILE FLUSH FOR FORCE FOREIGN FORTRAN FOUND FREELIST FREELISTS FROM GO GRANT GROUP GROUPS HAVING IDENTIFIED IMMEDIATE IN INCLUDING INCREMENT INDEX INITIAL INITRANS INSERT INSTANCE INT INTERSECT INTO IS KEY LANGUAGE LAYER LEVEL LIKE LINK LISTS LOCK LOGFILE MANAGE MANUAL MAXDATAFILES MAXEXTENTS MAXINSTANCES MAXLOGFILES MAXLOGHISTORY MAXLOGMEMBERS MAXTRANS MAXVALUE MINEXTENTS MINUS MINVALUE MLSLABEL MODE MODIFY MODULE MOUNT NEXT NOARCHIVELOG NOAUDIT NOCACHE NOCOMPRESS NOCYCLE NOLOGGING NOMAXVALUE NOMINVALUE NONE NOORDER NORESETLOGS NORMAL NOSORT NOT NOTFOUND NOWAIT NULL NUMERIC OF OFF OFFLINE ON ONLINE ONLY OPTIMAL OPTION OR ORDER OWN PARALLEL PCTFREE PCTINCREASE PCTUSED PLAN PLI PRECISION PRIMARY PRIOR PRIVILEGES PROFILE PUBLIC QUOTA READ RECOVER REFERENCES REFERENCING RENAME REPLACE RESETLOGS RESOURCE RESTRICTED REUSE REVOKE ROLE ROLES ROW ROWID ROWLABEL ROWNUM ROWS SCN SECTION SEGMENT SELECT SEQUENCE SESSION SET SHARE SHARED SIZE SNAPSHOT SOME SORT SQLBUF SQLERROR SQLSTATE START STATEMENT_ID STATISTICS STOP STORAGE SUCCESSFUL SWITCH SYNONYM SYSDATE SYSTEM TABLE TABLESPACE TEMPORARY THEN THREAD TIME TO TRACING TRANSACTION TRIGGERS TRUNCATE UNDER UNION UNIQUE UNLIMITED UNTIL UPDATE VALIDATE VALUES VIEW WHENEVER WHERE WITH
+
+
+
+
+
+
+ BFILE_TABLE BINARY_INTEGER BLOB_TABLE BOOLEAN CHAR CHARRARR CLOB_TABLE DATE DATE_TABLE DBLINK_ARRAY DESC_REC DESC_TAB FILE_TYPE FLOAT INDEX_TABLE_TYPE INTEGER LONG MAXWAIT NAME_ARRAY NATIVE NUMBER NUMBER_ARRAY NUMBER_TABLE PLS_INTEGER RAW REAL REG_REPAPI_SNAPSHOT REG_UNKNOWN REG_V7_SNAPSHOT REG_V8_SNAPSHOT RNDS RNPS SMALLINT UNCL_ARRAY V6 V7 VARCHAR VARCHAR2 VARCHAR2S VARCHAR2_TABLE WNDS WNPS
+
+
+
+
+ ABS ACOS ADD_MONTHS ASCII ASIN ATAN ATAN2 AVG BFILENAME CEIL CHARTOROWID CHR CONCAT CONVERT COS COSH COUNT DECODE DEREF DUMP EMPTY_BLOB EMPTY_CLOB EXP FLOOR GREATEST HEXTORAW INITCAP INSTR INSTRB LAST_DAY LEAST LENGTH LENGTHB LN LOG LOWER LPAD LTRIM MAKE_REF MAX MIN MOD MONTHS_BETWEEN NEW_TIME NEXT_DAY NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME NLS_INITCAP NLS_LOWER NLS_SORT NLS_UPPER NVL POWER RAWTOHEX REFTOHEX ROUND ROWIDTOCHAR RPAD RTRIM SIGN SIN SINH SOUNDEX SQRT STDDEV SUBSTR SUBSTRB SUM TAN TANH TO_CHAR TO_DATE TO_LABEL TO_MULTI_BYTE TO_NUMBER TO_SINGLE_BYTE TRANSLATE TRUNC UID UPPER USER USERENV USING VARIANCE VSIZE
+
+
+
+
+ ABORT ACCEPT ARRAY ARRAYLEN ASSERT ASSIGN AT AUTHORIZATION BASE_TABLE BEGIN BODY CASE CHAR_BASE CLOSE CLUSTERS COLAUTH COLUMNS COMMIT CONSTANT CRASH CURRVAL CURSOR DATABASE DATA_BASE DBA DEBUGOFF DEBUGON DECLARE DEFINITION DELAY DELTA DIGITS DISPOSE DO ELSIF END ENTRY EXCEPTION EXCEPTION_INIT EXIT FALSE FETCH FORM FUNCTION GENERIC GOTO IF INDEXES INDICATOR INTERFACE LIMITED LOOP NATURAL NATURALN NEW NEXTVAL NUMBER_BASE OLD OPEN OUT PACKAGE PARTITION POSITIVE POSITIVEN PRAGMA PRIVATE PROCEDURE RAISE RANGE RECORD REF RELEASE REMR RESTRICT_REFERENCES RETURN REVERSE ROLLBACK ROWTYPE RUN SAVEPOINT SCHEMA SEPARATE SEPERATE SPACE SQL SQLCODE SQLERRM STATEMENT SUBTYPE TABAUTH TABLES TASK TERMINATE TRIGGER TRUE TYPE USE VIEWS WHEN WHILE WORK WRITE XOR
+
+
+
+
+ ACCESS_INTO_NULL COLLECTION_IS_NULL CURSOR_ALREADY_OPEN DUP_VAL_ON_INDEX INCONSISTENT_TYPE INTERNAL_ERROR INVALID_CURSOR INVALID_FILEHANDLE INVALID_MODE INVALID_NUMBER INVALID_OPERATION INVALID_PATH LOGIN_DENIED NOT_LOGGED_ON NO_DATA_FOUND OTHERS PROGRAM_ERROR READ_ERROR STORAGE_ERROR SUBSCRIPT_BEYOND_COUNT SUBSCRIPT_OUTSIDE_LIMIT TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR ZERO_DIVIDE
+
+
+
+
+ ALTER_COMPILE ALTER_TABLE_NOT_REFERENCEABLE ALTER_TABLE_REFERENCEABLE ANALYZE_DATABASE ANALYZE_OBJECT ANALYZE_PART_OBJECT ANALYZE_SCHEMA BEGIN_TABLE_REORGANISATION BIND_ARRAY BIND_VARIABLE BIND_VARIABLE_CHAR BIND_VARIABLE_RAW BIND_VARIABLE_ROWID BROKEN CHANGE CHECK_PRIVS CLOSE_CURSOR COLUMN_VALUE COLUMN_VALUE_CHAR COLUMN_VALUE_LONG COLUMN_VALUE_RAW COLUMN_VALUE_ROWID COMMA_TO_TABLE COMMIT_CM COMPILE_SCHEMA CREATE_PIPE DATA_BLOCK_ADDRESS_FILE DB_VERSION DEFINE_ARRAY DEFINE_COLUMN DEFINE_COLUMN_CHAR DEFINE_COLUMN_LONG DEFINE_COLUMN_RAW DEFINE_COLUMN_ROWID DELETING DESCRIBE_COLUMNS DESCRIBE_PROCEDURE DISABLE ENABLE END_TABLE_REORGANISATION EXECUTE EXECUTE_AND_FETCH EXEC_DDL_STATEMENT FCLOSE FCLOSE_ALL FETCH_ROWS FFLUSH FOPEN FORMAT_CALL_STACK FORMAT_ERROR_STACK GET_HASH_VALUE GET_LINE GET_LINES GET_PARAMETER_VALUE GET_TIME INSERTING INTERVAL ISUBMIT IS_OPEN IS_PARALLEL_SERVER I_AM_A_REFRESH LAST_ERROR_POSITION LAST_ROW_COUNT LAST_ROW_ID LAST_SQL_FUNCTION_CODE MAKE_DATA_BLOCK_ADDRESS NAME_RESOLVE NAME_TOKENIZE NEW_LINE NEXT_DATE NEXT_ITEM_TYPE OPEN_CURSOR PACK_MESSAGE PARSE PORT_STRING PURGE PURGE_LOG PURGE_SNAPSHOT_FROM_LOG PUT PUTF PUT_LINE RAISE_APPLICATION_ERROR RECEIVE_MESSAGE REFRESH REFRESH_ALL REGISTER REGISTER_SNAPSHOT REMOVE REMOVE_ALL REMOVE_PIPE RESET_BUFFER ROLLBACK_NR ROLLBACK_SV SEND_MESSAGE SET_DEFAULTS SET_I_AM_A_REFRESH SET_TRANSACTION_USE SIGNAL SUBMIT TABLE_TO_COMMA UNIQUE_SESSION_NAME UNPACK_MESSAGE UNREGISTER_SNAPSHOT UPDATING USER_EXPORT VARIABLE_VALUE VARIABLE_VALUE_CHAR VARIABLE_VALUE_RAW VARIABLE_VALUE_ROWID WAITANY WAITONE WHAT DEFINE PROMPT SHOW
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/PHP.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/PHP.Syn
new file mode 100644
index 0000000..7d277f3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/PHP.Syn
@@ -0,0 +1,487 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+echo else elseif
+for
+global
+if
+return
+while
+include true false
+switch
+case
+break
+default
+
+
+
+
+
+Abs Acos ada_afetch ada_autocommit ada_close ada_commit ada_connect ada_exec ada_fetchrow ada_fieldname ada_fieldnum ada_fieldtype ada_freeresult ada_numfields ada_numrows
+ada_result ada_resultall ada_rollback AddCSlashes AddSlashes apache_lookup_uri apache_note array array_count_values array_flip array_keys array_merge array_pad array_pop
+array_push array_reverse array_shift array_slice array_splice array_unshift array_values array_walk arsort Asin asort aspell_check aspell_check-raw aspell_new aspell_suggest
+Atan Atan2
+base64_decode base64_encode basename base_convert bcadd bccomp bcdiv bcmod bcmul bcpow bcscale bcsqrt bcsub bin2hex BinDec
+Ceil chdir checkdate checkdnsrr chgrp chmod Chop chown Chr chunk_split clearstatcache closedir closelog connection_aborted connection_status connection_timeout
+contained convert_cyr_string copy Cos count cpdf_add_annotation cpdf_add_outline cpdf_arc cpdf_begin_text cpdf_circle cpdf_clip cpdf_close cpdf_closepath
+cpdf_closepath_fill_stroke cpdf_closepath_stroke cpdf_continue_text cpdf_curveto cpdf_end_text cpdf_fill cpdf_fill_stroke cpdf_finalize cpdf_finalize_page
+cpdf_import_jpeg cpdf_lineto cpdf_moveto cpdf_open cpdf_output_buffer cpdf_page_init cpdf_place_inline_image cpdf_rect cpdf_restore cpdf_rlineto cpdf_rmoveto
+cpdf_rotate cpdf_save cpdf_save_to_file cpdf_scale cpdf_setdash cpdf_setflat cpdf_setgray cpdf_setgray_fill cpdf_setgray_stroke cpdf_setlinecap cpdf_setlinejoin
+cpdf_setlinewidth cpdf_setmiterlimit cpdf_setrgbcolor cpdf_setrgbcolor_fill cpdf_setrgbcolor_stroke cpdf_set_char_spacing cpdf_set_creator cpdf_set_current_page
+cpdf_set_font cpdf_set_horiz_scaling cpdf_set_keywords cpdf_set_leading cpdf_set_page_animation cpdf_set_subject cpdf_set_text_matrix cpdf_set_text_pos
+cpdf_set_text_rendering cpdf_set_text_rise cpdf_set_title cpdf_set_word_spacing cpdf_show cpdf_show_xy cpdf_stringwidth cpdf_stroke cpdf_text cpdf_translate crypt current
+date dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_record dbase_get_record_with_names dbase_numfields dbase_numrecords dbase_open dbase_pack
+dbase_replace_record dblist dbmclose dbmdelete dbmexists dbmfetch dbmfirstkey dbminsert dbmnextkey dbmopen dbmreplace debugger_off debugger_on DecBin DecHex DecOct define
+defined delete die dir dirname diskfreespace dl doubleval
+each easter_date easter_days echo empty end endwhile ereg eregi eregi_replace ereg_replace error_log error_reporting escapeshellcmd eval exec exit Exp explode extension_loaded extract
+fclose fdf_close fdf_create fdf_get_file fdf_get_status fdf_get_value fdf_next_field_name fdf_open fdf_save fdf_set_ap fdf_set_file fdf_set_status fdf_set_value feof fgetc
+fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner fileperms filepro filepro_fieldcount filepro_fieldname filepro_fieldtype
+filepro_fieldwidth filepro_retrieve filepro_rowcount filesize filetype file_exists flock Floor flush fopen fpassthru fputs fread FrenchToJD fseek fsockopen ftell ftp_cdup
+ftp_chdir ftp_connect ftp_delete ftp_fget ftp_fput ftp_get ftp_login ftp_mdtm ftp_mkdir ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_rawlist ftp_rename ftp_rmdir ftp_size
+ftp_systype function_exists func_get_arg func_get_args func_num_args fwrite
+getallheaders getdate getenv gethostbyaddr gethostbyname gethostbynamel GetImageSize getlastmod getmxrr getmyinode getmypid getmyuid getprotobyname getprotobynumber getrandmax
+getrusage getservbyname getservbyport gettimeofday gettype get_browser get_cfg_var get_current_user get_html_translation_table get_magic_quotes_gpc get_magic_quotes_runtime
+get_meta_tags gmdate gmmktime gmstrftime GregorianToJD gzclose gzeof gzfile gzgetc gzgets gzgetss gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzwrite
+header HexDec htmlentities htmlspecialchars hw_Array2Objrec hw_Children hw_ChildrenObj hw_Close hw_Connect hw_Cp hw_Deleteobject hw_DocByAnchor hw_DocByAnchorObj
+hw_DocumentAttributes hw_DocumentBodyTag hw_DocumentContent hw_DocumentSetContent hw_DocumentSize hw_EditText hw_Error hw_ErrorMsg hw_Free_Document hw_GetAnchors
+hw_GetAnchorsObj hw_GetAndLock hw_GetChildColl hw_GetChildCollObj hw_GetChildDocColl hw_GetChildDocCollObj hw_GetObject hw_GetObjectByQuery hw_GetObjectByQueryColl
+hw_GetObjectByQueryCollObj hw_GetObjectByQueryObj hw_GetParents hw_GetParentsObj hw_GetRemote hw_GetRemoteChildren hw_GetSrcByDestObj hw_GetText hw_Identify hw_InCollections
+hw_Info hw_InsColl hw_InsDoc hw_InsertDocument hw_InsertObject hw_mapid hw_Modifyobject hw_Mv hw_New_Document hw_Objrec2Array hw_OutputDocument hw_pConnect hw_PipeDocument
+hw_Root hw_Unlock hw_Username hw_Who
+ibase_bind ibase_close ibase_connect ibase_execute ibase_fetch_row ibase_free_query ibase_free_result ibase_pconnect ibase_prepare ibase_query ibase_timefmt ifxus_close_slob
+ifxus_create_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close
+ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char
+ifx_free_result ifx_free_slob ifx_getsqlca ifx_get_blob ifx_get_char ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query
+ifx_textasvarchar ifx_update_blob ifx_update_char ignore_user_abort ImageArc ImageChar ImageCharUp ImageColorAllocate ImageColorAt ImageColorClosest ImageColorExact
+ImageColorResolve ImageColorSet ImageColorsForIndex ImageColorsTotal ImageColorTransparent ImageCopyResized ImageCreate ImageCreateFromGif ImageDashedLine ImageDestroy
+ImageFill ImageFilledPolygon ImageFilledRectangle ImageFillToBorder ImageFontHeight ImageFontWidth ImageGif ImageInterlace ImageLine ImageLoadFont ImagePolygon ImagePSBBox
+ImagePSEncodeFont ImagePSFreeFont ImagePSLoadFont ImagePSText ImageRectangle ImageSetPixel ImageString ImageStringUp ImageSX ImageSY ImageTTFBBox ImageTTFText imap_8bit
+imap_alerts imap_append imap_base64 imap_binary imap_body imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge
+imap_fetchbody imap_fetchheader imap_fetchstructure imap_getmailboxes imap_getsubscribed imap_header imap_headers imap_last_error imap_listmailbox imap_listsubscribed
+imap_mailboxmsginfo imap_mail_copy imap_mail_move imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen
+imap_rfc822_parse_adrlist imap_rfc822_write_address imap_scanmailbox imap_search imap_setflag_full imap_sort imap_status imap_subscribe imap_uid imap_undelete
+imap_unsubscribe implode intval in_array iptcparse isset is_array is_dir is_double is_executable is_file is_float is_int is_integer is_link is_long is_object is_readable
+is_real is_string is_writeable
+JDDayOfWeek JDMonthName JDToFrench JDToGregorian JDToJewish JDToJulian JewishToJD join JulianToJD
+key krsort ksort
+ldap_add ldap_bind ldap_close ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry
+ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_values ldap_get_values_len ldap_list ldap_modify ldap_mod_add ldap_mod_del ldap_mod_replace
+ldap_next_attribute ldap_next_entry ldap_read ldap_search ldap_unbind leak link linkinfo list Log Log10 lstat ltrim
+mail max mcal_close mcal_date_compare mcal_date_valid mcal_days_in_month mcal_day_of_week mcal_day_of_year mcal_delete_event mcal_event_init mcal_event_set_alarm
+mcal_event_set_category mcal_event_set_class mcal_event_set_description mcal_event_set_end mcal_event_set_recur_daily mcal_event_set_recur_monthly_mday
+mcal_event_set_recur_monthly_wday mcal_event_set_recur_weekly mcal_event_set_recur_yearly mcal_event_set_start mcal_event_set_title mcal_fetch_current_stream_event
+mcal_fetch_event mcal_is_leap_year mcal_list_alarms mcal_list_events mcal_next_recurrence mcal_open mcal_snooze mcal_store_event mcal_time_valid mcrypt_cbc mcrypt_cfb
+mcrypt_create_iv mcrypt_ecb mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_key_size mcrypt_ofb md5 Metaphone mhash mhash_count mhash_get_block_size
+mhash_get_hash_name microtime min mkdir mktime Modifiers msql msql_affected_rows msql_close msql_connect msql_createdb msql_create_db msql_data_seek msql_dbname
+msql_dropdb msql_drop_db msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable
+msql_fieldtype msql_field_seek msql_freeresult msql_free_result msql_listdbs msql_listfields msql_listtables msql_list_dbs msql_list_fields msql_list_tables msql_numfields
+msql_numrows msql_num_fields msql_num_rows msql_pconnect msql_query msql_regcase msql_result msql_selectdb msql_select_db msql_tablename mssql_close mssql_connect
+mssql_data_seek mssql_fetch_array mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_seek mssql_free_result mssql_num_fields mssql_num_rows mssql_pconnect
+mssql_query mssql_result mssql_select_db mt_getrandmax mt_rand mt_srand mysql_affected_rows mysql_change_user mysql_close mysql_connect mysql_create_db mysql_data_seek
+mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_fetch_array mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags
+mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_tables
+mysql_num_fields mysql_num_rows mysql_pconnect mysql_query mysql_result mysql_select_db mysql_tablename
+next nl2br number_format
+OCIBindByName OCIColumnIsNULL OCIColumnName OCIColumnSize OCIColumnType OCICommit OCIDefineByName OCIError OCIExecute OCIFetch OCIFetchInto OCIFetchStatement OCIFreeCursor
+OCIFreeStatement OCIInternalDebug OCILogOff OCILogon OCINewCursor OCINewDescriptor OCINLogon OCINumCols OCIParse OCIPLogon OCIResult OCIRollback OCIRowCount OCIServerVersion
+OCIStatementType OctDec odbc_autocommit odbc_binmode odbc_close odbc_close_all odbc_commit odbc_connect odbc_cursor odbc_do odbc_exec odbc_execute odbc_fetch_into
+odbc_fetch_row odbc_field_len odbc_field_name odbc_field_type odbc_free_result odbc_longreadlen odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_result
+odbc_result_all odbc_rollback odbc_setoption opendir openlog Ora_Bind Ora_Close Ora_ColumnName Ora_ColumnType Ora_Commit Ora_CommitOff Ora_CommitOn Ora_Error Ora_ErrorCode
+Ora_Exec Ora_Fetch Ora_GetColumn Ora_Logoff Ora_Logon Ora_Open Ora_Parse Ora_Rollback Ord
+pack parse_str parse_url passthru Pattern Pattern pclose pdf_add_annotation PDF_add_outline PDF_arc PDF_begin_page PDF_circle PDF_clip PDF_close PDF_closepath
+PDF_closepath_fill_stroke PDF_closepath_stroke PDF_close_image PDF_continue_text PDF_curveto PDF_endpath PDF_end_page PDF_execute_image PDF_fill PDF_fill_stroke
+PDF_get_info PDF_lineto PDF_moveto PDF_open PDF_open_gif PDF_open_jpeg PDF_open_memory_image PDF_place_image PDF_put_image PDF_rect PDF_restore PDF_rotate PDF_save
+PDF_scale PDF_setdash PDF_setflat PDF_setgray PDF_setgray_fill PDF_setgray_stroke PDF_setlinecap PDF_setlinejoin PDF_setlinewidth PDF_setmiterlimit PDF_setrgbcolor
+PDF_setrgbcolor_fill PDF_setrgbcolor_stroke PDF_set_char_spacing PDF_set_duration PDF_set_font PDF_set_horiz_scaling PDF_set_info_author PDF_set_info_creator
+PDF_set_info_keywords PDF_set_info_subject PDF_set_info_title PDF_set_leading PDF_set_text_matrix PDF_set_text_pos PDF_set_text_rendering PDF_set_text_rise
+PDF_set_transition PDF_set_word_spacing PDF_show PDF_show_xy PDF_stringwidth PDF_stroke PDF_translate pfsockopen pg_Close pg_cmdTuples pg_Connect pg_DBname
+pg_ErrorMessage pg_Exec pg_Fetch_Array pg_Fetch_Object pg_Fetch_Row pg_FieldIsNull pg_FieldName pg_FieldNum pg_FieldPrtLen pg_FieldSize pg_FieldType pg_FreeResult
+pg_GetLastOid pg_Host pg_loclose pg_locreate pg_loopen pg_loread pg_loreadall pg_lounlink pg_lowrite pg_NumFields pg_NumRows pg_Options pg_pConnect pg_Port pg_Result
+pg_tty phpinfo phpversion pi popen pos posix_ctermid posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin
+posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getuid posix_isatty posix_kill posix_mkfifo posix_setgid
+posix_setpgid posix_setsid posix_setsid posix_setuid posix_times posix_ttyname posix_uname pow preg_grep preg_match preg_match_all preg_quote preg_replace preg_split
+prev print printf putenv
+quoted_printable_decode QuoteMeta
+rand range rawurldecode rawurlencode readdir readfile readgzfile readlink recode_file recode_string register_shutdown_function rename reset rewind rewinddir rmdir round rsort
+sem_acquire sem_get sem_release serialize session_decode session_destroy session_encode session_id session_is_registered session_module_name session_name session_register
+session_save_path session_start session_unregister setcookie setlocale settype set_file_buffer set_magic_quotes_runtime set_socket_blocking set_time_limit shm_attach
+shm_detach shm_get_var shm_put_var shm_remove shm_remove_var shuffle similar_text Sin sizeof sleep snmpget snmpset snmpwalk snmpwalkoid snmp_get_quick_print
+snmp_set_quick_print solid_close solid_connect solid_exec solid_fetchrow solid_fieldname solid_fieldnum solid_freeresult solid_numfields solid_numrows solid_result sort
+soundex split sprintf sql_regcase Sqrt srand stat strcasecmp strchr strcmp strcspn strftime StripCSlashes StripSlashes strip_tags stristr strlen strpos strrchr strrev strrpos
+strspn strstr strtok strtolower strtoupper strtr strval str_repeat str_replace substr substr_replac sybase_affected_rows sybase_close sybase_connect sybase_data_seek
+sybase_fetch_array sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_num_fields sybase_num_rows sybase_pconnect sybase_query
+sybase_result sybase_select_db symlink Syntax syslog system
+Tan tempnam time touch trim
+uasort ucfirst ucwords uksort umask uniqid unlink unpack unserialize unset urldecode urlencode usleep usort utf8_decode utf8_encode
+virtual vm_addalias vm_adduser vm_delalias vm_deluser vm_passwd
+wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars
+xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse xml_parser_create xml_parser_free
+xml_parser_get_option xml_parser_set_option xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_external_entity_ref_handler
+xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_unparsed_entity_decl_handler
+yp_errno yp_err_string yp_first yp_get_default_domain yp_master yp_match yp_next yp_order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Perl.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Perl.syn
new file mode 100644
index 0000000..6f5e71b
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Perl.syn
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -A -B -C -M -O -R -S -T -W -X -b -c -d -e -f -g -k -l -o -p -r -s -t -u -w -x -z __DATA__ __END__ __FILE__ __LINE__ continue do else elsif for foreach goto if last local my next no our package redo return require sub until unless use while
+
+
+
+
+ accept alarm atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir connect cos crypt dbmclose dbmopen defined delete die dump each endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exit exp exists fcntl fileno flock fork formline format getc getgrent getgrgid getgrname gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime grep hex index int ioctl join keys kill lc lcfirst length link listen localtime log lstat map mkdir msgctl msgget msgrcv msgsnd new oct open opendir ord pack pipe pop pos print printf push quotemeta rand read readdir readline readlink recv ref rename reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl semgett semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study substr symlink syscall sysopen sysread system syswrite tell telldir tie tied time times truncate uc ucfirst umask undef unlink unpack unshift utime untie values vec wait waitpid wantarray warn write
+
+
+
+
+ AUTOLOAD and BEGIN CORE cmp DESTROY eq END ge gt le lt ne not m or q qq qw qx SUPER s tr UNIVERSAL x xor y
+
+
+
+
+ $@ @
+
+
+
+
+
+
+
+
+
+
+ ~ ! % " & * ( ) + = | \ / { } [ ] : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Povray.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Povray.syn
new file mode 100644
index 0000000..2b565ee
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Povray.syn
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abs absorption acos acosh adaptive adc_bailout agate agate_turb all alpha ambient ambient_light angle aperture append arc_angle area_light array asc asin asinh assumed_gamma atan atan2 atanh average background bezier_spline bicubic_patch black_hole blob blue blur_samples bounded_by box boxed bozo break brick brick_size brightness brilliance bumps bump_map bump_size camera case caustics ceil checker chr clipped_by clock clock_delta color color_map colour colour_map component composite concat cone confidence conic_sweep control0 control1 cos cosh count crackle crand cube cubic cubic_spline cubic_wave cylinder cylindrical debug declare default defined degrees density density_file density_map dents difference diffuse dimensions dimension_size direction disc distance distance_maximum div eccentricity else emission end error error_bound exp extinction fade_distance fade_power falloff falloff_angle false fclose file_exists filter finish fisheye flatness flip floor focal_point fog fog_alt fog_offset fog_type fopen frequency gif global_settings gradient granite gray_threshold green height_field hexagon hf_gray_16 hierarchy hollow hypercomplex if ifdef iff ifndef image_map include int interior interpolate intersection intervals inverse ior irid irid_wavelength jitter julia_fractal lambda lathe leopard light_source linear_spline linear_sweep local location log looks_like look_at low_error_factor macro mandel map_type marble material material_map matrix max max_intersections max_iteration max_trace_level media media_attenuation media_interaction merge mesh metallic min minimum_reuse mod mortar nearest_count no normal normal_map no_shadow number_of_waves object octaves off offset omega omnimax on once onion open orthographic panoramic perspective pgm phase phong phong_size pi pigment pigment_map planar plane png point_at poly polygon poly_wave pot pow ppm precision prism pwr quadratic_spline quadric quartic quaternion quick_color quick_colour quilted radial radians radiosity radius rainbow ramp_wave rand range ratio read reciprocal recursion_limit red reflection reflection_exponent refraction render repeat rgb rgbf rgbft rgbt right ripples rotate roughness samples scale scallop_wave scattering seed shadowless sin sine_wave sinh sky sky_sphere slice slope_map smooth smooth_triangle sor specular sphere spherical spiral1 spiral2 spotlight spotted sqr sqrt statistics str strcmp strength strlen strlwr strupr sturm substr superellipsoid switch sys t tan tanh text texture texture_map tga thickness threshold tightness tile2 tiles torus track transform translate transmit triangle triangle_wave true ttf turbulence turb_depth type u ultra_wide_angle undef union up use_color use_colour use_index u_steps v val variance vaxis_rotate vcross vdot version vlength vnormalize vrotate v_steps warning warp water_level waves while width wood wrinkles write x y yes z
+
+
+
+
+ <>
+
+
+
+
+ { }
+
+
+
+
+ < >
+
+
+
+
+
+
+
+
+
+
+ < > # ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Python.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Python.syn
new file mode 100644
index 0000000..92763c3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Python.syn
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and assert break class continue def del elif else except exec finally for from global if import in is lambda map not None or pass print raise range return try while
+
+
+
+
+ abs apply callable chr cmp coerce compile complex delattr dir divmod eval execfile filter float getattr globals group hasattr hash hex id input int intern isinstance issubclass joinfields len list local long max min match oct open ord pow raw_input reduce reload repr round search setattr slice str splitfields tuple type vars xrange __import__
+
+
+
+
+ __abs__ __add__ __and__ __call__ __cmp__ __coerce__ __del__ __delattr__ __delitem__ __delslice__ __div__ __divmod__ __float__ __getattr__ __getitem__ __getslice__ __hash__ __hex__ __invert__ __int__ __init__ __len__ __long__ __lshift__ __mod__ __mul__ __neg__ __nonzero__ __oct__ __or__ __pos__ __pow__ __radd__ __rdiv__ __rdivmod__ __rmod__ __rpow__ __rlshift__ __rrshift__ __rshift__ __rsub__ __rmul__ __repr__ __rand__ __rxor__ __ror__ __setattr__ __setitem__ __setslice__ __str__ __sub__ __xor__
+
+
+
+
+ __bases__ __class__ __dict__ __methods__ __members__ __name__ __version__
+
+
+
+
+ ArithmeticError AssertionError AttributeError EOFError Exception FloatingPointError IOError ImportError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError OverflowError RuntimeError StandardError SyntaxError SystemError SystemExit TypeError ValueError ZeroDivisionError
+
+
+
+
+ AST BaseHTTPServer Bastion cmd commands compileall copy CGIHTTPServer Complex dbhash dircmp dis dospath dumbdbm emacs find fmt fnmatch ftplib getopt glob gopherlib grep htmllib httplib ihooks imghdr linecache lockfile macpath macurl2path mailbox mailcap mimetools mimify mutex math Mimewriter newdir ni nntplib ntpath nturl2path os ospath pdb pickle pipes poly popen2 posixfile posixpath profile pstats pyclbr Para quopri Queue rand random regex regsub rfc822 sched sgmllib shelve site sndhdr string sys snmp SimpleHTTPServer StringIO SocketServer tb tempfile toaiff token tokenize traceback tty types tzparse Tkinter urllib urlparse util uu UserDict UserList wave whatsound whichdb whrandom xdrlib zmod
+
+
+
+
+ array fnmatch struct self
+
+
+
+
+
+
+
+
+
+
+ [ ] { } ( ) < > = " ' . , : +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer2K_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer2K_SQL.syn
new file mode 100644
index 0000000..3086e95
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer2K_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action add all alter and any as asc authorization avg backup begin between break browse bulk by cascade case check checkpoint close clustered coalesce collate column commit committed compute confirm constraint contains containstable continue controlrow convert count create cross current current_date current_time current_timestamp current_user cursor database dbcc deallocate declare default delete deny desc disable disk distinct distributed double drop dummy dump else enable end errlvl errorexit escape except exec execute exists exit fetch file fillfactor floppy for foreign forward_only freetext freetexttable from full function goto grant group having holdlock identity identity_insert identitycol if in index inner insert intersect into is isolation join key kill left level like lineno load mirrorexit move national no nocheck nonclustered not nounload null nullif of off offsets on once only open opendatasource openquery openrowset option or order outer over percent perm permanent pipe plan precision prepare primary print privileges proc procedure processexit public raiserror read readtext read_only reconfigure recovery references repeatable replication restore restrict return returns revoke right rollback rowcount rowguidcol rule save schema select serializable session_user set setuser shutdown some statistics stats system_user table tape temp temporary textsize then to top tran transaction trigger truncate tsequal uncommitted union unique update updatetext use user values varying view waitfor when where while with work writetext nocount count
+
+
+
+
+
+
+ bigint binary bit char character datetime dec decimal float image int integer money nchar ntext numeric nvarchar real smalldatetime smallint smallmoney sql_variant sysname text timestamp tinyint uniqueidentifier varbinary varchar
+
+
+
+
+ sp_abort_xact sp_add_agent_parameter sp_add_agent_profile sp_add_server_sortinfo sp_addalias sp_addapprole sp_addarticle sp_adddistpublisher sp_adddistributiondb sp_adddistributor sp_addextendedproc sp_addgroup sp_addlinkedserver sp_addlinkedsrvlogin sp_addlogin sp_addmergearticle sp_addmergefilter sp_addmergepublication sp_addmergepullsubscription sp_addmergepullsubscription_agent sp_addmergesubscription sp_addmessage sp_addpublication sp_addpublication_snapshot sp_addpublisher sp_addpullsubscription sp_addpullsubscription_agent sp_addremotelogin sp_addrole sp_addrolemember sp_addserver sp_addsrvrolemember sp_addsubscriber sp_addsubscriber_schedule sp_addsubscription sp_addsynctriggers sp_addtype sp_addumpdevice sp_adduser sp_altermessage sp_approlepassword sp_article_validation sp_articlecolumn sp_articlefilter sp_articlesynctranprocs sp_articleview sp_attach_db sp_attach_single_file_db sp_autostats sp_bindefault sp_bindrule sp_bindsession sp_blockcnt sp_catalogs sp_catalogs_rowset sp_certify_removable sp_change_subscription_properties sp_change_users_login sp_changearticle sp_changedbowner sp_changedistpublisher sp_changedistributiondb sp_changedistributor_password sp_changedistributor_property sp_changegroup sp_changemergearticle sp_changemergefilter sp_changemergepublication sp_changemergepullsubscription sp_changemergesubscription sp_changeobjectowner sp_changepublication sp_changesubscriber sp_changesubscriber_schedule sp_changesubscription sp_changesubstatus sp_check_for_sync_trigger sp_check_removable sp_check_removable_sysusers sp_check_sync_trigger sp_checknames sp_cleanupwebtask sp_column_privileges sp_column_privileges_ex sp_column_privileges_rowset sp_columns sp_columns_ex sp_columns_rowset sp_commit_xact sp_configure sp_create_removable sp_createorphan sp_createstats sp_cursor sp_cursor_list sp_cursorclose sp_cursorexecute sp_cursorfetch sp_cursoropen sp_cursoroption sp_cursorprepare sp_cursorunprepare sp_databases sp_datatype_info sp_db_upgrade sp_dbcmptlevel sp_dbfixedrolepermission sp_dboption sp_dbremove sp_ddopen sp_defaultdb sp_defaultlanguage sp_deletemergeconflictrow sp_denylogin sp_depends sp_describe_cursor sp_describe_cursor_columns sp_describe_cursor_tables sp_detach_db sp_diskdefault sp_distcounters sp_drop_agent_parameter sp_drop_agent_profile sp_dropalias sp_dropapprole sp_droparticle sp_dropdevice sp_dropdistpublisher sp_dropdistributiondb sp_dropdistributor sp_dropextendedproc sp_dropgroup sp_droplinkedsrvlogin sp_droplogin sp_dropmergearticle sp_dropmergefilter sp_dropmergepublication sp_dropmergepullsubscription sp_dropmergesubscription sp_dropmessage sp_droporphans sp_droppublication sp_droppublisher sp_droppullsubscription sp_dropremotelogin sp_droprole sp_droprolemember sp_dropserver sp_dropsrvrolemember sp_dropsubscriber sp_dropsubscription sp_droptype sp_dropuser sp_dropwebtask sp_dsninfo sp_enumcodepages sp_enumcustomresolvers sp_enumdsn sp_enumfullsubscribers sp_enumoledbdatasources sp_execute sp_executesql sp_fallback_MS_sel_fb_svr sp_fetchshowcmdsinput sp_fixindex sp_fkeys sp_foreign_keys_rowset sp_foreignkeys sp_fulltext_catalog sp_fulltext_column sp_fulltext_database sp_fulltext_getdata sp_fulltext_service sp_fulltext_table sp_generatefilters sp_get_distributor sp_getarticlepkcolbitmap sp_getbindtoken sp_GetMBCSCharLen sp_getmergedeletetype sp_gettypestring sp_grant_publication_access sp_grantdbaccess sp_grantlogin sp_help sp_help_agent_default sp_help_agent_parameter sp_help_agent_profile sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor sp_help_fulltext_columns sp_help_fulltext_columns_cursor sp_help_fulltext_tables sp_help_fulltext_tables_cursor sp_help_publication_access sp_helpallowmerge_publication sp_helparticle sp_helparticlecolumns sp_helpconstraint sp_helpdb sp_helpdbfixedrole sp_helpdevice sp_helpdistpublisher sp_helpdistributiondb sp_helpdistributor sp_helpdistributor_properties sp_helpextendedproc sp_helpfile sp_helpfilegroup sp_helpgroup sp_helpindex sp_helplanguage sp_helplog sp_helplogins sp_helpmergearticle sp_helpmergearticleconflicts sp_helpmergeconflictrows sp_helpmergedeleteconflictrows sp_helpmergefilter sp_helpmergepublication sp_helpmergepullsubscription sp_helpmergesubscription sp_helpntgroup sp_helppublication sp_helppublication_snapshot sp_helppublicationsync sp_helppullsubscription sp_helpremotelogin sp_helpreplicationdb sp_helpreplicationdboption sp_helpreplicationoption sp_helprole sp_helprolemember sp_helprotect sp_helpserver sp_helpsort sp_helpsql sp_helpsrvrole sp_helpsrvrolemember sp_helpstartup sp_helpsubscriber sp_helpsubscriberinfo sp_helpsubscription sp_helpsubscription_properties sp_helptext sp_helptrigger sp_helpuser sp_indexes sp_indexes_rowset sp_indexoption sp_isarticlecolbitset sp_IsMBCSLeadByte sp_link_publication sp_linkedservers sp_linkedservers_rowset sp_lock sp_lockinfo sp_logdevice sp_makestartup sp_makewebtask sp_mergedummyupdate sp_mergesubscription_cleanup sp_mergesubscriptioncleanup sp_monitor sp_MS_marksystemobject sp_MS_replication_installed sp_MS_upd_sysobj_category sp_MSactivate_auto_sub sp_MSadd_distributor_alerts_and_responses sp_MSadd_mergereplcommand sp_MSadd_repl_job sp_MSaddanonymousreplica sp_MSaddarticletocontents sp_MSaddexecarticle sp_MSaddguidcolumn sp_MSaddguidindex sp_MSaddinitialarticle sp_MSaddinitialpublication sp_MSaddinitialsubscription sp_MSaddlogin_implicit_ntlogin sp_MSaddmergepub_snapshot sp_MSaddmergetriggers sp_MSaddpub_snapshot sp_MSaddpubtocontents sp_MSaddupdatetrigger sp_MSadduser_implicit_ntlogin sp_MSarticlecleanup sp_MSarticletextcol sp_MSbelongs sp_MSchange_priority sp_MSchangearticleresolver sp_MScheck_agent_instance sp_MScheck_uid_owns_anything sp_MScheckatpublisher sp_MScheckexistsgeneration sp_MScheckmetadatamatch sp_MScleanup_subscription sp_MScleanuptask sp_MScontractsubsnb sp_MScreate_dist_tables sp_MScreate_distributor_tables sp_MScreate_mergesystables sp_MScreate_pub_tables sp_MScreate_replication_checkup_agent sp_MScreate_replication_status_table sp_MScreate_sub_tables sp_MScreateglobalreplica sp_MScreateretry sp_MSdbuseraccess sp_MSdbuserpriv sp_MSdeletecontents sp_MSdeletepushagent sp_MSdeleteretry sp_MSdelrow sp_MSdelsubrows sp_MSdependencies sp_MSdoesfilterhaveparent sp_MSdrop_6x_replication_agent sp_MSdrop_distributor_alerts_and_responses sp_MSdrop_mergesystables sp_MSdrop_object sp_MSdrop_pub_tables sp_MSdrop_replcom sp_MSdrop_repltran sp_MSdrop_rladmin sp_MSdrop_rlcore sp_MSdrop_rlrecon sp_MSdroparticleprocs sp_MSdroparticletombstones sp_MSdroparticletriggers sp_MSdropconstraints sp_MSdropmergepub_snapshot sp_MSdropretry sp_MSdummyupdate sp_MSenum_replication_agents sp_MSenum_replication_job sp_MSenum3rdpartypublications sp_MSenumallpublications sp_MSenumchanges sp_MSenumcolumns sp_MSenumdeletesmetadata sp_MSenumgenerations sp_MSenummergepublications sp_MSenumpartialchanges sp_MSenumpartialdeletes sp_MSenumpubreferences sp_MSenumreplicas sp_MSenumretries sp_MSenumschemachange sp_MSenumtranpublications sp_MSexists_file sp_MSexpandbelongs sp_MSexpandnotbelongs sp_MSexpandsubsnb sp_MSfilterclause sp_MSflush_access_cache sp_MSflush_command sp_MSforeach_worker sp_MSforeachdb sp_MSforeachtable sp_MSgen_sync_tran_procs sp_MSgenreplnickname sp_MSgentablenickname sp_MSget_col_position sp_MSget_colinfo sp_MSget_oledbinfo sp_MSget_publisher_rpc sp_MSget_qualifed_name sp_MSget_synctran_commands sp_MSget_type sp_MSgetalertinfo sp_MSgetchangecount sp_MSgetconflictinsertproc sp_MSgetlastrecgen sp_MSgetlastsentgen sp_MSgetonerow sp_MSgetreplicainfo sp_MSgetreplnick sp_MSgetrowmetadata sp_MSguidtostr sp_MShelp_distdb sp_MShelp_replication_status sp_MShelpcolumns sp_MShelpfulltextindex sp_MShelpindex sp_MShelpmergearticles sp_MShelpobjectpublications sp_MShelptype sp_MSIfExistsRemoteLogin sp_MSindexcolfrombin sp_MSindexspace sp_MSinit_replication_perfmon sp_MSinsertcontents sp_MSinsertdeleteconflict sp_MSinsertgenhistory sp_MSinsertschemachange sp_MSis_col_replicated sp_MSis_pk_col sp_MSkilldb sp_MSload_replication_status sp_MSlocktable sp_MSloginmappings sp_MSmakearticleprocs sp_MSmakeconflictinsertproc sp_MSmakeexpandproc sp_MSmakegeneration sp_MSmakeinsertproc sp_MSmakejoinfilter sp_MSmakeselectproc sp_MSmakesystableviews sp_MSmaketempinsertproc sp_MSmakeupdateproc sp_MSmakeviewproc sp_MSmaptype sp_MSmark_proc_norepl sp_MSmatchkey sp_MSmergepublishdb sp_MSmergesubscribedb sp_MSobjectprivs sp_MSpad_command sp_MSproxiedmetadata sp_MSpublicationcleanup sp_MSpublicationview sp_MSpublishdb sp_MSrefcnt sp_MSregistersubscription sp_MSreinit_failed_subscriptions sp_MSrepl_addrolemember sp_MSrepl_dbrole sp_MSrepl_droprolemember sp_MSrepl_encrypt sp_MSrepl_linkedservers_rowset sp_MSrepl_startup sp_MSreplcheck_connection sp_MSreplcheck_publish sp_MSreplcheck_pull sp_MSreplcheck_subscribe sp_MSreplicationcompatlevel sp_MSreplrole sp_MSreplsup_table_has_pk sp_MSscript_beginproc sp_MSscript_begintrig1 sp_MSscript_begintrig2 sp_MSscript_delete_statement sp_MSscript_dri sp_MSscript_endproc sp_MSscript_endtrig sp_MSscript_insert_statement sp_MSscript_multirow_trigger sp_MSscript_params sp_MSscript_security sp_MSscript_singlerow_trigger sp_MSscript_sync_del_proc sp_MSscript_sync_del_trig sp_MSscript_sync_ins_proc sp_MSscript_sync_ins_trig sp_MSscript_sync_upd_proc sp_MSscript_sync_upd_trig sp_MSscript_trigger_assignment sp_MSscript_trigger_exec_rpc sp_MSscript_trigger_fetch_statement sp_MSscript_trigger_update_checks sp_MSscript_trigger_updates sp_MSscript_trigger_variables sp_MSscript_update_statement sp_MSscript_where_clause sp_MSscriptdatabase sp_MSscriptdb_worker sp_MSsetaccesslist sp_MSsetalertinfo sp_MSsetartprocs sp_MSsetbit sp_MSsetconflictscript sp_MSsetconflicttable sp_MSsetfilteredstatus sp_MSsetfilterparent sp_MSsetlastrecgen sp_MSsetlastsentgen sp_MSsetreplicainfo sp_MSsetreplicastatus sp_MSsetrowmetadata sp_MSsettopology sp_MSsetupbelongs sp_MSSQLDMO70_version sp_MSSQLOLE_version sp_MSSQLOLE65_version sp_MSsubscribedb sp_MSsubscriptions sp_MSsubscriptionvalidated sp_MSsubsetpublication sp_MStable_has_unique_index sp_MStable_not_modifiable sp_MStablechecks sp_MStablekeys sp_MStablenamefromnick sp_MStablenickname sp_MStablerefs sp_MStablespace sp_MStestbit sp_MStextcolstatus sp_MSunc_to_drive sp_MSuniquecolname sp_MSuniquename sp_MSuniqueobjectname sp_MSuniquetempname sp_MSunmarkreplinfo sp_MSunregistersubscription sp_MSupdate_agenttype_default sp_MSupdate_replication_status sp_MSupdatecontents sp_MSupdategenhistory sp_MSupdateschemachange sp_MSupdatesysmergearticles sp_msupg_createcatalogcomputedcols sp_msupg_dosystabcatalogupgrades sp_msupg_dropcatalogcomputedcols sp_msupg_recreatecatalogfaketables sp_msupg_recreatesystemviews sp_msupg_removesystemcomputedcolumns sp_msupg_upgradecatalog sp_MSuplineageversion sp_MSvalidatearticle sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop sp_objectfilegroup sp_oledbinfo sp_password sp_pkeys sp_prepare sp_primary_keys_rowset sp_primarykeys sp_probe_xact sp_procedure_params_rowset sp_procedures_rowset sp_processinfo sp_processmail sp_procoption sp_provider_types_rowset sp_publication_validation sp_publishdb sp_recompile sp_refreshsubscriptions sp_refreshview sp_reinitmergepullsubscription sp_reinitmergesubscription sp_reinitpullsubscription sp_reinitsubscription sp_remoteoption sp_remove_tempdb_file sp_remove_xact sp_removedbreplication sp_removesrvreplication sp_rename sp_renamedb sp_replcmds sp_replcounters sp_repldone sp_replflush sp_replica sp_replication_agent_checkup sp_replicationdboption sp_replicationoption sp_replincrementlsn sp_replpostcmd sp_replsetoriginator sp_replshowcmds sp_replsync sp_repltrans sp_replupdateschema sp_reset_connection sp_revoke_publication_access sp_revokedbaccess sp_revokelogin sp_runwebtask sp_scan_xact sp_schemata_rowset sp_script_synctran_commands sp_scriptdelproc sp_scriptinsproc sp_scriptmappedupdproc sp_scriptpkwhereclause sp_scriptupdateparams sp_scriptupdproc sp_sdidebug sp_sem_start_mail sp_server_info sp_serveroption sp_setapprole sp_setnetname sp_spaceused sp_special_columns sp_sproc_columns sp_sqlexec sp_sqlregister sp_srvrolepermission sp_start_xact sp_stat_xact sp_statistics sp_statistics_rowset sp_stored_procedures sp_subscribe sp_subscription_cleanup sp_subscriptioncleanup sp_table_privileges sp_table_privileges_ex sp_table_privileges_rowset sp_table_validation sp_tableoption sp_tables sp_tables_ex sp_tables_info_rowset sp_tables_rowset sp_tempdbspace sp_unbindefault sp_unbindrule sp_unmakestartup sp_unprepare sp_unsubscribe sp_updatestats sp_user_counter1 sp_user_counter10 sp_user_counter2 sp_user_counter3 sp_user_counter4 sp_user_counter5 sp_user_counter6 sp_user_counter7 sp_user_counter8 sp_user_counter9 sp_validatelogins sp_validlang sp_validname sp_who sp_who2 spt_committab spt_datatype_info spt_datatype_info_ext spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor spt_provider_types spt_server_info spt_values xp_availablemedia xp_check_query_results xp_cleanupwebtask xp_cmdshell xp_deletemail xp_dirtree xp_displayparamstmt xp_dropwebtask xp_dsninfo xp_enum_activescriptengines xp_enum_oledb_providers xp_enumcodepages xp_enumdsn xp_enumerrorlogs xp_enumgroups xp_eventlog xp_execresultset xp_fileexist xp_findnextmsg xp_fixeddrives xp_get_mapi_default_profile xp_get_mapi_profiles xp_get_tape_devices xp_getfiledetails xp_getnetname xp_grantlogin xp_initcolvs xp_intersectbitmaps xp_load_dummy_handlers xp_logevent xp_loginconfig xp_logininfo xp_makewebtask xp_mergexpusage xp_msver xp_msx_enlist xp_ntsec_enumdomains xp_ntsec_enumgroups xp_ntsec_enumusers xp_oledbinfo xp_param_dump xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_printstatements xp_proxiedmetadata xp_qv xp_readerrorlog xp_readmail xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regremovemultistring xp_regwrite xp_revokelogin xp_runwebtask xp_sendmail xp_servicecontrol xp_showcolv xp_showlineage xp_snmp_getstate xp_snmp_raisetrap xp_sprintf xp_sqlagent_enum_jobs xp_sqlagent_is_starting xp_sqlagent_monitor xp_sqlagent_notify xp_sqlinventory xp_sqlmaint xp_sqlregister xp_sqltrace xp_sscanf xp_startmail xp_stopmail xp_subdirs xp_terminate_process xp_test_mapi_profile xp_trace_addnewqueue xp_trace_deletequeuedefinition xp_trace_destroyqueue xp_trace_enumqueuedefname xp_trace_enumqueuehandles xp_trace_eventclassrequired xp_trace_flushqueryhistory xp_trace_generate_event xp_trace_getappfilter xp_trace_getconnectionidfilter xp_trace_getcpufilter xp_trace_getdbidfilter xp_trace_getdurationfilter xp_trace_geteventfilter xp_trace_geteventnames xp_trace_getevents xp_trace_gethostfilter xp_trace_gethpidfilter xp_trace_getindidfilter xp_trace_getntdmfilter xp_trace_getntnmfilter xp_trace_getobjidfilter xp_trace_getqueueautostart xp_trace_getqueuecreateinfo xp_trace_getqueuedestination xp_trace_getqueueproperties xp_trace_getreadfilter xp_trace_getserverfilter xp_trace_getseverityfilter xp_trace_getspidfilter xp_trace_gettextfilter xp_trace_getuserfilter xp_trace_getwritefilter xp_trace_loadqueuedefinition xp_trace_opentracefile xp_trace_pausequeue xp_trace_restartqueue xp_trace_savequeuedefinition xp_trace_setappfilter xp_trace_setconnectionidfilter xp_trace_setcpufilter xp_trace_setdbidfilter xp_trace_setdurationfilter xp_trace_seteventclassrequired xp_trace_seteventfilter xp_trace_sethostfilter xp_trace_sethpidfilter xp_trace_setindidfilter xp_trace_setntdmfilter xp_trace_setntnmfilter xp_trace_setobjidfilter xp_trace_setqueryhistory xp_trace_setqueueautostart xp_trace_setqueuecreateinfo xp_trace_setqueuedestination xp_trace_setreadfilter xp_trace_setserverfilter xp_trace_setseverityfilter xp_trace_setspidfilter xp_trace_settextfilter xp_trace_setuserfilter xp_trace_setwritefilter xp_trace_startconsumer xp_trace_toeventlogconsumer xp_trace_tofileconsumer xp_unc_to_drive xp_unload_dummy_handlers xp_updatecolvbm xp_updatelineage xp_varbintohexstr xp_writesqlinfo
+
+
+
+
+ deleted inserted sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremote_catalogs sysremote_column_privileges sysremote_columns sysremote_foreign_keys sysremote_indexes sysremote_primary_keys sysremote_provider_types sysremote_schemata sysremote_statistics sysremote_table_privileges sysremote_tables sysremote_views sysremotelogins syssegments sysservers systypes sysusers sysxlogins
+
+
+
+
+ connections cpu_busy cursor_rows datefirst dbts error fetch_status identity idle io_busy langid language lock_timeout max_connections max_precision nestlevel options packet_errors packet_received pack_sent patindex procid remserver rowcount servername servicename spid textptr textsize textvalid timeticks total_errors total_read total_write trancount version
+
+
+
+
+ abs acos app_name ascii asin atan atn2 avg binary_checksum case cast ceiling charindex checksum checksum_agg coalesce collationproperty col_length col_name columns_updated columnproperty convert cos cot count count_big current_timestamp current_user cursor_status databaseproperty databasepropertyex datalength dateadd datediff datename datepart day db_id db_name degrees difference exp file_id file_name filegroup_id filegroup_name filegroupproperty fileproperty floor fn_helpcollations fn_listextendedproperty fn_servershareddrives fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable fn_virtualfilestats formatmessage fulltextcatalogproperty fulltextserviceproperty getansinull getdate getutcdate grouping has_dbaccess host_id host_name ident_current ident_incr ident_seed index_col indexkey_property indexproperty is_member is_srvrolemember isdate isnull isnumeric left len log log10 lower ltrim max min month newid nullif object_id object_name objectproperty parsename patindex permissions pi power quotename radians rand replace replicate reverse right round rowcount_big rtrim scope_identity serverproperty sessionproperty session_user sign sin soundex space sqare sql_variant_property sqrt stats_date stdev stdevp str stuff substring sum suser_sid suser_sname system_user tan typeproperty unicode upper user_id user_name var varp year
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer7_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer7_SQL.syn
new file mode 100644
index 0000000..87f50ea
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SQLServer7_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action add all alter and any as asc authorization avg backup begin between break browse bulk by cascade case check checkpoint close clustered coalesce collate column commit committed compute confirm constraint contains containstable continue controlrow convert count create cross current current_date current_time current_timestamp current_user cursor database dbcc deallocate declare default delete deny desc disable disk distinct distributed double drop dummy dump else enable end errlvl errorexit escape except exec execute exists exit fetch file fillfactor floppy for foreign forward_only freetext freetexttable from full function goto grant group having holdlock identity identity_insert identitycol if in index inner insert intersect into is isolation join key kill left level like lineno load mirrorexit move national no nocheck nonclustered not nounload null nullif of off offsets on once only open opendatasource openquery openrowset option or order outer over percent perm permanent pipe plan precision prepare primary print privileges proc procedure processexit public raiserror read readtext read_only reconfigure recovery references repeatable replication restore restrict return returns revoke right rollback rowcount rowguidcol rule save schema select serializable session_user set setuser shutdown some statistics stats system_user table tape temp temporary textsize then to top tran transaction trigger truncate tsequal uncommitted union unique update updatetext use user values varying view waitfor when where while with work writetext nocount count
+
+
+
+
+
+
+ bigint binary bit char character datetime dec decimal float image int integer money nchar ntext numeric nvarchar real smalldatetime smallint smallmoney sql_variant sysname text timestamp tinyint uniqueidentifier varbinary varchar
+
+
+
+
+ sp_abort_xact sp_add_agent_parameter sp_add_agent_profile sp_add_server_sortinfo sp_addalias sp_addapprole sp_addarticle sp_adddistpublisher sp_adddistributiondb sp_adddistributor sp_addextendedproc sp_addgroup sp_addlinkedserver sp_addlinkedsrvlogin sp_addlogin sp_addmergearticle sp_addmergefilter sp_addmergepublication sp_addmergepullsubscription sp_addmergepullsubscription_agent sp_addmergesubscription sp_addmessage sp_addpublication sp_addpublication_snapshot sp_addpublisher sp_addpullsubscription sp_addpullsubscription_agent sp_addremotelogin sp_addrole sp_addrolemember sp_addserver sp_addsrvrolemember sp_addsubscriber sp_addsubscriber_schedule sp_addsubscription sp_addsynctriggers sp_addtype sp_addumpdevice sp_adduser sp_altermessage sp_approlepassword sp_article_validation sp_articlecolumn sp_articlefilter sp_articlesynctranprocs sp_articleview sp_attach_db sp_attach_single_file_db sp_autostats sp_bindefault sp_bindrule sp_bindsession sp_blockcnt sp_catalogs sp_catalogs_rowset sp_certify_removable sp_change_subscription_properties sp_change_users_login sp_changearticle sp_changedbowner sp_changedistpublisher sp_changedistributiondb sp_changedistributor_password sp_changedistributor_property sp_changegroup sp_changemergearticle sp_changemergefilter sp_changemergepublication sp_changemergepullsubscription sp_changemergesubscription sp_changeobjectowner sp_changepublication sp_changesubscriber sp_changesubscriber_schedule sp_changesubscription sp_changesubstatus sp_check_for_sync_trigger sp_check_removable sp_check_removable_sysusers sp_check_sync_trigger sp_checknames sp_cleanupwebtask sp_column_privileges sp_column_privileges_ex sp_column_privileges_rowset sp_columns sp_columns_ex sp_columns_rowset sp_commit_xact sp_configure sp_create_removable sp_createorphan sp_createstats sp_cursor sp_cursor_list sp_cursorclose sp_cursorexecute sp_cursorfetch sp_cursoropen sp_cursoroption sp_cursorprepare sp_cursorunprepare sp_databases sp_datatype_info sp_db_upgrade sp_dbcmptlevel sp_dbfixedrolepermission sp_dboption sp_dbremove sp_ddopen sp_defaultdb sp_defaultlanguage sp_deletemergeconflictrow sp_denylogin sp_depends sp_describe_cursor sp_describe_cursor_columns sp_describe_cursor_tables sp_detach_db sp_diskdefault sp_distcounters sp_drop_agent_parameter sp_drop_agent_profile sp_dropalias sp_dropapprole sp_droparticle sp_dropdevice sp_dropdistpublisher sp_dropdistributiondb sp_dropdistributor sp_dropextendedproc sp_dropgroup sp_droplinkedsrvlogin sp_droplogin sp_dropmergearticle sp_dropmergefilter sp_dropmergepublication sp_dropmergepullsubscription sp_dropmergesubscription sp_dropmessage sp_droporphans sp_droppublication sp_droppublisher sp_droppullsubscription sp_dropremotelogin sp_droprole sp_droprolemember sp_dropserver sp_dropsrvrolemember sp_dropsubscriber sp_dropsubscription sp_droptype sp_dropuser sp_dropwebtask sp_dsninfo sp_enumcodepages sp_enumcustomresolvers sp_enumdsn sp_enumfullsubscribers sp_enumoledbdatasources sp_execute sp_executesql sp_fallback_MS_sel_fb_svr sp_fetchshowcmdsinput sp_fixindex sp_fkeys sp_foreign_keys_rowset sp_foreignkeys sp_fulltext_catalog sp_fulltext_column sp_fulltext_database sp_fulltext_getdata sp_fulltext_service sp_fulltext_table sp_generatefilters sp_get_distributor sp_getarticlepkcolbitmap sp_getbindtoken sp_GetMBCSCharLen sp_getmergedeletetype sp_gettypestring sp_grant_publication_access sp_grantdbaccess sp_grantlogin sp_help sp_help_agent_default sp_help_agent_parameter sp_help_agent_profile sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor sp_help_fulltext_columns sp_help_fulltext_columns_cursor sp_help_fulltext_tables sp_help_fulltext_tables_cursor sp_help_publication_access sp_helpallowmerge_publication sp_helparticle sp_helparticlecolumns sp_helpconstraint sp_helpdb sp_helpdbfixedrole sp_helpdevice sp_helpdistpublisher sp_helpdistributiondb sp_helpdistributor sp_helpdistributor_properties sp_helpextendedproc sp_helpfile sp_helpfilegroup sp_helpgroup sp_helpindex sp_helplanguage sp_helplog sp_helplogins sp_helpmergearticle sp_helpmergearticleconflicts sp_helpmergeconflictrows sp_helpmergedeleteconflictrows sp_helpmergefilter sp_helpmergepublication sp_helpmergepullsubscription sp_helpmergesubscription sp_helpntgroup sp_helppublication sp_helppublication_snapshot sp_helppublicationsync sp_helppullsubscription sp_helpremotelogin sp_helpreplicationdb sp_helpreplicationdboption sp_helpreplicationoption sp_helprole sp_helprolemember sp_helprotect sp_helpserver sp_helpsort sp_helpsql sp_helpsrvrole sp_helpsrvrolemember sp_helpstartup sp_helpsubscriber sp_helpsubscriberinfo sp_helpsubscription sp_helpsubscription_properties sp_helptext sp_helptrigger sp_helpuser sp_indexes sp_indexes_rowset sp_indexoption sp_isarticlecolbitset sp_IsMBCSLeadByte sp_link_publication sp_linkedservers sp_linkedservers_rowset sp_lock sp_lockinfo sp_logdevice sp_makestartup sp_makewebtask sp_mergedummyupdate sp_mergesubscription_cleanup sp_mergesubscriptioncleanup sp_monitor sp_MS_marksystemobject sp_MS_replication_installed sp_MS_upd_sysobj_category sp_MSactivate_auto_sub sp_MSadd_distributor_alerts_and_responses sp_MSadd_mergereplcommand sp_MSadd_repl_job sp_MSaddanonymousreplica sp_MSaddarticletocontents sp_MSaddexecarticle sp_MSaddguidcolumn sp_MSaddguidindex sp_MSaddinitialarticle sp_MSaddinitialpublication sp_MSaddinitialsubscription sp_MSaddlogin_implicit_ntlogin sp_MSaddmergepub_snapshot sp_MSaddmergetriggers sp_MSaddpub_snapshot sp_MSaddpubtocontents sp_MSaddupdatetrigger sp_MSadduser_implicit_ntlogin sp_MSarticlecleanup sp_MSarticletextcol sp_MSbelongs sp_MSchange_priority sp_MSchangearticleresolver sp_MScheck_agent_instance sp_MScheck_uid_owns_anything sp_MScheckatpublisher sp_MScheckexistsgeneration sp_MScheckmetadatamatch sp_MScleanup_subscription sp_MScleanuptask sp_MScontractsubsnb sp_MScreate_dist_tables sp_MScreate_distributor_tables sp_MScreate_mergesystables sp_MScreate_pub_tables sp_MScreate_replication_checkup_agent sp_MScreate_replication_status_table sp_MScreate_sub_tables sp_MScreateglobalreplica sp_MScreateretry sp_MSdbuseraccess sp_MSdbuserpriv sp_MSdeletecontents sp_MSdeletepushagent sp_MSdeleteretry sp_MSdelrow sp_MSdelsubrows sp_MSdependencies sp_MSdoesfilterhaveparent sp_MSdrop_6x_replication_agent sp_MSdrop_distributor_alerts_and_responses sp_MSdrop_mergesystables sp_MSdrop_object sp_MSdrop_pub_tables sp_MSdrop_replcom sp_MSdrop_repltran sp_MSdrop_rladmin sp_MSdrop_rlcore sp_MSdrop_rlrecon sp_MSdroparticleprocs sp_MSdroparticletombstones sp_MSdroparticletriggers sp_MSdropconstraints sp_MSdropmergepub_snapshot sp_MSdropretry sp_MSdummyupdate sp_MSenum_replication_agents sp_MSenum_replication_job sp_MSenum3rdpartypublications sp_MSenumallpublications sp_MSenumchanges sp_MSenumcolumns sp_MSenumdeletesmetadata sp_MSenumgenerations sp_MSenummergepublications sp_MSenumpartialchanges sp_MSenumpartialdeletes sp_MSenumpubreferences sp_MSenumreplicas sp_MSenumretries sp_MSenumschemachange sp_MSenumtranpublications sp_MSexists_file sp_MSexpandbelongs sp_MSexpandnotbelongs sp_MSexpandsubsnb sp_MSfilterclause sp_MSflush_access_cache sp_MSflush_command sp_MSforeach_worker sp_MSforeachdb sp_MSforeachtable sp_MSgen_sync_tran_procs sp_MSgenreplnickname sp_MSgentablenickname sp_MSget_col_position sp_MSget_colinfo sp_MSget_oledbinfo sp_MSget_publisher_rpc sp_MSget_qualifed_name sp_MSget_synctran_commands sp_MSget_type sp_MSgetalertinfo sp_MSgetchangecount sp_MSgetconflictinsertproc sp_MSgetlastrecgen sp_MSgetlastsentgen sp_MSgetonerow sp_MSgetreplicainfo sp_MSgetreplnick sp_MSgetrowmetadata sp_MSguidtostr sp_MShelp_distdb sp_MShelp_replication_status sp_MShelpcolumns sp_MShelpfulltextindex sp_MShelpindex sp_MShelpmergearticles sp_MShelpobjectpublications sp_MShelptype sp_MSIfExistsRemoteLogin sp_MSindexcolfrombin sp_MSindexspace sp_MSinit_replication_perfmon sp_MSinsertcontents sp_MSinsertdeleteconflict sp_MSinsertgenhistory sp_MSinsertschemachange sp_MSis_col_replicated sp_MSis_pk_col sp_MSkilldb sp_MSload_replication_status sp_MSlocktable sp_MSloginmappings sp_MSmakearticleprocs sp_MSmakeconflictinsertproc sp_MSmakeexpandproc sp_MSmakegeneration sp_MSmakeinsertproc sp_MSmakejoinfilter sp_MSmakeselectproc sp_MSmakesystableviews sp_MSmaketempinsertproc sp_MSmakeupdateproc sp_MSmakeviewproc sp_MSmaptype sp_MSmark_proc_norepl sp_MSmatchkey sp_MSmergepublishdb sp_MSmergesubscribedb sp_MSobjectprivs sp_MSpad_command sp_MSproxiedmetadata sp_MSpublicationcleanup sp_MSpublicationview sp_MSpublishdb sp_MSrefcnt sp_MSregistersubscription sp_MSreinit_failed_subscriptions sp_MSrepl_addrolemember sp_MSrepl_dbrole sp_MSrepl_droprolemember sp_MSrepl_encrypt sp_MSrepl_linkedservers_rowset sp_MSrepl_startup sp_MSreplcheck_connection sp_MSreplcheck_publish sp_MSreplcheck_pull sp_MSreplcheck_subscribe sp_MSreplicationcompatlevel sp_MSreplrole sp_MSreplsup_table_has_pk sp_MSscript_beginproc sp_MSscript_begintrig1 sp_MSscript_begintrig2 sp_MSscript_delete_statement sp_MSscript_dri sp_MSscript_endproc sp_MSscript_endtrig sp_MSscript_insert_statement sp_MSscript_multirow_trigger sp_MSscript_params sp_MSscript_security sp_MSscript_singlerow_trigger sp_MSscript_sync_del_proc sp_MSscript_sync_del_trig sp_MSscript_sync_ins_proc sp_MSscript_sync_ins_trig sp_MSscript_sync_upd_proc sp_MSscript_sync_upd_trig sp_MSscript_trigger_assignment sp_MSscript_trigger_exec_rpc sp_MSscript_trigger_fetch_statement sp_MSscript_trigger_update_checks sp_MSscript_trigger_updates sp_MSscript_trigger_variables sp_MSscript_update_statement sp_MSscript_where_clause sp_MSscriptdatabase sp_MSscriptdb_worker sp_MSsetaccesslist sp_MSsetalertinfo sp_MSsetartprocs sp_MSsetbit sp_MSsetconflictscript sp_MSsetconflicttable sp_MSsetfilteredstatus sp_MSsetfilterparent sp_MSsetlastrecgen sp_MSsetlastsentgen sp_MSsetreplicainfo sp_MSsetreplicastatus sp_MSsetrowmetadata sp_MSsettopology sp_MSsetupbelongs sp_MSSQLDMO70_version sp_MSSQLOLE_version sp_MSSQLOLE65_version sp_MSsubscribedb sp_MSsubscriptions sp_MSsubscriptionvalidated sp_MSsubsetpublication sp_MStable_has_unique_index sp_MStable_not_modifiable sp_MStablechecks sp_MStablekeys sp_MStablenamefromnick sp_MStablenickname sp_MStablerefs sp_MStablespace sp_MStestbit sp_MStextcolstatus sp_MSunc_to_drive sp_MSuniquecolname sp_MSuniquename sp_MSuniqueobjectname sp_MSuniquetempname sp_MSunmarkreplinfo sp_MSunregistersubscription sp_MSupdate_agenttype_default sp_MSupdate_replication_status sp_MSupdatecontents sp_MSupdategenhistory sp_MSupdateschemachange sp_MSupdatesysmergearticles sp_msupg_createcatalogcomputedcols sp_msupg_dosystabcatalogupgrades sp_msupg_dropcatalogcomputedcols sp_msupg_recreatecatalogfaketables sp_msupg_recreatesystemviews sp_msupg_removesystemcomputedcolumns sp_msupg_upgradecatalog sp_MSuplineageversion sp_MSvalidatearticle sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop sp_objectfilegroup sp_oledbinfo sp_password sp_pkeys sp_prepare sp_primary_keys_rowset sp_primarykeys sp_probe_xact sp_procedure_params_rowset sp_procedures_rowset sp_processinfo sp_processmail sp_procoption sp_provider_types_rowset sp_publication_validation sp_publishdb sp_recompile sp_refreshsubscriptions sp_refreshview sp_reinitmergepullsubscription sp_reinitmergesubscription sp_reinitpullsubscription sp_reinitsubscription sp_remoteoption sp_remove_tempdb_file sp_remove_xact sp_removedbreplication sp_removesrvreplication sp_rename sp_renamedb sp_replcmds sp_replcounters sp_repldone sp_replflush sp_replica sp_replication_agent_checkup sp_replicationdboption sp_replicationoption sp_replincrementlsn sp_replpostcmd sp_replsetoriginator sp_replshowcmds sp_replsync sp_repltrans sp_replupdateschema sp_reset_connection sp_revoke_publication_access sp_revokedbaccess sp_revokelogin sp_runwebtask sp_scan_xact sp_schemata_rowset sp_script_synctran_commands sp_scriptdelproc sp_scriptinsproc sp_scriptmappedupdproc sp_scriptpkwhereclause sp_scriptupdateparams sp_scriptupdproc sp_sdidebug sp_sem_start_mail sp_server_info sp_serveroption sp_setapprole sp_setnetname sp_spaceused sp_special_columns sp_sproc_columns sp_sqlexec sp_sqlregister sp_srvrolepermission sp_start_xact sp_stat_xact sp_statistics sp_statistics_rowset sp_stored_procedures sp_subscribe sp_subscription_cleanup sp_subscriptioncleanup sp_table_privileges sp_table_privileges_ex sp_table_privileges_rowset sp_table_validation sp_tableoption sp_tables sp_tables_ex sp_tables_info_rowset sp_tables_rowset sp_tempdbspace sp_unbindefault sp_unbindrule sp_unmakestartup sp_unprepare sp_unsubscribe sp_updatestats sp_user_counter1 sp_user_counter10 sp_user_counter2 sp_user_counter3 sp_user_counter4 sp_user_counter5 sp_user_counter6 sp_user_counter7 sp_user_counter8 sp_user_counter9 sp_validatelogins sp_validlang sp_validname sp_who sp_who2 spt_committab spt_datatype_info spt_datatype_info_ext spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor spt_provider_types spt_server_info spt_values sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences SYSREMOTE_CATALOGS SYSREMOTE_COLUMN_PRIVILEGES SYSREMOTE_COLUMNS SYSREMOTE_FOREIGN_KEYS SYSREMOTE_INDEXES SYSREMOTE_PRIMARY_KEYS SYSREMOTE_PROVIDER_TYPES SYSREMOTE_SCHEMATA SYSREMOTE_STATISTICS SYSREMOTE_TABLE_PRIVILEGES SYSREMOTE_TABLES SYSREMOTE_VIEWS sysremotelogins syssegments sysservers systypes sysusers sysxlogins xp_availablemedia xp_check_query_results xp_cleanupwebtask xp_cmdshell xp_deletemail xp_dirtree xp_displayparamstmt xp_dropwebtask xp_dsninfo xp_enum_activescriptengines xp_enum_oledb_providers xp_enumcodepages xp_enumdsn xp_enumerrorlogs xp_enumgroups xp_eventlog xp_execresultset xp_fileexist xp_findnextmsg xp_fixeddrives xp_get_mapi_default_profile xp_get_mapi_profiles xp_get_tape_devices xp_getfiledetails xp_getnetname xp_grantlogin xp_initcolvs xp_intersectbitmaps xp_load_dummy_handlers xp_logevent xp_loginconfig xp_logininfo xp_makewebtask xp_mergexpusage xp_msver xp_msx_enlist xp_ntsec_enumdomains xp_ntsec_enumgroups xp_ntsec_enumusers xp_oledbinfo xp_param_dump xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_printstatements xp_proxiedmetadata xp_qv xp_readerrorlog xp_readmail xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regremovemultistring xp_regwrite xp_revokelogin xp_runwebtask xp_sendmail xp_servicecontrol xp_showcolv xp_showlineage xp_snmp_getstate xp_snmp_raisetrap xp_sprintf xp_sqlagent_enum_jobs xp_sqlagent_is_starting xp_sqlagent_monitor xp_sqlagent_notify xp_sqlinventory xp_sqlmaint xp_sqlregister xp_sqltrace xp_sscanf xp_startmail xp_stopmail xp_subdirs xp_terminate_process xp_test_mapi_profile xp_trace_addnewqueue xp_trace_deletequeuedefinition xp_trace_destroyqueue xp_trace_enumqueuedefname xp_trace_enumqueuehandles xp_trace_eventclassrequired xp_trace_flushqueryhistory xp_trace_generate_event xp_trace_getappfilter xp_trace_getconnectionidfilter xp_trace_getcpufilter xp_trace_getdbidfilter xp_trace_getdurationfilter xp_trace_geteventfilter xp_trace_geteventnames xp_trace_getevents xp_trace_gethostfilter xp_trace_gethpidfilter xp_trace_getindidfilter xp_trace_getntdmfilter xp_trace_getntnmfilter xp_trace_getobjidfilter xp_trace_getqueueautostart xp_trace_getqueuecreateinfo xp_trace_getqueuedestination xp_trace_getqueueproperties xp_trace_getreadfilter xp_trace_getserverfilter xp_trace_getseverityfilter xp_trace_getspidfilter xp_trace_gettextfilter xp_trace_getuserfilter xp_trace_getwritefilter xp_trace_loadqueuedefinition xp_trace_opentracefile xp_trace_pausequeue xp_trace_restartqueue xp_trace_savequeuedefinition xp_trace_setappfilter xp_trace_setconnectionidfilter xp_trace_setcpufilter xp_trace_setdbidfilter xp_trace_setdurationfilter xp_trace_seteventclassrequired xp_trace_seteventfilter xp_trace_sethostfilter xp_trace_sethpidfilter xp_trace_setindidfilter xp_trace_setntdmfilter xp_trace_setntnmfilter xp_trace_setobjidfilter xp_trace_setqueryhistory xp_trace_setqueueautostart xp_trace_setqueuecreateinfo xp_trace_setqueuedestination xp_trace_setreadfilter xp_trace_setserverfilter xp_trace_setseverityfilter xp_trace_setspidfilter xp_trace_settextfilter xp_trace_setuserfilter xp_trace_setwritefilter xp_trace_startconsumer xp_trace_toeventlogconsumer xp_trace_tofileconsumer xp_unc_to_drive xp_unload_dummy_handlers xp_updatecolvbm xp_updatelineage xp_varbintohexstr xp_writesqlinfo
+
+
+
+
+ deleted inserted sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremote_catalogs sysremote_column_privileges sysremote_columns sysremote_foreign_keys sysremote_indexes sysremote_primary_keys sysremote_provider_types sysremote_schemata sysremote_statistics sysremote_table_privileges sysremote_tables sysremote_views sysremotelogins syssegments sysservers systypes sysusers sysxlogins
+
+
+
+
+ connections cpu_busy cursor_rows datefirst dbts error fetch_status identity idle io_busy langid language lock_timeout max_connections max_precision nestlevel options packet_errors packet_received pack_sent patindex procid remserver rowcount servername servicename spid textptr textsize textvalid timeticks total_errors total_read total_write trancount version
+
+
+
+
+ abs acos app_name ascii asin atan atn2 avg binary_checksum case cast ceiling charindex checksum checksum_agg coalesce collationproperty col_length col_name columns_updated columnproperty convert cos cot count count_big current_timestamp current_user cursor_status databaseproperty databasepropertyex datalength dateadd datediff datename datepart day db_id db_name degrees difference exp file_id file_name filegroup_id filegroup_name filegroupproperty fileproperty floor fn_helpcollations fn_listextendedproperty fn_servershareddrives fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable fn_virtualfilestats formatmessage fulltextcatalogproperty fulltextserviceproperty getansinull getdate getutcdate grouping has_dbaccess host_id host_name ident_current ident_incr ident_seed index_col indexkey_property indexproperty is_member is_srvrolemember isdate isnull isnumeric left len log log10 lower ltrim max min month newid nullif object_id object_name objectproperty parsename patindex permissions pi power quotename radians rand replace replicate reverse right round rowcount_big rtrim scope_identity serverproperty sessionproperty session_user sign sin soundex space sqare sql_variant_property sqrt stats_date stdev stdevp str stuff substring sum suser_sid suser_sname system_user tan typeproperty unicode upper user_id user_name var varp year
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SystemPolicies.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SystemPolicies.syn
new file mode 100644
index 0000000..37803b1
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/SystemPolicies.syn
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACHINE USER
+
+
+
+
+ [STRINGS] CATEGORY CLASS END PART POLICY
+
+
+
+
+ ACTIONLISTOFF ACTIONLISTON CHECKBOX COMBOBOX DELETE DISABLED DROPDOWNLIST EDITTEXT ENABLED KEYNAME LISTBOX NAME NUMERIC TEXT VALUE VALUENAME VALUEOFF VALUEON
+
+
+
+
+ ACTIONLIST ADDITIVE DEFAULT DEFCHECKED EXPANDABLETEXT EXPLICITVALUE ITEMLIST MAX MAXLEN MIN REQUIRED SPIN SUGGESTIONS TXTCONVERT VALUEPREFIX /C6 #ENDIF #IF NOSORT VERSION
+
+
+
+
+ 0"Systempolicies" Nocase Line Comment = ; File Extensions = ADM /Delimiters = ~!$%"&*()+=|\/{}:;"'<> ,.?/ /C1 MACHINE USER /C2 [STRINGS] CATEGORY CLASS END PART POLICY /C3 ACTIONLISTOFF ACTIONLISTON CHECKBOX COMBOBOX DELETE DISABLED DROPDOWNLIST EDITTEXT ENABLED KEYNAME LISTBOX NAME NUMERIC TEXT VALUE VALUENAME VALUEOFF VALUEON /C4 ACTIONLIST ADDITIVE DEFAULT DEFCHECKED EXPANDABLETEXT EXPLICITVALUE ITEMLIST MAX MAXLEN MIN REQUIRED SPIN SUGGESTIONS TXTCONVERT VALUEPREFIX
+
+
+
+
+ #ENDIF #IF NOSORT VERSION
+
+
+
+
+
+
+
+
+
+
+ ~ ! $ % " & * ( ) + = | \ / { } : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Template.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Template.syn
new file mode 100644
index 0000000..3cc0620
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Template.syn
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Text.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Text.syn
new file mode 100644
index 0000000..a76108c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/Text.syn
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/TurboPascal.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/TurboPascal.syn
new file mode 100644
index 0000000..9ec6401
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/TurboPascal.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ begin const else end function goto if label procedure program readln repeat uses var write writeln
+
+
+
+
+ and array asm case destructor div do downto exports file for implementation in
+
+
+
+
+ := inhertited inline interface library mod nil not object of or
+
+
+
+
+ ; + - = // / % & > < " ! |
+
+
+
+
+ packed private public record set shl shr string then to type unit until with xor
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + | \ / { } [ ] ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VB.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VB.syn
new file mode 100644
index 0000000..50511c6
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VB.syn
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Sub
+Function
+Property
+Declare
+Public
+Private
+Friend
+Dim
+Global
+Option
+Explicit
+Not
+And
+Xor
+Or
+String
+Long
+Integer
+Boolean
+Currency
+Date
+Byte
+Single
+Double
+Static
+As
+Const
+
+
+
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Public
+Private
+Friend
+Dim
+Global
+Option
+Explicit
+For
+If
+End
+Next
+Do
+Loop
+While
+Wend
+Not
+And
+Xor
+Or
+Select
+Case
+Else
+GoTo
+GoSub
+String
+Long
+Integer
+Boolean
+Currency
+Date
+Byte
+Single
+Double
+Then
+Static
+As
+Exit
+Function
+Sub
+Property
+Nothing
+Set
+Get
+Let
+LSet
+On
+Error
+Resume
+Const
+Is
+
+
+
+
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VBScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VBScript.syn
new file mode 100644
index 0000000..db85c9b
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VBScript.syn
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+ And As Call Case Class Const Dim Do Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit For Function Get Goto If Imp Is Let Loop Mod Next New Not Nothing Null On Option Or Private Property Public Randomize ReDim Rem Resume Select Set Stop Sub Then To Until Wend While With
+
+
+
+
+ Abs Array Asc Atn CBool CByte CCur CDate CDbl Chr CInt CLng Cos CSng CStr Date DateAddFunction DateDiff DatePart DateSerial DateValue Day Eval Exp Filter Fix FormatCurrency FormatDateTime FormatNumber FormatPercent GetObject GetRef Hex Hour InputBox InStr InStrRev Int IsArray IsDate IsEmpty IsNull IsNumeric IsObject Join LBound LCase Left Len LoadPicture Log LTrim Mid Minute Month MonthName MsgBox Now Oct Replace RGB Right Rnd Round RTrim ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion Second Sgn Sin Space Split Sqr StrComp String StrReverse Tan Time Timer TimeSerial TimeValue Trim TypeName UBound UCase VarType Weekday WeekdayName Year
+
+
+
+
+ AccountDisabled AccountExpirationDate Application Arguments AtEndOfLine AtEndOfStream Attributes AutoUnlockInterval AvailableSpace BadPasswordAttempts Column CompareMode ComputerName Count DateCreated DateLastAccessed DateLastModified Description Drive DriveLetter DriveType Drives Environment FileSystem Files FirstIndex FreeSpace FullName Global HelpContext HelpFile HomeDirDrive HomeDirectory HotKey IconLocation IgnoreCase Interactive IsAccountLocked IsReady IsRootFolder Item Key LastLogin LastLogoff Length Line LockoutObservationInterval LoginHours LoginScript LoginWorkstations MaxBadPasswordsAllowed MaxLogins MaxPasswordAge MaxStorage MinPasswordAge MinPasswordLength Name Number ObjectSid Parameters ParentFolder PasswordAge PasswordExpirationDate PasswordExpired PasswordHistoryLength Path Pattern PrimaryGroupID Profile Remove RootFolder ScriptFullName ScriptName SerialNumber ShareName ShortName ShortPath Size Source SpecialFolders Subfolders TargetPath TotalSize Type UserDomain UserFlags UserName Value Version VolumeName WindowStyle WorkingDirectory
+
+
+
+
+ Add AddPrinterConnection AddWindowsPrinterConnection AppActivate BuildPath Clear Close ConnectObject Copy CopyFile CopyFolder CreateFolder CreateObject CreateShortcut CreateTextFile Delete DeleteFile DeleteFolder DisconnectObject DriveExists Echo EnumNetworkDrives EnumPrinterConnections Exists ExpandEnvironmentStrings FileExists FolderExists GetAbsolutePathName GetBaseName GetDrive GetDriveName GetExtensionName GetFile GetFileName GetFolder GetParentFolderName GetResource GetSpecialFolder GetTempName Items Keys LogEvent MapNetworkDrive Move MoveFile MoveFolder OpenAsTextStream OpenTextFile Popup Put Quit Raise Read ReadAll ReadLine RegDelete RegRead RegWrite RemoveAll RemoveNetworkDrive RemovePrinterConnection Replace Run Save SendKeys SetDefaultPrinter Skip SkipLine Sleep SetInfo Test Write WriteBlankLines WriteLine
+
+
+
+
+ Dictionary Err File FileSystemObject Folder Match RegExp TextStream Wscript WshNetwork WshShell
+
+
+
+
+ False FALSE True TRUE vbAbort vbAbortRetryIgnore vbApplicationModal vbArray vbBinaryCompare vbBlack vbBlue vbBoolean vbByte vbCancel vbCr vbCritical vbCrLf vbCurrency vbCyan vbDataObject vbDate vbDecimal vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbDouble vbEmpty vbError vbExclamation vbFirstFourDays vbFirstFullWeek vbFirstJan1 vbFormFeed vbFriday vbGeneralDate vbGreen vbIgnore vbInformation vbInteger vbLf vbLong vbLongDate vbLongTime vbMagenta vbMonday vbNewLine vbNo vbNull vbNullChar vbNullString vbObject vbObjectError vbOK vbOKCancel vbOKOnly vbQuestion vbRed vbRetry vbRetryCancel vbSaturday vbShortDate vbShortTime vbSingle vbString vbSunday vbSystemModal vbTab vbTextCompare vbThursday vbTuesday vbUseSystem vbUseSystemDayOfWeek vbVariant vbVerticalTab vbWednesday vbWhite vbYellow vbYes vbYesNo vbYesNoCancel
+
+
+
+
+
+
+
+
+
+
+ . ( ) , - + = | \ / { } [ ] : ; " ' < >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VRML97.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VRML97.syn
new file mode 100644
index 0000000..bc07830
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/VRML97.syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEF eventIn eventOut exposedField EXTERNPROTO field IS PROTO ROUTE TO USE
+
+
+
+
+ Anchor Appearance AudioClip Background Billboard Box Collision Color ColorInterpolator Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet Inline LOD Material MovieTexture NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight Switch Text TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint VisibilitySensor WorldInfo
+
+
+
+
+ MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f
+
+
+
+
+ ambientColor ambientIntensity appearance attenuation autoOffset avatarSize axisOfRotation backUrl bboxCenter bboxSize beamWidth beginCap bottom bottomRadius bottomUrl ccw choice center children collide color colorIndex colorPerVertex convex coord coordIndex creaseAngle crossSection cutOffAngle depth description diffuseColor direction directOutput diskAngle dropOffRate emissiveColor enabled endCap faceType family fieldOfViewfields filename focalDistance fogType fontStyle frontUrl geometry groundAngle groundColor headlight height heightAngle horizontal image indexOfRefraction info intensity isA jump justification justify key keyValue language leftToRight leftUrl length level location loop map material materialIndex matrix mustEvaluate maxAngle maxBack maxExtent maxFront maxPosition minAngle minBack minFront minPosition name normal normalIndex normalPerVertex numPoints offset on orientation parameter parts pitch point position priority proxy radius range renderCulling repeatS repeatT rightUrl rotation scale scaleFactor scaleOrientation shapeType shininess side size skyAngle skyColor solid source spacing spatialize specularColor speed spine startIndex startTime stopTime string style title texCoord texCoordIndex texture textureCoordIndex textureTransform top topToBottom topUrl translation transparency type url value vector vertexOrdering visibilityLimit visibilityRange whichChild whichChoise width wrapS wrapT xDimension xSpacing zDimension zSpacing
+
+
+
+
+ ALL AUTO BINDINGS BOLD BOTTOM CENTER CLAMP CLOCKWISE CONVEX COUNTERCLOCKWISE CULLING DEFAULT DEFAULTS ENUMS FACE FALSE FAMILY FILE FORMAT ITALIC JUSTIFICATION LEFT NONE NULL OFF ON OVERALL PARTS PER_FACE PER_FACE_INDEXED PER_PART PER_PART_INDEXED PER_VERTEX PER_VERTEX_INDEXED REPEAT RIGHT SHAPE SIDES SOLID STYLE TRUE TYPE UNKNOWN_FACE_TYPE UNKNOWN_ORDERING UNKNOWN_SHAPE_TYPE WRAP
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/XML.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/XML.syn
new file mode 100644
index 0000000..00dcce7
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/XML.syn
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+And As
+Call Case Class Const
+Dim Do
+Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit
+For Function
+Get Goto
+If Imp Is
+Let Loop
+Mod
+Next New Not Nothing Null
+On Option Or
+Private Property Public
+Randomize ReDim Rem Resume
+Select Set Stop Sub
+Then To
+Until
+Wend While With
+True False
+
+
+
+
+
+
+Server Request Response Session Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/rtf.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/rtf.syn
new file mode 100644
index 0000000..b4317ea
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/Samples/MdiDemo/bin/Debug/rtf.syn
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ansi \author \b \company \deff \f \fmodern \fnil \fonttbl \froman \fswiss \ftech \i \info \operator \par \pard \qc \qj \ql \qr \rtf \title \ul
+
+
+
+
+ \*
+
+
+
+
+ \fs24 \margl \margr \sa \sb
+
+
+
+
+
+
+
+ # $ % & ( ) + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > [ \ ] " _ { | } ~ `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/6502.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/6502.syn
new file mode 100644
index 0000000..13e4518
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/6502.syn
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ADC AND ASL
+BCC BCS BEQ BIT BMI BNE BPL BRA BRK BVC BVS
+CLC CLD CLI CLV CMP CPX CPY
+DEC DEX DEY
+EOR
+INC INX INY
+JMP JSR
+LDA LDX LDY LSR
+NOP
+ORA
+PHA PHP PHX PHY PLA PLP PLX PLY
+ROL ROR RTI RTS
+SBC SEC SED SEI STA STX STY STZ
+TAX TAY TSX TXA TXS TYA
+
+
+
+
+
+
+.byte .text .word .asc .scrl .scru .include .incbin .label .goto .if .end .enrty .opt
+.set .title
+X
+Y
+C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+$
+%
+(
+)
++
+,
+;
+*=
+*
+=
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/ASP.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/ASP.Syn
new file mode 100644
index 0000000..7498444
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/ASP.Syn
@@ -0,0 +1,391 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+And As
+Call Case Class Const
+Dim Do
+Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit
+For Function
+Get Goto
+If Imp Is
+Let Loop
+Mod
+Next New Not Nothing Null
+On Option Or
+Private Property Public
+Randomize ReDim Rem Resume
+Select Set Stop Sub
+Then To
+Until
+Wend While With
+True False
+
+
+
+
+
+
+Server Request Response Session Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C#.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C#.syn
new file mode 100644
index 0000000..f5d51f8
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C#.syn
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract base break byte case catch checked class const continue
+ default delegate do value
+ else enum event exdouble explicit extern
+ false finally fixed for foreach
+ get goto
+ if implicit in interface internal is
+ lock
+ namespace new null
+ object operator out override
+ private protected public
+ readonly ref return
+ sealed set sizeof static struct switch
+ this throw true try typeof
+ unchecked unsafe using
+ virtual
+ while
+
+
+
+
+
+
+
+
+
+
+ string exfloat float int long sbyte short uint ulong void double decimal bool char ushort
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C++.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C++.syn
new file mode 100644
index 0000000..2dcdcb4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/C++.syn
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bool NULL
+char class const case catch const_cast
+double default do delete dynamic_cast
+else enum explicit export extern
+for false float friend
+if inline int
+long
+mutable
+new namespace
+operator
+protected private public
+reinterpret_cast return
+short signed sizeof static struct static_cast switch
+template throw true typedef typename this try typeid
+union unsigned using
+virtual void volatile
+wchar_t while
+
+
+
+
+
+
+
+
+
+
+asm auto
+break
+continue
+goto
+register
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSS.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSS.Syn
new file mode 100644
index 0000000..086144e
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSS.Syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+BODY DIV SPAN TABLE TD TR TEXTAREA
+A:link
+A:visited
+A:active
+A:hover
+A
+INPUT SELECT TH
+OL
+UL
+LI
+BUTTON
+OBJECT
+LABEL
+P
+IMG
+H1
+H2
+H3
+H4
+H5
+PRE
+CODE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSharp.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSharp.syn
new file mode 100644
index 0000000..f5d51f8
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/CSharp.syn
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract base break byte case catch checked class const continue
+ default delegate do value
+ else enum event exdouble explicit extern
+ false finally fixed for foreach
+ get goto
+ if implicit in interface internal is
+ lock
+ namespace new null
+ object operator out override
+ private protected public
+ readonly ref return
+ sealed set sizeof static struct switch
+ this throw true try typeof
+ unchecked unsafe using
+ virtual
+ while
+
+
+
+
+
+
+
+
+
+
+ string exfloat float int long sbyte short uint ulong void double decimal bool char ushort
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Cobol.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Cobol.syn
new file mode 100644
index 0000000..ea8f772
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Cobol.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ accept access acquire actual add address advancing after all allowing alphabet alphabetic alphabetic-lower alphabetic-upper alphanumeric alphanumeric-edited also alter alternate and any apply are area areas as ascending assign at attribute author auto auto-hyphen-skip auto-skip automatic autoterminate background-color background-colour backward basis beep before beginning bell binary blank blink blinking block bold bottom box boxed by c01 c02 c02 c04 c05 c06 c07 c08 c09 c10 c11 c12 cancel cbl cd centered cf ch chain chaining changed character characters chart class clock-units close cobol code code-set col collating color colour column com-reg comma command-line commit commitment common communication comp comp-0 comp-1 comp-2 comp-3 comp-4 comp-5 comp-6 comp-x compression computational computational-1 computational-2 computational-3 computational-4 computational-5 computational-6 computational-x computational compute configuration console contains content continue control control-area controls conversion convert converting core-index corr corresponding count crt crt-under csp currency current-date cursor cycle cyl-index cyl-overflow data date date-compiled date-written day day-of-week dbcs de debug debug-contents debug-item debug-line debug-name debug-sub-1 debug-sub-2 debug-sub-3 debugging decimal-point declaratives default delete delimited delimiter depending descending destination detail disable disk disp display display-1 display-st divide division down draw drop duplicates dynamic echo egcs egi eject emi empty-check enable encryption end end-accept end-add end-call end-chain end-compute end-delete end-display end-divide end-invoke end-multiply end-of-page end-perform end-read end-receive end-return end-rewrite end-search end-start end-string end-subtract end-unstring end-write ending enter entry environment environment-division eol eop eos equal equals erase error escape esi every examine exceeds exception excess-3 exclusive exec execute exhibit extend extended-search external externally-described-key factory false fd fh--fcd fh--keydef file file-control file-id file-limit file-limits file-prefix filler final first fixed footing for foreground-color foreground-colour footing format from full function generate giving global go goback greater grid group heading high high-value high-values highlight i-o i-o-control id identification ignore in index indexed indic indicate indicator indicators inheriting initial initialize initiate input input-output insert inspect installation into invalid invoke invoked is japanese just justified kanji kept key keyboard label last leading leave left lrft-justify leftline length length-check less limit limits lin linage linage-counter line line-counter lines linkage local-storage lock lock-holding locking low low-value low-values lower lowlight manual mass-update master-index memory merge message method mode modified modules more-labels move multiple multiply name named national national-edited native nchar negative next no no-echo nominal not note nstd-reels null nulls number numeric numeric-edited numeric-fill o-fill object object-computer object-storage occurs of off omitted on oostackptr open optional or order organization other others otherwise output overflow overline packed-decimal padding page page-counter packed-decimal paragraph password pf ph pic picture plus pointer pop-up pos position positioning positive previous print print-control print-switch printer printer-1 printing prior private procedure procedure-pointer procedures proceed process processing program program-id prompt protected public purge queue quote quotes random range rd read readers ready receive record record-overflow recording records redefines reel reference references relative release reload remainder remarks removal renames reorg-criteria repeated replace replacing report reporting reports required reread rerun reserve reset resident return return-code returning reverse reverse-video reversed rewind rewrite rf rh right right-justify rollback rolling rounded run s01 s02 s03 s04 s05 same screen scroll sd search section secure security seek segment segment-limit select selective self selfclass send sentence separate sequence sequential service set setshadow shift-in shift-out sign size skip1 skip2 skip3 sort sort-control sort-core-size sort-file-size sort-merge sort-message sort-mode-size sort-option sort-return source source-computer space spaces space-fill spaces special-names standard standard-1 standard-2 start starting status stop store string sub-queue-1 sub-queue-2 sub-queue-3 subfile subtract sum super supress symbolic sync synchronized sysin sysipt syslst sysout syspch syspunch system-info tab tallying tape terminal terminal-info terminate test text than through thru time time-of-day time-out timeout times title to top totaled totaling trace track-area track-limit tracks trailing trailing-sign transaction transform true type typedef underline underlined unequal unit unlock unstring until up update updaters upon upper upsi-0 upsi-1 upsi-2 upsi-3 upsi-4 upsi-5 upsi-6 upsi-7 usage use user using value values variable varying wait when-compiled window with words working-storage wrap write write-only write-verify writerszero zero zero-fill zeros zeroes
+
+
+
+
+ call exit else end-if end-evaluate evaluate if perform then when
+
+
+
+
+ 01 15 77 78 z 88
+
+
+
+
+ x 02 03 04 05
+
+
+
+
+ copy d ddebug
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ $ % " & * ( ) _ + = | \ / { } [ ] : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DOSBatch.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DOSBatch.syn
new file mode 100644
index 0000000..4bf7c3f
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DOSBatch.syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % > < * ? $e [ call do echo errorlevel exit exist edit edlin for goto if in not off on pause prompt path qbasic set shift
+
+
+
+
+
+ attrib append backup cd choice cls copy chdir command comp chkdsk del dir deltree diskcopy debug diskcomp doskey expand format fc fdisk find ftp graphics help interlnk intersvr keyb label loadfix mkdir md mode msd more mem move msav msbackup nslfunc print rd rmdir replace restore sort share smartdrv sys scandisk setver subst setver type tree undelete unformat ver vol vsafe xcopy setlocal endlocal
+
+
+
+
+ date time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ( ) + = | @ { } [ ] ; ' < > , . / = ~ ! " &
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DataFlex.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DataFlex.syn
new file mode 100644
index 0000000..2815922
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/DataFlex.syn
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #endheader #header #include #replace
+
+
+
+
+ abort abort_transaction accept activate_view add append append_output ascii attach autopage backfield begin begin_contraints begin_transaction blankform body break broadcast broadcast_focus calc calculate call call_driver cd_end_object cd_popup_object chain character class clear clear_option clearform clearscreen clearwarning clearxy close close_input close_output cmdline constrain contrained_clear constrained_find constraint_set constraint_validate copy_db copy_records copyfile create_field create_index date debug declare_datafile decrement deferred_view define delegate delete delete_db delete_field delete_index dependent_item despool direct_input direct_output directory diskfree display else end end_class end_constraints end_function end_enumeration_list end_item_group end_item_list end_object end_procedure end_transaction end_type endgroup entagain entdisplay enter enterend entergroup entermode entry entry_item entry_name_item enumeration_list erase_file error error_report export_files field field_def field_map file_mode file_size filelist fill_field find for format formfeed forward forward_begin_construct forward_end_construct from function function_return get get_argument_size get_attribute get_channel_position get_channel_size get_current_colors get_current_directory get_current_input_channel get_current_lockcount get_current_output_channel get_current_user_count get_date_format get_environment get_field_value get_filelist get_licensed_max_users get_number_format get_resource_name get_resource_type get_transaction_retry get_video_mode gosub goto gotoxy group header help if ifchange import_class_protocol inactivate include_resource increment ind index_def indicate inherit_screen inkey inkey$ input insert is_file_included item_group item_list keycheck keyproc left length load_def local_driver local lock login logout loop make_file memory mid move movedate moveint movenum movereal movestr move_sub_page name name_item name_items name_object next not object on on_item on_key on_name_item open output output_aux_file output_wrap pad page pagecheck pathname pos print print_wrap procedure procedure_return property read read_block read_dfini read_hex readln register_function register_object register_procedure register_resource registration relate renamefile repeat repeat_item replace report reportend reread return right runprogram save saverecord screenmode screen_optimize section send set set_argument_size set_attribute set_channel_position set_dfpath set_field_value set_filelist set_option set_relate set_resource_library set_transaction_retry set_video_mode setchange show showln showxy sleep sort start_ui stop structure_abort structure_copy structure_end structure_start sub sub_page subtotal sysconf sysdate sysdate4 system to trim type ui_accept unload_driver unlock until uppercase use vconstrain vfind while write write_hex writeln zerofile
+
+
+
+
+ abs acos asin atan callback center cos eval exp hi log low lowercase ltrim mod overstrike random remove replaces round rtrim sin sqrt status tan
+
+
+
+
+ an and as contains eq ge gt iand in ior is le lt match matches max min ne or
+
+
+
+
+ autoback autoclear autofind autofind_ge autoreturn capslock channel check displayonly fill findreq float$ forceput modal_insert no_calc noenter noput points range required resident resource retain retainall signrt skipfound suppress thousands wait zero_suppress
+
+
+
+
+ constrain_found_count constrain_tests_count current_image current_window
+
+
+
+
+ indicator integer number real string
+
+
+
+
+
+
+
+
+
+
+ + - * / ( ) ^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Delphi.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Delphi.syn
new file mode 100644
index 0000000..1298b88
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Delphi.syn
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ absolute
+abstract
+and
+array
+as
+asm
+at
+automated
+begin
+case
+cdecl
+class
+const
+constructor
+default
+deprecated
+destructor
+dispinterface
+div
+do
+downto
+dynamic
+else
+end
+except
+export
+exports
+far
+finalization
+finally
+for
+function
+goto
+if
+implementation
+in
+inherited
+initialization
+inline
+interface
+is
+label
+library
+message
+mod
+near
+nil
+nodefault
+not
+object
+of
+on
+or
+out
+overload
+packed
+pascal
+platform
+private
+procedure
+program
+property
+protected
+public
+published
+raise
+read
+record
+register
+repeat
+resourcestring
+safecall
+set
+shl
+shr
+stdcall
+stored
+then
+threadvar
+to
+try
+type
+unit
+until
+uses
+var
+while
+virtual
+with
+write
+xor
+
+
+
+
+
+
+
+
+
+
+ bool
+boolean
+byte
+cardinal
+char
+comp
+double
+extended
+file
+int64
+integer
+longbool
+longint
+longword
+pchar
+pointer
+real
+shortbool
+shortint
+single
+smallint
+string
+word
+wordbool
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Fortran90.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Fortran90.syn
new file mode 100644
index 0000000..24f88c1
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Fortran90.syn
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ADMIT ALLOCATABLE ALLOCATE ASSIGN ASSIGNMENT AT BACKSPACE BLOCK CALL CASE CHARACTER CLOSE COMMON COMPLEX CONTAINS CONTINUE CYCLE DATA DEALLOCATE DEFAULT DIMENSION DO DOUBLE ELSE ELSEIF ELSEWHERE END ENDDO ENDFILE ENDIF ENDWHILE ENTRY EQUIVALENCE EXECUTE EXIT EXTERNAL FORALL FORMAT FUNCTION GO GOTO GUESS IF IMPLICIT IN INOUT INQUIRE INTEGER INTENT INTERFACE INTRINSIC KIND LOGICAL LOOP MAP MODULE NAMELIST NONE NULLIFY ONLY OPEN OPERATOR OPTIONAL OTHERWISE OUT PARAMETER POINTER PRIVATE PROCEDURE PROGRAM PUBLIC QUIT READ REAL RECORD RECURSIVE REMOTE RESULT RETURN REWIND SAVE SELECT SEQUENCE STOP STRUCTURE SUBROUTINE TARGET THEN TO TYPE UNION UNTIL USE WHERE WHILE WRITE
+
+
+
+
+ .AND. .EQ. .EQV. .GE. .GT. .LE. .LT. .NE. .NEQV. .NOT. .OR.
+
+
+
+
+ ABS ACHAR ACOS ADJUSTL ADJUSTR AIMAG AINT ALL ALLOCATED ANINT ANY ASIN ASSOCIATED ATAN ATAN2 BIT_SIZE BREAK BTEST CARG CEILING CHAR CMPLX CONJG COS COSH COUNT CSHIFT DATE_AND_TIME DBLE DIGITS DIM DOT_PRODUCT DPROD DVCHK EOSHIFT EPSILON ERROR EXP EXPONENT FLOOR FLUSH FRACTION GETCL HUGE IACHAR IAND IBCLR IBITS IBSET ICHAR IEOR INDEX INT INTRUP INVALOP IOR IOSTAT_MSG ISHFT ISHFTC LBOUND LEN LEN_TRIM LGE LGT LLE LLT LOG LOG10 MATMUL MAX MAXEXPONENT MAXLOC MAXVAL MERGE MIN MINEXPONENT MINLOC MINVAL MOD MODULO MVBITS NBREAK NDPERR NDPEXC NEAREST NINT NOT OFFSET OVEFL PACK PRECFILL PRECISION PRESENT PRODUCT PROMPT RADIX RANDOM_NUMBER RANDOM_SEED RANGE REPEAT RESHAPE RRSPACING SCALE SCAN SEGMENT SELECTED_INT_KIND SELECTED_REAL_KIND SET_EXPONENT SHAPE SIGN SIN SINH SIZE SPACING SPREAD SQRT SUM SYSTEM SYSTEM_CLOCK TAN TANH TIMER TINY TRANSFER TRANSPOSE TRIM UBOUND UNDFL UNPACK VAL VERIFY
+
+
+
+
+ ASSIGN BACKSPACE CLOSE ENDFILE OPEN PAUSE PRINT READ REWIND WRITE
+
+
+
+
+ ACCESS ACTION BLANK BLOCKSIZE CARRIAGECONTROL DIRECT ERR EXIST FILE FMT FORM FORMATTED FROM IOSTAT LOCATION NAME NAMED NEXTREC NUMBER OPENED POSITION RECL RECORDTYPE SEQUENTIAL STAT STATUS UNFORMATTED UNIT
+
+
+
+
+ INCLUDE
+
+
+
+
+ == = < > + * " - // / ! &
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/FoxPro.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/FoxPro.syn
new file mode 100644
index 0000000..abff12c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/FoxPro.syn
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ACCEPT ACTIVATE ACTIVATE ALTERNATIVE AMERICAN AND ANSI APPEND ARRAY AUTOSAVE AVERAGE BAR BELL BLANK BLICK BLOCKSIZE BOX BORDER BROWSE BRSTATUS BUILD BUILD EXE BUILD PROJECT CALCULATE CALL CANCEL CARRY CASE CENTURY CHANGE CLEAR CLOCK CLOSE COLLATE COLOR COMMAND COMPILE COMPATABLE CONFIRM CONSOLE CONTINUE COPY COUNT CPCOMPILE CPDIALOG CREATE CURRENCY CURSOR DATABASES DATE DEACTIVATE DEBUG DECIMALS DECLARE DEFAULT DEFINE DELETE DELETED DELIMITERS DEVELOPMENT DEVICE DIMENSION DIR DIRECTORY DISPLAY DO DOHISTORY ECHO EDIT EJECT ELSE ENDCASE ENDDO ENDFOR ENDSCAN ENDTEXT ENDIF ENDPRINTJOB ERASE ERROR ESCAPE EXACT EXCLUSIVE EXIT EXPORT EXTENDED EXTERNAL FIELDS FILES FILER FILL FILTER FIND FIXED FORMAT FLUSH FOR FROM FULLPATH FUNCTION FUNCTION GATHER GENERAL GET GETS GETEXPR GO GOTO HEADINGS HELP HELPFILTER HIDE HOURS IF IMPORT INDEX INDEXES INPUT INSERT INTENSITY JOIN KEY KEYBOARD KEYCOMP LABEL LIBRARY LIST LOAD LOCATE LOCK LOGERRORS MACKEY MACRO MARGIN MARK MARK MEMO MEMOWIDTH MENU MESSAGE MODIFY MODULE MOUSE MOVE MULTILOCKS NEAR NOCPTRANS NORMALIZE NOTE NOTIFY OBJECT ODOMETER OFF ON OPTIMIZE ORDER OTHERWISE PAD PAGE PALETTE PARAMETERS PATH PDSETUP PICTURE PLAY POINT POP POPUP PRINTER PRINTJOB PRIVATE PROCEDURE PROJECT PROMPT PUBLIC PUSH QUERY READ READBORDER READERROR RECALL REGIONAL REINDEX RELEASE RELEASE RENAME REPLACE REPORT RESTORE RESUME RETRY RETURN REFRESH RELATION RELATION REPORT REPROCESS RESOURCE RUN SAFETY SAVE SAY SCAN SCATTER SCHEME SCOREBOARD SCREEN SEEK SELECT SELECTION SEPERATOR SET SHADOWS SHOW SHUTDOWN SIZE SKIP SORT STATUS STICKY STEP STORE STRUCTURE SUM SUSPEND SYSMENU SQL TABLE TAG TALK TEXTMERGE TEXT TO TOPIC TOTAL TRBETWEEN TYPE TYPEAHEAD UDFPARAMS UNIQUE UNLOCK UPDATE USE VIEW WAIT WHILE WINDOW WITH ZAP ZOOM
+
+
+
+
+ ABS ACOPY ACOS ADEL ADIR AELEMENT AFIELDS AFONT AINS ALEN ALIAS ALLTRIM ANSITOOEM ASC ASCAN ASIN ASORT ASUBSCRIPT AT ATAN ATC ATCLINE ATLINE ATN2 BAR BETWEEN BOF CAPSLOCK CDOW CDX CEILING CHR CHRSAW CHRTRAN CMONTH CNTBAR CNTPAD COL COS CPCONVERT CPCURRENT CPDBF CTOD CURDIR DATE DAY DBF DDE DDEAbortTrans DDEAdvise DDEEnabled DDEExecute DDEInitiate DDELastError DDEPoke DDERequest DDESetOption DDESetService DDESetTopic DDETerminate DELETED DESCENDING DIFFERENCE DISKSPACE DMY DOW DTOC DTOR DTOS EMPTY EOF ERROR EVALUATE EXP FCHSIZE FCLOSE FCOUNT FCREATE FEOF FERROR FFLUSH FGETS FIELD FILE FILTER FKLABEL FKMAX FLOCK FLOOR FONTMETRIC FOPEN FOR FOUND FPUTS FREAD FSEEK FSIZE FULLPATH FV FWRITE GETBAR GETDIR GETENV GETFILE GETFONT GETPAD GOMONTH HEADER HOME IDXCOLLATE IIF INKEY INLIST INSMODE INT ISALPHA ISBLANK ISCOLOR ISDIGIT ISLOWER ISREADONLY ISUPPER KEY KEYMATCH LASTKEY LEFT LEN LIKE LINENO LOCFILE LOCK LOG LOG10 LOOKUP LOWER LTRIM LUPDATE MAX MCOL MDOWN MDX MDY MEMLINES MEMORY MENU MESSAGE MIN MLINE MOD MONTH MRKBAR MRKPAD MROW( MWINDOW NDX NUMLOCK OBJNUM OBJVAR OCCURS OEMTOANSI ON ORDER OS PACK PAD PADC PADL PADR PARAMETERS PAYMENT PCOL PI POPUP PRINTSTATUS PRMBAR PRMPAD PROGRAM PROMPT PROPER PROW PRTINFOPUTFILE PV QUIT RAND RAT RATLINE RDLEVEL READKEY RECCOUNT RECNO RECSIZE RELATION REPLICATE RGBSCHEME RIGHT RLOCK ROUND ROW RTOD RTRIM SCHEME SCOLS SCROLL SECONDS SEEK SELECT SET SIGN SIN SIZE POPUP SKPBAR SKPPAD SOUNDEX SPACE SQRT SROWS STR STRTRAN STUFF SUBSTR SYS SYS(0) SYS(1) SYS(2) SYS(3) SYS(5) SYS(6) SYS(7) SYS(9) SYS(10) SYS(11) SYS(12) SYS(13) SYS(14) SYS(15) SYS(16) SYS(17) SYS(18) SYS(20) SYS(21) SYS(22) SYS(23) SYS(24) SYS(100) SYS(101) SYS(102) SYS(103) SYS(1001) SYS(1016) SYS(1037) SYS(2000) SYS(2001) SYS(2002) SYS(2003) SYS(2004) SYS(2005) SYS(2006) SYS(2007) SYS(2008) SYS(2009) SYS(2010) SYS(2011) SYS(2012) SYS(2013) SYS(2014) SYS(2015) SYS(2016) SYS(2017) SYS(2018) SYS(2019) SYS(2020) SYS(2021) SYS(2022) SYS(2023) SYSMETRIC( TAG TAN TARGET TIME TRANSFORM TRIM TXTWIDTH TYPE UPDATED UPPER USED VAL VALID VARREAD VERSION WBORDER WCHILD WCOLS WEXIST WFONT WLAST WLCOL WLROW WMAXIMUM WMINIMUM WONTOP WOUTPUT WPARENT WREAD WROWS WTITLE WVISIBLE YEAR
+
+
+
+
+ .AND. .F. .NOT. .OR. .T. AND NOT OR
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JSP.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JSP.syn
new file mode 100644
index 0000000..5bba134
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JSP.syn
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <A </A> <ABBR> <ABBR </ABBR> <ABOVE> <ACRONYM> <ACRONYM </ACRONYM> <ADDRESS> <ADDRESS </ADDRESS> <APPLET </APPLET> <ARRAY> <AREA </AREA <B> <B </B> <BASE <BASEFONT <BDO> <BDO </BDO> <BGSOUND <BIG> <BIG </BIG> <BLINK> </BLINK> <BLOCKQUOTE> <BLOCKQUOTE </BLOCKQUOTE> <BODY <BODY> </BODY> <BOX> <BR <BR> <BIG <BLINK <BUTTON> </BUTTON> <CAPTION> <CAPTION </CAPTION> <CENTER> <CENTER </CENTER> <CITE> <CITE </CITE> <CODE> <CODE </CODE> <COL> <COLGROUP> </COLGROUP> <COMMENT> </COMMENT> <DD> <DD </DD> <DEL> <DEL </DEL> <DFN> <DFN </DFN> <DIR> <DIR </DIR> <DIV> <DIV </DIV> <DL> <DL </DL> <DT> <DT </DT> <EM> <EM </EM> <EMBED <FIELDSET> <FIELDSET </FIELDSET> <FIG> <FONT </FONT> <FORM> <FORM </FORM> <FRAME <FRAMESET </FRAMESET> <H1> <H1 </H1> <H2> <H2 </H2> <H3> <H3 </H3> <H4> <H4 </H4> <H5> <H5 </H5> <H6> <H6 </H6> <HEAD> <HEAD </HEAD> <HR> <HR <HTML> <HTML </HTML> <I> <I </I> <IFRAME> </IFRAME> <ILAYER> </ILAYER> <IMG <INPUT> <INPUT <INS> <INS </INS> <ISINDEX> <ISINDEX <KBD> <KBD </KBD> <LABEL> <LABEL </LABEL> <LAYER> <LAYER </LAYER> <LEGEND> <LEGEND </LEGEND> <LI> <LI </LI> <LINK <LISTING> </LISTING> <MAP </MAP> <MARQUEE </MARQUEE> <MENU> <MENU </MENU> <META <MULTICOL> </MULTICOL> <NEXTID <NOBR> </NOBR> <NOFRAMES> </NOFRAMES> <NOLAYER> </NOLAYER> <NOTE> </NOTE> <NOSCRIPT> </NOSCRIPT> <OBJECT> <OBJECT <OL> <OL </OL> <OPTION> <OPTION </OPTION> <OPTGROUP> <OPTGROUP </OPTGROUP> <P <P> </P> <PARAM <PRE> <PRE </PRE> <Q> <Q </Q> <QUOTE> <RANGE> <ROOT> <S> <S </S> <SAMP> <SAMP </SAMP> <SCRIPT <SCRIPT> </SCRIPT> <SELECT </SELECT> <SMALL> <SMALL </SMALL> <SOUND <SPACER> <SPAN> <SPAN </SPAN> <SQRT> <STRIKE> <STRIKE </STRIKE> <STRONG> <STRONG </STRONG> <STYLE> <STYLE </STYLE> <SUB> <SUB </SUB> <SUP> <SUP </SUP> <TABLE> <TABLE </TABLE> <TBODY> <TBODY </TBODY> <TD <TD> </TD> <TEXT> <TEXTAREA <TEXTAREA> </TEXTAREA> <TFOOT> <TFOOT </TFOOT> <TH <TH> </TH> <THEAD> <THEAD </THEAD> <TITLE> </TITLE> <TR <TR> </TR> <TT> </TT> <TT <U> <U </U> <UL> <UL </UL> <VAR> </VAR> <VAR <WBR> <XMP> </XMP>
+
+
+
+
+ ABBR= ACCEPT-CHARSET= ACCEPT= ACCESSKEY= ACTION= ALIGN= ALINK= ALT= ARCHIVE= AXIS= BACKGROUND= BEHAVIOR BELOW BGCOLOR= BORDER= CELLPADDING= CELLSPACING= CHAR= CHAROFF= CHARSET= CHECKED CITE= CLASS= CLASSID= CLEAR= CODE= CODEBASE= CODETYPE= COLOR= COLS= COLSPAN= COMPACT CONTENT= COORDS= DATA= DATETIME= DECLARE DEFER DIR= DISABLED ENCTYPE= FACE= FOR= FRAME= FRAMEBORDER= FRAMESPACING= HEADERS= HEIGHT= HIDDEN= HREF= HREFLANG= HSPACE= HTTP-EQUIV= ID= ISMAP= LABEL= LANG= LANGUAGE= LINK= LOOP= LONGDESC= MAILTO= MARGINHEIGHT= MARGINWIDTH= MAXLENGTH= MEDIA= METHOD= MULTIPLE NAME= NOHREF NORESIZE NOSHADE OBJECT= ONBLUR= ONCHANGE= ONFOCUS= ONKEYDOWN= ONKEYPRESS= ONKEYUP= ONLOAD= ONRESET= ONSELECT= ONSUBMIT= ONUNLOAD= ONCLICK= ONDBLCLICK= ONMOUSEDOWN= ONMOUSEMOVE= ONMOUSEOUT= ONMOUSEOVER= ONMOUSEUP= PROFILE= PROMPT= READONLY REL= REV= ROWS= ROWSPAN= RULES= SCHEME= SCOPE= SCROLLING= SELECTED SHAPE= SIZE= SPAN= SRC= STANDBY= START= STYLE= SUMMARY= TABINDEX= TARGET= TEXT= TITLE= TOPMARGIN= TYPE= URL= USEMAP= VALIGN= VALUE= VALUETYPE= VERSION= VLINK= VSPACE= WIDTH=
+
+
+
+
+ abstract break byte boolean catch case class char continue default double do DNAList else extends false final float for finally if import implements include int interface instanceof long length native new null package private protected public return switch synchronized short static super try true this throw throws threadsafe transient void while
+
+
+
+
+ AbstractAction AbstractBorder AbstractButton AbstractCollection AbstractColorChooserPanel AbstractDocument AbstractDocument.AttributeContext AbstractDocument.Content AbstractDocument.ElementEdit AbstractLayoutCache AbstractLayoutCache.NodeDimensions AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractSequentialList AbstractSet AbstractTableModel AbstractUndoableEdit AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible AccessibleAction AccessibleBundle AccessibleComponent AccessibleContext AccessibleHyperlink AccessibleHypertext AccessibleObject AccessibleResourceBundle AccessibleRole AccessibleSelection AccessibleState AccessibleStateSet AccessibleText AccessibleValue Acl AclEntry AclNotFoundException Action ActionEvent ActionListener Activatable ActivateFailedException ActivationDesc ActivationException ActivationGroup ActivationGroupDesc ActivationGroupDesc.CommandEnvironment ActivationGroupID ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent Adjustable AdjustmentEvent AdjustmentListener Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite AlreadyBound AlreadyBoundException AlreadyBoundHelper AlreadyBoundHolder AncestorEvent AncestorListener Annotation Any AnyHolder Applet AppletContext AppletInitializer AppletStub ApplicationException Arc2D Arc2D.Double Arc2D.Float Area AreaAveragingScaleFilter ARG_IN ARG_INOUT ARG_OUT ArithmeticException Array Array ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException AttributedCharacterIterator AttributedCharacterIterator.Attribute AttributedString AttributeList Attributes Attributes.Name AttributeSet AttributeSet.CharacterAttribute AttributeSet.ColorAttribute AttributeSet.FontAttribute AttributeSet.ParagraphAttribute AudioClip Authenticator Autoscroll AWTError AWTEvent AWTEventListener AWTEventMulticaster AWTException AWTPermission BAD_CONTEXT BAD_INV_ORDER BAD_OPERATION BAD_PARAM BAD_POLICY BAD_POLICY_TYPE BAD_POLICY_VALUE BAD_TYPECODE BadKind BadLocationException BandCombineOp BandedSampleModel BasicArrowButton BasicBorders BasicBorders.ButtonBorder BasicBorders.FieldBorder BasicBorders.MarginBorder BasicBorders.MenuBarBorder BasicBorders.RadioButtonBorder BasicBorders.SplitPaneBorder BasicBorders.ToggleButtonBorder BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI BasicColorChooserUI BasicComboBoxEditor BasicComboBoxEditor.UIResource BasicComboBoxRenderer BasicComboBoxRenderer.UIResource BasicComboBoxUI BasicComboPopup BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI BasicFileChooserUI BasicGraphicsUtils BasicIconFactory BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicOptionPaneUI.ButtonAreaLayout BasicPanelUI BasicPasswordFieldUI BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI BasicRadioButtonUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicTextUI.BasicCaret BasicTextUI.BasicHighlighter BasicToggleButtonUI BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextServicesSupport.BCSSServiceProvider BeanContextSupport BeanContextSupport.BCSIterator BeanDescriptor BeanInfo Beans BevelBorder BigDecimal BigInteger BindException Binding BindingHelper BindingHolder BindingIterator BindingIteratorHelper BindingIteratorHolder BindingListHelper BindingListHolder BindingType BindingTypeHelper BindingTypeHolder BitSet Blob BlockView Book Boolean BooleanHolder Border BorderFactory BorderLayout BorderUIResource BorderUIResource.BevelBorderUIResource BorderUIResource.CompoundBorderUIResource BorderUIResource.EmptyBorderUIResource BorderUIResource.EtchedBorderUIResource BorderUIResource.LineBorderUIResource BorderUIResource.MatteBorderUIResource BorderUIResource.TitledBorderUIResource BoundedRangeModel Bounds Bounds Box Box.Filler BoxLayout BoxView BreakIterator BufferedImage BufferedImageFilter BufferedImageOp BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter Button ButtonGroup ButtonModel ButtonUI Byte ByteArrayInputStream ByteArrayOutputStream ByteHolder ByteLookupTable Calendar CallableStatement CannotProceed CannotProceedHelper CannotProceedHolder CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor CellEditorListener CellRendererPane Certificate Certificate CertificateEncodingException CertificateException CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException CertificateParsingException ChangedCharSetException ChangeEvent ChangeListener Character Character.Subset Character.UnicodeBlock CharacterIterator CharArrayReader CharArrayWriter CharConversionException CharHolder Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice ChoiceFormat Class ClassCastException ClassCircularityError ClassFormatError ClassLoader ClassNotFoundException Clipboard ClipboardOwner Clob Cloneable CloneNotSupportedException CMMException CodeSource CollationElementIterator CollationKey Collator Collection Collections Color ColorChooserComponentFactory ColorChooserUI ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorUIResource ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup COMM_FAILURE Comparable Comparator Compiler CompletionStatus Component ComponentAdapter ComponentColorModel ComponentEvent ComponentListener ComponentOrientation ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeView CompoundBorder CompoundEdit ConcurrentModificationException ConnectException ConnectException ConnectIOException Connection Constructor Container ContainerAdapter ContainerEvent ContainerListener ContentHandler ContentHandlerFactory ContentModel Context ContextList ContextualRenderedImageFactory ConvolveOp CRC32 CRL CRLException CropImageFilter CSS CSS.Attribute CTX_RESTRICT_SCOPE CubicCurve2D CubicCurve2D.Double CubicCurve2D.Float Current Cursor Customizer DATA_CONVERSION DatabaseMetaData DataBuffer DataBufferByte DataBufferInt DataBufferShort DataBufferUShort DataFlavor DataFormatException DatagramPacket DatagramSocket DatagramSocketImpl DataInput DataInputStream DataOutput DataOutputStream DataTruncation Date Date DateFormat DateFormatSymbols DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel DefaultDesktopManager DefaultEditorKit DefaultEditorKit.BeepAction DefaultEditorKit.CopyAction DefaultEditorKit.CutAction DefaultEditorKit.DefaultKeyTypedAction DefaultEditorKit.InsertBreakAction DefaultEditorKit.InsertContentAction DefaultEditorKit.InsertTabAction DefaultEditorKit.PasteAction DefaultFocusManager DefaultHighlighter DefaultHighlighter.DefaultHighlightPainter DefaultListCellRenderer DefaultListCellRenderer.UIResource DefaultListModel DefaultListSelectionModel DefaultMenuLayout DefaultMetalTheme DefaultMutableTreeNode DefaultSingleSelectionModel DefaultStyledDocument DefaultStyledDocument.AttributeUndoableEdit DefaultStyledDocument.ElementSpec DefaultTableCellRenderer DefaultTableCellRenderer.UIResource DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel DefinitionKind Deflater DeflaterOutputStream Delegate DesignMode DesktopIconUI DesktopManager DesktopPaneUI DGC Dialog Dictionary DigestException DigestInputStream DigestOutputStream Dimension Dimension2D DimensionUIResource DirectColorModel DnDConstants Document DocumentEvent DocumentEvent.ElementChange DocumentEvent.EventType DocumentListener DocumentParser DomainManager Double DoubleHolder DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener Driver DriverManager DriverPropertyInfo DropTarget DropTarget.DropTargetAutoScroller DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey DSAPublicKeySpec DTD DTDConstants DynamicImplementation DynAny DynArray DynEnum DynFixed DynSequence DynStruct DynUnion DynValue EditorKit Element Element ElementIterator Ellipse2D Ellipse2D.Double Ellipse2D.Float EmptyBorder EmptyStackException EncodedKeySpec Entity Enumeration Environment EOFException Error EtchedBorder Event EventListener EventListenerList EventObject EventQueue EventSetDescriptor Exception ExceptionInInitializerError ExceptionList ExpandVetoException ExportException Externalizable FeatureDescriptor Field FieldPosition FieldView File FileChooserUI FileDescriptor FileDialog FileFilter FileFilter FileInputStream FilenameFilter FileNameMap FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter FilteredImageSource FilterInputStream FilterOutputStream FilterReader FilterWriter FixedHeightLayoutCache FixedHolder FlatteningPathIterator FlavorMap Float FloatHolder FlowLayout FocusAdapter FocusEvent FocusListener FocusManager Font FontMetrics FontRenderContext FontUIResource Format FormView Frame FREE_MEM GapContent GeneralPath GeneralSecurityException GlyphJustificationInfo GlyphMetrics GlyphVector GradientPaint GraphicAttribute Graphics Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream GZIPOutputStream HashMap HashSet Hashtable Highlighter Highlighter.Highlight Highlighter.HighlightPainter HTML HTML.Attribute HTML.Tag HTML.UnknownTag HTMLDocument HTMLDocument.Iterator HTMLEditorKit HTMLEditorKit.HTMLFactory HTMLEditorKit.HTMLTextAction HTMLEditorKit.InsertHTMLTextAction HTMLEditorKit.LinkController HTMLEditorKit.Parser HTMLEditorKit.ParserCallback HTMLFrameHyperlinkEvent HTMLWriter HttpURLConnection HyperlinkEvent HyperlinkEvent.EventType HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon IconUIResource IconView Identity IdentityScope IDLEntity IDLType IllegalAccessError IllegalAccessException IllegalArgumentException IllegalComponentStateException IllegalMonitorStateException IllegalPathStateException IllegalStateException IllegalThreadStateException Image ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageObserver ImageProducer ImagingOpException IMP_LIMIT IncompatibleClassChangeError InconsistentTypeCode IndexColorModel IndexedPropertyDescriptor IndexOutOfBoundsException InetAddress Inflater InflaterInputStream InheritableThreadLocal INITIALIZE InlineView InputContext InputEvent InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests InputStream InputStream InputStreamReader InputSubset Insets InsetsUIResource InstantiationError InstantiationException Integer INTERNAL InternalError InternalFrameAdapter InternalFrameEvent InternalFrameListener InternalFrameUI InterruptedException InterruptedIOException INTF_REPOS IntHolder IntrospectionException Introspector INV_FLAG INV_IDENT INV_OBJREF INV_POLICY Invalid INVALID_TRANSACTION InvalidAlgorithmParameterException InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException InvalidName InvalidName InvalidNameHelper InvalidNameHolder InvalidObjectException InvalidParameterException InvalidParameterSpecException InvalidSeq InvalidValue InvocationEvent InvocationTargetException InvokeHandler IOException IRObject IstringHelper ItemEvent ItemListener ItemSelectable Iterator JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComboBox.KeySelectionManager JComponent JDesktopPane JDialog JEditorPane JFileChooser JFrame JInternalFrame JInternalFrame.JDesktopIcon JLabel JLayeredPane JList JMenu JMenuBar JMenuItem JOptionPane JPanel JPasswordField JPopupMenu JPopupMenu.Separator JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator JSlider JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextComponent.KeyBinding JTextField JTextPane JToggleButton JToggleButton.ToggleButtonModel JToolBar JToolBar.Separator JToolTip JTree JTree.DynamicUtilTreeNode JTree.EmptySelectionModel JViewport JWindow Kernel Key KeyAdapter KeyEvent KeyException KeyFactory KeyFactorySpi KeyListener KeyManagementException Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeySpec KeyStore KeyStoreException KeyStoreSpi KeyStroke Label LabelUI LabelView LastOwnerException LayeredHighlighter LayeredHighlighter.LayerPainter LayoutManager LayoutManager2 Lease Line2D Line2D.Double Line2D.Float LineBorder LineBreakMeasurer LineMetrics LineNumberInputStream LineNumberReader LinkageError LinkedList List List ListCellRenderer ListDataEvent ListDataListener ListIterator ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView LoaderHandler Locale LocateRegistry LogStream Long LongHolder LookAndFeel LookupOp LookupTable MalformedURLException Manifest Map Map.Entry MARSHAL MarshalException MarshalledObject Math MatteBorder MediaTracker Member MemoryImageSource Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetalBorders MetalBorders.ButtonBorder MetalBorders.Flush3DBorder MetalBorders.InternalFrameBorder MetalBorders.MenuBarBorder MetalBorders.MenuItemBorder MetalBorders.PopupMenuBorder MetalBorders.RolloverButtonBorder MetalBorders.ScrollPaneBorder MetalBorders.TextFieldBorder MetalBorders.ToolBarBorder MetalButtonUI MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxEditor.UIResource MetalComboBoxIcon MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalIconFactory.FileIcon16 MetalIconFactory.FolderIcon16 MetalIconFactory.TreeControlIcon MetalIconFactory.TreeFolderIcon MetalIconFactory.TreeLeafIcon MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalPopupMenuSeparatorUI MetalProgressBarUI MetalRadioButtonUI MetalScrollBarUI MetalScrollButton MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI Method MethodDescriptor MinimalHTMLWriter MissingResourceException Modifier MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInputAdapter MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI MultiDesktopPaneUI MultiFileChooserUI MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleMaster MultiPopupMenuUI MultiProgressBarUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI MultiSliderUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet MutableComboBoxModel MutableTreeNode NameComponent NameComponentHelper NameComponentHolder NamedValue NameHelper NameHolder NameValuePair Naming NamingContext NamingContextHelper NamingContextHolder NegativeArraySizeException NetPermission NO_IMPLEMENT NO_MEMORY NO_PERMISSION NO_RESOURCES NO_RESPONSE NoClassDefFoundError NoninvertibleTransformException NoRouteToHostException NoSuchAlgorithmException NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException NoSuchObjectException NoSuchProviderException NotActiveException NotBoundException NotEmpty NotEmptyHelper NotEmptyHolder NotFound NotFoundHelper NotFoundHolder NotFoundReason NotFoundReasonHelper NotFoundReasonHolder NotOwnerException NotSerializableException NullPointerException Number NumberFormat NumberFormatException NVList OBJ_ADAPTER Object Object OBJECT_NOT_EXIST ObjectHolder ObjectImpl ObjectInput ObjectInputStream ObjectInputStream.GetField ObjectInputValidation ObjectOutput ObjectOutputStream ObjectOutputStream.PutField ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID Observable Observer OpenType Operation Option OptionalDataException OptionPaneUI ORB OutOfMemoryError OutputStream OutputStream OutputStreamWriter OverlayLayout Owner Package PackedColorModel Pageable PageFormat Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParagraphView ParameterBlock ParameterDescriptor ParseException ParsePosition Parser ParserDelegator PasswordAuthentication PasswordView PathIterator Permission Permission PermissionCollection Permissions PERSIST_STORE PhantomReference PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel PKCS8EncodedKeySpec PlainDocument PlainView Point Point2D Point2D.Double Point2D.Float Policy Policy PolicyError Polygon PopupMenu PopupMenuEvent PopupMenuListener PopupMenuUI Position Position.Bias PreparedStatement Principal Principal PrincipalHolder Printable PrinterAbortException PrinterException PrinterGraphics PrinterIOException PrinterJob PrintGraphics PrintJob PrintStream PrintWriter PRIVATE_MEMBER PrivateKey PrivilegedAction PrivilegedActionException PrivilegedExceptionAction Process ProfileDataException ProgressBarUI ProgressMonitor ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener PropertyChangeSupport PropertyDescriptor PropertyEditor PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException PUBLIC_MEMBER PublicKey PushbackInputStream PushbackReader QuadCurve2D QuadCurve2D.Double QuadCurve2D.Float Random RandomAccessFile Raster RasterFormatException RasterOp Reader Rectangle Rectangle2D Rectangle2D.Double Rectangle2D.Float RectangularShape Ref Reference ReferenceQueue ReflectPermission Registry RegistryHandler RemarshalException Remote RemoteCall RemoteException RemoteObject RemoteRef RemoteServer RemoteStub RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage RenderedImageFactory Renderer RenderingHints RenderingHints.Key RepaintManager ReplicateScaleFilter Request RescaleOp ResourceBundle ResponseHandler ResultSet ResultSetMetaData RGBImageFilter RMIClassLoader RMIClientSocketFactory RMIFailureHandler RMISecurityException RMISecurityManager RMIServerSocketFactory RMISocketFactory RootPaneContainer RoundRectangle2D RoundRectangle2D.Double RoundRectangle2D.Float RowMapper RSAPrivateCrtKey RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit RuleBasedCollator Runnable Runtime RuntimeException RuntimePermission SampleModel Scrollable Scrollbar ScrollBarUI ScrollPane ScrollPaneConstants ScrollPaneLayout ScrollPaneLayout.UIResource ScrollPaneUI SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException SecurityManager SecurityPermission Segment SeparatorUI SequenceInputStream Serializable SerializablePermission ServantObject ServerCloneException ServerError ServerException ServerNotActiveException ServerRef ServerRequest ServerRuntimeException ServerSocket ServiceDetail ServiceDetailHelper ServiceInformation ServiceInformationHelper ServiceInformationHolder Set SetOverrideType Shape ShapeGraphicAttribute Short ShortHolder ShortLookupTable Signature SignatureException SignatureSpi SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleTimeZone SinglePixelPackedSampleModel SingleSelectionModel SizeRequirements Skeleton SkeletonMismatchException SkeletonNotFoundException SliderUI Socket SocketException SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException SoftBevelBorder SoftReference SortedMap SortedSet SplitPaneUI SQLData SQLException SQLInput SQLOutput SQLWarning Stack StackOverflowError StateEdit StateEditable Statement Streamable StreamCorruptedException StreamTokenizer String StringBuffer StringBufferInputStream StringCharacterIterator StringContent StringHolder StringIndexOutOfBoundsException StringReader StringSelection StringTokenizer StringWriter Stroke Struct StructMember StubNotFoundException Style StyleConstants StyleConstants.CharacterConstants StyleConstants.ColorConstants StyleConstants.FontConstants StyleConstants.ParagraphConstants StyleContext StyledDocument StyledEditorKit StyledEditorKit.AlignmentAction StyledEditorKit.BoldAction StyledEditorKit.FontFamilyAction StyledEditorKit.FontSizeAction StyledEditorKit.ForegroundAction StyledEditorKit.ItalicAction StyledEditorKit.StyledTextAction StyledEditorKit.UnderlineAction StyleSheet StyleSheet.BoxPainter StyleSheet.ListPainter SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFailedException System SystemColor SystemException SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TagElement TCKind TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo TextLayout TextLayout.CaretPolicy TextLine.TextLineMetrics TextListener TextUI TexturePaint Thread ThreadDeath ThreadGroup ThreadLocal Throwable TileObserver Time Timer Timestamp TimeZone TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException TRANSACTION_REQUIRED TRANSACTION_ROLLEDBACK Transferable TransformAttribute TRANSIENT Transparency TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TypeCode TypeCodeHolder TypeMismatch Types UID UIDefaults UIDefaults.ActiveValue UIDefaults.LazyValue UIManager UIManager.LookAndFeelInfo UIResource UndoableEdit UndoableEditEvent UndoableEditListener UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnionMember UNKNOWN UnknownError UnknownGroupException UnknownHostException UnknownHostException UnknownObjectException UnknownServiceException UnknownUserException UnmarshalException UnrecoverableKeyException Unreferenced UnresolvedPermission UnsatisfiedLinkError UNSUPPORTED_POLICY UNSUPPORTED_POLICY_VALUE UnsupportedClassVersionError UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException UnsupportedOperationException URL URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory UserException UTFDataFormatException Utilities ValueMember VariableHeightLayoutCache Vector VerifyError VetoableChangeListener VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI VirtualMachineError Visibility VM_ABSTRACT VM_CUSTOM VM_NONE VM_TRUNCATABLE VMID Void WeakHashMap WeakReference Window WindowAdapter WindowConstants WindowEvent WindowListener WrappedPlainView WritableRaster WritableRenderedImage WriteAbortedException Writer WrongTransaction X509Certificate X509CRL X509CRLEntry X509EncodedKeySpec X509Extension ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream _BindingIteratorImplBase _BindingIteratorStub _NamingContextImplBase _NamingContextStub
+
+
+
+
+ <jsp:useBean <jsp:plugin <jsp:include <jsp:setProperty <jsp:getProperty <jsp:forward // /> <%= <%! <%-- <%@ <% %>
+
+
+
+
+ + - & | = ! // /
+
+
+
+
+
+
+
+
+
+
+ ~ @ ! " & * ( ) + = | \ { } [ ] ; " ' , ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Java.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Java.syn
new file mode 100644
index 0000000..fe490df
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Java.syn
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract
+break
+catch case class continue
+default do
+else extends
+final for finally
+if import implements interface instanceof
+length
+native new
+package private protected public
+return
+switch synchronized static super
+try this throw throws threadsafe transient
+while
+
+
+
+
+
+
+
+
+
+
+ void short null long int float double char byte boolean true false Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JavaScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JavaScript.syn
new file mode 100644
index 0000000..b6333c4
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/JavaScript.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abstract break byte case catch char class const continue default delete do double else extends false final finally float for function goto if implements import in instanceof int interface long native null package private protected public reset return short static super switch synchronized this throw transient true try var void while with
+
+
+
+
+ Anchor Applet Area Arguments Array Boolean Button Checkbox Collection Crypto Date Dictionary Document Drive Drives Element Enumerator Event File FileObject FileSystemObject FileUpload Folder Folders Form Frame Function Global Hidden History HTMLElement Image Infinity Input JavaArray JavaClass JavaObject JavaPackage JSObject Layer Link Math MimeType Navigator Number Object Option Packages Password Plugin PrivilegeManager Random RegExp Screen Select String Submit Text Textarea URL VBArray Window WScript
+
+
+
+
+ above abs acos action activeElement alert alinkColor all altKey anchor anchors appCodeName applets apply appName appVersion arguments arity asin assign atan atan2 atob availHeight availLeft availTop availWidth ActiveXObject back background below bgColor big blink blur bold border borderWidths bottom btoa button call callee caller cancelBubble captureEvents ceil charAt charCodeAt charset checked children classes className clear clearInterval clearTimeout click clientInformation clientX clientY close closed colorDepth compile complete concat confirm constructir contains contextual cookie cos crypto ctrlKey current data defaultCharset defaultChecked defaultSelected defaultStatus defaultValue description disableExternalCapture disablePrivilege document domain E Echo element elements embeds enabledPlugin enableExternalCapture enablePrivilege encoding escape eval event exec exp expando FromPoint fgColor fileName find fixed floor focus fontColor fontSize form forms forward frames fromCharCode fromElement getAttribute get getClass getDate getDay getFullYear getHours getMember getMilliseconds getMinutes getMonth getSeconds getSelection getSlot getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getWindow getYear global go HandleEvent Height hash hidden history home host hostName href hspace id ids ignoreCase images index indexOf inner innerHTML innerText innerWidth insertAdjacentHTML insertAdjacentText isFinite isNAN italics java javaEnabled join keyCode Links LN10 LN2 LOG10E LOG2E lang language lastIndex lastIndexOf lastMatch lastModified lastParen layers layerX layerY left leftContext length link linkColor load location locationBar log lowsrc MAX_VALUE MIN_VALUE margins match max menubar method mimeTypes min modifiers moveAbove moveBelow moveBy moveTo moveToAbsolute multiline NaN NEGATIVE_INFINITY name navigate navigator netscape next number offscreenBuffering offset offsetHeight offsetLeft offsetParent offsetTop offsetWidth offsetX offsetY onabort onblur onchange onclick ondblclick ondragdrop onerror onfocus onHelp onkeydown onkeypress onkeyup onload onmousedown onmousemove onmouseout onmouseover onmouseup onmove onreset onresize onsubmit onunload open opener options outerHeight outerHTML outerText outerWidth POSITIVE_INFINITY PI paddings pageX pageXOffset pageY pageYOffset parent parentElement parentLayer parentWindow parse parseFloat parseInt pathname personalbar pixelDepth platform plugins pop port pow preference previous print prompt protocol prototype push random readyState reason referrer refresh releaseEvents reload removeAttribute removeMember replace resizeBy resizeTo returnValue reverse right rightcontext round SQRT1_2 SQRT2 screenX screenY scroll scrollbars scrollBy scrollIntoView scrollTo search select selected selectedIndex self setAttribute setDay setFullYear setHotkeys setHours setInterval setMember setMilliseconds setMinutes setMonth setResizable setSeconds setSlot setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMillseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift shiftKey siblingAbove siblingBelow signText sin slice smallsort source sourceIndex splice split sqrt src srcElement srcFilter status statusbar stop strike style sub submit substr substring suffixes sun sup systemLanguage TYPE tagName tags taint taintEnabled tan target test text title toElement toGMTString toLocaleString toLowerCase toolbar top toString toUpperCase toUTCString type typeOf UTC unescape unshift untaint unwatch userAgent userLanguage value valueOf visibility vlinkColor vspace watch which width window write writeln x y zIndex
+
+
+
+
+ ! $ % & * + - // / : < = > ? [ ] " | ~ is new sizeof typeof unchecked
+
+
+
+
+ ( ) , ; { }
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/LotusScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/LotusScript.syn
new file mode 100644
index 0000000..014cfd6
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/LotusScript.syn
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abs Access ACos ActivateApp Alias And Any Append As Asc ASin Atn Atn2 Base Beep Bin Bin$ Binary Bind ByVal Call CCur CDat CDbl ChDir ChDrive Chr Chr$ CInt Class CLng Close Command Command$ Compare Const Cos CSng CStr CurDir CurDir$ CurDrive CurDrive$ CVar DataType Date Date$ DateNumber DateValue Day Declare DefCur DefDbl DefInt DefLng DefSng DefStr DefVar Delete Dim Dir Dir$ Environ Environ$ EOF Eqv Erase Erl Err Error Error$ Evaluate Event Execute Exit Exp FALSE FileAttr FileCopy FileDateTime FileLen Fix Format Format$ Fraction FreeFile FromFunction Get GetFileAttr Hex Hex$ Hour IMEStatus Imp In Input Input$ InputB InputB$ InputBox InputBox$ InputBP InputBP$ InStr InStrB InStrBP Int Is IsArray IsDate IsElement IsEmpty IsList IsNull IsNumeric IsObject IsScalar IsUnknown Kill LBound LCase LCase$ Left Left$ LeftB LeftB$ LeftBP LeftBP$ Len LenB LenBP Let Lib Like Line List ListTag LMBCS Loc Lock LOF Log Loop LSet LTrim LTrim$ Me MessageBox Mid Mid$ MidB MidB$ Minute MkDir Mod Month Name New NoCase NoPitch Not NOTHING Now NULL Oct Oct$ On Open Option Or Output PI Pitch Preserve Print Private Property Public Put Random Randomize Read ReDim Rem Remove Reset Resume Return Right Right$ RightB RightB$ RightBP RightBP$ RmDir Rnd Round RSet RTrim RTrim$ Second Seek SendKeys Set SetFileAttr Sgn Shared Shell Sin Space Space$ Spc Sqr Static Step Stop Str Str$ StrCompare String$ Sub Tab Tan Time Time$ TimeNumber Timer TimeValue To Today Trim Trim$ TRUE Type TypeName UBound UCase UCase$ UChr UChr$ Uni Unicode Unlock Use UseLSX UString UString$ Val With Write Xor Year Yield
+
+
+
+
+ Currency Double Integer Long Single String Variant
+
+
+
+
+ Case Do Else End ElseIf For Forall If Next Select Then Until Wend While GoSub GoTo
+
+
+
+
+ NotesACLNotesACLEntry NotesAgent NotesDatabase NotesDateRange NotesDateTime NotesDbDirectory NotesDocument NotesDocumentCollection NotesEmbeddedObject NotesForm NotesInternational NotesItem NotesLog NotesName NotesNewsLetter NotesRegistration NotesRichTextItem NotesRichTextStyle NotesSession NotesTimer NotesView NotesViewColumn NotesUIDatabase NotesUIDocument NotesUIView NotesUIWorkspace Navigator notesaclnotesaclentry notesagent notesdatabase notesdaterange notesdatetime notesdbdirectory notesdocument notesdocumentcollection notesembeddedobject notesform notesinternational notesitem noteslog notesname notesnewsletter notesregistration notesrichtextitem notesrichtextstyle notessession notestimer notesview notesviewcolumn notesuidatabase notesuidocument notesuiview notesuiworkspace navigator
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MSIL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MSIL.syn
new file mode 100644
index 0000000..99ed576
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MSIL.syn
@@ -0,0 +1,594 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+bool
+char
+wchar
+int
+int8
+int16
+int32
+int64
+float
+float32
+float64
+refany
+typedref
+object
+string
+native
+unsigned
+value
+valuetype
+class
+const
+vararg
+default
+stdcall
+thiscall
+fastcall
+unmanaged
+not_in_gc_heap
+beforefieldinit
+instance
+filter
+catch
+static
+public
+private
+synchronized
+interface
+extends
+implements
+handler
+finally
+fault
+to
+abstract
+auto
+sequential
+explicit
+wrapper
+ansi
+unicode
+autochar
+import
+enum
+virtual
+notremotable
+special
+il
+cil
+optil
+managed
+preservesig
+runtime
+method
+field
+bytearray
+final
+sealed
+specialname
+family
+assembly
+famandassem
+famorassem
+privatescope
+nested
+hidebysig
+newslot
+rtspecialname
+pinvokeimpl
+unmanagedexp
+reqsecobj
+.ctor
+.cctor
+initonly
+literal
+notserialized
+forwardref
+internalcall
+noinlining
+nomangle
+lasterr
+winapi
+cdecl
+stdcall
+thiscall
+fastcall
+as
+pinned
+modreq
+modopt
+serializable
+at
+tls
+true
+false
+.class
+.namespace
+.method
+.field
+.emitbyte
+.try
+.maxstack
+.locals
+.entrypoint
+.zeroinit
+.pdirect
+.data
+.event
+.addon
+.removeon
+.fire
+.other
+protected
+.property
+.set
+.get
+default
+.import
+.permission
+.permissionset
+request
+demand
+assert
+deny
+permitonly
+linkcheck
+inheritcheck
+reqmin
+reqopt
+reqrefuse
+prejitgrant
+prejitdeny
+noncasdemand
+noncaslinkdemand
+noncasinheritance
+.line
+.language
+#line
+.custom
+init
+.size
+.pack
+.file
+nometadata
+.hash
+.assembly
+implicitcom
+noappdomain
+noprocess
+nomachine
+.publickey
+.publickeytoken
+algorithm
+.ver
+.locale
+extern
+.export
+.manifestres
+.mresource
+.localized
+.module
+marshal
+custom
+sysstring
+fixed
+variant
+currency
+syschar
+decimal
+date
+bstr
+tbstr
+lpstr
+lpwstr
+lptstr
+objectref
+iunknown
+idispatch
+struct
+safearray
+byvalstr
+lpvoid
+any
+array
+lpstruct
+.vtfixup
+fromunmanaged
+callmostderived
+.vtentry
+in
+out
+opt
+lcid
+retval
+.param
+.override
+with
+null
+error
+hresult
+carray
+userdefined
+record
+filetime
+blob
+stream
+storage
+streamed_object
+stored_object
+blob_object
+cf
+clsid
+vector
+nullref
+.subsystem
+.corflags
+alignment
+.imagebase
+.vtable
+readonly
+implicitres
+
+
+
+
+
+
+
+
+
+
+
+
+nop
+break
+ldarg.0
+ldarg.1
+ldarg.2
+ldarg.3
+ldloc.0
+ldloc.1
+ldloc.2
+ldloc.3
+stloc.0
+stloc.1
+stloc.2
+stloc.3
+ldarg.s
+ldarga.s
+starg.s
+ldloc.s
+ldloca.s
+stloc.s
+ldnull
+ldc.i4.m1
+ldc.i4.0
+ldc.i4.1
+ldc.i4.2
+ldc.i4.3
+ldc.i4.4
+ldc.i4.5
+ldc.i4.6
+ldc.i4.7
+ldc.i4.8
+ldc.i4.s
+ldc.i4
+ldc.i8
+ldc.r4
+ldc.r8
+dup
+pop
+jmp
+call
+calli
+ret
+br.s
+brfalse.s
+brtrue.s
+beq.s
+bge.s
+bgt.s
+ble.s
+blt.s
+bne.un.s
+bge.un.s
+bgt.un.s
+ble.un.s
+blt.un.s
+br
+brfalse
+brtrue
+beq
+bge
+bgt
+ble
+blt
+bne.un
+bge.un
+bgt.un
+ble.un
+blt.un
+switch
+ldind.i1
+ldind.u1
+ldind.i2
+ldind.u2
+ldind.i4
+ldind.u4
+ldind.i8
+ldind.i
+ldind.r4
+ldind.r8
+ldind.ref
+stind.ref
+stind.i1
+stind.i2
+stind.i4
+stind.i8
+stind.r4
+stind.r8
+add
+sub
+mul
+div
+div.un
+rem
+rem.un
+and
+or
+xor
+shl
+shr
+shr.un
+neg
+not
+conv.i1
+conv.i2
+conv.i4
+conv.i8
+conv.r4
+conv.r8
+conv.u4
+conv.u8
+callvirt
+cpobj
+ldobj
+ldstr
+newobj
+castclass
+isinst
+conv.r.un
+unbox
+throw
+ldfld
+ldflda
+stfld
+ldsfld
+ldsflda
+stsfld
+stobj
+conv.ovf.i1.un
+conv.ovf.i2.un
+conv.ovf.i4.un
+conv.ovf.i8.un
+conv.ovf.u1.un
+conv.ovf.u2.un
+conv.ovf.u4.un
+conv.ovf.u8.un
+conv.ovf.i.un
+conv.ovf.u.un
+box
+newarr
+ldlen
+ldelema
+ldelem.i1
+ldelem.u1
+ldelem.i2
+ldelem.u2
+ldelem.i4
+ldelem.u4
+ldelem.i8
+ldelem.i
+ldelem.r4
+ldelem.r8
+ldelem.ref
+stelem.i
+stelem.i1
+stelem.i2
+stelem.i4
+stelem.i8
+stelem.r4
+stelem.r8
+stelem.ref
+conv.ovf.i1
+conv.ovf.u1
+conv.ovf.i2
+conv.ovf.u2
+conv.ovf.i4
+conv.ovf.u4
+conv.ovf.i8
+conv.ovf.u8
+refanyval
+ckfinite
+mkrefany
+ldtoken
+conv.u2
+conv.u1
+conv.i
+conv.ovf.i
+conv.ovf.u
+add.ovf
+add.ovf.un
+mul.ovf
+mul.ovf.un
+sub.ovf
+sub.ovf.un
+endfinally
+leave
+leave.s
+stind.i
+conv.u
+arglist
+ceq
+cgt
+cgt.un
+clt
+clt.un
+ldftn
+ldvirtftn
+ldarg
+ldarga
+starg
+ldloc
+ldloca
+stloc
+localloc
+endfilter
+unaligned.
+volatile.
+tail.
+initobj
+cpblk
+initblk
+rethrow
+sizeof
+refanytype
+
+
+
+
+
+brnull
+brnull.s
+brzero
+brzero.s
+brinst
+brinst.s
+ldind.u8
+ldelem.u8
+ldc.i4.M1
+endfault
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MySQL_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MySQL_SQL.syn
new file mode 100644
index 0000000..cef1854
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/MySQL_SQL.syn
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ add all alter and as asc auto_increment between binary both by change check column columns create cross data database databases default delayed delete desc describe distinct drop enclosed escaped exists explain field fields flush for foreign from function grant group having identified if ignore index insert infile into join key keys kill leading left like limit lines load local lock low_priority modify natural not null on optimize option optionally or order outer outfile primary proceedure read references regexp rename replace returns revoke rlike select set show soname status straight_join table tables teminated to trailing unique unlock unsigned update use using values variables where with write zerofill xor
+
+
+
+
+ abs acos adddate ascii asin atan atan2 avg bin bit_and bit_count bit_or ceiling char_lengh character_length concat conv cos cot count curdate curtime current_time current_timestamp date_add date_format date_sub dayname dayofmonth dayofweek dayofyear degrees elt encrypt exp find_in_set floor format from_days from_unixtime get_lock greatest hex hour ifnull instr isnull interval last_insert_id lcase lower least length locate log log10 lpad ltrim max mid min minute mod month monthname now oct octet_length password period_add period_diff pi position pow quarter radians rand release_lock repeat reverse right round rpad rtrim second sec_to_time session_user sign sin soundex space sqrt strcmp substring substring_index sysdate system_user std sum tan time_format time_to_sec to_days trim truncate ucase unix_timestamp user version week weekday year
+
+
+
+
+ bigint blob char date datetime decimal double doubleprecision enum float float4 float8 int int1 int2 int3 int4 int8 integer long longblob longtext mediumblob mediumint mediumtext middleint numeric real smallint text time timestamp tinyint tinytext tinyblob varbinary varchar varying
+
+
+
+
+
+
+
+
+
+
+ ! & * ( ) + = | / ; " ' < > , . /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Oracle_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Oracle_SQL.syn
new file mode 100644
index 0000000..5b298d0
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Oracle_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ACCESS ADD ADMIN AFTER ALL ALLOCATE ALTER ANALYZE AND ANY ARCHIVE ARCHIVELOG AS ASC AUDIT BACKUP BECOME BEFORE BETWEEN BLOCK BY CACHE CANCEL CASCADE CHANGE CHARACTER CHECK CHECKPOINT CLUSTER COBOL COLUMN COMMENT COMPILE COMPRESS CONNECT CONSTRAINT CONSTRAINTS CONTENTS CONTINUE CONTROLFILE CREATE CURRENT CYCLE DATAFILE DEC DECIMAL DEFAULT DELETE DESC DISABLE DISMOUNT DISTINCT DOUBLE DROP EACH ELSE ENABLE ERRORS ESCAPE EVENTS EXCEPT EXCEPTIONS EXCLUSIVE EXEC EXECUTE EXISTS EXPLAIN EXTENT EXTERNALLY FILE FLUSH FOR FORCE FOREIGN FORTRAN FOUND FREELIST FREELISTS FROM GO GRANT GROUP GROUPS HAVING IDENTIFIED IMMEDIATE IN INCLUDING INCREMENT INDEX INITIAL INITRANS INSERT INSTANCE INT INTERSECT INTO IS KEY LANGUAGE LAYER LEVEL LIKE LINK LISTS LOCK LOGFILE MANAGE MANUAL MAXDATAFILES MAXEXTENTS MAXINSTANCES MAXLOGFILES MAXLOGHISTORY MAXLOGMEMBERS MAXTRANS MAXVALUE MINEXTENTS MINUS MINVALUE MLSLABEL MODE MODIFY MODULE MOUNT NEXT NOARCHIVELOG NOAUDIT NOCACHE NOCOMPRESS NOCYCLE NOLOGGING NOMAXVALUE NOMINVALUE NONE NOORDER NORESETLOGS NORMAL NOSORT NOT NOTFOUND NOWAIT NULL NUMERIC OF OFF OFFLINE ON ONLINE ONLY OPTIMAL OPTION OR ORDER OWN PARALLEL PCTFREE PCTINCREASE PCTUSED PLAN PLI PRECISION PRIMARY PRIOR PRIVILEGES PROFILE PUBLIC QUOTA READ RECOVER REFERENCES REFERENCING RENAME REPLACE RESETLOGS RESOURCE RESTRICTED REUSE REVOKE ROLE ROLES ROW ROWID ROWLABEL ROWNUM ROWS SCN SECTION SEGMENT SELECT SEQUENCE SESSION SET SHARE SHARED SIZE SNAPSHOT SOME SORT SQLBUF SQLERROR SQLSTATE START STATEMENT_ID STATISTICS STOP STORAGE SUCCESSFUL SWITCH SYNONYM SYSDATE SYSTEM TABLE TABLESPACE TEMPORARY THEN THREAD TIME TO TRACING TRANSACTION TRIGGERS TRUNCATE UNDER UNION UNIQUE UNLIMITED UNTIL UPDATE VALIDATE VALUES VIEW WHENEVER WHERE WITH
+
+
+
+
+
+
+ BFILE_TABLE BINARY_INTEGER BLOB_TABLE BOOLEAN CHAR CHARRARR CLOB_TABLE DATE DATE_TABLE DBLINK_ARRAY DESC_REC DESC_TAB FILE_TYPE FLOAT INDEX_TABLE_TYPE INTEGER LONG MAXWAIT NAME_ARRAY NATIVE NUMBER NUMBER_ARRAY NUMBER_TABLE PLS_INTEGER RAW REAL REG_REPAPI_SNAPSHOT REG_UNKNOWN REG_V7_SNAPSHOT REG_V8_SNAPSHOT RNDS RNPS SMALLINT UNCL_ARRAY V6 V7 VARCHAR VARCHAR2 VARCHAR2S VARCHAR2_TABLE WNDS WNPS
+
+
+
+
+ ABS ACOS ADD_MONTHS ASCII ASIN ATAN ATAN2 AVG BFILENAME CEIL CHARTOROWID CHR CONCAT CONVERT COS COSH COUNT DECODE DEREF DUMP EMPTY_BLOB EMPTY_CLOB EXP FLOOR GREATEST HEXTORAW INITCAP INSTR INSTRB LAST_DAY LEAST LENGTH LENGTHB LN LOG LOWER LPAD LTRIM MAKE_REF MAX MIN MOD MONTHS_BETWEEN NEW_TIME NEXT_DAY NLS_CHARSET_DECL_LEN NLS_CHARSET_ID NLS_CHARSET_NAME NLS_INITCAP NLS_LOWER NLS_SORT NLS_UPPER NVL POWER RAWTOHEX REFTOHEX ROUND ROWIDTOCHAR RPAD RTRIM SIGN SIN SINH SOUNDEX SQRT STDDEV SUBSTR SUBSTRB SUM TAN TANH TO_CHAR TO_DATE TO_LABEL TO_MULTI_BYTE TO_NUMBER TO_SINGLE_BYTE TRANSLATE TRUNC UID UPPER USER USERENV USING VARIANCE VSIZE
+
+
+
+
+ ABORT ACCEPT ARRAY ARRAYLEN ASSERT ASSIGN AT AUTHORIZATION BASE_TABLE BEGIN BODY CASE CHAR_BASE CLOSE CLUSTERS COLAUTH COLUMNS COMMIT CONSTANT CRASH CURRVAL CURSOR DATABASE DATA_BASE DBA DEBUGOFF DEBUGON DECLARE DEFINITION DELAY DELTA DIGITS DISPOSE DO ELSIF END ENTRY EXCEPTION EXCEPTION_INIT EXIT FALSE FETCH FORM FUNCTION GENERIC GOTO IF INDEXES INDICATOR INTERFACE LIMITED LOOP NATURAL NATURALN NEW NEXTVAL NUMBER_BASE OLD OPEN OUT PACKAGE PARTITION POSITIVE POSITIVEN PRAGMA PRIVATE PROCEDURE RAISE RANGE RECORD REF RELEASE REMR RESTRICT_REFERENCES RETURN REVERSE ROLLBACK ROWTYPE RUN SAVEPOINT SCHEMA SEPARATE SEPERATE SPACE SQL SQLCODE SQLERRM STATEMENT SUBTYPE TABAUTH TABLES TASK TERMINATE TRIGGER TRUE TYPE USE VIEWS WHEN WHILE WORK WRITE XOR
+
+
+
+
+ ACCESS_INTO_NULL COLLECTION_IS_NULL CURSOR_ALREADY_OPEN DUP_VAL_ON_INDEX INCONSISTENT_TYPE INTERNAL_ERROR INVALID_CURSOR INVALID_FILEHANDLE INVALID_MODE INVALID_NUMBER INVALID_OPERATION INVALID_PATH LOGIN_DENIED NOT_LOGGED_ON NO_DATA_FOUND OTHERS PROGRAM_ERROR READ_ERROR STORAGE_ERROR SUBSCRIPT_BEYOND_COUNT SUBSCRIPT_OUTSIDE_LIMIT TIMEOUT_ON_RESOURCE TOO_MANY_ROWS VALUE_ERROR ZERO_DIVIDE
+
+
+
+
+ ALTER_COMPILE ALTER_TABLE_NOT_REFERENCEABLE ALTER_TABLE_REFERENCEABLE ANALYZE_DATABASE ANALYZE_OBJECT ANALYZE_PART_OBJECT ANALYZE_SCHEMA BEGIN_TABLE_REORGANISATION BIND_ARRAY BIND_VARIABLE BIND_VARIABLE_CHAR BIND_VARIABLE_RAW BIND_VARIABLE_ROWID BROKEN CHANGE CHECK_PRIVS CLOSE_CURSOR COLUMN_VALUE COLUMN_VALUE_CHAR COLUMN_VALUE_LONG COLUMN_VALUE_RAW COLUMN_VALUE_ROWID COMMA_TO_TABLE COMMIT_CM COMPILE_SCHEMA CREATE_PIPE DATA_BLOCK_ADDRESS_FILE DB_VERSION DEFINE_ARRAY DEFINE_COLUMN DEFINE_COLUMN_CHAR DEFINE_COLUMN_LONG DEFINE_COLUMN_RAW DEFINE_COLUMN_ROWID DELETING DESCRIBE_COLUMNS DESCRIBE_PROCEDURE DISABLE ENABLE END_TABLE_REORGANISATION EXECUTE EXECUTE_AND_FETCH EXEC_DDL_STATEMENT FCLOSE FCLOSE_ALL FETCH_ROWS FFLUSH FOPEN FORMAT_CALL_STACK FORMAT_ERROR_STACK GET_HASH_VALUE GET_LINE GET_LINES GET_PARAMETER_VALUE GET_TIME INSERTING INTERVAL ISUBMIT IS_OPEN IS_PARALLEL_SERVER I_AM_A_REFRESH LAST_ERROR_POSITION LAST_ROW_COUNT LAST_ROW_ID LAST_SQL_FUNCTION_CODE MAKE_DATA_BLOCK_ADDRESS NAME_RESOLVE NAME_TOKENIZE NEW_LINE NEXT_DATE NEXT_ITEM_TYPE OPEN_CURSOR PACK_MESSAGE PARSE PORT_STRING PURGE PURGE_LOG PURGE_SNAPSHOT_FROM_LOG PUT PUTF PUT_LINE RAISE_APPLICATION_ERROR RECEIVE_MESSAGE REFRESH REFRESH_ALL REGISTER REGISTER_SNAPSHOT REMOVE REMOVE_ALL REMOVE_PIPE RESET_BUFFER ROLLBACK_NR ROLLBACK_SV SEND_MESSAGE SET_DEFAULTS SET_I_AM_A_REFRESH SET_TRANSACTION_USE SIGNAL SUBMIT TABLE_TO_COMMA UNIQUE_SESSION_NAME UNPACK_MESSAGE UNREGISTER_SNAPSHOT UPDATING USER_EXPORT VARIABLE_VALUE VARIABLE_VALUE_CHAR VARIABLE_VALUE_RAW VARIABLE_VALUE_ROWID WAITANY WAITONE WHAT DEFINE PROMPT SHOW
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/PHP.Syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/PHP.Syn
new file mode 100644
index 0000000..4a28ec0
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/PHP.Syn
@@ -0,0 +1,489 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+echo else elseif
+for
+global
+if
+return
+while
+include true false
+switch
+case
+break
+default
+
+
+
+
+
+Abs Acos ada_afetch ada_autocommit ada_close ada_commit ada_connect ada_exec ada_fetchrow ada_fieldname ada_fieldnum ada_fieldtype ada_freeresult ada_numfields ada_numrows
+ada_result ada_resultall ada_rollback AddCSlashes AddSlashes apache_lookup_uri apache_note array array_count_values array_flip array_keys array_merge array_pad array_pop
+array_push array_reverse array_shift array_slice array_splice array_unshift array_values array_walk arsort Asin asort aspell_check aspell_check-raw aspell_new aspell_suggest
+Atan Atan2
+base64_decode base64_encode basename base_convert bcadd bccomp bcdiv bcmod bcmul bcpow bcscale bcsqrt bcsub bin2hex BinDec
+Ceil chdir checkdate checkdnsrr chgrp chmod Chop chown Chr chunk_split clearstatcache closedir closelog connection_aborted connection_status connection_timeout
+contained convert_cyr_string copy Cos count cpdf_add_annotation cpdf_add_outline cpdf_arc cpdf_begin_text cpdf_circle cpdf_clip cpdf_close cpdf_closepath
+cpdf_closepath_fill_stroke cpdf_closepath_stroke cpdf_continue_text cpdf_curveto cpdf_end_text cpdf_fill cpdf_fill_stroke cpdf_finalize cpdf_finalize_page
+cpdf_import_jpeg cpdf_lineto cpdf_moveto cpdf_open cpdf_output_buffer cpdf_page_init cpdf_place_inline_image cpdf_rect cpdf_restore cpdf_rlineto cpdf_rmoveto
+cpdf_rotate cpdf_save cpdf_save_to_file cpdf_scale cpdf_setdash cpdf_setflat cpdf_setgray cpdf_setgray_fill cpdf_setgray_stroke cpdf_setlinecap cpdf_setlinejoin
+cpdf_setlinewidth cpdf_setmiterlimit cpdf_setrgbcolor cpdf_setrgbcolor_fill cpdf_setrgbcolor_stroke cpdf_set_char_spacing cpdf_set_creator cpdf_set_current_page
+cpdf_set_font cpdf_set_horiz_scaling cpdf_set_keywords cpdf_set_leading cpdf_set_page_animation cpdf_set_subject cpdf_set_text_matrix cpdf_set_text_pos
+cpdf_set_text_rendering cpdf_set_text_rise cpdf_set_title cpdf_set_word_spacing cpdf_show cpdf_show_xy cpdf_stringwidth cpdf_stroke cpdf_text cpdf_translate crypt current
+date dbase_add_record dbase_close dbase_create dbase_delete_record dbase_get_record dbase_get_record_with_names dbase_numfields dbase_numrecords dbase_open dbase_pack
+dbase_replace_record dblist dbmclose dbmdelete dbmexists dbmfetch dbmfirstkey dbminsert dbmnextkey dbmopen dbmreplace debugger_off debugger_on DecBin DecHex DecOct define
+defined delete die dir dirname diskfreespace dl doubleval
+each easter_date easter_days echo empty end endwhile ereg eregi eregi_replace ereg_replace error_log error_reporting escapeshellcmd eval exec exit Exp explode extension_loaded extract
+fclose fdf_close fdf_create fdf_get_file fdf_get_status fdf_get_value fdf_next_field_name fdf_open fdf_save fdf_set_ap fdf_set_file fdf_set_status fdf_set_value feof fgetc
+fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner fileperms filepro filepro_fieldcount filepro_fieldname filepro_fieldtype
+filepro_fieldwidth filepro_retrieve filepro_rowcount filesize filetype file_exists flock Floor flush fopen fpassthru fputs fread FrenchToJD fseek fsockopen ftell ftp_cdup
+ftp_chdir ftp_connect ftp_delete ftp_fget ftp_fput ftp_get ftp_login ftp_mdtm ftp_mkdir ftp_nlist ftp_pasv ftp_put ftp_pwd ftp_quit ftp_rawlist ftp_rename ftp_rmdir ftp_size
+ftp_systype function_exists func_get_arg func_get_args func_num_args fwrite
+getallheaders getdate getenv gethostbyaddr gethostbyname gethostbynamel GetImageSize getlastmod getmxrr getmyinode getmypid getmyuid getprotobyname getprotobynumber getrandmax
+getrusage getservbyname getservbyport gettimeofday gettype get_browser get_cfg_var get_current_user get_html_translation_table get_magic_quotes_gpc get_magic_quotes_runtime
+get_meta_tags gmdate gmmktime gmstrftime GregorianToJD gzclose gzeof gzfile gzgetc gzgets gzgetss gzopen gzpassthru gzputs gzread gzrewind gzseek gztell gzwrite
+header HexDec htmlentities htmlspecialchars hw_Array2Objrec hw_Children hw_ChildrenObj hw_Close hw_Connect hw_Cp hw_Deleteobject hw_DocByAnchor hw_DocByAnchorObj
+hw_DocumentAttributes hw_DocumentBodyTag hw_DocumentContent hw_DocumentSetContent hw_DocumentSize hw_EditText hw_Error hw_ErrorMsg hw_Free_Document hw_GetAnchors
+hw_GetAnchorsObj hw_GetAndLock hw_GetChildColl hw_GetChildCollObj hw_GetChildDocColl hw_GetChildDocCollObj hw_GetObject hw_GetObjectByQuery hw_GetObjectByQueryColl
+hw_GetObjectByQueryCollObj hw_GetObjectByQueryObj hw_GetParents hw_GetParentsObj hw_GetRemote hw_GetRemoteChildren hw_GetSrcByDestObj hw_GetText hw_Identify hw_InCollections
+hw_Info hw_InsColl hw_InsDoc hw_InsertDocument hw_InsertObject hw_mapid hw_Modifyobject hw_Mv hw_New_Document hw_Objrec2Array hw_OutputDocument hw_pConnect hw_PipeDocument
+hw_Root hw_Unlock hw_Username hw_Who
+ibase_bind ibase_close ibase_connect ibase_execute ibase_fetch_row ibase_free_query ibase_free_result ibase_pconnect ibase_prepare ibase_query ibase_timefmt ifxus_close_slob
+ifxus_create_slob ifxus_open_slob ifxus_read_slob ifxus_seek_slob ifxus_tell_slob ifxus_write_slob ifx_affected_rows ifx_blobinfile_mode ifx_byteasvarchar ifx_close
+ifx_connect ifx_copy_blob ifx_create_blob ifx_create_char ifx_do ifx_error ifx_errormsg ifx_fetch_row ifx_fieldproperties ifx_fieldtypes ifx_free_blob ifx_free_char
+ifx_free_result ifx_free_slob ifx_getsqlca ifx_get_blob ifx_get_char ifx_htmltbl_result ifx_nullformat ifx_num_fields ifx_num_rows ifx_pconnect ifx_prepare ifx_query
+ifx_textasvarchar ifx_update_blob ifx_update_char ignore_user_abort ImageArc ImageChar ImageCharUp ImageColorAllocate ImageColorAt ImageColorClosest ImageColorExact
+ImageColorResolve ImageColorSet ImageColorsForIndex ImageColorsTotal ImageColorTransparent ImageCopyResized ImageCreate ImageCreateFromGif ImageDashedLine ImageDestroy
+ImageFill ImageFilledPolygon ImageFilledRectangle ImageFillToBorder ImageFontHeight ImageFontWidth ImageGif ImageInterlace ImageLine ImageLoadFont ImagePolygon ImagePSBBox
+ImagePSEncodeFont ImagePSFreeFont ImagePSLoadFont ImagePSText ImageRectangle ImageSetPixel ImageString ImageStringUp ImageSX ImageSY ImageTTFBBox ImageTTFText imap_8bit
+imap_alerts imap_append imap_base64 imap_binary imap_body imap_check imap_clearflag_full imap_close imap_createmailbox imap_delete imap_deletemailbox imap_errors imap_expunge
+imap_fetchbody imap_fetchheader imap_fetchstructure imap_getmailboxes imap_getsubscribed imap_header imap_headers imap_last_error imap_listmailbox imap_listsubscribed
+imap_mailboxmsginfo imap_mail_copy imap_mail_move imap_msgno imap_num_msg imap_num_recent imap_open imap_ping imap_qprint imap_renamemailbox imap_reopen
+imap_rfc822_parse_adrlist imap_rfc822_write_address imap_scanmailbox imap_search imap_setflag_full imap_sort imap_status imap_subscribe imap_uid imap_undelete
+imap_unsubscribe implode intval in_array iptcparse isset is_array is_dir is_double is_executable is_file is_float is_int is_integer is_link is_long is_object is_readable
+is_real is_string is_writeable
+JDDayOfWeek JDMonthName JDToFrench JDToGregorian JDToJewish JDToJulian JewishToJD join JulianToJD
+key krsort ksort
+ldap_add ldap_bind ldap_close ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry
+ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_values ldap_get_values_len ldap_list ldap_modify ldap_mod_add ldap_mod_del ldap_mod_replace
+ldap_next_attribute ldap_next_entry ldap_read ldap_search ldap_unbind leak link linkinfo list Log Log10 lstat ltrim
+mail max mcal_close mcal_date_compare mcal_date_valid mcal_days_in_month mcal_day_of_week mcal_day_of_year mcal_delete_event mcal_event_init mcal_event_set_alarm
+mcal_event_set_category mcal_event_set_class mcal_event_set_description mcal_event_set_end mcal_event_set_recur_daily mcal_event_set_recur_monthly_mday
+mcal_event_set_recur_monthly_wday mcal_event_set_recur_weekly mcal_event_set_recur_yearly mcal_event_set_start mcal_event_set_title mcal_fetch_current_stream_event
+mcal_fetch_event mcal_is_leap_year mcal_list_alarms mcal_list_events mcal_next_recurrence mcal_open mcal_snooze mcal_store_event mcal_time_valid mcrypt_cbc mcrypt_cfb
+mcrypt_create_iv mcrypt_ecb mcrypt_get_block_size mcrypt_get_cipher_name mcrypt_get_key_size mcrypt_ofb md5 Metaphone mhash mhash_count mhash_get_block_size
+mhash_get_hash_name microtime min mkdir mktime Modifiers msql msql_affected_rows msql_close msql_connect msql_createdb msql_create_db msql_data_seek msql_dbname
+msql_dropdb msql_drop_db msql_error msql_fetch_array msql_fetch_field msql_fetch_object msql_fetch_row msql_fieldflags msql_fieldlen msql_fieldname msql_fieldtable
+msql_fieldtype msql_field_seek msql_freeresult msql_free_result msql_listdbs msql_listfields msql_listtables msql_list_dbs msql_list_fields msql_list_tables msql_numfields
+msql_numrows msql_num_fields msql_num_rows msql_pconnect msql_query msql_regcase msql_result msql_selectdb msql_select_db msql_tablename mssql_close mssql_connect
+mssql_data_seek mssql_fetch_array mssql_fetch_field mssql_fetch_object mssql_fetch_row mssql_field_seek mssql_free_result mssql_num_fields mssql_num_rows mssql_pconnect
+mssql_query mssql_result mssql_select_db mt_getrandmax mt_rand mt_srand mysql_affected_rows mysql_change_user mysql_close mysql_connect mysql_create_db mysql_data_seek
+mysql_db_query mysql_drop_db mysql_errno mysql_error mysql_fetch_array mysql_fetch_field mysql_fetch_lengths mysql_fetch_object mysql_fetch_row mysql_field_flags
+mysql_field_len mysql_field_name mysql_field_seek mysql_field_table mysql_field_type mysql_free_result mysql_insert_id mysql_list_dbs mysql_list_fields mysql_list_tables
+mysql_num_fields mysql_num_rows mysql_pconnect mysql_query mysql_result mysql_select_db mysql_tablename
+next nl2br number_format
+OCIBindByName OCIColumnIsNULL OCIColumnName OCIColumnSize OCIColumnType OCICommit OCIDefineByName OCIError OCIExecute OCIFetch OCIFetchInto OCIFetchStatement OCIFreeCursor
+OCIFreeStatement OCIInternalDebug OCILogOff OCILogon OCINewCursor OCINewDescriptor OCINLogon OCINumCols OCIParse OCIPLogon OCIResult OCIRollback OCIRowCount OCIServerVersion
+OCIStatementType OctDec odbc_autocommit odbc_binmode odbc_close odbc_close_all odbc_commit odbc_connect odbc_cursor odbc_do odbc_exec odbc_execute odbc_fetch_into
+odbc_fetch_row odbc_field_len odbc_field_name odbc_field_type odbc_free_result odbc_longreadlen odbc_num_fields odbc_num_rows odbc_pconnect odbc_prepare odbc_result
+odbc_result_all odbc_rollback odbc_setoption opendir openlog Ora_Bind Ora_Close Ora_ColumnName Ora_ColumnType Ora_Commit Ora_CommitOff Ora_CommitOn Ora_Error Ora_ErrorCode
+Ora_Exec Ora_Fetch Ora_GetColumn Ora_Logoff Ora_Logon Ora_Open Ora_Parse Ora_Rollback Ord
+pack parse_str parse_url passthru Pattern Pattern pclose pdf_add_annotation PDF_add_outline PDF_arc PDF_begin_page PDF_circle PDF_clip PDF_close PDF_closepath
+PDF_closepath_fill_stroke PDF_closepath_stroke PDF_close_image PDF_continue_text PDF_curveto PDF_endpath PDF_end_page PDF_execute_image PDF_fill PDF_fill_stroke
+PDF_get_info PDF_lineto PDF_moveto PDF_open PDF_open_gif PDF_open_jpeg PDF_open_memory_image PDF_place_image PDF_put_image PDF_rect PDF_restore PDF_rotate PDF_save
+PDF_scale PDF_setdash PDF_setflat PDF_setgray PDF_setgray_fill PDF_setgray_stroke PDF_setlinecap PDF_setlinejoin PDF_setlinewidth PDF_setmiterlimit PDF_setrgbcolor
+PDF_setrgbcolor_fill PDF_setrgbcolor_stroke PDF_set_char_spacing PDF_set_duration PDF_set_font PDF_set_horiz_scaling PDF_set_info_author PDF_set_info_creator
+PDF_set_info_keywords PDF_set_info_subject PDF_set_info_title PDF_set_leading PDF_set_text_matrix PDF_set_text_pos PDF_set_text_rendering PDF_set_text_rise
+PDF_set_transition PDF_set_word_spacing PDF_show PDF_show_xy PDF_stringwidth PDF_stroke PDF_translate pfsockopen pg_Close pg_cmdTuples pg_Connect pg_DBname
+pg_ErrorMessage pg_Exec pg_Fetch_Array pg_Fetch_Object pg_Fetch_Row pg_FieldIsNull pg_FieldName pg_FieldNum pg_FieldPrtLen pg_FieldSize pg_FieldType pg_FreeResult
+pg_GetLastOid pg_Host pg_loclose pg_locreate pg_loopen pg_loread pg_loreadall pg_lounlink pg_lowrite pg_NumFields pg_NumRows pg_Options pg_pConnect pg_Port pg_Result
+pg_tty phpinfo phpversion pi popen pos posix_ctermid posix_getcwd posix_getegid posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups posix_getlogin
+posix_getpgid posix_getpgrp posix_getpid posix_getppid posix_getpwnam posix_getpwuid posix_getrlimit posix_getuid posix_isatty posix_kill posix_mkfifo posix_setgid
+posix_setpgid posix_setsid posix_setsid posix_setuid posix_times posix_ttyname posix_uname pow preg_grep preg_match preg_match_all preg_quote preg_replace preg_split
+prev print printf putenv
+quoted_printable_decode QuoteMeta
+rand range rawurldecode rawurlencode readdir readfile readgzfile readlink recode_file recode_string register_shutdown_function rename reset rewind rewinddir rmdir round rsort
+sem_acquire sem_get sem_release serialize session_decode session_destroy session_encode session_id session_is_registered session_module_name session_name session_register
+session_save_path session_start session_unregister setcookie setlocale settype set_file_buffer set_magic_quotes_runtime set_socket_blocking set_time_limit shm_attach
+shm_detach shm_get_var shm_put_var shm_remove shm_remove_var shuffle similar_text Sin sizeof sleep snmpget snmpset snmpwalk snmpwalkoid snmp_get_quick_print
+snmp_set_quick_print solid_close solid_connect solid_exec solid_fetchrow solid_fieldname solid_fieldnum solid_freeresult solid_numfields solid_numrows solid_result sort
+soundex split sprintf sql_regcase Sqrt srand stat strcasecmp strchr strcmp strcspn strftime StripCSlashes StripSlashes strip_tags stristr strlen strpos strrchr strrev strrpos
+strspn strstr strtok strtolower strtoupper strtr strval str_repeat str_replace substr substr_replac sybase_affected_rows sybase_close sybase_connect sybase_data_seek
+sybase_fetch_array sybase_fetch_field sybase_fetch_object sybase_fetch_row sybase_field_seek sybase_free_result sybase_num_fields sybase_num_rows sybase_pconnect sybase_query
+sybase_result sybase_select_db symlink Syntax syslog system
+Tan tempnam time touch trim
+uasort ucfirst ucwords uksort umask uniqid unlink unpack unserialize unset urldecode urlencode usleep usort utf8_decode utf8_encode
+virtual vm_addalias vm_adduser vm_delalias vm_deluser vm_passwd
+wddx_add_vars wddx_deserialize wddx_packet_end wddx_packet_start wddx_serialize_value wddx_serialize_vars
+xml_error_string xml_get_current_byte_index xml_get_current_column_number xml_get_current_line_number xml_get_error_code xml_parse xml_parser_create xml_parser_free
+xml_parser_get_option xml_parser_set_option xml_set_character_data_handler xml_set_default_handler xml_set_element_handler xml_set_external_entity_ref_handler
+xml_set_notation_decl_handler xml_set_object xml_set_processing_instruction_handler xml_set_unparsed_entity_decl_handler
+yp_errno yp_err_string yp_first yp_get_default_domain yp_master yp_match yp_next yp_order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Perl.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Perl.syn
new file mode 100644
index 0000000..6f5e71b
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Perl.syn
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -A -B -C -M -O -R -S -T -W -X -b -c -d -e -f -g -k -l -o -p -r -s -t -u -w -x -z __DATA__ __END__ __FILE__ __LINE__ continue do else elsif for foreach goto if last local my next no our package redo return require sub until unless use while
+
+
+
+
+ accept alarm atan2 bind binmode bless caller chdir chmod chomp chop chown chr chroot close closedir connect cos crypt dbmclose dbmopen defined delete die dump each endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exit exp exists fcntl fileno flock fork formline format getc getgrent getgrgid getgrname gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime grep hex index int ioctl join keys kill lc lcfirst length link listen localtime log lstat map mkdir msgctl msgget msgrcv msgsnd new oct open opendir ord pack pipe pop pos print printf push quotemeta rand read readdir readline readlink recv ref rename reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl semgett semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study substr symlink syscall sysopen sysread system syswrite tell telldir tie tied time times truncate uc ucfirst umask undef unlink unpack unshift utime untie values vec wait waitpid wantarray warn write
+
+
+
+
+ AUTOLOAD and BEGIN CORE cmp DESTROY eq END ge gt le lt ne not m or q qq qw qx SUPER s tr UNIVERSAL x xor y
+
+
+
+
+ $@ @
+
+
+
+
+
+
+
+
+
+
+ ~ ! % " & * ( ) + = | \ / { } [ ] : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Povray.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Povray.syn
new file mode 100644
index 0000000..2b565ee
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Povray.syn
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ abs absorption acos acosh adaptive adc_bailout agate agate_turb all alpha ambient ambient_light angle aperture append arc_angle area_light array asc asin asinh assumed_gamma atan atan2 atanh average background bezier_spline bicubic_patch black_hole blob blue blur_samples bounded_by box boxed bozo break brick brick_size brightness brilliance bumps bump_map bump_size camera case caustics ceil checker chr clipped_by clock clock_delta color color_map colour colour_map component composite concat cone confidence conic_sweep control0 control1 cos cosh count crackle crand cube cubic cubic_spline cubic_wave cylinder cylindrical debug declare default defined degrees density density_file density_map dents difference diffuse dimensions dimension_size direction disc distance distance_maximum div eccentricity else emission end error error_bound exp extinction fade_distance fade_power falloff falloff_angle false fclose file_exists filter finish fisheye flatness flip floor focal_point fog fog_alt fog_offset fog_type fopen frequency gif global_settings gradient granite gray_threshold green height_field hexagon hf_gray_16 hierarchy hollow hypercomplex if ifdef iff ifndef image_map include int interior interpolate intersection intervals inverse ior irid irid_wavelength jitter julia_fractal lambda lathe leopard light_source linear_spline linear_sweep local location log looks_like look_at low_error_factor macro mandel map_type marble material material_map matrix max max_intersections max_iteration max_trace_level media media_attenuation media_interaction merge mesh metallic min minimum_reuse mod mortar nearest_count no normal normal_map no_shadow number_of_waves object octaves off offset omega omnimax on once onion open orthographic panoramic perspective pgm phase phong phong_size pi pigment pigment_map planar plane png point_at poly polygon poly_wave pot pow ppm precision prism pwr quadratic_spline quadric quartic quaternion quick_color quick_colour quilted radial radians radiosity radius rainbow ramp_wave rand range ratio read reciprocal recursion_limit red reflection reflection_exponent refraction render repeat rgb rgbf rgbft rgbt right ripples rotate roughness samples scale scallop_wave scattering seed shadowless sin sine_wave sinh sky sky_sphere slice slope_map smooth smooth_triangle sor specular sphere spherical spiral1 spiral2 spotlight spotted sqr sqrt statistics str strcmp strength strlen strlwr strupr sturm substr superellipsoid switch sys t tan tanh text texture texture_map tga thickness threshold tightness tile2 tiles torus track transform translate transmit triangle triangle_wave true ttf turbulence turb_depth type u ultra_wide_angle undef union up use_color use_colour use_index u_steps v val variance vaxis_rotate vcross vdot version vlength vnormalize vrotate v_steps warning warp water_level waves while width wood wrinkles write x y yes z
+
+
+
+
+ <>
+
+
+
+
+ { }
+
+
+
+
+ < >
+
+
+
+
+
+
+
+
+
+
+ < > # ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Python.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Python.syn
new file mode 100644
index 0000000..92763c3
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Python.syn
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ and assert break class continue def del elif else except exec finally for from global if import in is lambda map not None or pass print raise range return try while
+
+
+
+
+ abs apply callable chr cmp coerce compile complex delattr dir divmod eval execfile filter float getattr globals group hasattr hash hex id input int intern isinstance issubclass joinfields len list local long max min match oct open ord pow raw_input reduce reload repr round search setattr slice str splitfields tuple type vars xrange __import__
+
+
+
+
+ __abs__ __add__ __and__ __call__ __cmp__ __coerce__ __del__ __delattr__ __delitem__ __delslice__ __div__ __divmod__ __float__ __getattr__ __getitem__ __getslice__ __hash__ __hex__ __invert__ __int__ __init__ __len__ __long__ __lshift__ __mod__ __mul__ __neg__ __nonzero__ __oct__ __or__ __pos__ __pow__ __radd__ __rdiv__ __rdivmod__ __rmod__ __rpow__ __rlshift__ __rrshift__ __rshift__ __rsub__ __rmul__ __repr__ __rand__ __rxor__ __ror__ __setattr__ __setitem__ __setslice__ __str__ __sub__ __xor__
+
+
+
+
+ __bases__ __class__ __dict__ __methods__ __members__ __name__ __version__
+
+
+
+
+ ArithmeticError AssertionError AttributeError EOFError Exception FloatingPointError IOError ImportError IndexError KeyError KeyboardInterrupt LookupError MemoryError NameError OverflowError RuntimeError StandardError SyntaxError SystemError SystemExit TypeError ValueError ZeroDivisionError
+
+
+
+
+ AST BaseHTTPServer Bastion cmd commands compileall copy CGIHTTPServer Complex dbhash dircmp dis dospath dumbdbm emacs find fmt fnmatch ftplib getopt glob gopherlib grep htmllib httplib ihooks imghdr linecache lockfile macpath macurl2path mailbox mailcap mimetools mimify mutex math Mimewriter newdir ni nntplib ntpath nturl2path os ospath pdb pickle pipes poly popen2 posixfile posixpath profile pstats pyclbr Para quopri Queue rand random regex regsub rfc822 sched sgmllib shelve site sndhdr string sys snmp SimpleHTTPServer StringIO SocketServer tb tempfile toaiff token tokenize traceback tty types tzparse Tkinter urllib urlparse util uu UserDict UserList wave whatsound whichdb whrandom xdrlib zmod
+
+
+
+
+ array fnmatch struct self
+
+
+
+
+
+
+
+
+
+
+ [ ] { } ( ) < > = " ' . , : +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer2K_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer2K_SQL.syn
new file mode 100644
index 0000000..3086e95
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer2K_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action add all alter and any as asc authorization avg backup begin between break browse bulk by cascade case check checkpoint close clustered coalesce collate column commit committed compute confirm constraint contains containstable continue controlrow convert count create cross current current_date current_time current_timestamp current_user cursor database dbcc deallocate declare default delete deny desc disable disk distinct distributed double drop dummy dump else enable end errlvl errorexit escape except exec execute exists exit fetch file fillfactor floppy for foreign forward_only freetext freetexttable from full function goto grant group having holdlock identity identity_insert identitycol if in index inner insert intersect into is isolation join key kill left level like lineno load mirrorexit move national no nocheck nonclustered not nounload null nullif of off offsets on once only open opendatasource openquery openrowset option or order outer over percent perm permanent pipe plan precision prepare primary print privileges proc procedure processexit public raiserror read readtext read_only reconfigure recovery references repeatable replication restore restrict return returns revoke right rollback rowcount rowguidcol rule save schema select serializable session_user set setuser shutdown some statistics stats system_user table tape temp temporary textsize then to top tran transaction trigger truncate tsequal uncommitted union unique update updatetext use user values varying view waitfor when where while with work writetext nocount count
+
+
+
+
+
+
+ bigint binary bit char character datetime dec decimal float image int integer money nchar ntext numeric nvarchar real smalldatetime smallint smallmoney sql_variant sysname text timestamp tinyint uniqueidentifier varbinary varchar
+
+
+
+
+ sp_abort_xact sp_add_agent_parameter sp_add_agent_profile sp_add_server_sortinfo sp_addalias sp_addapprole sp_addarticle sp_adddistpublisher sp_adddistributiondb sp_adddistributor sp_addextendedproc sp_addgroup sp_addlinkedserver sp_addlinkedsrvlogin sp_addlogin sp_addmergearticle sp_addmergefilter sp_addmergepublication sp_addmergepullsubscription sp_addmergepullsubscription_agent sp_addmergesubscription sp_addmessage sp_addpublication sp_addpublication_snapshot sp_addpublisher sp_addpullsubscription sp_addpullsubscription_agent sp_addremotelogin sp_addrole sp_addrolemember sp_addserver sp_addsrvrolemember sp_addsubscriber sp_addsubscriber_schedule sp_addsubscription sp_addsynctriggers sp_addtype sp_addumpdevice sp_adduser sp_altermessage sp_approlepassword sp_article_validation sp_articlecolumn sp_articlefilter sp_articlesynctranprocs sp_articleview sp_attach_db sp_attach_single_file_db sp_autostats sp_bindefault sp_bindrule sp_bindsession sp_blockcnt sp_catalogs sp_catalogs_rowset sp_certify_removable sp_change_subscription_properties sp_change_users_login sp_changearticle sp_changedbowner sp_changedistpublisher sp_changedistributiondb sp_changedistributor_password sp_changedistributor_property sp_changegroup sp_changemergearticle sp_changemergefilter sp_changemergepublication sp_changemergepullsubscription sp_changemergesubscription sp_changeobjectowner sp_changepublication sp_changesubscriber sp_changesubscriber_schedule sp_changesubscription sp_changesubstatus sp_check_for_sync_trigger sp_check_removable sp_check_removable_sysusers sp_check_sync_trigger sp_checknames sp_cleanupwebtask sp_column_privileges sp_column_privileges_ex sp_column_privileges_rowset sp_columns sp_columns_ex sp_columns_rowset sp_commit_xact sp_configure sp_create_removable sp_createorphan sp_createstats sp_cursor sp_cursor_list sp_cursorclose sp_cursorexecute sp_cursorfetch sp_cursoropen sp_cursoroption sp_cursorprepare sp_cursorunprepare sp_databases sp_datatype_info sp_db_upgrade sp_dbcmptlevel sp_dbfixedrolepermission sp_dboption sp_dbremove sp_ddopen sp_defaultdb sp_defaultlanguage sp_deletemergeconflictrow sp_denylogin sp_depends sp_describe_cursor sp_describe_cursor_columns sp_describe_cursor_tables sp_detach_db sp_diskdefault sp_distcounters sp_drop_agent_parameter sp_drop_agent_profile sp_dropalias sp_dropapprole sp_droparticle sp_dropdevice sp_dropdistpublisher sp_dropdistributiondb sp_dropdistributor sp_dropextendedproc sp_dropgroup sp_droplinkedsrvlogin sp_droplogin sp_dropmergearticle sp_dropmergefilter sp_dropmergepublication sp_dropmergepullsubscription sp_dropmergesubscription sp_dropmessage sp_droporphans sp_droppublication sp_droppublisher sp_droppullsubscription sp_dropremotelogin sp_droprole sp_droprolemember sp_dropserver sp_dropsrvrolemember sp_dropsubscriber sp_dropsubscription sp_droptype sp_dropuser sp_dropwebtask sp_dsninfo sp_enumcodepages sp_enumcustomresolvers sp_enumdsn sp_enumfullsubscribers sp_enumoledbdatasources sp_execute sp_executesql sp_fallback_MS_sel_fb_svr sp_fetchshowcmdsinput sp_fixindex sp_fkeys sp_foreign_keys_rowset sp_foreignkeys sp_fulltext_catalog sp_fulltext_column sp_fulltext_database sp_fulltext_getdata sp_fulltext_service sp_fulltext_table sp_generatefilters sp_get_distributor sp_getarticlepkcolbitmap sp_getbindtoken sp_GetMBCSCharLen sp_getmergedeletetype sp_gettypestring sp_grant_publication_access sp_grantdbaccess sp_grantlogin sp_help sp_help_agent_default sp_help_agent_parameter sp_help_agent_profile sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor sp_help_fulltext_columns sp_help_fulltext_columns_cursor sp_help_fulltext_tables sp_help_fulltext_tables_cursor sp_help_publication_access sp_helpallowmerge_publication sp_helparticle sp_helparticlecolumns sp_helpconstraint sp_helpdb sp_helpdbfixedrole sp_helpdevice sp_helpdistpublisher sp_helpdistributiondb sp_helpdistributor sp_helpdistributor_properties sp_helpextendedproc sp_helpfile sp_helpfilegroup sp_helpgroup sp_helpindex sp_helplanguage sp_helplog sp_helplogins sp_helpmergearticle sp_helpmergearticleconflicts sp_helpmergeconflictrows sp_helpmergedeleteconflictrows sp_helpmergefilter sp_helpmergepublication sp_helpmergepullsubscription sp_helpmergesubscription sp_helpntgroup sp_helppublication sp_helppublication_snapshot sp_helppublicationsync sp_helppullsubscription sp_helpremotelogin sp_helpreplicationdb sp_helpreplicationdboption sp_helpreplicationoption sp_helprole sp_helprolemember sp_helprotect sp_helpserver sp_helpsort sp_helpsql sp_helpsrvrole sp_helpsrvrolemember sp_helpstartup sp_helpsubscriber sp_helpsubscriberinfo sp_helpsubscription sp_helpsubscription_properties sp_helptext sp_helptrigger sp_helpuser sp_indexes sp_indexes_rowset sp_indexoption sp_isarticlecolbitset sp_IsMBCSLeadByte sp_link_publication sp_linkedservers sp_linkedservers_rowset sp_lock sp_lockinfo sp_logdevice sp_makestartup sp_makewebtask sp_mergedummyupdate sp_mergesubscription_cleanup sp_mergesubscriptioncleanup sp_monitor sp_MS_marksystemobject sp_MS_replication_installed sp_MS_upd_sysobj_category sp_MSactivate_auto_sub sp_MSadd_distributor_alerts_and_responses sp_MSadd_mergereplcommand sp_MSadd_repl_job sp_MSaddanonymousreplica sp_MSaddarticletocontents sp_MSaddexecarticle sp_MSaddguidcolumn sp_MSaddguidindex sp_MSaddinitialarticle sp_MSaddinitialpublication sp_MSaddinitialsubscription sp_MSaddlogin_implicit_ntlogin sp_MSaddmergepub_snapshot sp_MSaddmergetriggers sp_MSaddpub_snapshot sp_MSaddpubtocontents sp_MSaddupdatetrigger sp_MSadduser_implicit_ntlogin sp_MSarticlecleanup sp_MSarticletextcol sp_MSbelongs sp_MSchange_priority sp_MSchangearticleresolver sp_MScheck_agent_instance sp_MScheck_uid_owns_anything sp_MScheckatpublisher sp_MScheckexistsgeneration sp_MScheckmetadatamatch sp_MScleanup_subscription sp_MScleanuptask sp_MScontractsubsnb sp_MScreate_dist_tables sp_MScreate_distributor_tables sp_MScreate_mergesystables sp_MScreate_pub_tables sp_MScreate_replication_checkup_agent sp_MScreate_replication_status_table sp_MScreate_sub_tables sp_MScreateglobalreplica sp_MScreateretry sp_MSdbuseraccess sp_MSdbuserpriv sp_MSdeletecontents sp_MSdeletepushagent sp_MSdeleteretry sp_MSdelrow sp_MSdelsubrows sp_MSdependencies sp_MSdoesfilterhaveparent sp_MSdrop_6x_replication_agent sp_MSdrop_distributor_alerts_and_responses sp_MSdrop_mergesystables sp_MSdrop_object sp_MSdrop_pub_tables sp_MSdrop_replcom sp_MSdrop_repltran sp_MSdrop_rladmin sp_MSdrop_rlcore sp_MSdrop_rlrecon sp_MSdroparticleprocs sp_MSdroparticletombstones sp_MSdroparticletriggers sp_MSdropconstraints sp_MSdropmergepub_snapshot sp_MSdropretry sp_MSdummyupdate sp_MSenum_replication_agents sp_MSenum_replication_job sp_MSenum3rdpartypublications sp_MSenumallpublications sp_MSenumchanges sp_MSenumcolumns sp_MSenumdeletesmetadata sp_MSenumgenerations sp_MSenummergepublications sp_MSenumpartialchanges sp_MSenumpartialdeletes sp_MSenumpubreferences sp_MSenumreplicas sp_MSenumretries sp_MSenumschemachange sp_MSenumtranpublications sp_MSexists_file sp_MSexpandbelongs sp_MSexpandnotbelongs sp_MSexpandsubsnb sp_MSfilterclause sp_MSflush_access_cache sp_MSflush_command sp_MSforeach_worker sp_MSforeachdb sp_MSforeachtable sp_MSgen_sync_tran_procs sp_MSgenreplnickname sp_MSgentablenickname sp_MSget_col_position sp_MSget_colinfo sp_MSget_oledbinfo sp_MSget_publisher_rpc sp_MSget_qualifed_name sp_MSget_synctran_commands sp_MSget_type sp_MSgetalertinfo sp_MSgetchangecount sp_MSgetconflictinsertproc sp_MSgetlastrecgen sp_MSgetlastsentgen sp_MSgetonerow sp_MSgetreplicainfo sp_MSgetreplnick sp_MSgetrowmetadata sp_MSguidtostr sp_MShelp_distdb sp_MShelp_replication_status sp_MShelpcolumns sp_MShelpfulltextindex sp_MShelpindex sp_MShelpmergearticles sp_MShelpobjectpublications sp_MShelptype sp_MSIfExistsRemoteLogin sp_MSindexcolfrombin sp_MSindexspace sp_MSinit_replication_perfmon sp_MSinsertcontents sp_MSinsertdeleteconflict sp_MSinsertgenhistory sp_MSinsertschemachange sp_MSis_col_replicated sp_MSis_pk_col sp_MSkilldb sp_MSload_replication_status sp_MSlocktable sp_MSloginmappings sp_MSmakearticleprocs sp_MSmakeconflictinsertproc sp_MSmakeexpandproc sp_MSmakegeneration sp_MSmakeinsertproc sp_MSmakejoinfilter sp_MSmakeselectproc sp_MSmakesystableviews sp_MSmaketempinsertproc sp_MSmakeupdateproc sp_MSmakeviewproc sp_MSmaptype sp_MSmark_proc_norepl sp_MSmatchkey sp_MSmergepublishdb sp_MSmergesubscribedb sp_MSobjectprivs sp_MSpad_command sp_MSproxiedmetadata sp_MSpublicationcleanup sp_MSpublicationview sp_MSpublishdb sp_MSrefcnt sp_MSregistersubscription sp_MSreinit_failed_subscriptions sp_MSrepl_addrolemember sp_MSrepl_dbrole sp_MSrepl_droprolemember sp_MSrepl_encrypt sp_MSrepl_linkedservers_rowset sp_MSrepl_startup sp_MSreplcheck_connection sp_MSreplcheck_publish sp_MSreplcheck_pull sp_MSreplcheck_subscribe sp_MSreplicationcompatlevel sp_MSreplrole sp_MSreplsup_table_has_pk sp_MSscript_beginproc sp_MSscript_begintrig1 sp_MSscript_begintrig2 sp_MSscript_delete_statement sp_MSscript_dri sp_MSscript_endproc sp_MSscript_endtrig sp_MSscript_insert_statement sp_MSscript_multirow_trigger sp_MSscript_params sp_MSscript_security sp_MSscript_singlerow_trigger sp_MSscript_sync_del_proc sp_MSscript_sync_del_trig sp_MSscript_sync_ins_proc sp_MSscript_sync_ins_trig sp_MSscript_sync_upd_proc sp_MSscript_sync_upd_trig sp_MSscript_trigger_assignment sp_MSscript_trigger_exec_rpc sp_MSscript_trigger_fetch_statement sp_MSscript_trigger_update_checks sp_MSscript_trigger_updates sp_MSscript_trigger_variables sp_MSscript_update_statement sp_MSscript_where_clause sp_MSscriptdatabase sp_MSscriptdb_worker sp_MSsetaccesslist sp_MSsetalertinfo sp_MSsetartprocs sp_MSsetbit sp_MSsetconflictscript sp_MSsetconflicttable sp_MSsetfilteredstatus sp_MSsetfilterparent sp_MSsetlastrecgen sp_MSsetlastsentgen sp_MSsetreplicainfo sp_MSsetreplicastatus sp_MSsetrowmetadata sp_MSsettopology sp_MSsetupbelongs sp_MSSQLDMO70_version sp_MSSQLOLE_version sp_MSSQLOLE65_version sp_MSsubscribedb sp_MSsubscriptions sp_MSsubscriptionvalidated sp_MSsubsetpublication sp_MStable_has_unique_index sp_MStable_not_modifiable sp_MStablechecks sp_MStablekeys sp_MStablenamefromnick sp_MStablenickname sp_MStablerefs sp_MStablespace sp_MStestbit sp_MStextcolstatus sp_MSunc_to_drive sp_MSuniquecolname sp_MSuniquename sp_MSuniqueobjectname sp_MSuniquetempname sp_MSunmarkreplinfo sp_MSunregistersubscription sp_MSupdate_agenttype_default sp_MSupdate_replication_status sp_MSupdatecontents sp_MSupdategenhistory sp_MSupdateschemachange sp_MSupdatesysmergearticles sp_msupg_createcatalogcomputedcols sp_msupg_dosystabcatalogupgrades sp_msupg_dropcatalogcomputedcols sp_msupg_recreatecatalogfaketables sp_msupg_recreatesystemviews sp_msupg_removesystemcomputedcolumns sp_msupg_upgradecatalog sp_MSuplineageversion sp_MSvalidatearticle sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop sp_objectfilegroup sp_oledbinfo sp_password sp_pkeys sp_prepare sp_primary_keys_rowset sp_primarykeys sp_probe_xact sp_procedure_params_rowset sp_procedures_rowset sp_processinfo sp_processmail sp_procoption sp_provider_types_rowset sp_publication_validation sp_publishdb sp_recompile sp_refreshsubscriptions sp_refreshview sp_reinitmergepullsubscription sp_reinitmergesubscription sp_reinitpullsubscription sp_reinitsubscription sp_remoteoption sp_remove_tempdb_file sp_remove_xact sp_removedbreplication sp_removesrvreplication sp_rename sp_renamedb sp_replcmds sp_replcounters sp_repldone sp_replflush sp_replica sp_replication_agent_checkup sp_replicationdboption sp_replicationoption sp_replincrementlsn sp_replpostcmd sp_replsetoriginator sp_replshowcmds sp_replsync sp_repltrans sp_replupdateschema sp_reset_connection sp_revoke_publication_access sp_revokedbaccess sp_revokelogin sp_runwebtask sp_scan_xact sp_schemata_rowset sp_script_synctran_commands sp_scriptdelproc sp_scriptinsproc sp_scriptmappedupdproc sp_scriptpkwhereclause sp_scriptupdateparams sp_scriptupdproc sp_sdidebug sp_sem_start_mail sp_server_info sp_serveroption sp_setapprole sp_setnetname sp_spaceused sp_special_columns sp_sproc_columns sp_sqlexec sp_sqlregister sp_srvrolepermission sp_start_xact sp_stat_xact sp_statistics sp_statistics_rowset sp_stored_procedures sp_subscribe sp_subscription_cleanup sp_subscriptioncleanup sp_table_privileges sp_table_privileges_ex sp_table_privileges_rowset sp_table_validation sp_tableoption sp_tables sp_tables_ex sp_tables_info_rowset sp_tables_rowset sp_tempdbspace sp_unbindefault sp_unbindrule sp_unmakestartup sp_unprepare sp_unsubscribe sp_updatestats sp_user_counter1 sp_user_counter10 sp_user_counter2 sp_user_counter3 sp_user_counter4 sp_user_counter5 sp_user_counter6 sp_user_counter7 sp_user_counter8 sp_user_counter9 sp_validatelogins sp_validlang sp_validname sp_who sp_who2 spt_committab spt_datatype_info spt_datatype_info_ext spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor spt_provider_types spt_server_info spt_values xp_availablemedia xp_check_query_results xp_cleanupwebtask xp_cmdshell xp_deletemail xp_dirtree xp_displayparamstmt xp_dropwebtask xp_dsninfo xp_enum_activescriptengines xp_enum_oledb_providers xp_enumcodepages xp_enumdsn xp_enumerrorlogs xp_enumgroups xp_eventlog xp_execresultset xp_fileexist xp_findnextmsg xp_fixeddrives xp_get_mapi_default_profile xp_get_mapi_profiles xp_get_tape_devices xp_getfiledetails xp_getnetname xp_grantlogin xp_initcolvs xp_intersectbitmaps xp_load_dummy_handlers xp_logevent xp_loginconfig xp_logininfo xp_makewebtask xp_mergexpusage xp_msver xp_msx_enlist xp_ntsec_enumdomains xp_ntsec_enumgroups xp_ntsec_enumusers xp_oledbinfo xp_param_dump xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_printstatements xp_proxiedmetadata xp_qv xp_readerrorlog xp_readmail xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regremovemultistring xp_regwrite xp_revokelogin xp_runwebtask xp_sendmail xp_servicecontrol xp_showcolv xp_showlineage xp_snmp_getstate xp_snmp_raisetrap xp_sprintf xp_sqlagent_enum_jobs xp_sqlagent_is_starting xp_sqlagent_monitor xp_sqlagent_notify xp_sqlinventory xp_sqlmaint xp_sqlregister xp_sqltrace xp_sscanf xp_startmail xp_stopmail xp_subdirs xp_terminate_process xp_test_mapi_profile xp_trace_addnewqueue xp_trace_deletequeuedefinition xp_trace_destroyqueue xp_trace_enumqueuedefname xp_trace_enumqueuehandles xp_trace_eventclassrequired xp_trace_flushqueryhistory xp_trace_generate_event xp_trace_getappfilter xp_trace_getconnectionidfilter xp_trace_getcpufilter xp_trace_getdbidfilter xp_trace_getdurationfilter xp_trace_geteventfilter xp_trace_geteventnames xp_trace_getevents xp_trace_gethostfilter xp_trace_gethpidfilter xp_trace_getindidfilter xp_trace_getntdmfilter xp_trace_getntnmfilter xp_trace_getobjidfilter xp_trace_getqueueautostart xp_trace_getqueuecreateinfo xp_trace_getqueuedestination xp_trace_getqueueproperties xp_trace_getreadfilter xp_trace_getserverfilter xp_trace_getseverityfilter xp_trace_getspidfilter xp_trace_gettextfilter xp_trace_getuserfilter xp_trace_getwritefilter xp_trace_loadqueuedefinition xp_trace_opentracefile xp_trace_pausequeue xp_trace_restartqueue xp_trace_savequeuedefinition xp_trace_setappfilter xp_trace_setconnectionidfilter xp_trace_setcpufilter xp_trace_setdbidfilter xp_trace_setdurationfilter xp_trace_seteventclassrequired xp_trace_seteventfilter xp_trace_sethostfilter xp_trace_sethpidfilter xp_trace_setindidfilter xp_trace_setntdmfilter xp_trace_setntnmfilter xp_trace_setobjidfilter xp_trace_setqueryhistory xp_trace_setqueueautostart xp_trace_setqueuecreateinfo xp_trace_setqueuedestination xp_trace_setreadfilter xp_trace_setserverfilter xp_trace_setseverityfilter xp_trace_setspidfilter xp_trace_settextfilter xp_trace_setuserfilter xp_trace_setwritefilter xp_trace_startconsumer xp_trace_toeventlogconsumer xp_trace_tofileconsumer xp_unc_to_drive xp_unload_dummy_handlers xp_updatecolvbm xp_updatelineage xp_varbintohexstr xp_writesqlinfo
+
+
+
+
+ deleted inserted sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremote_catalogs sysremote_column_privileges sysremote_columns sysremote_foreign_keys sysremote_indexes sysremote_primary_keys sysremote_provider_types sysremote_schemata sysremote_statistics sysremote_table_privileges sysremote_tables sysremote_views sysremotelogins syssegments sysservers systypes sysusers sysxlogins
+
+
+
+
+ connections cpu_busy cursor_rows datefirst dbts error fetch_status identity idle io_busy langid language lock_timeout max_connections max_precision nestlevel options packet_errors packet_received pack_sent patindex procid remserver rowcount servername servicename spid textptr textsize textvalid timeticks total_errors total_read total_write trancount version
+
+
+
+
+ abs acos app_name ascii asin atan atn2 avg binary_checksum case cast ceiling charindex checksum checksum_agg coalesce collationproperty col_length col_name columns_updated columnproperty convert cos cot count count_big current_timestamp current_user cursor_status databaseproperty databasepropertyex datalength dateadd datediff datename datepart day db_id db_name degrees difference exp file_id file_name filegroup_id filegroup_name filegroupproperty fileproperty floor fn_helpcollations fn_listextendedproperty fn_servershareddrives fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable fn_virtualfilestats formatmessage fulltextcatalogproperty fulltextserviceproperty getansinull getdate getutcdate grouping has_dbaccess host_id host_name ident_current ident_incr ident_seed index_col indexkey_property indexproperty is_member is_srvrolemember isdate isnull isnumeric left len log log10 lower ltrim max min month newid nullif object_id object_name objectproperty parsename patindex permissions pi power quotename radians rand replace replicate reverse right round rowcount_big rtrim scope_identity serverproperty sessionproperty session_user sign sin soundex space sqare sql_variant_property sqrt stats_date stdev stdevp str stuff substring sum suser_sid suser_sname system_user tan typeproperty unicode upper user_id user_name var varp year
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer7_SQL.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer7_SQL.syn
new file mode 100644
index 0000000..87f50ea
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SQLServer7_SQL.syn
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ action add all alter and any as asc authorization avg backup begin between break browse bulk by cascade case check checkpoint close clustered coalesce collate column commit committed compute confirm constraint contains containstable continue controlrow convert count create cross current current_date current_time current_timestamp current_user cursor database dbcc deallocate declare default delete deny desc disable disk distinct distributed double drop dummy dump else enable end errlvl errorexit escape except exec execute exists exit fetch file fillfactor floppy for foreign forward_only freetext freetexttable from full function goto grant group having holdlock identity identity_insert identitycol if in index inner insert intersect into is isolation join key kill left level like lineno load mirrorexit move national no nocheck nonclustered not nounload null nullif of off offsets on once only open opendatasource openquery openrowset option or order outer over percent perm permanent pipe plan precision prepare primary print privileges proc procedure processexit public raiserror read readtext read_only reconfigure recovery references repeatable replication restore restrict return returns revoke right rollback rowcount rowguidcol rule save schema select serializable session_user set setuser shutdown some statistics stats system_user table tape temp temporary textsize then to top tran transaction trigger truncate tsequal uncommitted union unique update updatetext use user values varying view waitfor when where while with work writetext nocount count
+
+
+
+
+
+
+ bigint binary bit char character datetime dec decimal float image int integer money nchar ntext numeric nvarchar real smalldatetime smallint smallmoney sql_variant sysname text timestamp tinyint uniqueidentifier varbinary varchar
+
+
+
+
+ sp_abort_xact sp_add_agent_parameter sp_add_agent_profile sp_add_server_sortinfo sp_addalias sp_addapprole sp_addarticle sp_adddistpublisher sp_adddistributiondb sp_adddistributor sp_addextendedproc sp_addgroup sp_addlinkedserver sp_addlinkedsrvlogin sp_addlogin sp_addmergearticle sp_addmergefilter sp_addmergepublication sp_addmergepullsubscription sp_addmergepullsubscription_agent sp_addmergesubscription sp_addmessage sp_addpublication sp_addpublication_snapshot sp_addpublisher sp_addpullsubscription sp_addpullsubscription_agent sp_addremotelogin sp_addrole sp_addrolemember sp_addserver sp_addsrvrolemember sp_addsubscriber sp_addsubscriber_schedule sp_addsubscription sp_addsynctriggers sp_addtype sp_addumpdevice sp_adduser sp_altermessage sp_approlepassword sp_article_validation sp_articlecolumn sp_articlefilter sp_articlesynctranprocs sp_articleview sp_attach_db sp_attach_single_file_db sp_autostats sp_bindefault sp_bindrule sp_bindsession sp_blockcnt sp_catalogs sp_catalogs_rowset sp_certify_removable sp_change_subscription_properties sp_change_users_login sp_changearticle sp_changedbowner sp_changedistpublisher sp_changedistributiondb sp_changedistributor_password sp_changedistributor_property sp_changegroup sp_changemergearticle sp_changemergefilter sp_changemergepublication sp_changemergepullsubscription sp_changemergesubscription sp_changeobjectowner sp_changepublication sp_changesubscriber sp_changesubscriber_schedule sp_changesubscription sp_changesubstatus sp_check_for_sync_trigger sp_check_removable sp_check_removable_sysusers sp_check_sync_trigger sp_checknames sp_cleanupwebtask sp_column_privileges sp_column_privileges_ex sp_column_privileges_rowset sp_columns sp_columns_ex sp_columns_rowset sp_commit_xact sp_configure sp_create_removable sp_createorphan sp_createstats sp_cursor sp_cursor_list sp_cursorclose sp_cursorexecute sp_cursorfetch sp_cursoropen sp_cursoroption sp_cursorprepare sp_cursorunprepare sp_databases sp_datatype_info sp_db_upgrade sp_dbcmptlevel sp_dbfixedrolepermission sp_dboption sp_dbremove sp_ddopen sp_defaultdb sp_defaultlanguage sp_deletemergeconflictrow sp_denylogin sp_depends sp_describe_cursor sp_describe_cursor_columns sp_describe_cursor_tables sp_detach_db sp_diskdefault sp_distcounters sp_drop_agent_parameter sp_drop_agent_profile sp_dropalias sp_dropapprole sp_droparticle sp_dropdevice sp_dropdistpublisher sp_dropdistributiondb sp_dropdistributor sp_dropextendedproc sp_dropgroup sp_droplinkedsrvlogin sp_droplogin sp_dropmergearticle sp_dropmergefilter sp_dropmergepublication sp_dropmergepullsubscription sp_dropmergesubscription sp_dropmessage sp_droporphans sp_droppublication sp_droppublisher sp_droppullsubscription sp_dropremotelogin sp_droprole sp_droprolemember sp_dropserver sp_dropsrvrolemember sp_dropsubscriber sp_dropsubscription sp_droptype sp_dropuser sp_dropwebtask sp_dsninfo sp_enumcodepages sp_enumcustomresolvers sp_enumdsn sp_enumfullsubscribers sp_enumoledbdatasources sp_execute sp_executesql sp_fallback_MS_sel_fb_svr sp_fetchshowcmdsinput sp_fixindex sp_fkeys sp_foreign_keys_rowset sp_foreignkeys sp_fulltext_catalog sp_fulltext_column sp_fulltext_database sp_fulltext_getdata sp_fulltext_service sp_fulltext_table sp_generatefilters sp_get_distributor sp_getarticlepkcolbitmap sp_getbindtoken sp_GetMBCSCharLen sp_getmergedeletetype sp_gettypestring sp_grant_publication_access sp_grantdbaccess sp_grantlogin sp_help sp_help_agent_default sp_help_agent_parameter sp_help_agent_profile sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor sp_help_fulltext_columns sp_help_fulltext_columns_cursor sp_help_fulltext_tables sp_help_fulltext_tables_cursor sp_help_publication_access sp_helpallowmerge_publication sp_helparticle sp_helparticlecolumns sp_helpconstraint sp_helpdb sp_helpdbfixedrole sp_helpdevice sp_helpdistpublisher sp_helpdistributiondb sp_helpdistributor sp_helpdistributor_properties sp_helpextendedproc sp_helpfile sp_helpfilegroup sp_helpgroup sp_helpindex sp_helplanguage sp_helplog sp_helplogins sp_helpmergearticle sp_helpmergearticleconflicts sp_helpmergeconflictrows sp_helpmergedeleteconflictrows sp_helpmergefilter sp_helpmergepublication sp_helpmergepullsubscription sp_helpmergesubscription sp_helpntgroup sp_helppublication sp_helppublication_snapshot sp_helppublicationsync sp_helppullsubscription sp_helpremotelogin sp_helpreplicationdb sp_helpreplicationdboption sp_helpreplicationoption sp_helprole sp_helprolemember sp_helprotect sp_helpserver sp_helpsort sp_helpsql sp_helpsrvrole sp_helpsrvrolemember sp_helpstartup sp_helpsubscriber sp_helpsubscriberinfo sp_helpsubscription sp_helpsubscription_properties sp_helptext sp_helptrigger sp_helpuser sp_indexes sp_indexes_rowset sp_indexoption sp_isarticlecolbitset sp_IsMBCSLeadByte sp_link_publication sp_linkedservers sp_linkedservers_rowset sp_lock sp_lockinfo sp_logdevice sp_makestartup sp_makewebtask sp_mergedummyupdate sp_mergesubscription_cleanup sp_mergesubscriptioncleanup sp_monitor sp_MS_marksystemobject sp_MS_replication_installed sp_MS_upd_sysobj_category sp_MSactivate_auto_sub sp_MSadd_distributor_alerts_and_responses sp_MSadd_mergereplcommand sp_MSadd_repl_job sp_MSaddanonymousreplica sp_MSaddarticletocontents sp_MSaddexecarticle sp_MSaddguidcolumn sp_MSaddguidindex sp_MSaddinitialarticle sp_MSaddinitialpublication sp_MSaddinitialsubscription sp_MSaddlogin_implicit_ntlogin sp_MSaddmergepub_snapshot sp_MSaddmergetriggers sp_MSaddpub_snapshot sp_MSaddpubtocontents sp_MSaddupdatetrigger sp_MSadduser_implicit_ntlogin sp_MSarticlecleanup sp_MSarticletextcol sp_MSbelongs sp_MSchange_priority sp_MSchangearticleresolver sp_MScheck_agent_instance sp_MScheck_uid_owns_anything sp_MScheckatpublisher sp_MScheckexistsgeneration sp_MScheckmetadatamatch sp_MScleanup_subscription sp_MScleanuptask sp_MScontractsubsnb sp_MScreate_dist_tables sp_MScreate_distributor_tables sp_MScreate_mergesystables sp_MScreate_pub_tables sp_MScreate_replication_checkup_agent sp_MScreate_replication_status_table sp_MScreate_sub_tables sp_MScreateglobalreplica sp_MScreateretry sp_MSdbuseraccess sp_MSdbuserpriv sp_MSdeletecontents sp_MSdeletepushagent sp_MSdeleteretry sp_MSdelrow sp_MSdelsubrows sp_MSdependencies sp_MSdoesfilterhaveparent sp_MSdrop_6x_replication_agent sp_MSdrop_distributor_alerts_and_responses sp_MSdrop_mergesystables sp_MSdrop_object sp_MSdrop_pub_tables sp_MSdrop_replcom sp_MSdrop_repltran sp_MSdrop_rladmin sp_MSdrop_rlcore sp_MSdrop_rlrecon sp_MSdroparticleprocs sp_MSdroparticletombstones sp_MSdroparticletriggers sp_MSdropconstraints sp_MSdropmergepub_snapshot sp_MSdropretry sp_MSdummyupdate sp_MSenum_replication_agents sp_MSenum_replication_job sp_MSenum3rdpartypublications sp_MSenumallpublications sp_MSenumchanges sp_MSenumcolumns sp_MSenumdeletesmetadata sp_MSenumgenerations sp_MSenummergepublications sp_MSenumpartialchanges sp_MSenumpartialdeletes sp_MSenumpubreferences sp_MSenumreplicas sp_MSenumretries sp_MSenumschemachange sp_MSenumtranpublications sp_MSexists_file sp_MSexpandbelongs sp_MSexpandnotbelongs sp_MSexpandsubsnb sp_MSfilterclause sp_MSflush_access_cache sp_MSflush_command sp_MSforeach_worker sp_MSforeachdb sp_MSforeachtable sp_MSgen_sync_tran_procs sp_MSgenreplnickname sp_MSgentablenickname sp_MSget_col_position sp_MSget_colinfo sp_MSget_oledbinfo sp_MSget_publisher_rpc sp_MSget_qualifed_name sp_MSget_synctran_commands sp_MSget_type sp_MSgetalertinfo sp_MSgetchangecount sp_MSgetconflictinsertproc sp_MSgetlastrecgen sp_MSgetlastsentgen sp_MSgetonerow sp_MSgetreplicainfo sp_MSgetreplnick sp_MSgetrowmetadata sp_MSguidtostr sp_MShelp_distdb sp_MShelp_replication_status sp_MShelpcolumns sp_MShelpfulltextindex sp_MShelpindex sp_MShelpmergearticles sp_MShelpobjectpublications sp_MShelptype sp_MSIfExistsRemoteLogin sp_MSindexcolfrombin sp_MSindexspace sp_MSinit_replication_perfmon sp_MSinsertcontents sp_MSinsertdeleteconflict sp_MSinsertgenhistory sp_MSinsertschemachange sp_MSis_col_replicated sp_MSis_pk_col sp_MSkilldb sp_MSload_replication_status sp_MSlocktable sp_MSloginmappings sp_MSmakearticleprocs sp_MSmakeconflictinsertproc sp_MSmakeexpandproc sp_MSmakegeneration sp_MSmakeinsertproc sp_MSmakejoinfilter sp_MSmakeselectproc sp_MSmakesystableviews sp_MSmaketempinsertproc sp_MSmakeupdateproc sp_MSmakeviewproc sp_MSmaptype sp_MSmark_proc_norepl sp_MSmatchkey sp_MSmergepublishdb sp_MSmergesubscribedb sp_MSobjectprivs sp_MSpad_command sp_MSproxiedmetadata sp_MSpublicationcleanup sp_MSpublicationview sp_MSpublishdb sp_MSrefcnt sp_MSregistersubscription sp_MSreinit_failed_subscriptions sp_MSrepl_addrolemember sp_MSrepl_dbrole sp_MSrepl_droprolemember sp_MSrepl_encrypt sp_MSrepl_linkedservers_rowset sp_MSrepl_startup sp_MSreplcheck_connection sp_MSreplcheck_publish sp_MSreplcheck_pull sp_MSreplcheck_subscribe sp_MSreplicationcompatlevel sp_MSreplrole sp_MSreplsup_table_has_pk sp_MSscript_beginproc sp_MSscript_begintrig1 sp_MSscript_begintrig2 sp_MSscript_delete_statement sp_MSscript_dri sp_MSscript_endproc sp_MSscript_endtrig sp_MSscript_insert_statement sp_MSscript_multirow_trigger sp_MSscript_params sp_MSscript_security sp_MSscript_singlerow_trigger sp_MSscript_sync_del_proc sp_MSscript_sync_del_trig sp_MSscript_sync_ins_proc sp_MSscript_sync_ins_trig sp_MSscript_sync_upd_proc sp_MSscript_sync_upd_trig sp_MSscript_trigger_assignment sp_MSscript_trigger_exec_rpc sp_MSscript_trigger_fetch_statement sp_MSscript_trigger_update_checks sp_MSscript_trigger_updates sp_MSscript_trigger_variables sp_MSscript_update_statement sp_MSscript_where_clause sp_MSscriptdatabase sp_MSscriptdb_worker sp_MSsetaccesslist sp_MSsetalertinfo sp_MSsetartprocs sp_MSsetbit sp_MSsetconflictscript sp_MSsetconflicttable sp_MSsetfilteredstatus sp_MSsetfilterparent sp_MSsetlastrecgen sp_MSsetlastsentgen sp_MSsetreplicainfo sp_MSsetreplicastatus sp_MSsetrowmetadata sp_MSsettopology sp_MSsetupbelongs sp_MSSQLDMO70_version sp_MSSQLOLE_version sp_MSSQLOLE65_version sp_MSsubscribedb sp_MSsubscriptions sp_MSsubscriptionvalidated sp_MSsubsetpublication sp_MStable_has_unique_index sp_MStable_not_modifiable sp_MStablechecks sp_MStablekeys sp_MStablenamefromnick sp_MStablenickname sp_MStablerefs sp_MStablespace sp_MStestbit sp_MStextcolstatus sp_MSunc_to_drive sp_MSuniquecolname sp_MSuniquename sp_MSuniqueobjectname sp_MSuniquetempname sp_MSunmarkreplinfo sp_MSunregistersubscription sp_MSupdate_agenttype_default sp_MSupdate_replication_status sp_MSupdatecontents sp_MSupdategenhistory sp_MSupdateschemachange sp_MSupdatesysmergearticles sp_msupg_createcatalogcomputedcols sp_msupg_dosystabcatalogupgrades sp_msupg_dropcatalogcomputedcols sp_msupg_recreatecatalogfaketables sp_msupg_recreatesystemviews sp_msupg_removesystemcomputedcolumns sp_msupg_upgradecatalog sp_MSuplineageversion sp_MSvalidatearticle sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop sp_objectfilegroup sp_oledbinfo sp_password sp_pkeys sp_prepare sp_primary_keys_rowset sp_primarykeys sp_probe_xact sp_procedure_params_rowset sp_procedures_rowset sp_processinfo sp_processmail sp_procoption sp_provider_types_rowset sp_publication_validation sp_publishdb sp_recompile sp_refreshsubscriptions sp_refreshview sp_reinitmergepullsubscription sp_reinitmergesubscription sp_reinitpullsubscription sp_reinitsubscription sp_remoteoption sp_remove_tempdb_file sp_remove_xact sp_removedbreplication sp_removesrvreplication sp_rename sp_renamedb sp_replcmds sp_replcounters sp_repldone sp_replflush sp_replica sp_replication_agent_checkup sp_replicationdboption sp_replicationoption sp_replincrementlsn sp_replpostcmd sp_replsetoriginator sp_replshowcmds sp_replsync sp_repltrans sp_replupdateschema sp_reset_connection sp_revoke_publication_access sp_revokedbaccess sp_revokelogin sp_runwebtask sp_scan_xact sp_schemata_rowset sp_script_synctran_commands sp_scriptdelproc sp_scriptinsproc sp_scriptmappedupdproc sp_scriptpkwhereclause sp_scriptupdateparams sp_scriptupdproc sp_sdidebug sp_sem_start_mail sp_server_info sp_serveroption sp_setapprole sp_setnetname sp_spaceused sp_special_columns sp_sproc_columns sp_sqlexec sp_sqlregister sp_srvrolepermission sp_start_xact sp_stat_xact sp_statistics sp_statistics_rowset sp_stored_procedures sp_subscribe sp_subscription_cleanup sp_subscriptioncleanup sp_table_privileges sp_table_privileges_ex sp_table_privileges_rowset sp_table_validation sp_tableoption sp_tables sp_tables_ex sp_tables_info_rowset sp_tables_rowset sp_tempdbspace sp_unbindefault sp_unbindrule sp_unmakestartup sp_unprepare sp_unsubscribe sp_updatestats sp_user_counter1 sp_user_counter10 sp_user_counter2 sp_user_counter3 sp_user_counter4 sp_user_counter5 sp_user_counter6 sp_user_counter7 sp_user_counter8 sp_user_counter9 sp_validatelogins sp_validlang sp_validname sp_who sp_who2 spt_committab spt_datatype_info spt_datatype_info_ext spt_fallback_db spt_fallback_dev spt_fallback_usg spt_monitor spt_provider_types spt_server_info spt_values sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences SYSREMOTE_CATALOGS SYSREMOTE_COLUMN_PRIVILEGES SYSREMOTE_COLUMNS SYSREMOTE_FOREIGN_KEYS SYSREMOTE_INDEXES SYSREMOTE_PRIMARY_KEYS SYSREMOTE_PROVIDER_TYPES SYSREMOTE_SCHEMATA SYSREMOTE_STATISTICS SYSREMOTE_TABLE_PRIVILEGES SYSREMOTE_TABLES SYSREMOTE_VIEWS sysremotelogins syssegments sysservers systypes sysusers sysxlogins xp_availablemedia xp_check_query_results xp_cleanupwebtask xp_cmdshell xp_deletemail xp_dirtree xp_displayparamstmt xp_dropwebtask xp_dsninfo xp_enum_activescriptengines xp_enum_oledb_providers xp_enumcodepages xp_enumdsn xp_enumerrorlogs xp_enumgroups xp_eventlog xp_execresultset xp_fileexist xp_findnextmsg xp_fixeddrives xp_get_mapi_default_profile xp_get_mapi_profiles xp_get_tape_devices xp_getfiledetails xp_getnetname xp_grantlogin xp_initcolvs xp_intersectbitmaps xp_load_dummy_handlers xp_logevent xp_loginconfig xp_logininfo xp_makewebtask xp_mergexpusage xp_msver xp_msx_enlist xp_ntsec_enumdomains xp_ntsec_enumgroups xp_ntsec_enumusers xp_oledbinfo xp_param_dump xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_printstatements xp_proxiedmetadata xp_qv xp_readerrorlog xp_readmail xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues xp_regread xp_regremovemultistring xp_regwrite xp_revokelogin xp_runwebtask xp_sendmail xp_servicecontrol xp_showcolv xp_showlineage xp_snmp_getstate xp_snmp_raisetrap xp_sprintf xp_sqlagent_enum_jobs xp_sqlagent_is_starting xp_sqlagent_monitor xp_sqlagent_notify xp_sqlinventory xp_sqlmaint xp_sqlregister xp_sqltrace xp_sscanf xp_startmail xp_stopmail xp_subdirs xp_terminate_process xp_test_mapi_profile xp_trace_addnewqueue xp_trace_deletequeuedefinition xp_trace_destroyqueue xp_trace_enumqueuedefname xp_trace_enumqueuehandles xp_trace_eventclassrequired xp_trace_flushqueryhistory xp_trace_generate_event xp_trace_getappfilter xp_trace_getconnectionidfilter xp_trace_getcpufilter xp_trace_getdbidfilter xp_trace_getdurationfilter xp_trace_geteventfilter xp_trace_geteventnames xp_trace_getevents xp_trace_gethostfilter xp_trace_gethpidfilter xp_trace_getindidfilter xp_trace_getntdmfilter xp_trace_getntnmfilter xp_trace_getobjidfilter xp_trace_getqueueautostart xp_trace_getqueuecreateinfo xp_trace_getqueuedestination xp_trace_getqueueproperties xp_trace_getreadfilter xp_trace_getserverfilter xp_trace_getseverityfilter xp_trace_getspidfilter xp_trace_gettextfilter xp_trace_getuserfilter xp_trace_getwritefilter xp_trace_loadqueuedefinition xp_trace_opentracefile xp_trace_pausequeue xp_trace_restartqueue xp_trace_savequeuedefinition xp_trace_setappfilter xp_trace_setconnectionidfilter xp_trace_setcpufilter xp_trace_setdbidfilter xp_trace_setdurationfilter xp_trace_seteventclassrequired xp_trace_seteventfilter xp_trace_sethostfilter xp_trace_sethpidfilter xp_trace_setindidfilter xp_trace_setntdmfilter xp_trace_setntnmfilter xp_trace_setobjidfilter xp_trace_setqueryhistory xp_trace_setqueueautostart xp_trace_setqueuecreateinfo xp_trace_setqueuedestination xp_trace_setreadfilter xp_trace_setserverfilter xp_trace_setseverityfilter xp_trace_setspidfilter xp_trace_settextfilter xp_trace_setuserfilter xp_trace_setwritefilter xp_trace_startconsumer xp_trace_toeventlogconsumer xp_trace_tofileconsumer xp_unc_to_drive xp_unload_dummy_handlers xp_updatecolvbm xp_updatelineage xp_varbintohexstr xp_writesqlinfo
+
+
+
+
+ deleted inserted sysallocations sysalternates sysaltfiles syscacheobjects syscharsets syscolumns syscomments sysconfigures sysconstraints syscurconfigs syscursorcolumns syscursorrefs syscursors syscursortables sysdatabases sysdepends sysdevices sysfilegroups sysfiles sysfiles1 sysforeignkeys sysfulltextcatalogs sysindexes sysindexkeys syslanguages syslockinfo syslocks syslogins sysmembers sysmessages sysobjects sysoledbusers sysperfinfo syspermissions sysprocesses sysprotects sysreferences sysremote_catalogs sysremote_column_privileges sysremote_columns sysremote_foreign_keys sysremote_indexes sysremote_primary_keys sysremote_provider_types sysremote_schemata sysremote_statistics sysremote_table_privileges sysremote_tables sysremote_views sysremotelogins syssegments sysservers systypes sysusers sysxlogins
+
+
+
+
+ connections cpu_busy cursor_rows datefirst dbts error fetch_status identity idle io_busy langid language lock_timeout max_connections max_precision nestlevel options packet_errors packet_received pack_sent patindex procid remserver rowcount servername servicename spid textptr textsize textvalid timeticks total_errors total_read total_write trancount version
+
+
+
+
+ abs acos app_name ascii asin atan atn2 avg binary_checksum case cast ceiling charindex checksum checksum_agg coalesce collationproperty col_length col_name columns_updated columnproperty convert cos cot count count_big current_timestamp current_user cursor_status databaseproperty databasepropertyex datalength dateadd datediff datename datepart day db_id db_name degrees difference exp file_id file_name filegroup_id filegroup_name filegroupproperty fileproperty floor fn_helpcollations fn_listextendedproperty fn_servershareddrives fn_trace_geteventinfo fn_trace_getfilterinfo fn_trace_getinfo fn_trace_gettable fn_virtualfilestats formatmessage fulltextcatalogproperty fulltextserviceproperty getansinull getdate getutcdate grouping has_dbaccess host_id host_name ident_current ident_incr ident_seed index_col indexkey_property indexproperty is_member is_srvrolemember isdate isnull isnumeric left len log log10 lower ltrim max min month newid nullif object_id object_name objectproperty parsename patindex permissions pi power quotename radians rand replace replicate reverse right round rowcount_big rtrim scope_identity serverproperty sessionproperty session_user sign sin soundex space sqare sql_variant_property sqrt stats_date stdev stdevp str stuff substring sum suser_sid suser_sname system_user tan typeproperty unicode upper user_id user_name var varp year
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SmallTalk.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SmallTalk.syn
new file mode 100644
index 0000000..6468d90
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SmallTalk.syn
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+assert break case char const continue default defined do else enum exit for forward goto if native new operator public Return sizeof sleep static stock switch while print return
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SystemPolicies.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SystemPolicies.syn
new file mode 100644
index 0000000..37803b1
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/SystemPolicies.syn
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACHINE USER
+
+
+
+
+ [STRINGS] CATEGORY CLASS END PART POLICY
+
+
+
+
+ ACTIONLISTOFF ACTIONLISTON CHECKBOX COMBOBOX DELETE DISABLED DROPDOWNLIST EDITTEXT ENABLED KEYNAME LISTBOX NAME NUMERIC TEXT VALUE VALUENAME VALUEOFF VALUEON
+
+
+
+
+ ACTIONLIST ADDITIVE DEFAULT DEFCHECKED EXPANDABLETEXT EXPLICITVALUE ITEMLIST MAX MAXLEN MIN REQUIRED SPIN SUGGESTIONS TXTCONVERT VALUEPREFIX /C6 #ENDIF #IF NOSORT VERSION
+
+
+
+
+ 0"Systempolicies" Nocase Line Comment = ; File Extensions = ADM /Delimiters = ~!$%"&*()+=|\/{}:;"'<> ,.?/ /C1 MACHINE USER /C2 [STRINGS] CATEGORY CLASS END PART POLICY /C3 ACTIONLISTOFF ACTIONLISTON CHECKBOX COMBOBOX DELETE DISABLED DROPDOWNLIST EDITTEXT ENABLED KEYNAME LISTBOX NAME NUMERIC TEXT VALUE VALUENAME VALUEOFF VALUEON /C4 ACTIONLIST ADDITIVE DEFAULT DEFCHECKED EXPANDABLETEXT EXPLICITVALUE ITEMLIST MAX MAXLEN MIN REQUIRED SPIN SUGGESTIONS TXTCONVERT VALUEPREFIX
+
+
+
+
+ #ENDIF #IF NOSORT VERSION
+
+
+
+
+
+
+
+
+
+
+ ~ ! $ % " & * ( ) + = | \ / { } : ; " ' < > , . ? /
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Template.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Template.syn
new file mode 100644
index 0000000..3cc0620
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Template.syn
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Text.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Text.syn
new file mode 100644
index 0000000..a76108c
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/Text.syn
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/TurboPascal.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/TurboPascal.syn
new file mode 100644
index 0000000..9ec6401
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/TurboPascal.syn
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ begin const else end function goto if label procedure program readln repeat uses var write writeln
+
+
+
+
+ and array asm case destructor div do downto exports file for implementation in
+
+
+
+
+ := inhertited inline interface library mod nil not object of or
+
+
+
+
+ ; + - = // / % & > < " ! |
+
+
+
+
+ packed private public record set shl shr string then to type unit until with xor
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + | \ / { } [ ] ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.NET.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.NET.syn
new file mode 100644
index 0000000..cf4a804
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.NET.syn
@@ -0,0 +1,525 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Sub
+Function
+Property
+Declare
+Public
+Private
+Protected
+Overrides
+Shared
+Event
+Shadows
+Friend
+Dim
+Global
+Option
+Explicit
+Not
+And
+Xor
+Or
+String
+Long
+Integer
+Boolean
+Currency
+Date
+Byte
+Single
+Double
+Static
+As
+Const
+Inherits
+Implements
+kuko
+Imports
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+AddHandler
+AddressOf
+Alias
+And
+AndAlso
+Ansi
+As
+Assembly
+Auto
+Boolean
+ByRef
+Byte
+ByVal
+Call
+Case
+Catch
+CBool
+CByte
+CChar
+CDate
+CDec
+CDbl
+Char
+CInt
+Class
+CLng
+CObj
+Const
+CShort
+CSng
+CStr
+CType
+Date
+Decimal
+Declare
+Default
+Delegate
+Dim
+DirectCast
+Do
+Double
+Each
+Else
+ElseIf
+End
+Enum
+Erase
+Error
+Event
+Exit
+False
+Finally
+For
+Friend
+Function
+Get
+GetType
+GoTo
+Handles
+If
+Imports
+In
+Inherits
+Integer
+Interface
+Is
+Let
+Lib
+Like
+Long
+Loop
+Me
+Mod
+Module
+MustInherit
+MustOverride
+MyBase
+MyClass
+Namespace
+New
+Next
+Not
+Nothing
+NotInheritable
+NotOverridable
+Object
+On
+Option
+Optional
+Or
+OrElse
+Overloads
+Overridable
+Overrides
+ParamArray
+Preserve
+Private
+Property
+Protected
+Public
+RaiseEvent
+ReadOnly
+ReDim
+RemoveHandler
+Resume
+Return
+Select
+Set
+Shadows
+Shared
+Short
+Single
+Static
+Step
+Stop
+String
+Structure
+Sub
+SyncLock
+Then
+Throw
+To
+True
+Try
+TypeOf
+Unicode
+Until
+Variant
+When
+While
+With
+WithEvents
+WriteOnly
+Xor
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+AddHandler
+AddressOf
+Alias
+And
+AndAlso
+Ansi
+As
+Assembly
+Auto
+Boolean
+ByRef
+Byte
+ByVal
+Call
+Case
+Catch
+CBool
+CByte
+CChar
+CDate
+CDec
+CDbl
+Char
+CInt
+Class
+CLng
+CObj
+Const
+CShort
+CSng
+CStr
+CType
+Date
+Decimal
+Declare
+Default
+Delegate
+Dim
+DirectCast
+Do
+Double
+Each
+Else
+ElseIf
+End
+Enum
+Erase
+Error
+Event
+Exit
+False
+Finally
+For
+Friend
+Function
+Get
+GetType
+GoTo
+Handles
+If
+Imports
+In
+Inherits
+Integer
+Interface
+Is
+Let
+Lib
+Like
+Long
+Loop
+Me
+Mod
+Module
+MustInherit
+MustOverride
+MyBase
+MyClass
+Namespace
+New
+Next
+Not
+Nothing
+NotInheritable
+NotOverridable
+Object
+On
+Option
+Optional
+Or
+OrElse
+Overloads
+Overridable
+Overrides
+ParamArray
+Preserve
+Private
+Property
+Protected
+Public
+RaiseEvent
+ReadOnly
+ReDim
+RemoveHandler
+Resume
+Return
+Select
+Set
+Shadows
+Shared
+Short
+Single
+Static
+Step
+Stop
+String
+Structure
+Sub
+SyncLock
+Then
+Throw
+To
+True
+Try
+TypeOf
+Unicode
+Until
+Variant
+When
+While
+With
+WithEvents
+WriteOnly
+Xor
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.syn
new file mode 100644
index 0000000..50511c6
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VB.syn
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Sub
+Function
+Property
+Declare
+Public
+Private
+Friend
+Dim
+Global
+Option
+Explicit
+Not
+And
+Xor
+Or
+String
+Long
+Integer
+Boolean
+Currency
+Date
+Byte
+Single
+Double
+Static
+As
+Const
+
+
+
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Public
+Private
+Friend
+Dim
+Global
+Option
+Explicit
+For
+If
+End
+Next
+Do
+Loop
+While
+Wend
+Not
+And
+Xor
+Or
+Select
+Case
+Else
+GoTo
+GoSub
+String
+Long
+Integer
+Boolean
+Currency
+Date
+Byte
+Single
+Double
+Then
+Static
+As
+Exit
+Function
+Sub
+Property
+Nothing
+Set
+Get
+Let
+LSet
+On
+Error
+Resume
+Const
+Is
+
+
+
+
+
+
+
+
+
+VbCrLf
+VbCr
+VbLf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VBScript.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VBScript.syn
new file mode 100644
index 0000000..db85c9b
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VBScript.syn
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+ And As Call Case Class Const Dim Do Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit For Function Get Goto If Imp Is Let Loop Mod Next New Not Nothing Null On Option Or Private Property Public Randomize ReDim Rem Resume Select Set Stop Sub Then To Until Wend While With
+
+
+
+
+ Abs Array Asc Atn CBool CByte CCur CDate CDbl Chr CInt CLng Cos CSng CStr Date DateAddFunction DateDiff DatePart DateSerial DateValue Day Eval Exp Filter Fix FormatCurrency FormatDateTime FormatNumber FormatPercent GetObject GetRef Hex Hour InputBox InStr InStrRev Int IsArray IsDate IsEmpty IsNull IsNumeric IsObject Join LBound LCase Left Len LoadPicture Log LTrim Mid Minute Month MonthName MsgBox Now Oct Replace RGB Right Rnd Round RTrim ScriptEngine ScriptEngineBuildVersion ScriptEngineMajorVersion ScriptEngineMinorVersion Second Sgn Sin Space Split Sqr StrComp String StrReverse Tan Time Timer TimeSerial TimeValue Trim TypeName UBound UCase VarType Weekday WeekdayName Year
+
+
+
+
+ AccountDisabled AccountExpirationDate Application Arguments AtEndOfLine AtEndOfStream Attributes AutoUnlockInterval AvailableSpace BadPasswordAttempts Column CompareMode ComputerName Count DateCreated DateLastAccessed DateLastModified Description Drive DriveLetter DriveType Drives Environment FileSystem Files FirstIndex FreeSpace FullName Global HelpContext HelpFile HomeDirDrive HomeDirectory HotKey IconLocation IgnoreCase Interactive IsAccountLocked IsReady IsRootFolder Item Key LastLogin LastLogoff Length Line LockoutObservationInterval LoginHours LoginScript LoginWorkstations MaxBadPasswordsAllowed MaxLogins MaxPasswordAge MaxStorage MinPasswordAge MinPasswordLength Name Number ObjectSid Parameters ParentFolder PasswordAge PasswordExpirationDate PasswordExpired PasswordHistoryLength Path Pattern PrimaryGroupID Profile Remove RootFolder ScriptFullName ScriptName SerialNumber ShareName ShortName ShortPath Size Source SpecialFolders Subfolders TargetPath TotalSize Type UserDomain UserFlags UserName Value Version VolumeName WindowStyle WorkingDirectory
+
+
+
+
+ Add AddPrinterConnection AddWindowsPrinterConnection AppActivate BuildPath Clear Close ConnectObject Copy CopyFile CopyFolder CreateFolder CreateObject CreateShortcut CreateTextFile Delete DeleteFile DeleteFolder DisconnectObject DriveExists Echo EnumNetworkDrives EnumPrinterConnections Exists ExpandEnvironmentStrings FileExists FolderExists GetAbsolutePathName GetBaseName GetDrive GetDriveName GetExtensionName GetFile GetFileName GetFolder GetParentFolderName GetResource GetSpecialFolder GetTempName Items Keys LogEvent MapNetworkDrive Move MoveFile MoveFolder OpenAsTextStream OpenTextFile Popup Put Quit Raise Read ReadAll ReadLine RegDelete RegRead RegWrite RemoveAll RemoveNetworkDrive RemovePrinterConnection Replace Run Save SendKeys SetDefaultPrinter Skip SkipLine Sleep SetInfo Test Write WriteBlankLines WriteLine
+
+
+
+
+ Dictionary Err File FileSystemObject Folder Match RegExp TextStream Wscript WshNetwork WshShell
+
+
+
+
+ False FALSE True TRUE vbAbort vbAbortRetryIgnore vbApplicationModal vbArray vbBinaryCompare vbBlack vbBlue vbBoolean vbByte vbCancel vbCr vbCritical vbCrLf vbCurrency vbCyan vbDataObject vbDate vbDecimal vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbDouble vbEmpty vbError vbExclamation vbFirstFourDays vbFirstFullWeek vbFirstJan1 vbFormFeed vbFriday vbGeneralDate vbGreen vbIgnore vbInformation vbInteger vbLf vbLong vbLongDate vbLongTime vbMagenta vbMonday vbNewLine vbNo vbNull vbNullChar vbNullString vbObject vbObjectError vbOK vbOKCancel vbOKOnly vbQuestion vbRed vbRetry vbRetryCancel vbSaturday vbShortDate vbShortTime vbSingle vbString vbSunday vbSystemModal vbTab vbTextCompare vbThursday vbTuesday vbUseSystem vbUseSystemDayOfWeek vbVariant vbVerticalTab vbWednesday vbWhite vbYellow vbYes vbYesNo vbYesNoCancel
+
+
+
+
+
+
+
+
+
+
+ . ( ) , - + = | \ / { } [ ] : ; " ' < >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VRML97.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VRML97.syn
new file mode 100644
index 0000000..bc07830
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/VRML97.syn
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DEF eventIn eventOut exposedField EXTERNPROTO field IS PROTO ROUTE TO USE
+
+
+
+
+ Anchor Appearance AudioClip Background Billboard Box Collision Color ColorInterpolator Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet Inline LOD Material MovieTexture NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight Switch Text TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint VisibilitySensor WorldInfo
+
+
+
+
+ MFColor MFFloat MFInt32 MFNode MFRotation MFString MFTime MFVec2f MFVec3f SFBool SFColor SFFloat SFImage SFInt32 SFNode SFRotation SFString SFTime SFVec2f SFVec3f
+
+
+
+
+ ambientColor ambientIntensity appearance attenuation autoOffset avatarSize axisOfRotation backUrl bboxCenter bboxSize beamWidth beginCap bottom bottomRadius bottomUrl ccw choice center children collide color colorIndex colorPerVertex convex coord coordIndex creaseAngle crossSection cutOffAngle depth description diffuseColor direction directOutput diskAngle dropOffRate emissiveColor enabled endCap faceType family fieldOfViewfields filename focalDistance fogType fontStyle frontUrl geometry groundAngle groundColor headlight height heightAngle horizontal image indexOfRefraction info intensity isA jump justification justify key keyValue language leftToRight leftUrl length level location loop map material materialIndex matrix mustEvaluate maxAngle maxBack maxExtent maxFront maxPosition minAngle minBack minFront minPosition name normal normalIndex normalPerVertex numPoints offset on orientation parameter parts pitch point position priority proxy radius range renderCulling repeatS repeatT rightUrl rotation scale scaleFactor scaleOrientation shapeType shininess side size skyAngle skyColor solid source spacing spatialize specularColor speed spine startIndex startTime stopTime string style title texCoord texCoordIndex texture textureCoordIndex textureTransform top topToBottom topUrl translation transparency type url value vector vertexOrdering visibilityLimit visibilityRange whichChild whichChoise width wrapS wrapT xDimension xSpacing zDimension zSpacing
+
+
+
+
+ ALL AUTO BINDINGS BOLD BOTTOM CENTER CLAMP CLOCKWISE CONVEX COUNTERCLOCKWISE CULLING DEFAULT DEFAULTS ENUMS FACE FALSE FAMILY FILE FORMAT ITALIC JUSTIFICATION LEFT NONE NULL OFF ON OVERALL PARTS PER_FACE PER_FACE_INDEXED PER_PART PER_PART_INDEXED PER_VERTEX PER_VERTEX_INDEXED REPEAT RIGHT SHAPE SIDES SOLID STYLE TRUE TYPE UNKNOWN_FACE_TYPE UNKNOWN_ORDERING UNKNOWN_SHAPE_TYPE WRAP
+
+
+
+
+
+
+
+
+
+
+ ~ ! @ % " & * ( ) - + = | \ / { } [ ] : ; " ' < > , . ?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/XML.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/XML.syn
new file mode 100644
index 0000000..00dcce7
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/XML.syn
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+boolean
+break byte
+case catch char class const continue
+debugger default delete do double
+else enum export extends
+false final finally float for function
+goto
+if implements import in instanceof int interface
+long
+native new null
+package private protected public
+return
+short static super switch synchronized
+this throw throws transient true try typeof
+var void volatile
+while with
+
+
+
+
+
+
+abs acos alert anchor apply asin atan atan2 atob attachEvent
+back big blink blur bold borderWidths btoa
+call captureEvents ceil charAt charCodeAt clear clearInterval clearTimeout click close compile concat confirm contextual cos createElement createEventObject createPopup createStyleSheet createTextNode
+detachEvent disableExternalCapture dump
+elementFromPoint enableExternalCapture escape eval exec execCommand execScript exp
+fileCreatedDate fileModifiedDate fileSize fileUpdatedDate find firstChild fixed floor focus fontcolor fontsize fromCharCode forward
+getAttention getDate getDay getElementById getElementsByName getElementsByTagName getFullYear getHours getMilliseconds getMinutes getMonth getSeconds getSelection getTime getTimezoneOffset getUTCDate getUTCDay getUTCFullYear getUTCHours getUTCMilliseconds getUTCMinutes getUTCMonth getUTCSeconds getYear go
+handleEvent home
+indexOf isFinite isNaN italics
+javaEnabled join
+lastIndexOf link load log
+margins match max mergeAttributes min moveAbove moveBelow moveBy moveTo moveToAbsolute
+navigate
+open
+paddings parse parseFloat parseInt plugins.refresh pop pow preference print prompt push
+queryCommandEnabled queryCommandIndeterm queryCommandState queryCommandValue
+random recalc releaseCapture releaseEvents reload replace reset resizeBy resizeTo returnValue reverse round routeEvents
+savePreferences scroll scrollBy scrollByLines scrollByPages scrollTo scrollX scrollY search select setDate setFullYear setActive setCursor setHotKeys setHours setInterval setMilliseconds setMinutes setMonth setResizable setSeconds setTime setTimeout setUTCDate setUTCFullYear setUTCHours setUTCMilliseconds setUTCMinutes setUTCMonth setUTCSeconds setYear setZOptions shift showHelp showModalDialog showModelessDialog sidebar sin signText sizeToContent slice small sort splice split sqrt strike stop sub submit substr substring sup
+taint taintEnabled tan test toGMTString toLocaleString toLowerCase toSource toString toUpperCase toUTCString
+UTC
+unescape unshift untaint updateCommands unwatch
+valueOf
+watch write writeln
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+And As
+Call Case Class Const
+Dim Do
+Each Else ElseIf Empty End Eqv Erase Error Execute Exit Explicit
+For Function
+Get Goto
+If Imp Is
+Let Loop
+Mod
+Next New Not Nothing Null
+On Option Or
+Private Property Public
+Randomize ReDim Rem Resume
+Select Set Stop Sub
+Then To
+Until
+Wend While With
+True False
+
+
+
+
+
+
+Server Request Response Session Application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/npath.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/npath.syn
new file mode 100644
index 0000000..a065cbc
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/npath.syn
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select from where
+
+
+
+
+
+
+
+
+ @count @max @avg @min @like @and @or @not @select @from @where @between @in @contains @freetext
+
+
+
+
+
+ count max avg min like between in contains freetext
+
+
+
+
+
+ and or not
+
+
+
+
+
+
+
+
+
+
+
+
+ % " & * ( ) - + | \ / [ ] ; " ' < > , .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+ "
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/rtf.syn b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/rtf.syn
new file mode 100644
index 0000000..b4317ea
--- /dev/null
+++ b/WindowsFormsComponents/Alsing.SyntaxoBox/SyntaxFiles/rtf.syn
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \ansi \author \b \company \deff \f \fmodern \fnil \fonttbl \froman \fswiss \ftech \i \info \operator \par \pard \qc \qj \ql \qr \rtf \title \ul
+
+
+
+
+ \*
+
+
+
+
+ \fs24 \margl \margr \sa \sb
+
+
+
+
+
+
+
+ # $ % & ( ) + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > [ \ ] " _ { | } ~ `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
|