Commit e0296d5a authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter - odp master page

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