]> git.lyx.org Git - features.git/commitdiff
In certain cases, we are going to need to write the outer tag, etc, in a
authorRichard Heck <rgheck@comcast.net>
Sat, 21 Nov 2009 22:56:42 +0000 (22:56 +0000)
committerRichard Heck <rgheck@comcast.net>
Sat, 21 Nov 2009 22:56:42 +0000 (22:56 +0000)
derived class and then will not want to write it again here. So this
gives us that ability.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32132 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/InsetText.cpp
src/insets/InsetText.h

index 65b6da7756f282d4f0d148bd035c8c472dcbee2c..1dcf068a4079421ffc07746453d0a1f124e49f16 100644 (file)
@@ -496,6 +496,13 @@ int InsetText::docbook(odocstream & os, OutputParams const & runparams) const
 
 
 docstring InsetText::xhtml(XHTMLStream & xs, OutputParams const & runparams) const
+{
+       return insetAsXHTML(xs, runparams, WriteEverything);
+}
+
+
+docstring InsetText::insetAsXHTML(XHTMLStream & xs, OutputParams const & runparams,
+                                  XHTMLOptions opts) const
 {
        if (undefined()) {
                xhtmlParagraphs(text_, buffer(), xs, runparams);
@@ -503,8 +510,9 @@ docstring InsetText::xhtml(XHTMLStream & xs, OutputParams const & runparams) con
        }
 
        InsetLayout const & il = getLayout();
-       xs << StartTag(il.htmltag(), il.htmlattr());
-       if (!il.counter().empty()) {
+       if (opts & WriteOuterTag)
+               xs << StartTag(il.htmltag(), il.htmlattr());
+       if ((opts & WriteLabel) && !il.counter().empty()) {
                BufferParams const & bp = buffer().masterBuffer()->params();
                Counters & cntrs = bp.documentClass().counters();
                cntrs.step(il.counter());
@@ -521,7 +529,8 @@ docstring InsetText::xhtml(XHTMLStream & xs, OutputParams const & runparams) con
                }
        }
 
-       xs << StartTag(il.htmlinnertag(), il.htmlinnerattr());
+       if (opts & WriteInnerTag)
+               xs << StartTag(il.htmlinnertag(), il.htmlinnerattr());
        if (il.isMultiPar())
                xhtmlParagraphs(text_, buffer(), xs, runparams);
        else {
@@ -529,8 +538,10 @@ docstring InsetText::xhtml(XHTMLStream & xs, OutputParams const & runparams) con
                ours.html_make_pars = false;
                xhtmlParagraphs(text_, buffer(), xs, ours);
        }
-       xs << EndTag(il.htmlinnertag());
-       xs << EndTag(il.htmltag());
+       if (opts & WriteInnerTag)
+               xs << EndTag(il.htmlinnertag());
+       if (opts & WriteOuterTag)
+               xs << EndTag(il.htmltag());
        return docstring();
 }
 
index 64002f91d79888f850ef11c6dad28ca79bae05d9..bf72bcf1f78cbbe40f194c50f4036d1e5d6649f8 100644 (file)
@@ -80,6 +80,17 @@ public:
        int docbook(odocstream &, OutputParams const &) const;
        ///
        docstring xhtml(XHTMLStream &, OutputParams const &) const;
+       ///
+       enum XHTMLOptions {
+               JustText = 0,
+               WriteOuterTag = 1,
+               WriteLabel = 2,
+               WriteInnerTag = 4,
+               WriteEverything = 7
+       };
+       ///
+       docstring insetAsXHTML(XHTMLStream &, OutputParams const &, 
+                              XHTMLOptions) const;
        // FIXME XHTMLStream to be removed
        docstring xhtml(odocstream &, OutputParams const &) const 
                { return docstring (); }