oox/source/token/tokens.txt | 1 + sc/inc/colorscale.hxx | 7 +++++++ sc/inc/fillinfo.hxx | 1 + sc/source/core/data/colorscale.cxx | 1 + sc/source/filter/inc/extlstcontext.hxx | 1 + sc/source/filter/oox/extlstcontext.cxx | 13 +++++++++++++ sc/source/filter/xml/xmlcondformat.cxx | 11 +++++++++++ sc/source/filter/xml/xmlexprt.cxx | 4 ++++ sc/source/filter/xml/xmlimprt.cxx | 1 + sc/source/filter/xml/xmlimprt.hxx | 3 ++- sc/source/ui/condformat/colorformat.cxx | 2 ++ sc/source/ui/view/output.cxx | 5 +++-- xmloff/inc/xmloff/xmltoken.hxx | 1 + xmloff/source/core/xmltoken.cxx | 1 + 14 files changed, 49 insertions(+), 3 deletions(-)
New commits: commit 3f135598fd508e70f31f36cd8a8d7a61ccf4ff79 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Wed Jun 27 05:53:29 2012 +0200 add import of axis color for data bars from xlsx Change-Id: I2a15f8787afceaea1cb8e1c2902c05367d3e5b15 diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt index 5bbaa62..fee78ee 100644 --- a/oox/source/token/tokens.txt +++ b/oox/source/token/tokens.txt @@ -713,6 +713,7 @@ axId axPos axis axisCol +axisColor axisPage axisPosition axisRow diff --git a/sc/source/filter/inc/extlstcontext.hxx b/sc/source/filter/inc/extlstcontext.hxx index 2ed742d..a76109c 100644 --- a/sc/source/filter/inc/extlstcontext.hxx +++ b/sc/source/filter/inc/extlstcontext.hxx @@ -43,6 +43,7 @@ public: private: void importDataBar( const AttributeList& rAttribs ); void importNegativeFillColor( const AttributeList& rAttribs ); + void importAxisColor( const AttributeList& rAttribs ); void* mpTarget; }; diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx index 3f6991e..6435128 100644 --- a/sc/source/filter/oox/extlstcontext.cxx +++ b/sc/source/filter/oox/extlstcontext.cxx @@ -58,6 +58,10 @@ void ExtCfRuleContext::onStartElement( const AttributeList& rAttribs ) break; case XLS_EXT_TOKEN( negativeFillColor ): importNegativeFillColor( rAttribs ); + break; + case XLS_EXT_TOKEN( axisColor ): + importAxisColor( rAttribs ); + break; default: break; @@ -93,6 +97,15 @@ namespace { } +void ExtCfRuleContext::importAxisColor( const AttributeList& rAttribs ) +{ + ScDataBarFormatData* pDataBar = static_cast<ScDataBarFormatData*>(mpTarget); + + sal_Int32 nColor = rAttribs.getIntegerHex( XML_rgb, API_RGB_TRANSPARENT ); + ::Color aColor = RgbToRgbComponents(nColor); + pDataBar->maAxisColor = aColor; +} + void ExtCfRuleContext::importNegativeFillColor( const AttributeList& rAttribs ) { sal_Int32 nColor = rAttribs.getIntegerHex( XML_rgb, API_RGB_TRANSPARENT ); commit 064bfb1aab1b207a37a602f155f3b3c15cef60b4 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Jun 26 16:42:33 2012 +0200 add support for axis color import/export Change-Id: I713981b9ae1a82ca0b014cde88abdc32af1f9975 diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx index 6aa55cc..a8fc8bb 100644 --- a/sc/source/filter/xml/xmlcondformat.cxx +++ b/sc/source/filter/xml/xmlcondformat.cxx @@ -193,6 +193,7 @@ ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_ rtl::OUString sGradient; rtl::OUString sAxisPosition; rtl::OUString sShowValue; + rtl::OUString sAxisColor; sal_Int16 nAttrCount(xAttrList.is() ? xAttrList->getLength() : 0); const SvXMLTokenMap& rAttrTokenMap = GetScImport().GetDataBarAttrMap(); @@ -221,6 +222,9 @@ ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_ case XML_TOK_DATABAR_SHOWVALUE: sShowValue = sValue; break; + case XML_TOK_DATABAR_AXISCOLOR: + sAxisColor = sValue; + break; default: break; } @@ -253,6 +257,13 @@ ScXMLDataBarFormatContext::ScXMLDataBarFormatContext( ScXMLImport& rImport, sal_ else mpFormatData->mbNeg = false; + if(!sAxisColor.isEmpty()) + { + sal_Int32 nColor = 0; + sax::Converter::convertColor( nColor, sAxisColor ); + mpFormatData->maAxisColor = Color(nColor); + } + if(!sShowValue.isEmpty()) { bool bShowValue = true; diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index 1bfe200..5cd5594 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3963,6 +3963,10 @@ void ScXMLExport::ExportConditionalFormat(SCTAB nTab) rtl::OUStringBuffer aBuffer; ::sax::Converter::convertColor(aBuffer, pFormatData->maPositiveColor.GetColor()); AddAttribute(XML_NAMESPACE_CALC_EXT, XML_POSITIVE_COLOR, aBuffer.makeStringAndClear()); + + aBuffer = rtl::OUStringBuffer(); + ::sax::Converter::convertColor(aBuffer, pFormatData->maAxisColor.GetColor()); + AddAttribute(XML_NAMESPACE_CALC_EXT, XML_AXIS_COLOR, aBuffer.makeStringAndClear()); SvXMLElementExport aElementDataBar(*this, XML_NAMESPACE_CALC_EXT, XML_DATA_BAR, true, true); { diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx index 5d1d99a..01e1d1c 100644 --- a/sc/source/filter/xml/xmlimprt.cxx +++ b/sc/source/filter/xml/xmlimprt.cxx @@ -723,6 +723,7 @@ const SvXMLTokenMap& ScXMLImport::GetDataBarAttrMap() { XML_NAMESPACE_CALC_EXT, XML_GRADIENT, XML_TOK_DATABAR_GRADIENT }, { XML_NAMESPACE_CALC_EXT, XML_AXIS_POSITION, XML_TOK_DATABAR_AXISPOSITION }, { XML_NAMESPACE_CALC_EXT, XML_SHOW_VALUE, XML_TOK_DATABAR_SHOWVALUE }, + { XML_NAMESPACE_CALC_EXT, XML_AXIS_COLOR, XML_TOK_DATABAR_AXISCOLOR }, XML_TOKEN_MAP_END }; diff --git a/sc/source/filter/xml/xmlimprt.hxx b/sc/source/filter/xml/xmlimprt.hxx index 891b9ba..624d781 100644 --- a/sc/source/filter/xml/xmlimprt.hxx +++ b/sc/source/filter/xml/xmlimprt.hxx @@ -197,7 +197,8 @@ enum ScXMLDataBarAttrTokens XML_TOK_DATABAR_NEGATIVE_COLOR, XML_TOK_DATABAR_GRADIENT, XML_TOK_DATABAR_AXISPOSITION, - XML_TOK_DATABAR_SHOWVALUE + XML_TOK_DATABAR_SHOWVALUE, + XML_TOK_DATABAR_AXISCOLOR }; enum ScXMLDataBarEntryAttrTokens diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx index b850e3e..e45091e 100644 --- a/xmloff/inc/xmloff/xmltoken.hxx +++ b/xmloff/inc/xmloff/xmltoken.hxx @@ -288,6 +288,7 @@ namespace xmloff { namespace token { XML_AUTOSIZE, XML_AVERAGE, XML_AXIS, + XML_AXIS_COLOR, XML_BACK_SCALE, XML_BACKFACE_CULLING, XML_BACKGROUND, diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx index 5296cae..875d0d9 100644 --- a/xmloff/source/core/xmltoken.cxx +++ b/xmloff/source/core/xmltoken.cxx @@ -292,6 +292,7 @@ namespace xmloff { namespace token { TOKEN( "autosize", XML_AUTOSIZE ), TOKEN( "average", XML_AVERAGE ), TOKEN( "axis", XML_AXIS ), + TOKEN( "axis-color", XML_AXIS_COLOR ), TOKEN( "back-scale", XML_BACK_SCALE ), TOKEN( "backface-culling", XML_BACKFACE_CULLING ), TOKEN( "background", XML_BACKGROUND ), commit 59c2e0487473508335924c2195759d9bcd9fb3a3 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Jun 26 16:18:52 2012 +0200 support colored axis in data bars Change-Id: Ie74404b35e31a2f96641abb18a9aaf46467e31c0 diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx index 72349dc..24aa2ea 100644 --- a/sc/inc/colorscale.hxx +++ b/sc/inc/colorscale.hxx @@ -99,6 +99,7 @@ enum ScAxisPostion struct SC_DLLPUBLIC ScDataBarFormatData { ScDataBarFormatData(): + maAxisColor(COL_BLACK), mbGradient(true), mbNeg(true), meAxisPosition(databar::AUTOMATIC), @@ -106,6 +107,7 @@ struct SC_DLLPUBLIC ScDataBarFormatData ScDataBarFormatData(const ScDataBarFormatData& r): maPositiveColor(r.maPositiveColor), + maAxisColor(r.maAxisColor), mbGradient(r.mbGradient), mbNeg(r.mbNeg), meAxisPosition(r.meAxisPosition), @@ -131,6 +133,11 @@ struct SC_DLLPUBLIC ScDataBarFormatData */ boost::scoped_ptr<Color> mpNegativeColor; /** + * Color of the axis if used + * Default color is black + */ + Color maAxisColor; + /** * Paint the bars with gradient. If this is used the default is to draw with * borders. * diff --git a/sc/inc/fillinfo.hxx b/sc/inc/fillinfo.hxx index 842ef1b..838255e 100644 --- a/sc/inc/fillinfo.hxx +++ b/sc/inc/fillinfo.hxx @@ -69,6 +69,7 @@ struct ScDataBarInfo double mnLength; // -100 to 100 bool mbGradient; bool mbShowValue; + Color maAxisColor; bool operator==(const ScDataBarInfo& r) const { diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index c677397..38f061a 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -842,6 +842,7 @@ ScDataBarInfo* ScDataBarFormat::GetDataBarInfo(const ScAddress& rAddr) const pInfo->mbGradient = mpFormatData->mbGradient; pInfo->mbShowValue = !mpFormatData->mbOnlyBar; + pInfo->maAxisColor = mpFormatData->maAxisColor; return pInfo; } diff --git a/sc/source/ui/condformat/colorformat.cxx b/sc/source/ui/condformat/colorformat.cxx index 7093bb1..71b88c9 100644 --- a/sc/source/ui/condformat/colorformat.cxx +++ b/sc/source/ui/condformat/colorformat.cxx @@ -176,6 +176,7 @@ ScDataBarSettingsDlg::ScDataBarSettingsDlg(Window* pWindow, const ScDataBarForma ::SetType(rData.mpUpperLimit.get(), maLbTypeMax); SetValue(rData.mpLowerLimit.get(), maEdMin); SetValue(rData.mpUpperLimit.get(), maEdMax); + maLbAxisCol.SelectEntry(rData.maAxisColor); TypeSelectHdl(NULL); } @@ -259,6 +260,7 @@ ScDataBarFormatData* ScDataBarSettingsDlg::GetData() pData->mbGradient = true; //FIXME pData->mpUpperLimit.reset(new ScColorScaleEntry()); pData->mpLowerLimit.reset(new ScColorScaleEntry()); + pData->maAxisColor = maLbAxisCol.GetSelectEntryColor(); ::GetType(maLbTypeMin, maEdMin, pData->mpLowerLimit.get(), mpNumberFormatter); ::GetType(maLbTypeMax, maEdMax, pData->mpUpperLimit.get(), mpNumberFormatter); diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index facfbe1..91cce9a 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -861,10 +861,11 @@ void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, con aLineInfo.SetDashCount( 4 ); aLineInfo.SetDistance( 3 ); aLineInfo.SetDashLen( 3 ); - pDev->SetFillColor(COL_BLACK); - pDev->SetLineColor(COL_BLACK); + pDev->SetFillColor(pOldDataBarInfo->maAxisColor); + pDev->SetLineColor(pOldDataBarInfo->maAxisColor); pDev->DrawLine(aPoint1, aPoint2, aLineInfo); pDev->SetLineColor(); + pDev->SetFillColor(); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits