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

(1.2.0.58): ASCOfficeOdfFileW

24591

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@56498 954022d7-b5bf-4e40-9824-e11837661b57
parent e4941079
...@@ -26,14 +26,27 @@ public: ...@@ -26,14 +26,27 @@ public:
odf_drawing_context(odf_conversion_context *odf_context); odf_drawing_context(odf_conversion_context *odf_context);
~odf_drawing_context(); ~odf_drawing_context();
void set_drawings_rect(double x_pt, double y_pt, double width_pt, double height_pt);
void clear();
void set_styles_context(odf_style_context* styles_context);// embedded void set_styles_context(odf_style_context* styles_context);// embedded
///////////////////////////////////////////////////////////////////////////////////////////////////////////
office_element_ptr & get_current_style_element() ; office_element_ptr & get_current_style_element() ;
office_element_ptr & get_current_element(); office_element_ptr & get_current_element();
void start_drawing(); void start_drawing();
void end_drawing(); void end_drawing();
void start_group(std::wstring name, int id);
void set_group_size( double width_pt, double height_pt);
void set_group_position(double x_pt, double y_pt);
void set_group_flip_H(bool bVal);
void set_group_flip_V(bool bVal);
void set_group_rotate(int iVal);
void end_group();
void start_shape(int type); void start_shape(int type);
void end_shape(); void end_shape();
...@@ -60,7 +73,6 @@ public: ...@@ -60,7 +73,6 @@ public:
/////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////
void set_rect(double x_pt, double y_pt, double width_pt, double height_pt);
void set_size( double width_pt, double height_pt); void set_size( double width_pt, double height_pt);
void set_position(double x_pt, double y_pt); void set_position(double x_pt, double y_pt);
void get_size( double & width_pt, double & height_pt); void get_size( double & width_pt, double & height_pt);
......
...@@ -438,7 +438,13 @@ void ods_conversion_context::end_cell_text() ...@@ -438,7 +438,13 @@ void ods_conversion_context::end_cell_text()
current_text_context_->end_paragraph(); current_text_context_->end_paragraph();
} }
} }
void ods_conversion_context::start_drawings()
{
}
void ods_conversion_context::end_drawings()
{
current_table().drawing_context()->clear();
}
void ods_conversion_context::start_image(std::wstring & image_file_name) void ods_conversion_context::start_image(std::wstring & image_file_name)
{ {
std::wstring odf_ref_name ; std::wstring odf_ref_name ;
......
...@@ -66,11 +66,10 @@ public: ...@@ -66,11 +66,10 @@ public:
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_;}
void start_drawing() {drawing_context()->start_drawing();} void start_drawings();
void end_drawing() {drawing_context()->end_drawing();} void end_drawings();
void start_image(std::wstring & image_file_name); void start_image(std::wstring & image_file_name);
void end_image(){drawing_context()->end_image();}
double convert_symbol_width(double val); double convert_symbol_width(double val);
......
...@@ -209,7 +209,7 @@ void ods_table_state::set_column_default_cell_style(std::wstring & style_name) ...@@ -209,7 +209,7 @@ void ods_table_state::set_column_default_cell_style(std::wstring & style_name)
column->table_table_column_attlist_.table_default_cell_style_name_ = style_ref(style_name); column->table_table_column_attlist_.table_default_cell_style_name_ = style_ref(style_name);
} }
void ods_table_state::set_column_width(double width)//cm, pt ??? void ods_table_state::set_column_width(double width)//pt
{ {
odf::style* style = dynamic_cast<odf::style*>(columns_.back().style_elm.get()); odf::style* style = dynamic_cast<odf::style*>(columns_.back().style_elm.get());
if (!style)return; if (!style)return;
......
...@@ -113,7 +113,36 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown) ...@@ -113,7 +113,36 @@ void OoxConverter::convert(OOX::WritingElement *oox_unknown)
} }
} }
} }
void OoxConverter::convert(OOX::Drawing::CGroupShapeProperties * oox_group_spPr)
{
if (!oox_group_spPr) return;
if (oox_group_spPr->m_oXfrm.IsInit()) //CTransform2D
{
if (oox_group_spPr->m_oXfrm->m_oChOff.IsInit() && oox_group_spPr->m_oXfrm->m_oOff.IsInit())
{
double x =oox_group_spPr->m_oXfrm->m_oOff->m_oX.GetValue()/ oox_group_spPr->m_oXfrm->m_oChOff->m_oX.GetValue();
double y =oox_group_spPr->m_oXfrm->m_oOff->m_oY.GetValue()/ oox_group_spPr->m_oXfrm->m_oChOff->m_oY.GetValue();
//odf_context()->drawing_context()->set_group_position_delata(x, y);
}
if (oox_group_spPr->m_oXfrm->m_oExt.IsInit() && oox_group_spPr->m_oXfrm->m_oChExt.IsInit())
{
double x =oox_group_spPr->m_oXfrm->m_oExt->m_oCx.GetValue()/ oox_group_spPr->m_oXfrm->m_oChExt->m_oCx.GetValue();
double y =oox_group_spPr->m_oXfrm->m_oExt->m_oCy.GetValue()/ oox_group_spPr->m_oXfrm->m_oChExt->m_oCy.GetValue();
//odf_context()->drawing_context()->set_group_size_koeff(x, y);
}
//???
//if (oox_group_spPr->m_oXfrm->m_oFlipH.GetValue() == SimpleTypes::onoffTrue)
// odf_context()->drawing_context()->set_group_flip_H(true);
//if (oox_group_spPr->m_oXfrm->m_oFlipV.GetValue() == SimpleTypes::onoffTrue)
// odf_context()->drawing_context()->set_group_flip_V(true);
if (oox_group_spPr->m_oXfrm->m_oRot.GetValue() > 0)
odf_context()->drawing_context()->set_group_rotate(oox_group_spPr->m_oXfrm->m_oRot.GetValue());
}
}
void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr) void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr)
{ {
if (!oox_spPr) return; if (!oox_spPr) return;
...@@ -156,16 +185,16 @@ void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr) ...@@ -156,16 +185,16 @@ void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr)
if (oox_spPr->m_oXfrm.IsInit()) //CTransform2D if (oox_spPr->m_oXfrm.IsInit()) //CTransform2D
{ {
//if (oox_spPr->m_oXfrm->m_oOff.IsInit()) if (oox_spPr->m_oXfrm->m_oOff.IsInit())
//{ {
// odf_context()->drawing_context()->set_position(oox_spPr->m_oXfrm->m_oOff->m_oX.GetValue(), odf_context()->drawing_context()->set_position(oox_spPr->m_oXfrm->m_oOff->m_oX.GetValue(),
// oox_spPr->m_oXfrm->m_oOff->m_oY.GetValue()); oox_spPr->m_oXfrm->m_oOff->m_oY.GetValue());
//} }
//if (oox_spPr->m_oXfrm->m_oExt.IsInit()) if (oox_spPr->m_oXfrm->m_oExt.IsInit())
//{ {
// odf_context()->drawing_context()->set_size( oox_spPr->m_oXfrm->m_oExt->m_oCx.ToPoints(), odf_context()->drawing_context()->set_size( oox_spPr->m_oXfrm->m_oExt->m_oCx.ToPoints(),
// oox_spPr->m_oXfrm->m_oExt->m_oCy.ToPoints()); oox_spPr->m_oXfrm->m_oExt->m_oCy.ToPoints());
//} }
if (oox_spPr->m_oXfrm->m_oFlipH.GetValue() == SimpleTypes::onoffTrue) if (oox_spPr->m_oXfrm->m_oFlipH.GetValue() == SimpleTypes::onoffTrue)
odf_context()->drawing_context()->set_flip_H(true); odf_context()->drawing_context()->set_flip_H(true);
if (oox_spPr->m_oXfrm->m_oFlipV.GetValue() == SimpleTypes::onoffTrue) if (oox_spPr->m_oXfrm->m_oFlipV.GetValue() == SimpleTypes::onoffTrue)
......
...@@ -30,6 +30,7 @@ namespace OOX ...@@ -30,6 +30,7 @@ namespace OOX
{ {
class CNonVisualDrawingProps; class CNonVisualDrawingProps;
class CShapeProperties; class CShapeProperties;
class CGroupShapeProperties;
class CCustomGeometry2D; class CCustomGeometry2D;
class CPresetGeometry2D; class CPresetGeometry2D;
class CBlipFillProperties; class CBlipFillProperties;
...@@ -228,6 +229,7 @@ public: ...@@ -228,6 +229,7 @@ public:
void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr); void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr);
void convert(OOX::Drawing::CShapeProperties *oox_spPr); void convert(OOX::Drawing::CShapeProperties *oox_spPr);
void convert(OOX::Drawing::CGroupShapeProperties *oox_groupSpPr);
void convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr); void convert(OOX::Drawing::CTextBodyProperties *oox_bodyPr);
void convert(OOX::Drawing::CCustomGeometry2D *oox_cust_geom); void convert(OOX::Drawing::CCustomGeometry2D *oox_cust_geom);
......
...@@ -42,6 +42,7 @@ namespace OOX ...@@ -42,6 +42,7 @@ namespace OOX
class CPic; class CPic;
class CShape; class CShape;
class CConnShape; class CConnShape;
class CGroupShape;
class CCommentItem; class CCommentItem;
class CGraphicFrame; class CGraphicFrame;
class CDefinedName; class CDefinedName;
...@@ -159,6 +160,7 @@ namespace Oox2Odf ...@@ -159,6 +160,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CShape *oox_shape); void convert(OOX::Spreadsheet::CShape *oox_shape);
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape); void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
void convert(OOX::Spreadsheet::CGraphicFrame *oox_graphic_frame); void convert(OOX::Spreadsheet::CGraphicFrame *oox_graphic_frame);
void convert(OOX::Spreadsheet::CGroupShape *oox_group_shape);
void convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_fmt); void convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_fmt);
void convert(OOX::Spreadsheet::CConditionalFormattingRule *oox_cond_rule); void convert(OOX::Spreadsheet::CConditionalFormattingRule *oox_cond_rule);
......
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
//1 //1
//2 //2
//0 //0
//56 //59
#define INTVER 1,2,0,56 #define INTVER 1,2,0,59
#define STRVER "1,2,0,56\0" #define STRVER "1,2,0,59\0"
...@@ -1047,6 +1047,152 @@ namespace OOX ...@@ -1047,6 +1047,152 @@ namespace OOX
}; };
//--------------------------------------------------------------------------------
// 20.5.2.18 grpSpPr (Group Shape Properties)
//--------------------------------------------------------------------------------
class CGroupShapeProperties : public WritingElement
{
public:
WritingElement_AdditionConstructors(CGroupShapeProperties)
CGroupShapeProperties()
{
m_eType = et_Unknown;
m_eFillType = filltypeUnknown;
m_eEffectType = effecttypeUnknown;
}
virtual ~CGroupShapeProperties()
{
}
public:
virtual CString toXML() const
{
return _T("");
}
virtual void toXML(XmlUtils::CStringWriter& writer) const
{
}
virtual void fromXML(XmlUtils::CXmlNode& oNode)
{
m_eType = et_Unknown;
m_eFillType = filltypeUnknown;
m_eEffectType = effecttypeUnknown;
// TO DO: CShapeProperties::fromXML(XmlUtils::CXmlNode& oNode)
}
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
{
m_eType = et_Unknown;
m_eFillType = filltypeUnknown;
m_eEffectType = effecttypeUnknown;
CWCharWrapper sName = oReader.GetName();
if ( _T("a:grpSpPr") == sName )
m_eType = et_a_groupSpPr;
else if ( _T("xdr:grpSpPr") == sName )
m_eType = et_xdr_groupSpPr;
else
return;
ReadAttributes( oReader );
if ( oReader.IsEmptyNode() )
return;
int nCurDepth = oReader.GetDepth();
while ( oReader.ReadNextSiblingNode( nCurDepth ) )
{
sName = oReader.GetName();
if ( _T("a:blipFill") == sName )
{
m_oBlipFill = oReader;
m_eFillType = filltypeBlip;
}
else if ( _T("a:effectDag") == sName )
{
m_oEffectDag = oReader;
m_eEffectType = effecttypeDag;
}
else if ( _T("a:effectLst") == sName )
{
m_oEffectList = oReader;
m_eEffectType = effecttypeLst;
}
else if ( _T("a:extLst") == sName )
m_oExtLst = oReader;
else if ( _T("a:gradFill") == sName )
{
m_oGradFill = oReader;
m_eFillType = filltypeGradient;
}
else if ( _T("a:grpFill") == sName )
{
m_oGrpFill = oReader;
m_eFillType = filltypeGroup;
}
else if ( _T("a:noFill") == sName )
{
m_oNoFill = oReader;
m_eFillType = filltypeNo;
}
else if ( _T("a:pattFill") == sName )
{
m_oPattFill = oReader;
m_eFillType = filltypePattern;
}
else if ( _T("a:scene3d") == sName )
m_oScene3D = oReader;
else if ( _T("a:solidFill") == sName )
{
m_oSolidFill = oReader;
m_eFillType = filltypeSolid;
}
else if ( _T("a:xfrm") == sName )
m_oXfrm = oReader;
}
}
virtual EElementType getType () const
{
return m_eType;
}
EFillType GetFillType() const
{
return m_eFillType;
}
EEffectType GetEffectType() const
{
return m_eEffectType;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_End( oReader )
}
public:
EElementType m_eType; //
// Childs
EFillType m_eFillType; //
nullable<OOX::Drawing::CBlipFillProperties> m_oBlipFill;
nullable<OOX::Drawing::CGradientFillProperties> m_oGradFill;
nullable<OOX::Drawing::CGroupFillProperties> m_oGrpFill;
nullable<OOX::Drawing::CNoFillProperties> m_oNoFill;
nullable<OOX::Drawing::CPatternFillProperties> m_oPattFill;
nullable<OOX::Drawing::CSolidColorFillProperties> m_oSolidFill;
EEffectType m_eEffectType; //
nullable<OOX::Drawing::CEffectContainer> m_oEffectDag;
nullable<OOX::Drawing::CEffectList> m_oEffectList;
nullable<OOX::Drawing::COfficeArtExtensionList> m_oExtLst;
nullable<OOX::Drawing::CScene3D> m_oScene3D;
nullable<OOX::Drawing::CGroupTransform2D> m_oXfrm;
};
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
// CShapeStyle 20.1.2.2.37 // CShapeStyle 20.1.2.2.37
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
......
...@@ -133,7 +133,7 @@ namespace OOX ...@@ -133,7 +133,7 @@ namespace OOX
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oChExt; nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oChExt;
nullable<ComplexTypes::Drawing::CPoint2D> m_oChOff; nullable<ComplexTypes::Drawing::CPoint2D> m_oChOff;
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oExt; nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oExt;
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oOff; nullable<ComplexTypes::Drawing::CPoint2D> m_oOff;
}; };
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
......
...@@ -277,7 +277,8 @@ namespace OOX ...@@ -277,7 +277,8 @@ namespace OOX
et_a_txDef, // <a:txDef> et_a_txDef, // <a:txDef>
et_a_up, // <a:up> et_a_up, // <a:up>
et_a_xfrm, // <a:xfrm> et_a_xfrm, // <a:xfrm>
et_a_groupSpPr, // <a:groupSpPr>
et_a_p, // <a:p> et_a_p, // <a:p>
et_a_pPr, // <a:pPr> et_a_pPr, // <a:pPr>
et_a_r, // <a:p> et_a_r, // <a:p>
...@@ -466,6 +467,7 @@ namespace OOX ...@@ -466,6 +467,7 @@ namespace OOX
et_xdr_cNvPr, // <xdr:cNvPr> et_xdr_cNvPr, // <xdr:cNvPr>
et_xdr_spPr, // <xdr:spPr> et_xdr_spPr, // <xdr:spPr>
et_xdr_groupSpPr, // <xdr:groupSpPr>
et_c_chart, // <c:chart> et_c_chart, // <c:chart>
et_c_spPr, et_c_spPr,
......
...@@ -372,70 +372,6 @@ namespace OOX ...@@ -372,70 +372,6 @@ namespace OOX
nullable<OOX::Drawing::CPictureLocking> m_oPicLocks; nullable<OOX::Drawing::CPictureLocking> m_oPicLocks;
}; };
//--------------------------------------------------------------------------------
// 20.5.2.18 grpSpPr (Group Shape Properties)
//--------------------------------------------------------------------------------
class CGroupShapeProperties : public WritingElement
{
public:
WritingElementSpreadsheet_AdditionConstructors(CGroupShapeProperties)
CGroupShapeProperties()
{
}
virtual ~CGroupShapeProperties()
{
}
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("xdr:cNvCxnSpPr") == sName )
// m_oCNvConnSpPr = oReader;
//else if ( _T("xdr:cNvPr") == sName )
// m_oCNvPr = oReader;
}
}
virtual EElementType getType () const
{
return et_GroupShapeProperties;
}
private:
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_End( oReader )
}
public:
// Childs
//blipFill (Picture Fill) 20.1.8.14
//effectDag (Effect Container) 20.1.8.25
//effectLst (Effect Container) 20.1.8.26
//extLst (Extension List) 20.1.2.2.15
//gradFill (Gradient Fill) 20.1.8.33
//grpFill (Group Fill) 20.1.8.35
//noFill (No Fill) 20.1.8.44
//pattFill (Pattern Fill) 20.1.8.47
};
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
// 20.5.2.19 nvCxnSpPr (Non-Visual Properties for a Connection Shape) // 20.5.2.19 nvCxnSpPr (Non-Visual Properties for a Connection Shape)
//-------------------------------------------------------------------------------- //--------------------------------------------------------------------------------
...@@ -645,8 +581,8 @@ namespace OOX ...@@ -645,8 +581,8 @@ namespace OOX
if ( _T("xdr:nvGrpSpPr") == sName ) if ( _T("xdr:nvGrpSpPr") == sName )
m_oNvGroupSpPr = oReader; m_oNvGroupSpPr = oReader;
//else if ( _T("xdr:grpSpPr") == sName ) else if ( _T("xdr:grpSpPr") == sName )
// m_oGroupSpPr = oReader; m_oGroupSpPr = oReader;
else if ( _T("xdr:sp") == sName ) else if ( _T("xdr:sp") == sName )
m_arrItems.Add( new OOX::Spreadsheet::CShape( oReader )); m_arrItems.Add( new OOX::Spreadsheet::CShape( oReader ));
...@@ -671,7 +607,7 @@ namespace OOX ...@@ -671,7 +607,7 @@ namespace OOX
{ {
} }
public: public:
//nullable<OOX::Drawing::CGroupShapeProperties> m_oGroupSpPr; nullable<OOX::Drawing::CGroupShapeProperties> m_oGroupSpPr;
nullable<CGroupShapeNonVisual> m_oNvGroupSpPr; nullable<CGroupShapeNonVisual> m_oNvGroupSpPr;
}; };
} //Spreadsheet } //Spreadsheet
......
...@@ -312,7 +312,6 @@ namespace Spreadsheet ...@@ -312,7 +312,6 @@ namespace Spreadsheet
et_ShapeTextBody, et_ShapeTextBody,
et_ConnShapeNonVisual, et_ConnShapeNonVisual,
et_GroupShapeNonVisual, et_GroupShapeNonVisual,
et_GroupShapeProperties,
et_NonVisualGroupShapeDrawingProps, et_NonVisualGroupShapeDrawingProps,
et_ConnectionNonVisualConnShapeProps, et_ConnectionNonVisualConnShapeProps,
et_GraphicFrameNonVisual, et_GraphicFrameNonVisual,
......
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