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:
odf_drawing_context(odf_conversion_context *odf_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
///////////////////////////////////////////////////////////////////////////////////////////////////////////
office_element_ptr & get_current_style_element() ;
office_element_ptr & get_current_element();
void start_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 end_shape();
......@@ -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_position(double x_pt, double y_pt);
void get_size( double & width_pt, double & height_pt);
......
......@@ -438,7 +438,13 @@ void ods_conversion_context::end_cell_text()
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)
{
std::wstring odf_ref_name ;
......
......@@ -66,11 +66,10 @@ public:
virtual odf_drawing_context * drawing_context() {return current_table().drawing_context();}
virtual odf_text_context * text_context() {return current_text_context_;}
void start_drawing() {drawing_context()->start_drawing();}
void end_drawing() {drawing_context()->end_drawing();}
void start_drawings();
void end_drawings();
void start_image(std::wstring & image_file_name);
void end_image(){drawing_context()->end_image();}
double convert_symbol_width(double val);
......
......@@ -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);
}
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());
if (!style)return;
......
......@@ -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)
{
if (!oox_spPr) return;
......@@ -156,16 +185,16 @@ void OoxConverter::convert(OOX::Drawing::CShapeProperties * oox_spPr)
if (oox_spPr->m_oXfrm.IsInit()) //CTransform2D
{
//if (oox_spPr->m_oXfrm->m_oOff.IsInit())
//{
// odf_context()->drawing_context()->set_position(oox_spPr->m_oXfrm->m_oOff->m_oX.GetValue(),
// oox_spPr->m_oXfrm->m_oOff->m_oY.GetValue());
//}
//if (oox_spPr->m_oXfrm->m_oExt.IsInit())
//{
// odf_context()->drawing_context()->set_size( oox_spPr->m_oXfrm->m_oExt->m_oCx.ToPoints(),
// oox_spPr->m_oXfrm->m_oExt->m_oCy.ToPoints());
//}
if (oox_spPr->m_oXfrm->m_oOff.IsInit())
{
odf_context()->drawing_context()->set_position(oox_spPr->m_oXfrm->m_oOff->m_oX.GetValue(),
oox_spPr->m_oXfrm->m_oOff->m_oY.GetValue());
}
if (oox_spPr->m_oXfrm->m_oExt.IsInit())
{
odf_context()->drawing_context()->set_size( oox_spPr->m_oXfrm->m_oExt->m_oCx.ToPoints(),
oox_spPr->m_oXfrm->m_oExt->m_oCy.ToPoints());
}
if (oox_spPr->m_oXfrm->m_oFlipH.GetValue() == SimpleTypes::onoffTrue)
odf_context()->drawing_context()->set_flip_H(true);
if (oox_spPr->m_oXfrm->m_oFlipV.GetValue() == SimpleTypes::onoffTrue)
......
......@@ -30,6 +30,7 @@ namespace OOX
{
class CNonVisualDrawingProps;
class CShapeProperties;
class CGroupShapeProperties;
class CCustomGeometry2D;
class CPresetGeometry2D;
class CBlipFillProperties;
......@@ -228,6 +229,7 @@ public:
void convert(OOX::Drawing::CNonVisualDrawingProps *oox_cnvPr);
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::CCustomGeometry2D *oox_cust_geom);
......
......@@ -42,6 +42,7 @@ namespace OOX
class CPic;
class CShape;
class CConnShape;
class CGroupShape;
class CCommentItem;
class CGraphicFrame;
class CDefinedName;
......@@ -159,6 +160,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CShape *oox_shape);
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
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::CConditionalFormattingRule *oox_cond_rule);
......
......@@ -2,6 +2,6 @@
//1
//2
//0
//56
#define INTVER 1,2,0,56
#define STRVER "1,2,0,56\0"
//59
#define INTVER 1,2,0,59
#define STRVER "1,2,0,59\0"
......@@ -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
//-----------------------------------------------------------------------
......
......@@ -133,7 +133,7 @@ namespace OOX
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oChExt;
nullable<ComplexTypes::Drawing::CPoint2D> m_oChOff;
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oExt;
nullable<ComplexTypes::Drawing::CPositiveSize2D> m_oOff;
nullable<ComplexTypes::Drawing::CPoint2D> m_oOff;
};
//--------------------------------------------------------------------------------
......
......@@ -277,7 +277,8 @@ namespace OOX
et_a_txDef, // <a:txDef>
et_a_up, // <a:up>
et_a_xfrm, // <a:xfrm>
et_a_groupSpPr, // <a:groupSpPr>
et_a_p, // <a:p>
et_a_pPr, // <a:pPr>
et_a_r, // <a:p>
......@@ -466,6 +467,7 @@ namespace OOX
et_xdr_cNvPr, // <xdr:cNvPr>
et_xdr_spPr, // <xdr:spPr>
et_xdr_groupSpPr, // <xdr:groupSpPr>
et_c_chart, // <c:chart>
et_c_spPr,
......
......@@ -372,70 +372,6 @@ namespace OOX
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)
//--------------------------------------------------------------------------------
......@@ -645,8 +581,8 @@ namespace OOX
if ( _T("xdr:nvGrpSpPr") == sName )
m_oNvGroupSpPr = oReader;
//else if ( _T("xdr:grpSpPr") == sName )
// m_oGroupSpPr = oReader;
else if ( _T("xdr:grpSpPr") == sName )
m_oGroupSpPr = oReader;
else if ( _T("xdr:sp") == sName )
m_arrItems.Add( new OOX::Spreadsheet::CShape( oReader ));
......@@ -671,7 +607,7 @@ namespace OOX
{
}
public:
//nullable<OOX::Drawing::CGroupShapeProperties> m_oGroupSpPr;
nullable<OOX::Drawing::CGroupShapeProperties> m_oGroupSpPr;
nullable<CGroupShapeNonVisual> m_oNvGroupSpPr;
};
} //Spreadsheet
......
......@@ -312,7 +312,6 @@ namespace Spreadsheet
et_ShapeTextBody,
et_ConnShapeNonVisual,
et_GroupShapeNonVisual,
et_GroupShapeProperties,
et_NonVisualGroupShapeDrawingProps,
et_ConnectionNonVisualConnShapeProps,
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