LCOV - code coverage report
Current view: top level - libreoffice/autodoc/source/display/toolkit - hf_navi_main.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 65 65 100.0 %
Date: 2012-12-27 Functions: 23 24 95.8 %
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             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <precomp.h>
      21             : #include <toolkit/hf_navi_main.hxx>
      22             : 
      23             : 
      24             : // NOT FULLY DEFINED SERVICES
      25             : #include <cosv/tpl/tpltools.hxx>
      26             : 
      27             : 
      28             : 
      29             : //********************    MainItem and derived ones      ***************//
      30             : class HF_MainItem : public HtmlMaker
      31             : {
      32             :   public:
      33       39155 :     virtual             ~HF_MainItem() {}
      34       39155 :     void                Produce_Item() const    { do_ProduceItem(); }
      35             :   protected:
      36       39155 :                         HF_MainItem(
      37             :                             Xml::Element &      o_out )
      38       39155 :                                                 :   HtmlMaker(o_out) {}
      39             :   private:
      40             :     virtual void        do_ProduceItem() const = 0;
      41             : };
      42             : 
      43             : 
      44             : namespace
      45             : {
      46             : 
      47             : class StdItem : public HF_MainItem
      48             : {
      49             :   public:
      50             :                         StdItem(
      51             :                             Xml::Element &      o_out,
      52             :                             const char *        i_sText,
      53             :                             const char *        i_sLink );
      54             : 
      55             :                         ~StdItem();
      56             :   private:
      57             :     virtual void        do_ProduceItem() const;
      58             : 
      59             :     // DATA
      60             :     String              sText;
      61             :     String              sLink;
      62             : };
      63             : 
      64             : class SelfItem : public HF_MainItem
      65             : {
      66             :   public:
      67             :                         SelfItem(
      68             :                             Xml::Element &      o_out,
      69             :                             const char *        i_sText );
      70             :                         ~SelfItem();
      71             :   private:
      72             :     virtual void        do_ProduceItem() const;
      73             : 
      74             :     // DATA
      75             :     String              sText;
      76             : };
      77             : 
      78             : class NoneItem : public HF_MainItem
      79             : {
      80             :   public:
      81             :                         NoneItem(
      82             :                             Xml::Element &      o_out,
      83             :                             const char *        i_sText );
      84             :                         ~NoneItem();
      85             :   private:
      86             :     virtual void        do_ProduceItem() const;
      87             : 
      88             :     // DATA
      89             :     String              sText;
      90             : };
      91             : 
      92             : }   // anonymous namespace
      93             : 
      94             : 
      95             : 
      96             : //********************    HF_NaviMainRow      ***************//
      97             : 
      98             : 
      99             : 
     100        7831 : HF_NaviMainRow::HF_NaviMainRow( Xml::Element & o_out )
     101             :     :   HtmlMaker(o_out),
     102             :         aItems(),
     103        7831 :         pRow(0)
     104             : {
     105        7831 :     aItems.reserve(5);
     106             : 
     107             :     pRow =
     108        7831 :     &(  CurOut()
     109       15662 :         >> *new Html::Table
     110       23493 :            << new Html::ClassAttr("navimain")
     111       15662 :            << new Xml::AnAttribute( "border", "0" )
     112       15662 :            << new Xml::AnAttribute( "cellpadding", "3" )
     113       15662 :            >> *new Html::TableRow
     114        7831 :      );
     115        7831 : }
     116             : 
     117       15662 : HF_NaviMainRow::~HF_NaviMainRow()
     118             : {
     119        7831 :     csv::erase_container_of_heap_ptrs(aItems);
     120        7831 : }
     121             : 
     122             : void
     123       27674 : HF_NaviMainRow::Add_StdItem( const char * i_sText,
     124             :                              const char * i_sLink )
     125             : {
     126       27674 :     aItems.push_back(new StdItem( *pRow,i_sText,i_sLink ));
     127       27674 : }
     128             : 
     129             : void
     130        3697 : HF_NaviMainRow::Add_SelfItem( const char * i_sText )
     131             : {
     132        3697 :     aItems.push_back(new SelfItem( *pRow,i_sText ));
     133        3697 : }
     134             : 
     135             : void
     136        7784 : HF_NaviMainRow::Add_NoneItem( const char * i_sText )
     137             : {
     138        7784 :     aItems.push_back(new NoneItem( *pRow,i_sText ));
     139        7784 : }
     140             : 
     141             : void
     142        7831 : HF_NaviMainRow::Produce_Row()
     143             : {
     144        7831 :     ItemList::iterator itEnd = aItems.end();
     145       46986 :     for ( ItemList::iterator iter = aItems.begin();
     146             :           iter != itEnd;
     147             :           ++iter )
     148             :     {
     149       39155 :          (*iter)->Produce_Item();
     150             :     }
     151        7831 : }
     152             : 
     153             : 
     154             : 
     155             : 
     156             : //********************    MainItem and derived ones      ***************//
     157             : 
     158             : namespace
     159             : {
     160             : 
     161       27674 : StdItem::StdItem( Xml::Element &      o_out,
     162             :                   const char *        i_sText,
     163             :                   const char *        i_sLink )
     164             :     :   HF_MainItem(o_out),
     165             :         sText(i_sText),
     166       27674 :         sLink(i_sLink)
     167             : {
     168       27674 : }
     169             : 
     170       55348 : StdItem::~StdItem()
     171             : {
     172       55348 : }
     173             : 
     174             : void
     175       27674 : StdItem::do_ProduceItem() const
     176             : {
     177             :     Xml::Element &
     178       27674 :                 rCell = CurOut() >>* new Html::TableCell;
     179             :     rCell
     180       55348 :         << new Html::ClassAttr( "navimain" )
     181       83022 :         >> *new Html::Link(sLink.c_str())
     182       83022 :             << new Html::ClassAttr( "navimain" )
     183       55348 :             << sText.c_str();
     184       27674 : }
     185             : 
     186        3697 : SelfItem::SelfItem( Xml::Element &      o_out,
     187             :                     const char *        i_sText )
     188             :     :   HF_MainItem(o_out),
     189        3697 :         sText(i_sText)
     190             : {
     191        3697 : }
     192             : 
     193        7394 : SelfItem::~SelfItem()
     194             : {
     195        7394 : }
     196             : 
     197             : void
     198        3697 : SelfItem::do_ProduceItem() const
     199             : {
     200             :     Xml::Element &
     201        3697 :                 rCell = CurOut() >>* new Html::TableCell;
     202             :     rCell
     203        7394 :         << new Html::ClassAttr( "navimainself" )
     204        7394 :         << sText.c_str();
     205        3697 : }
     206             : 
     207        7784 : NoneItem::NoneItem( Xml::Element &      o_out,
     208             :                     const char *        i_sText )
     209             :     :   HF_MainItem(o_out),
     210        7784 :         sText(i_sText)
     211             : {
     212        7784 : }
     213             : 
     214       15568 : NoneItem::~NoneItem()
     215             : {
     216       15568 : }
     217             : 
     218             : void
     219        7784 : NoneItem::do_ProduceItem() const
     220             : {
     221             :     Xml::Element &
     222        7784 :                 rCell = CurOut() >>* new Html::TableCell;
     223             :     rCell
     224       15568 :         << new Html::ClassAttr( "navimainnone" )
     225       15568 :         << sText.c_str();
     226        7784 : }
     227             : 
     228           3 : }   // anonymous namespace
     229             : 
     230             : 
     231             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10