]> git.lyx.org Git - lyx.git/blobdiff - src/output_xhtml.cpp
PDF-form.lyx: add a note
[lyx.git] / src / output_xhtml.cpp
index e6d53666f0530ca6a0c9b2a4064eca502b09e5db..0a0bfd3cbe328f105941b066eaf53e0552851a7d 100644 (file)
@@ -227,6 +227,18 @@ string fontToTag(html::FontTypes type)
        case FT_ROMAN:
        case FT_SANS:
        case FT_TYPE:
+       case FT_SIZE_TINY:
+       case FT_SIZE_SCRIPT:
+       case FT_SIZE_FOOTNOTE:
+       case FT_SIZE_SMALL:
+       case FT_SIZE_NORMAL:
+       case FT_SIZE_LARGE:
+       case FT_SIZE_LARGER:
+       case FT_SIZE_LARGEST:
+       case FT_SIZE_HUGE:
+       case FT_SIZE_HUGER:
+       case FT_SIZE_INCREASE:
+       case FT_SIZE_DECREASE:
                return "span";
        }
        // kill warning
@@ -265,6 +277,26 @@ StartTag fontToStartTag(html::FontTypes type)
                return html::StartTag(tag, "style='font-family:sans-serif;'");
        case FT_TYPE:
                return html::StartTag(tag, "style='font-family:monospace;'");
+       case FT_SIZE_TINY:
+       case FT_SIZE_SCRIPT:
+       case FT_SIZE_FOOTNOTE:
+               return html::StartTag(tag, "style='font-size:x-small;'");
+       case FT_SIZE_SMALL:
+               return html::StartTag(tag, "style='font-size:small;'");
+       case FT_SIZE_NORMAL:
+               return html::StartTag(tag, "style='font-size:normal;'");
+       case FT_SIZE_LARGE:
+               return html::StartTag(tag, "style='font-size:large;'");
+       case FT_SIZE_LARGER:
+       case FT_SIZE_LARGEST:
+               return html::StartTag(tag, "style='font-size:x-large;'");
+       case FT_SIZE_HUGE:
+       case FT_SIZE_HUGER:
+               return html::StartTag(tag, "style='font-size:xx-large;'");
+       case FT_SIZE_INCREASE:
+               return html::StartTag(tag, "style='font-size:larger;'");
+       case FT_SIZE_DECREASE:
+               return html::StartTag(tag, "style='font-size:smaller;'");
        }
        // kill warning
        return StartTag("");
@@ -710,35 +742,15 @@ XHTMLStream & XHTMLStream::operator<<(html::EndTag const & etag)
        // curtag is now the one we actually want.
        os_ << curtag->writeEndTag();
        tag_stack_.pop_back();
-       
+
        return *this;
 }
 
 // End code for XHTMLStream
 
 namespace {
-       
-// convenience functions
-
-inline void openTag(XHTMLStream & xs, Layout const & lay)
-{
-       xs << html::StartTag(lay.htmltag(), lay.htmlattr());
-}
-
-
-void openTag(XHTMLStream & xs, Layout const & lay, 
-             ParagraphParameters const & params)
-{
-       // FIXME Are there other things we should handle here?
-       string const align = alignmentToCSS(params.align());
-       if (align.empty()) {
-               openTag(xs, lay);
-               return;
-       }
-       string attrs = lay.htmlattr() + " style='text-align: " + align + ";'";
-       xs << html::StartTag(lay.htmltag(), attrs);
-}
 
+// convenience functions
 
 inline void openParTag(XHTMLStream & xs, Layout const & lay,
                        std::string parlabel)
@@ -819,7 +831,7 @@ ParagraphList::const_iterator findLastParagraph(
 
 
 ParagraphList::const_iterator findEndOfEnvironment(
-               ParagraphList::const_iterator const pstart,
+               ParagraphList::const_iterator const pstart,
                ParagraphList::const_iterator const & pend)
 {
        ParagraphList::const_iterator p = pstart;
@@ -832,15 +844,19 @@ ParagraphList::const_iterator findEndOfEnvironment(
                // it can happen. We pretend that it's just at lowest depth.
                if (style.latextype == LATEX_COMMAND)
                        return p;
+
                // If depth is down, we're done
                if (p->params().depth() < depth)
                        return p;
+
                // If depth is up, we're not done
                if (p->params().depth() > depth)
                        continue;
-               // Now we know we are at the same depth
-               if (style.latextype == LATEX_PARAGRAPH
-                   || style.latexname() != bstyle.latexname())
+
+               // FIXME I am not sure about the first check.
+               // Surely we *could* have different layouts that count as
+               // LATEX_PARAGRAPH, right? 
+               if (style.latextype == LATEX_PARAGRAPH || style != bstyle)
                        return p;
        }
        return pend;