Commit a4eba608 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

текст в диаграмах

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@56145 954022d7-b5bf-4e40-9824-e11837661b57
parent 56e43e90
...@@ -48,7 +48,7 @@ namespace odf ...@@ -48,7 +48,7 @@ namespace odf
class odf_chart_context::Impl class odf_chart_context::Impl
{ {
public: public:
Impl(odf_conversion_context *odf_context) :odf_context_(odf_context)/*, drawing_context_(odf_context)*/, text_context_(odf_context) Impl(odf_conversion_context *odf_context) :odf_context_(odf_context)
{ {
styles_context_ = NULL; styles_context_ = NULL;
...@@ -62,8 +62,6 @@ public: ...@@ -62,8 +62,6 @@ public:
odf_style_context *styles_context_; odf_style_context *styles_context_;
odf_conversion_context *odf_context_; odf_conversion_context *odf_context_;
odf_text_context text_context_;
style_chart_properties *current_chart_properties; style_chart_properties *current_chart_properties;
chart_chart *current_chart_; chart_chart *current_chart_;
}; };
...@@ -81,8 +79,8 @@ odf_chart_context::~odf_chart_context() ...@@ -81,8 +79,8 @@ odf_chart_context::~odf_chart_context()
void odf_chart_context::set_styles_context(odf_style_context * style_context) void odf_chart_context::set_styles_context(odf_style_context * style_context)
{ {
impl_->styles_context_ = style_context; impl_->styles_context_ = style_context;
impl_->odf_context_->drawing_context()->set_styles_context(style_context); impl_->odf_context_->drawing_context()->set_styles_context(style_context);
impl_->text_context_.set_styles_context(style_context);
} }
odf_drawing_context * odf_chart_context::drawing_context() odf_drawing_context * odf_chart_context::drawing_context()
...@@ -91,7 +89,7 @@ odf_drawing_context * odf_chart_context::drawing_context() ...@@ -91,7 +89,7 @@ odf_drawing_context * odf_chart_context::drawing_context()
} }
odf_text_context * odf_chart_context::text_context() odf_text_context * odf_chart_context::text_context()
{ {
return &impl_->text_context_; return impl_->odf_context_->text_context();
} }
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
void odf_chart_context::start_chart(office_element_ptr & root) void odf_chart_context::start_chart(office_element_ptr & root)
...@@ -140,8 +138,10 @@ void odf_chart_context::set_type_chart(std::wstring type) ...@@ -140,8 +138,10 @@ void odf_chart_context::set_type_chart(std::wstring type)
} }
void odf_chart_context::set_3D(bool Val) void odf_chart_context::set_3D(bool Val)
{ {
if (!impl_->current_chart_properties) return;
impl_->current_chart_properties->chart_three_dimensional_ = Val;
} }
void odf_chart_context::start_series() void odf_chart_context::start_series(std::wstring type)
{ {
office_element_ptr chart_elm; office_element_ptr chart_elm;
create_element(L"chart", L"series", chart_elm, impl_->odf_context_); create_element(L"chart", L"series", chart_elm, impl_->odf_context_);
...@@ -162,6 +162,7 @@ void odf_chart_context::start_series() ...@@ -162,6 +162,7 @@ void odf_chart_context::start_series()
impl_->current_chart_properties = style_->style_content_.get_style_chart_properties(); impl_->current_chart_properties = style_->style_content_.get_style_chart_properties();
series->chart_series_attlist_.common_attlist_.chart_style_name_ = style_name; series->chart_series_attlist_.common_attlist_.chart_style_name_ = style_name;
series->chart_series_attlist_.chart_class_ = std::wstring(L"chart:") + type;
} }
start_element(chart_elm, style_elm, style_name); start_element(chart_elm, style_elm, style_name);
} }
...@@ -237,6 +238,46 @@ void odf_chart_context::start_plot_area() ...@@ -237,6 +238,46 @@ void odf_chart_context::start_plot_area()
} }
start_element(chart_elm, style_elm, style_name); start_element(chart_elm, style_elm, style_name);
} }
void odf_chart_context::start_text()
{
impl_->odf_context_->start_text_context();
impl_->odf_context_->text_context()->set_styles_context(impl_->styles_context_);
style_paragraph_properties *para_props = NULL;
style_text_properties *text_props = NULL;
style *style_ = dynamic_cast<style*>(impl_->current_chart_state_.elements_.back().style_elm.get());
if (style_)
{
para_props = style_->style_content_.get_style_paragraph_properties();
text_props = style_->style_content_.get_style_text_properties();
}
impl_->odf_context_->text_context()->set_single_object(true,para_props,text_props);
}
void odf_chart_context::end_text()
{
odf_text_context * text_context_ = text_context();
if (text_context_ == NULL || impl_->current_level_.size() <1 )return;
for (long i=0; i< text_context_->text_elements_list_.size(); i++)
{
if (text_context_->text_elements_list_[i].level ==0)
{
impl_->current_level_.back()->add_child_element(text_context_->text_elements_list_[i].elm);
}
int level_root = impl_->current_level_.size() + 1;
odf_element_state state={text_context_->text_elements_list_[i].elm,
text_context_->text_elements_list_[i].style_name,
text_context_->text_elements_list_[i].style_elm,
text_context_->text_elements_list_[i].level + level_root};
impl_->current_chart_state_.elements_.push_back(state);
}
impl_->odf_context_->end_text_context();
}
void odf_chart_context::start_legend() void odf_chart_context::start_legend()
{ {
...@@ -262,6 +303,70 @@ void odf_chart_context::start_legend() ...@@ -262,6 +303,70 @@ void odf_chart_context::start_legend()
start_element(chart_elm, style_elm, style_name); start_element(chart_elm, style_elm, style_name);
} }
void odf_chart_context::set_legend_position(int val)
{
chart_legend *legend = dynamic_cast<chart_legend*>(impl_->current_chart_state_.elements_.back().elm.get());
if (legend == NULL)return;
switch(val)
{
case 0: legend->chart_legend_attlist_.chart_legend_position_ = L"bottom"; break;//st_legendposB
case 1: legend->chart_legend_attlist_.chart_legend_position_ = L"top-end"; break;//st_legendposTR
case 2: legend->chart_legend_attlist_.chart_legend_position_ = L"start"; break;//st_legendposL
case 3: legend->chart_legend_attlist_.chart_legend_position_ = L"end"; break;//st_legendposR
case 4: legend->chart_legend_attlist_.chart_legend_position_ = L"top"; break;//st_legendposT
}
}
void odf_chart_context::set_layout_x(double *val,int mode)//edge, factor
{
if (!val)return;
if (mode == 0) return;
chart_legend *legend = dynamic_cast<chart_legend*>(impl_->current_chart_state_.elements_.back().elm.get());
if (legend)legend->chart_legend_attlist_.common_draw_position_attlist_.svg_x_ = length(*val,length::pt);
chart_plot_area *plot_area = dynamic_cast<chart_plot_area*>(impl_->current_chart_state_.elements_.back().elm.get());
if (plot_area)plot_area->chart_plot_area_attlist_.common_draw_position_attlist_.svg_x_ = length(*val,length::pt);
chart_title *title = dynamic_cast<chart_title*>(impl_->current_chart_state_.elements_.back().elm.get());
if (title)title->chart_title_attlist_.common_draw_position_attlist_.svg_x_ = length(*val,length::pt);
}
void odf_chart_context::set_layout_y(double *val,int mode)
{
if (!val)return;
if (mode == 0) return;
chart_legend *legend = dynamic_cast<chart_legend*>(impl_->current_chart_state_.elements_.back().elm.get());
if (legend)legend->chart_legend_attlist_.common_draw_position_attlist_.svg_y_ = length(*val,length::pt);
chart_plot_area *plot_area = dynamic_cast<chart_plot_area *>(impl_->current_chart_state_.elements_.back().elm.get());
if (plot_area)plot_area->chart_plot_area_attlist_.common_draw_position_attlist_.svg_y_ = length(*val,length::pt);
chart_title *title = dynamic_cast<chart_title*>(impl_->current_chart_state_.elements_.back().elm.get());
if (title)title->chart_title_attlist_.common_draw_position_attlist_.svg_y_ = length(*val,length::pt);
}
void odf_chart_context::set_layout_w(double *val,int mode)
{
if (!val)return;
if (mode == 0) return;
chart_legend *legend = dynamic_cast<chart_legend*>(impl_->current_chart_state_.elements_.back().elm.get());
if (legend)legend->chart_legend_attlist_.chartooo_width_ = length(*val,length::pt);
chart_plot_area *plot_area = dynamic_cast<chart_plot_area *>(impl_->current_chart_state_.elements_.back().elm.get());
if (plot_area)plot_area->chart_plot_area_attlist_.common_draw_size_attlist_.svg_width_ = length(*val,length::pt);
}
void odf_chart_context::set_layout_h(double *val,int mode)
{
if (!val)return;
if (mode == 0) return;
chart_legend *legend = dynamic_cast<chart_legend*>(impl_->current_chart_state_.elements_.back().elm.get());
if (legend)legend->chart_legend_attlist_.chartooo_height_ = length(*val,length::pt);
chart_plot_area *plot_area = dynamic_cast<chart_plot_area *>(impl_->current_chart_state_.elements_.back().elm.get());
if (plot_area)plot_area->chart_plot_area_attlist_.common_draw_size_attlist_.svg_height_ = length(*val,length::pt);
}
void odf_chart_context::start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name) void odf_chart_context::start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name)
{ {
int level = impl_->current_level_.size(); int level = impl_->current_level_.size();
......
...@@ -33,18 +33,27 @@ public: ...@@ -33,18 +33,27 @@ public:
void set_type_chart(std::wstring type); void set_type_chart(std::wstring type);
void set_3D(bool Val); void set_3D(bool Val);
void start_series(); void start_series(std::wstring type);
void start_axis(); void start_axis();
void start_title(); void start_title();
void start_plot_area(); void start_plot_area();
void start_legend(); void start_legend();
void set_legend_position(int val);
void start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name); void start_element(office_element_ptr & elm, office_element_ptr & style_elm, std::wstring style_name);
void end_element(); void end_element();
void set_series_formula(int category, std::wstring oox_formula); void set_series_formula(int category, std::wstring oox_formula);
void start_text();
void end_text();
void set_layout_x(double *val,int mode);
void set_layout_y(double *val,int mode);
void set_layout_w(double *val,int mode);
void set_layout_h(double *val,int mode);
void end_chart(); void end_chart();
private: private:
......
...@@ -43,6 +43,9 @@ public: ...@@ -43,6 +43,9 @@ public:
virtual odf_drawing_context * drawing_context() = 0; virtual odf_drawing_context * drawing_context() = 0;
virtual odf_text_context * text_context() = 0; virtual odf_text_context * text_context() = 0;
virtual void start_text_context() = 0;
virtual void end_text_context() = 0;
odf_chart_context * chart_context(); odf_chart_context * chart_context();
odf_style_context * styles_context(); odf_style_context * styles_context();
odf_number_styles_context * numbers_styles_context(); odf_number_styles_context * numbers_styles_context();
......
...@@ -100,6 +100,7 @@ public: ...@@ -100,6 +100,7 @@ public:
styles_context_ = odf_context_->styles_context(); styles_context_ = odf_context_->styles_context();
current_graphic_properties = NULL; current_graphic_properties = NULL;
current_paragraph_properties = NULL;
} }
std::vector<odf_drawing_state> drawing_list_;// .. "" std::vector<odf_drawing_state> drawing_list_;// .. ""
...@@ -648,7 +649,7 @@ void odf_drawing_context::set_textarea_writing_mode(int mode) ...@@ -648,7 +649,7 @@ void odf_drawing_context::set_textarea_writing_mode(int mode)
if (style_)impl_->current_paragraph_properties = style_->style_content_.get_style_paragraph_properties(); if (style_)impl_->current_paragraph_properties = style_->style_content_.get_style_paragraph_properties();
} }
style_paragraph_properties * paragraph_properties=NULL; style_paragraph_properties * paragraph_properties = impl_->odf_context_->text_context()->get_paragraph_properties();
draw_base* draw = dynamic_cast<draw_base*>(impl_->current_drawing_state_.elements_[0].elm.get()); draw_base* draw = dynamic_cast<draw_base*>(impl_->current_drawing_state_.elements_[0].elm.get());
if (draw) if (draw)
{ {
...@@ -667,7 +668,7 @@ void odf_drawing_context::set_textarea_writing_mode(int mode) ...@@ -667,7 +668,7 @@ void odf_drawing_context::set_textarea_writing_mode(int mode)
std::wstring style_name = draw->common_draw_attlists_.shape_with_text_and_styles_.common_draw_text_style_name_attlist_.draw_text_style_name_->style_name(); std::wstring style_name = draw->common_draw_attlists_.shape_with_text_and_styles_.common_draw_text_style_name_attlist_.draw_text_style_name_->style_name();
// //
} }
if (style_) if (style_ && !paragraph_properties)
{ {
paragraph_properties = style_->style_content_.get_style_paragraph_properties(); paragraph_properties = style_->style_content_.get_style_paragraph_properties();
} }
......
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include "odf_conversion_context.h" #include "odf_conversion_context.h"
#include "styles.h" #include "styles.h"
#include "style_text_properties.h"
#include "text_elements.h" #include "text_elements.h"
#include "paragraph_elements.h" #include "paragraph_elements.h"
...@@ -20,6 +22,10 @@ odf_text_context::odf_text_context(odf_conversion_context *odf_context) ...@@ -20,6 +22,10 @@ odf_text_context::odf_text_context(odf_conversion_context *odf_context)
{ {
odf_context_ = odf_context; odf_context_ = odf_context;
styles_context_ = odf_context->styles_context(); styles_context_ = odf_context->styles_context();
single_paragraph_ = false;
paragraph_properties_ = NULL;
text_properties_ = NULL;
last_paragraph_ = NULL; last_paragraph_ = NULL;
} }
...@@ -31,6 +37,13 @@ void odf_text_context::set_styles_context(odf_style_context* styles_context) ...@@ -31,6 +37,13 @@ void odf_text_context::set_styles_context(odf_style_context* styles_context)
styles_context_ = styles_context; styles_context_ = styles_context;
} }
void odf_text_context::set_single_object(bool val, style_paragraph_properties *para_props, style_text_properties *text_props)
{
single_paragraph_ = val;
paragraph_properties_ = para_props;
text_properties_ = text_props;
}
void odf_text_context::add_text_content(const std::wstring & text) void odf_text_context::add_text_content(const std::wstring & text)
{ {
if (current_level_.size() >=0 ) if (current_level_.size() >=0 )
...@@ -50,7 +63,14 @@ void odf_text_context::start_paragraph(bool styled) ...@@ -50,7 +63,14 @@ void odf_text_context::start_paragraph(bool styled)
void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled) void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled)
{ {
int level = current_level_.size(); int level = current_level_.size();
if (single_paragraph_ && level >0)
{
std::wstring str_enter(L"\n");
add_text_content(str_enter);
return;
}
std::wstring style_name; std::wstring style_name;
office_element_ptr style_elm; office_element_ptr style_elm;
...@@ -85,7 +105,10 @@ void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled) ...@@ -85,7 +105,10 @@ void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled)
void odf_text_context::end_paragraph() void odf_text_context::end_paragraph()
{ {
current_level_.pop_back(); if (single_paragraph_ == false)
{
current_level_.pop_back();
}
} }
void odf_text_context::start_element(office_element_ptr & elm) void odf_text_context::start_element(office_element_ptr & elm)
...@@ -102,33 +125,36 @@ void odf_text_context::start_element(office_element_ptr & elm) ...@@ -102,33 +125,36 @@ void odf_text_context::start_element(office_element_ptr & elm)
} }
void odf_text_context::end_element() void odf_text_context::end_element()
{ {
current_level_.pop_back(); if (single_paragraph_ == false)
{
current_level_.pop_back();
}
} }
void odf_text_context::start_span(bool styled) void odf_text_context::start_span(bool styled)
{ {
if (styles_context_ == NULL)return; if (styles_context_ == NULL || single_paragraph_)return;
office_element_ptr span_elm; office_element_ptr span_elm;
create_element(L"text", L"span", span_elm, odf_context_); create_element(L"text", L"span", span_elm, odf_context_);
int level = current_level_.size(); int level = current_level_.size();
std::wstring style_name; std::wstring style_name;
office_element_ptr style_elm; office_element_ptr style_elm;
if (styled) if (styled)
{ {
style_name = styles_context_->last_state().get_name(); style_name = styles_context_->last_state().get_name();
style_elm = styles_context_->last_state().get_office_element(); style_elm = styles_context_->last_state().get_office_element();
style * style_ = dynamic_cast<style*>(style_elm.get());
text_span* span = dynamic_cast<text_span*>(span_elm.get()); text_span* span = dynamic_cast<text_span*>(span_elm.get());
if (span) span->text_style_name_ = style_ref(style_name); if (span) span->text_style_name_ = style_ref(style_name);
if (parent_span_style_.length() >0) if (parent_span_style_.length() >0 && style_)
{ {
style *style_ = dynamic_cast<style*>(style_elm.get()); style_->style_parent_style_name_ = parent_span_style_;
if (style_)style_->style_parent_style_name_ = parent_span_style_;
} }
} }
...@@ -144,6 +170,8 @@ void odf_text_context::start_span(bool styled) ...@@ -144,6 +170,8 @@ void odf_text_context::start_span(bool styled)
void odf_text_context::end_span() void odf_text_context::end_span()
{ {
if (single_paragraph_)return;
current_level_.pop_back(); current_level_.pop_back();
} }
......
...@@ -18,6 +18,8 @@ namespace odf ...@@ -18,6 +18,8 @@ namespace odf
class odf_conversion_context; class odf_conversion_context;
class odf_style_context; class odf_style_context;
class paragraph; class paragraph;
class style_paragraph_properties;
class style_text_properties;
struct odf_text_state struct odf_text_state
{ {
...@@ -37,6 +39,7 @@ public: ...@@ -37,6 +39,7 @@ public:
public: public:
void set_styles_context(odf_style_context* styles_context);// embedded void set_styles_context(odf_style_context* styles_context);// embedded
void set_single_object(bool val, style_paragraph_properties *para_props, style_text_properties *text_props);
void add_text_content(const std::wstring & text); void add_text_content(const std::wstring & text);
void start_paragraph(bool styled = false); void start_paragraph(bool styled = false);
...@@ -55,7 +58,14 @@ public: ...@@ -55,7 +58,14 @@ public:
void set_parent_paragraph_style (std::wstring & style_name); void set_parent_paragraph_style (std::wstring & style_name);
void set_parent_span_style (std::wstring & style_name); void set_parent_span_style (std::wstring & style_name);
style_text_properties *get_text_properties(){return text_properties_;}
style_paragraph_properties *get_paragraph_properties(){return paragraph_properties_;}
private: private:
bool single_paragraph_;
style_paragraph_properties *paragraph_properties_;//- , ,
style_text_properties *text_properties_;//- , ,
paragraph * last_paragraph_; paragraph * last_paragraph_;
odf_style_context * styles_context_; odf_style_context * styles_context_;
......
...@@ -60,8 +60,8 @@ public: ...@@ -60,8 +60,8 @@ public:
/////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
ods_table_state & current_table() { return table_context_.state();} ods_table_state & current_table() { return table_context_.state();}
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
void start_text_context(); virtual void start_text_context();
void end_text_context(); virtual void end_text_context();
virtual odf_drawing_context * drawing_context() {return current_table().drawing_context();} virtual odf_drawing_context * drawing_context() {return current_table().drawing_context();}
virtual odf_text_context * text_context() {return current_text_context_;} virtual odf_text_context * text_context() {return current_text_context_;}
......
...@@ -183,13 +183,18 @@ const wchar_t * chart_legend::name = L"legend"; ...@@ -183,13 +183,18 @@ const wchar_t * chart_legend::name = L"legend";
void chart_legend_attlist::serialize(CP_ATTR_NODE) void chart_legend_attlist::serialize(CP_ATTR_NODE)
{ {
CP_XML_ATTR_OPT(L"chart:legend-position", chart_legend_position_); CP_XML_ATTR_OPT(L"chart:legend-position", chart_legend_position_);
CP_XML_ATTR_OPT(L"chart:legend-align", chart_legend_align_); CP_XML_ATTR_OPT(L"chart:legend-align", chart_legend_align_);
common_draw_position_attlist_.serialize(CP_GET_XML_NODE());
CP_XML_ATTR_OPT(L"style:legend-expansion", style_legend_expansion_); CP_XML_ATTR_OPT(L"style:legend-expansion", style_legend_expansion_);
CP_XML_ATTR_OPT(L"style:legend-expansion-aspect-ratio", style_legend_expansion_aspect_ratio_); CP_XML_ATTR_OPT(L"style:legend-expansion-aspect-ratio", style_legend_expansion_aspect_ratio_);
common_attlist_.serialize(CP_GET_XML_NODE());
CP_XML_ATTR_OPT(L"chartooo:height", chartooo_height_);
CP_XML_ATTR_OPT(L"chartooo:width", chartooo_width_);
common_draw_position_attlist_.serialize(CP_GET_XML_NODE());
common_attlist_.serialize(CP_GET_XML_NODE());
} }
void chart_legend::serialize(std::wostream & _Wostream) void chart_legend::serialize(std::wostream & _Wostream)
{ {
...@@ -208,8 +213,10 @@ void chart_plot_area_attlist::serialize(CP_ATTR_NODE) ...@@ -208,8 +213,10 @@ void chart_plot_area_attlist::serialize(CP_ATTR_NODE)
{ {
common_draw_position_attlist_.serialize(CP_GET_XML_NODE()); common_draw_position_attlist_.serialize(CP_GET_XML_NODE());
common_draw_size_attlist_.serialize(CP_GET_XML_NODE()); common_draw_size_attlist_.serialize(CP_GET_XML_NODE());
common_attlist_.serialize(CP_GET_XML_NODE());
CP_XML_ATTR_OPT(L"table:cell-range-address", table_cell_range_address_); common_attlist_.serialize(CP_GET_XML_NODE());
CP_XML_ATTR_OPT(L"table:cell-range-address", table_cell_range_address_);
CP_XML_ATTR_OPT(L"chart:data-source-has-labels", chart_data_source_has_labels_); CP_XML_ATTR_OPT(L"chart:data-source-has-labels", chart_data_source_has_labels_);
} }
......
...@@ -85,7 +85,6 @@ public: ...@@ -85,7 +85,6 @@ public:
_CP_OPT(std::wstring) table_cell_range_; _CP_OPT(std::wstring) table_cell_range_;
common_draw_position_attlist common_draw_position_attlist_; common_draw_position_attlist common_draw_position_attlist_;
common_chart_attlist common_attlist_; common_chart_attlist common_attlist_;
}; };
/// \brief chart:title /// \brief chart:title
...@@ -160,11 +159,14 @@ public: ...@@ -160,11 +159,14 @@ public:
_CP_OPT(std::wstring) chart_legend_position_; _CP_OPT(std::wstring) chart_legend_position_;
_CP_OPT(std::wstring) chart_legend_align_; _CP_OPT(std::wstring) chart_legend_align_;
common_draw_position_attlist common_draw_position_attlist_; common_draw_position_attlist common_draw_position_attlist_;
_CP_OPT(std::wstring) style_legend_expansion_; _CP_OPT(std::wstring) style_legend_expansion_;
_CP_OPT(double) style_legend_expansion_aspect_ratio_; _CP_OPT(double) style_legend_expansion_aspect_ratio_;
common_chart_attlist common_attlist_; common_chart_attlist common_attlist_;
_CP_OPT(length) chartooo_height_;
_CP_OPT(length) chartooo_width_;
}; };
/// \brief chart:legend /// \brief chart:legend
...@@ -196,10 +198,12 @@ public: ...@@ -196,10 +198,12 @@ public:
common_draw_position_attlist common_draw_position_attlist_; common_draw_position_attlist common_draw_position_attlist_;
common_draw_size_attlist common_draw_size_attlist_; common_draw_size_attlist common_draw_size_attlist_;
common_chart_attlist common_attlist_;
common_chart_attlist common_attlist_;
_CP_OPT(std::wstring) table_cell_range_address_; _CP_OPT(std::wstring) table_cell_range_address_;
_CP_OPT(std::wstring) chart_data_source_has_labels_; _CP_OPT(std::wstring) chart_data_source_has_labels_;
// dr3d-scene-attlist // dr3d-scene-attlist
// common-dr3d-transform-attlist // common-dr3d-transform-attlist
}; };
......
...@@ -308,7 +308,6 @@ void text_format_properties_content::serialize(std::wostream & _Wostream,const w ...@@ -308,7 +308,6 @@ void text_format_properties_content::serialize(std::wostream & _Wostream,const w
const wchar_t * style_text_properties::ns = L"style"; const wchar_t * style_text_properties::ns = L"style";
const wchar_t * style_text_properties::name = L"text-properties"; const wchar_t * style_text_properties::name = L"text-properties";
void style_text_properties::create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name) void style_text_properties::create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name)
{ {
CP_NOT_APPLICABLE_ELM(); CP_NOT_APPLICABLE_ELM();
......
...@@ -289,7 +289,6 @@ public: ...@@ -289,7 +289,6 @@ public:
style_text_properties(){}; style_text_properties(){};
style_text_properties(const std::wstring & rStyle){ text_format_properties_content_.set_r_style(rStyle); }; style_text_properties(const std::wstring & rStyle){ text_format_properties_content_.set_r_style(rStyle); };
private:
text_format_properties_content text_format_properties_content_; text_format_properties_content text_format_properties_content_;
}; };
......
...@@ -152,6 +152,10 @@ ...@@ -152,6 +152,10 @@
RelativePath=".\Oox2OdfConverter\Converter.cpp" RelativePath=".\Oox2OdfConverter\Converter.cpp"
> >
</File> </File>
<File
RelativePath=".\Oox2OdfConverter\ConverterChart.cpp"
>
</File>
<File <File
RelativePath=".\Oox2OdfConverter\DocxConverter.cpp" RelativePath=".\Oox2OdfConverter\DocxConverter.cpp"
> >
......
//todoooo
#pragma once
#include "stdAfx.h" #include "stdAfx.h"
#include "Converter.h" #include "Converter.h"
...@@ -603,16 +601,10 @@ void OoxConverter::convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr) ...@@ -603,16 +601,10 @@ void OoxConverter::convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr)
//+element text:section //+element text:section
} }
} }
void OoxConverter::convert(OOX::Drawing::CRunProperty *oox_run_pr) void OoxConverter::convert(OOX::Drawing::CRunProperty * oox_run_pr, odf::style_text_properties * text_properties)
{ {
if (!oox_run_pr)return; if (!oox_run_pr) return;
bool automatic = true; if (!text_properties) return;
bool root = false;
odf_context()->styles_context()->create_style(L"",odf::style_family::Text, automatic, root, -1);
odf::style_text_properties * text_properties = odf_context()->styles_context()->last_state().get_text_properties();
if (text_properties == NULL)return;
if (oox_run_pr->m_oBold.IsInit()) if (oox_run_pr->m_oBold.IsInit())
{ {
...@@ -696,26 +688,33 @@ void OoxConverter::convert(OOX::Drawing::CRun *oox_run) ...@@ -696,26 +688,33 @@ void OoxConverter::convert(OOX::Drawing::CRun *oox_run)
{ {
if (!oox_run)return; if (!oox_run)return;
convert(oox_run->m_oRunProperty.GetPointer()); bool styled = false;
if (oox_run->m_oRunProperty.IsInit())
{
odf::style_text_properties * text_properties = odf_context()->text_context()->get_text_properties();
if (!text_properties)
{
odf_context()->styles_context()->create_style(L"",odf::style_family::Text, true, false, -1);
text_properties = odf_context()->styles_context()->last_state().get_text_properties();
styled = true;
}
convert(oox_run->m_oRunProperty.GetPointer(), text_properties);
}
odf_context()->text_context()->start_span(oox_run->m_oRunProperty.GetPointer() ? true : false); odf_context()->text_context()->start_span(styled);
if (oox_run->m_oText.IsInit()) if (oox_run->m_oText.IsInit())
{ {
odf_context()->text_context()->add_text_content( string2std_string(oox_run->m_oText->m_sText)); odf_context()->text_context()->add_text_content( string2std_string(oox_run->m_oText->m_sText));
} }
odf_context()->text_context()->end_span(); odf_context()->text_context()->end_span();
} }
void OoxConverter::convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr)
{
if (!oox_paragraph_pr)return;
bool automatic = true; void OoxConverter::convert(OOX::Drawing::CParagraphProperty * oox_paragraph_pr, cpdoccore::odf::style_paragraph_properties * paragraph_properties)
bool root = false; {
if (!oox_paragraph_pr) return;
odf_context()->styles_context()->create_style(L"",odf::style_family::Paragraph, automatic, root, -1); if (!paragraph_properties) return;
odf::style_paragraph_properties * paragraph_properties = odf_context()->styles_context()->last_state().get_paragraph_properties();
if (paragraph_properties == NULL)return;
if (oox_paragraph_pr->m_oLineSpacing.IsInit()) if (oox_paragraph_pr->m_oLineSpacing.IsInit())
{ {
...@@ -767,10 +766,15 @@ void OoxConverter::convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr) ...@@ -767,10 +766,15 @@ void OoxConverter::convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr)
if (oox_paragraph_pr->m_oDefRunProperty.IsInit()) if (oox_paragraph_pr->m_oDefRunProperty.IsInit())// !!!
{ {
convert(oox_paragraph_pr->m_oDefRunProperty.GetPointer()); odf::style_text_properties * text_properties = odf_context()->text_context()->get_text_properties();
odf_context()->text_context()->set_parent_span_style(odf_context()->styles_context()->last_state().get_name()); if (text_properties)
convert(oox_paragraph_pr->m_oDefRunProperty.GetPointer(), text_properties);
// family !!!
//convert(oox_paragraph_pr->m_oDefRunProperty.GetPointer());
//odf_context()->text_context()->set_parent_span_style(odf_context()->styles_context()->last_state().get_name());
} }
} }
...@@ -793,9 +797,21 @@ void OoxConverter::convert(OOX::Drawing::CParagraph *oox_paragraph) ...@@ -793,9 +797,21 @@ void OoxConverter::convert(OOX::Drawing::CParagraph *oox_paragraph)
{ {
if (!oox_paragraph)return; if (!oox_paragraph)return;
convert(oox_paragraph->m_oParagraphProperty.GetPointer()); bool styled = false;
if (oox_paragraph->m_oParagraphProperty.IsInit())
{
odf::style_paragraph_properties * paragraph_properties = odf_context()->text_context()->get_paragraph_properties();
// ,
if (!paragraph_properties)
{
odf_context()->styles_context()->create_style(L"",odf::style_family::Paragraph, true, false, -1);
paragraph_properties = odf_context()->styles_context()->last_state().get_paragraph_properties();
styled = true;
}
convert(oox_paragraph->m_oParagraphProperty.GetPointer(), paragraph_properties);
}
odf_context()->text_context()->start_paragraph(oox_paragraph->m_oParagraphProperty.GetPointer() ? true : false); odf_context()->text_context()->start_paragraph(styled);
for (long i=0; i< oox_paragraph->m_arrItems.GetSize();i++) for (long i=0; i< oox_paragraph->m_arrItems.GetSize();i++)
{ {
...@@ -815,7 +831,6 @@ void OoxConverter::convert(double oox_font_size, _CP_OPT(odf::font_size) & odf_ ...@@ -815,7 +831,6 @@ void OoxConverter::convert(double oox_font_size, _CP_OPT(odf::font_size) & odf_
odf_font_size = odf::font_size(odf_length.get()); odf_font_size = odf::font_size(odf_length.get());
} }
////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart) void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart)
{ {
if ((!oox_chart) && (!oox_chart->m_oChartSpace.m_chart))return; if ((!oox_chart) && (!oox_chart->m_oChartSpace.m_chart))return;
...@@ -823,6 +838,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart) ...@@ -823,6 +838,7 @@ void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart)
oox_current_chart = oox_chart; oox_current_chart = oox_chart;
odf_context()->start_chart(); odf_context()->start_chart();
convert(oox_chart->m_oChartSpace.m_oSpPr.GetPointer()); convert(oox_chart->m_oChartSpace.m_oSpPr.GetPointer());
convert(oox_chart->m_oChartSpace.m_oTxPr.GetPointer());
convert(oox_chart->m_oChartSpace.m_chart->m_title); convert(oox_chart->m_oChartSpace.m_chart->m_title);
convert(oox_chart->m_oChartSpace.m_chart->m_legend); convert(oox_chart->m_oChartSpace.m_chart->m_legend);
...@@ -836,403 +852,4 @@ void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart) ...@@ -836,403 +852,4 @@ void OoxConverter::convert(OOX::Spreadsheet::CChartSpace *oox_chart)
oox_current_chart = NULL; oox_current_chart = NULL;
} }
void OoxConverter::convert(OOX::Spreadsheet::CT_Title* ct_title)
{
if (ct_title == NULL)return;
odf_context()->chart_context()->start_title();
convert(ct_title->m_oSpPr.GetPointer());
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Legend* ct_legend)
{
if (ct_legend == NULL)return;
odf_context()->chart_context()->start_legend();
convert(ct_legend->m_oSpPr.GetPointer());
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea)
{
if (ct_plotArea == NULL)return;
odf_context()->chart_context()->start_plot_area();
convert(ct_plotArea->m_oSpPr.GetPointer());
if (ct_plotArea->m_layout)//
{
}
for (long i=0; i< ct_plotArea->m_Items.GetCount(); i++)//
{
if (!ct_plotArea->m_ItemsElementName0[i]) continue;
switch(*ct_plotArea->m_ItemsElementName0[i])
{
case OOX::Spreadsheet::itemschoicetype5AREA3DCHART: convert((OOX::Spreadsheet::CT_Area3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5AREACHART: convert((OOX::Spreadsheet::CT_AreaChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BAR3DCHART: convert((OOX::Spreadsheet::CT_Bar3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BARCHART: convert((OOX::Spreadsheet::CT_BarChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BUBBLECHART: convert((OOX::Spreadsheet::CT_BubbleChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5DOUGHNUTCHART: convert((OOX::Spreadsheet::CT_DoughnutChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5LINE3DCHART: convert((OOX::Spreadsheet::CT_Line3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5LINECHART: convert((OOX::Spreadsheet::CT_LineChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5OFPIECHART: convert((OOX::Spreadsheet::CT_OfPieChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5PIE3DCHART: convert((OOX::Spreadsheet::CT_Pie3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5PIECHART: convert((OOX::Spreadsheet::CT_PieChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5RADARCHART: convert((OOX::Spreadsheet::CT_RadarChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SCATTERCHART: convert((OOX::Spreadsheet::CT_ScatterChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5STOCKCHART: convert((OOX::Spreadsheet::CT_StockChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SURFACE3DCHART: convert((OOX::Spreadsheet::CT_Surface3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SURFACECHART: convert((OOX::Spreadsheet::CT_SurfaceChart*) ct_plotArea->m_Items[i]);break;
}
}
for (long i=0; i< ct_plotArea->m_Items.GetCount(); i++)
{
if (!ct_plotArea->m_ItemsElementName1[i]) continue;
switch(*ct_plotArea->m_ItemsElementName1[i])
{
case OOX::Spreadsheet::itemschoicetype6CATAX: convert((OOX::Spreadsheet::CT_CatAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6DATEAX: convert((OOX::Spreadsheet::CT_DateAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6SERAX: convert((OOX::Spreadsheet::CT_SerAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6VALAX: convert((OOX::Spreadsheet::CT_ValAx*)ct_plotArea->m_Items1[i]);break;
}
}
if (ct_plotArea->m_dTable)
{
}
odf_context()->chart_context()->end_element();
}
//////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_CatAx* ct_catAx)
{
if (ct_catAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_catAx->m_oSpPr.GetPointer());
convert(ct_catAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_DateAx* ct_dateAx)
{
if (ct_dateAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_dateAx->m_oSpPr.GetPointer());
convert(ct_dateAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SerAx* ct_serAx)
{
if (ct_serAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_serAx->m_oSpPr.GetPointer());
convert(ct_serAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ValAx* ct_valAx)
{
if (ct_valAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_valAx->m_oSpPr.GetPointer());
convert(ct_valAx->m_title);
odf_context()->chart_context()->end_element();
}
////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_Area3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"area");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AreaChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"area");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Bar3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bar");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BarChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bar");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Line3DChart *chart)
{
odf_context()->chart_context()->set_type_chart(L"line");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_LineChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"line");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Pie3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PieChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Surface3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"surface");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SurfaceChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"surface");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BubbleChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bubble");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_DoughnutChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"ring");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ScatterChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"scatter");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_RadarChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"radar");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_StockChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"stock");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_OfPieChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AreaSer* ser)
{
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BubbleSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_xVal, 1);
convert(ser->m_yVal, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SurfaceSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PieSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BarSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ScatterSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_xVal, 1);
convert(ser->m_yVal, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_RadarSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_LineSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series();
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AxDataSource* cat, int category)
{
if (cat == NULL)return;
if (cat->m_strRef)
{
if (cat->m_strRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*cat->m_strRef->m_f));
if (cat->m_strRef->m_strCache){}
}
else if (cat->m_numRef)
{
if (cat->m_numRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*cat->m_numRef->m_f));
if (cat->m_numRef->m_numCache){}
}
else if (cat->m_numLit)
{
}
else if (cat->m_strLit)
{
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_NumDataSource* val, int category)
{
if (val == NULL)return;
if (val->m_numRef)
{
if (val->m_numRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*val->m_numRef->m_f));
if (val->m_numRef->m_numCache){}
}
else if (val->m_numLit)
{
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_Surface* ct_surface, int type)
{
//floor, side, back
}
} }
\ No newline at end of file
...@@ -15,6 +15,8 @@ namespace cpdoccore ...@@ -15,6 +15,8 @@ namespace cpdoccore
class odf_conversion_context; class odf_conversion_context;
class font_size; class font_size;
class length_or_percent; class length_or_percent;
class style_paragraph_properties;
class style_text_properties;
} }
} }
namespace OOX namespace OOX
...@@ -201,6 +203,8 @@ namespace OOX ...@@ -201,6 +203,8 @@ namespace OOX
class CT_Style1; class CT_Style1;
class CT_Style; class CT_Style;
class CT_TextLanguageID; class CT_TextLanguageID;
class CRichText;
class CTextProperties;
} }
} }
...@@ -250,14 +254,15 @@ public: ...@@ -250,14 +254,15 @@ public:
/////////////////////////////// ///////////////////////////////
void convert(OOX::Drawing::CParagraph *oox_paragraph); void convert(OOX::Drawing::CParagraph *oox_paragraph);
void convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr); void convert(OOX::Drawing::CParagraphProperty *oox_paragraph_pr, cpdoccore::odf::style_paragraph_properties * paragraph_properties);
void convert(OOX::Drawing::CRun *oox_run); void convert(OOX::Drawing::CRun *oox_run);
void convert(OOX::Drawing::CRunProperty *oox_run_pr); void convert(OOX::Drawing::CRunProperty *oox_run_pr, cpdoccore::odf::style_text_properties * text_properties);
void convert(OOX::Drawing::CLineSpacing *oox_spacing, cpdoccore::odf::length_or_percent & length_or_percent); void convert(OOX::Drawing::CLineSpacing *oox_spacing, cpdoccore::odf::length_or_percent & length_or_percent);
////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////
void convert(OOX::Spreadsheet::CChartSpace *oox_chart); void convert(OOX::Spreadsheet::CChartSpace *oox_chart);
void convert(OOX::Spreadsheet::CT_Title *ct_title); void convert(OOX::Spreadsheet::CT_Title *ct_title);
void convert(OOX::Spreadsheet::CT_Legend *ct_legend); void convert(OOX::Spreadsheet::CT_Legend *ct_legend);
void convert(OOX::Spreadsheet::CT_LegendEntry *ct_legend);
void convert(OOX::Spreadsheet::CT_PlotArea *ct_plotArea); void convert(OOX::Spreadsheet::CT_PlotArea *ct_plotArea);
void convert(OOX::Spreadsheet::CT_Surface *ct_surface, int type); void convert(OOX::Spreadsheet::CT_Surface *ct_surface, int type);
void convert(OOX::Spreadsheet::CT_CatAx *ct_catAx); void convert(OOX::Spreadsheet::CT_CatAx *ct_catAx);
...@@ -290,6 +295,11 @@ public: ...@@ -290,6 +295,11 @@ public:
void convert(OOX::Spreadsheet::CT_LineSer *ser); void convert(OOX::Spreadsheet::CT_LineSer *ser);
void convert(OOX::Spreadsheet::CT_AxDataSource *cat, int category); void convert(OOX::Spreadsheet::CT_AxDataSource *cat, int category);
void convert(OOX::Spreadsheet::CT_NumDataSource *val, int category); void convert(OOX::Spreadsheet::CT_NumDataSource *val, int category);
void convert(OOX::Spreadsheet::CRichText *rich);
void convert(OOX::Spreadsheet::CTextProperties *txPr);
void convert(OOX::Spreadsheet::CT_Tx *ct_tx);
void convert(OOX::Spreadsheet::CT_Layout *ct_layout);
void convert(OOX::Spreadsheet::CT_ManualLayout *ct_layout);
////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////
void convert(double oox_font_size, cpdoccore::_CP_OPT(cpdoccore::odf::font_size) & odf_font_size); void convert(double oox_font_size, cpdoccore::_CP_OPT(cpdoccore::odf::font_size) & odf_font_size);
}; };
......
#include "stdAfx.h"
#include "Converter.h"
#include "../utils.h"
#include "XlsxConverter.h"
#include "DocxConverter.h"
#include "odf_conversion_context.h"
#include "odf_text_context.h"
#include "odf_drawing_context.h"
#include "style_text_properties.h"
#include "style_paragraph_properties.h"
#include <XlsxFormat\Xlsx.h>
namespace Oox2Odf
{
void OoxConverter::convert(OOX::Spreadsheet::CRichText* rich)
{
if (rich == NULL)return;
odf_context()->chart_context()->start_text();
OoxConverter::convert(rich->m_oBodyPr.GetPointer());
for (long i=0 ; i < rich->m_arrItems.GetSize();i++)
{
OoxConverter::convert(rich->m_arrItems[i]);
}
odf_context()->chart_context()->end_text();
}
void OoxConverter::convert(OOX::Spreadsheet::CTextProperties* txPr)
{
if (txPr == NULL)return;
odf_context()->chart_context()->start_text();
OoxConverter::convert(txPr->m_oBodyPr.GetPointer());
for (long i=0 ; i < txPr->m_arrItems.GetSize();i++)
{
OoxConverter::convert(txPr->m_arrItems[i]);
}
odf_context()->chart_context()->end_text();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Tx* ct_tx)
{
if (ct_tx == NULL)return;
convert(ct_tx->m_oRich.GetPointer());
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Layout* ct_layout)
{
if (ct_layout == NULL)return;
if (ct_layout->m_manualLayout == NULL)return;
if (ct_layout->m_manualLayout->m_x && ct_layout->m_manualLayout->m_xMode)
odf_context()->chart_context()->set_layout_x(ct_layout->m_manualLayout->m_x->m_val,*ct_layout->m_manualLayout->m_xMode->m_val);
if (ct_layout->m_manualLayout->m_y && ct_layout->m_manualLayout->m_yMode)
odf_context()->chart_context()->set_layout_y(ct_layout->m_manualLayout->m_y->m_val,*ct_layout->m_manualLayout->m_yMode->m_val);
if (ct_layout->m_manualLayout->m_w && ct_layout->m_manualLayout->m_wMode)
odf_context()->chart_context()->set_layout_w(ct_layout->m_manualLayout->m_w->m_val,*ct_layout->m_manualLayout->m_wMode->m_val);
if (ct_layout->m_manualLayout->m_h && ct_layout->m_manualLayout->m_hMode)
odf_context()->chart_context()->set_layout_h(ct_layout->m_manualLayout->m_h->m_val,*ct_layout->m_manualLayout->m_hMode->m_val);
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Title* ct_title)
{
if (ct_title == NULL)return;
odf_context()->chart_context()->start_title();
convert(ct_title->m_oSpPr.GetPointer());
convert(ct_title->m_oTxPr.GetPointer());
convert(ct_title->m_layout);
///////////////////////////////
convert(ct_title->m_tx);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Legend* ct_legend)
{
if (ct_legend == NULL)return;
odf_context()->chart_context()->start_legend();
convert(ct_legend->m_oSpPr.GetPointer());
convert(ct_legend->m_oTxPr.GetPointer());
convert(ct_legend->m_layout);
if ((ct_legend->m_legendPos) && (ct_legend->m_legendPos->m_val))
odf_context()->chart_context()->set_legend_position(*ct_legend->m_legendPos->m_val);
if (ct_legend->m_legendEntry.GetCount() > 0)
{
convert(ct_legend->m_legendEntry[0]); // odf
}
//////////////////////
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_LegendEntry* ct_legend)
{
if (ct_legend == NULL)return;
convert(ct_legend->m_oTxPr.GetPointer());
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PlotArea* ct_plotArea)
{
if (ct_plotArea == NULL)return;
odf_context()->chart_context()->start_plot_area();
convert(ct_plotArea->m_oSpPr.GetPointer());
convert(ct_plotArea->m_layout);
///////////////////////
for (long i=0; i< ct_plotArea->m_Items.GetCount(); i++)//
{
if (!ct_plotArea->m_ItemsElementName0[i]) continue;
switch(*ct_plotArea->m_ItemsElementName0[i])
{
case OOX::Spreadsheet::itemschoicetype5AREA3DCHART: convert((OOX::Spreadsheet::CT_Area3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5AREACHART: convert((OOX::Spreadsheet::CT_AreaChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BAR3DCHART: convert((OOX::Spreadsheet::CT_Bar3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BARCHART: convert((OOX::Spreadsheet::CT_BarChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5BUBBLECHART: convert((OOX::Spreadsheet::CT_BubbleChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5DOUGHNUTCHART: convert((OOX::Spreadsheet::CT_DoughnutChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5LINE3DCHART: convert((OOX::Spreadsheet::CT_Line3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5LINECHART: convert((OOX::Spreadsheet::CT_LineChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5OFPIECHART: convert((OOX::Spreadsheet::CT_OfPieChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5PIE3DCHART: convert((OOX::Spreadsheet::CT_Pie3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5PIECHART: convert((OOX::Spreadsheet::CT_PieChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5RADARCHART: convert((OOX::Spreadsheet::CT_RadarChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SCATTERCHART: convert((OOX::Spreadsheet::CT_ScatterChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5STOCKCHART: convert((OOX::Spreadsheet::CT_StockChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SURFACE3DCHART: convert((OOX::Spreadsheet::CT_Surface3DChart*) ct_plotArea->m_Items[i]);break;
case OOX::Spreadsheet::itemschoicetype5SURFACECHART: convert((OOX::Spreadsheet::CT_SurfaceChart*) ct_plotArea->m_Items[i]);break;
}
}
for (long i=0; i< ct_plotArea->m_Items.GetCount(); i++)
{
if (!ct_plotArea->m_ItemsElementName1[i]) continue;
switch(*ct_plotArea->m_ItemsElementName1[i])
{
case OOX::Spreadsheet::itemschoicetype6CATAX: convert((OOX::Spreadsheet::CT_CatAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6DATEAX: convert((OOX::Spreadsheet::CT_DateAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6SERAX: convert((OOX::Spreadsheet::CT_SerAx*)ct_plotArea->m_Items1[i]);break;
case OOX::Spreadsheet::itemschoicetype6VALAX: convert((OOX::Spreadsheet::CT_ValAx*)ct_plotArea->m_Items1[i]);break;
}
}
if (ct_plotArea->m_dTable)
{
}
odf_context()->chart_context()->end_element();
}
//////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_CatAx* ct_catAx)
{
if (ct_catAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_catAx->m_oSpPr.GetPointer());
convert(ct_catAx->m_oTxPr.GetPointer());
///////////////////
convert(ct_catAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_DateAx* ct_dateAx)
{
if (ct_dateAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_dateAx->m_oSpPr.GetPointer());
convert(ct_dateAx->m_oTxPr.GetPointer());
//////////////////
convert(ct_dateAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SerAx* ct_serAx)
{
if (ct_serAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_serAx->m_oSpPr.GetPointer());
convert(ct_serAx->m_oTxPr.GetPointer());
///////////////////////////
convert(ct_serAx->m_title);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ValAx* ct_valAx)
{
if (ct_valAx == NULL)return;
odf_context()->chart_context()->start_axis();
convert(ct_valAx->m_oSpPr.GetPointer());
convert(ct_valAx->m_oTxPr.GetPointer());
/////////////////////////////
convert(ct_valAx->m_title);
odf_context()->chart_context()->end_element();
}
////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_Area3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"area");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AreaChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"area");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Bar3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bar");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BarChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bar");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Line3DChart *chart)
{
odf_context()->chart_context()->set_type_chart(L"line");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_LineChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"line");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Pie3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PieChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_Surface3DChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"surface");
odf_context()->chart_context()->set_3D(true);
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SurfaceChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"surface");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BubbleChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"bubble");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_DoughnutChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"ring");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ScatterChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"scatter");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_RadarChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"radar");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_StockChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"stock");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_OfPieChart *chart)
{
if (chart == NULL)return;
odf_context()->chart_context()->set_type_chart(L"circle");
for (long i=0; i< chart->m_ser.GetCount(); i++)
{
convert(chart->m_ser[i]);
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AreaSer* ser)
{
odf_context()->chart_context()->start_series(L"area");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BubbleSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"bubble");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_xVal, 1);
convert(ser->m_yVal, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_SurfaceSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"surface");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_PieSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"circle");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_BarSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"bar");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_ScatterSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"scatter");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_xVal, 1);
convert(ser->m_yVal, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_RadarSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"radar");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_LineSer* ser)
{
if (ser == NULL)return;
odf_context()->chart_context()->start_series(L"line");
convert(ser->m_oSpPr.GetPointer());
convert(ser->m_cat, 1);
convert(ser->m_val, 2);
odf_context()->chart_context()->end_element();
}
void OoxConverter::convert(OOX::Spreadsheet::CT_AxDataSource* cat, int category)
{
if (cat == NULL)return;
if (cat->m_strRef)
{
if (cat->m_strRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*cat->m_strRef->m_f));
if (cat->m_strRef->m_strCache){}
}
else if (cat->m_numRef)
{
if (cat->m_numRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*cat->m_numRef->m_f));
if (cat->m_numRef->m_numCache){}
}
else if (cat->m_numLit)
{
}
else if (cat->m_strLit)
{
}
}
void OoxConverter::convert(OOX::Spreadsheet::CT_NumDataSource* val, int category)
{
if (val == NULL)return;
if (val->m_numRef)
{
if (val->m_numRef->m_f)odf_context()->chart_context()->set_series_formula(category,string2std_string(*val->m_numRef->m_f));
if (val->m_numRef->m_numCache){}
}
else if (val->m_numLit)
{
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
void OoxConverter::convert(OOX::Spreadsheet::CT_Surface* ct_surface, int type)
{
//floor, side, back
}
}
\ No newline at end of file
...@@ -3,10 +3,9 @@ ...@@ -3,10 +3,9 @@
namespace OOX{ namespace OOX{
namespace Spreadsheet{ namespace Spreadsheet{
nullable<OOX::Drawing::CShapeProperties> FromString_spPr(CString *spPr) void FromString_spPr(CString *spPr, nullable<OOX::Drawing::CShapeProperties> & oSpPr)
{ {
nullable<OOX::Drawing::CShapeProperties> oSpPr; XmlUtils::CXmlLiteReader oReaderLocal;
XmlUtils::CXmlLiteReader oShapeReader;
// xml- // xml-
CString xmlString = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>"; CString xmlString = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>";
xmlString += L"<c:chart "; xmlString += L"<c:chart ";
...@@ -18,16 +17,38 @@ namespace OOX{ ...@@ -18,16 +17,38 @@ namespace OOX{
xmlString += L">"; xmlString += L">";
xmlString += *spPr; xmlString += *spPr;
xmlString += L"</c:chart>"; xmlString += L"</c:chart>";
BOOL result =oShapeReader.FromString(xmlString); BOOL result =oReaderLocal.FromString(xmlString);
result = oShapeReader.ReadNextNode();//root ... skiping result = oReaderLocal.ReadNextNode();//root ... skiping
result = oShapeReader.ReadNextNode(); result = oReaderLocal.ReadNextNode();
CWCharWrapper sName = oShapeReader.GetName(); CWCharWrapper sName = oReaderLocal.GetName();
if (_T("c:spPr") == sName) if (_T("c:spPr") == sName)
oSpPr = oShapeReader; oSpPr = oReaderLocal;
return oSpPr; }
void FromString_txPr(CString *txPr, nullable<CTextProperties> & oTxPr)
{
XmlUtils::CXmlLiteReader oReaderLocal;
// xml-
CString xmlString = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>";
xmlString += L"<c:txPr ";
xmlString += L"xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" ";
xmlString += L"xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" ";
xmlString += L"xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\" ";
xmlString += L"xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" ";
xmlString += L"xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" ";
xmlString += L">";
xmlString += *txPr;
xmlString += L"</c:txPr>";
BOOL result =oReaderLocal.FromString(xmlString);
result = oReaderLocal.ReadNextNode();//root ... skiping
CWCharWrapper sName = oReaderLocal.GetName();
if (_T("c:txPr") == sName)
oTxPr = oReaderLocal;
} }
bool FromXml_ST_PageSetupOrientation(CString& val, ST_PageSetupOrientation& eOut) bool FromXml_ST_PageSetupOrientation(CString& val, ST_PageSetupOrientation& eOut)
{ {
...@@ -1097,7 +1118,7 @@ namespace OOX{ ...@@ -1097,7 +1118,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -1105,6 +1126,7 @@ namespace OOX{ ...@@ -1105,6 +1126,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("externalData") == sName) else if(_T("externalData") == sName)
{ {
...@@ -2183,6 +2205,7 @@ namespace OOX{ ...@@ -2183,6 +2205,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -2427,7 +2450,7 @@ namespace OOX{ ...@@ -2427,7 +2450,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -2435,6 +2458,7 @@ namespace OOX{ ...@@ -2435,6 +2458,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -2877,7 +2901,7 @@ namespace OOX{ ...@@ -2877,7 +2901,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -2885,6 +2909,7 @@ namespace OOX{ ...@@ -2885,6 +2909,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -3073,7 +3098,7 @@ namespace OOX{ ...@@ -3073,7 +3098,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -3081,6 +3106,7 @@ namespace OOX{ ...@@ -3081,6 +3106,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("crossAx") == sName) else if(_T("crossAx") == sName)
{ {
...@@ -3438,7 +3464,7 @@ namespace OOX{ ...@@ -3438,7 +3464,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
} }
} }
...@@ -3510,7 +3536,7 @@ namespace OOX{ ...@@ -3510,7 +3536,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -3518,6 +3544,7 @@ namespace OOX{ ...@@ -3518,6 +3544,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -3585,6 +3612,29 @@ namespace OOX{ ...@@ -3585,6 +3612,29 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_rich = pNewElem; m_rich = pNewElem;
{
nullable<OOX::Drawing::CShapeProperties> oSpPr;
XmlUtils::CXmlLiteReader oReaderLocal;
// xml-
CString xmlString = L"<?xml version=\"1.0\" encoding=\"UTF-16\"?>";
xmlString += L"<c:rich ";
xmlString += L"xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" ";
xmlString += L"xmlns:a14=\"http://schemas.microsoft.com/office/drawing/2010/main\" ";
xmlString += L"xmlns:xdr=\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\" ";
xmlString += L"xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" ";
xmlString += L"xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" ";
xmlString += L">";
xmlString += *m_rich;
xmlString += L"</c:rich>";
BOOL result =oReaderLocal.FromString(xmlString);
result = oReaderLocal.ReadNextNode();//root ... skiping
CWCharWrapper sName = oReaderLocal.GetName();
if (_T("c:rich") == sName)
m_oRich = oReaderLocal;
}
} }
else if(_T("strRef") == sName) else if(_T("strRef") == sName)
{ {
...@@ -4242,7 +4292,7 @@ namespace OOX{ ...@@ -4242,7 +4292,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -4250,6 +4300,7 @@ namespace OOX{ ...@@ -4250,6 +4300,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("crossAx") == sName) else if(_T("crossAx") == sName)
{ {
...@@ -4700,7 +4751,7 @@ namespace OOX{ ...@@ -4700,7 +4751,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -4708,6 +4759,7 @@ namespace OOX{ ...@@ -4708,6 +4759,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("crossAx") == sName) else if(_T("crossAx") == sName)
{ {
...@@ -4915,7 +4967,7 @@ namespace OOX{ ...@@ -4915,7 +4967,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -4923,6 +4975,7 @@ namespace OOX{ ...@@ -4923,6 +4975,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
} }
} }
...@@ -5259,7 +5312,7 @@ namespace OOX{ ...@@ -5259,7 +5312,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -5267,6 +5320,7 @@ namespace OOX{ ...@@ -5267,6 +5320,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("crossAx") == sName) else if(_T("crossAx") == sName)
{ {
...@@ -5576,7 +5630,7 @@ namespace OOX{ ...@@ -5576,7 +5630,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("invertIfNegative") == sName) else if(_T("invertIfNegative") == sName)
{ {
...@@ -5848,7 +5902,7 @@ namespace OOX{ ...@@ -5848,7 +5902,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("pictureOptions") == sName) else if(_T("pictureOptions") == sName)
{ {
...@@ -5948,7 +6002,7 @@ namespace OOX{ ...@@ -5948,7 +6002,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -7026,7 +7080,7 @@ namespace OOX{ ...@@ -7026,7 +7080,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("trendlineType") == sName) else if(_T("trendlineType") == sName)
{ {
...@@ -7338,7 +7392,7 @@ namespace OOX{ ...@@ -7338,7 +7392,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -7346,6 +7400,7 @@ namespace OOX{ ...@@ -7346,6 +7400,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -7476,7 +7531,7 @@ namespace OOX{ ...@@ -7476,7 +7531,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -8563,7 +8618,7 @@ namespace OOX{ ...@@ -8563,7 +8618,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("cat") == sName) else if(_T("cat") == sName)
{ {
...@@ -8653,7 +8708,7 @@ namespace OOX{ ...@@ -8653,7 +8708,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
} }
} }
...@@ -9183,7 +9238,7 @@ namespace OOX{ ...@@ -9183,7 +9238,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("explosion") == sName) else if(_T("explosion") == sName)
{ {
...@@ -9646,7 +9701,7 @@ namespace OOX{ ...@@ -9646,7 +9701,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("invertIfNegative") == sName) else if(_T("invertIfNegative") == sName)
{ {
...@@ -10476,7 +10531,7 @@ namespace OOX{ ...@@ -10476,7 +10531,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("marker") == sName) else if(_T("marker") == sName)
{ {
...@@ -10827,7 +10882,7 @@ namespace OOX{ ...@@ -10827,7 +10882,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("marker") == sName) else if(_T("marker") == sName)
{ {
...@@ -11272,7 +11327,7 @@ namespace OOX{ ...@@ -11272,7 +11327,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("marker") == sName) else if(_T("marker") == sName)
{ {
...@@ -11497,7 +11552,7 @@ namespace OOX{ ...@@ -11497,7 +11552,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
} }
} }
...@@ -12077,7 +12132,7 @@ namespace OOX{ ...@@ -12077,7 +12132,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("pictureOptions") == sName) else if(_T("pictureOptions") == sName)
{ {
...@@ -12556,7 +12611,7 @@ namespace OOX{ ...@@ -12556,7 +12611,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("extLst") == sName) else if(_T("extLst") == sName)
{ {
...@@ -12886,7 +12941,7 @@ namespace OOX{ ...@@ -12886,7 +12941,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("pictureOptions") == sName) else if(_T("pictureOptions") == sName)
{ {
...@@ -13300,7 +13355,7 @@ namespace OOX{ ...@@ -13300,7 +13355,7 @@ namespace OOX{
CString sVal = oReader.GetOuterXml(); CString sVal = oReader.GetOuterXml();
*pNewElem = sVal; *pNewElem = sVal;
m_spPr = pNewElem; m_spPr = pNewElem;
m_oSpPr = FromString_spPr(m_spPr); FromString_spPr(m_spPr, m_oSpPr);
} }
else if(_T("txPr") == sName) else if(_T("txPr") == sName)
{ {
...@@ -13308,6 +13363,7 @@ namespace OOX{ ...@@ -13308,6 +13363,7 @@ namespace OOX{
CString sVal = oReader.GetInnerXml(); CString sVal = oReader.GetInnerXml();
*pNewElem = sVal; *pNewElem = sVal;
m_txPr = pNewElem; m_txPr = pNewElem;
FromString_txPr(m_txPr, m_oTxPr);
} }
else if(_T("marker") == sName) else if(_T("marker") == sName)
{ {
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
#pragma once #pragma once
#ifndef OOX_CHARTGEN_FILE_INCLUDE_H_ #ifndef OOX_CHARTGEN_FILE_INCLUDE_H_
#define OOX_CHARTGEN_FILE_INCLUDE_H_ #define OOX_CHARTGEN_FILE_INCLUDE_H_
#include "../CommonInclude.h" #include "../CommonInclude.h"
namespace OOX{ namespace OOX{
namespace Spreadsheet{ namespace Spreadsheet{
enum ST_PageSetupOrientation enum ST_PageSetupOrientation
...@@ -417,6 +419,8 @@ namespace OOX{ ...@@ -417,6 +419,8 @@ namespace OOX{
class AlternateContent; class AlternateContent;
class AlternateContentChoice; class AlternateContentChoice;
class AlternateContentFallback; class AlternateContentFallback;
class CTextProperties;
///////////////////////////////////////////////////
class CT_extLst class CT_extLst
{ {
public: public:
...@@ -450,10 +454,10 @@ namespace OOX{ ...@@ -450,10 +454,10 @@ namespace OOX{
//Member //Member
CT_Chart* m_chart; CT_Chart* m_chart;
//Member //Member
CString* m_spPr; CString *m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CString* m_txPr; nullable<CTextProperties> m_oTxPr;
//Member //Member
CT_ExternalData* m_externalData; CT_ExternalData* m_externalData;
//Member //Member
...@@ -616,8 +620,8 @@ namespace OOX{ ...@@ -616,8 +620,8 @@ namespace OOX{
//Member //Member
CT_Boolean* m_delete; CT_Boolean* m_delete;
//Member //Member
CString* m_txPr; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CT_extLst* m_extLst; CT_extLst* m_extLst;
CT_LegendEntry(); CT_LegendEntry();
~CT_LegendEntry(); ~CT_LegendEntry();
...@@ -663,21 +667,16 @@ namespace OOX{ ...@@ -663,21 +667,16 @@ namespace OOX{
class CT_Legend class CT_Legend
{ {
public: public:
//Member CT_LegendPos *m_legendPos;
CT_LegendPos* m_legendPos; CAtlArray<CT_LegendEntry*> m_legendEntry;
//Member CT_Layout *m_layout;
CAtlArray<CT_LegendEntry*> m_legendEntry; CT_Boolean *m_overlay;
//Member CString *m_spPr;
CT_Layout* m_layout; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CT_Boolean* m_overlay; nullable<CTextProperties> m_oTxPr;
//Member CT_extLst * m_extLst;
CString* m_spPr; /*--------------------------------------------------*/
nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member
CString* m_txPr;
//Member
CT_extLst* m_extLst;
CT_Legend(); CT_Legend();
~CT_Legend(); ~CT_Legend();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -770,12 +769,10 @@ namespace OOX{ ...@@ -770,12 +769,10 @@ namespace OOX{
CT_Boolean* m_showOutline; CT_Boolean* m_showOutline;
//Member //Member
CT_Boolean* m_showKeys; CT_Boolean* m_showKeys;
//Member CString *m_spPr;
CString* m_spPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CString* m_txPr;
//Member
CT_extLst* m_extLst; CT_extLst* m_extLst;
CT_DTable(); CT_DTable();
~CT_DTable(); ~CT_DTable();
...@@ -786,45 +783,28 @@ namespace OOX{ ...@@ -786,45 +783,28 @@ namespace OOX{
class CT_SerAx class CT_SerAx
{ {
public: public:
//Member CT_UnsignedInt *m_axId;
CT_UnsignedInt* m_axId; CT_Scaling *m_scaling;
//Member CT_Boolean *m_delete;
CT_Scaling* m_scaling; CT_AxPos *m_axPos;
//Member CT_ChartLines *m_majorGridlines;
CT_Boolean* m_delete; CT_ChartLines *m_minorGridlines;
//Member CT_Title *m_title;
CT_AxPos* m_axPos; CT_NumFmt *m_numFmt;
//Member CT_TickMark *m_majorTickMark;
CT_ChartLines* m_majorGridlines; CT_TickMark *m_minorTickMark;
//Member CT_TickLblPos *m_tickLblPos;
CT_ChartLines* m_minorGridlines; CString *m_spPr;
//Member nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
CT_Title* m_title; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CT_NumFmt* m_numFmt; CT_UnsignedInt *m_crossAx;
//Member CT_Crosses *m_crosses;
CT_TickMark* m_majorTickMark; CT_Double *m_crossesAt;
//Member CT_Skip *m_tickLblSkip;
CT_TickMark* m_minorTickMark; CT_Skip *m_tickMarkSkip;
//Member CT_extLst *m_extLst;
CT_TickLblPos* m_tickLblPos; /*--------------------------------------------------------------*/
//Member
CString* m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member
CString* m_txPr;
//Member
CT_UnsignedInt* m_crossAx;
//Member
CT_Crosses* m_crosses;
//Member
CT_Double* m_crossesAt;
//Member
CT_Skip* m_tickLblSkip;
//Member
CT_Skip* m_tickMarkSkip;
//Member
CT_extLst* m_extLst;
CT_SerAx(); CT_SerAx();
~CT_SerAx(); ~CT_SerAx();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -854,7 +834,7 @@ namespace OOX{ ...@@ -854,7 +834,7 @@ namespace OOX{
{ {
public: public:
//Attribute //Attribute
double* m_val; double * m_val;
CT_LogBase(); CT_LogBase();
~CT_LogBase(); ~CT_LogBase();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -865,7 +845,7 @@ namespace OOX{ ...@@ -865,7 +845,7 @@ namespace OOX{
{ {
public: public:
//Attribute //Attribute
ST_Orientation* m_val; ST_Orientation * m_val;
CT_Orientation(); CT_Orientation();
~CT_Orientation(); ~CT_Orientation();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -876,7 +856,7 @@ namespace OOX{ ...@@ -876,7 +856,7 @@ namespace OOX{
{ {
public: public:
//Attribute //Attribute
ST_AxPos* m_val; ST_AxPos * m_val;
CT_AxPos(); CT_AxPos();
~CT_AxPos(); ~CT_AxPos();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -886,9 +866,9 @@ namespace OOX{ ...@@ -886,9 +866,9 @@ namespace OOX{
class CT_ChartLines class CT_ChartLines
{ {
public: public:
//Member CString *m_spPr;
CString* m_spPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; /*--------------------------------------------------------------*/
CT_ChartLines(); CT_ChartLines();
~CT_ChartLines(); ~CT_ChartLines();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -898,32 +878,143 @@ namespace OOX{ ...@@ -898,32 +878,143 @@ namespace OOX{
class CT_Title class CT_Title
{ {
public: public:
//Member CT_Tx *m_tx;
CT_Tx* m_tx; CT_Layout *m_layout;
//Member CT_Boolean *m_overlay;
CT_Layout* m_layout; CString *m_spPr;
//Member nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
CT_Boolean* m_overlay; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CString* m_spPr; CT_extLst *m_extLst;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; /*--------------------------------------------------------------*/
//Member
CString* m_txPr;
//Member
CT_extLst* m_extLst;
CT_Title(); CT_Title();
~CT_Title(); ~CT_Title();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
void toXML(CString& sNodeName, XmlUtils::CStringWriter& writer) const; void toXML(CString& sNodeName, XmlUtils::CStringWriter& writer) const;
EElementType getType(); EElementType getType();
}; };
//--------------------------------------------------------------------------------
// 21.2.2.156 rich (Rich Text)
//--------------------------------------------------------------------------------
class CRichText : public WritingElementWithChilds<Drawing::CParagraph>
{
public:
WritingElementSpreadsheet_AdditionConstructors(CRichText)
CRichText()
{
}
virtual ~CRichText()
{
}
public:
virtual CString toXML() const
{
return _T("");
}
virtual void toXML(XmlUtils::CStringWriter& writer) const
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
CWCharWrapper sName = oReader.GetName();
if ( _T("a:bodyPr") == sName )
m_oBodyPr = oReader;
else if ( _T("a:p") == sName )
m_arrItems.Add( new Drawing::CParagraph( oReader ));
}
}
virtual EElementType getType () const
{
return et_ChartRichText;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_End ( oReader )
}
public:
nullable<OOX::Drawing::CTextBodyProperties> m_oBodyPr;
//nullable<OOX::Drawing::CTextListStyle> m_oLstStyle; - not supported.
};
//--------------------------------------------------------------------------------
// 21.2.2.216 txPr (Text Properties)
//--------------------------------------------------------------------------------
class CTextProperties : public WritingElementWithChilds<Drawing::CParagraph>
{
public:
WritingElementSpreadsheet_AdditionConstructors(CTextProperties)
CTextProperties()
{
}
virtual ~CTextProperties()
{
}
public:
virtual CString toXML() const
{
return _T("");
}
virtual void toXML(XmlUtils::CStringWriter& writer) const
{
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while( oReader.ReadNextSiblingNode( nCurDepth ) )
{
CWCharWrapper sName = oReader.GetName();
if ( _T("a:bodyPr") == sName )
m_oBodyPr = oReader;
else if ( _T("a:p") == sName )
m_arrItems.Add( new Drawing::CParagraph( oReader ));
}
}
virtual EElementType getType () const
{
return et_ChartTextProperties;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start ( oReader )
WritingElement_ReadAttributes_End ( oReader )
}
public:
nullable<OOX::Drawing::CTextBodyProperties> m_oBodyPr;
//nullable<OOX::Drawing::CTextListStyle> m_oLstStyle; - not supported.
};
//--------------------------------------------------------------------------------
// 21.2.2.214 tx (Chart Text)
//--------------------------------------------------------------------------------
class CT_Tx class CT_Tx
{ {
public: public:
//Member CString *m_rich;
CString* m_rich; nullable<CRichText> m_oRich;
//Member CT_StrRef *m_strRef;
CT_StrRef* m_strRef; /*--------------------------------------------------------------*/
CT_Tx(); CT_Tx();
~CT_Tx(); ~CT_Tx();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -933,12 +1024,10 @@ namespace OOX{ ...@@ -933,12 +1024,10 @@ namespace OOX{
class CT_StrRef class CT_StrRef
{ {
public: public:
//Member CString * m_f;
CString* m_f; CT_StrData * m_strCache;
//Member CT_extLst * m_extLst;
CT_StrData* m_strCache; /*--------------------------------------------------------------*/
//Member
CT_extLst* m_extLst;
CT_StrRef(); CT_StrRef();
~CT_StrRef(); ~CT_StrRef();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -1068,9 +1157,9 @@ namespace OOX{ ...@@ -1068,9 +1157,9 @@ namespace OOX{
CT_TickLblPos* m_tickLblPos; CT_TickLblPos* m_tickLblPos;
//Member //Member
CString* m_spPr; CString* m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CString* m_txPr; nullable<CTextProperties> m_oTxPr;
//Member //Member
CT_UnsignedInt* m_crossAx; CT_UnsignedInt* m_crossAx;
//Member //Member
...@@ -1158,10 +1247,10 @@ namespace OOX{ ...@@ -1158,10 +1247,10 @@ namespace OOX{
//Member //Member
CT_TickLblPos* m_tickLblPos; CT_TickLblPos* m_tickLblPos;
//Member //Member
CString* m_spPr; CString *m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CString* m_txPr; nullable<CTextProperties> m_oTxPr;
//Member //Member
CT_UnsignedInt* m_crossAx; CT_UnsignedInt* m_crossAx;
//Member //Member
...@@ -1196,10 +1285,10 @@ namespace OOX{ ...@@ -1196,10 +1285,10 @@ namespace OOX{
//Member //Member
CT_Tx* m_tx; CT_Tx* m_tx;
//Member //Member
CString* m_spPr; CString *m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CString* m_txPr; nullable<CTextProperties> m_oTxPr;
CT_DispUnitsLbl(); CT_DispUnitsLbl();
~CT_DispUnitsLbl(); ~CT_DispUnitsLbl();
void fromXML(XmlUtils::CXmlLiteReader& oReader); void fromXML(XmlUtils::CXmlLiteReader& oReader);
...@@ -1271,10 +1360,10 @@ namespace OOX{ ...@@ -1271,10 +1360,10 @@ namespace OOX{
//Member //Member
CT_TickLblPos* m_tickLblPos; CT_TickLblPos* m_tickLblPos;
//Member //Member
CString* m_spPr; CString *m_spPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
//Member CString *m_txPr;
CString* m_txPr; nullable<CTextProperties> m_oTxPr;
//Member //Member
CT_UnsignedInt* m_crossAx; CT_UnsignedInt* m_crossAx;
//Member //Member
...@@ -1600,12 +1689,10 @@ namespace OOX{ ...@@ -1600,12 +1689,10 @@ namespace OOX{
CT_Tx* m_tx; CT_Tx* m_tx;
//Member //Member
CT_NumFmt* m_numFmt; CT_NumFmt* m_numFmt;
//Member CString *m_spPr;
CString* m_spPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CString* m_txPr;
//Member
CT_extLst* m_extLst; CT_extLst* m_extLst;
CT_TrendlineLbl(); CT_TrendlineLbl();
~CT_TrendlineLbl(); ~CT_TrendlineLbl();
...@@ -2750,11 +2837,10 @@ namespace OOX{ ...@@ -2750,11 +2837,10 @@ namespace OOX{
public: public:
//Member //Member
CT_UnsignedInt* m_idx; CT_UnsignedInt* m_idx;
//Member CString *m_spPr;
CString* m_spPr; nullable<OOX::Drawing::CShapeProperties> m_oSpPr;
nullable<OOX::Drawing::CShapeProperties> m_oSpPr; CString *m_txPr;
//Member nullable<CTextProperties> m_oTxPr;
CString* m_txPr;
//Member //Member
CT_Marker* m_marker; CT_Marker* m_marker;
//Member //Member
......
...@@ -10,7 +10,7 @@ namespace OOX ...@@ -10,7 +10,7 @@ namespace OOX
namespace Spreadsheet namespace Spreadsheet
{ {
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
// 20.5.2.34 txBody (Shape Text Body) // 20.5.2.34 txBody (Shape Text Body)
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
class CTextBody : public WritingElementWithChilds<Drawing::CParagraph> class CTextBody : public WritingElementWithChilds<Drawing::CParagraph>
{ {
......
...@@ -314,7 +314,8 @@ namespace Spreadsheet ...@@ -314,7 +314,8 @@ namespace Spreadsheet
et_GraphicFrameNonVisual, et_GraphicFrameNonVisual,
et_ConnectionNonVisualGraphicFrameProps, et_ConnectionNonVisualGraphicFrameProps,
et_GraphicChart, et_GraphicChart,
et_ChartTextProperties,
et_ChartRichText
}; };
class WritingElement class WritingElement
......
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