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 &
PushElem(Element & i_rMain,DYN ELEM * let_dpSub,DYN Item * let_dpItem)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
LineBreakAfterBeginTag() const51*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
LineBreakAfterBeginTag() const58*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
Image(const String & i_sSrc,const String & i_sWidth,const String & i_sHeight,const String & i_sAlign,const String & i_sBorder)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
LineBreakAfterEndTag() const80*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
LineBreakAfterEndTag() const89*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
LineBreakAfterBeginTag() const96*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
LineBreakAfterEndTag() const104*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 &
AddCell(DYN Item * let_dpItem)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
LineBreakAfterBeginTag() const118*11c03c6dSDamjan Jovanovic TableRow::LineBreakAfterBeginTag() const
119*11c03c6dSDamjan Jovanovic {
120*11c03c6dSDamjan Jovanovic return true;
121*11c03c6dSDamjan Jovanovic }
122*11c03c6dSDamjan Jovanovic
123*11c03c6dSDamjan Jovanovic
Table(const String & i_sBorder,const String & i_sWidth,const String & i_sCellPadding,const String & i_sCellSpacing)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 &
AddRow()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
FinishEmptyTag_XmlStyle() const149*11c03c6dSDamjan Jovanovic Table::FinishEmptyTag_XmlStyle() const
150*11c03c6dSDamjan Jovanovic {
151*11c03c6dSDamjan Jovanovic return false;
152*11c03c6dSDamjan Jovanovic }
153*11c03c6dSDamjan Jovanovic
154*11c03c6dSDamjan Jovanovic bool
LineBreakAfterBeginTag() const155*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
LineBreakAfterEndTag() const163*11c03c6dSDamjan Jovanovic DefListTerm::LineBreakAfterEndTag() const
164*11c03c6dSDamjan Jovanovic {
165*11c03c6dSDamjan Jovanovic return true;
166*11c03c6dSDamjan Jovanovic }
167*11c03c6dSDamjan Jovanovic
168*11c03c6dSDamjan Jovanovic bool
LineBreakAfterEndTag() const169*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 &
AddTerm(DYN csi::xml::Item * let_dpItem)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 &
AddDefinition(DYN csi::xml::Item * let_dpItem)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
LineBreakAfterBeginTag() const191*11c03c6dSDamjan Jovanovic DefList::LineBreakAfterBeginTag() const
192*11c03c6dSDamjan Jovanovic {
193*11c03c6dSDamjan Jovanovic return true;
194*11c03c6dSDamjan Jovanovic }
195*11c03c6dSDamjan Jovanovic
196*11c03c6dSDamjan Jovanovic bool
FinishEmptyTag_XmlStyle() const197*11c03c6dSDamjan Jovanovic DefList::FinishEmptyTag_XmlStyle() const
198*11c03c6dSDamjan Jovanovic {
199*11c03c6dSDamjan Jovanovic return false;
200*11c03c6dSDamjan Jovanovic }
201*11c03c6dSDamjan Jovanovic
202*11c03c6dSDamjan Jovanovic bool
LineBreakAfterEndTag() const203*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 &
AddItem(DYN csi::xml::Item * let_dpItem)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
LineBreakAfterBeginTag() const218*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 &
AddItem(DYN csi::xml::Item * let_dpItem)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
LineBreakAfterBeginTag() const231*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