/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
*
|
* 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 <time.h>
|
|
#include "../xlslib/record.h"
|
#include "../xlslib/summinfo.h"
|
#include "../xlslib/HPSF.h"
|
#include "../xlslib/datast.h"
|
|
|
using namespace xlslib_core;
|
using namespace xlslib_strings;
|
|
const signed32_t xlslib_core::property2summary[] =
|
{
|
0,
|
SumInfo_Author,
|
-1,
|
SumInfo_Comments,
|
-1,
|
SumInfo_NameofCreatingApplication, // Does not seem to do anything
|
SumInfo_Keywords,
|
-1,
|
SumInfo_RevisionNumber,
|
SumInfo_Subject,
|
SumInfo_Title
|
};
|
|
/*
|
**********************************************************************
|
* CSummaryInfo class implementation
|
**********************************************************************
|
*/
|
CSummaryInfo::CSummaryInfo()
|
{
|
unsigned64_t msTime;
|
string s;
|
|
XTRACE("WRITE_SUMMARY");
|
|
hpsf = new hpsf_doc_t(HPSF_SUMMARY);
|
if (hpsf) {
|
msTime = hpsf->unix2mstime(time(NULL));
|
|
hpsf->addItem(SumInfo_Unknown, (unsigned16_t)1200); // Excel 2004 on Mac writes this // 0xfde9
|
hpsf->addItem(SumInfo_CreateTime_Date, msTime); // should be "right now"
|
hpsf->addItem(SumInfo_LastSavedTime_Date, msTime); // should be "right now"
|
hpsf->addItem(SumInfo_Security, (unsigned32_t)0); // Default
|
hpsf->addItem(SumInfo_NameofCreatingApplication, s = PACKAGE_NAME); // Default
|
}
|
}
|
|
CSummaryInfo::~CSummaryInfo()
|
{
|
if(hpsf) {
|
delete hpsf;
|
}
|
}
|
|
bool CSummaryInfo::property(property_t prop, const string& content)
|
{
|
unsigned16_t val;
|
|
val = static_cast<unsigned16_t>(property2summary[prop]);
|
|
hpsf->addItem(val, content);
|
return true;
|
}
|
|
int CSummaryInfo::DumpData(CDataStorage &datastore)
|
{
|
XTRACE("\tCSummaryInfo::DumpData");
|
|
CUnit* ret = hpsf->GetData(datastore);
|
if (ret != NULL) {
|
datastore += ret;
|
// hpsf = NULL; // DataStore owns it now
|
}
|
return NO_ERRORS;
|
}
|