/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #include #include // NOT FULLY DEFINED SERVICES #include const String C_sTitleBorder("0"); const String C_sTitleWidth("100%"); const String C_sTitlePadding("5"); const String C_sTitleSpacing("3"); const String C_sSubTitleBorder("1"); const String C_sSubTitleWidth("100%"); const String C_sSubTitlePadding("5"); const String C_sSubTitleSpacing("0"); const String C_sColSpan("colspan"); HF_TitleTable::HF_TitleTable( Xml::Element & o_rOut ) : HtmlMaker(o_rOut >> *new Html::Table( C_sTitleBorder, C_sTitleWidth, C_sTitlePadding, C_sTitleSpacing ) << new Html::ClassAttr("title-table") << new Html::StyleAttr("margin-bottom:6pt;") ) { } HF_TitleTable::~HF_TitleTable() { } void HF_TitleTable::Produce_Title( const char * i_title ) { Add_Row() << new Html::ClassAttr("title") << i_title; } void HF_TitleTable::Produce_Title( const char * i_annotations, const char * i_title ) { if (csv::no_str(i_annotations)) { Produce_Title(i_title); return; } Xml::Element & rRow = Add_Row(); rRow << new Html::ClassAttr("title"); Xml::Element & rTable = rRow >> *new Html::Table() << new Html::ClassAttr("title-table") << new Html::WidthAttr("99%"); Xml::Element & rInnerRow = rTable >> *new Html::TableRow; rInnerRow >> *new Html::TableCell << new Html::WidthAttr("25%") << new Html::ClassAttr("title2") << i_annotations; rInnerRow >> *new Html::TableCell << new Html::WidthAttr("50%") << new Html::ClassAttr("title") << i_title; rInnerRow >> *new Html::TableCell << new Html::WidthAttr("*"); } Xml::Element & HF_TitleTable::Add_Row() { return CurOut() >> *new Html::TableRow >> *new Html::TableCell; } inline const char * get_SubTitleCssClass(HF_SubTitleTable::E_SubLevel i_eSubTitleLevel) { return i_eSubTitleLevel == HF_SubTitleTable::sublevel_1 ? "subtitle" : "crosstitle"; } HF_SubTitleTable::HF_SubTitleTable( Xml::Element & o_rOut, const String & i_label, const String & i_title, int i_nColumns, E_SubLevel i_eSubTitleLevel ) : HtmlMaker( o_rOut << new Html::Label(i_label) >> *new Html::Table( C_sSubTitleBorder, C_sSubTitleWidth, C_sSubTitlePadding, C_sSubTitleSpacing ) << new Html::ClassAttr(get_SubTitleCssClass(i_eSubTitleLevel)) ) { csv_assert(i_nColumns > 0); if (i_eSubTitleLevel == sublevel_3) return; Xml::Element & rCell = CurOut() >> *new Html::TableRow >> *new Html::TableCell << new Html::ClassAttr(get_SubTitleCssClass(i_eSubTitleLevel)) ; if (i_nColumns > 1) { StreamLock sl(20); String sColumns = sl() << i_nColumns << c_str; rCell << new Xml::AnAttribute(C_sColSpan, sColumns); } rCell << i_title; } HF_SubTitleTable::~HF_SubTitleTable() { } Xml::Element & HF_SubTitleTable::Add_Row() { return CurOut() >> *new Html::TableRow; }