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

комментарии

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@55826 954022d7-b5bf-4e40-9824-e11837661b57
parent b162d7c6
......@@ -926,6 +926,14 @@
RelativePath=".\OdfFormat\list.h"
>
</File>
<File
RelativePath=".\OdfFormat\office_annotation.cpp"
>
</File>
<File
RelativePath=".\OdfFormat\office_annotation.h"
>
</File>
<File
RelativePath=".\OdfFormat\office_body.cpp"
>
......
......@@ -4,8 +4,10 @@
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/xmlelement.h>
#include <cpdoccore/xml/nodetype.h>
#include "office_elements.h"
#include "office_elements_create.h"
#include "common_attlists.h"
namespace cpdoccore {
......
#pragma once
#include <iosfwd>
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/xmlelement.h>
#include <cpdoccore/xml/nodetype.h>
#include "office_elements.h"
#include "office_elements_create.h"
#include "common_attlists.h"
#include "draw_base.h"
namespace cpdoccore {
......
#pragma once
#include <iosfwd>
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/xmlelement.h>
#include <cpdoccore/xml/nodetype.h>
#include "office_elements.h"
#include "office_elements_create.h"
#include "draw_base.h"
#include "common_attlists.h"
......
......@@ -761,6 +761,8 @@ office_element_ptr & odf_drawing_context::get_current_style_element()
{
if (impl_->current_drawing_state_.elements_.size() > 0)
return impl_->current_drawing_state_.elements_.back().style_elm;
else
throw;
}
void odf_drawing_context::set_text(odf_text_context* text_context)
{
......
......@@ -188,13 +188,34 @@ void ods_conversion_context::end_row()
//add default last cells
int repeated = 1024;// max dimension columns???
office_element_ptr default_cell_elm;
create_element(L"table", L"table-cell",default_cell_elm,this);
current_table().add_default_cell(repeated);
current_table().add_default_cell(default_cell_elm, repeated);
}
//////////////////////
void ods_conversion_context::start_comment(int col, int row, std::wstring & author)
{
current_table().start_comment(col,row,author);
start_text_context();
////////////////
office_element_ptr paragr_elm;
create_element(L"text", L"p",paragr_elm,this);
current_text_context_->start_paragraph(paragr_elm);
}
void ods_conversion_context::end_comment()
{
if (current_text_context_)current_text_context_->end_paragraph();
current_table().end_comment(current_text_context_);
end_text_context();
}
void ods_conversion_context::set_comment_rect(double l, double t, double w, double h)
{
current_table().set_comment_rect(l,t,w,h);
}
/////////////////////////////
void ods_conversion_context::add_hyperlink(std::wstring & ref, std::wstring & link, std::wstring & display)
{
//////////////////////////////////////////////////////////////////
......@@ -252,10 +273,7 @@ void ods_conversion_context::start_cell(std::wstring & ref, int xfd_style)
{
int repeated = col - current_table().current_column() -1;
office_element_ptr default_cell_elm;
create_element(L"table", L"table-cell",default_cell_elm,this);
current_table().add_default_cell(default_cell_elm, repeated);
current_table().add_default_cell(repeated);
}
office_element_ptr style_elm;
......@@ -289,6 +307,11 @@ void ods_conversion_context::start_cell(std::wstring & ref, int xfd_style)
current_table().set_cell_format_value(format_value_type);
}
void ods_conversion_context::end_cell()
{
current_table().end_cell();
end_text_context();
}
void ods_conversion_context::start_columns()
{
}
......@@ -388,7 +411,6 @@ void ods_conversion_context::add_text_content(std::wstring & text)
}
void ods_conversion_context::start_cell_text()
{
end_text_context();
start_text_context();
////////////
office_element_ptr paragr_elm;
......
......@@ -29,7 +29,7 @@ public:
void end_row();
void start_cell(std::wstring & ref, int xfd_style);
void end_cell(){}
void end_cell();
void end_rows();
void start_cell_text();
......@@ -38,6 +38,10 @@ public:
void add_merge_cells(std::wstring & ref);
void add_hyperlink(std::wstring & ref, std::wstring & link, std::wstring & display);
void start_comment(int col, int row, std::wstring & author);
void set_comment_rect(double l, double t, double w, double h);
void end_comment();
///////////////////////////////////////////////////////
ods_table_state & current_table() { return table_context_.state();}
/////////////////////////////////////////////////////
......
......@@ -8,7 +8,7 @@
#include "ods_conversion_context.h"
#include "table.h"
#include "office_annotation.h"
#include "styles.h"
#include "style_table_properties.h"
......@@ -288,6 +288,11 @@ bool ods_table_state::is_cell_hyperlink()
if (cells_.size()<1)return false;
return cells_.back().hyperlink_idx >=0 ? true : false;
}
bool ods_table_state::is_cell_comment()
{
if (cells_.size()<1)return false;
return cells_.back().comment_idx >=0 ? true : false;
}
int ods_table_state::is_cell_hyperlink(int col, int row)
{
......@@ -300,7 +305,17 @@ int ods_table_state::is_cell_hyperlink(int col, int row)
}
return -1;
}
int ods_table_state::is_cell_comment(int col, int row, int repeate_col)
{
for (long i=0; i< comments_.size();i++)
{
if ((comments_[i].col < col+repeate_col && comments_[i].col >= col) && comments_[i].row == row)
{
return i;
}
}
return -1;
}
int ods_table_state::current_column() const
{
return current_table_column_;
......@@ -329,16 +344,14 @@ office_element_ptr & ods_table_state::current_row_element()
if (rows_.size()>0)
return rows_.back().elm;
else
{
}
throw;
}
office_element_ptr & ods_table_state::current_cell_element()
{
if (cells_.size()>0)
return cells_.back().elm;
else
{
}
throw;
}
ods_hyperlink_state & ods_table_state::current_hyperlink()
{
......@@ -347,8 +360,7 @@ ods_hyperlink_state & ods_table_state::current_hyperlink()
return hyperlinks_[cells_.back().hyperlink_idx];
}
else
{
}
throw;
}
void ods_table_state::start_cell(office_element_ptr & elm, office_element_ptr & style_elm)
......@@ -373,6 +385,7 @@ void ods_table_state::start_cell(office_element_ptr & elm, office_element_ptr &
state.row=current_table_row_; state.col =current_table_column_+1;
state.hyperlink_idx = is_cell_hyperlink(state.col, state.row);
state.comment_idx = is_cell_comment(state.col, state.row);
current_table_column_ += state.repeated;
cells_.push_back(state);
......@@ -433,11 +446,53 @@ void ods_table_state::add_hyperlink(std::wstring & ref,int col, int row, std::ws
ods_hyperlink_state state;
/*state.elm = text_a_elm; */state.row=row; state.col =col; state.ref = ref, state.link = link;
state.row=row; state.col =col; state.ref = ref, state.link = link;
hyperlinks_.push_back(state);
}
void ods_table_state::start_comment(int col, int row, std::wstring & author)
{
ods_comment_state state;
state.row=row; state.col =col; state.author = author;
create_element(L"office", L"annotation",state.elm,&context_);
comments_.push_back(state);
}
void ods_table_state::set_comment_rect(double l, double t, double w, double h)
{
if (comments_.size() < 1)return;
office_annotation * annotation = dynamic_cast<office_annotation*>(comments_.back().elm.get());
if (!annotation)return;
annotation->office_annotation_attr_.svg_y_ = length(length(t,length::pt).get_value_unit(length::cm),length::cm);
annotation->office_annotation_attr_.svg_x_ = length(length(l,length::pt).get_value_unit(length::cm),length::cm);
annotation->office_annotation_attr_.svg_width_ = length(length(w,length::pt).get_value_unit(length::cm),length::cm);
annotation->office_annotation_attr_.svg_height_ = length(length(h,length::pt).get_value_unit(length::cm),length::cm);
}
void ods_table_state::end_comment(odf_text_context *text_context)
{
if (text_context == NULL || comments_.size() <1 )return;
for (long i=0; i< text_context->text_elements_list_.size(); i++)
{
if (text_context->text_elements_list_[i].level ==0 && comments_.back().elm)
{
comments_.back().elm->add_child_element(text_context->text_elements_list_[i].elm);
}
}
if (comments_.back().author.length() > 0 && comments_.back().elm)
{
office_element_ptr dc_elm;
create_element(L"dc", L"creator",dc_elm,&context_);
if (dc_elm)
{
dc_elm->add_text(comments_.back().author);
comments_.back().elm->add_child_element(dc_elm);
}
}
}
void ods_table_state::set_merge_cells(int start_col, int start_row, int end_col, int end_row)
{
// () -
......@@ -599,21 +654,45 @@ void ods_table_state::set_cell_value(std::wstring & value)
void ods_table_state::end_cell()
{
if ( cells_.size() <1)return;
if (cells_.back().comment_idx >=0)
{
office_element_ptr & comm_elm = comments_[cells_.back().comment_idx].elm;
cells_.back().elm->add_child_element(comm_elm);
}
}
void ods_table_state::add_default_cell(office_element_ptr & elm, int repeated)
void ods_table_state::add_default_cell( int repeated)
{
current_row_element()->add_child_element(elm);
int comment_idx = is_cell_comment(current_table_column_+1 , current_table_row_, repeated);
if (comment_idx >=0 && repeated >1)
{
// 3 - , , ;
int c = current_table_column_;
table_table_cell* cell = dynamic_cast<table_table_cell*>(elm.get());
add_default_cell(comments_[comment_idx].col - c -1);
add_default_cell(1);
add_default_cell(repeated + c +1 - comments_[comment_idx].col);
return;
}
//////////////////////////////////////////////////
office_element_ptr default_cell_elm;
create_element(L"table", L"table-cell",default_cell_elm, &context_);
current_row_element()->add_child_element(default_cell_elm);
table_table_cell* cell = dynamic_cast<table_table_cell*>(default_cell_elm.get());
if (cell == NULL)return;
ods_cell_state state;
state.elm = elm; state.repeated = repeated;
state.elm = default_cell_elm; state.repeated = repeated;
state.row=current_table_row_; state.col =current_table_column_+1;
state.hyperlink_idx = is_cell_hyperlink(state.col, state.row);
state.hyperlink_idx = is_cell_hyperlink(state.col, current_table_row_);
state.comment_idx = comment_idx;
cells_.push_back(state);
......@@ -623,6 +702,8 @@ void ods_table_state::add_default_cell(office_element_ptr & elm, int repeated)
if (row_default_cell_style_name_.length() > 0)
cell->table_table_cell_attlist_.table_style_name_ = row_default_cell_style_name_;
end_cell();
}
}
}
......@@ -54,6 +54,7 @@ struct ods_cell_state : ods_element_state
int row;
int hyperlink_idx;
int comment_idx;
};
struct ods_hyperlink_state
......@@ -63,7 +64,14 @@ struct ods_hyperlink_state
int row;
std::wstring link;
};
struct ods_comment_state
{
int col;
int row;
std::wstring author;
office_element_ptr elm;
};
class ods_table_state
{
public:
......@@ -92,7 +100,7 @@ public:
void start_cell(office_element_ptr & elm ,office_element_ptr & style);
void end_cell();
void add_default_cell(office_element_ptr & cell, int repeated);
void add_default_cell(int repeated);
void set_cell_format_value(office_value_type::type value_type);
void set_cell_type(int type);
......@@ -105,6 +113,10 @@ public:
///////////////////////////////
void add_hyperlink(std::wstring & ref,int col, int row, std::wstring & link);
void start_comment(int col, int row, std::wstring & author);
void set_comment_rect(double l, double t, double w, double h);
void end_comment(odf_text_context *text_context);
void set_merge_cells(int start_col, int start_row, int end_col, int end_row);
office_element_ptr & current_row_element();
......@@ -112,6 +124,8 @@ public:
bool is_cell_hyperlink();
int is_cell_hyperlink(int col, int row);
bool is_cell_comment();
int is_cell_comment(int col, int row, int repeate_col = 1);
ods_hyperlink_state & current_hyperlink();
......@@ -153,7 +167,9 @@ private:
std::vector<office_element_ptr> current_level_;// ("0- - )
std::vector<ods_cell_state> cells_;
std::vector<ods_hyperlink_state> hyperlinks_;
std::vector<ods_comment_state> comments_;
odf_drawing_context drawing_context_;
......
#include "precompiled_cpodf.h"
#include "office_annotation.h"
#include <boost/foreach.hpp>
#include <cpdoccore/xml/xmlchar.h>
#include <cpdoccore/xml/serialize.h>
#include <cpdoccore/xml/attributes.h>
#include <cpdoccore/xml/utils.h>
namespace cpdoccore {
namespace odf {
// dc:date
/////////////////////////////////////////////
const wchar_t * dc_date::ns = L"dc";
const wchar_t * dc_date::name = L"date";
void dc_date::add_text(const std::wstring & Text)
{
content_ = Text;
}
void dc_date::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_STREAM() << content_;
}
}
}
// dc:creator
///////////////////////////////////////////
const wchar_t * dc_creator::ns = L"dc";
const wchar_t * dc_creator::name = L"creator";
void dc_creator::add_text(const std::wstring & Text)
{
content_ = Text;
}
void dc_creator::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_STREAM() << content_;
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
void office_annotation_attr::serialize(CP_ATTR_NODE)
{
CP_XML_ATTR_OPT(L"draw:style-name", draw_style_name_);
CP_XML_ATTR_OPT(L"draw:text-style-name", draw_text_style_name_);
CP_XML_ATTR_OPT(L"draw:caption-point-x", caption_point_x_);
CP_XML_ATTR_OPT(L"draw:caption-point-x", caption_point_y_);
CP_XML_ATTR_OPT(L"svg:y", svg_y_);
CP_XML_ATTR_OPT(L"svg:x", svg_x_);
CP_XML_ATTR_OPT(L"svg:width", svg_width_);
CP_XML_ATTR_OPT(L"svg:height", svg_height_);
CP_XML_ATTR_OPT(L"office:display",display_);
}
// office:annotation
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * office_annotation::ns = L"office";
const wchar_t * office_annotation::name = L"annotation";
void office_annotation::create_child_element(const ::std::wstring & Ns, const ::std::wstring & Name)
{
if (Ns==L"dc" && Name == L"date")
{
CP_CREATE_ELEMENT(dc_date_);
}
else if (Ns==L"dc" && Name == L"creator")
{
CP_CREATE_ELEMENT(dc_creator_);
}
else
{
CP_CREATE_ELEMENT(content_);
}
}
void office_annotation::add_child_element( office_element_ptr & child_element)
{
ElementType type = child_element->get_type();
if (type == typeDcCreator)
dc_creator_ = child_element;
else if (type == typeDcDate)
dc_date_ = child_element;
else
content_.push_back(child_element);
}
void office_annotation::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
office_annotation_attr_.serialize(CP_GET_XML_NODE());
if (dc_creator_)dc_creator_->serialize(CP_XML_STREAM());
if (dc_date_) dc_date_->serialize(CP_XML_STREAM());
BOOST_FOREACH(const office_element_ptr & item, content_)
{
item->serialize(CP_XML_STREAM());
}
}
}
}
// officeooo:annotation
//////////////////////////////////////////////////////////////////////////////////////////////////
const wchar_t * officeooo_annotation::ns = L"officeooo";
const wchar_t * officeooo_annotation::name = L"annotation";
void officeooo_annotation::create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name)
{
if (Ns==L"dc" && Name == L"date")
{
CP_CREATE_ELEMENT(dc_date_);
}
else if (Ns==L"dc" && Name == L"creator")
{
CP_CREATE_ELEMENT(dc_creator_);
}
else
{
CP_CREATE_ELEMENT(content_);
}
}
void officeooo_annotation::add_child_element( office_element_ptr & child_element)
{
ElementType type = child_element->get_type();
if (type == typeDcCreator)
dc_creator_ = child_element;
else if (type == typeDcDate)
dc_date_ = child_element;
else
content_.push_back(child_element);
}
void officeooo_annotation::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
office_annotation_attr_.serialize(CP_GET_XML_NODE());
if (dc_creator_)dc_creator_->serialize(CP_XML_STREAM());
if (dc_date_) dc_date_->serialize(CP_XML_STREAM());
BOOST_FOREACH(const office_element_ptr & item, content_)
{
item->serialize(CP_XML_STREAM());
}
}
}
}
}
}
#pragma once
#include <iosfwd>
#include <vector>
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/xml/nodetype.h>
#include <cpdoccore/xml/simple_xml_writer.h>
#include "office_elements_create.h"
#include "bool.h"
#include "length.h"
#include "style_ref.h"
namespace cpdoccore {
namespace odf {
class office_annotation_attr
{
public:
void serialize(CP_ATTR_NODE);
public:
_CP_OPT(length) svg_y_;
_CP_OPT(length) svg_x_;
_CP_OPT(length) svg_width_;
_CP_OPT(length) svg_height_;
_CP_OPT(length) caption_point_y_;
_CP_OPT(length) caption_point_x_;
_CP_OPT(Bool) display_;
_CP_OPT(style_ref) draw_text_style_name_;
_CP_OPT(style_ref) draw_style_name_;
};
/// \brief dc:date
class dc_date : public office_element_impl<dc_date>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDcDate;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name){}
virtual void add_child_element( office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream);
virtual void add_text(const std::wstring & Text);
std::wstring content_;
};
CP_REGISTER_OFFICE_ELEMENT2(dc_date);
/// \brief dc:creator
class dc_creator : public office_element_impl<dc_creator>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeDcCreator;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name){}
virtual void add_child_element( office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream);
virtual void add_text(const std::wstring & Text);
std::wstring content_;
};
CP_REGISTER_OFFICE_ELEMENT2(dc_creator);
/// \brief office:annotation
class office_annotation : public office_element_impl<office_annotation>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeOfficeAnnotation;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
office_annotation_attr office_annotation_attr_;
private:
office_element_ptr_array content_;
office_element_ptr dc_date_;
office_element_ptr dc_creator_;
};
CP_REGISTER_OFFICE_ELEMENT2(office_annotation);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//officeooo:annotation
class officeooo_annotation : public office_element_impl<officeooo_annotation>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeOfficeAnnotation;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element( const ::std::wstring & Ns, const ::std::wstring & Name);
virtual void add_child_element( office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
private:
office_element_ptr_array content_;
office_annotation_attr office_annotation_attr_;
office_element_ptr dc_date_;
office_element_ptr dc_creator_;
};
CP_REGISTER_OFFICE_ELEMENT2(officeooo_annotation);
}
}
......@@ -5,6 +5,7 @@
#include <boost/function.hpp>
#include <cpdoccore/CPAssert.h>
#include <cpdoccore/CPSharedPtr.h>
#include "office_elements.h"
namespace boost {
......
......@@ -5,7 +5,9 @@
#include <cpdoccore/CPOptional.h>
#include <cpdoccore/CPWeakPtr.h>
#include <cpdoccore/xml/nodetype.h>
#include "office_elements_create.h"
#include "style_ref.h"
#include "targetframename.h"
#include "noteclass.h"
......
......@@ -145,6 +145,15 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
convert(oox_sheet->m_oHyperlinks->m_arrItems[hyp],oox_sheet);
}
//
if(oox_sheet->m_mapComments.GetCount() > 0)
{
POSITION pos = oox_sheet->m_mapComments.GetStartPosition();
while ( NULL != pos )
{
CAtlMap<CString, OOX::Spreadsheet::CCommentItem*>::CPair* pPair = oox_sheet->m_mapComments.GetNext( pos );
if(pPair->m_value->IsValid())convert(pPair->m_value);
}
}
//
//todooo -
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
......@@ -182,6 +191,30 @@ void XlsxConverter::convert(OOX::Spreadsheet::CWorksheet *oox_sheet)
}
}
}
void XlsxConverter::convert(OOX::Spreadsheet::CCommentItem * oox_comment)
{
if (oox_comment == NULL)return;
int col = oox_comment->m_nCol.IsInit() ? oox_comment->m_nCol.get()+1 : -1;
int row = oox_comment->m_nRow.IsInit() ? oox_comment->m_nRow.get()+1 : -1;
std::wstring author = oox_comment->m_sAuthor.IsInit() ? string2std_string(oox_comment->m_sAuthor.get()) : L"";
ods_context->start_comment(col, row, author);
//if (oox_comment->m_dLeftMM.IsInit() && oox_comment->m_dTopMM.IsInit() && oox_comment->m_dWidthMM.IsInit() && oox_comment->m_dHeightMM.IsInit())
//{
// ods_context->set_comment_rect(oox_comment->m_dLeft.get(), oox_comment->m_dTop.get(), oox_comment->m_dWidthMM.get(), oox_comment->m_dHeightMM.get());
//}
if (oox_comment->m_oText.IsInit())
{
for(int i = 0; i < oox_comment->m_oText->m_arrItems.GetSize(); ++i)
{
convert(oox_comment->m_oText->m_arrItems[i]);
}
}
ods_context->end_comment();
}
void XlsxConverter::convert(OOX::Spreadsheet::CHyperlink *oox_hyperlink,OOX::Spreadsheet::CWorksheet *oox_sheet)
{
......@@ -349,7 +382,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CRun *oox_text_run)
if (oox_text_run == NULL)return;
convert(oox_text_run->m_oRPr.GetPointer());
ods_context->text_context()->start_span(); // .. - ??
ods_context->text_context()->start_span(oox_text_run->m_oRPr.GetPointer() ? true : false);
for(int i = 0; i < oox_text_run->m_arrItems.GetSize(); ++i)
{
......
......@@ -41,6 +41,7 @@ namespace OOX
class CPic;
class CShape;
class CConnShape;
class CCommentItem;
}
}
......@@ -104,8 +105,6 @@ namespace Oox2Odf
void convert_sheets();
void convert_styles();
void convert(double oox_size, _CP_OPT(odf::length) & odf_size);
void convert(OOX::Spreadsheet::WritingElement *oox_unknown);
void convert(OOX::Spreadsheet::CWorksheet *oox_sheet);
......@@ -120,6 +119,7 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CFormula *oox_formula);
void convert(OOX::Spreadsheet::CHyperlink *oox_hyperlink, OOX::Spreadsheet::CWorksheet *oox_sheet);
void convert(OOX::Spreadsheet::CCommentItem *oox_comment);
void convert(OOX::Spreadsheet::CSheetFormatPr *oox_sheet_format_pr);
void convert(OOX::Spreadsheet::CSheetPr *oox_sheet_pr);
......@@ -139,12 +139,14 @@ namespace Oox2Odf
void convert(OOX::Spreadsheet::CCellAnchor *oox_anchor);
void convert(OOX::Spreadsheet::CDrawing *oox_drawing);
void convert_sharing_string(int number);
void convert(OOX::Spreadsheet::CFromTo* oox_from_to, oox_table_position * pos);
void convert(OOX::Spreadsheet::CFromTo *oox_from_to, oox_table_position * pos);
void convert(OOX::Spreadsheet::CPic* oox_picture);
void convert(OOX::Spreadsheet::CShape* oox_shape);
void convert(OOX::Spreadsheet::CConnShape* oox_conn_shape);
void convert(OOX::Spreadsheet::CPic *oox_picture);
void convert(OOX::Spreadsheet::CShape *oox_shape);
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
void convert(double oox_size, _CP_OPT(odf::length) & odf_size);
void convert_sharing_string(int number);
};
}
\ No newline at end of file
......@@ -2,6 +2,6 @@
//1
//2
//0
//28
#define INTVER 1,2,0,28
#define STRVER "1,2,0,28\0"
//29
#define INTVER 1,2,0,29
#define STRVER "1,2,0,29\0"
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