diff options
author | Jaskaran Singh <jvsg1303@gmail.com> | 2016-06-27 11:52:15 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-09-17 18:19:36 +0200 |
commit | 6c477cb43e7778b773e163f4469d2febd10bf241 (patch) | |
tree | 5c6d0fe932607fa662c2a9ba81c350322da69338 | |
parent | Fix getDirection for border in orcus interface (diff) | |
download | core-6c477cb43e7778b773e163f4469d2febd10bf241.tar.gz core-6c477cb43e7778b773e163f4469d2febd10bf241.zip |
Add functions for border width and style to orcus interface
Change-Id: Ia707c7bf110f67f6537841999d0b1504fb24eab5
-rw-r--r-- | sc/source/filter/inc/orcusinterface.hxx | 4 | ||||
-rw-r--r-- | sc/source/filter/orcus/interface.cxx | 49 |
2 files changed, 48 insertions, 5 deletions
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx index 22d12a8ac099..df1e9ed99ae3 100644 --- a/sc/source/filter/inc/orcusinterface.hxx +++ b/sc/source/filter/inc/orcusinterface.hxx @@ -37,6 +37,8 @@ class ScOrcusFactory; class ScRangeData; class SfxItemSet; +typedef sal_Int16 SvxBorderStyle; + namespace com { namespace sun { namespace star { namespace task { class XStatusIndicator; @@ -283,7 +285,9 @@ private: { struct border_line { + SvxBorderStyle mestyle; Color maColor; + double mnWidth; }; std::map<orcus::spreadsheet::border_direction_t, border_line> border_lines; diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index f5e30808343b..dbcbf27ca9ef 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -951,7 +951,6 @@ void ScOrcusStyles::set_font_underline(orcus::spreadsheet::underline_t e) { case orcus::spreadsheet::underline_t::single_line: case orcus::spreadsheet::underline_t::single_accounting: - case orcus::spreadsheet::underline_t::solid: maCurrentFont.meUnderline = LINESTYLE_SINGLE; break; case orcus::spreadsheet::underline_t::double_line: @@ -1109,9 +1108,48 @@ void ScOrcusStyles::set_border_style(orcus::spreadsheet::border_direction_t /*di } void ScOrcusStyles::set_border_style( - orcus::spreadsheet::border_direction_t /*dir*/, orcus::spreadsheet::border_style_t /*style*/) + orcus::spreadsheet::border_direction_t dir, orcus::spreadsheet::border_style_t style) { - // implement later + border::border_line& current_line = maCurrentBorder.border_lines[dir]; + switch (style) + { + case orcus::spreadsheet::border_style_t::unknown: + case orcus::spreadsheet::border_style_t::none: + case orcus::spreadsheet::border_style_t::solid: + case orcus::spreadsheet::border_style_t::hair: + case orcus::spreadsheet::border_style_t::medium: + case orcus::spreadsheet::border_style_t::thick: + case orcus::spreadsheet::border_style_t::thin: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::SOLID; + break; + case orcus::spreadsheet::border_style_t::dash_dot: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASH_DOT; + break; + case orcus::spreadsheet::border_style_t::dash_dot_dot: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASH_DOT_DOT; + break; + case orcus::spreadsheet::border_style_t::dashed: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASHED; + break; + case orcus::spreadsheet::border_style_t::dotted: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DOTTED; + break; + case orcus::spreadsheet::border_style_t::double_border: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DOUBLE; + break; + case orcus::spreadsheet::border_style_t::medium_dash_dot: + case orcus::spreadsheet::border_style_t::slant_dash_dot: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASH_DOT; + break; + case orcus::spreadsheet::border_style_t::medium_dash_dot_dot: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASH_DOT_DOT; + break; + case orcus::spreadsheet::border_style_t::medium_dashed: + current_line.mestyle = ::com::sun::star::table::BorderLineStyle::DASHED; + break; + default: + ; + } } void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t dir, @@ -1124,9 +1162,10 @@ void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t dir, current_line.maColor = Color(alpha, red, green, blue); } -void ScOrcusStyles::set_border_width(orcus::spreadsheet::border_direction_t /* dir */, orcus::length_t /* width */) +void ScOrcusStyles::set_border_width(orcus::spreadsheet::border_direction_t dir, orcus::length_t width ) { - + border::border_line& current_line = maCurrentBorder.border_lines[dir]; + current_line.mnWidth = translateToInternal(width.value, width.unit); } size_t ScOrcusStyles::commit_border() |