diff options
author | Jaskaran Singh <jvsg1303@gmail.com> | 2016-07-28 15:41:02 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-09-17 18:19:41 +0200 |
commit | b0a7a8044a5db9f58cc4a1275b42e54d09e66f55 (patch) | |
tree | 34d8fd92020708c705c29822c07ef2750f630e0a | |
parent | d39e1d4d87ca43bd0790669aa8aff5966a208015 (diff) |
Add facility for cell alignment to orcus interface
Change-Id: If073c34bc9898f2a069815892431a2db22f43d3a
-rw-r--r-- | sc/source/filter/inc/orcusinterface.hxx | 5 | ||||
-rw-r--r-- | sc/source/filter/orcus/interface.cxx | 52 |
2 files changed, 54 insertions, 3 deletions
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx index f3520b49cde5..c6d3d5a1a2ed 100644 --- a/sc/source/filter/inc/orcusinterface.hxx +++ b/sc/source/filter/inc/orcusinterface.hxx @@ -15,6 +15,7 @@ #include <tools/color.hxx> #include <tools/fontenum.hxx> +#include <editeng/svxenum.hxx> #include "sharedformulagroups.hxx" @@ -348,6 +349,10 @@ private: size_t mnProtectionId; size_t mnNumberFormatId; size_t mnStyleXf; + bool mbAlignment; + + SvxCellHorJustify meHor_alignment; + SvxCellVerJustify meVer_alignment; xf(); }; diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index ff8c7465ecfc..b9d8f66fe692 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -39,6 +39,7 @@ #include <editeng/fhgtitem.hxx> #include <editeng/lineitem.hxx> #include <editeng/crossedoutitem.hxx> +#include <editeng/justifyitem.hxx> #include <formula/token.hxx> #include <tools/datetime.hxx> @@ -930,7 +931,10 @@ ScOrcusStyles::xf::xf(): mnBorderId(0), mnProtectionId(0), mnNumberFormatId(0), - mnStyleXf(0) + mnStyleXf(0), + mbAlignment(false), + meHor_alignment(SVX_HOR_JUSTIFY_LEFT), + meVer_alignment(SVX_VER_JUSTIFY_CENTER) { } @@ -992,6 +996,12 @@ void ScOrcusStyles::applyXfToItemSet(SfxItemSet& rSet, const xf& rXf) const number_format& rFormat = maNumberFormats[nNumberFormatId]; if (rFormat.mbHasNumberFormatAttr) rFormat.applyToItemSet(rSet, mrDoc); + + if(rXf.mbAlignment) + { + rSet.Put(SvxHorJustifyItem(rXf.meHor_alignment, ATTR_HOR_JUSTIFY)); + rSet.Put(SvxVerJustifyItem(rXf.meVer_alignment, ATTR_VER_JUSTIFY)); + } } void ScOrcusStyles::applyXfToItemSet(SfxItemSet& rSet, size_t xfId) @@ -1463,12 +1473,48 @@ void ScOrcusStyles::set_xf_apply_alignment(bool /*b*/) { } -void ScOrcusStyles::set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t /*align*/) +void ScOrcusStyles::set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t align) { + switch (align) + { + case os::hor_alignment_t::left: + maCurrentXF.meHor_alignment = SVX_HOR_JUSTIFY_LEFT; + break; + case os::hor_alignment_t::right: + maCurrentXF.meHor_alignment = SVX_HOR_JUSTIFY_RIGHT; + break; + case os::hor_alignment_t::center: + maCurrentXF.meHor_alignment = SVX_HOR_JUSTIFY_CENTER; + break; + case os::hor_alignment_t::justified: + maCurrentXF.meHor_alignment = SVX_HOR_JUSTIFY_STANDARD; + break; + default: + ; + } + maCurrentXF.mbAlignment = true; } -void ScOrcusStyles::set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t /*align*/) +void ScOrcusStyles::set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t align) { + switch (align) + { + case os::ver_alignment_t::top: + maCurrentXF.meVer_alignment = SVX_VER_JUSTIFY_TOP; + break; + case os::ver_alignment_t::bottom: + maCurrentXF.meVer_alignment = SVX_VER_JUSTIFY_BOTTOM; + break; + case os::ver_alignment_t::middle: + maCurrentXF.meVer_alignment = SVX_VER_JUSTIFY_CENTER; + break; + case os::ver_alignment_t::justified: + maCurrentXF.meVer_alignment = SVX_VER_JUSTIFY_STANDARD; + break; + default: + ; + } + maCurrentXF.mbAlignment = true; } // cell style entry |