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_funcdecl.hxx>
22 :
23 :
24 : // NOT FULLY DEFINED SERVICES
25 :
26 1 : const String C_sValignTop("top");
27 1 : const String C_sValignBottom("bottom");
28 :
29 :
30 :
31 5595 : HF_FunctionDeclaration::HF_FunctionDeclaration( Xml::Element & o_rParent,
32 : const String & i_sRaisesText )
33 : : HtmlMaker(o_rParent),
34 : sRaisesText(i_sRaisesText),
35 : pTable(0),
36 : pReturnCell(0),
37 : pNameCell(0),
38 : pParameterLine(0),
39 : pLastParameterCell(0),
40 5595 : pExceptionCell(0)
41 : {
42 5595 : pTable = new Html::Table;
43 5595 : CurOut()
44 11190 : >> *pTable
45 16785 : << new Html::ClassAttr("table-in-method")
46 11190 : << new Xml::AnAttribute("border","0");
47 5595 : }
48 :
49 5595 : HF_FunctionDeclaration::~HF_FunctionDeclaration()
50 : {
51 5595 : }
52 :
53 : Xml::Element &
54 5595 : HF_FunctionDeclaration::ReturnCell()
55 : {
56 5595 : if (pReturnCell != 0)
57 0 : return *pReturnCell;
58 :
59 : pReturnCell = &( *pTable
60 5595 : >> *new Html::TableRow
61 11190 : >> *new Html::TableCell
62 11190 : << new Html::VAlignAttr(C_sValignTop)
63 11190 : << new Xml::AnAttribute("colspan", "3")
64 5595 : );
65 5595 : return *pReturnCell;
66 : }
67 :
68 : Xml::Element &
69 5595 : HF_FunctionDeclaration::NameCell()
70 : {
71 5595 : if (pNameCell != 0)
72 0 : return *pNameCell;
73 :
74 5595 : pNameCell = &( ParameterLine()
75 11190 : >> *new Html::TableCell
76 11190 : << new Html::VAlignAttr(C_sValignTop)
77 5595 : );
78 5595 : pLastParameterCell = pNameCell;
79 :
80 5595 : return *pNameCell;
81 : }
82 :
83 : Xml::Element &
84 5658 : HF_FunctionDeclaration::NewParamTypeCell()
85 : {
86 5658 : if (pLastParameterCell != pNameCell)
87 : {
88 2118 : pParameterLine = 0;
89 2118 : ParameterLine()
90 4236 : >> *new Html::TableCell;
91 : }
92 :
93 : Xml::Element &
94 5658 : rParamType = ParameterLine()
95 11316 : >> *new Html::TableCell
96 11316 : << new Html::VAlignAttr(C_sValignTop);
97 : pLastParameterCell
98 5658 : = &( ParameterLine()
99 11316 : >> *new Html::TableCell
100 11316 : << new Html::VAlignAttr(C_sValignBottom)
101 11316 : << new Xml::XmlCode(" ")
102 5658 : );
103 5658 : return rParamType;
104 : }
105 :
106 : Xml::Element &
107 5658 : HF_FunctionDeclaration::ParamNameCell()
108 : {
109 : csv_assert(pLastParameterCell != pNameCell);
110 5658 : return *pLastParameterCell;
111 : }
112 :
113 : Xml::Element &
114 1848 : HF_FunctionDeclaration::ExceptionCell()
115 : {
116 1848 : if (pExceptionCell != 0)
117 0 : return *pExceptionCell;
118 :
119 : Xml::Element &
120 : rExceptionRow = *pTable
121 1848 : >> *new Html::TableRow;
122 : rExceptionRow
123 1848 : >> *new Html::TableCell
124 3696 : << new Html::VAlignAttr(C_sValignTop)
125 3696 : << new Xml::AnAttribute("align", "right")
126 3696 : << sRaisesText
127 1848 : << "( ";
128 :
129 : pExceptionCell = &( rExceptionRow
130 1848 : >> *new Html::TableCell
131 3696 : << new Html::VAlignAttr(C_sValignTop)
132 3696 : << new Xml::AnAttribute("colspan", "2")
133 1848 : );
134 1848 : return *pExceptionCell;
135 : }
136 :
137 : Html::TableRow &
138 19029 : HF_FunctionDeclaration::ParameterLine()
139 : {
140 19029 : if (pParameterLine != 0)
141 11316 : return *pParameterLine;
142 :
143 7713 : pParameterLine = new Html::TableRow;
144 : *pTable
145 7713 : >> *pParameterLine;
146 :
147 7713 : return *pParameterLine;
148 3 : }
149 :
150 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|