1*11c03c6dSDamjan Jovanovic /************************************************************** 2*11c03c6dSDamjan Jovanovic * 3*11c03c6dSDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*11c03c6dSDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*11c03c6dSDamjan Jovanovic * distributed with this work for additional information 6*11c03c6dSDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*11c03c6dSDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*11c03c6dSDamjan Jovanovic * "License"); you may not use this file except in compliance 9*11c03c6dSDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*11c03c6dSDamjan Jovanovic * 11*11c03c6dSDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*11c03c6dSDamjan Jovanovic * 13*11c03c6dSDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*11c03c6dSDamjan Jovanovic * software distributed under the License is distributed on an 15*11c03c6dSDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*11c03c6dSDamjan Jovanovic * KIND, either express or implied. See the License for the 17*11c03c6dSDamjan Jovanovic * specific language governing permissions and limitations 18*11c03c6dSDamjan Jovanovic * under the License. 19*11c03c6dSDamjan Jovanovic * 20*11c03c6dSDamjan Jovanovic *************************************************************/ 21*11c03c6dSDamjan Jovanovic 22*11c03c6dSDamjan Jovanovic 23*11c03c6dSDamjan Jovanovic 24*11c03c6dSDamjan Jovanovic #include <precomp.h> 25*11c03c6dSDamjan Jovanovic #include <udm/html/htmlitem.hxx> 26*11c03c6dSDamjan Jovanovic 27*11c03c6dSDamjan Jovanovic // NOT FULLY DECLARED SERVICES 28*11c03c6dSDamjan Jovanovic 29*11c03c6dSDamjan Jovanovic 30*11c03c6dSDamjan Jovanovic namespace csi 31*11c03c6dSDamjan Jovanovic { 32*11c03c6dSDamjan Jovanovic namespace html 33*11c03c6dSDamjan Jovanovic { 34*11c03c6dSDamjan Jovanovic 35*11c03c6dSDamjan Jovanovic using namespace csi::xml; 36*11c03c6dSDamjan Jovanovic 37*11c03c6dSDamjan Jovanovic template <class ELEM> 38*11c03c6dSDamjan Jovanovic inline ELEM & 39*11c03c6dSDamjan Jovanovic PushElem( Element & i_rMain, 40*11c03c6dSDamjan Jovanovic DYN ELEM * let_dpSub, 41*11c03c6dSDamjan Jovanovic DYN Item * let_dpItem ) 42*11c03c6dSDamjan Jovanovic { 43*11c03c6dSDamjan Jovanovic i_rMain << let_dpSub; 44*11c03c6dSDamjan Jovanovic if ( let_dpItem != 0 ) 45*11c03c6dSDamjan Jovanovic *let_dpSub << let_dpItem; 46*11c03c6dSDamjan Jovanovic return *let_dpSub; 47*11c03c6dSDamjan Jovanovic } 48*11c03c6dSDamjan Jovanovic 49*11c03c6dSDamjan Jovanovic 50*11c03c6dSDamjan Jovanovic bool 51*11c03c6dSDamjan Jovanovic Body::LineBreakAfterBeginTag() const 52*11c03c6dSDamjan Jovanovic { 53*11c03c6dSDamjan Jovanovic return true; 54*11c03c6dSDamjan Jovanovic } 55*11c03c6dSDamjan Jovanovic 56*11c03c6dSDamjan Jovanovic #ifndef COMPATIBLE_NETSCAPE_47 57*11c03c6dSDamjan Jovanovic bool 58*11c03c6dSDamjan Jovanovic HorizontalLine::LineBreakAfterBeginTag() const 59*11c03c6dSDamjan Jovanovic { 60*11c03c6dSDamjan Jovanovic return true; 61*11c03c6dSDamjan Jovanovic } 62*11c03c6dSDamjan Jovanovic #endif 63*11c03c6dSDamjan Jovanovic 64*11c03c6dSDamjan Jovanovic 65*11c03c6dSDamjan Jovanovic Image::Image( const String & i_sSrc, 66*11c03c6dSDamjan Jovanovic const String & i_sWidth, 67*11c03c6dSDamjan Jovanovic const String & i_sHeight, 68*11c03c6dSDamjan Jovanovic const String & i_sAlign, 69*11c03c6dSDamjan Jovanovic const String & i_sBorder ) 70*11c03c6dSDamjan Jovanovic : AnEmptyElement( "img" ) 71*11c03c6dSDamjan Jovanovic { 72*11c03c6dSDamjan Jovanovic *this << new AnAttribute(String("src"),i_sSrc) 73*11c03c6dSDamjan Jovanovic << new AnAttribute(String("width"),i_sWidth) 74*11c03c6dSDamjan Jovanovic << new AnAttribute(String("height"),i_sHeight) 75*11c03c6dSDamjan Jovanovic << new AnAttribute(String("align"),i_sAlign) 76*11c03c6dSDamjan Jovanovic << new AnAttribute(String("border"),i_sBorder); 77*11c03c6dSDamjan Jovanovic } 78*11c03c6dSDamjan Jovanovic 79*11c03c6dSDamjan Jovanovic bool 80*11c03c6dSDamjan Jovanovic Paragraph::LineBreakAfterEndTag() const 81*11c03c6dSDamjan Jovanovic { 82*11c03c6dSDamjan Jovanovic return true; 83*11c03c6dSDamjan Jovanovic } 84*11c03c6dSDamjan Jovanovic 85*11c03c6dSDamjan Jovanovic const char * 86*11c03c6dSDamjan Jovanovic Headline::sTags[6] = { "h1", "h2", "h3", "h4", "h5", "h6" }; 87*11c03c6dSDamjan Jovanovic 88*11c03c6dSDamjan Jovanovic bool 89*11c03c6dSDamjan Jovanovic Headline::LineBreakAfterEndTag() const 90*11c03c6dSDamjan Jovanovic { 91*11c03c6dSDamjan Jovanovic return true; 92*11c03c6dSDamjan Jovanovic } 93*11c03c6dSDamjan Jovanovic 94*11c03c6dSDamjan Jovanovic #ifndef COMPATIBLE_NETSCAPE_47 95*11c03c6dSDamjan Jovanovic bool 96*11c03c6dSDamjan Jovanovic LineBreak::LineBreakAfterBeginTag() const 97*11c03c6dSDamjan Jovanovic { 98*11c03c6dSDamjan Jovanovic return true; 99*11c03c6dSDamjan Jovanovic } 100*11c03c6dSDamjan Jovanovic #endif 101*11c03c6dSDamjan Jovanovic 102*11c03c6dSDamjan Jovanovic 103*11c03c6dSDamjan Jovanovic bool 104*11c03c6dSDamjan Jovanovic TableCell::LineBreakAfterEndTag() const 105*11c03c6dSDamjan Jovanovic { 106*11c03c6dSDamjan Jovanovic return true; 107*11c03c6dSDamjan Jovanovic } 108*11c03c6dSDamjan Jovanovic 109*11c03c6dSDamjan Jovanovic 110*11c03c6dSDamjan Jovanovic 111*11c03c6dSDamjan Jovanovic TableCell & 112*11c03c6dSDamjan Jovanovic TableRow::AddCell( DYN Item * let_dpItem ) 113*11c03c6dSDamjan Jovanovic { 114*11c03c6dSDamjan Jovanovic return PushElem( *this, new TableCell, let_dpItem ); 115*11c03c6dSDamjan Jovanovic } 116*11c03c6dSDamjan Jovanovic 117*11c03c6dSDamjan Jovanovic bool 118*11c03c6dSDamjan Jovanovic TableRow::LineBreakAfterBeginTag() const 119*11c03c6dSDamjan Jovanovic { 120*11c03c6dSDamjan Jovanovic return true; 121*11c03c6dSDamjan Jovanovic } 122*11c03c6dSDamjan Jovanovic 123*11c03c6dSDamjan Jovanovic 124*11c03c6dSDamjan Jovanovic Table::Table( const String & i_sBorder, 125*11c03c6dSDamjan Jovanovic const String & i_sWidth, 126*11c03c6dSDamjan Jovanovic const String & i_sCellPadding, 127*11c03c6dSDamjan Jovanovic const String & i_sCellSpacing ) 128*11c03c6dSDamjan Jovanovic : csi::xml::AnElement("table") 129*11c03c6dSDamjan Jovanovic { 130*11c03c6dSDamjan Jovanovic if ( i_sBorder.length() > 0 ) 131*11c03c6dSDamjan Jovanovic *this << new AnAttribute(String("border"),i_sBorder); 132*11c03c6dSDamjan Jovanovic if ( i_sBorder.length() > 0 ) 133*11c03c6dSDamjan Jovanovic *this << new AnAttribute(String("width"),i_sWidth); 134*11c03c6dSDamjan Jovanovic if ( i_sBorder.length() > 0 ) 135*11c03c6dSDamjan Jovanovic *this << new AnAttribute(String("cellpadding"),i_sCellPadding); 136*11c03c6dSDamjan Jovanovic if ( i_sBorder.length() > 0 ) 137*11c03c6dSDamjan Jovanovic *this << new AnAttribute(String("cellspacing"),i_sCellSpacing); 138*11c03c6dSDamjan Jovanovic } 139*11c03c6dSDamjan Jovanovic 140*11c03c6dSDamjan Jovanovic TableRow & 141*11c03c6dSDamjan Jovanovic Table::AddRow() 142*11c03c6dSDamjan Jovanovic { 143*11c03c6dSDamjan Jovanovic TableRow * ret = new TableRow; 144*11c03c6dSDamjan Jovanovic *this << ret; 145*11c03c6dSDamjan Jovanovic return *ret; 146*11c03c6dSDamjan Jovanovic } 147*11c03c6dSDamjan Jovanovic 148*11c03c6dSDamjan Jovanovic bool 149*11c03c6dSDamjan Jovanovic Table::FinishEmptyTag_XmlStyle() const 150*11c03c6dSDamjan Jovanovic { 151*11c03c6dSDamjan Jovanovic return false; 152*11c03c6dSDamjan Jovanovic } 153*11c03c6dSDamjan Jovanovic 154*11c03c6dSDamjan Jovanovic bool 155*11c03c6dSDamjan Jovanovic Table::LineBreakAfterBeginTag() const 156*11c03c6dSDamjan Jovanovic { 157*11c03c6dSDamjan Jovanovic return true; 158*11c03c6dSDamjan Jovanovic } 159*11c03c6dSDamjan Jovanovic 160*11c03c6dSDamjan Jovanovic 161*11c03c6dSDamjan Jovanovic 162*11c03c6dSDamjan Jovanovic bool 163*11c03c6dSDamjan Jovanovic DefListTerm::LineBreakAfterEndTag() const 164*11c03c6dSDamjan Jovanovic { 165*11c03c6dSDamjan Jovanovic return true; 166*11c03c6dSDamjan Jovanovic } 167*11c03c6dSDamjan Jovanovic 168*11c03c6dSDamjan Jovanovic bool 169*11c03c6dSDamjan Jovanovic DefListDefinition::LineBreakAfterEndTag() const 170*11c03c6dSDamjan Jovanovic { 171*11c03c6dSDamjan Jovanovic return true; 172*11c03c6dSDamjan Jovanovic } 173*11c03c6dSDamjan Jovanovic 174*11c03c6dSDamjan Jovanovic 175*11c03c6dSDamjan Jovanovic 176*11c03c6dSDamjan Jovanovic 177*11c03c6dSDamjan Jovanovic 178*11c03c6dSDamjan Jovanovic DefListTerm & 179*11c03c6dSDamjan Jovanovic DefList::AddTerm( DYN csi::xml::Item* let_dpItem ) 180*11c03c6dSDamjan Jovanovic { 181*11c03c6dSDamjan Jovanovic return PushElem( *this, new DefListTerm, let_dpItem ); 182*11c03c6dSDamjan Jovanovic } 183*11c03c6dSDamjan Jovanovic 184*11c03c6dSDamjan Jovanovic DefListDefinition & 185*11c03c6dSDamjan Jovanovic DefList::AddDefinition( DYN csi::xml::Item* let_dpItem ) 186*11c03c6dSDamjan Jovanovic { 187*11c03c6dSDamjan Jovanovic return PushElem( *this, new DefListDefinition, let_dpItem ); 188*11c03c6dSDamjan Jovanovic } 189*11c03c6dSDamjan Jovanovic 190*11c03c6dSDamjan Jovanovic bool 191*11c03c6dSDamjan Jovanovic DefList::LineBreakAfterBeginTag() const 192*11c03c6dSDamjan Jovanovic { 193*11c03c6dSDamjan Jovanovic return true; 194*11c03c6dSDamjan Jovanovic } 195*11c03c6dSDamjan Jovanovic 196*11c03c6dSDamjan Jovanovic bool 197*11c03c6dSDamjan Jovanovic DefList::FinishEmptyTag_XmlStyle() const 198*11c03c6dSDamjan Jovanovic { 199*11c03c6dSDamjan Jovanovic return false; 200*11c03c6dSDamjan Jovanovic } 201*11c03c6dSDamjan Jovanovic 202*11c03c6dSDamjan Jovanovic bool 203*11c03c6dSDamjan Jovanovic ListItem::LineBreakAfterEndTag() const 204*11c03c6dSDamjan Jovanovic { 205*11c03c6dSDamjan Jovanovic return true; 206*11c03c6dSDamjan Jovanovic } 207*11c03c6dSDamjan Jovanovic 208*11c03c6dSDamjan Jovanovic 209*11c03c6dSDamjan Jovanovic 210*11c03c6dSDamjan Jovanovic 211*11c03c6dSDamjan Jovanovic ListItem & 212*11c03c6dSDamjan Jovanovic NumeratedList::AddItem( DYN csi::xml::Item* let_dpItem ) 213*11c03c6dSDamjan Jovanovic { 214*11c03c6dSDamjan Jovanovic return PushElem( *this, new ListItem, let_dpItem ); 215*11c03c6dSDamjan Jovanovic } 216*11c03c6dSDamjan Jovanovic 217*11c03c6dSDamjan Jovanovic bool 218*11c03c6dSDamjan Jovanovic NumeratedList::LineBreakAfterBeginTag() const 219*11c03c6dSDamjan Jovanovic { 220*11c03c6dSDamjan Jovanovic return true; 221*11c03c6dSDamjan Jovanovic } 222*11c03c6dSDamjan Jovanovic 223*11c03c6dSDamjan Jovanovic 224*11c03c6dSDamjan Jovanovic ListItem & 225*11c03c6dSDamjan Jovanovic SimpleList::AddItem( DYN csi::xml::Item* let_dpItem ) 226*11c03c6dSDamjan Jovanovic { 227*11c03c6dSDamjan Jovanovic return PushElem( *this, new ListItem, let_dpItem ); 228*11c03c6dSDamjan Jovanovic } 229*11c03c6dSDamjan Jovanovic 230*11c03c6dSDamjan Jovanovic bool 231*11c03c6dSDamjan Jovanovic SimpleList::LineBreakAfterBeginTag() const 232*11c03c6dSDamjan Jovanovic { 233*11c03c6dSDamjan Jovanovic return true; 234*11c03c6dSDamjan Jovanovic } 235*11c03c6dSDamjan Jovanovic 236*11c03c6dSDamjan Jovanovic 237*11c03c6dSDamjan Jovanovic 238*11c03c6dSDamjan Jovanovic } // namespace html 239*11c03c6dSDamjan Jovanovic } // namespace csi 240