Commit 1beb5440 authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter - transitions

parent 9a9ba4cc
...@@ -132,7 +132,7 @@ void pptx_conversion_context::process_layouts() ...@@ -132,7 +132,7 @@ void pptx_conversion_context::process_layouts()
type == odf_types::presentation_class::header || type == odf_types::presentation_class::header ||
type == odf_types::presentation_class::page_number) type == odf_types::presentation_class::page_number)
{ {
if (frame->idx_in_owner <0) if (frame->idx_in_owner < 0)
frame->idx_in_owner = last_idx_placeHolder++; frame->idx_in_owner = last_idx_placeHolder++;
frame->pptx_convert_placeHolder(*this); frame->pptx_convert_placeHolder(*this);
......
...@@ -58,6 +58,7 @@ const wchar_t * anim_par::name = L"par"; ...@@ -58,6 +58,7 @@ const wchar_t * anim_par::name = L"par";
void anim_par::add_attributes( const xml::attributes_wc_ptr & Attributes ) void anim_par::add_attributes( const xml::attributes_wc_ptr & Attributes )
{ {
attlist_.add_attributes(Attributes);
} }
void anim_par::pptx_convert(oox::pptx_conversion_context & Context) void anim_par::pptx_convert(oox::pptx_conversion_context & Context)
...@@ -98,6 +99,7 @@ const wchar_t * anim_seq::name = L"seq"; ...@@ -98,6 +99,7 @@ const wchar_t * anim_seq::name = L"seq";
void anim_seq::add_attributes( const xml::attributes_wc_ptr & Attributes ) void anim_seq::add_attributes( const xml::attributes_wc_ptr & Attributes )
{ {
attlist_.add_attributes(Attributes);
} }
void anim_seq::pptx_convert(oox::pptx_conversion_context & Context) void anim_seq::pptx_convert(oox::pptx_conversion_context & Context)
...@@ -235,7 +237,7 @@ void anim_transitionFilter::pptx_convert(oox::pptx_conversion_context & Context) ...@@ -235,7 +237,7 @@ void anim_transitionFilter::pptx_convert(oox::pptx_conversion_context & Context)
case smil_transition_type::randomBarWipe: case smil_transition_type::randomBarWipe:
type = L"randomBar"; type = L"randomBar";
if (attlist_.smil_subtype_.get() == L"vertical") dir = L"vert"; if (attlist_.smil_subtype_.get() == L"vertical") dir = L"vert";
if (attlist_.smil_subtype_.get() == L"horizontal")dir = L"horz"; if (attlist_.smil_subtype_.get() == L"horizontal") dir = L"horz";
break; break;
case smil_transition_type::pushWipe: case smil_transition_type::pushWipe:
type = L"push"; type = L"push";
...@@ -306,7 +308,7 @@ void anim_transitionFilter::pptx_convert(oox::pptx_conversion_context & Context) ...@@ -306,7 +308,7 @@ void anim_transitionFilter::pptx_convert(oox::pptx_conversion_context & Context)
if (attlist_.smil_subtype_.get()==L"topLeft") dir = L"rd"; if (attlist_.smil_subtype_.get()==L"topLeft") dir = L"rd";
if (attlist_.smil_subtype_.get()==L"fromTopLeft") dir = L"rd"; if (attlist_.smil_subtype_.get()==L"fromTopLeft") dir = L"rd";
if (attlist_.smil_subtype_.get()==L"fromBottomLeft") dir = L"ru"; if (attlist_.smil_subtype_.get()==L"fromBottomLeft")dir = L"ru";
if (attlist_.smil_subtype_.get()==L"fromTopRight") dir = L"ld"; if (attlist_.smil_subtype_.get()==L"fromTopRight") dir = L"ld";
if (attlist_.smil_subtype_.get()==L"fromBottomRight")dir = L"lu"; if (attlist_.smil_subtype_.get()==L"fromBottomRight")dir = L"lu";
......
...@@ -342,11 +342,14 @@ namespace odf_writer ...@@ -342,11 +342,14 @@ namespace odf_writer
CP_XML_ATTR(L"xmlns:tableooo", L"http://openoffice.org/2009/table" ); CP_XML_ATTR(L"xmlns:tableooo", L"http://openoffice.org/2009/table" );
CP_XML_ATTR(L"xmlns:drawooo", L"http://openoffice.org/2010/draw" ); CP_XML_ATTR(L"xmlns:drawooo", L"http://openoffice.org/2010/draw" );
CP_XML_ATTR(L"xmlns:chartooo", L"http://openoffice.org/2010/chart" ); CP_XML_ATTR(L"xmlns:chartooo", L"http://openoffice.org/2010/chart" );
CP_XML_ATTR(L"xmlns:smil", L"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0");
CP_XML_ATTR(L"xmlns:anim", L"urn:oasis:names:tc:opendocument:xmlns:animation:1.0" );
CP_XML_ATTR(L"xmlns:calcext", L"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" ); CP_XML_ATTR(L"xmlns:calcext", L"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" );
CP_XML_ATTR(L"xmlns:field", L"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" ); CP_XML_ATTR(L"xmlns:field", L"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" );
CP_XML_ATTR(L"xmlns:formx", L"urn:openoffice:names:experimental:ooxml-odf_writer-interop:xmlns:form:1.0" ); CP_XML_ATTR(L"xmlns:formx", L"urn:openoffice:names:experimental:ooxml-odf_writer-interop:xmlns:form:1.0" );
CP_XML_ATTR(L"xmlns:loext", L"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" ); CP_XML_ATTR(L"xmlns:loext", L"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" );
CP_XML_ATTR(L"xmlns:css3t", L"http://www.w3.org/TR/css3-text/" ); CP_XML_ATTR(L"xmlns:css3t", L"http://www.w3.org/TR/css3-text/" );
CP_XML_ATTR(L"office:version", L"1.2"); CP_XML_ATTR(L"office:version", L"1.2");
//CP_XML_NODE(L"office:scripts"); //CP_XML_NODE(L"office:scripts");
...@@ -402,6 +405,8 @@ namespace odf_writer ...@@ -402,6 +405,8 @@ namespace odf_writer
CP_XML_ATTR(L"xmlns:of", L"urn:oasis:names:tc:opendocument:xmlns:of:1.2" ); CP_XML_ATTR(L"xmlns:of", L"urn:oasis:names:tc:opendocument:xmlns:of:1.2" );
CP_XML_ATTR(L"xmlns:xhtml", L"http://www.w3.org/1999/xhtml" ); CP_XML_ATTR(L"xmlns:xhtml", L"http://www.w3.org/1999/xhtml" );
CP_XML_ATTR(L"xmlns:grddl", L"http://www.w3.org/2003/g/data-view#" ); CP_XML_ATTR(L"xmlns:grddl", L"http://www.w3.org/2003/g/data-view#" );
CP_XML_ATTR(L"xmlns:smil", L"urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0");
CP_XML_ATTR(L"xmlns:anim", L"urn:oasis:names:tc:opendocument:xmlns:animation:1.0" );
CP_XML_ATTR(L"xmlns:officeooo", L"http://openoffice.org/2009/office" ); CP_XML_ATTR(L"xmlns:officeooo", L"http://openoffice.org/2009/office" );
CP_XML_ATTR(L"xmlns:textooo", L"http://openoffice.org/2013/office" ); CP_XML_ATTR(L"xmlns:textooo", L"http://openoffice.org/2013/office" );
CP_XML_ATTR(L"xmlns:tableooo", L"http://openoffice.org/2009/table" ); CP_XML_ATTR(L"xmlns:tableooo", L"http://openoffice.org/2009/table" );
......
...@@ -191,7 +191,7 @@ void odp_page_state::set_transition_type(int val) ...@@ -191,7 +191,7 @@ void odp_page_state::set_transition_type(int val)
{ {
anim_transitionFilter *trans = dynamic_cast<anim_transitionFilter*>(page_transaction.get()); anim_transitionFilter *trans = dynamic_cast<anim_transitionFilter*>(page_transaction.get());
if (trans) if (trans)
trans->attlist_.smil_type_ = odf_types::smil_transition_type(odf_types::smil_transition_type::dissolve); trans->attlist_.smil_type_ = odf_types::smil_transition_type((odf_types::smil_transition_type::type)val);
} }
void odp_page_state::set_transition_subtype(std::wstring val) void odp_page_state::set_transition_subtype(std::wstring val)
{ {
......
...@@ -253,116 +253,88 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown) ...@@ -253,116 +253,88 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown)
{ {
case OOX::et_w_ptab: case OOX::et_w_ptab:
{ {
OOX::Logic::CPTab* pT= dynamic_cast<OOX::Logic::CPTab*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CPTab*>(oox_unknown));
convert(pT);
}break; }break;
case OOX::et_w_sdt: case OOX::et_w_sdt:
{ {
OOX::Logic::CSdt* pP= dynamic_cast<OOX::Logic::CSdt*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CSdt*>(oox_unknown));
convert(pP);
}break; }break;
case OOX::et_w_fldSimple: case OOX::et_w_fldSimple:
{ {
OOX::Logic::CFldSimple* pFldS= dynamic_cast<OOX::Logic::CFldSimple*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CFldSimple*>(oox_unknown));
convert(pFldS);
}break; }break;
case OOX::et_w_r: case OOX::et_w_r:
{ {
OOX::Logic::CRun* pRun= dynamic_cast<OOX::Logic::CRun*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CRun*>(oox_unknown));
convert(pRun);
}break; }break;
case OOX::et_w_p: case OOX::et_w_p:
{ {
OOX::Logic::CParagraph* pP= dynamic_cast<OOX::Logic::CParagraph*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CParagraph*>(oox_unknown));
convert(pP);
}break; }break;
case OOX::et_w_ins: case OOX::et_w_ins:
{ {
OOX::Logic::CIns* pIns= dynamic_cast<OOX::Logic::CIns*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CIns*>(oox_unknown));
convert(pIns);
}break; }break;
case OOX::et_w_del: case OOX::et_w_del:
{ {
OOX::Logic::CDel* pDel= dynamic_cast<OOX::Logic::CDel*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CDel*>(oox_unknown));
convert(pDel);
}break; }break;
case OOX::et_w_smartTag: case OOX::et_w_smartTag:
{ {
OOX::Logic::CSmartTag* pTag= dynamic_cast<OOX::Logic::CSmartTag*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CSmartTag*>(oox_unknown));
convert(pTag);
}break; }break;
case OOX::et_w_pPr: case OOX::et_w_pPr:
{ {
OOX::Logic::CParagraphProperty* pPProp= dynamic_cast<OOX::Logic::CParagraphProperty*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CParagraphProperty*>(oox_unknown));
convert(pPProp);
}break; }break;
case OOX::et_w_hyperlink: case OOX::et_w_hyperlink:
{ {
OOX::Logic::CHyperlink* pH= dynamic_cast<OOX::Logic::CHyperlink*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CHyperlink*>(oox_unknown));
convert(pH);
}break; }break;
case OOX::et_w_rPr: case OOX::et_w_rPr:
{ {
OOX::Logic::CRunProperty* pRProp= dynamic_cast<OOX::Logic::CRunProperty*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CRunProperty*>(oox_unknown));
convert(pRProp);
}break; }break;
case OOX::et_mc_alternateContent: case OOX::et_mc_alternateContent:
{ {
OOX::Logic::CAlternateContent* pAltCont= dynamic_cast<OOX::Logic::CAlternateContent*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CAlternateContent*>(oox_unknown));
convert(pAltCont);
}break; }break;
case OOX::et_w_drawing: case OOX::et_w_drawing:
{ {
OOX::Logic::CDrawing* pDrawing= dynamic_cast<OOX::Logic::CDrawing*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CDrawing*>(oox_unknown));
convert(pDrawing);
}break; }break;
//case OOX::et_c_chart:
//{
// PPTX::Logic::ChartRec* pChart = dynamic_cast<PPTX::Logic::ChartRec*>(oox_unknown);
// convert(pChart);
//}break;
//case OOX::et_w_Shape:
//{
// OOX::Logic::CShape* pShape = dynamic_cast<OOX::Logic::CShape*>(oox_unknown);
// convert(pShape);
//}break;
case OOX::et_w_pict: case OOX::et_w_pict:
{ {
OOX::Logic::CPicture* pPic = dynamic_cast<OOX::Logic::CPicture*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CPicture*>(oox_unknown));
convert(pPic);
}break; }break;
case OOX::et_w_object: case OOX::et_w_object:
{ {
OOX::Logic::CObject* pObj = dynamic_cast<OOX::Logic::CObject*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CObject*>(oox_unknown));
convert(pObj);
}break; }break;
case OOX::et_pic_pic: case OOX::et_pic_pic:
case OOX::et_pic: case OOX::et_pic:
case OOX::et_p_pic: case OOX::et_p_pic:
{ {
PPTX::Logic::Pic* pPic = dynamic_cast<PPTX::Logic::Pic*>(oox_unknown); convert(dynamic_cast<PPTX::Logic::Pic*>(oox_unknown));
convert(pPic);
}break; }break;
case OOX::et_w_GroupShape: case OOX::et_w_GroupShape:
case OOX::et_p_ShapeTree: case OOX::et_p_ShapeTree:
{ {
PPTX::Logic::SpTree* pGroupShape= dynamic_cast<PPTX::Logic::SpTree*>(oox_unknown); convert(dynamic_cast<PPTX::Logic::SpTree*>(oox_unknown));
convert(pGroupShape);
}break; }break;
case OOX::et_w_commentRangeEnd: case OOX::et_w_commentRangeEnd:
{ {
OOX::Logic::CCommentRangeEnd* pCommEnd = dynamic_cast<OOX::Logic::CCommentRangeEnd*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CCommentRangeEnd*>(oox_unknown));
convert(pCommEnd);
}break; }break;
case OOX::et_w_commentRangeStart: case OOX::et_w_commentRangeStart:
{ {
OOX::Logic::CCommentRangeStart* pCommStart = dynamic_cast<OOX::Logic::CCommentRangeStart*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CCommentRangeStart*>(oox_unknown));
convert(pCommStart);
}break; }break;
case OOX::et_w_commentReference: case OOX::et_w_commentReference:
{ {
convert(dynamic_cast<OOX::Logic::CCommentReference*>(oox_unknown)); //если нет Start - означает начало с предыдущего Run convert(dynamic_cast<OOX::Logic::CCommentReference*>(oox_unknown));
//если нет Start - означает начало с предыдущего Run
}break; }break;
case OOX::et_w_footnoteReference: case OOX::et_w_footnoteReference:
{ {
...@@ -386,13 +358,11 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown) ...@@ -386,13 +358,11 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown)
}break; }break;
case OOX::et_w_tr: case OOX::et_w_tr:
{ {
OOX::Logic::CTr* pRow= dynamic_cast<OOX::Logic::CTr*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CTr*>(oox_unknown));
convert(pRow);
}break; }break;
case OOX::et_w_tc: case OOX::et_w_tc:
{ {
OOX::Logic::CTc* pCell= dynamic_cast<OOX::Logic::CTc*>(oox_unknown); convert(dynamic_cast<OOX::Logic::CTc*>(oox_unknown));
convert(pCell);
}break; }break;
case OOX::et_w_bookmarkStart: case OOX::et_w_bookmarkStart:
{ {
......
...@@ -42,6 +42,16 @@ ...@@ -42,6 +42,16 @@
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h" #include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CTn.h" #include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CTn.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/EmptyTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/OrientationTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/EightDirectionTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/OptionalBlackTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/SideDirectionTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/CornerDirectionTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/WheelTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/SplitTransition.h"
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/ZoomTransition.h"
#include <boost/lexical_cast.hpp> #include <boost/lexical_cast.hpp>
#include "../OdfFormat/odp_conversion_context.h" #include "../OdfFormat/odp_conversion_context.h"
...@@ -365,13 +375,18 @@ void PptxConverter::convert_slides() ...@@ -365,13 +375,18 @@ void PptxConverter::convert_slides()
convert_slide(&slide->Layout->cSld, current_txStyles, true, bShowLayoutMasterSp, 3); convert_slide(&slide->Layout->cSld, current_txStyles, true, bShowLayoutMasterSp, 3);
if (slide->Layout->transition.IsInit()) convert (slide->Layout->transition.GetPointer());
else convert (slide->Master->transition.GetPointer());
if (slide->Layout->timing.IsInit()) convert (slide->Layout->timing.GetPointer());
else convert (slide->Master->timing.GetPointer());
if (!presentation->notesMasterIdLst.empty()) if (!presentation->notesMasterIdLst.empty())
{ {
rId = presentation->notesMasterIdLst[0].rid.get(); rId = presentation->notesMasterIdLst[0].rid.get();
smart_ptr<PPTX::NotesMaster> notes_master = ((*presentation)[rId]).smart_dynamic_cast<PPTX::NotesMaster>(); smart_ptr<PPTX::NotesMaster> notes_master = ((*presentation)[rId]).smart_dynamic_cast<PPTX::NotesMaster>();
convert(notes_master.operator->()); convert(notes_master.operator->());
} }
//add note master
odp_context->end_master_slide(); odp_context->end_master_slide();
m_mapMasters.insert(std::make_pair(master_name, master_style_name)); m_mapMasters.insert(std::make_pair(master_name, master_style_name));
...@@ -490,6 +505,24 @@ void PptxConverter::convert(OOX::WritingElement *oox_unknown) ...@@ -490,6 +505,24 @@ void PptxConverter::convert(OOX::WritingElement *oox_unknown)
switch(oox_unknown->getType()) switch(oox_unknown->getType())
{ {
case OOX::et_p_EmptyTransition:
convert(dynamic_cast<PPTX::Logic::EmptyTransition*>(oox_unknown)); break;
case OOX::et_p_OrientationTransition:
convert(dynamic_cast<PPTX::Logic::OrientationTransition*>(oox_unknown)); break;
case OOX::et_p_EightDirectionTransition:
convert(dynamic_cast<PPTX::Logic::EightDirectionTransition*>(oox_unknown)); break;
case OOX::et_p_OptionalBlackTransition:
convert(dynamic_cast<PPTX::Logic::OptionalBlackTransition*>(oox_unknown)); break;
case OOX::et_p_CornerDirectionTransition:
convert(dynamic_cast<PPTX::Logic::CornerDirectionTransition*>(oox_unknown)); break;
case OOX::et_p_SideDirectionTransition:
convert(dynamic_cast<PPTX::Logic::SideDirectionTransition*>(oox_unknown)); break;
case OOX::et_p_WheelTransition:
convert(dynamic_cast<PPTX::Logic::WheelTransition*>(oox_unknown)); break;
case OOX::et_p_SplitTransition:
convert(dynamic_cast<PPTX::Logic::SplitTransition*>(oox_unknown)); break;
case OOX::et_p_ZoomTransition:
convert(dynamic_cast<PPTX::Logic::ZoomTransition*>(oox_unknown)); break;
default: default:
{ {
OoxConverter::convert(oox_unknown); OoxConverter::convert(oox_unknown);
...@@ -542,8 +575,7 @@ void PptxConverter::convert( PPTX::Logic::Transition *oox_transition ) ...@@ -542,8 +575,7 @@ void PptxConverter::convert( PPTX::Logic::Transition *oox_transition )
if (oox_transition->dur.is_init()) if (oox_transition->dur.is_init())
odp_context->current_slide().set_transition_duration(*oox_transition->dur); odp_context->current_slide().set_transition_duration(*oox_transition->dur);
odp_context->current_slide().set_transition_type(5); convert(oox_transition->base.base.operator->());
//convert(oox_transition->base.operator->());
//if (oox_transition->sndAc.is_init() && oox_transition->sndAc->stSnd.is_init()) //if (oox_transition->sndAc.is_init() && oox_transition->sndAc->stSnd.is_init())
//{ //{
...@@ -591,6 +623,127 @@ void PptxConverter::convert(PPTX::Logic::TimeNodeBase *oox_time_base) ...@@ -591,6 +623,127 @@ void PptxConverter::convert(PPTX::Logic::TimeNodeBase *oox_time_base)
odp_context->current_slide().end_timing_seq(); odp_context->current_slide().end_timing_seq();
} }
} }
void PptxConverter::convert(PPTX::Logic::EmptyTransition *oox_transition)
{
if (!oox_transition) return;
if (oox_transition->name == L"random")
odp_context->current_slide().set_transition_type(40);
if (oox_transition->name == L"circle")
odp_context->current_slide().set_transition_type(16);
if (oox_transition->name == L"dissolve")
odp_context->current_slide().set_transition_type(39);
if (oox_transition->name == L"diamond")
{
odp_context->current_slide().set_transition_type(11);
odp_context->current_slide().set_transition_subtype(L"diamond");
}
if (oox_transition->name == L"newsflash")
odp_context->current_slide().set_transition_type(5);
if (oox_transition->name == L"plus")
odp_context->current_slide().set_transition_type(2);//??
if (oox_transition->name == L"wedge")
odp_context->current_slide().set_transition_type(24);
}
void PptxConverter::convert(PPTX::Logic::OrientationTransition *oox_transition)
{
if (!oox_transition) return;
if (oox_transition->name == L"blinds")
odp_context->current_slide().set_transition_type(38);
if (oox_transition->name == L"checker")
odp_context->current_slide().set_transition_type(37);
if (oox_transition->name == L"comb")
{
odp_context->current_slide().set_transition_type(34);
if (oox_transition->dir.IsInit())
{
if (oox_transition->dir->get() == L"horz")
odp_context->current_slide().set_transition_subtype(L"combHorizontal");
if (oox_transition->dir->get() == L"vert")
odp_context->current_slide().set_transition_subtype(L"combVertical");
}
}
if (oox_transition->name == L"randomBar")
odp_context->current_slide().set_transition_type(40);
}
void PptxConverter::convert(PPTX::Logic::EightDirectionTransition *oox_transition)
{
if (!oox_transition) return;
if (oox_transition->name == L"cover")
odp_context->current_slide().set_transition_type(1);
if (oox_transition->name == L"pull")
odp_context->current_slide().set_transition_type(35);
}
void PptxConverter::convert(PPTX::Logic::OptionalBlackTransition *oox_transition)
{
if (!oox_transition) return;
if (oox_transition->name == L"cut")
odp_context->current_slide().set_transition_type(36);
if (oox_transition->name == L"fade")
odp_context->current_slide().set_transition_type(36);
}
void PptxConverter::convert(PPTX::Logic::SideDirectionTransition *oox_transition)
{
if (!oox_transition) return;
std::wstring dir;
if (oox_transition->dir.IsInit()) dir = oox_transition->dir->get();
if (oox_transition->name == L"push")
{
odp_context->current_slide().set_transition_type(34);
if (dir == L"d") odp_context->current_slide().set_transition_subtype(L"fromTop");
if (dir == L"l") odp_context->current_slide().set_transition_subtype(L"fromRight");
if (dir == L"r") odp_context->current_slide().set_transition_subtype(L"fromLeft");
if (dir == L"u") odp_context->current_slide().set_transition_subtype(L"fromBottom");
}
if (oox_transition->name == L"wipe")
odp_context->current_slide().set_transition_type(0);
}
void PptxConverter::convert(PPTX::Logic::CornerDirectionTransition *oox_transition)
{
if (!oox_transition) return;
//name == strips
odp_context->current_slide().set_transition_type(4);
if (oox_transition->dir.IsInit())
{
if (oox_transition->dir->get() == L"rd") odp_context->current_slide().set_transition_subtype(L"horizontalLeft");
if (oox_transition->dir->get() == L"lu") odp_context->current_slide().set_transition_subtype(L"horizontalRight");
if (oox_transition->dir->get() == L"ld") odp_context->current_slide().set_transition_subtype(L"verticalRight");
}
}
void PptxConverter::convert(PPTX::Logic::WheelTransition *oox_transition)
{
if (!oox_transition) return;
//name == wheel
odp_context->current_slide().set_transition_type(21);
switch (oox_transition->spokes.get_value_or(0))
{
case 1: odp_context->current_slide().set_transition_subtype(L"oneBlade"); break;
case 3: odp_context->current_slide().set_transition_subtype(L"threeBlade"); break;
case 4: odp_context->current_slide().set_transition_subtype(L"fourBlade"); break;
case 8: odp_context->current_slide().set_transition_subtype(L"eightBlade"); break;
}
}
void PptxConverter::convert(PPTX::Logic::SplitTransition *oox_transition)
{
if (!oox_transition) return;
//name == split
odp_context->current_slide().set_transition_type(8);
}
void PptxConverter::convert(PPTX::Logic::ZoomTransition *oox_transition)
{
if (!oox_transition) return;
//name == zoom
odp_context->current_slide().set_transition_type(11);
}
void PptxConverter::convert(PPTX::Logic::CTn *oox_time_common) void PptxConverter::convert(PPTX::Logic::CTn *oox_time_common)
{ {
if (!oox_time_common) return; if (!oox_time_common) return;
......
...@@ -69,7 +69,15 @@ namespace PPTX ...@@ -69,7 +69,15 @@ namespace PPTX
class TxStyles; class TxStyles;
class TimeNodeBase; class TimeNodeBase;
class CTn; class CTn;
class EmptyTransition;
class OrientationTransition;
class EightDirectionTransition;
class OptionalBlackTransition;
class CornerDirectionTransition;
class SideDirectionTransition;
class WheelTransition;
class SplitTransition;
class ZoomTransition;
} }
} }
...@@ -136,6 +144,16 @@ namespace Oox2Odf ...@@ -136,6 +144,16 @@ namespace Oox2Odf
void convert(PPTX::Logic::Ln *oox_ln_border, std::wstring & odf_border); void convert(PPTX::Logic::Ln *oox_ln_border, std::wstring & odf_border);
private: private:
void convert(PPTX::Logic::EmptyTransition *oox_transition);
void convert(PPTX::Logic::OrientationTransition *oox_transition);
void convert(PPTX::Logic::EightDirectionTransition *oox_transition);
void convert(PPTX::Logic::OptionalBlackTransition *oox_transition);
void convert(PPTX::Logic::CornerDirectionTransition *oox_transition);
void convert(PPTX::Logic::SideDirectionTransition *oox_transition);
void convert(PPTX::Logic::WheelTransition *oox_transition);
void convert(PPTX::Logic::SplitTransition *oox_transition);
void convert(PPTX::Logic::ZoomTransition *oox_transition);
PPTX::Folder *pptx_document; PPTX::Folder *pptx_document;
PPTX::Presentation *presentation; PPTX::Presentation *presentation;
cpdoccore::odf_writer::package::odf_document *output_document; cpdoccore::odf_writer::package::odf_document *output_document;
......
...@@ -45,7 +45,11 @@ namespace PPTX ...@@ -45,7 +45,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(CornerDirectionTransition) PPTX_LOGIC_BASE(CornerDirectionTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_CornerDirectionTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
......
...@@ -45,7 +45,11 @@ namespace PPTX ...@@ -45,7 +45,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(EightDirectionTransition) PPTX_LOGIC_BASE(EightDirectionTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_EightDirectionTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
...@@ -60,7 +64,6 @@ namespace PPTX ...@@ -60,7 +64,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:") + name, oAttr); return XmlUtils::CreateNode(_T("p:") + name, oAttr);
} }
public:
std::wstring name; std::wstring name;
nullable_limit<Limit::EightDirectionVal> dir; nullable_limit<Limit::EightDirectionVal> dir;
protected: protected:
......
...@@ -44,7 +44,11 @@ namespace PPTX ...@@ -44,7 +44,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(EmptyTransition) PPTX_LOGIC_BASE(EmptyTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_EmptyTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
...@@ -55,7 +59,6 @@ namespace PPTX ...@@ -55,7 +59,6 @@ namespace PPTX
return _T("<p:") + name + _T("/>"); return _T("<p:") + name + _T("/>");
} }
public:
std::wstring name; std::wstring name;
protected: protected:
virtual void FillParentPointersForChilds(){}; virtual void FillParentPointersForChilds(){};
......
...@@ -44,7 +44,11 @@ namespace PPTX ...@@ -44,7 +44,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(OptionalBlackTransition) PPTX_LOGIC_BASE(OptionalBlackTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_OptionalBlackTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
...@@ -59,9 +63,9 @@ namespace PPTX ...@@ -59,9 +63,9 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:") + name, oAttr); return XmlUtils::CreateNode(_T("p:") + name, oAttr);
} }
public:
std::wstring name; std::wstring name;
nullable_bool thruBlk; nullable_bool thruBlk;
protected: protected:
virtual void FillParentPointersForChilds(){}; virtual void FillParentPointersForChilds(){};
}; };
......
...@@ -45,7 +45,11 @@ namespace PPTX ...@@ -45,7 +45,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(OrientationTransition) PPTX_LOGIC_BASE(OrientationTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_OrientationTransition;
}
void fromXML(XmlUtils::CXmlNode& node) void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
...@@ -60,7 +64,6 @@ namespace PPTX ...@@ -60,7 +64,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:") + name, oAttr); return XmlUtils::CreateNode(_T("p:") + name, oAttr);
} }
public:
std::wstring name; std::wstring name;
nullable_limit<Limit::Orient> dir; nullable_limit<Limit::Orient> dir;
protected: protected:
......
...@@ -45,7 +45,11 @@ namespace PPTX ...@@ -45,7 +45,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(SideDirectionTransition) PPTX_LOGIC_BASE(SideDirectionTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_SideDirectionTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
name = XmlUtils::GetNameNoNS(node.GetName()); name = XmlUtils::GetNameNoNS(node.GetName());
...@@ -60,7 +64,6 @@ namespace PPTX ...@@ -60,7 +64,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:") + name, oAttr); return XmlUtils::CreateNode(_T("p:") + name, oAttr);
} }
public:
std::wstring name; std::wstring name;
nullable_limit<Limit::SideDirectionVal> dir; nullable_limit<Limit::SideDirectionVal> dir;
protected: protected:
......
...@@ -46,7 +46,11 @@ namespace PPTX ...@@ -46,7 +46,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(SplitTransition) PPTX_LOGIC_BASE(SplitTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_SplitTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
node.ReadAttributeBase(L"dir", dir); node.ReadAttributeBase(L"dir", dir);
...@@ -62,7 +66,6 @@ namespace PPTX ...@@ -62,7 +66,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:split"), oAttr); return XmlUtils::CreateNode(_T("p:split"), oAttr);
} }
public:
nullable_limit<Limit::InOutDirectionVal> dir; nullable_limit<Limit::InOutDirectionVal> dir;
nullable_limit<Limit::Orient> orient; nullable_limit<Limit::Orient> orient;
protected: protected:
......
...@@ -44,7 +44,11 @@ namespace PPTX ...@@ -44,7 +44,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(WheelTransition) PPTX_LOGIC_BASE(WheelTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_WheelTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
node.ReadAttributeBase(L"spokes", spokes); node.ReadAttributeBase(L"spokes", spokes);
...@@ -58,7 +62,6 @@ namespace PPTX ...@@ -58,7 +62,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:wheel"), oAttr); return XmlUtils::CreateNode(_T("p:wheel"), oAttr);
} }
public:
nullable_int spokes; nullable_int spokes;
protected: protected:
virtual void FillParentPointersForChilds(){}; virtual void FillParentPointersForChilds(){};
......
...@@ -45,7 +45,11 @@ namespace PPTX ...@@ -45,7 +45,11 @@ namespace PPTX
public: public:
PPTX_LOGIC_BASE(ZoomTransition) PPTX_LOGIC_BASE(ZoomTransition)
public: virtual OOX::EElementType getType() const
{
return OOX::et_p_ZoomTransition;
}
virtual void fromXML(XmlUtils::CXmlNode& node) virtual void fromXML(XmlUtils::CXmlNode& node)
{ {
node.ReadAttributeBase(L"dir", dir); node.ReadAttributeBase(L"dir", dir);
...@@ -59,7 +63,6 @@ namespace PPTX ...@@ -59,7 +63,6 @@ namespace PPTX
return XmlUtils::CreateNode(_T("p:zoom"), oAttr); return XmlUtils::CreateNode(_T("p:zoom"), oAttr);
} }
public:
nullable_limit<Limit::InOutDirectionVal> dir; nullable_limit<Limit::InOutDirectionVal> dir;
protected: protected:
virtual void FillParentPointersForChilds(){}; virtual void FillParentPointersForChilds(){};
......
...@@ -376,6 +376,16 @@ namespace OOX ...@@ -376,6 +376,16 @@ namespace OOX
et_p_br, et_p_br,
et_p_MathPara, et_p_MathPara,
et_p_EmptyTransition,
et_p_OrientationTransition,
et_p_EightDirectionTransition,
et_p_OptionalBlackTransition,
et_p_CornerDirectionTransition,
et_p_SideDirectionTransition,
et_p_WheelTransition,
et_p_SplitTransition,
et_p_ZoomTransition,
et_a_textFit, et_a_textFit,
et_a_hyperlink, et_a_hyperlink,
et_a_fld, et_a_fld,
......
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