当前位置: 首页>>代码示例>>C#>>正文


C# TextBuffer.InsertWithTagsByName方法代码示例

本文整理汇总了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();
              }
        }
开发者ID:synesthesiam,项目名称:nexus,代码行数:46,代码来源:Markdown.cs

示例2: SetInfoNote

 private void SetInfoNote(TextBuffer buffer, string note)
 {
     buffer.InitTags();
     TextIter insertIter = buffer.StartIter;
     buffer.InsertWithTagsByName (ref insertIter, note, "italic");
 }
开发者ID:CoEST,项目名称:TraceLab,代码行数:6,代码来源:PackageBuilderSettingsPage.cs

示例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");
//.........这里部分代码省略.........
开发者ID:FreeBSD-DotNet,项目名称:mono-tools,代码行数:101,代码来源:MainWindow.cs

示例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");

//.........这里部分代码省略.........
开发者ID:ystk,项目名称:debian-gtk-sharp2,代码行数:101,代码来源:DemoTextView.cs

示例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;
        }
    }
开发者ID:nivardus,项目名称:libopenmetaverse,代码行数:62,代码来源:MainWindow.cs

示例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;
        }
开发者ID:QualitySolution,项目名称:QSProjects,代码行数:65,代码来源:Chat.cs

示例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);
        }
开发者ID:moscrif,项目名称:ide,代码行数:17,代码来源:BuyDialog.cs


注:本文中的Gtk.TextBuffer.InsertWithTagsByName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。