本文整理汇总了C#中Gtk.TextBuffer.InsertWithTagsByName方法的典型用法代码示例。如果您正苦于以下问题:C# TextBuffer.InsertWithTagsByName方法的具体用法?C# TextBuffer.InsertWithTagsByName怎么用?C# TextBuffer.InsertWithTagsByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gtk.TextBuffer
的用法示例。
在下文中一共展示了TextBuffer.InsertWithTagsByName方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: LoadIntoBuffer
public static void LoadIntoBuffer(TextBuffer buffer, TextReader reader)
{
buffer.TagTable.Add(new TextTag("header1")
{
Weight = Pango.Weight.Bold,
SizePoints = 18
});
buffer.TagTable.Add(new TextTag("header2")
{
Weight = Pango.Weight.Bold,
SizePoints = 14
});
buffer.TagTable.Add(new TextTag("header3")
{
Weight = Pango.Weight.Bold
});
var iter = buffer.StartIter;
var line = reader.ReadLine();
while (line != null)
{
var textToInsert = string.Format("{0}{1}", line, Environment.NewLine);
if (Regex.IsMatch(line, "^#[^#]"))
{
buffer.InsertWithTagsByName(ref iter, textToInsert.Substring(2), "header1");
}
else if (Regex.IsMatch(line, "^##[^#]"))
{
buffer.InsertWithTagsByName(ref iter, textToInsert.Substring(3), "header2");
}
else if (Regex.IsMatch(line, "^###[^#]"))
{
buffer.InsertWithTagsByName(ref iter, textToInsert.Substring(4), "header3");
}
else
{
buffer.Insert(ref iter, textToInsert);
}
line = reader.ReadLine();
}
}
示例2: SetInfoNote
private void SetInfoNote(TextBuffer buffer, string note)
{
buffer.InitTags();
TextIter insertIter = buffer.StartIter;
buffer.InsertWithTagsByName (ref insertIter, note, "italic");
}
示例3: InsertWithMarkup
void InsertWithMarkup (TextBuffer buffer, ref TextIter iter, string text)
{
Match match = markupRegex.Match (text);
if (!match.Success) {
buffer.Insert (ref iter, text);
return;
}
int start = 0, len, idx;
var tags = new List <string> ();
while (match.Success) {
len = match.Index - start;
if (len > 0)
buffer.InsertWithTagsByName (ref iter, text.Substring (start, len), tags.ToArray ());
switch (match.Value.ToLowerInvariant ()) {
case "<i>":
if (!tags.Contains ("italic"))
tags.Add ("italic");
break;
case "</i>":
idx = tags.IndexOf ("italic");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<b>":
if (!tags.Contains ("bold"))
tags.Add ("bold");
break;
case "</b>":
idx = tags.IndexOf ("bold");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<big>":
if (!tags.Contains ("big"))
tags.Add ("big");
break;
case "</big>":
idx = tags.IndexOf ("big");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<s>":
if (!tags.Contains ("strikethrough"))
tags.Add ("strikethrough");
break;
case "</s>":
idx = tags.IndexOf ("strikethrough");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<sub>":
if (!tags.Contains ("sub"))
tags.Add ("sub");
break;
case "</sub>":
idx = tags.IndexOf ("sub");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<sup>":
if (!tags.Contains ("sup"))
tags.Add ("sup");
break;
case "</sup>":
idx = tags.IndexOf ("sup");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<small>":
if (!tags.Contains ("small"))
tags.Add ("small");
break;
case "</small>":
idx = tags.IndexOf ("small");
if (idx > -1)
tags.RemoveAt (idx);
break;
case "<tt>":
if (!tags.Contains ("monospace"))
tags.Add ("monospace");
break;
case "</tt>":
idx = tags.IndexOf ("monospace");
//.........这里部分代码省略.........
示例4: InsertText
private void InsertText (TextBuffer buffer)
{
Pixbuf pixbuf = Gdk.Pixbuf.LoadFromResource ("gtk-logo-rgb.gif");
pixbuf = pixbuf.ScaleSimple (32, 32, InterpType.Bilinear);
// get start of buffer; each insertion will revalidate the
// iterator to point to just after the inserted text.
TextIter insertIter = buffer.StartIter;
buffer.Insert (ref insertIter,
"The text widget can display text with all kinds of nifty attributes. It also supports multiple views of the same buffer; this demo is showing the same buffer in two places.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Font styles. ", "heading");
buffer.Insert (ref insertIter, "For example, you can have ");
buffer.InsertWithTagsByName (ref insertIter, "italic", "italic");
buffer.Insert (ref insertIter, ", ");
buffer.InsertWithTagsByName (ref insertIter, "bold", "bold");
buffer.Insert (ref insertIter, ", or ");
buffer.InsertWithTagsByName (ref insertIter, "monospace (typewriter)", "monospace");
buffer.Insert (ref insertIter, ", or ");
buffer.InsertWithTagsByName (ref insertIter, "big", "big");
buffer.Insert (ref insertIter, " text. ");
buffer.Insert (ref insertIter,
"It's best not to hardcode specific text sizes; you can use relative sizes as with CSS, such as ");
buffer.InsertWithTagsByName (ref insertIter, "xx-small", "xx-small");
buffer.Insert (ref insertIter, " or");
buffer.InsertWithTagsByName (ref insertIter, "x-large", "x-large");
buffer.Insert (ref insertIter,
" to ensure that your program properly adapts if the user changes the default font size.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Colors. ", "heading");
buffer.Insert (ref insertIter, "Colors such as ");
buffer.InsertWithTagsByName (ref insertIter, "a blue foreground", "blue_foreground");
buffer.Insert (ref insertIter, " or ");
buffer.InsertWithTagsByName (ref insertIter, "a red background", "red_background");
buffer.Insert (ref insertIter, " or even ");
buffer.InsertWithTagsByName (ref insertIter, "a stippled red background",
"red_background",
"background_stipple");
buffer.Insert (ref insertIter, " or ");
buffer.InsertWithTagsByName (ref insertIter,
"a stippled blue foreground on solid red background",
"blue_foreground",
"red_background",
"foreground_stipple");
buffer.Insert (ref insertIter, " (select that to read it) can be used.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Underline, strikethrough, and rise. ", "heading");
buffer.InsertWithTagsByName (ref insertIter, "Strikethrough", "strikethrough");
buffer.Insert (ref insertIter, ", ");
buffer.InsertWithTagsByName (ref insertIter, "underline", "underline");
buffer.Insert (ref insertIter, ", ");
buffer.InsertWithTagsByName (ref insertIter, "double underline", "double_underline");
buffer.Insert (ref insertIter, ", ");
buffer.InsertWithTagsByName (ref insertIter, "superscript", "superscript");
buffer.Insert (ref insertIter, ", and ");
buffer.InsertWithTagsByName (ref insertIter, "subscript", "subscript");
buffer.Insert (ref insertIter, " are all supported.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Images. ", "heading");
buffer.Insert (ref insertIter, "The buffer can have images in it: ");
buffer.InsertPixbuf (ref insertIter, pixbuf);
buffer.InsertPixbuf (ref insertIter, pixbuf);
buffer.InsertPixbuf (ref insertIter, pixbuf);
buffer.Insert (ref insertIter, " for example.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Spacing. ", "heading");
buffer.Insert (ref insertIter, "You can adjust the amount of space before each line.\n");
buffer.InsertWithTagsByName (ref insertIter, "This line has a whole lot of space before it.\n",
"big_gap_before_line", "wide_margins");
buffer.InsertWithTagsByName (ref insertIter, "You can also adjust the amount of space after each line; this line has a whole lot of space after it.\n",
"big_gap_after_line", "wide_margins");
buffer.InsertWithTagsByName (ref insertIter, "You can also adjust the amount of space between wrapped lines; this line has extra space between each wrapped line in the same paragraph. To show off wrapping, some filler text: the quick brown fox jumped over the lazy dog. Blah blah blah blah blah blah blah blah blah.\n",
"double_spaced_line", "wide_margins");
buffer.Insert (ref insertIter, "Also note that those lines have extra-wide margins.\n\n");
buffer.InsertWithTagsByName (ref insertIter, "Editability. ", "heading");
buffer.InsertWithTagsByName (ref insertIter, "This line is 'locked down' and can't be edited by the user - just try it! You can't delete this line.\n\n",
"not_editable");
buffer.InsertWithTagsByName (ref insertIter, "Wrapping. ", "heading");
buffer.Insert (ref insertIter, "This line (and most of the others in this buffer) is word-wrapped, using the proper Unicode algorithm. Word wrap should work in all scripts and languages that GTK+ supports. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah\n\n");
buffer.InsertWithTagsByName (ref insertIter, "This line has character-based wrapping, and can wrap between any two character glyphs. Let's make this a long paragraph to demonstrate: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah\n\n",
"char_wrap");
buffer.InsertWithTagsByName (ref insertIter, "This line has all wrapping turned off, so it makes the horizontal scrollbar appear.\n\n\n",
"no_wrap");
//.........这里部分代码省略.........
示例5: ColorizePacket
void ColorizePacket(TextBuffer buffer, string text)
{
if (!text.StartsWith("Message Type:") && !text.StartsWith("Packet Type:"))
{
buffer.Text = text;
return;
}
buffer.Text = string.Empty;
text = text.Replace("\r", "");
TextIter iter = buffer.StartIter;
Regex typesRegex = new Regex(@"\[(?<Type>\w+|\w+\[\])\]|\((?<Enum>.*)\)|\s-- (?<Header>\w+|\w+ \[\]) --\s|(?<BlockSep>\s\*\*\*\s)|(?<Tag>\s<\w+>\s|\s<\/\w+>\s)|(?<BlockCounter>\s\w+\[\d+\]\s)|(?<UUID>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", RegexOptions.ExplicitCapture);
MatchCollection matches = typesRegex.Matches(text);
int pos = 0;
if (matches.Count == 0)
{
buffer.Text = text;
}
foreach (Match match in matches)
{
string tag = "bold";
buffer.Insert(ref iter, text.Substring(pos, match.Index - pos));
pos += match.Index - pos;
if (!String.IsNullOrEmpty(match.Groups["Type"].Value))
{
tag = "type";
}
else if (!String.IsNullOrEmpty(match.Groups["Enum"].Value))
{
tag = "type";
}
else if (!String.IsNullOrEmpty(match.Groups["Header"].Value))
{
tag = "header";
}
else if (!String.IsNullOrEmpty(match.Groups["BlockSep"].Value))
{
tag = "block";
}
else if (!String.IsNullOrEmpty(match.Groups["Tag"].Value))
{
tag = "tag";
}
else if (!String.IsNullOrEmpty(match.Groups["BlockCounter"].Value))
{
tag = "counter";
}
else if (!String.IsNullOrEmpty(match.Groups["UUID"].Value))
{
tag = "UUID";
}
buffer.InsertWithTagsByName(ref iter, text.Substring(pos, match.Length), tag);
pos += match.Length;
}
}
示例6: OnUpdateTimer
private bool OnUpdateTimer()
{
if (!Active)
return false;
if(slowMode && slowModeCountdown > 0)
{
slowModeCountdown--;
return true;
}
//Обновляем чат
logger.Info("Обновляем чат...");
if((QSMain.ConnectionDB as MySqlConnection).State != System.Data.ConnectionState.Open)
{
logger.Warn("Соедиение с сервером не открыто.");
return true;
}
string sql = "SELECT datetime, text, users.name as user FROM chat_history " +
"LEFT JOIN users ON users.id = chat_history.user_id " +
"WHERE datetime > DATE_SUB(CURDATE(), INTERVAL " + ShowDays.ToString() +" DAY) " +
"ORDER BY datetime";
MySqlCommand cmd = new MySqlCommand(sql, (MySqlConnection)QSMain.ConnectionDB);
TextBuffer tempBuffer = new TextBuffer(textTags);
TextIter iter = tempBuffer.EndIter;
NewMessageCount = 0;
DateTime MaxDate = default(DateTime);
using (MySqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
DateTime mesDate = rdr.GetDateTime("datetime");
if (mesDate.Date != MaxDate.Date)
{
tempBuffer.InsertWithTagsByName(ref iter, String.Format("\n{0:D}", mesDate.Date), "date");
}
tempBuffer.InsertWithTagsByName(ref iter, string.Format("\n({0:t}) {1}: ", mesDate, rdr.GetString("user")),
QSChatMain.GetUserTag(rdr.GetString("user")));
tempBuffer.Insert(ref iter, rdr.GetString("text"));
if (isHided && lastShowTime != default(DateTime) && mesDate > lastShowTime)
NewMessageCount++;
if (mesDate > MaxDate)
MaxDate = mesDate;
}
}
if (ActiveCount > uint.MaxValue - 10)
ActiveCount = 61;
ActiveCount++;
if(MaxDate > lastMessageTime)
{
ActiveCount = 0;
textviewChat.Buffer = tempBuffer;
//Сдвигаем скрол до конца
TextIter ti = textviewChat.Buffer.GetIterAtLine(textviewChat.Buffer.LineCount-1);
TextMark tm = textviewChat.Buffer.CreateMark("eot", ti,false);
textviewChat.ScrollToMark(tm, 0, false, 0, 0);
}
lastMessageTime = MaxDate;
if (slowModeCountdown <= 0)
slowModeCountdown = 8;
logger.Info("Ок");
if (ChatUpdated != null)
ChatUpdated(this, EventArgs.Empty);
return true;
}
示例7: InsertTextHeader
private void InsertTextHeader(TextBuffer buffer)
{
TextIter insertIter = buffer.StartIter;
string upgradeLicence = "";
if(featureLicence != null){
upgradeLicence = featureLicence.Name;
}
buffer.InsertWithTagsByName (ref insertIter, String.Format("Moscrif {0} ",upgradeLicence), "heading");
buffer.Insert (ref insertIter,"\n\n");
buffer.Insert (ref insertIter,
String.Format("The \"{0}\" is available for Moscrif {1} license. Please purchase an upgrade to unlock this Buying Moscrif {1} License you also unlock:\n\n",featureTitle,upgradeLicence));
buffer.ApplyTag ("word_wrap", buffer.StartIter, buffer.EndIter);
}