Commit 39e2b69b authored by Sergey Konovalov's avatar Sergey Konovalov

moveFrom/moveTo open/save

parent 58c00745
......@@ -405,6 +405,8 @@ public:
std::wstring Fill;
std::wstring Del;
std::wstring Ins;
std::wstring MoveFrom;
std::wstring MoveTo;
std::wstring rPrChange;
bool bBold;
......@@ -492,13 +494,15 @@ public:
Fill.clear();
Del.clear();
Ins.clear();
MoveFrom.clear();
MoveTo.clear();
rPrChange.clear();
}
bool IsNoEmpty()
{
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || bHighLight || bShd ||
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish ||
!Outline.empty() || !Fill.empty() || !Del.empty() || !Ins.empty() || !rPrChange.empty();
!Outline.empty() || !Fill.empty() || !Del.empty() || !Ins.empty() || !MoveFrom.empty() || !MoveTo.empty() || !rPrChange.empty();
}
void Write(XmlUtils::CStringWriter* pCStringWriter)
{
......@@ -749,6 +753,10 @@ public:
pCStringWriter->WriteString(Del);
if (!Ins.empty())
pCStringWriter->WriteString(Ins);
if (!MoveFrom.empty())
pCStringWriter->WriteString(MoveFrom);
if (!MoveTo.empty())
pCStringWriter->WriteString(MoveTo);
if (!rPrChange.empty())
pCStringWriter->WriteString(rPrChange);
pCStringWriter->WriteString(L"</w:rPr>");
......
......@@ -570,6 +570,20 @@ public:
orPr->Ins = oIns.ToString(_T("w:ins"));
}
break;
case c_oSerProp_rPrType::MoveFrom:
{
TrackRevision oMoveFrom;
oBinary_CommonReader2.ReadTrackRevision(length, &oMoveFrom);
orPr->MoveFrom = oMoveFrom.ToString(_T("w:moveFrom"));
}
break;
case c_oSerProp_rPrType::MoveTo:
{
TrackRevision oMoveTo;
oBinary_CommonReader2.ReadTrackRevision(length, &oMoveTo);
orPr->MoveTo = oMoveTo.ToString(_T("w:moveTo"));
}
break;
case c_oSerProp_rPrType::rPrChange:
{
TrackRevision oRPrChange;
......@@ -3771,6 +3785,42 @@ public:
res = Read1(length, &Binary_DocumentTableReader::ReadDelIns, this, &oTrackRevision);
oTrackRevision.Write(&GetRunStringWriter(), _T("w:del"));
}
else if ( c_oSerParType::MoveFrom == type )
{
TrackRevision oTrackRevision;
res = Read1(length, &Binary_DocumentTableReader::ReadDelIns, this, &oTrackRevision);
oTrackRevision.Write(&GetRunStringWriter(), _T("w:moveFrom"));
}
else if ( c_oSerParType::MoveTo == type )
{
TrackRevision oTrackRevision;
res = Read1(length, &Binary_DocumentTableReader::ReadDelIns, this, &oTrackRevision);
oTrackRevision.Write(&GetRunStringWriter(), _T("w:moveTo"));
}
else if ( c_oSerParType::MoveFromRangeStart == type )
{
OOX::Logic::CMoveFromRangeStart oMoveFromRangeStart;
res = Read1(length, &Binary_DocumentTableReader::ReadMoveFromRangeStart, this, &oMoveFromRangeStart);
GetRunStringWriter().WriteString(oMoveFromRangeStart.toXML());
}
else if ( c_oSerParType::MoveFromRangeEnd == type )
{
OOX::Logic::CMoveFromRangeEnd oMoveToRangeEnd;
res = Read1(length, &Binary_DocumentTableReader::ReadMoveFromRangeEnd, this, &oMoveToRangeEnd);
GetRunStringWriter().WriteString(oMoveToRangeEnd.toXML());
}
else if ( c_oSerParType::MoveToRangeStart == type )
{
OOX::Logic::CMoveToRangeStart oMoveToRangeStart;
res = Read1(length, &Binary_DocumentTableReader::ReadMoveToRangeStart, this, &oMoveToRangeStart);
GetRunStringWriter().WriteString(oMoveToRangeStart.toXML());
}
else if ( c_oSerParType::MoveToRangeEnd == type )
{
OOX::Logic::CMoveToRangeEnd oMoveToRangeEnd;
res = Read1(length, &Binary_DocumentTableReader::ReadMoveToRangeEnd, this, &oMoveToRangeEnd);
GetRunStringWriter().WriteString(oMoveToRangeEnd.toXML());
}
else if(c_oSerParType::Sdt == type)
{
SdtWraper oSdt(1);
......@@ -3797,6 +3847,138 @@ public:
res = c_oSerConstants::ReadUnknown;
return res;
}
int ReadMoveFromRangeStart(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
OOX::Logic::CMoveFromRangeStart* pMoveFromRangeStart = static_cast<OOX::Logic::CMoveFromRangeStart*>(poResult);
if (c_oSerMoveRange::Author == type)
{
pMoveFromRangeStart->m_sAuthor.Init();
pMoveFromRangeStart->m_sAuthor->append(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::ColFirst == type)
{
pMoveFromRangeStart->m_oColFirst.Init();
pMoveFromRangeStart->m_oColFirst->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::ColLast == type)
{
pMoveFromRangeStart->m_oColLast.Init();
pMoveFromRangeStart->m_oColLast->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::Date == type)
{
pMoveFromRangeStart->m_oDate.Init();
pMoveFromRangeStart->m_oDate->SetValue(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::DisplacedByCustomXml == type)
{
pMoveFromRangeStart->m_oDisplacedByCustomXml.Init();
pMoveFromRangeStart->m_oDisplacedByCustomXml->SetValue((SimpleTypes::EDisplacedByCustomXml)m_oBufferedStream.GetUChar());
}
else if (c_oSerMoveRange::Id == type)
{
pMoveFromRangeStart->m_oId.Init();
pMoveFromRangeStart->m_oId->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::Name == type)
{
pMoveFromRangeStart->m_sName.Init();
pMoveFromRangeStart->m_sName->append(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::UserId == type)
{
pMoveFromRangeStart->m_sUserId.Init();
pMoveFromRangeStart->m_sUserId->append(m_oBufferedStream.GetString3(length));
}
else
res = c_oSerConstants::ReadUnknown;
return res;
}
int ReadMoveToRangeStart(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
OOX::Logic::CMoveToRangeStart* pMoveToRangeStart = static_cast<OOX::Logic::CMoveToRangeStart*>(poResult);
if (c_oSerMoveRange::Author == type)
{
pMoveToRangeStart->m_sAuthor.Init();
pMoveToRangeStart->m_sAuthor->append(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::ColFirst == type)
{
pMoveToRangeStart->m_oColFirst.Init();
pMoveToRangeStart->m_oColFirst->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::ColLast == type)
{
pMoveToRangeStart->m_oColLast.Init();
pMoveToRangeStart->m_oColLast->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::Date == type)
{
pMoveToRangeStart->m_oDate.Init();
pMoveToRangeStart->m_oDate->SetValue(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::DisplacedByCustomXml == type)
{
pMoveToRangeStart->m_oDisplacedByCustomXml.Init();
pMoveToRangeStart->m_oDisplacedByCustomXml->SetValue((SimpleTypes::EDisplacedByCustomXml)m_oBufferedStream.GetUChar());
}
else if (c_oSerMoveRange::Id == type)
{
pMoveToRangeStart->m_oId.Init();
pMoveToRangeStart->m_oId->SetValue(m_oBufferedStream.GetLong());
}
else if (c_oSerMoveRange::Name == type)
{
pMoveToRangeStart->m_sName.Init();
pMoveToRangeStart->m_sName->append(m_oBufferedStream.GetString3(length));
}
else if (c_oSerMoveRange::UserId == type)
{
pMoveToRangeStart->m_sUserId.Init();
pMoveToRangeStart->m_sUserId->append(m_oBufferedStream.GetString3(length));
}
else
res = c_oSerConstants::ReadUnknown;
return res;
}
int ReadMoveFromRangeEnd(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
OOX::Logic::CMoveFromRangeEnd* pMoveFromRangeEnd = static_cast<OOX::Logic::CMoveFromRangeEnd*>(poResult);
if (c_oSerMoveRange::DisplacedByCustomXml == type)
{
pMoveFromRangeEnd->m_oDisplacedByCustomXml.Init();
pMoveFromRangeEnd->m_oDisplacedByCustomXml->SetValue((SimpleTypes::EDisplacedByCustomXml)m_oBufferedStream.GetUChar());
}
else if (c_oSerMoveRange::Id == type)
{
pMoveFromRangeEnd->m_oId.Init();
pMoveFromRangeEnd->m_oId->SetValue(m_oBufferedStream.GetLong());
}
else
res = c_oSerConstants::ReadUnknown;
return res;
}
int ReadMoveToRangeEnd(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
OOX::Logic::CMoveToRangeEnd* pMoveToRangeEnd = static_cast<OOX::Logic::CMoveToRangeEnd*>(poResult);
if (c_oSerMoveRange::DisplacedByCustomXml == type)
{
pMoveToRangeEnd->m_oDisplacedByCustomXml.Init();
pMoveToRangeEnd->m_oDisplacedByCustomXml->SetValue((SimpleTypes::EDisplacedByCustomXml)m_oBufferedStream.GetUChar());
}
else if (c_oSerMoveRange::Id == type)
{
pMoveToRangeEnd->m_oId.Init();
pMoveToRangeEnd->m_oId->SetValue(m_oBufferedStream.GetLong());
}
else
res = c_oSerConstants::ReadUnknown;
return res;
}
int ReadFldSimple(BYTE type, long length, void* poResult)
{
int res = c_oSerConstants::ReadOk;
......
......@@ -381,7 +381,9 @@ extern int g_nCurFormatVersion;
TextFill = 32,
Del = 33,
Ins = 34,
rPrChange = 35
rPrChange = 35,
MoveFrom = 36,
MoveTo = 37
};}
namespace c_oSerProp_rowPrType{enum c_oSerProp_rowPrType
{
......@@ -464,7 +466,13 @@ extern int g_nCurFormatVersion;
Del = 12,
Ins = 13,
Background = 14,
Sdt = 15
Sdt = 15,
MoveFrom = 16,
MoveTo = 17,
MoveFromRangeStart = 18,
MoveFromRangeEnd = 19,
MoveToRangeStart = 20,
MoveToRangeEnd = 21
};}
namespace c_oSerDocTableType{enum c_oSerDocTableType
{
......@@ -1073,6 +1081,17 @@ extern int g_nCurFormatVersion;
TIMaxLength = 23,
TIType = 24,
};}
namespace c_oSerMoveRange{enum c_oSerMoveRange
{
Author = 0,
ColFirst = 1,
ColLast = 2,
Date = 3,
DisplacedByCustomXml = 4,
Id = 5,
Name = 6,
UserId = 7
};}
}
#endif // #ifndef DOCX_BIN_READER_WRITER_DEFINES
......@@ -831,6 +831,22 @@ namespace BinDocxRW
Write_rPrChange(rPr.m_oRPrChange.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if(rPr.m_oMoveFrom.IsInit())
{
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::MoveFrom);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
nCurPos = m_oBcw.WriteItemWithLengthStart();
m_oBcw.WriteTrackRevision(rPr.m_oMoveFrom.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if(rPr.m_oMoveTo.IsInit())
{
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::MoveTo);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
nCurPos = m_oBcw.WriteItemWithLengthStart();
m_oBcw.WriteTrackRevision(rPr.m_oMoveTo.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
}
void Write_rPrChange(const OOX::Logic::CRPrChange& rPrChange)
{
......@@ -3229,6 +3245,22 @@ namespace BinDocxRW
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_moveFrom:
{
OOX::Logic::CMoveFrom* pMoveFrom = static_cast<OOX::Logic::CMoveFrom*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveFrom);
WriteMoveFrom(*pMoveFrom);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_moveTo:
{
OOX::Logic::CMoveTo* pMoveTo = static_cast<OOX::Logic::CMoveTo*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveTo);
WriteMoveTo(*pMoveTo);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_commentRangeStart:
{
OOX::Logic::CCommentRangeStart* pCommentRangeStart = static_cast<OOX::Logic::CCommentRangeStart*>(item);
......@@ -3241,6 +3273,38 @@ namespace BinDocxRW
WriteComment(OOX::et_w_commentRangeEnd, pCommentRangeEnd->m_oId);
break;
}
case OOX::et_w_moveFromRangeStart:
{
OOX::Logic::CMoveFromRangeStart* pMoveFromRangeStart = static_cast<OOX::Logic::CMoveFromRangeStart*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveFromRangeStart);
WriteMoveRangeStart(*pMoveFromRangeStart);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_moveFromRangeEnd:
{
OOX::Logic::CMoveFromRangeEnd* pMoveFromRangeEnd = static_cast<OOX::Logic::CMoveFromRangeEnd*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveFromRangeEnd);
WriteMoveRangeEnd(*pMoveFromRangeEnd);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_moveToRangeStart:
{
OOX::Logic::CMoveToRangeStart* pMoveToRangeStart = static_cast<OOX::Logic::CMoveToRangeStart*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveToRangeStart);
WriteMoveRangeStart(*pMoveToRangeStart);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_w_moveToRangeEnd:
{
OOX::Logic::CMoveToRangeEnd* pMoveToRangeEnd = static_cast<OOX::Logic::CMoveToRangeEnd*>(item);
nCurPos = m_oBcw.WriteItemStart(c_oSerParType::MoveToRangeEnd);
WriteMoveRangeEnd(*pMoveToRangeEnd);
m_oBcw.WriteItemEnd(nCurPos);
break;
}
case OOX::et_m_oMathPara:
{
OOX::Logic::COMathPara* pOMathPara = static_cast<OOX::Logic::COMathPara*>(item);
......@@ -3280,6 +3344,92 @@ namespace BinDocxRW
WriteParagraphContent(oIns.m_arrItems);
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
void WriteMoveFrom(const OOX::Logic::CMoveFrom& oMoveFrom)
{
int nCurPos = 0;
m_oBcw.WriteTrackRevision(oMoveFrom);
nCurPos = m_oBcw.WriteItemStart(c_oSerProp_RevisionType::Content);
WriteParagraphContent(oMoveFrom.m_arrItems);
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
void WriteMoveTo(const OOX::Logic::CMoveTo& oMoveTo)
{
int nCurPos = 0;
m_oBcw.WriteTrackRevision(oMoveTo);
nCurPos = m_oBcw.WriteItemStart(c_oSerProp_RevisionType::Content);
WriteParagraphContent(oMoveTo.m_arrItems);
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
template<typename T> void WriteMoveRangeStart(const T& elem)
{
int nCurPos = 0;
if (elem.m_sAuthor.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::Author);
m_oBcw.m_oStream.WriteStringW3(elem.m_sAuthor.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oColFirst.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::ColFirst);
m_oBcw.m_oStream.WriteLONG(elem.m_oColFirst->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oColLast.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::ColLast);
m_oBcw.m_oStream.WriteLONG(elem.m_oColLast->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oDate.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::Date);
m_oBcw.m_oStream.WriteStringW3(elem.m_oDate->ToString());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oDisplacedByCustomXml.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::DisplacedByCustomXml);
m_oBcw.m_oStream.WriteBYTE(elem.m_oDisplacedByCustomXml->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oId.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::Id);
m_oBcw.m_oStream.WriteLONG(elem.m_oId->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_sName.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::Name);
m_oBcw.m_oStream.WriteStringW3(elem.m_sName.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_sUserId.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::UserId);
m_oBcw.m_oStream.WriteStringW3(elem.m_sUserId.get());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
}
template<typename T> void WriteMoveRangeEnd(const T& elem)
{
int nCurPos = 0;
if (elem.m_oDisplacedByCustomXml.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::DisplacedByCustomXml);
m_oBcw.m_oStream.WriteBYTE(elem.m_oDisplacedByCustomXml->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
if (elem.m_oId.IsInit())
{
nCurPos = m_oBcw.WriteItemStart(c_oSerMoveRange::Id);
m_oBcw.m_oStream.WriteLONG(elem.m_oId->GetValue());
m_oBcw.WriteItemWithLengthEnd(nCurPos);
}
}
void WriteComment(OOX::EElementType eType, nullable<SimpleTypes::CDecimalNumber<>>& oId)
{
int nCurPos = 0;
......
......@@ -107,14 +107,14 @@ namespace OOX
pItem = new Logic::CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new Logic::CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
pItem = new Logic::CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oReader );
pItem = new Logic::CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new Logic::CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -267,14 +267,14 @@ namespace OOX
pItem = new Logic::CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new Logic::CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
pItem = new Logic::CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oReader );
pItem = new Logic::CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new Logic::CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......@@ -414,9 +414,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oItem );
pItem = new Logic::CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oItem );
pItem = new Logic::CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......
......@@ -139,9 +139,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oItem );
pItem = new Logic::CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oItem );
pItem = new Logic::CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -224,14 +224,14 @@ namespace OOX
pItem = new Logic::CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new Logic::CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
pItem = new Logic::CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oReader );
pItem = new Logic::CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new Logic::CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -153,14 +153,14 @@ namespace OOX
pItem = new Logic::CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new Logic::CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new Logic::CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
pItem = new Logic::CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oReader );
pItem = new Logic::CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new Logic::CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......@@ -243,9 +243,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new Logic::CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new Logic::CMoveToRangeEnd( oItem );
pItem = new Logic::CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new Logic::CMoveToRangeStart( oItem );
pItem = new Logic::CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new Logic::CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......
......@@ -44,8 +44,6 @@
// TO DO: Нехватающие классы:
// <w:customXml>
// <w:moveFrom>
// <w:moveTo>
// <w:subDoc>
......@@ -53,6 +51,198 @@ namespace OOX
{
namespace Logic
{
void CMoveFrom::fromXML(XmlUtils::CXmlNode& oNode)
{
//todo
}
void CMoveFrom::fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring sName = oReader.GetName();
WritingElement *pItem = NULL;
if ( _T("w:bdo") == sName )
pItem = new CBdo( oReader );
else if ( _T("w:bookmarkEnd") == sName )
pItem = new CBookmarkEnd( oReader );
else if ( _T("w:bookmarkStart") == sName )
pItem = new CBookmarkStart( oReader );
else if ( _T("w:commentRangeEnd") == sName )
pItem = new CCommentRangeEnd( oReader );
else if ( _T("w:commentRangeStart") == sName )
pItem = new CCommentRangeStart( oReader );
//else if ( _T("w:customXml") == sName )
// pItem = new CCustomXml( oReader );
else if ( _T("w:customXmlDelRangeEnd") == sName )
pItem = new CCustomXmlDelRangeEnd( oReader );
else if ( _T("w:customXmlDelRangeStart") == sName )
pItem = new CCustomXmlDelRangeStart( oReader );
else if ( _T("w:customXmlInsRangeEnd") == sName )
pItem = new CCustomXmlInsRangeEnd( oReader );
else if ( _T("w:customXmlInsRangeStart") == sName )
pItem = new CCustomXmlInsRangeStart( oReader );
else if ( _T("w:customXmlMoveFromRangeEnd") == sName )
pItem = new CCustomXmlMoveFromRangeEnd( oReader );
else if ( _T("w:customXmlMoveFromRangeStart") == sName )
pItem = new CCustomXmlMoveFromRangeStart( oReader );
else if ( _T("w:customXmlMoveToRangeEnd") == sName )
pItem = new CCustomXmlMoveToRangeEnd( oReader );
else if ( _T("w:customXmlMoveToRangeStart") == sName )
pItem = new CCustomXmlMoveToRangeStart( oReader );
else if ( _T("w:del") == sName )
pItem = new CDel( oReader );
else if ( _T("w:dir") == sName )
pItem = new CDir( oReader );
else if ( _T("w:fldSimple") == sName )
pItem = new CFldSimple( oReader );
else if ( _T("w:hyperlink") == sName )
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
else if ( _T("m:oMath") == sName )
pItem = new COMath( oReader );
else if ( _T("m:oMathPara") == sName )
pItem = new COMathPara( oReader );
else if ( _T("w:permEnd") == sName )
pItem = new CPermEnd( oReader );
else if ( _T("w:permStart") == sName )
pItem = new CPermStart( oReader );
else if ( _T("w:proofErr") == sName )
pItem = new CProofErr( oReader );
else if ( _T("w:r") == sName )
pItem = new CRun( oReader );
else if ( _T("w:sdt") == sName )
pItem = new CSdt( oReader );
else if ( _T("w:smartTag") == sName )
pItem = new CSmartTag( oReader );
//else if ( _T("w:subDoc") == sName )
// pItem = new CSubDoc( oReader );
if ( pItem )
m_arrItems.push_back( pItem );
}
}
std::wstring CMoveFrom::toXML() const
{
//todo
std::wstring sResult = _T("");
return sResult;
}
void CMoveTo::fromXML(XmlUtils::CXmlNode& oNode)
{
//todo
}
void CMoveTo::fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nParentDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nParentDepth ) )
{
std::wstring sName = oReader.GetName();
WritingElement *pItem = NULL;
if ( _T("w:bdo") == sName )
pItem = new CBdo( oReader );
else if ( _T("w:bookmarkEnd") == sName )
pItem = new CBookmarkEnd( oReader );
else if ( _T("w:bookmarkStart") == sName )
pItem = new CBookmarkStart( oReader );
else if ( _T("w:commentRangeEnd") == sName )
pItem = new CCommentRangeEnd( oReader );
else if ( _T("w:commentRangeStart") == sName )
pItem = new CCommentRangeStart( oReader );
//else if ( _T("w:customXml") == sName )
// pItem = new CCustomXml( oReader );
else if ( _T("w:customXmlDelRangeEnd") == sName )
pItem = new CCustomXmlDelRangeEnd( oReader );
else if ( _T("w:customXmlDelRangeStart") == sName )
pItem = new CCustomXmlDelRangeStart( oReader );
else if ( _T("w:customXmlInsRangeEnd") == sName )
pItem = new CCustomXmlInsRangeEnd( oReader );
else if ( _T("w:customXmlInsRangeStart") == sName )
pItem = new CCustomXmlInsRangeStart( oReader );
else if ( _T("w:customXmlMoveFromRangeEnd") == sName )
pItem = new CCustomXmlMoveFromRangeEnd( oReader );
else if ( _T("w:customXmlMoveFromRangeStart") == sName )
pItem = new CCustomXmlMoveFromRangeStart( oReader );
else if ( _T("w:customXmlMoveToRangeEnd") == sName )
pItem = new CCustomXmlMoveToRangeEnd( oReader );
else if ( _T("w:customXmlMoveToRangeStart") == sName )
pItem = new CCustomXmlMoveToRangeStart( oReader );
else if ( _T("w:del") == sName )
pItem = new CDel( oReader );
else if ( _T("w:dir") == sName )
pItem = new CDir( oReader );
else if ( _T("w:fldSimple") == sName )
pItem = new CFldSimple( oReader );
else if ( _T("w:hyperlink") == sName )
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
else if ( _T("m:oMath") == sName )
pItem = new COMath( oReader );
else if ( _T("m:oMathPara") == sName )
pItem = new COMathPara( oReader );
else if ( _T("w:permEnd") == sName )
pItem = new CPermEnd( oReader );
else if ( _T("w:permStart") == sName )
pItem = new CPermStart( oReader );
else if ( _T("w:proofErr") == sName )
pItem = new CProofErr( oReader );
else if ( _T("w:r") == sName )
pItem = new CRun( oReader );
else if ( _T("w:sdt") == sName )
pItem = new CSdt( oReader );
else if ( _T("w:smartTag") == sName )
pItem = new CSmartTag( oReader );
//else if ( _T("w:subDoc") == sName )
// pItem = new CSubDoc( oReader );
if ( pItem )
m_arrItems.push_back( pItem );
}
}
std::wstring CMoveTo::toXML() const
{
//todo
std::wstring sResult = _T("");
return sResult;
}
void CIns::fromXML(XmlUtils::CXmlNode& oNode)
{
//todo
......@@ -108,14 +298,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......@@ -204,14 +394,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -871,7 +871,7 @@ namespace OOX
if ( m_sAuthor.IsInit() )
{
sResult += _T("w:author=\"");
sResult += m_sAuthor.get2();
sResult += XmlUtils::EncodeXmlString(m_sAuthor.get2());
sResult += _T("\" ");
}
......@@ -884,14 +884,14 @@ namespace OOX
if ( m_sName.IsInit() )
{
sResult += _T("w:name=\"");
sResult += m_sName.get2();
sResult += XmlUtils::EncodeXmlString(m_sName.get2());
sResult += _T("\" ");
}
if ( m_sUserId.IsInit() )
{
sResult += _T("oouserid=\"");
sResult += m_sUserId.get2();
sResult += XmlUtils::EncodeXmlString(m_sUserId.get2());
sResult += _T("\" ");
}
......@@ -917,7 +917,7 @@ namespace OOX
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:displacedbyCustomXml"), m_oDisplacedByCustomXml )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:name"), m_sName )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserisd"), m_sUserId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
......@@ -1032,7 +1032,7 @@ namespace OOX
if ( m_sAuthor.IsInit() )
{
sResult += _T("w:author=\"");
sResult += m_sAuthor.get2();
sResult += XmlUtils::EncodeXmlString(m_sAuthor.get2());
sResult += _T("\" ");
}
......@@ -1045,14 +1045,14 @@ namespace OOX
if ( m_sName.IsInit() )
{
sResult += _T("w:name=\"");
sResult += m_sName.get2();
sResult += XmlUtils::EncodeXmlString(m_sName.get2());
sResult += _T("\" ");
}
if ( m_sUserId.IsInit() )
{
sResult += _T("oouserid=\"");
sResult += m_sUserId.get2();
sResult += XmlUtils::EncodeXmlString(m_sUserId.get2());
sResult += _T("\" ");
}
......@@ -1094,6 +1094,137 @@ namespace OOX
nullable<std::wstring > m_sUserId;
};
class CMoveFrom : public WritingElementWithChilds<>
{
public:
CMoveFrom()
{
}
CMoveFrom(XmlUtils::CXmlNode &oNode)
{
fromXML( oNode );
}
CMoveFrom(XmlUtils::CXmlLiteReader& oReader)
{
fromXML( oReader );
}
virtual ~CMoveFrom()
{
}
public:
void Clear()
{
for (unsigned int nIndex = 0; nIndex < m_arrItems.size(); nIndex++ )
{
if ( m_arrItems[nIndex] )
delete m_arrItems[nIndex];
m_arrItems[nIndex] = NULL;
}
m_arrItems.clear();
}
public:
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const
{
return et_w_moveFrom;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
public:
// Attributes
nullable<std::wstring > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<std::wstring > m_sUserId;
// Childs
};
class CMoveTo : public WritingElementWithChilds<>
{
public:
CMoveTo()
{
}
CMoveTo(XmlUtils::CXmlNode &oNode)
{
fromXML( oNode );
}
CMoveTo(XmlUtils::CXmlLiteReader& oReader)
{
fromXML( oReader );
}
virtual ~CMoveTo()
{
}
public:
void Clear()
{
for (unsigned int nIndex = 0; nIndex < m_arrItems.size(); nIndex++ )
{
if ( m_arrItems[nIndex] )
delete m_arrItems[nIndex];
m_arrItems[nIndex] = NULL;
}
m_arrItems.clear();
}
public:
virtual void fromXML(XmlUtils::CXmlNode& oNode);
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const;
virtual EElementType getType() const
{
return et_w_moveTo;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if( oReader, _T("w:author"), m_sAuthor )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:date"), m_oDate )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:id"), m_oId )
WritingElement_ReadAttributes_Read_else_if( oReader, _T("oouserid"), m_sUserId )
WritingElement_ReadAttributes_End( oReader )
}
public:
// Attributes
nullable<std::wstring > m_sAuthor;
nullable<SimpleTypes::CDateTime > m_oDate;
nullable<SimpleTypes::CDecimalNumber<> > m_oId;
nullable<std::wstring > m_sUserId;
// Childs
};
} // Logic
// Bookmarks 17.13.6
namespace Logic
......
......@@ -112,9 +112,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -199,14 +199,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -102,14 +102,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -115,9 +115,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -204,14 +204,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -120,9 +120,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -207,14 +207,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -120,9 +120,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -213,14 +213,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -902,6 +902,12 @@ namespace OOX
if ( oNode.GetNode( _T("w:webHidden"), oChild ) )
m_oWebHidden = oChild;
if ( oNode.GetNode( _T("w:moveFrom"), oChild ) )
m_oMoveFrom = oChild;
if ( oNode.GetNode( _T("w:moveTo"), oChild ) )
m_oMoveTo = oChild;
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
virtual std::wstring toXML() const
......@@ -1062,6 +1068,20 @@ namespace OOX
sResult += _T("/>");
}
if ( m_oMoveFrom.IsInit() )
{
sResult += _T("<w:moveFrom ");
sResult += m_oMoveFrom->ToString();
sResult += _T("/>");
}
if ( m_oMoveTo.IsInit() )
{
sResult += _T("<w:moveTo ");
sResult += m_oMoveTo->ToString();
sResult += _T("/>");
}
if ( m_oOutline.IsInit() )
{
sResult += _T("<w:outline ");
......@@ -1236,6 +1256,8 @@ namespace OOX
oProperties.m_oLang = Merge( oPrev.m_oLang, oCurrent.m_oLang );
oProperties.m_oNoProof = Merge( oPrev.m_oNoProof, oCurrent.m_oNoProof );
oProperties.m_oMath = Merge( oPrev.m_oMath, oCurrent.m_oMath );
oProperties.m_oMoveFrom = Merge( oPrev.m_oMoveFrom, oCurrent.m_oMoveFrom );
oProperties.m_oMoveTo = Merge( oPrev.m_oMoveTo, oCurrent.m_oMoveTo );
oProperties.m_oOutline = Merge( oPrev.m_oOutline, oCurrent.m_oOutline );
oProperties.m_oPosition = Merge( oPrev.m_oPosition, oCurrent.m_oPosition );
oProperties.m_oRFonts = Merge( oPrev.m_oRFonts, oCurrent.m_oRFonts );
......@@ -1340,6 +1362,12 @@ namespace OOX
if ( m_oMath.IsInit() )
return false;
if ( m_oMoveFrom.IsInit() )
return false;
if ( m_oMoveTo.IsInit() )
return false;
if ( m_oOutline.IsInit() )
return false;
......@@ -1427,6 +1455,8 @@ namespace OOX
nullable<ComplexTypes::Word::CLanguage > m_oLang;
nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oNoProof;
nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oMath;
nullable<ComplexTypes::Word::CTrackChange > m_oMoveFrom;
nullable<ComplexTypes::Word::CTrackChange > m_oMoveTo;
nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oOutline;
nullable<ComplexTypes::Word::CSignedHpsMeasure > m_oPosition;
nullable<ComplexTypes::Word::CFonts > m_oRFonts;
......
......@@ -114,9 +114,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -208,14 +208,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -116,9 +116,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -203,14 +203,14 @@ namespace OOX
pItem = new CHyperlink( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -307,9 +307,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -386,14 +386,14 @@ namespace OOX
pItem = new CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......@@ -511,9 +511,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -611,14 +611,14 @@ namespace OOX
pItem = new CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......@@ -762,9 +762,9 @@ namespace OOX
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oItem );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oItem );
pItem = new CMoveFromRangeEnd( oItem );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oItem );
pItem = new CMoveFromRangeStart( oItem );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oItem );
else if ( _T("w:moveToRangeEnd") == sName )
......@@ -845,14 +845,14 @@ namespace OOX
pItem = new CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -107,14 +107,14 @@ namespace OOX
pItem = new CDel( oReader );
else if ( _T("w:ins") == sName )
pItem = new CIns( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
pItem = new CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new CMoveToRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
pItem = new CMoveFromRangeStart( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -128,14 +128,14 @@ namespace OOX
pItem = new OOX::Logic::CLimUpp( oReader );
else if ( _T("m:m") == sName )
pItem = new OOX::Logic::CMatrix( oReader );
//else if ( _T("w:moveFrom") == sName )
// pItem = new OOX::Logic::CMoveFrom( oReader );
else if ( _T("w:moveFrom") == sName )
pItem = new OOX::Logic::CMoveFrom( oReader );
else if ( _T("w:moveFromRangeEnd") == sName )
pItem = new OOX::Logic::CMoveFromRangeEnd( oReader );
else if ( _T("w:moveFromRangeStart") == sName )
pItem = new OOX::Logic::CMoveFromRangeStart( oReader );
//else if ( _T("w:moveTo") == sName )
// pItem = new CMoveTo( oReader );
else if ( _T("w:moveTo") == sName )
pItem = new CMoveTo( oReader );
else if ( _T("w:moveToRangeEnd") == sName )
pItem = new OOX::Logic::CMoveToRangeEnd( oReader );
else if ( _T("w:moveToRangeStart") == sName )
......
......@@ -695,6 +695,8 @@ namespace OOX
et_w_lvlOverride, // <w:lvlOverride>
et_w_monthLong, // <w:monthLong>
et_w_monthShort, // <w:monthShort>
et_w_moveFrom, // <w:moveFrom>
et_w_moveTo, // <w:moveTo>
et_w_moveFromRangeEnd, // <w:moveFromRangeEnd>
et_w_moveFromRangeStart, // <w:moveFromRangeStart>
et_w_moveToRangeEnd, // <w:moveToRangeEnd>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment