本文整理汇总了C#中ScintillaNET.Scintilla.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# Scintilla.GetType方法的具体用法?C# Scintilla.GetType怎么用?C# Scintilla.GetType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ScintillaNET.Scintilla
的用法示例。
在下文中一共展示了Scintilla.GetType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CopyHtml
private static unsafe void CopyHtml(Scintilla scintilla, StyleData[] styles, List<ArraySegment<byte>> styledSegments)
{
// NppExport -> NppExport.cpp
// NppExport -> HTMLExporter.cpp
// http://blogs.msdn.com/b/jmstall/archive/2007/01/21/html-clipboard.aspx
// http://blogs.msdn.com/b/jmstall/archive/2007/01/21/sample-code-html-clipboard.aspx
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms649015.aspx
try
{
long pos = 0;
byte[] bytes;
// Write HTML
using (var ms = new NativeMemoryStream(styledSegments.Sum(s => s.Count)))
using (var tw = new StreamWriter(ms, new UTF8Encoding(false)))
{
const int INDEX_START_HTML = 23;
const int INDEX_START_FRAGMENT = 65;
const int INDEX_END_FRAGMENT = 87;
const int INDEX_END_HTML = 41;
tw.WriteLine("Version:0.9");
tw.WriteLine("StartHTML:00000000");
tw.WriteLine("EndHTML:00000000");
tw.WriteLine("StartFragment:00000000");
tw.WriteLine("EndFragment:00000000");
tw.Flush();
// Patch header
pos = ms.Position;
ms.Seek(INDEX_START_HTML, SeekOrigin.Begin);
ms.Write((bytes = Encoding.ASCII.GetBytes(ms.Length.ToString("D8"))), 0, bytes.Length);
ms.Seek(pos, SeekOrigin.Begin);
tw.WriteLine("<html>");
tw.WriteLine("<head>");
tw.WriteLine(@"<meta charset=""utf-8"" />");
tw.WriteLine(@"<title>ScintillaNET v{0}</title>", scintilla.GetType().Assembly.GetName().Version.ToString(3));
tw.WriteLine("</head>");
tw.WriteLine("<body>");
tw.Flush();
// Patch header
pos = ms.Position;
ms.Seek(INDEX_START_FRAGMENT, SeekOrigin.Begin);
ms.Write((bytes = Encoding.ASCII.GetBytes(ms.Length.ToString("D8"))), 0, bytes.Length);
ms.Seek(pos, SeekOrigin.Begin);
tw.WriteLine("<!--StartFragment -->");
// Write the styles.
// We're doing the style tag in the body to include it in the "fragment".
tw.WriteLine(@"<style type=""text/css"" scoped="""">");
tw.Write("div#segments {");
tw.Write(" float: left;");
tw.Write(" white-space: pre;");
tw.Write(" line-height: {0}px;", scintilla.DirectMessage(NativeMethods.SCI_TEXTHEIGHT, new IntPtr(0)).ToInt32());
tw.Write(" background-color: #{0:X2}{1:X2}{2:X2};", (styles[Style.Default].BackColor >> 0) & 0xFF, (styles[Style.Default].BackColor >> 8) & 0xFF, (styles[Style.Default].BackColor >> 16) & 0xFF);
tw.WriteLine(" }");
for (int i = 0; i < styles.Length; i++)
{
if (!styles[i].Used)
continue;
tw.Write("span.s{0} {{", i);
tw.Write(@" font-family: ""{0}"";", styles[i].FontName);
tw.Write(" font-size: {0}pt;", styles[i].SizeF);
tw.Write(" font-weight: {0};", styles[i].Weight);
if (styles[i].Italic != 0)
tw.Write(" font-style: italic;");
if (styles[i].Underline != 0)
tw.Write(" text-decoration: underline;");
tw.Write(" background-color: #{0:X2}{1:X2}{2:X2};", (styles[i].BackColor >> 0) & 0xFF, (styles[i].BackColor >> 8) & 0xFF, (styles[i].BackColor >> 16) & 0xFF);
tw.Write(" color: #{0:X2}{1:X2}{2:X2};", (styles[i].ForeColor >> 0) & 0xFF, (styles[i].ForeColor >> 8) & 0xFF, (styles[i].ForeColor >> 16) & 0xFF);
switch ((StyleCase)styles[i].Case)
{
case StyleCase.Upper:
tw.Write(" text-transform: uppercase;");
break;
case StyleCase.Lower:
tw.Write(" text-transform: lowercase;");
break;
}
if (styles[i].Visible == 0)
tw.Write(" visibility: hidden;");
tw.WriteLine(" }");
}
tw.WriteLine("</style>");
tw.Write(@"<div id=""segments""><span class=""s{0}"">", Style.Default);
tw.Flush();
var tabSize = scintilla.DirectMessage(NativeMethods.SCI_GETTABWIDTH).ToInt32();
var tab = new string(' ', tabSize);
tw.AutoFlush = true;
var lastStyle = Style.Default;
var unicodeLineEndings = ((scintilla.DirectMessage(NativeMethods.SCI_GETLINEENDTYPESACTIVE).ToInt32() & NativeMethods.SC_LINE_END_TYPE_UNICODE) > 0);
//.........这里部分代码省略.........