diff options
author | Jaskaran Singh <jvsg1303@gmail.com> | 2016-07-28 15:41:02 +0530 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-09-18 00:15:16 +0200 |
commit | 16b8a44c6067b0ab72da730d9b24cff7bb09a104 (patch) | |
tree | 05802921d9c48d7e937df75dc5cb173369a81592 /sc/source/filter/orcus | |
parent | 933ae1905617a2e2cc177a34a7060a2b26e5827c (diff) |
Add facility for cell alignment to orcus interface
Change-Id: If073c34bc9898f2a069815892431a2db22f43d3a
Diffstat (limited to 'sc/source/filter/orcus')
-rw-r--r-- | sc/source/filter/orcus/interface.cxx | 52 |
1 files changed, 49 insertions, 3 deletions
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 |