Esempio n. 1
0
        protected override void Write(OpenXMLRenderer renderer, EmphasisInline obj)
        {
            int nPushed = 0;

            switch (obj.DelimiterChar)
            {
            case '*':
            case '_':
                if (obj.IsDouble)
                {
                    renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Bold);
                    ++nPushed;
                }
                else
                {
                    renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Italic);
                    ++nPushed;
                }
                break;

            case '~':
                if (obj.IsDouble)
                {
                    renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Strikethrough);
                    ++nPushed;
                }
                else
                {
                    renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Subscript);
                    ++nPushed;
                }

                break;

            case '^':
                renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Superscript);
                ++nPushed;
                break;

            case '+':
                // Inserted style
            {
                renderer.PushInlineFormat(OpenXMLRenderer.InlineFormat.Underline);
                ++nPushed;
            }
            break;

            case '=':
                // Marked style
                break;
            }

            renderer.WriteChildren(obj);

            for (int i = 0; i < nPushed; ++i)
            {
                renderer.PopInlineFormat();
            }
        }