LCOV - code coverage report
Current view: top level - svtools/source/svhtml - HtmlWriter.cxx (source / functions) Hit Total Coverage
Test: commit e02a6cb2c3e2b23b203b422e4e0680877f232636 Lines: 0 66 0.0 %
Date: 2014-04-14 Functions: 0 10 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  */
      10             : 
      11             : #include <svtools/HtmlWriter.hxx>
      12             : 
      13           0 : HtmlWriter::HtmlWriter(SvStream& rStream) :
      14             :     mrStream(rStream),
      15             :     mbElementOpen(false),
      16             :     mbContentWritten(false),
      17           0 :     mbPrettyPrint(true)
      18           0 : {}
      19             : 
      20           0 : HtmlWriter::~HtmlWriter()
      21           0 : {}
      22             : 
      23           0 : void HtmlWriter::prettyPrint(bool bChoice)
      24             : {
      25           0 :     mbPrettyPrint = bChoice;
      26           0 : }
      27             : 
      28           0 : void HtmlWriter::start(const OString &aElement)
      29             : {
      30           0 :     if (mbElementOpen)
      31             :     {
      32           0 :         mrStream.WriteChar('>');
      33           0 :         if (!mbContentWritten && mbPrettyPrint)
      34           0 :             mrStream.WriteChar('\n');
      35           0 :         mbContentWritten = false;
      36             :     }
      37           0 :     maElementStack.push_back(aElement);
      38             : 
      39           0 :     if (mbPrettyPrint)
      40             :     {
      41           0 :         for(size_t i = 0; i < maElementStack.size() - 1; i++)
      42             :         {
      43           0 :             mrStream.WriteCharPtr("  ");
      44             :         }
      45             :     }
      46             : 
      47           0 :     mrStream.WriteChar('<');
      48           0 :     mrStream.WriteOString(aElement);
      49           0 :     mbElementOpen = true;
      50           0 : }
      51             : 
      52           0 : void HtmlWriter::single(const OString &aContent)
      53             : {
      54           0 :     start(aContent);
      55           0 :     end();
      56           0 : }
      57             : 
      58           0 : void HtmlWriter::endAttribute()
      59             : {
      60           0 :     if (mbElementOpen)
      61             :     {
      62           0 :         mrStream.WriteCharPtr("/>");
      63           0 :         if (mbPrettyPrint)
      64           0 :             mrStream.WriteCharPtr("\n");
      65           0 :         mbElementOpen = false;
      66             :     }
      67           0 : }
      68             : 
      69           0 : void HtmlWriter::end()
      70             : {
      71           0 :     if (mbElementOpen)
      72             :     {
      73           0 :         mrStream.WriteCharPtr("/>");
      74           0 :         if (mbPrettyPrint)
      75           0 :             mrStream.WriteCharPtr("\n");
      76             :     }
      77             :     else
      78             :     {
      79           0 :         if (!mbContentWritten && mbPrettyPrint)
      80             :         {
      81           0 :             for(size_t i = 0; i < maElementStack.size() - 1; i++)
      82             :             {
      83           0 :                 mrStream.WriteCharPtr("  ");
      84             :             }
      85             :         }
      86           0 :         mrStream.WriteCharPtr("</");
      87           0 :         mrStream.WriteOString(maElementStack.back());
      88           0 :         mrStream.WriteCharPtr(">");
      89           0 :         if (mbPrettyPrint)
      90           0 :             mrStream.WriteCharPtr("\n");
      91             :     }
      92           0 :     maElementStack.pop_back();
      93           0 :     mbElementOpen = false;
      94           0 :     mbContentWritten = false;
      95           0 : }
      96             : 
      97           0 : void HtmlWriter::write(const OString &aContent)
      98             : {
      99           0 :     if (mbElementOpen)
     100             :     {
     101           0 :         mrStream.WriteChar('>');
     102           0 :         mbElementOpen = false;
     103             :     }
     104           0 :     mbContentWritten = true;
     105           0 :     mrStream.WriteOString(aContent);
     106           0 : }
     107             : 
     108           0 : void HtmlWriter::attribute(const OString &aAttribute, const OString &aValue)
     109             : {
     110           0 :     if (mbElementOpen && !aAttribute.isEmpty() && !aValue.isEmpty())
     111             :     {
     112           0 :         mrStream.WriteChar(' ');
     113           0 :         mrStream.WriteOString(aAttribute);
     114           0 :         mrStream.WriteChar('=');
     115           0 :         mrStream.WriteChar('"');
     116           0 :         mrStream.WriteOString(aValue);
     117           0 :         mrStream.WriteChar('"');
     118             :     }
     119           0 : }
     120             : 
     121             : 
     122             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10