summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaskaran Singh <jvsg1303@gmail.com>2016-06-27 11:52:15 +0530
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2016-09-17 18:19:36 +0200
commit6c477cb43e7778b773e163f4469d2febd10bf241 (patch)
tree5c6d0fe932607fa662c2a9ba81c350322da69338
parentFix getDirection for border in orcus interface (diff)
downloadcore-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.hxx4
-rw-r--r--sc/source/filter/orcus/interface.cxx49
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()