Commit e0296d5a authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter - odp master page

parent e26cf3bf
......@@ -37,8 +37,6 @@
#include "office_elements_create.h"
#include <cpdoccore/xml/simple_xml_writer.h>
namespace cpdoccore {
using namespace odf_types;
......@@ -46,18 +44,18 @@ namespace cpdoccore {
namespace odf_writer {
void draw_page_attr::add_attributes( const xml::attributes_wc_ptr & Attributes )
void draw_page_attr::serialize(CP_ATTR_NODE)
{
CP_APPLY_ATTR(L"draw:id", draw_id_);
CP_XML_ATTR_OPT(L"draw:id", draw_id_);
CP_APPLY_ATTR(L"draw:name", draw_name_);
CP_APPLY_ATTR(L"draw:style-name", draw_style_name_);
CP_XML_ATTR_OPT(L"draw:name", draw_name_);
CP_XML_ATTR_OPT(L"draw:style-name", draw_style_name_);
CP_APPLY_ATTR(L"presentation:presentation-page-layout-name", page_layout_name_);
CP_APPLY_ATTR(L"draw:master-page-name", master_page_name_);
CP_XML_ATTR_OPT(L"presentation:presentation-page-layout-name", page_layout_name_);
CP_XML_ATTR_OPT(L"draw:master-page-name", master_page_name_);
CP_APPLY_ATTR(L"presentation:use-date-time-name", use_date_time_name_);
CP_APPLY_ATTR(L"presentation:use-footer-name", use_footer_name_);
CP_XML_ATTR_OPT(L"presentation:use-date-time-name", use_date_time_name_);
CP_XML_ATTR_OPT(L"presentation:use-footer-name", use_footer_name_);
}
......@@ -81,20 +79,20 @@ void draw_page::add_child_element( const office_element_ptr & child_element)
content_.push_back(child_element);
}
void draw_page::add_attributes( const xml::attributes_wc_ptr & Attributes )
{
draw_page_attr_.add_attributes(Attributes);
}
void draw_page::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
draw_page_attr_.serialize(CP_GET_XML_NODE());
for (int i = 0; i < content_.size(); i++)
{
content_[i]->serialize(CP_XML_STREAM());
}
if (animation_)
animation_->serialize(CP_XML_STREAM());
}
}
}
......@@ -104,22 +102,22 @@ void draw_page::serialize(std::wostream & _Wostream)
const wchar_t * presentation_footer_decl::ns = L"presentation";
const wchar_t * presentation_footer_decl::name = L"footer-decl";
void presentation_footer_decl::add_attributes( const xml::attributes_wc_ptr & Attributes )
{
CP_APPLY_ATTR(L"presentation:name", presentation_name_);
}
//void presentation_footer_decl::add_attributes( const xml::attributes_wc_ptr & Attributes )
//{
// CP_XML_ATTR_OPT(L"presentation:name", presentation_name_);
//}
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * presentation_date_time_decl::ns = L"presentation";
const wchar_t * presentation_date_time_decl::name = L"date-time-decl";
void presentation_date_time_decl::add_attributes( const xml::attributes_wc_ptr & Attributes )
{
CP_APPLY_ATTR(L"presentation:name", presentation_name_);
CP_APPLY_ATTR(L"presentation:source", presentation_source_);
CP_APPLY_ATTR(L"style:data-style-name", style_data_style_name_);
}
//
//void presentation_date_time_decl::add_attributes( const xml::attributes_wc_ptr & Attributes )
//{
// CP_XML_ATTR_OPT(L"presentation:name", presentation_name_);
// CP_XML_ATTR_OPT(L"presentation:source", presentation_source_);
// CP_XML_ATTR_OPT(L"style:data-style-name", style_data_style_name_);
//}
//
}
}
......@@ -34,6 +34,7 @@
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/xmlelement.h>
#include <cpdoccore/xml/nodetype.h>
#include <cpdoccore/xml/simple_xml_writer.h>
#include "office_elements.h"
#include "office_elements_create.h"
......@@ -48,7 +49,7 @@ namespace odf_writer {
class draw_page_attr
{
public:
void add_attributes( const xml::attributes_wc_ptr & Attributes );
void serialize(CP_ATTR_NODE);
_CP_OPT(std::wstring) draw_name_;
_CP_OPT(std::wstring) draw_id_;
......@@ -75,8 +76,6 @@ public:
virtual void serialize(std::wostream & _Wostream);
void add_attributes( const xml::attributes_wc_ptr & Attributes );
office_element_ptr_array content_;
office_element_ptr animation_;
......@@ -100,8 +99,6 @@ public:
virtual void serialize(std::wostream & _Wostream){}
void add_attributes( const xml::attributes_wc_ptr & Attributes );
_CP_OPT(std::wstring) presentation_name_;
std::wstring text_;
......@@ -128,8 +125,6 @@ public:
virtual void add_child_element( const office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream){}
void add_attributes( const xml::attributes_wc_ptr & Attributes );
};
CP_REGISTER_OFFICE_ELEMENT2(presentation_date_time_decl);
......
......@@ -106,7 +106,7 @@ void odf_page_layout_context::add_master_page(std::wstring page_name)
void odf_page_layout_context::process_master_styles(office_element_ptr root )
{
for (size_t i =0 ; i < master_state_list_.size(); i++)
for (size_t i = 0; i < master_state_list_.size(); i++)
{
try
{
......
......@@ -73,23 +73,34 @@ void odp_conversion_context::end_document()
void odp_conversion_context::start_slide()
{
create_element(L"draw", L"page", root_presentation_->pages_, this);
slide_context_.start_page(root_presentation_->pages_.back());
drawing_context()->set_styles_context(styles_context());
page_layout_context()->set_styles_context(styles_context());
//page_layout_context()->add_master_page(L"");
drawing_context()->set_styles_context(styles_context());
//page_layout_context()->set_styles_context(styles_context());
}
std::wstring odp_conversion_context::start_master_slide()
{
std::wstring name;
page_layout_context()->add_master_page(name);
name = page_layout_context()->last_master()->get_name();
slide_context_.start_page(page_layout_context()->last_master()->get_root());
drawing_context()->set_styles_context(page_layout_context()->get_local_styles_context());
//current_table().set_table_master_page(page_layout_context()->last_master() ?
// page_layout_context()->last_master()->get_name() : L"");
return name;
}
void odp_conversion_context::end_slide()
void odp_conversion_context::end_master_slide()
{
slide_context_.end_page();
}
void odp_conversion_context::end_slide()
{
slide_context_.end_page();
//
//styles_context()->reset_defaults();
}
void odp_conversion_context::start_text_context()
......
......@@ -52,6 +52,9 @@ public:
void start_slide();
void end_slide();
std::wstring start_master_slide();
void end_master_slide();
///////////////////////////////////////////////////////
odp_page_state & current_slide() { return slide_context_.state();}
/////////////////////////////////////////////////////
......
......@@ -66,18 +66,23 @@ odp_page_state::odp_page_state(odf_conversion_context * Context, office_element_
void odp_page_state::set_page_name(std::wstring name)
{
if (name.empty()) return;
office_page_name_ = name;
draw_page* page = dynamic_cast<draw_page*>(draw_page_.get());
if (page == NULL)return;
page->draw_page_attr_.draw_name_ = name;
}
void odp_page_state::set_page_master_page(std::wstring name)
void odp_page_state::set_master_page(std::wstring name)
{
if (!office_page_style_)return;
if (name.empty())return;
draw_page* page = dynamic_cast<draw_page*>(draw_page_.get());
if (page == NULL)return;
office_page_style_->style_master_page_name_ = name;
page->draw_page_attr_.master_page_name_ = name;
}
void odp_page_state::set_page_style(office_element_ptr & elm)
......
......@@ -77,7 +77,7 @@ public:
odp_page_state(odf_conversion_context * Context, office_element_ptr & elm);
void set_page_name(std::wstring name);
void set_page_style(office_element_ptr & _style);
void set_page_master_page(std::wstring name);
void set_master_page(std::wstring name);
void add_child_element( const office_element_ptr & child_element);
......
......@@ -59,7 +59,7 @@ void odp_slide_context::start_page(office_element_ptr & elm)
{
page_state_list_.push_back( odp_page_state(&context_, elm) );
std::wstring style_name_new = L"ta" + boost::lexical_cast<std::wstring>(page_state_list_.size());
std::wstring style_name_new = L"dp" + boost::lexical_cast<std::wstring>(page_state_list_.size());
office_element_ptr & style = context_.styles_context()->add_or_find(style_name_new, style_family::DrawingPage, true);
style->create_child_element(L"style", L"drawing-page-properties");
......
......@@ -434,12 +434,12 @@ void OoxConverter::convert(PPTX::Logic::PathBase *oox_path)
{
if (!oox_path) return;
PPTX::Logic::MoveTo* moveTo = static_cast<PPTX::Logic::MoveTo*> (oox_path);
PPTX::Logic::LineTo* lineTo = static_cast<PPTX::Logic::LineTo*> (oox_path);
PPTX::Logic::CubicBezTo* cubicBezTo = static_cast<PPTX::Logic::CubicBezTo*> (oox_path);
PPTX::Logic::Close* close = static_cast<PPTX::Logic::Close*> (oox_path);
PPTX::Logic::ArcTo* arcTo = static_cast<PPTX::Logic::ArcTo*> (oox_path);
PPTX::Logic::QuadBezTo* quadBezTo = static_cast<PPTX::Logic::QuadBezTo*> (oox_path);
PPTX::Logic::MoveTo* moveTo = dynamic_cast<PPTX::Logic::MoveTo*> (oox_path);
PPTX::Logic::LineTo* lineTo = dynamic_cast<PPTX::Logic::LineTo*> (oox_path);
PPTX::Logic::CubicBezTo* cubicBezTo = dynamic_cast<PPTX::Logic::CubicBezTo*> (oox_path);
PPTX::Logic::Close* close = dynamic_cast<PPTX::Logic::Close*> (oox_path);
PPTX::Logic::ArcTo* arcTo = dynamic_cast<PPTX::Logic::ArcTo*> (oox_path);
PPTX::Logic::QuadBezTo* quadBezTo = dynamic_cast<PPTX::Logic::QuadBezTo*> (oox_path);
if (moveTo)
{
......@@ -634,40 +634,16 @@ void OoxConverter::convert(PPTX::Logic::UniColor * color, std::wstring & hexStri
DWORD argb = 0;
smart_ptr<PPTX::Logic::ClrMap> clrMap;
smart_ptr<PPTX::Logic::ClrMap> clrMap(oox_clrMap()); clrMap.AddRef();
smart_ptr<PPTX::Theme> theme(oox_theme()); theme.AddRef();
argb = color->GetRGBColor(theme, clrMap);
//switch(color->getType ())
//{
// case OOX::et_a_schemeClr:
// {
// NSCommon::smart_ptr<PPTX::Logic::SchemeClr> schemeColor = color->Color.smart_dynamic_cast<PPTX::Logic::SchemeClr>();
// if (schemeColor.IsInit())
// {
// convert(schemeColor->val.get(), argb);
// }
// }break;
// case OOX::et_a_prstClr:
// case OOX::et_a_scrgbClr:
// case OOX::et_a_srgbClr:
// case OOX::et_a_sysClr:
// default:
// {
// argb = color->GetARGB();
// result = true;
// }break;
//}
//if (result)
{
hexString = XmlUtils::IntToString(argb & 0x00FFFFFF, L"#%06X");
hexString = XmlUtils::IntToString(argb & 0x00FFFFFF, L"#%06X");
if ((argb >> 24) != 0xff)
{
opacity = ((argb >> 24) /255.) * 100.;
}
if ((argb >> 24) != 0xff)
{
opacity = ((argb >> 24) /255.) * 100.;
}
}
......
......@@ -324,7 +324,7 @@ void OoxConverter::convert(OOX::Vml::CShape *vml_shape)
odf_context()->drawing_context()->set_path(vml_shape->m_oPath->GetValue());
}
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_shape);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_shape);
convert(vml_common);
}
......@@ -381,14 +381,14 @@ void OoxConverter::convert(OOX::Vml::CArc *vml_arc)
{
if (vml_arc == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_arc);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_arc);
convert(vml_common);
}
void OoxConverter::convert(OOX::Vml::CBackground *vml_background)
{
if (vml_background == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_background);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_background);
convert(vml_common);
}
......@@ -520,7 +520,7 @@ void OoxConverter::convert(OOX::Vml::CLine *vml_line)
{
if (vml_line == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_line);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_line);
convert(vml_common);
_CP_OPT(double) x = vml_line->m_oFrom.GetX();
......@@ -538,7 +538,7 @@ void OoxConverter::convert(OOX::Vml::COval *vml_oval)
{
if (vml_oval == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_oval);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_oval);
convert(vml_common);
}
void OoxConverter::convert(OOX::Vml::CPath *vml_path)
......@@ -564,14 +564,14 @@ void OoxConverter::convert(OOX::Vml::CPolyLine *vml_polyline)
{
if (vml_polyline == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_polyline);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_polyline);
convert(vml_common);
}
void OoxConverter::convert(OOX::Vml::CRect *vml_rect)
{
if (vml_rect == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_rect);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_rect);
convert(vml_common);
}
......@@ -579,7 +579,7 @@ void OoxConverter::convert(OOX::Vml::CRoundRect *vml_roundrect)
{
if (vml_roundrect == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_roundrect);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_roundrect);
convert(vml_common);
}
......@@ -587,7 +587,7 @@ void OoxConverter::convert(OOX::Vml::CCurve *vml_curve)
{
if (vml_curve == NULL) return;
OOX::Vml::CVmlCommonElements *vml_common = static_cast<OOX::Vml::CVmlCommonElements *>(vml_curve);
OOX::Vml::CVmlCommonElements *vml_common = dynamic_cast<OOX::Vml::CVmlCommonElements *>(vml_curve);
convert(vml_common);
}
void OoxConverter::convert(OOX::Vml::CShadow *vml_shadow)
......@@ -905,7 +905,7 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
if (vml_group->m_arrItems[i]->getType() == OOX::et_v_group)
{
OOX::Vml::CGroup * vml = static_cast<OOX::Vml::CGroup*>(vml_group->m_arrItems[i]);
OOX::Vml::CGroup * vml = dynamic_cast<OOX::Vml::CGroup*>(vml_group->m_arrItems[i]);
convert(vml);
continue;
}
......@@ -919,7 +919,7 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
{
case OOX::et_v_shape:
{
OOX::Vml::CShape * vml = static_cast<OOX::Vml::CShape*>(vml_group->m_arrItems[i]);
OOX::Vml::CShape * vml = dynamic_cast<OOX::Vml::CShape*>(vml_group->m_arrItems[i]);
bool bSet = false;
if (vml)
{
......@@ -952,7 +952,7 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
}break;
case OOX::et_v_shapetype:
{
OOX::Vml::CShapeType * vml = static_cast<OOX::Vml::CShapeType*>(vml_group->m_arrItems[i]);
OOX::Vml::CShapeType * vml = dynamic_cast<OOX::Vml::CShapeType*>(vml_group->m_arrItems[i]);
SimpleTypes::Vml::SptType sptType = vml->m_oSpt.IsInit() ? static_cast<SimpleTypes::Vml::SptType>(vml->m_oSpt->GetValue()) : SimpleTypes::Vml::sptNotPrimitive;
odf_context()->drawing_context()->start_shape(OOX::VmlShapeType2PrstShape(sptType));
......@@ -961,28 +961,28 @@ void OoxConverter::convert(OOX::Vml::CGroup *vml_group)
}break;
case OOX::et_v_oval:
{
OOX::Vml::COval * vml = static_cast<OOX::Vml::COval*>(vml_group->m_arrItems[i]);
OOX::Vml::COval * vml = dynamic_cast<OOX::Vml::COval*>(vml_group->m_arrItems[i]);
odf_context()->drawing_context()->start_shape(SimpleTypes::shapetypeEllipse);
OoxConverter::convert(vml);
odf_context()->drawing_context()->end_shape();
}break;
case OOX::et_v_rect:
{
OOX::Vml::CRect * vml = static_cast<OOX::Vml::CRect*>(vml_group->m_arrItems[i]);
OOX::Vml::CRect * vml = dynamic_cast<OOX::Vml::CRect*>(vml_group->m_arrItems[i]);
odf_context()->drawing_context()->start_shape(SimpleTypes::shapetypeRect);
OoxConverter::convert(vml);
odf_context()->drawing_context()->end_shape();
}break;
case OOX::et_v_line:
{
OOX::Vml::CLine * vml = static_cast<OOX::Vml::CLine*>(vml_group->m_arrItems[i]);
OOX::Vml::CLine * vml = dynamic_cast<OOX::Vml::CLine*>(vml_group->m_arrItems[i]);
odf_context()->drawing_context()->start_shape(SimpleTypes::shapetypeLine);
OoxConverter::convert(vml);
odf_context()->drawing_context()->end_shape();
}break;
case OOX::et_v_curve:
{
OOX::Vml::CCurve * vml = static_cast<OOX::Vml::CCurve*>(vml_group->m_arrItems[i]);
OOX::Vml::CCurve * vml = dynamic_cast<OOX::Vml::CCurve*>(vml_group->m_arrItems[i]);
odf_context()->drawing_context()->start_shape(1000);
OoxConverter::convert(vml);
odf_context()->drawing_context()->end_shape();
......
......@@ -142,17 +142,17 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
{
case OOX::et_graphicFrame:
{
PPTX::Logic::GraphicFrame* pGraphicFrame= static_cast<PPTX::Logic::GraphicFrame*>(oox_unknown);
PPTX::Logic::GraphicFrame* pGraphicFrame= dynamic_cast<PPTX::Logic::GraphicFrame*>(oox_unknown);
convert(pGraphicFrame);
}break;
case OOX::et_pic:
{
PPTX::Logic::Pic* pPic= static_cast<PPTX::Logic::Pic*>(oox_unknown);
PPTX::Logic::Pic* pPic= dynamic_cast<PPTX::Logic::Pic*>(oox_unknown);
convert(pPic);
}break;
case OOX::et_dgm_DiagrammParts:
{
PPTX::Logic::SmartArt* pDiagrammParts = static_cast<PPTX::Logic::SmartArt*>(oox_unknown);
PPTX::Logic::SmartArt* pDiagrammParts = dynamic_cast<PPTX::Logic::SmartArt*>(oox_unknown);
convert(pDiagrammParts);
}break;
case OOX::et_a_Shape:
......@@ -160,64 +160,64 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
case OOX::et_dsp_Shape:
case OOX::et_w_Shape:
{
PPTX::Logic::Shape* pShape = static_cast<PPTX::Logic::Shape*>(oox_unknown);
PPTX::Logic::Shape* pShape = dynamic_cast<PPTX::Logic::Shape*>(oox_unknown);
convert(pShape);
}break;
case OOX::et_p_ShapeTree:
case OOX::et_a_GroupShape:
case OOX::et_w_GroupShape:
{
PPTX::Logic::SpTree *spTree = static_cast<PPTX::Logic::SpTree *>(oox_unknown);
PPTX::Logic::SpTree *spTree = dynamic_cast<PPTX::Logic::SpTree *>(oox_unknown);
convert(spTree);
}break;
case OOX::et_a_prstGeom:
{
PPTX::Logic::PrstGeom* pPresetGeom = static_cast<PPTX::Logic::PrstGeom*>(oox_unknown);
PPTX::Logic::PrstGeom* pPresetGeom = dynamic_cast<PPTX::Logic::PrstGeom*>(oox_unknown);
convert(pPresetGeom);
}break;
case OOX::et_a_custGeom:
{
PPTX::Logic::CustGeom* pCustomGeom = static_cast<PPTX::Logic::CustGeom*>(oox_unknown);
PPTX::Logic::CustGeom* pCustomGeom = dynamic_cast<PPTX::Logic::CustGeom*>(oox_unknown);
convert(pCustomGeom);
}break;
case OOX::et_a_lnTo:
{
PPTX::Logic::LineTo* pLineTo = static_cast<PPTX::Logic::LineTo*>(oox_unknown);
PPTX::Logic::LineTo* pLineTo = dynamic_cast<PPTX::Logic::LineTo*>(oox_unknown);
convert(pLineTo);
}break;
case OOX::et_a_moveTo:
{
PPTX::Logic::MoveTo* pMoveTo = static_cast<PPTX::Logic::MoveTo*>(oox_unknown);
PPTX::Logic::MoveTo* pMoveTo = dynamic_cast<PPTX::Logic::MoveTo*>(oox_unknown);
convert(pMoveTo);
}break;
case OOX::et_a_arcTo:
{
PPTX::Logic::ArcTo* pArcTo = static_cast<PPTX::Logic::ArcTo*>(oox_unknown);
PPTX::Logic::ArcTo* pArcTo = dynamic_cast<PPTX::Logic::ArcTo*>(oox_unknown);
convert(pArcTo);
}break;
case OOX::et_a_quadBezTo:
{
PPTX::Logic::QuadBezTo* pQuadBezierTo = static_cast<PPTX::Logic::QuadBezTo*>(oox_unknown);
PPTX::Logic::QuadBezTo* pQuadBezierTo = dynamic_cast<PPTX::Logic::QuadBezTo*>(oox_unknown);
convert(pQuadBezierTo);
}break;
case OOX::et_a_cubicBezTo:
{
PPTX::Logic::CubicBezTo* pCubicBezierT = static_cast<PPTX::Logic::CubicBezTo*>(oox_unknown);
PPTX::Logic::CubicBezTo* pCubicBezierT = dynamic_cast<PPTX::Logic::CubicBezTo*>(oox_unknown);
convert(pCubicBezierT);
}break;
case OOX::et_a_close:
{
PPTX::Logic::Close* pClose= static_cast<PPTX::Logic::Close*>(oox_unknown);
PPTX::Logic::Close* pClose= dynamic_cast<PPTX::Logic::Close*>(oox_unknown);
convert(pClose);
}break;
case OOX::et_a_r:
{
PPTX::Logic::Run* pRun= static_cast<PPTX::Logic::Run*>(oox_unknown);
PPTX::Logic::Run* pRun= dynamic_cast<PPTX::Logic::Run*>(oox_unknown);
convert(pRun);
}break;
//case OOX::et_a_alphaModFix:
//{
// OOX::Drawing::CAlphaModulateFixedEffect* pAlpha= static_cast<OOX::Drawing::CAlphaModulateFixedEffect*>(oox_unknown);
// OOX::Drawing::CAlphaModulateFixedEffect* pAlpha= dynamic_cast<OOX::Drawing::CAlphaModulateFixedEffect*>(oox_unknown);
// if (pAlpha)
// {
// odf_context()->drawing_context()->set_opacity(pAlpha->m_oAmt.GetValue());
......@@ -225,52 +225,52 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
//}break;
case OOX::et_v_imagedata:
{
OOX::Vml::CImageData *vml = static_cast<OOX::Vml::CImageData*>(oox_unknown);
OOX::Vml::CImageData *vml = dynamic_cast<OOX::Vml::CImageData*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_textbox:
{
OOX::Vml::CTextbox *vml = static_cast<OOX::Vml::CTextbox*>(oox_unknown);
OOX::Vml::CTextbox *vml = dynamic_cast<OOX::Vml::CTextbox*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_background:
{
OOX::Vml::CBackground *vml = static_cast<OOX::Vml::CBackground*>(oox_unknown);
OOX::Vml::CBackground *vml = dynamic_cast<OOX::Vml::CBackground*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_path:
{
OOX::Vml::CPath *vml = static_cast<OOX::Vml::CPath*>(oox_unknown);
OOX::Vml::CPath *vml = dynamic_cast<OOX::Vml::CPath*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_textpath:
{
OOX::Vml::CTextPath *vml = static_cast<OOX::Vml::CTextPath*>(oox_unknown);
OOX::Vml::CTextPath *vml = dynamic_cast<OOX::Vml::CTextPath*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_fill:
{
OOX::Vml::CFill *vml = static_cast<OOX::Vml::CFill*>(oox_unknown);
OOX::Vml::CFill *vml = dynamic_cast<OOX::Vml::CFill*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_stroke:
{
OOX::Vml::CStroke *vml = static_cast<OOX::Vml::CStroke*>(oox_unknown);
OOX::Vml::CStroke *vml = dynamic_cast<OOX::Vml::CStroke*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_shadow:
{
OOX::Vml::CShadow *vml = static_cast<OOX::Vml::CShadow*>(oox_unknown);
OOX::Vml::CShadow *vml = dynamic_cast<OOX::Vml::CShadow*>(oox_unknown);
convert(vml);
}break;
case OOX::et_v_image:
{
OOX::Vml::CImage *vml = static_cast<OOX::Vml::CImage*>(oox_unknown);
OOX::Vml::CImage *vml = dynamic_cast<OOX::Vml::CImage*>(oox_unknown);
convert(vml);
}break;
case OOX::et_wd_wrap:
{
OOX::VmlWord::CWrap *vml = static_cast<OOX::VmlWord::CWrap*>(oox_unknown);
OOX::VmlWord::CWrap *vml = dynamic_cast<OOX::VmlWord::CWrap*>(oox_unknown);
convert(vml);
}break;
// "ненужные" элементы
......@@ -282,22 +282,22 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
}break;
case OOX::et_p_r:
{
PPTX::Logic::Run* pRun= static_cast<PPTX::Logic::Run*>(oox_unknown);
PPTX::Logic::Run* pRun= dynamic_cast<PPTX::Logic::Run*>(oox_unknown);
convert(pRun);
}break;
case OOX::et_p_fld:
{
PPTX::Logic::Fld* pFld= static_cast<PPTX::Logic::Fld*>(oox_unknown);
PPTX::Logic::Fld* pFld= dynamic_cast<PPTX::Logic::Fld*>(oox_unknown);
convert(pFld);
}break;
case OOX::et_p_br:
{
PPTX::Logic::Br* pBr= static_cast<PPTX::Logic::Br*>(oox_unknown);
PPTX::Logic::Br* pBr= dynamic_cast<PPTX::Logic::Br*>(oox_unknown);
convert(pBr);
}break;
case OOX::et_p_MathPara:
{
PPTX::Logic::MathParaWrapper* pMathPara= static_cast<PPTX::Logic::MathParaWrapper*>(oox_unknown);
PPTX::Logic::MathParaWrapper* pMathPara= dynamic_cast<PPTX::Logic::MathParaWrapper*>(oox_unknown);
convert(pMathPara);
}break;
default:
......@@ -612,22 +612,22 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
// {
// case OOX::et_a_outerShdw:
// {
// OOX::Drawing::COuterShadowEffect * shadow = static_cast<OOX::Drawing::COuterShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// OOX::Drawing::COuterShadowEffect * shadow = dynamic_cast<OOX::Drawing::COuterShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// convert(shadow, change_sheme_color);
// }break;
// case OOX::et_a_innerShdw:
// {
// OOX::Drawing::CInnerShadowEffect * shadow = static_cast<OOX::Drawing::CInnerShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// OOX::Drawing::CInnerShadowEffect * shadow = dynamic_cast<OOX::Drawing::CInnerShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// convert(shadow, change_sheme_color);
// }break;
// case OOX::et_a_prstShdw:
// {
// OOX::Drawing::CPresetShadowEffect * shadow = static_cast<OOX::Drawing::CPresetShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// OOX::Drawing::CPresetShadowEffect * shadow = dynamic_cast<OOX::Drawing::CPresetShadowEffect *>(oox_effect_list->m_arrEffects[i]);
// //convert(shadow, change_sheme_color);
// }break;
// case OOX::et_a_reflection:
// {
// OOX::Drawing::CReflectionEffect * refelection = static_cast<OOX::Drawing::CReflectionEffect *>(oox_effect_list->m_arrEffects[i]);
// OOX::Drawing::CReflectionEffect * refelection = dynamic_cast<OOX::Drawing::CReflectionEffect *>(oox_effect_list->m_arrEffects[i]);
// }
// //CGlowEffect, CBlurEffect, CFillOverlayEffect, CSoftEdgesEffect
// }
......@@ -646,7 +646,7 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
// keep_sheme_color = oox_shadow->m_oShemeClr.m_oVal.ToString();
// oox_shadow->m_oShemeClr.m_oVal.FromString(*change_sheme_color);
// }
// convert(static_cast<OOX::Drawing::CColor*>(oox_shadow), hexColor, opacity);
// convert(dynamic_cast<OOX::Drawing::CColor*>(oox_shadow), hexColor, opacity);
// if (keep_sheme_color.length() > 0) oox_shadow->m_oShemeClr.m_oVal.FromString(keep_sheme_color);
//
// odf_context()->drawing_context()->set_shadow(1, hexColor, opacity, oox_shadow->m_oDist.ToPoints());
......@@ -675,7 +675,7 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
// keep_sheme_color = oox_shadow->m_oShemeClr.m_oVal.ToString();
// oox_shadow->m_oShemeClr.m_oVal.FromString(*change_sheme_color);
// }
// convert(static_cast<OOX::Drawing::CColor*>(oox_shadow), hexColor, opacity);
// convert(dynamic_cast<OOX::Drawing::CColor*>(oox_shadow), hexColor, opacity);
// if (keep_sheme_color.length() > 0) oox_shadow->m_oShemeClr.m_oVal.FromString(keep_sheme_color);
//
// odf_context()->drawing_context()->set_shadow(2, hexColor, opacity, oox_shadow->m_oDist.ToPoints());
......
......@@ -263,6 +263,7 @@ namespace PPTX
class Theme;
namespace Logic
{
class ClrMap;
class SpTreeElem;
class GraphicFrame;
class SpTree;
......@@ -340,9 +341,11 @@ public:
double getSystemDPI();
//.......................................................................................................................
virtual cpdoccore::odf_writer::odf_conversion_context *odf_context() = 0;
virtual PPTX::Theme *oox_theme() = 0;
virtual std::wstring find_link_by_id(std::wstring sId, int t) = 0;
virtual cpdoccore::odf_writer::odf_conversion_context *odf_context() = 0;
virtual PPTX::Theme *oox_theme() = 0;
virtual PPTX::Logic::ClrMap *oox_clrMap() {return NULL;}
virtual std::wstring find_link_by_id(std::wstring sId, int t) = 0;
virtual NSCommon::smart_ptr<OOX::File> find_file_by_id(std::wstring sId) = 0;
OOX::IFileContainer *oox_current_child_document;
......
......@@ -243,141 +243,141 @@ void DocxConverter::convert(OOX::WritingElement *oox_unknown)
{
case OOX::et_w_ptab:
{
OOX::Logic::CPTab* pT= static_cast<OOX::Logic::CPTab*>(oox_unknown);
OOX::Logic::CPTab* pT= dynamic_cast<OOX::Logic::CPTab*>(oox_unknown);
convert(pT);
}break;
case OOX::et_w_sdt:
{
OOX::Logic::CSdt* pP= static_cast<OOX::Logic::CSdt*>(oox_unknown);
OOX::Logic::CSdt* pP= dynamic_cast<OOX::Logic::CSdt*>(oox_unknown);
convert(pP);
}break;
case OOX::et_w_fldSimple:
{
OOX::Logic::CFldSimple* pFldS= static_cast<OOX::Logic::CFldSimple*>(oox_unknown);
OOX::Logic::CFldSimple* pFldS= dynamic_cast<OOX::Logic::CFldSimple*>(oox_unknown);
convert(pFldS);
}break;
case OOX::et_w_r:
{
OOX::Logic::CRun* pRun= static_cast<OOX::Logic::CRun*>(oox_unknown);
OOX::Logic::CRun* pRun= dynamic_cast<OOX::Logic::CRun*>(oox_unknown);
convert(pRun);
}break;
case OOX::et_w_p:
{
OOX::Logic::CParagraph* pP= static_cast<OOX::Logic::CParagraph*>(oox_unknown);
OOX::Logic::CParagraph* pP= dynamic_cast<OOX::Logic::CParagraph*>(oox_unknown);
convert(pP);
}break;
case OOX::et_w_ins:
{
OOX::Logic::CIns* pIns= static_cast<OOX::Logic::CIns*>(oox_unknown);
OOX::Logic::CIns* pIns= dynamic_cast<OOX::Logic::CIns*>(oox_unknown);
convert(pIns);
}break;
case OOX::et_w_del:
{
OOX::Logic::CDel* pDel= static_cast<OOX::Logic::CDel*>(oox_unknown);
OOX::Logic::CDel* pDel= dynamic_cast<OOX::Logic::CDel*>(oox_unknown);
convert(pDel);
}break;
case OOX::et_w_smartTag:
{
OOX::Logic::CSmartTag* pTag= static_cast<OOX::Logic::CSmartTag*>(oox_unknown);
OOX::Logic::CSmartTag* pTag= dynamic_cast<OOX::Logic::CSmartTag*>(oox_unknown);
convert(pTag);
}break;
case OOX::et_w_pPr:
{
OOX::Logic::CParagraphProperty* pPProp= static_cast<OOX::Logic::CParagraphProperty*>(oox_unknown);
OOX::Logic::CParagraphProperty* pPProp= dynamic_cast<OOX::Logic::CParagraphProperty*>(oox_unknown);
convert(pPProp);
}break;
case OOX::et_w_hyperlink:
{
OOX::Logic::CHyperlink* pH= static_cast<OOX::Logic::CHyperlink*>(oox_unknown);
OOX::Logic::CHyperlink* pH= dynamic_cast<OOX::Logic::CHyperlink*>(oox_unknown);
convert(pH);
}break;
case OOX::et_w_rPr:
{
OOX::Logic::CRunProperty* pRProp= static_cast<OOX::Logic::CRunProperty*>(oox_unknown);
OOX::Logic::CRunProperty* pRProp= dynamic_cast<OOX::Logic::CRunProperty*>(oox_unknown);
convert(pRProp);
}break;
case OOX::et_mc_alternateContent:
{
OOX::Logic::CAlternateContent* pAltCont= static_cast<OOX::Logic::CAlternateContent*>(oox_unknown);
OOX::Logic::CAlternateContent* pAltCont= dynamic_cast<OOX::Logic::CAlternateContent*>(oox_unknown);
convert(pAltCont);
}break;
case OOX::et_w_drawing:
{
OOX::Logic::CDrawing* pDrawing= static_cast<OOX::Logic::CDrawing*>(oox_unknown);
OOX::Logic::CDrawing* pDrawing= dynamic_cast<OOX::Logic::CDrawing*>(oox_unknown);
convert(pDrawing);
}break;
//case OOX::et_c_chart:
//{
// PPTX::Logic::ChartRec* pChart = static_cast<PPTX::Logic::ChartRec*>(oox_unknown);
// PPTX::Logic::ChartRec* pChart = dynamic_cast<PPTX::Logic::ChartRec*>(oox_unknown);
// convert(pChart);
//}break;
//case OOX::et_w_Shape:
//{
// OOX::Logic::CShape* pShape = static_cast<OOX::Logic::CShape*>(oox_unknown);
// OOX::Logic::CShape* pShape = dynamic_cast<OOX::Logic::CShape*>(oox_unknown);
// convert(pShape);
//}break;
//case OOX::et_w_pict:
//{
// OOX::Logic::CPicture* pPic = static_cast<OOX::Logic::CPicture*>(oox_unknown);
// OOX::Logic::CPicture* pPic = dynamic_cast<OOX::Logic::CPicture*>(oox_unknown);
// convert(pPic);
//}break;
//case OOX::et_w_object:
//{
// OOX::Logic::CObject* pObj = static_cast<OOX::Logic::CObject*>(oox_unknown);
// OOX::Logic::CObject* pObj = dynamic_cast<OOX::Logic::CObject*>(oox_unknown);
// convert(pObj);
//}break;
case OOX::et_pic_pic:
case OOX::et_pic:
case OOX::et_p_pic:
{
PPTX::Logic::Pic* pPic = static_cast<PPTX::Logic::Pic*>(oox_unknown);
PPTX::Logic::Pic* pPic = dynamic_cast<PPTX::Logic::Pic*>(oox_unknown);
convert(pPic);
}break;
case OOX::et_w_GroupShape:
case OOX::et_p_ShapeTree:
{
PPTX::Logic::SpTree* pGroupShape= static_cast<PPTX::Logic::SpTree*>(oox_unknown);
PPTX::Logic::SpTree* pGroupShape= dynamic_cast<PPTX::Logic::SpTree*>(oox_unknown);
convert(pGroupShape);
}break;
case OOX::et_w_commentRangeEnd:
{
OOX::Logic::CCommentRangeEnd* pCommEnd = static_cast<OOX::Logic::CCommentRangeEnd*>(oox_unknown);
OOX::Logic::CCommentRangeEnd* pCommEnd = dynamic_cast<OOX::Logic::CCommentRangeEnd*>(oox_unknown);
convert(pCommEnd);
}break;
case OOX::et_w_commentRangeStart:
{
OOX::Logic::CCommentRangeStart* pCommStart = static_cast<OOX::Logic::CCommentRangeStart*>(oox_unknown);
OOX::Logic::CCommentRangeStart* pCommStart = dynamic_cast<OOX::Logic::CCommentRangeStart*>(oox_unknown);
convert(pCommStart);
}break;
case OOX::et_w_commentReference:
{
OOX::Logic::CCommentReference* pCommRef = static_cast<OOX::Logic::CCommentReference*>(oox_unknown);
OOX::Logic::CCommentReference* pCommRef = dynamic_cast<OOX::Logic::CCommentReference*>(oox_unknown);
convert(pCommRef); //если нет Start - означает начало с предыдущего Run
}break;
case OOX::et_w_footnoteReference:
{
OOX::Logic::CFootnoteReference* pRef= static_cast<OOX::Logic::CFootnoteReference*>(oox_unknown);
OOX::Logic::CFootnoteReference* pRef= dynamic_cast<OOX::Logic::CFootnoteReference*>(oox_unknown);
convert(pRef);
}break;
case OOX::et_w_endnoteReference:
{
OOX::Logic::CEndnoteReference* pRef= static_cast<OOX::Logic::CEndnoteReference*>(oox_unknown);
OOX::Logic::CEndnoteReference* pRef= dynamic_cast<OOX::Logic::CEndnoteReference*>(oox_unknown);
convert(pRef);
}break;
case OOX::et_w_tbl:
{
OOX::Logic::CTbl* pTable= static_cast<OOX::Logic::CTbl*>(oox_unknown);
OOX::Logic::CTbl* pTable= dynamic_cast<OOX::Logic::CTbl*>(oox_unknown);
convert(pTable);
}break;
case OOX::et_w_tr:
{
OOX::Logic::CTr* pRow= static_cast<OOX::Logic::CTr*>(oox_unknown);
OOX::Logic::CTr* pRow= dynamic_cast<OOX::Logic::CTr*>(oox_unknown);
convert(pRow);
}break;
case OOX::et_w_tc:
{
OOX::Logic::CTc* pCell= static_cast<OOX::Logic::CTc*>(oox_unknown);
OOX::Logic::CTc* pCell= dynamic_cast<OOX::Logic::CTc*>(oox_unknown);
convert(pCell);
}break;
default:
......@@ -647,17 +647,17 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
{
case OOX::et_w_fldChar:
{
OOX::Logic::CFldChar* pFldChar= static_cast<OOX::Logic::CFldChar*>(oox_run->m_arrItems[i]);
OOX::Logic::CFldChar* pFldChar= dynamic_cast<OOX::Logic::CFldChar*>(oox_run->m_arrItems[i]);
convert(pFldChar);
}break;
case OOX::et_w_instrText:
{
OOX::Logic::CInstrText* pInstrText= static_cast<OOX::Logic::CInstrText*>(oox_run->m_arrItems[i]);
OOX::Logic::CInstrText* pInstrText= dynamic_cast<OOX::Logic::CInstrText*>(oox_run->m_arrItems[i]);
convert(pInstrText);
}break;
case OOX::et_w_delText:
{
OOX::Logic::CDelText* pDelText= static_cast<OOX::Logic::CDelText*>(oox_run->m_arrItems[i]);
OOX::Logic::CDelText* pDelText= dynamic_cast<OOX::Logic::CDelText*>(oox_run->m_arrItems[i]);
convert(pDelText);
}break;
case OOX::et_w_rPr: // пропускаем ..
......@@ -668,7 +668,7 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
}break;
case OOX::et_w_br:
{
OOX::Logic::CBr* pBr= static_cast<OOX::Logic::CBr*>(oox_run->m_arrItems[i]);
OOX::Logic::CBr* pBr= dynamic_cast<OOX::Logic::CBr*>(oox_run->m_arrItems[i]);
if (pBr)
{
int type = pBr->m_oType.GetValue();
......@@ -681,17 +681,17 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
}break;
case OOX::et_w_t:
{
OOX::Logic::CText* pText= static_cast<OOX::Logic::CText*>(oox_run->m_arrItems[i]);
OOX::Logic::CText* pText= dynamic_cast<OOX::Logic::CText*>(oox_run->m_arrItems[i]);
convert(pText);
}break;
case OOX::et_w_sym:
{
OOX::Logic::CSym* pSym= static_cast<OOX::Logic::CSym*>(oox_run->m_arrItems[i]);
OOX::Logic::CSym* pSym= dynamic_cast<OOX::Logic::CSym*>(oox_run->m_arrItems[i]);
convert(pSym);
}break;
case OOX::et_w_tab:
{
OOX::Logic::CTab* pTab= static_cast<OOX::Logic::CTab*>(oox_run->m_arrItems[i]);
OOX::Logic::CTab* pTab= dynamic_cast<OOX::Logic::CTab*>(oox_run->m_arrItems[i]);
odt_context->text_context()->add_tab();
}break;
......@@ -1110,7 +1110,7 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp
{
_CP_OPT(odf_types::length) length_;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oLine.GetPointer()), length_);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oLine.GetPointer()), length_);
paragraph_properties->content().fo_line_height_ = odf_types::line_width(*length_);
}
else
......@@ -1123,13 +1123,13 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp
if (oox_paragraph_pr->m_oSpacing->m_oAfter.IsInit())
{
_CP_OPT(odf_types::length_or_percent) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oAfter.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oAfter.GetPointer()), length);
paragraph_properties->content().fo_margin_bottom_ = length;
}
if (oox_paragraph_pr->m_oSpacing->m_oBefore.IsInit())
{
_CP_OPT(odf_types::length_or_percent) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oBefore.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oSpacing->m_oBefore.GetPointer()), length);
paragraph_properties->content().fo_margin_top_ = length;
}
//nullable<SimpleTypes::COnOff<> > m_oAfterAutospacing;
......@@ -1145,26 +1145,26 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp
if (oox_paragraph_pr->m_oInd->m_oStart.IsInit())
{
_CP_OPT(odf_types::length) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oStart.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oStart.GetPointer()), length);
paragraph_properties->content().fo_margin_left_ = odf_types::length(length->get_value_unit(odf_types::length::cm), odf_types::length::cm);
//в случае списка тута надо выдумать indent (взять из стиля списка)
}
if (oox_paragraph_pr->m_oInd->m_oEnd.IsInit())
{
_CP_OPT(odf_types::length) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oEnd.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oEnd.GetPointer()), length);
paragraph_properties->content().fo_margin_right_ = odf_types::length(length->get_value_unit(odf_types::length::cm), odf_types::length::cm);
}
if (oox_paragraph_pr->m_oInd->m_oFirstLine.IsInit())
{
_CP_OPT(odf_types::length) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oFirstLine.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oFirstLine.GetPointer()), length);
paragraph_properties->content().fo_text_indent_ = odf_types::length(length->get_value_unit(odf_types::length::cm), odf_types::length::cm);
}
if (oox_paragraph_pr->m_oInd->m_oHanging.IsInit())
{//first line ignored
_CP_OPT(odf_types::length) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oHanging.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_paragraph_pr->m_oInd->m_oHanging.GetPointer()), length);
if (length) paragraph_properties->content().fo_text_indent_ = odf_types::length(-length->get_value_unit(odf_types::length::cm), odf_types::length::cm);
}
//nullable<SimpleTypes::CDecimalNumber<> > m_oEndChars;
......@@ -3948,19 +3948,19 @@ bool DocxConverter::convert(OOX::Logic::CTableProperty *oox_table_pr, odf_writer
{
_CP_OPT(odf_types::length) length_, length_left, length_right;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oLeftFromText.GetPointer()), length_left);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oLeftFromText.GetPointer()), length_left);
if (length_left)
table_properties->table_format_properties_.common_horizontal_margin_attlist_.fo_margin_left_ = odf_types::length(length_left->get_value_unit(odf_types::length::cm),odf_types::length::cm);
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oRightFromText.GetPointer()), length_right);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oRightFromText.GetPointer()), length_right);
if (length_right)
table_properties->table_format_properties_.common_horizontal_margin_attlist_.fo_margin_right_= odf_types::length(length_right->get_value_unit(odf_types::length::cm),odf_types::length::cm);
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oTopFromText.GetPointer()), length_);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oTopFromText.GetPointer()), length_);
if (length_)
table_properties->table_format_properties_.common_vertical_margin_attlist_.fo_margin_top_= odf_types::length(length_->get_value_unit(odf_types::length::cm),odf_types::length::cm);
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oBottomFromText.GetPointer()), length_);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_table_pr->m_oTblpPr->m_oBottomFromText.GetPointer()), length_);
if (length_)
table_properties->table_format_properties_.common_vertical_margin_attlist_.fo_margin_bottom_= odf_types::length(length_->get_value_unit(odf_types::length::cm),odf_types::length::cm);
......@@ -4050,7 +4050,7 @@ void DocxConverter::convert(OOX::Logic::CTableRowProperties *oox_table_row_pr, o
if (oox_table_row_pr->m_oTblHeight.IsInit())
{
_CP_OPT(odf_types::length) length;
convert(static_cast<SimpleTypes::CUniversalMeasure *>(oox_table_row_pr->m_oTblHeight->m_oVal.GetPointer()), length);
convert(dynamic_cast<SimpleTypes::CUniversalMeasure *>(oox_table_row_pr->m_oTblHeight->m_oVal.GetPointer()), length);
if (oox_table_row_pr->m_oTblHeight->m_oHRule.IsInit())
{
......
......@@ -80,14 +80,17 @@ PptxConverter::PptxConverter(const std::wstring & path, const ProgressCallback*
output_document = new odf_writer::package::odf_document(L"presentation");
odp_context = new odf_writer::odp_conversion_context(output_document);
current_clrMap = NULL;
current_slide = NULL;
current_theme = NULL;
pCallBack = CallBack;
if (UpdateProgress(290000))return;
}
PptxConverter::~PptxConverter()
{
current_clrMap = NULL;
current_slide = NULL;
current_theme = NULL;
presentation = NULL;
......@@ -112,6 +115,10 @@ PPTX::Theme* PptxConverter::oox_theme()
{
return current_theme;
}
PPTX::Logic::ClrMap* PptxConverter::oox_clrMap()
{
return current_clrMap;
}
NSCommon::smart_ptr<OOX::File> PptxConverter::find_file_by_id(std::wstring sId)
{
......@@ -205,20 +212,44 @@ void PptxConverter::convert_slides()
{
continue;// странное ... слайд 38 в FY10_September_Partner_Call.pptx
}
current_slide = slide.operator->();
current_theme = slide->theme.operator->();
std::wstring master_style_name;
std::wstring layout_style_name;
if (slide->Master.IsInit())
{
current_clrMap = &slide->Master->clrMap;
std::map<std::wstring, std::wstring>::iterator pFind = m_mapMasters.find(slide->Master->m_sOutputFilename);
if (pFind == m_mapMasters.end())
{
current_slide = slide->Master.operator->();
master_style_name = odp_context->start_master_slide();
convert(&slide->Master->cSld);
odp_context->end_master_slide();
m_mapMasters.insert(std::make_pair(slide->Master->m_sOutputFilename, master_style_name));
}
else
master_style_name = pFind->second;
}
if (slide->clrMapOvr.IsInit())
current_clrMap = slide->clrMapOvr->overrideClrMapping.GetPointer();
//smart_ptr<SlideLayout> Layout;
//smart_ptr<SlideMaster> Master;
current_slide = slide.operator->();
odp_context->start_slide();
convert(slide->cSld.GetPointer());
odp_context->current_slide().set_master_page(master_style_name);
//odp_context->current_slide().set_layout_style(layout_style_name);
//nullable_bool show;
//nullable_bool showMasterPhAnim;
//nullable_bool showMasterSp;
convert(slide->cSld.GetPointer());
//nullable<Logic::ClrMapOvr> clrMapOvr;
//nullable<Logic::CSld> cSld;
//nullable<Logic::Transition> transition;
//nullable<Logic::Timing> timing;
......
......@@ -85,9 +85,11 @@ namespace Oox2Odf
virtual void convertDocument();
virtual void write(const std::wstring & path);
virtual odf_writer::odf_conversion_context *odf_context();
virtual odf_writer::odf_conversion_context *odf_context();
virtual PPTX::Theme *oox_theme();
virtual std::wstring find_link_by_id (std::wstring sId, int t);
virtual PPTX::Logic::ClrMap *oox_clrMap();
virtual std::wstring find_link_by_id (std::wstring sId, int t);
virtual NSCommon::smart_ptr<OOX::File> find_file_by_id (std::wstring sId);
void convert(OOX::WritingElement *oox_unknown);
......@@ -99,9 +101,14 @@ namespace Oox2Odf
cpdoccore::odf_writer::package::odf_document *output_document;
PPTX::Theme *current_theme;
OOX::IFileContainer *current_slide;
PPTX::Logic::ClrMap *current_clrMap;
odf_writer::odp_conversion_context *odp_context;
std::map<std::wstring, std::wstring> m_mapMasters;
std::vector<std::wstring> m_arLayouts;
void convert_slides ();
......
......@@ -527,7 +527,7 @@ void XlsxConverter::convert_sharing_string(int number)
if (number <0 || (SharedStrings->m_oCount.IsInit() && number > SharedStrings->m_oCount->GetValue()))return;//???? m_oUniqueCount;
convert(static_cast<OOX::Spreadsheet::CSi*>(SharedStrings->m_arrItems[number]));
convert(dynamic_cast<OOX::Spreadsheet::CSi*>(SharedStrings->m_arrItems[number]));
}
void XlsxConverter::convert(OOX::Spreadsheet::CSi* oox_rtf_text)
......@@ -552,27 +552,27 @@ void XlsxConverter::convert(OOX::Spreadsheet::WritingElement *oox_unknown)
{
case OOX::et_x_r:
{
OOX::Spreadsheet::CRun* pRun = static_cast<OOX::Spreadsheet::CRun*>(oox_unknown);
OOX::Spreadsheet::CRun* pRun = dynamic_cast<OOX::Spreadsheet::CRun*>(oox_unknown);
convert(pRun);
}break;
case OOX::et_x_t:
{
OOX::Spreadsheet::CText* pText = static_cast<OOX::Spreadsheet::CText*>(oox_unknown);
OOX::Spreadsheet::CText* pText = dynamic_cast<OOX::Spreadsheet::CText*>(oox_unknown);
convert(pText);
}break;
case OOX::et_x_IconSet:
{
OOX::Spreadsheet::CIconSet *pIc = static_cast<OOX::Spreadsheet::CIconSet*>(oox_unknown);
OOX::Spreadsheet::CIconSet *pIc = dynamic_cast<OOX::Spreadsheet::CIconSet*>(oox_unknown);
convert(pIc);
}break;
case OOX::et_x_DataBar:
{
OOX::Spreadsheet::CDataBar *pB = static_cast<OOX::Spreadsheet::CDataBar*>(oox_unknown);
OOX::Spreadsheet::CDataBar *pB = dynamic_cast<OOX::Spreadsheet::CDataBar*>(oox_unknown);
convert(pB);
}break;
case OOX::et_x_FormulaCF:
{
OOX::Spreadsheet::CFormulaCF *pF = static_cast<OOX::Spreadsheet::CFormulaCF*>(oox_unknown);
OOX::Spreadsheet::CFormulaCF *pF = dynamic_cast<OOX::Spreadsheet::CFormulaCF*>(oox_unknown);
convert(pF);
}break;
default:
......@@ -1774,22 +1774,22 @@ void XlsxConverter::convert(OOX::Spreadsheet::CFromTo* oox_from_to, oox_table_po
// {
// case OOX::et_x_Shape:
// {
// OOX::Spreadsheet::CShape* item = static_cast<OOX::Spreadsheet::CShape*>(oox_group_shape->m_arrItems[i]);
// OOX::Spreadsheet::CShape* item = dynamic_cast<OOX::Spreadsheet::CShape*>(oox_group_shape->m_arrItems[i]);
// convert(item);
// }break;
// case OOX::et_x_ConnShape:
// {
// OOX::Spreadsheet::CConnShape* item = static_cast<OOX::Spreadsheet::CConnShape*>(oox_group_shape->m_arrItems[i]);
// OOX::Spreadsheet::CConnShape* item = dynamic_cast<OOX::Spreadsheet::CConnShape*>(oox_group_shape->m_arrItems[i]);
// convert(item);
// }break;
// case OOX::et_x_GroupShape:
// {
// OOX::Spreadsheet::CGroupShape* item = static_cast<OOX::Spreadsheet::CGroupShape*>(oox_group_shape->m_arrItems[i]);
// OOX::Spreadsheet::CGroupShape* item = dynamic_cast<OOX::Spreadsheet::CGroupShape*>(oox_group_shape->m_arrItems[i]);
// convert(item);
// }break;
// case OOX::et_x_Pic:
// {
// OOX::Spreadsheet::CPic* item = static_cast<OOX::Spreadsheet::CPic*>(oox_group_shape->m_arrItems[i]);
// OOX::Spreadsheet::CPic* item = dynamic_cast<OOX::Spreadsheet::CPic*>(oox_group_shape->m_arrItems[i]);
// convert(item);
// }break;
// }
......@@ -2045,7 +2045,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CColorScale *oox_cond_colorscale)
else
{
_CP_OPT(odf_types::color) color;
convert(static_cast<OOX::Spreadsheet::CColor*>(oox_cond_colorscale->m_arrItems[i]),color);
convert(dynamic_cast<OOX::Spreadsheet::CColor*>(oox_cond_colorscale->m_arrItems[i]),color);
ods_context->current_table().add_conditional_colorscale(color);
}
}
......
......@@ -77,7 +77,7 @@ namespace PPTX
public:
virtual void read(const OOX::CPath& filename, FileMap& map)
{
//FileContainer::read(filename, map);
m_sOutputFilename = filename.GetFilename();
XmlUtils::CXmlNode oNode;
oNode.FromXmlFile(filename.m_strFilename);
......
......@@ -76,7 +76,8 @@ namespace PPTX
public:
virtual void read(const OOX::CPath& filename, FileMap& map)
{
//FileContainer::read(filename, map);
m_sOutputFilename = filename.GetFilename();
XmlUtils::CXmlNode oNode;
oNode.FromXmlFile(filename.m_strFilename);
......
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