Commit 2c46ec31 authored by ElenaSubbotina's avatar ElenaSubbotina

OdfFormatWriter, RtfFormatWriter

parent 9de7b943
...@@ -1527,9 +1527,6 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring> ...@@ -1527,9 +1527,6 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring>
if (refs.size() < 1) return; if (refs.size() < 1) return;
utils::parsing_ref( refs[0], col1, row1); utils::parsing_ref( refs[0], col1, row1);
int count_cols = col2 - col1;
int count_rows = row2 - row1;
if (refs.size() > 1) if (refs.size() > 1)
{ {
...@@ -1539,11 +1536,14 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring> ...@@ -1539,11 +1536,14 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring>
{ {
col2 = col1; row2 = row1; col2 = col1; row2 = row1;
} }
int count_cols = col2 - col1;
int count_rows = row2 - row1;
if (count_cols == 0) if (count_cols == 0)
{ {
start_col = col2; start_col = col2;
start_row = row1; start_row = row1;
count_cash_values = count_rows; count_cash_values = count_rows + 1;
} }
else else
{ {
...@@ -1551,7 +1551,7 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring> ...@@ -1551,7 +1551,7 @@ void odf_chart_context::set_cash(std::wstring format, std::vector<std::wstring>
start_row = row2; start_row = row2;
by_row = false; by_row = false;
count_cash_values = count_cols; count_cash_values = count_cols + 1;
} }
if (data_str.empty()) if (data_str.empty())
{ {
...@@ -1611,13 +1611,13 @@ struct _sort_cells ...@@ -1611,13 +1611,13 @@ struct _sort_cells
bool operator() (_cell_cash i, _cell_cash j) bool operator() (_cell_cash i, _cell_cash j)
{ {
if (i.row == j.row) if (i.row == j.row)
return (i.col<j.col); return (i.col < j.col);
else else
return (i.row<j.row); return (i.row < j.row);
} }
} sort_cells; } sort_cells;
int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_state * table_state,std::vector<_cell_cash> & cells, bool header ) int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_state * table_state, std::vector<_cell_cash> & cells, bool header )
{ {
int curr_cell = 0; int curr_cell = 0;
...@@ -1631,6 +1631,7 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta ...@@ -1631,6 +1631,7 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta
continue; continue;
add = false; add = false;
if (cells[i].row > curr_row + 1 && !header) if (cells[i].row > curr_row + 1 && !header)
{ {
office_element_ptr row_elm; office_element_ptr row_elm;
...@@ -1645,17 +1646,13 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta ...@@ -1645,17 +1646,13 @@ int odf_chart_context::Impl::create_local_table_rows(int curr_row, ods_table_sta
curr_row = cells[i].row - 1; curr_row = cells[i].row - 1;
add = true; add = true;
} }
if (cells[i].row == curr_row + 1) while (cells[i].row >= curr_row + 1)
{ {
if (!add) office_element_ptr row_elm;
{
office_element_ptr row_elm;
create_element(L"table", L"table-row", row_elm, odf_context_); create_element(L"table", L"table-row", row_elm, odf_context_);
table_state->add_row(row_elm, 1, style_null); table_state->add_row(row_elm, 1, style_null);
}
curr_row++; curr_row++;
curr_cell=0; curr_cell=0;
} }
...@@ -1823,7 +1820,37 @@ void odf_chart_context::Impl::create_local_table() ...@@ -1823,7 +1820,37 @@ void odf_chart_context::Impl::create_local_table()
office_element_ptr style_null; office_element_ptr style_null;
int current_row = 0; int current_row = 0;
if (cells_cash_label.size() > 0 || cells_cash.size() > 0)
{
int min_row = 1, r1 = 1, r2 = 1;
int min_col = 1, c1 = 1, c2 = 1;
if (cells_cash_label.size() > 0)
{
r1 = cells_cash_label[0].row;
c1 = cells_cash_label[0].col;
}
if (cells_cash.size() > 0)
{
r2 = cells_cash[0].row;
c2 = cells_cash[0].col;
}
if ((std::min)(r1, r2) > min_row) min_row = (std::min)(r1, r2);
if ((std::min)(c1, c2) > min_col) min_col = (std::min)(c1, c2);
for (int i = 0 ; i < cells_cash_label.size(); i++)
{
cells_cash_label[i].row -= min_row - 1;
cells_cash_label[i].col -= min_col - 1;
}
for (int i = 0 ; i < cells_cash.size(); i++)
{
cells_cash[i].row -= min_row - 1;
cells_cash[i].col -= min_col - 1;
}
}
if (cells_cash_label.size() > 0 || cells_cash.size() > 0) if (cells_cash_label.size() > 0 || cells_cash.size() > 0)
{ {
if (cells_cash_label.size() > 0 && row_header) if (cells_cash_label.size() > 0 && row_header)
......
...@@ -171,26 +171,27 @@ struct odf_drawing_state ...@@ -171,26 +171,27 @@ struct odf_drawing_state
{ {
elements_.clear(); elements_.clear();
svg_x_ = boost::none; svg_x_ = boost::none;
svg_y_ = boost::none; svg_y_ = boost::none;
svg_height_ = boost::none; svg_height_ = boost::none;
svg_width_ = boost::none; svg_width_ = boost::none;
name_ = L""; name_ = L"";
z_order_ = -1; z_order_ = -1;
rotateAngle = boost::none; rotateAngle = boost::none;
path_ = L""; path_ = L"";
view_box_ = L""; view_box_ = L"";
path_last_command_ = L""; path_last_command_ = L"";
modifiers_ = L""; modifiers_ = L"";
oox_shape_preset = -1; oox_shape_preset = -1;
in_group = false; in_group = false;
text_box_tableframe = false;
flipH = flipV = false; flipH = flipV = false;
} }
std::vector<odf_element_state> elements_; std::vector<odf_element_state> elements_;
...@@ -217,6 +218,7 @@ struct odf_drawing_state ...@@ -217,6 +218,7 @@ struct odf_drawing_state
/////////////////////// ///////////////////////
int oox_shape_preset; int oox_shape_preset;
bool in_group; bool in_group;
bool text_box_tableframe;
}; };
class odf_drawing_context::Impl class odf_drawing_context::Impl
...@@ -227,9 +229,9 @@ public: ...@@ -227,9 +229,9 @@ public:
current_drawing_state_.clear(); current_drawing_state_.clear();
styles_context_ = odf_context_->styles_context(); styles_context_ = odf_context_->styles_context();
current_graphic_properties = NULL; current_graphic_properties = NULL;
current_paragraph_properties = NULL; current_paragraph_properties = NULL;
current_text_properties = NULL; current_text_properties = NULL;
width = height = x = y = 0; width = height = x = y = 0;
...@@ -683,9 +685,10 @@ void odf_drawing_context::start_shape(int type) ...@@ -683,9 +685,10 @@ void odf_drawing_context::start_shape(int type)
bool odf_drawing_context::change_text_box_2_wordart() bool odf_drawing_context::change_text_box_2_wordart()
{ {
if (impl_->current_drawing_state_.oox_shape_preset > 2000 && impl_->current_drawing_state_.oox_shape_preset < 3000) if (impl_->current_drawing_state_.oox_shape_preset > 2000 && impl_->current_drawing_state_.oox_shape_preset < 3000)
return true; return false;
if (impl_->current_drawing_state_.elements_.empty()) return false; if (impl_->current_drawing_state_.text_box_tableframe) return false;
if (impl_->current_drawing_state_.elements_.empty()) return false;
draw_text_box* t = dynamic_cast<draw_text_box*>(impl_->current_drawing_state_.elements_.back().elm.get()); draw_text_box* t = dynamic_cast<draw_text_box*>(impl_->current_drawing_state_.elements_.back().elm.get());
if (!t) return false; if (!t) return false;
...@@ -693,13 +696,13 @@ bool odf_drawing_context::change_text_box_2_wordart() ...@@ -693,13 +696,13 @@ bool odf_drawing_context::change_text_box_2_wordart()
office_element_ptr draw_elm = impl_->create_draw_element(7); office_element_ptr draw_elm = impl_->create_draw_element(7);
draw_base* draw = dynamic_cast<draw_base*>(draw_elm.get()); draw_base* draw = dynamic_cast<draw_base*>(draw_elm.get());
if (draw == NULL)return false; if (draw == NULL) return false;
int sz = impl_->current_level_.size(); int sz = impl_->current_level_.size();
if (sz < 2) return false; if (sz < 2) return false;
int sz_state = impl_->current_drawing_state_.elements_.size(); int sz_state = impl_->current_drawing_state_.elements_.size();
if (sz_state < 2) return false; if (sz_state < 2) return false;
if (sz > 2) //в группе ?? if (sz > 2) //в группе ??
{ {
...@@ -1938,7 +1941,13 @@ void odf_drawing_context::set_text_box_min_size(double w_pt, double h_pt) ...@@ -1938,7 +1941,13 @@ void odf_drawing_context::set_text_box_min_size(double w_pt, double h_pt)
} }
} }
void odf_drawing_context::set_text_box_tableframe(bool val)
{
if (impl_->current_drawing_state_.elements_.empty()) return;
impl_->current_drawing_state_.text_box_tableframe = val;
}
void odf_drawing_context::set_text_box_parent_style(std::wstring style_name) void odf_drawing_context::set_text_box_parent_style(std::wstring style_name)
{ {
if (impl_->current_drawing_state_.elements_.empty()) return; if (impl_->current_drawing_state_.elements_.empty()) return;
...@@ -1973,6 +1982,8 @@ void odf_drawing_context::end_text_box() ...@@ -1973,6 +1982,8 @@ void odf_drawing_context::end_text_box()
draw_text_box* draw = dynamic_cast<draw_text_box*>(impl_->current_drawing_state_.elements_.back().elm.get()); draw_text_box* draw = dynamic_cast<draw_text_box*>(impl_->current_drawing_state_.elements_.back().elm.get());
if (!draw) return;
if (!draw->draw_text_box_attlist_.fo_min_height_) if (!draw->draw_text_box_attlist_.fo_min_height_)
{ {
draw->draw_text_box_attlist_.fo_min_height_= impl_->current_drawing_state_.svg_height_; draw->draw_text_box_attlist_.fo_min_height_= impl_->current_drawing_state_.svg_height_;
......
...@@ -122,6 +122,7 @@ public: ...@@ -122,6 +122,7 @@ public:
void set_text_box_min_size (bool val); void set_text_box_min_size (bool val);
void set_text_box_min_size (double w_pt, double h_pt); void set_text_box_min_size (double w_pt, double h_pt);
void set_text_box_parent_style (std::wstring style_name); void set_text_box_parent_style (std::wstring style_name);
void set_text_box_tableframe (bool val);
void end_text_box (); void end_text_box ();
void start_object(std::wstring name); void start_object(std::wstring name);
......
...@@ -57,19 +57,17 @@ namespace odf_writer ...@@ -57,19 +57,17 @@ namespace odf_writer
odf_text_context::odf_text_context(odf_conversion_context *odf_context) 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; single_paragraph_ = false;
paragraph_properties_ = NULL; paragraph_properties_ = NULL;
text_properties_ = NULL; text_properties_ = NULL;
current_outline_ = 0; current_outline_ = 0;
in_field_ = false; in_field_ = false;
keep_next_paragraph_ = false;
keep_next_paragraph_ = false; list_state_.started_list = false;
list_state_.started_list = false;
} }
odf_text_context::~odf_text_context() odf_text_context::~odf_text_context()
{ {
...@@ -77,18 +75,18 @@ odf_text_context::~odf_text_context() ...@@ -77,18 +75,18 @@ odf_text_context::~odf_text_context()
} }
void odf_text_context::clear_params() void odf_text_context::clear_params()
{ {
single_paragraph_ = false; single_paragraph_ = false;
paragraph_properties_ = NULL; paragraph_properties_ = NULL;
text_properties_ = NULL; text_properties_ = NULL;
current_outline_ = 0; current_outline_ = 0;
in_field_ = false; in_field_ = false;
keep_next_paragraph_ = false; keep_next_paragraph_ = false;
list_state_.levels.clear(); list_state_.levels.clear();
list_state_.started_list = false; list_state_.started_list = false;
list_state_.style_name = L""; list_state_.style_name = L"";
} }
void odf_text_context::set_styles_context(odf_style_context* styles_context) void odf_text_context::set_styles_context(odf_style_context* styles_context)
{ {
...@@ -98,11 +96,11 @@ odf_style_context* odf_text_context::get_styles_context() ...@@ -98,11 +96,11 @@ odf_style_context* odf_text_context::get_styles_context()
{ {
return styles_context_; return styles_context_;
} }
void odf_text_context::set_single_object(bool val, style_paragraph_properties *para_props, style_text_properties *text_props) void odf_text_context::set_single_object(bool bSingle, style_paragraph_properties *para_props, style_text_properties *text_props)
{ {
single_paragraph_ = val; single_paragraph_ = bSingle;
paragraph_properties_ = para_props; paragraph_properties_ = para_props;
text_properties_ = text_props; text_properties_ = text_props;
//if (paragraph_properties_)//??? а могут ли быть разрывы после-до диаграммы??? //if (paragraph_properties_)//??? а могут ли быть разрывы после-до диаграммы???
//{ //{
...@@ -198,14 +196,14 @@ void odf_text_context::start_paragraph(bool styled) ...@@ -198,14 +196,14 @@ void odf_text_context::start_paragraph(bool styled)
office_element_ptr paragr_elm; office_element_ptr paragr_elm;
if (current_outline_ > 0) if (current_outline_ > 0)
{ {
create_element(L"text", L"h",paragr_elm,odf_context_); create_element(L"text", L"h", paragr_elm, odf_context_);
text_h* h = dynamic_cast<text_h*>(paragr_elm.get()); text_h* h = dynamic_cast<text_h*>(paragr_elm.get());
if (h)h->text_outline_level_ = current_outline_ + 1; if (h) h->text_outline_level_ = current_outline_ + 1;
} }
else else
{ {
create_element(L"text", L"p",paragr_elm,odf_context_); create_element(L"text", L"p", paragr_elm, odf_context_);
} }
current_outline_ = 0; current_outline_ = 0;
...@@ -216,15 +214,15 @@ void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled) ...@@ -216,15 +214,15 @@ 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) if (single_paragraph_ && level > 0)
{ {
std::wstring str_enter(L"\n"); std::wstring str_enter(L"\n");
add_text_content(str_enter); add_text_content(str_enter);
return; return;
} }
std::wstring style_name; std::wstring style_name;
office_element_ptr style_elm; office_element_ptr style_elm;
if (styled) if (styled)
{ {
...@@ -232,15 +230,15 @@ void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled) ...@@ -232,15 +230,15 @@ void odf_text_context::start_paragraph(office_element_ptr & elm, bool styled)
if (style_state) if (style_state)
{ {
style_name = style_state->get_name(); style_name = style_state->get_name();
style_elm = style_state->get_office_element(); style_elm = style_state->get_office_element();
} }
text_p* p = dynamic_cast<text_p*>(elm.get()); text_p* p = dynamic_cast<text_p*>(elm.get());
if (p)p->paragraph_.paragraph_attrs_.text_style_name_ = style_ref(style_name); if (p) p->paragraph_.paragraph_attrs_.text_style_name_ = style_ref(style_name);
text_h* h = dynamic_cast<text_h*>(elm.get()); text_h* h = dynamic_cast<text_h*>(elm.get());
if (h)h->paragraph_.paragraph_attrs_.text_style_name_ = style_ref(style_name); if (h) h->paragraph_.paragraph_attrs_.text_style_name_ = style_ref(style_name);
style *style_ = dynamic_cast<style*>(style_elm.get()); style *style_ = dynamic_cast<style*>(style_elm.get());
if (style_) if (style_)
...@@ -316,8 +314,8 @@ void odf_text_context::start_span(bool styled) ...@@ -316,8 +314,8 @@ void odf_text_context::start_span(bool styled)
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;
text_properties_ = NULL; text_properties_ = NULL;
if (styled) if (styled)
...@@ -326,8 +324,8 @@ void odf_text_context::start_span(bool styled) ...@@ -326,8 +324,8 @@ void odf_text_context::start_span(bool styled)
if (style_state) if (style_state)
{ {
style_name = style_state->get_name(); style_name = style_state->get_name();
style_elm = style_state->get_office_element(); style_elm = style_state->get_office_element();
} }
style *style_ = dynamic_cast<style*>(style_elm.get()); style *style_ = dynamic_cast<style*>(style_elm.get());
...@@ -344,7 +342,7 @@ void odf_text_context::start_span(bool styled) ...@@ -344,7 +342,7 @@ void odf_text_context::start_span(bool styled)
} }
} }
odf_element_state state={ span_elm, style_name, style_elm, level}; odf_element_state state = { span_elm, style_name, style_elm, level};
text_elements_list_.push_back(state); text_elements_list_.push_back(state);
...@@ -595,6 +593,18 @@ void odf_text_context::set_type_break(int type, int clear) ...@@ -595,6 +593,18 @@ void odf_text_context::set_type_break(int type, int clear)
} }
bool odf_text_context::set_master_page_name (std::wstring & master_page_name)
{
if (current_level_.empty()) return false;
style *style_ = dynamic_cast<style*>(current_level_.back().style_elm.get());
if (!style_) return false;
style_->style_master_page_name_ = master_page_name;
return true;
}
void odf_text_context::set_parent_paragraph_style(std::wstring & style_name) void odf_text_context::set_parent_paragraph_style(std::wstring & style_name)
{ {
parent_paragraph_style_ = style_name; parent_paragraph_style_ = style_name;
......
...@@ -35,9 +35,6 @@ ...@@ -35,9 +35,6 @@
#include <vector> #include <vector>
#include "odf_page_layout_state.h" #include "odf_page_layout_state.h"
//#include "ods_drawing_context.h"
//#include "ods_comments_context.h"
//#include "ods_hyperlinks.h"
#include "office_elements_create.h" #include "office_elements_create.h"
...@@ -59,65 +56,67 @@ public: ...@@ -59,65 +56,67 @@ public:
odf_text_context(odf_conversion_context *odf_context); odf_text_context(odf_conversion_context *odf_context);
~odf_text_context(); ~odf_text_context();
public: public:
void clear_params(); odf_style_context* get_styles_context();//для embedded
void set_styles_context(odf_style_context* styles_context);//для embedded void set_styles_context(odf_style_context* styles_context);//для embedded
odf_style_context* get_styles_context();//для embedded
void clear_params();
void add_text_style(office_element_ptr & style_elm, std::wstring style_name); void add_text_style (office_element_ptr & style_elm, std::wstring style_name);
void set_single_object(bool val, style_paragraph_properties *para_props, style_text_properties *text_props); void set_single_object (bool bSingle, 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 add_text_space(int count); void add_text_space (int count);
void set_symbol_font(const std::wstring & font); void set_symbol_font (const std::wstring & font);
void set_symbol_text(int sym); void set_symbol_text (int sym);
void start_paragraph(bool styled = false); void start_paragraph (bool styled = false);
void start_paragraph(office_element_ptr & elm, bool styled = false); void start_paragraph (office_element_ptr & elm, bool styled = false);
void end_paragraph(); void end_paragraph ();
void start_element(office_element_ptr & elm, office_element_ptr style_elm = office_element_ptr(),std::wstring style_name = L""); void start_element (office_element_ptr & elm, office_element_ptr style_elm = office_element_ptr(),std::wstring style_name = L"");
void end_element(); void end_element ();
void start_field(int type); void start_field (int type);
void end_field(); void end_field ();
void start_span (bool styled = false); void start_span (bool styled = false);
void end_span(); void end_span ();
void start_list_item(); void start_list_item ();
void end_list_item(); void end_list_item ();
void start_list(std::wstring style_name); void start_list (std::wstring style_name);
void end_list(); void end_list ();
bool is_need_break(){return bool(need_break_);} bool is_need_break (){return bool(need_break_);}
void set_type_break(int type, int clear); void set_type_break (int type, int clear);
void save_property_break(); void save_property_break();
void add_tab(); void add_tab();
int current_outline_;
bool in_field_;
std::vector<odf_element_state> current_level_;//постоянно меняющийся список уровней наследования
std::vector<odf_element_state> text_elements_list_;//параграфы, списки , ...
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_;} bool set_master_page_name (std::wstring & master_page_name);
style_paragraph_properties *get_paragraph_properties(){return paragraph_properties_;}
style_text_properties *get_text_properties () {return text_properties_;}
style_paragraph_properties *get_paragraph_properties () {return paragraph_properties_;}
void set_outline_level(int level); void set_outline_level (int level);
bool get_KeepNextParagraph() {return keep_next_paragraph_;} bool get_KeepNextParagraph () {return keep_next_paragraph_;}
void set_KeepNextParagraph(bool val) {keep_next_paragraph_ = val;} void set_KeepNextParagraph (bool val) {keep_next_paragraph_ = val;}
bool get_list_item_state() {return list_state_.levels.size() > 0 ? list_state_.levels.back() : false;} bool get_list_item_state () {return list_state_.levels.size() > 0 ? list_state_.levels.back() : false;}
//------------------------------------------------------------------------------------
int current_outline_;
bool in_field_;
std::vector<odf_element_state> current_level_; //постоянно меняющийся список уровней наследования
std::vector<odf_element_state> text_elements_list_; //параграфы, списки , ...
struct _list_state struct _list_state
{ {
bool started_list; bool started_list;
...@@ -125,20 +124,19 @@ public: ...@@ -125,20 +124,19 @@ public:
std::wstring style_name; std::wstring style_name;
}list_state_; }list_state_;
private: private:
bool keep_next_paragraph_; bool keep_next_paragraph_;
bool single_paragraph_;
_CP_OPT(odf_types::fo_break) need_break_; _CP_OPT(odf_types::fo_break) need_break_;
bool single_paragraph_; style_paragraph_properties *paragraph_properties_; //хранилка-опознавалка что свойства приписаны другому, не текстовому, объекту
style_paragraph_properties *paragraph_properties_;//хранилка-опознавалка что свойства приписаны другому, не текстовому, объекту style_text_properties *text_properties_; //хранилка-опознавалка что свойства приписаны другому, не текстовому, объекту
style_text_properties *text_properties_;//хранилка-опознавалка что свойства приписаны другому, не текстовому, объекту
odf_style_context * styles_context_; odf_style_context *styles_context_;
odf_conversion_context *odf_context_; odf_conversion_context *odf_context_;
std::wstring parent_span_style_; std::wstring parent_span_style_;
std::wstring parent_paragraph_style_; std::wstring parent_paragraph_style_;
}; };
} }
......
...@@ -272,6 +272,12 @@ void odt_conversion_context::end_drawings() ...@@ -272,6 +272,12 @@ void odt_conversion_context::end_drawings()
} }
void odt_conversion_context::start_paragraph(bool styled) void odt_conversion_context::start_paragraph(bool styled)
{ {
if (is_paragraph_in_current_section_ && !styled)
{
styles_context()->create_style(L"", odf_types::style_family::Paragraph, true, false, -1);
styled = true;
}
text_context()->start_paragraph(styled); text_context()->start_paragraph(styled);
add_to_root(); add_to_root();
...@@ -281,10 +287,10 @@ void odt_conversion_context::add_page_break() ...@@ -281,10 +287,10 @@ void odt_conversion_context::add_page_break()
office_element_ptr elm; office_element_ptr elm;
create_element(L"text", L"soft-page-break", elm, this); create_element(L"text", L"soft-page-break", elm, this);
if (current_root_elements_.size()>0/* && text_context()->is_need_break()*/) if (current_root_elements_.size() > 0/* && text_context()->is_need_break()*/)
{ {
text_p* para = NULL; text_p* para = NULL;
style * style_ = NULL; style * style_ = NULL;
//http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415190_253892949 //http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1415190_253892949
//нихере не работает !! в span, ... приходится генерить разрыв вручную !! //нихере не работает !! в span, ... приходится генерить разрыв вручную !!
...@@ -424,15 +430,17 @@ void odt_conversion_context::set_master_page_name(std::wstring master_name) ...@@ -424,15 +430,17 @@ void odt_conversion_context::set_master_page_name(std::wstring master_name)
} }
style *style_ = dynamic_cast<style*>(current_root_elements_.back().style_elm.get()); style *style_ = dynamic_cast<style*>(current_root_elements_.back().style_elm.get());
if (!style_)
{
//генерация
}
if (style_) if (style_)
{ {
is_paragraph_in_current_section_ = false; is_paragraph_in_current_section_ = false;
style_->style_master_page_name_ = master_name; style_->style_master_page_name_ = master_name;
} }
else
{
if (text_context()->set_master_page_name(master_name))
is_paragraph_in_current_section_ = false;
}
} }
int odt_conversion_context::get_current_section_columns() int odt_conversion_context::get_current_section_columns()
{ {
...@@ -443,12 +451,13 @@ int odt_conversion_context::get_current_section_columns() ...@@ -443,12 +451,13 @@ int odt_conversion_context::get_current_section_columns()
void odt_conversion_context::add_section(bool continuous) void odt_conversion_context::add_section(bool continuous)
{ {
odt_section_state state; odt_section_state state;
state.empty = true;
state.continuous = continuous; state.empty = true;
state.continuous = continuous;
//---------------------------------------------------------------- //----------------------------------------------------------------
styles_context()->create_style(L"",odf_types::style_family::Section, true, false, -1); styles_context()->create_style(L"", odf_types::style_family::Section, true, false, -1);
create_element(L"text", L"section",state.elm,this); create_element(L"text", L"section", state.elm, this);
state.style_elm = styles_context()->last_state()->get_office_element(); state.style_elm = styles_context()->last_state()->get_office_element();
state.style_name = styles_context()->last_state()->get_name(); state.style_name = styles_context()->last_state()->get_name();
...@@ -457,7 +466,7 @@ void odt_conversion_context::add_section(bool continuous) ...@@ -457,7 +466,7 @@ void odt_conversion_context::add_section(bool continuous)
sections_.push_back(state); sections_.push_back(state);
} }
void odt_conversion_context::add_section_columns(int count, double space_pt, bool separator ) void odt_conversion_context::add_section_columns(int count, double space_pt, bool separator)
{ {
if (sections_.size() < 1 || count < 1) return; if (sections_.size() < 1 || count < 1) return;
...@@ -469,7 +478,7 @@ void odt_conversion_context::add_section_columns(int count, double space_pt, boo ...@@ -469,7 +478,7 @@ void odt_conversion_context::add_section_columns(int count, double space_pt, boo
create_element(L"style", L"columns",section_properties->style_columns_,this); create_element(L"style", L"columns",section_properties->style_columns_,this);
style_columns* columns = dynamic_cast<style_columns*>(section_properties->style_columns_.get()); style_columns* columns = dynamic_cast<style_columns*>(section_properties->style_columns_.get());
if (!columns)return; if (!columns)return;
sections_.back().count_columns = count; sections_.back().count_columns = count;
columns->fo_column_count_ = count; columns->fo_column_count_ = count;
if (space_pt >= 0) columns->fo_column_gap_ = length(length(space_pt,length::pt).get_value_unit(length::cm),length::cm); if (space_pt >= 0) columns->fo_column_gap_ = length(length(space_pt,length::pt).get_value_unit(length::cm),length::cm);
...@@ -494,8 +503,8 @@ void odt_conversion_context::add_section_column(std::vector<std::pair<double,dou ...@@ -494,8 +503,8 @@ void odt_conversion_context::add_section_column(std::vector<std::pair<double,dou
style* style_ = dynamic_cast<style*>(sections_.back().style_elm.get()); style* style_ = dynamic_cast<style*>(sections_.back().style_elm.get());
if (!style_)return; if (!style_)return;
style_section_properties * section_properties = style_->style_content_.get_style_section_properties(); style_section_properties * section_properties = style_->style_content_.get_style_section_properties();
//section_properties->text_dont_balance_text_columns_ = true; //section_properties->text_dont_balance_text_columns_ = true;
style_columns* columns = dynamic_cast<style_columns*>(section_properties->style_columns_.get()); style_columns* columns = dynamic_cast<style_columns*>(section_properties->style_columns_.get());
if (!columns)return; if (!columns)return;
...@@ -624,7 +633,7 @@ void odt_conversion_context::flush_section() ...@@ -624,7 +633,7 @@ void odt_conversion_context::flush_section()
{ {
for (long i=0; i< current_root_elements_.size(); i++) for (long i=0; i< current_root_elements_.size(); i++)
{ {
if ((sections_.back().continuous && i<2) || !sections_.back().continuous) if ((sections_.back().continuous && i < 2) || !sections_.back().continuous)
// при вставлении параграфа возможен искусственный разрыв в параграфах - см add_page_break // при вставлении параграфа возможен искусственный разрыв в параграфах - см add_page_break
{ {
text_soft_page_break * break_ = dynamic_cast<text_soft_page_break*>(current_root_elements_[i].elm.get()); text_soft_page_break * break_ = dynamic_cast<text_soft_page_break*>(current_root_elements_[i].elm.get());
...@@ -647,7 +656,7 @@ void odt_conversion_context::flush_section() ...@@ -647,7 +656,7 @@ void odt_conversion_context::flush_section()
} }
current_root_elements_.clear(); current_root_elements_.clear();
sections_.back().empty = false; //sections_.back().empty = false;
} }
} }
void odt_conversion_context::start_run(bool styled) void odt_conversion_context::start_run(bool styled)
......
...@@ -230,7 +230,6 @@ void DocxConverter::convert_document() ...@@ -230,7 +230,6 @@ void DocxConverter::convert_document()
for (int sect = 0; sect < sections.size(); sect++) for (int sect = 0; sect < sections.size(); sect++)
{ {
current_section_properties = &sections[sect]; current_section_properties = &sections[sect];
//convert(sections[sect].props, sections[sect].root);
for (long i = sections[sect].start_para; i < sections[sect].end_para; i++) for (long i = sections[sect].start_para; i < sections[sect].end_para; i++)
{ {
...@@ -456,7 +455,7 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph) ...@@ -456,7 +455,7 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
{ {
paragraph_properties = state->get_paragraph_properties(); paragraph_properties = state->get_paragraph_properties();
if (oox_paragraph->m_oParagraphProperty->m_oPStyle.IsInit() && oox_paragraph->m_oParagraphProperty->m_oPStyle->m_sVal.IsInit()) if (oox_paragraph->m_oParagraphProperty && oox_paragraph->m_oParagraphProperty->m_oPStyle.IsInit() && oox_paragraph->m_oParagraphProperty->m_oPStyle->m_sVal.IsInit())
{ {
//перезатираем все свойства ... наложение не катит -- ваще то надо чистить после буквицы (Nadpis.docx) .. проверить надобность с остальными случами //перезатираем все свойства ... наложение не катит -- ваще то надо чистить после буквицы (Nadpis.docx) .. проверить надобность с остальными случами
paragraph_properties->content().clear(); paragraph_properties->content().clear();
...@@ -492,8 +491,6 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph) ...@@ -492,8 +491,6 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
if (bStartNewParagraph) if (bStartNewParagraph)
{ {
if (odt_context->is_paragraph_in_current_section_)
bStyled = true;
odt_context->start_paragraph(bStyled); odt_context->start_paragraph(bStyled);
if (odt_context->is_paragraph_in_current_section_) if (odt_context->is_paragraph_in_current_section_)
...@@ -532,15 +529,16 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph) ...@@ -532,15 +529,16 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87 math 17.3.2.25 void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87 math 17.3.2.25
{ {
if (oox_run == NULL) return; if (oox_run == NULL) return;
//хм разобраться а нужен ли он ... частенько бывает в неправильном месте!!! - A GRUBU.docx
//test for break - 2 first element ЭТОТ элемент НУЖНО вытащить отдельно !!! //https://forums.asp.net/t/1951556.aspx?Facing+problem+finding+out+page+end+in+Ms+Word+Open+XML+SDK+Asp+net+c+We+can+t+get+a+lastRenderedPageBreak
for(unsigned int i = 0; i < (std::min) ( (size_t)2, oox_run->m_arrItems.size()); ++i) ////test for break - 2 first element ЭТОТ элемент НУЖНО вытащить отдельно !!!
{ //for(unsigned int i = 0; i < (std::min) ( (size_t)2, oox_run->m_arrItems.size()); ++i)
if (oox_run->m_arrItems[i]->getType() == OOX::et_w_lastRenderedPageBreak) //{
{ // if (oox_run->m_arrItems[i]->getType() == OOX::et_w_lastRenderedPageBreak)
odt_context->add_page_break(); // {
} // odt_context->add_page_break();
} // }
//}
bool styled = false; bool styled = false;
if (oox_run->m_oRunProperty) if (oox_run->m_oRunProperty)
{ {
...@@ -867,7 +865,7 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp ...@@ -867,7 +865,7 @@ void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cp
if (current_section_properties) if (current_section_properties)
{ {
if ((current_section_properties->props->m_oPgNumType.IsInit()) && (current_section_properties->props->m_oPgNumType->m_oStart.IsInit())) if ((current_section_properties->props) && (current_section_properties->props->m_oPgNumType.IsInit()) && (current_section_properties->props->m_oPgNumType->m_oStart.IsInit()))
{ {
paragraph_properties->content().style_page_number_ = current_section_properties->props->m_oPgNumType->m_oStart->GetValue(); paragraph_properties->content().style_page_number_ = current_section_properties->props->m_oPgNumType->m_oStart->GetValue();
} }
...@@ -1122,12 +1120,12 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r ...@@ -1122,12 +1120,12 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
{ {
OOX::Logic::CSectionProperty* s = last_section_properties; OOX::Logic::CSectionProperty* s = last_section_properties;
bool present_title_page = s->m_oTitlePg.IsInit() ? true : false; bool present_title_page = s->m_oTitlePg.IsInit() ? true : false;
bool present_odd_even_pages = odt_context->page_layout_context()->even_and_left_headers_; bool present_odd_even_pages = odt_context->page_layout_context()->even_and_left_headers_;
bool add_title_header = false, add_title_footer = false; bool add_title_header = false, add_title_footer = false;
bool add_odd_even_pages_header = false, add_odd_even_pages_footer = false; bool add_odd_even_pages_header = false, add_odd_even_pages_footer = false;
bool add_default_header = false, add_default_footer = false; bool add_default_header = false, add_default_footer = false;
std::vector<int> types; std::vector<int> types;
...@@ -1195,7 +1193,6 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r ...@@ -1195,7 +1193,6 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
//-------------------------------------------------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------------------------------------------------
// то что относится собственно к секциям-разделам // то что относится собственно к секциям-разделам
//if (!root)odt_context->add_section(continuous);
//nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oBidi; //nullable<ComplexTypes::Word::COnOff2<SimpleTypes::onoffTrue> > m_oBidi;
//nullable<ComplexTypes::Word::CDocGrid > m_oDocGrid; //nullable<ComplexTypes::Word::CDocGrid > m_oDocGrid;
...@@ -1223,7 +1220,8 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r ...@@ -1223,7 +1220,8 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
if (/*num_columns != odt_context->get_current_section_columns() || */num_columns >= 1) //колонки if (/*num_columns != odt_context->get_current_section_columns() || */num_columns >= 1) //колонки
{ {
odt_context->add_section(continuous); if (!root || num_columns > 1)
odt_context->add_section(continuous);
if (oox_section_pr->m_oCols.IsInit()) if (oox_section_pr->m_oCols.IsInit())
{ {
...@@ -1256,8 +1254,6 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r ...@@ -1256,8 +1254,6 @@ void DocxConverter::convert(OOX::Logic::CSectionProperty *oox_section_pr, bool r
//} //}
odt_context->add_section_column(width_space); odt_context->add_section_column(width_space);
} }
if (root) odt_context->flush_section();
} }
} }
void DocxConverter::convert(OOX::Logic::CBackground *oox_background, int type) void DocxConverter::convert(OOX::Logic::CBackground *oox_background, int type)
...@@ -1654,17 +1650,27 @@ void DocxConverter::convert(OOX::Logic::CRunProperty *oox_run_pr, odf_writer::st ...@@ -1654,17 +1650,27 @@ void DocxConverter::convert(OOX::Logic::CRunProperty *oox_run_pr, odf_writer::st
text_properties->content().fo_font_weight_ = odf_types::font_weight(odf_types::font_weight::WNormal); text_properties->content().fo_font_weight_ = odf_types::font_weight(odf_types::font_weight::WNormal);
} }
bool set_color = false;
if (oox_run_pr->m_oGradFill.IsInit()) if (oox_run_pr->m_oGradFill.IsInit())
{ {
bool res = odf_context()->drawing_context()->change_text_box_2_wordart(); odf_writer::odf_drawing_context *drawing_context = odf_context()->drawing_context();
if (drawing_context)
{
if (odf_context()->drawing_context()->change_text_box_2_wordart())
{
odf_context()->drawing_context()->start_area_properties();
{
OoxConverter::convert(oox_run_pr->m_oGradFill.GetPointer(), NULL);
}
odf_context()->drawing_context()->end_area_properties();
odf_context()->drawing_context()->start_area_properties(); set_color = true;
{ }
OoxConverter::convert(oox_run_pr->m_oGradFill.GetPointer(), NULL);
} }
odf_context()->drawing_context()->end_area_properties(); else{} //обычный текст .. градиент по телу абзаца (
} }
else if (oox_run_pr->m_oColor.IsInit())
if (!set_color && oox_run_pr->m_oColor.IsInit())
{ {
if(oox_run_pr->m_oColor->m_oVal.IsInit() && oox_run_pr->m_oColor->m_oVal->GetValue() == SimpleTypes::hexcolorAuto) if(oox_run_pr->m_oColor->m_oVal.IsInit() && oox_run_pr->m_oColor->m_oVal->GetValue() == SimpleTypes::hexcolorAuto)
text_properties->content().fo_color_ = odf_types::color(L"#000000"); text_properties->content().fo_color_ = odf_types::color(L"#000000");
...@@ -3506,7 +3512,16 @@ void DocxConverter::convert(OOX::Logic::CTbl *oox_table) ...@@ -3506,7 +3512,16 @@ void DocxConverter::convert(OOX::Logic::CTbl *oox_table)
if (in_frame) if (in_frame)
{ {
if (current_section_properties)
convert(current_section_properties->props, current_section_properties->root);
odt_context->start_paragraph(); odt_context->start_paragraph();
if (odt_context->is_paragraph_in_current_section_)
{
odt_context->set_master_page_name(odt_context->page_layout_context()->last_master() ?
odt_context->page_layout_context()->last_master()->get_name() : L"");
}
odt_context->start_drawings(); odt_context->start_drawings();
_CP_OPT(double) width, height, x, y ; _CP_OPT(double) width, height, x, y ;
...@@ -3566,6 +3581,7 @@ void DocxConverter::convert(OOX::Logic::CTbl *oox_table) ...@@ -3566,6 +3581,7 @@ void DocxConverter::convert(OOX::Logic::CTbl *oox_table)
odt_context->drawing_context()->start_drawing(); odt_context->drawing_context()->start_drawing();
odt_context->drawing_context()->start_text_box(); odt_context->drawing_context()->start_text_box();
odt_context->drawing_context()->set_text_box_tableframe(true);
odt_context->drawing_context()->set_text_box_min_size(0, 1.); odt_context->drawing_context()->set_text_box_min_size(0, 1.);
odt_context->drawing_context()->set_z_order(0x7fffffff-1); odt_context->drawing_context()->set_z_order(0x7fffffff-1);
odt_context->drawing_context()->set_text_box_parent_style(L"Frame"); odt_context->drawing_context()->set_text_box_parent_style(L"Frame");
......
...@@ -78,21 +78,27 @@ bool OOXPictureGraphicReader::Parse( ReaderParameter oParam , RtfShape& oOutput) ...@@ -78,21 +78,27 @@ bool OOXPictureGraphicReader::Parse( ReaderParameter oParam , RtfShape& oOutput)
} }
} }
} }
if (!bTryPicture)
{
//return false;
//рисуем крест (todooo получать с редактора реплейсмент картинку)
oOutput.m_nShapeType = 1;
oOutput.m_nFillColor = 0x967bdf;
}
} }
else if (!bTryPicture)
{ {
//return false; //рисуем "крест" (todooo получать с редактора реплейсмент картинку)
//convertDrawingML2Vml(); oOutput.m_nShapeType = 1;
oOutput.m_nShapeType = 1; oOutput.m_bFilled = 0;
oOutput.m_nFillColor = 0x967bdf; oOutput.m_bLine = 1;
oOutput.m_aTextItems = TextItemContainerPtr( new TextItemContainer() );
RtfParagraphPtr oParagraph( new RtfParagraph() );
oParagraph->m_oProperty = oParam.oRtf->m_oDefaultParagraphProp;
oParagraph->m_oProperty.m_oCharProperty = oParam.oRtf->m_oDefaultCharProp;
oParagraph->m_oProperty.m_nItap = 0;
RtfCharPtr oChar( new RtfChar() );
oChar->m_oProperty = oParam.oRtf->m_oDefaultCharProp;
oChar->setText( L"The element is not supported in RTF format." );
oParagraph->AddItem( oChar );
oOutput.m_aTextItems->AddItem( oParagraph );
} }
return true; return true;
} }
......
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
BasicRuntimeChecks="3" BasicRuntimeChecks="3"
RuntimeLibrary="3" RuntimeLibrary="3"
UsePrecompiledHeader="0" UsePrecompiledHeader="0"
ProgramDataBaseFileName="$(IntDir)\XlsFileTestD.pdb"
WarningLevel="3" WarningLevel="3"
Detect64BitPortabilityProblems="true" Detect64BitPortabilityProblems="true"
DebugInformationFormat="4" DebugInformationFormat="4"
...@@ -353,14 +354,6 @@ ...@@ -353,14 +354,6 @@
/> />
</FileConfiguration> </FileConfiguration>
</File> </File>
<File
RelativePath="..\..\Common\3dParty\icu\win_32\lib\icudt.lib"
>
</File>
<File
RelativePath="..\..\Common\3dParty\icu\win_32\lib\icuuc.lib"
>
</File>
<File <File
RelativePath="..\..\UnicodeConverter\UnicodeConverter.cpp" RelativePath="..\..\UnicodeConverter\UnicodeConverter.cpp"
> >
...@@ -374,6 +367,14 @@ ...@@ -374,6 +367,14 @@
</FileConfiguration> </FileConfiguration>
</File> </File>
</Filter> </Filter>
<File
RelativePath="..\..\build\bin\icu\win_32\icudt.lib"
>
</File>
<File
RelativePath="..\..\build\bin\icu\win_32\icuuc.lib"
>
</File>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>
......
...@@ -7,43 +7,46 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormat", "..\source\win3 ...@@ -7,43 +7,46 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormat", "..\source\win3
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsXlsxConverter", "..\source\win32\XlsXlsxConverter.vcproj", "{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsXlsxConverter", "..\source\win32\XlsXlsxConverter.vcproj", "{CBEDD0D1-10A8-45C1-AF81-8492F40964CA}"
ProjectSection(ProjectDependencies) = postProject
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeXlsFileTest", "..\ASCOfficeXlsFileTest\ASCOfficeXlsFileTest.vcproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCOfficeXlsFileTest", "..\ASCOfficeXlsFileTest\ASCOfficeXlsFileTest.vcproj", "{C2882DDD-07E6-4314-AD4B-48F43F38D722}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
{CBEDD0D1-10A8-45C1-AF81-8492F40964CA} = {CBEDD0D1-10A8-45C1-AF81-8492F40964CA} {CBEDD0D1-10A8-45C1-AF81-8492F40964CA} = {CBEDD0D1-10A8-45C1-AF81-8492F40964CA}
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363} {DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7} {43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "..\..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tiff", "..\..\DesktopEditor\cximage\tiff\Tiff_vs2005.vcproj", "{0588563C-F05C-428C-B21A-DD74756628B3}"
......
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