189502f8fSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 389502f8fSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 489502f8fSAndrew Rist * or more contributor license agreements. See the NOTICE file 589502f8fSAndrew Rist * distributed with this work for additional information 689502f8fSAndrew Rist * regarding copyright ownership. The ASF licenses this file 789502f8fSAndrew Rist * to you under the Apache License, Version 2.0 (the 889502f8fSAndrew Rist * "License"); you may not use this file except in compliance 989502f8fSAndrew Rist * with the License. You may obtain a copy of the License at 1089502f8fSAndrew Rist * 1189502f8fSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 1289502f8fSAndrew Rist * 1389502f8fSAndrew Rist * Unless required by applicable law or agreed to in writing, 1489502f8fSAndrew Rist * software distributed under the License is distributed on an 1589502f8fSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1689502f8fSAndrew Rist * KIND, either express or implied. See the License for the 1789502f8fSAndrew Rist * specific language governing permissions and limitations 1889502f8fSAndrew Rist * under the License. 1989502f8fSAndrew Rist * 2089502f8fSAndrew Rist *************************************************************/ 2189502f8fSAndrew Rist 2289502f8fSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef CSI_HTML_HTMLITEM_HXX 25cdf0e10cSrcweir #define CSI_HTML_HTMLITEM_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir // USED SERVICES 28cdf0e10cSrcweir // BASE CLASSES 29cdf0e10cSrcweir #include <udm/xml/xmlitem.hxx> 30cdf0e10cSrcweir // COMPONENTS 31cdf0e10cSrcweir // PARAMETERS 32cdf0e10cSrcweir 33cdf0e10cSrcweir 34cdf0e10cSrcweir #define COMPATIBLE_NETSCAPE_47 35cdf0e10cSrcweir 36cdf0e10cSrcweir namespace csi 37cdf0e10cSrcweir { 38cdf0e10cSrcweir namespace html 39cdf0e10cSrcweir { 40cdf0e10cSrcweir 41cdf0e10cSrcweir 42cdf0e10cSrcweir 43cdf0e10cSrcweir /** <BODY> 44cdf0e10cSrcweir */ 45cdf0e10cSrcweir class Body : public csi::xml::AnElement 46cdf0e10cSrcweir { 47cdf0e10cSrcweir public: Body()48cdf0e10cSrcweir Body() 49cdf0e10cSrcweir : csi::xml::AnElement( "body" ) {} 50cdf0e10cSrcweir private: 51cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 52cdf0e10cSrcweir }; 53cdf0e10cSrcweir 54cdf0e10cSrcweir 55cdf0e10cSrcweir #ifdef COMPATIBLE_NETSCAPE_47 56cdf0e10cSrcweir /** <BR> 57cdf0e10cSrcweir */ 58cdf0e10cSrcweir class HorizontalLine : public xml::XmlCode 59cdf0e10cSrcweir { 60cdf0e10cSrcweir public: HorizontalLine()61cdf0e10cSrcweir HorizontalLine() 62cdf0e10cSrcweir : xml::XmlCode("<hr>\n") {} 63cdf0e10cSrcweir }; 64cdf0e10cSrcweir 65cdf0e10cSrcweir #else 66cdf0e10cSrcweir /** <HR> 67cdf0e10cSrcweir */ 68cdf0e10cSrcweir class HorizontalLine : public csi::xml::AnEmptyElement 69cdf0e10cSrcweir { 70cdf0e10cSrcweir public: HorizontalLine()71cdf0e10cSrcweir HorizontalLine() 72cdf0e10cSrcweir : csi::xml::AnEmptyElement("hr") {} 73cdf0e10cSrcweir private: 74cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 75cdf0e10cSrcweir }; 76cdf0e10cSrcweir #endif 77cdf0e10cSrcweir 78cdf0e10cSrcweir 79cdf0e10cSrcweir /** <IMG .... > 80cdf0e10cSrcweir */ 81cdf0e10cSrcweir class Image : public csi::xml::AnEmptyElement 82cdf0e10cSrcweir { 83cdf0e10cSrcweir public: 84cdf0e10cSrcweir Image( 85cdf0e10cSrcweir const ::csv::String & i_sSrc, 86cdf0e10cSrcweir const ::csv::String & i_sWidth, 87cdf0e10cSrcweir const ::csv::String & i_sHeight, 88cdf0e10cSrcweir const ::csv::String & i_sAlign, 89cdf0e10cSrcweir const ::csv::String & i_sBorder ); 90cdf0e10cSrcweir }; 91cdf0e10cSrcweir 92cdf0e10cSrcweir /** <A name=""> 93cdf0e10cSrcweir */ 94cdf0e10cSrcweir class Label : public csi::xml::AnElement 95cdf0e10cSrcweir { 96cdf0e10cSrcweir public: Label(const::csv::String & i_sLabel)97cdf0e10cSrcweir Label( 98cdf0e10cSrcweir const ::csv::String & i_sLabel ) 99cdf0e10cSrcweir : csi::xml::AnElement("a") 100cdf0e10cSrcweir { *this << new csi::xml::AnAttribute(String("name"), i_sLabel); } 101cdf0e10cSrcweir }; 102cdf0e10cSrcweir 103cdf0e10cSrcweir /** <p> 104cdf0e10cSrcweir */ 105cdf0e10cSrcweir class Paragraph : public csi::xml::AnElement 106cdf0e10cSrcweir { 107cdf0e10cSrcweir public: Paragraph()108cdf0e10cSrcweir Paragraph() 109cdf0e10cSrcweir : csi::xml::AnElement("p") {} 110cdf0e10cSrcweir private: 111cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 112cdf0e10cSrcweir }; 113cdf0e10cSrcweir 114cdf0e10cSrcweir /** <H1-6> 115cdf0e10cSrcweir */ 116cdf0e10cSrcweir class Headline : public csi::xml::APureElement 117cdf0e10cSrcweir { 118cdf0e10cSrcweir public: Headline(int i_nNr)119cdf0e10cSrcweir Headline( 120cdf0e10cSrcweir int i_nNr ) 121cdf0e10cSrcweir : csi::xml::APureElement(sTags[i_nNr-1]) { csv_assert(1 <= i_nNr AND i_nNr < 7); } 122cdf0e10cSrcweir private: 123cdf0e10cSrcweir static const char * sTags[6]; 124cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 125cdf0e10cSrcweir }; 126cdf0e10cSrcweir 127cdf0e10cSrcweir #ifdef COMPATIBLE_NETSCAPE_47 128cdf0e10cSrcweir /** <BR> 129cdf0e10cSrcweir */ 130cdf0e10cSrcweir class LineBreak : public xml::XmlCode 131cdf0e10cSrcweir { 132cdf0e10cSrcweir public: LineBreak()133cdf0e10cSrcweir LineBreak() 134cdf0e10cSrcweir : xml::XmlCode("<br>\n") {} 135cdf0e10cSrcweir }; 136cdf0e10cSrcweir 137cdf0e10cSrcweir #else 138cdf0e10cSrcweir /** <BR> 139cdf0e10cSrcweir */ 140cdf0e10cSrcweir class LineBreak : public csi::xml::ASglTag 141cdf0e10cSrcweir { 142cdf0e10cSrcweir public: LineBreak()143cdf0e10cSrcweir LineBreak() 144cdf0e10cSrcweir : csi::xml::ASglTag("br") {} 145cdf0e10cSrcweir private: 146cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 147cdf0e10cSrcweir }; 148cdf0e10cSrcweir #endif 149cdf0e10cSrcweir 150cdf0e10cSrcweir 151cdf0e10cSrcweir /** <b> 152cdf0e10cSrcweir */ 153cdf0e10cSrcweir class Bold : public csi::xml::APureElement 154cdf0e10cSrcweir { 155cdf0e10cSrcweir public: Bold()156cdf0e10cSrcweir Bold() 157cdf0e10cSrcweir : csi::xml::APureElement("b") {} 158cdf0e10cSrcweir }; 159cdf0e10cSrcweir 160cdf0e10cSrcweir /** <i> 161cdf0e10cSrcweir */ 162cdf0e10cSrcweir class Italic : public csi::xml::APureElement 163cdf0e10cSrcweir { 164cdf0e10cSrcweir public: Italic()165cdf0e10cSrcweir Italic() 166cdf0e10cSrcweir : csi::xml::APureElement("i") {} 167cdf0e10cSrcweir }; 168cdf0e10cSrcweir 169cdf0e10cSrcweir /** <strong> 170cdf0e10cSrcweir */ 171cdf0e10cSrcweir class Strong : public csi::xml::APureElement 172cdf0e10cSrcweir { 173cdf0e10cSrcweir public: Strong()174cdf0e10cSrcweir Strong() 175cdf0e10cSrcweir : csi::xml::APureElement("strong") {} 176cdf0e10cSrcweir }; 177cdf0e10cSrcweir 178cdf0e10cSrcweir /** <em> 179cdf0e10cSrcweir */ 180cdf0e10cSrcweir class Emphasized : public csi::xml::APureElement 181cdf0e10cSrcweir { 182cdf0e10cSrcweir public: Emphasized()183cdf0e10cSrcweir Emphasized() 184cdf0e10cSrcweir : csi::xml::APureElement("em") {} 185cdf0e10cSrcweir }; 186cdf0e10cSrcweir 187cdf0e10cSrcweir /** <font> 188cdf0e10cSrcweir */ 189cdf0e10cSrcweir class Font : public csi::xml::AnElement 190cdf0e10cSrcweir { 191cdf0e10cSrcweir public: Font()192cdf0e10cSrcweir Font() 193cdf0e10cSrcweir : csi::xml::AnElement("font") {} 194cdf0e10cSrcweir }; 195cdf0e10cSrcweir 196cdf0e10cSrcweir 197cdf0e10cSrcweir /** <A href=""> 198cdf0e10cSrcweir */ 199cdf0e10cSrcweir class Link : public csi::xml::AnElement 200cdf0e10cSrcweir { 201cdf0e10cSrcweir public: Link(const::csv::String & i_sDestinaton)202cdf0e10cSrcweir Link( 203cdf0e10cSrcweir const ::csv::String &i_sDestinaton ) 204cdf0e10cSrcweir : csi::xml::AnElement("a") 205cdf0e10cSrcweir { *this << new csi::xml::AnAttribute(String("href"), i_sDestinaton); } 206cdf0e10cSrcweir }; 207cdf0e10cSrcweir 208cdf0e10cSrcweir class TableCell : public csi::xml::AnElement 209cdf0e10cSrcweir { 210cdf0e10cSrcweir public: TableCell()211cdf0e10cSrcweir TableCell() 212cdf0e10cSrcweir : csi::xml::AnElement("td") {} 213cdf0e10cSrcweir private: 214cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 215cdf0e10cSrcweir }; 216cdf0e10cSrcweir 217cdf0e10cSrcweir class TableRow : public csi::xml::AnElement 218cdf0e10cSrcweir { 219cdf0e10cSrcweir public: TableRow()220cdf0e10cSrcweir TableRow() 221cdf0e10cSrcweir : csi::xml::AnElement("tr") {} 222cdf0e10cSrcweir 223cdf0e10cSrcweir TableCell & AddCell( 224cdf0e10cSrcweir DYN csi::xml::Item* let_dpItem = 0 ); 225cdf0e10cSrcweir private: 226cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 227cdf0e10cSrcweir }; 228cdf0e10cSrcweir 229cdf0e10cSrcweir /** <table ....> 230cdf0e10cSrcweir */ 231cdf0e10cSrcweir class Table : public csi::xml::AnElement 232cdf0e10cSrcweir { 233cdf0e10cSrcweir public: Table()234cdf0e10cSrcweir Table() 235cdf0e10cSrcweir : csi::xml::AnElement("table") {} 236cdf0e10cSrcweir Table( 237cdf0e10cSrcweir const ::csv::String & i_sBorder, 238cdf0e10cSrcweir const ::csv::String & i_sWidth, 239cdf0e10cSrcweir const ::csv::String & i_sCellPadding, 240cdf0e10cSrcweir const ::csv::String & i_sCellSpacing ); 241cdf0e10cSrcweir TableRow & AddRow(); 242cdf0e10cSrcweir private: 243cdf0e10cSrcweir virtual bool FinishEmptyTag_XmlStyle() const; 244cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 245cdf0e10cSrcweir }; 246cdf0e10cSrcweir 247cdf0e10cSrcweir 248cdf0e10cSrcweir 249cdf0e10cSrcweir class DefListTerm : public csi::xml::AnElement 250cdf0e10cSrcweir { 251cdf0e10cSrcweir public: DefListTerm()252cdf0e10cSrcweir DefListTerm() 253cdf0e10cSrcweir : csi::xml::AnElement("dt") {} 254cdf0e10cSrcweir private: 255cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 256cdf0e10cSrcweir }; 257cdf0e10cSrcweir 258cdf0e10cSrcweir class DefListDefinition : public csi::xml::AnElement 259cdf0e10cSrcweir { 260cdf0e10cSrcweir public: DefListDefinition()261cdf0e10cSrcweir DefListDefinition() 262cdf0e10cSrcweir : csi::xml::AnElement("dd") {} 263cdf0e10cSrcweir private: 264cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 265cdf0e10cSrcweir }; 266cdf0e10cSrcweir 267cdf0e10cSrcweir /** <DL> 268cdf0e10cSrcweir */ 269cdf0e10cSrcweir class DefList : public csi::xml::AnElement 270cdf0e10cSrcweir { 271cdf0e10cSrcweir public: DefList()272cdf0e10cSrcweir DefList() 273cdf0e10cSrcweir : csi::xml::AnElement("dl") {} 274cdf0e10cSrcweir 275cdf0e10cSrcweir DefListTerm & AddTerm( 276cdf0e10cSrcweir DYN csi::xml::Item* let_dpItem = 0 ); 277cdf0e10cSrcweir DefListDefinition & AddDefinition( 278cdf0e10cSrcweir DYN csi::xml::Item* let_dpItem = 0 ); 279cdf0e10cSrcweir private: 280cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 281cdf0e10cSrcweir virtual bool FinishEmptyTag_XmlStyle() const; 282cdf0e10cSrcweir }; 283cdf0e10cSrcweir 284cdf0e10cSrcweir 285cdf0e10cSrcweir class ListItem : public csi::xml::AnElement 286cdf0e10cSrcweir { 287cdf0e10cSrcweir public: ListItem()288cdf0e10cSrcweir ListItem() 289cdf0e10cSrcweir : csi::xml::AnElement("li") {} 290cdf0e10cSrcweir private: 291cdf0e10cSrcweir virtual bool LineBreakAfterEndTag() const; 292cdf0e10cSrcweir }; 293cdf0e10cSrcweir 294cdf0e10cSrcweir /** <OL> 295cdf0e10cSrcweir */ 296cdf0e10cSrcweir class NumeratedList : public csi::xml::AnElement 297cdf0e10cSrcweir { 298cdf0e10cSrcweir public: NumeratedList()299cdf0e10cSrcweir NumeratedList() 300cdf0e10cSrcweir : csi::xml::AnElement("ol") {} 301cdf0e10cSrcweir 302cdf0e10cSrcweir ListItem & AddItem( 303cdf0e10cSrcweir DYN csi::xml::Item* let_dpItem = 0 ); 304cdf0e10cSrcweir private: 305cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 306cdf0e10cSrcweir }; 307cdf0e10cSrcweir 308cdf0e10cSrcweir /** <UL> 309cdf0e10cSrcweir */ 310cdf0e10cSrcweir class SimpleList : public csi::xml::AnElement 311cdf0e10cSrcweir { 312cdf0e10cSrcweir public: SimpleList()313cdf0e10cSrcweir SimpleList() 314cdf0e10cSrcweir : csi::xml::AnElement("ul") {} 315cdf0e10cSrcweir 316cdf0e10cSrcweir ListItem & AddItem( 317cdf0e10cSrcweir DYN csi::xml::Item* let_dpItem = 0 ); 318cdf0e10cSrcweir private: 319cdf0e10cSrcweir virtual bool LineBreakAfterBeginTag() const; 320cdf0e10cSrcweir }; 321cdf0e10cSrcweir 322cdf0e10cSrcweir 323cdf0e10cSrcweir class ClassAttr : public csi::xml::AnAttribute 324cdf0e10cSrcweir { 325cdf0e10cSrcweir public: ClassAttr(const::csv::String & i_sValue)326cdf0e10cSrcweir ClassAttr( 327cdf0e10cSrcweir const ::csv::String & i_sValue ) 328cdf0e10cSrcweir : csi::xml::AnAttribute( String("class"), i_sValue ) {} 329cdf0e10cSrcweir }; 330cdf0e10cSrcweir 331cdf0e10cSrcweir class StyleAttr : public csi::xml::AnAttribute 332cdf0e10cSrcweir { 333cdf0e10cSrcweir public: StyleAttr(const::csv::String & i_sValue)334cdf0e10cSrcweir StyleAttr( 335cdf0e10cSrcweir const ::csv::String & i_sValue ) 336cdf0e10cSrcweir : csi::xml::AnAttribute( String("style"), i_sValue ) {} 337cdf0e10cSrcweir }; 338cdf0e10cSrcweir 339cdf0e10cSrcweir class SizeAttr : public csi::xml::AnAttribute 340cdf0e10cSrcweir { 341cdf0e10cSrcweir public: SizeAttr(const::csv::String & i_sValue)342cdf0e10cSrcweir SizeAttr( 343cdf0e10cSrcweir const ::csv::String & i_sValue ) 344cdf0e10cSrcweir : csi::xml::AnAttribute( String("size"), i_sValue ) {} 345cdf0e10cSrcweir }; 346cdf0e10cSrcweir 347cdf0e10cSrcweir class ColorAttr : public csi::xml::AnAttribute 348cdf0e10cSrcweir { 349cdf0e10cSrcweir public: ColorAttr(const::csv::String & i_sValue)350cdf0e10cSrcweir ColorAttr( 351cdf0e10cSrcweir const ::csv::String & i_sValue ) 352cdf0e10cSrcweir : csi::xml::AnAttribute( String("color"), i_sValue ) {} 353cdf0e10cSrcweir }; 354cdf0e10cSrcweir 355cdf0e10cSrcweir class BgColorAttr : public csi::xml::AnAttribute 356cdf0e10cSrcweir { 357cdf0e10cSrcweir public: BgColorAttr(const::csv::String & i_sValue)358cdf0e10cSrcweir BgColorAttr( 359cdf0e10cSrcweir const ::csv::String & i_sValue ) 360cdf0e10cSrcweir : csi::xml::AnAttribute( String("bgcolor"), i_sValue ) {} 361cdf0e10cSrcweir }; 362cdf0e10cSrcweir 363cdf0e10cSrcweir class AlignAttr : public csi::xml::AnAttribute 364cdf0e10cSrcweir { 365cdf0e10cSrcweir public: AlignAttr(const::csv::String & i_sValue)366cdf0e10cSrcweir AlignAttr( 367cdf0e10cSrcweir const ::csv::String & i_sValue ) 368cdf0e10cSrcweir : csi::xml::AnAttribute( String("align"), i_sValue ) {} 369cdf0e10cSrcweir }; 370cdf0e10cSrcweir 371cdf0e10cSrcweir class VAlignAttr : public csi::xml::AnAttribute 372cdf0e10cSrcweir { 373cdf0e10cSrcweir public: VAlignAttr(const::csv::String & i_sValue)374cdf0e10cSrcweir VAlignAttr( 375cdf0e10cSrcweir const ::csv::String & i_sValue ) 376cdf0e10cSrcweir : csi::xml::AnAttribute( String("valign"), i_sValue ) {} 377cdf0e10cSrcweir }; 378cdf0e10cSrcweir 379cdf0e10cSrcweir class WidthAttr : public csi::xml::AnAttribute 380cdf0e10cSrcweir { 381cdf0e10cSrcweir public: WidthAttr(const::csv::String & i_sValue)382cdf0e10cSrcweir WidthAttr( 383cdf0e10cSrcweir const ::csv::String & i_sValue ) 384cdf0e10cSrcweir : csi::xml::AnAttribute( String("width"), i_sValue ) {} 385cdf0e10cSrcweir }; 386cdf0e10cSrcweir 387cdf0e10cSrcweir 388cdf0e10cSrcweir 389cdf0e10cSrcweir class Sbr : public csi::xml::XmlCode // Sourcefile lineBreak 390cdf0e10cSrcweir { 391cdf0e10cSrcweir public: Sbr()392cdf0e10cSrcweir Sbr() 393cdf0e10cSrcweir : csi::xml::XmlCode("\n") {} 394cdf0e10cSrcweir }; 395cdf0e10cSrcweir 396cdf0e10cSrcweir 397cdf0e10cSrcweir } // namespace html 398cdf0e10cSrcweir } // namespace csi 399cdf0e10cSrcweir 400cdf0e10cSrcweir namespace Html = csi::html; 401cdf0e10cSrcweir 402cdf0e10cSrcweir #endif 403cdf0e10cSrcweir 404cdf0e10cSrcweir 405