void OnRightClick(UiRightClickEvent e) { var member = PartyMember; if (member == null) { return; } e.Propagating = false; var party = Resolve <IParty>(); var window = Resolve <IWindowManager>(); var settings = Resolve <ISettings>(); var cursorManager = Resolve <ICursorManager>(); var tf = Resolve <ITextFormatter>(); var heading = new LiteralText( new TextBlock(member.Apparent.GetName(settings.Gameplay.Language)) { Style = TextStyle.Fat, Alignment = TextAlignment.Center }); IText S(TextId textId) => tf.Center().NoWrap().Format(textId); var uiPosition = window.PixelToUi(cursorManager.Position); var options = new List <ContextMenuOption> { new ContextMenuOption( S(Base.SystemText.PartyPopup_CharacterScreen), new InventoryOpenEvent(member.Id), ContextMenuGroup.Actions) }; if (member.Apparent.Magic.SpellStrengths.Any()) { options.Add(new ContextMenuOption( S(Base.SystemText.PartyPopup_UseMagic), null, ContextMenuGroup.Actions)); } if (member.Id != party.Leader.Id) { options.Add(new ContextMenuOption( S(Base.SystemText.PartyPopup_MakeLeader), new SetPartyLeaderEvent(member.Id), ContextMenuGroup.Actions)); } if (member.Id != Base.PartyMember.Tom) { options.Add(new ContextMenuOption( S(Base.SystemText.PartyPopup_TalkTo), new StartPartyDialogueEvent(member.Id), ContextMenuGroup.Actions)); } Raise(new ContextMenuEvent(uiPosition, heading, options)); }
public void Visit(LiteralText literal) { var text = literal.Text; parts.Add(CompoundExpression.IndentCheck(Expression.Constant(text, typeof(string)), context)); context._lineEnded = text.Length > 0 && text[text.Length - 1] == '\n'; }
public void EmptyInput() { LiteralText literal = (LiteralText)MarkupParser.Literal.Parse("").Value; Assert.AreEqual("", literal.ToString()); List <MarkupToken> tokens = new List <MarkupToken>(MarkupParser.Dialogue.Parse("").Value); Assert.AreEqual("", tokens[0].ToString()); }
public void It_renders_its_text() { var a = new LiteralText("a"); var writer = new StringWriter(); var context = new RenderContext(null, null, writer, null); a.Render(context); Assert.AreEqual("a", writer.GetStringBuilder().ToString()); }
public void It_renders_its_text() { var a = new LiteralText("a"); var writer = new StringWriter(); var context = new RenderContext(null, null, writer, null, Options.Defaults()); a.Render(context); Assert.AreEqual("a", writer.GetStringBuilder().ToString()); }
void SubMenuItem_Click(object sender, EventArgs e) { Object value = null; ToolStripMenuItem MenuItem = sender as ToolStripMenuItem; if (MenuItem != null) { switch (MenuItem.Text) { case "数据列": value = new ReportCommon.DataColumn(); break; case "普通文本": value = new LiteralText(); break; case "公式": value = new Formula(); break; case "图表": value = new ChartPainter(); break; case "图片": value = new ReportCommon.Picture(); break; case "斜线": value = new Slash(); break; case "变量": value = new Variable(); break; } if (value != null) { ActiveSheet.ActiveCell.CellType = general; ReportElementEventArgs elementevent = new ReportElementEventArgs(); elementevent.Value = value; OnReportElementAdding(elementevent); } else { String msg = "当前版本不支持" + MenuItem.Text + "报表元素。"; MessageBox.Show(msg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
private void ParseData(string templateData, TemplateElementContainer template) { const string tagStart = "<@"; const string tagEnd = "@>"; var index = 0; var parent = template; while (index < templateData.Length) { var s = templateData.IndexOf(tagStart, index); var e = s; if (s < 0) { var literal = new LiteralText(parent) { Text = templateData.Substring(index).Trim('\n', '\r') }; if (!string.IsNullOrWhiteSpace(literal.Text)) { parent.Children.Add(literal); } index = templateData.Length; continue; } if (s >= 0 && s > index) { var literal = new LiteralText(parent) { Text = templateData.Substring(index, s - index).Trim('\n', '\r') }; if (!string.IsNullOrWhiteSpace(literal.Text)) { parent.Children.Add(literal); } } e = templateData.IndexOf(tagEnd, s); if (e == -1) { throw new InvalidOperationException($"Missing end {tagEnd}"); } var tagData = templateData.Substring(s + tagStart.Length, e - s - tagStart.Length).Trim(); ParseTagData(tagData, ref parent); index = e + tagEnd.Length; } }
private static void AssertRenderingResult <T>(Action <string, string> assertion, T value) { var text = new LiteralText("b"); var inverted = new InvertedBlock("a", text); using (var writer = new StringWriter()) { var context = new RenderContext(null, new { a = value }, writer, null, Options.Defaults()); inverted.Render(context); assertion(text.Text, writer.GetStringBuilder().ToString()); } }
public static CompiledTemplate Compile(Template template, NameResolver nameResolver) { if (template == null) { throw new ArgumentNullException(nameof(template)); } return(template switch { LiteralText text => new CompiledLiteralText(text.Text), FormattedExpression expression => new CompiledFormattedExpression( ExpressionCompiler.Compile(expression.Expression, nameResolver), expression.Format, expression.Alignment), TemplateBlock block => new CompiledTemplateBlock(block.Elements.Select(e => Compile(e, nameResolver)).ToArray()), _ => throw new NotSupportedException() });
public void EscapedQuote() { LiteralText literal = (LiteralText)MarkupParser.QuotedLiteral.Parse("\"Sphinx of \\\"black quartz\\\" judge my vow.\"").Value; Assert.AreEqual("Sphinx of \"black quartz\" judge my vow.", literal.ToString()); }
public void It_has_a_useful_ToString_method() { var a = new LiteralText("a"); Assert.AreEqual("LiteralText(\"a\")", a.ToString()); }
public void Visit(LiteralText literal) { parts.Add(Expression.Constant(literal.Text, typeof(string))); }
public static void ReleaseLiteralText(LiteralText literal) => s_LiteralTextPool.Release(literal);
public void LiteralTextExcludesBrace() { LiteralText literal = (LiteralText)MarkupParser.Literal.Parse("Sphinx of black quartz judge my vow.{markup in here}").Value; Assert.AreEqual("Sphinx of black quartz judge my vow.", literal.ToString()); }
public void QuotedLiteralParses() { LiteralText literal = (LiteralText)MarkupParser.QuotedLiteral.Parse("\"Sphinx of black quartz judge my vow.\"").Value; Assert.AreEqual("Sphinx of black quartz judge my vow.", literal.ToString()); }