/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
*
|
* This file is part of xlslib -- A multiplatform, C/C++ library
|
* for dynamic generation of Excel(TM) files.
|
*
|
* Copyright 2004 Yeico S. A. de C. V. All Rights Reserved.
|
* Copyright 2008-2013 David Hoerl All Rights Reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without modification, are
|
* permitted provided that the following conditions are met:
|
*
|
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
* conditions and the following disclaimer.
|
*
|
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
* of conditions and the following disclaimer in the documentation and/or other materials
|
* provided with the distribution.
|
*
|
* THIS SOFTWARE IS PROVIDED BY David Hoerl ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL David Hoerl OR
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
*
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
#include "../xlslib/record.h"
|
#include "../xlslib/datast.h"
|
#include "../xlslib/summinfo.h" // pseudo base class
|
#include "../xlslib/docsumminfo.h"
|
#include "../xlslib/HPSF.h"
|
|
using namespace xlslib_core;
|
using namespace xlslib_strings;
|
|
const signed32_t xlslib_core::property2docSummary[] = {
|
-1, // 0
|
-1,
|
DocSumInfo_Category,
|
-1,
|
DocSumInfo_Company,
|
-1,
|
-1,
|
DocSumInfo_Manager,
|
-1,
|
-1,
|
-1
|
};
|
|
/*
|
**********************************************************************
|
* CDocSummaryInfo class implementation
|
**********************************************************************
|
*/
|
|
CDocSummaryInfo::CDocSummaryInfo()
|
{
|
XTRACE("WRITE_DOC_SUMMARY");
|
|
hpsf = new hpsf_doc_t(HPSF_DOCSUMMARY);
|
if (hpsf) {
|
hpsf->addItem(DocSumInfo_CodePage, (unsigned16_t)1200); // UTF-16
|
}
|
}
|
|
CDocSummaryInfo::~CDocSummaryInfo()
|
{
|
if(hpsf) {
|
delete hpsf;
|
}
|
}
|
|
bool CDocSummaryInfo::property(property_t prop, const string& content)
|
{
|
signed32_t val;
|
|
val = property2docSummary[prop];
|
XL_ASSERT(val > 0);
|
hpsf->addItem((unsigned16_t)val, content);
|
return true;
|
}
|
|
int CDocSummaryInfo::DumpData(CDataStorage &datastore)
|
{
|
XTRACE("CDocSummaryInfo::DumpData");
|
|
CUnit* ret = hpsf->GetData(datastore);
|
if (ret != NULL) {
|
datastore += ret;
|
// hpsf = NULL; // DataStore owns it now
|
}
|
return NO_ERRORS;
|
}
|