Related: tdf#129300 add ScRotateValueItem description in degrees
by inheriting from SdrAngleItem
Change-Id: Ifcaf46b12d685e683984e15ba2264c191c0d1e5f
Reviewed-on: https://gerrit.libreoffice.org/84847
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/cui/source/tabpages/align.cxx b/cui/source/tabpages/align.cxx
index c39c0b4..940f64a 100644
--- a/cui/source/tabpages/align.cxx
+++ b/cui/source/tabpages/align.cxx
@@ -25,6 +25,7 @@
#include <svx/dialmgr.hxx>
#include <bitmaps.hlst>
#include <svx/rotmodit.hxx>
#include <svx/sdangitm.hxx>
#include <editeng/frmdiritem.hxx>
#include <editeng/justifyitem.hxx>
@@ -233,7 +234,12 @@ bool AlignmentTabPage::FillItemSet( SfxItemSet* rSet )
if (m_xNfRotate->get_value_changed_from_saved())
{
rSet->Put(SfxInt32Item(GetWhich(SID_ATTR_ALIGN_DEGREES), m_aCtrlDial.GetRotation()));
const SdrAngleItem* pAngleItem = static_cast<const SdrAngleItem*>(GetOldItem(
*rSet, SID_ATTR_ALIGN_DEGREES));
assert(pAngleItem);
std::unique_ptr<SdrAngleItem> pNewAngletem(static_cast<SdrAngleItem*>(pAngleItem->Clone()));
pNewAngletem->SetValue(m_aCtrlDial.GetRotation());
rSet->Put(*pNewAngletem);
bChanged = true;
}
@@ -483,7 +489,7 @@ void AlignmentTabPage::Reset(const SfxItemSet* pCoreAttrs)
case SfxItemState::DEFAULT:
case SfxItemState::SET:
{
const SfxInt32Item& rAlignItem = static_cast<const SfxInt32Item&>(pCoreAttrs->Get(nWhich));
const SdrAngleItem& rAlignItem = static_cast<const SdrAngleItem&>(pCoreAttrs->Get(nWhich));
m_aCtrlDial.SetRotation(rAlignItem.GetValue());
break;
}
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx
index 7b99440..4865e15 100644
--- a/sc/inc/attrib.hxx
+++ b/sc/inc/attrib.hxx
@@ -24,6 +24,7 @@
#include <svl/poolitem.hxx>
#include <svl/intitem.hxx>
#include <svl/eitem.hxx>
#include <svx/sdangitm.hxx>
#include <o3tl/sorted_vector.hxx>
#include <o3tl/typed_flags_set.hxx>
#include "scdllapi.h"
@@ -284,6 +285,18 @@ private:
ScCondFormatIndexes maIndex;
};
class SC_DLLPUBLIC ScRotateValueItem final : public SdrAngleItem
{
public:
ScRotateValueItem(sal_Int32 nAngle);
virtual ScRotateValueItem* Clone(SfxItemPool* pPool=nullptr) const override;
virtual bool GetPresentation( SfxItemPresentation ePresentation,
MapUnit, MapUnit,
OUString& rText,
const IntlWrapper& ) const override;
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/globstr.hrc b/sc/inc/globstr.hrc
index 1273baf..d9b92b5 100644
--- a/sc/inc/globstr.hrc
+++ b/sc/inc/globstr.hrc
@@ -514,6 +514,7 @@
#define STR_QUERY_PIVOTTABLE_DELTAB NC_("STR_QUERY_PIVOTTABLE_DELTAB", "The selected sheet(s) contain source data of related pivot tables that will be lost. Are you sure you want to delete the selected sheet(s)?")
#define STR_ERR_NAME_INVALID_CELL_REF NC_("STR_ERR_NAME_INVALID_CELL_REF", "Invalid name. Reference to a cell, or a range of cells not allowed.")
#define STR_ERR_LONG_LINK_FORMULA_NEEDING_CHECK NC_("STR_ERR_LONG_LINK_FORMULA_NEEDING_CHECK", "External content disabled.")
#define STR_TEXTORIENTANGLE NC_("STR_TEXTORIENTANGLE", "Text orientation angle")
#endif
diff --git a/sc/inc/scitems.hxx b/sc/inc/scitems.hxx
index 0606b39..9093d54 100644
--- a/sc/inc/scitems.hxx
+++ b/sc/inc/scitems.hxx
@@ -50,6 +50,7 @@ class SvxVerJustifyItem;
class SvxBrushItem;
class SvxBoxItem;
class ScCondFormatItem;
class ScRotateValueItem;
class SvxLineItem;
class SvxRotateModeItem;
class SfxStringItem;
@@ -118,7 +119,7 @@ class SvxSizeItem;
#define ATTR_VER_JUSTIFY TypedWhichId<SvxVerJustifyItem>(132)
#define ATTR_VER_JUSTIFY_METHOD TypedWhichId<SvxJustifyMethodItem>(133)
#define ATTR_STACKED TypedWhichId<SfxBoolItem>(134)
#define ATTR_ROTATE_VALUE TypedWhichId<SfxInt32Item>(135)
#define ATTR_ROTATE_VALUE TypedWhichId<ScRotateValueItem>(135)
#define ATTR_ROTATE_MODE TypedWhichId<SvxRotateModeItem>(136)
#define ATTR_VERTICAL_ASIAN TypedWhichId<SfxBoolItem>(137)
#define ATTR_WRITINGDIR TypedWhichId<SvxFrameDirectionItem>(138)
diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx
index 8636d6b..42a0e9fd 100644
--- a/sc/source/core/data/attarray.cxx
+++ b/sc/source/core/data/attarray.cxx
@@ -1359,7 +1359,7 @@ bool ScAttrArray::HasAttrib_Impl(const ScPatternAttr* pPattern, HasAttrFlags nMa
}
if ( nMask & HasAttrFlags::Rotate )
{
const SfxInt32Item* pRotate = &pPattern->GetItem( ATTR_ROTATE_VALUE );
const ScRotateValueItem* pRotate = &pPattern->GetItem( ATTR_ROTATE_VALUE );
// 90 or 270 degrees is former SvxOrientationItem - only look for other values
// (see ScPatternAttr::GetCellOrientation)
sal_Int32 nAngle = pRotate->GetValue();
diff --git a/sc/source/core/data/attrib.cxx b/sc/source/core/data/attrib.cxx
index 94a8922..bc2271f 100644
--- a/sc/source/core/data/attrib.cxx
+++ b/sc/source/core/data/attrib.cxx
@@ -727,4 +727,25 @@ void ScCondFormatItem::dumpAsXml(xmlTextWriterPtr pWriter) const
xmlTextWriterEndElement(pWriter);
}
ScRotateValueItem::ScRotateValueItem(sal_Int32 nAngle)
: SdrAngleItem(ATTR_ROTATE_VALUE, nAngle)
{
}
ScRotateValueItem* ScRotateValueItem::Clone(SfxItemPool*) const
{
return new ScRotateValueItem(GetValue());
}
bool ScRotateValueItem::GetPresentation(SfxItemPresentation ePresentation,
MapUnit eCoreMetric, MapUnit ePresMetric,
OUString& rText,
const IntlWrapper& rWrapper) const
{
bool bRet = SdrAngleItem::GetPresentation(SfxItemPresentation::Nameless, eCoreMetric, ePresMetric, rText, rWrapper);
if (bRet && ePresentation == SfxItemPresentation::Complete)
rText = ScResId(STR_TEXTORIENTANGLE) + " " + rText;
return bRet;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index d196a7c..00d978f 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -207,7 +207,7 @@ long ScColumn::GetNeededSize(
{
if (pCondSet &&
pCondSet->GetItemState(ATTR_ROTATE_VALUE, true, &pCondItem) == SfxItemState::SET)
nRotate = static_cast<const SfxInt32Item*>(pCondItem)->GetValue();
nRotate = static_cast<const ScRotateValueItem*>(pCondItem)->GetValue();
else
nRotate = pPattern->GetItem(ATTR_ROTATE_VALUE).GetValue();
if ( nRotate )
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index 6dfccb7..db067aa 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -31,6 +31,7 @@
#include <svl/itemiter.hxx>
#include <svl/stritem.hxx>
#include <svx/algitem.hxx>
#include <svx/sdangitm.hxx>
#include <editeng/boxitem.hxx>
#include <editeng/lineitem.hxx>
#include <editeng/brushitem.hxx>
@@ -249,7 +250,7 @@ ScDocumentPool::ScDocumentPool()
mvPoolDefaults[ ATTR_VER_JUSTIFY - ATTR_STARTINDEX ] = new SvxVerJustifyItem( SvxCellVerJustify::Standard, ATTR_VER_JUSTIFY);
mvPoolDefaults[ ATTR_VER_JUSTIFY_METHOD - ATTR_STARTINDEX ] = new SvxJustifyMethodItem( SvxCellJustifyMethod::Auto, ATTR_VER_JUSTIFY_METHOD);
mvPoolDefaults[ ATTR_STACKED - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_STACKED, false );
mvPoolDefaults[ ATTR_ROTATE_VALUE - ATTR_STARTINDEX ] = new SfxInt32Item( ATTR_ROTATE_VALUE, 0 );
mvPoolDefaults[ ATTR_ROTATE_VALUE - ATTR_STARTINDEX ] = new ScRotateValueItem( 0 );
mvPoolDefaults[ ATTR_ROTATE_MODE - ATTR_STARTINDEX ] = new SvxRotateModeItem( SVX_ROTATE_MODE_BOTTOM, ATTR_ROTATE_MODE );
mvPoolDefaults[ ATTR_VERTICAL_ASIAN - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_VERTICAL_ASIAN );
// The default for the ATTR_WRITINGDIR cell attribute must by SvxFrameDirection::Environment,
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 47f3eeb..3c34473 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -5173,7 +5173,7 @@ bool ScDocument::HasAttrib( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
// 90 or 270 degrees is former SvxOrientationItem - only look for other values
// (see ScPatternAttr::GetCellOrientation)
sal_Int32 nAngle = static_cast<const SfxInt32Item*>(pItem)->GetValue();
sal_Int32 nAngle = static_cast<const ScRotateValueItem*>(pItem)->GetValue();
if ( nAngle != 0 && nAngle != 9000 && nAngle != 27000 )
{
bAnyItem = true;
diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx
index f7e4010..996afb8 100644
--- a/sc/source/core/data/patattr.cxx
+++ b/sc/source/core/data/patattr.cxx
@@ -50,6 +50,7 @@
#include <vcl/outdev.hxx>
#include <tools/fract.hxx>
#include <attrib.hxx>
#include <patattr.hxx>
#include <docpool.hxx>
#include <stlsheet.hxx>
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index 254db1f..63ae9fd 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -56,6 +56,7 @@
#include <tools/tenccvt.hxx>
#include <osl/diagnose.h>
#include <attrib.hxx>
#include <globstr.hrc>
#include <scitems.hxx>
#include <scresid.hxx>
@@ -195,7 +196,7 @@ ScAutoFormatDataField::ScAutoFormatDataField()
m_aStacked = std::make_unique<SfxBoolItem>();
m_aMargin = std::make_unique<SvxMarginItem>(ATTR_MARGIN);
m_aLinebreak = std::make_unique<SfxBoolItem>(ATTR_LINEBREAK);
m_aRotateAngle = std::make_unique<SfxInt32Item>(ATTR_ROTATE_VALUE);
m_aRotateAngle = std::make_unique<ScRotateValueItem>(0);
m_aRotateMode = std::make_unique<SvxRotateModeItem>(SVX_ROTATE_MODE_STANDARD, ATTR_ROTATE_MODE);
}
@@ -371,7 +372,7 @@ void ScAutoFormatData::PutItem( sal_uInt16 nIndex, const SfxPoolItem& rItem )
case ATTR_STACKED: rField.SetStacked( static_cast<const SfxBoolItem&>(rItem) ); break;
case ATTR_MARGIN: rField.SetMargin( static_cast<const SvxMarginItem&>(rItem) ); break;
case ATTR_LINEBREAK: rField.SetLinebreak( static_cast<const SfxBoolItem&>(rItem) ); break;
case ATTR_ROTATE_VALUE: rField.SetRotateAngle( static_cast<const SfxInt32Item&>(rItem) ); break;
case ATTR_ROTATE_VALUE: rField.SetRotateAngle( static_cast<const ScRotateValueItem&>(rItem) ); break;
case ATTR_ROTATE_MODE: rField.SetRotateMode( static_cast<const SvxRotateModeItem&>(rItem) ); break;
}
}
diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 66d7429..014eb81 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -833,7 +833,7 @@ void XclImpCellAlign::FillToItemSet( SfxItemSet& rItemSet, const XclImpFont* pFo
ScfTools::PutItem( rItemSet, SfxBoolItem( ATTR_STACKED, bStacked ), bSkipPoolDefs );
// set an angle in the range from -90 to 90 degrees
sal_Int32 nAngle = XclTools::GetScRotation( nXclRot, 0 );
ScfTools::PutItem( rItemSet, SfxInt32Item( ATTR_ROTATE_VALUE, nAngle ), bSkipPoolDefs );
ScfTools::PutItem( rItemSet, ScRotateValueItem( nAngle ), bSkipPoolDefs );
// set "Use asian vertical layout", if cell is stacked and font contains CKJ characters
bool bAsianVert = bStacked && pFont && pFont->HasAsianChars();
ScfTools::PutItem( rItemSet, SfxBoolItem( ATTR_VERTICAL_ASIAN, bAsianVert ), bSkipPoolDefs );
diff --git a/sc/source/filter/oox/stylesbuffer.cxx b/sc/source/filter/oox/stylesbuffer.cxx
index a6887b7b..48df2d7 100644
--- a/sc/source/filter/oox/stylesbuffer.cxx
+++ b/sc/source/filter/oox/stylesbuffer.cxx
@@ -1295,7 +1295,7 @@ void Alignment::fillToItemSet( SfxItemSet& rItemSet, bool bSkipPoolDefs ) const
// CTL text direction
ScfTools::PutItem( rItemSet, SvxFrameDirectionItem( GetScFrameDir(), ATTR_WRITINGDIR ), bSkipPoolDefs );
// set an angle in the range from -90 to 90 degrees
ScfTools::PutItem( rItemSet, SfxInt32Item( ATTR_ROTATE_VALUE, maApiData.mnRotation ), bSkipPoolDefs );
ScfTools::PutItem( rItemSet, ScRotateValueItem( maApiData.mnRotation ), bSkipPoolDefs );
// Orientation
ScfTools::PutItem( rItemSet, SfxBoolItem( ATTR_STACKED, maApiData.meOrientation == css::table::CellOrientation_STACKED ), bSkipPoolDefs );
// indent
diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx
index 5e1d077..008a3ea 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -187,7 +187,7 @@ tools::Rectangle ScAccessibleCell::GetBoundingBox() const
simply expand the cell size to the width of the unrotated text. */
if (mpDoc)
{
const SfxInt32Item* pItem = mpDoc->GetAttr( maCellAddress, ATTR_ROTATE_VALUE );
const ScRotateValueItem* pItem = mpDoc->GetAttr( maCellAddress, ATTR_ROTATE_VALUE );
if( pItem && (pItem->GetValue() != 0) )
{
tools::Rectangle aParaRect = GetParagraphBoundingBox();
diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx b/sc/source/ui/Accessibility/AccessibleText.cxx
index 8cfc3a2..540e9ac 100644
--- a/sc/source/ui/Accessibility/AccessibleText.cxx
+++ b/sc/source/ui/Accessibility/AccessibleText.cxx
@@ -23,6 +23,7 @@
#include <memory>
#include <AccessibleText.hxx>
#include <AccessibleCell.hxx>
#include <attrib.hxx>
#include <tabvwsh.hxx>
#include <editutil.hxx>
#include <document.hxx>
@@ -534,7 +535,7 @@ SvxTextForwarder* ScAccessibleCellTextData::GetTextForwarder()
return the size of the complete text then, which is used to expand
the cell bounding box in ScAccessibleCell::GetBoundingBox()
(see sc/source/ui/Accessibility/AccessibleCell.cxx). */
const SfxInt32Item* pItem = rDoc.GetAttr( aCellPos, ATTR_ROTATE_VALUE );
const ScRotateValueItem* pItem = rDoc.GetAttr( aCellPos, ATTR_ROTATE_VALUE );
if( pItem && (pItem->GetValue() != 0) )
{
pEditEngine->SetPaperSize( Size( LONG_MAX, aSize.getHeight() ) );
diff --git a/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx b/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
index e92edd6..a50c529 100644
--- a/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
+++ b/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
@@ -20,11 +20,13 @@
#include "AlignmentPropertyPanel.hxx"
#include <editeng/justifyitem.hxx>
#include <sc.hrc>
#include <attrib.hxx>
#include <scitems.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/dispatch.hxx>
#include <svl/intitem.hxx>
#include <svx/rotmodit.hxx>
#include <svx/sdangitm.hxx>
#include <svtools/unitconv.hxx>
#include <unotools/localedatawrapper.hxx>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
@@ -177,7 +179,7 @@ IMPL_LINK_NOARG( AlignmentPropertyPanel, AngleModifiedHdl, Edit&, void )
FormatDegrees(fTmp);
sal_Int64 nTmp = static_cast<sal_Int64>(fTmp)*100;
SfxInt32Item aAngleItem( SID_ATTR_ALIGN_DEGREES,static_cast<sal_uInt32>(nTmp));
ScRotateValueItem aAngleItem(static_cast<sal_uInt32>(nTmp));
GetBindings()->GetDispatcher()->ExecuteList(
SID_ATTR_ALIGN_DEGREES, SfxCallMode::RECORD, { &aAngleItem });
@@ -380,7 +382,7 @@ void AlignmentPropertyPanel::NotifyItemUpdate(
case SID_ATTR_ALIGN_DEGREES:
if (eState >= SfxItemState::DEFAULT)
{
long nTmp = static_cast<const SfxInt32Item*>(pState)->GetValue();
long nTmp = static_cast<const ScRotateValueItem*>(pState)->GetValue();
mpMtrAngle->SetValue( nTmp / 100); //wj
switch(nTmp)
{
diff --git a/sc/source/ui/unoobj/afmtuno.cxx b/sc/source/ui/unoobj/afmtuno.cxx
index 81ad9b3..0bd7b7ba 100644
--- a/sc/source/ui/unoobj/afmtuno.cxx
+++ b/sc/source/ui/unoobj/afmtuno.cxx
@@ -36,6 +36,7 @@
#include <com/sun/star/table/TableBorder2.hpp>
#include <com/sun/star/awt/FontSlant.hpp>
#include <attrib.hxx>
#include <afmtuno.hxx>
#include <miscuno.hxx>
#include <autoform.hxx>
@@ -595,11 +596,11 @@ void SAL_CALL ScAutoFormatFieldObj::setPropertyValue(
break;
case table::CellOrientation_TOPBOTTOM:
pData->PutItem( nFieldIndex, SfxBoolItem( ATTR_STACKED, false ) );
pData->PutItem( nFieldIndex, SfxInt32Item( ATTR_ROTATE_VALUE, 27000 ) );
pData->PutItem( nFieldIndex, ScRotateValueItem( 27000 ) );
break;
case table::CellOrientation_BOTTOMTOP:
pData->PutItem( nFieldIndex, SfxBoolItem( ATTR_STACKED, false ) );
pData->PutItem( nFieldIndex, SfxInt32Item( ATTR_ROTATE_VALUE, 9000 ) );
pData->PutItem( nFieldIndex, ScRotateValueItem( 9000 ) );
break;
case table::CellOrientation_STACKED:
pData->PutItem( nFieldIndex, SfxBoolItem( ATTR_STACKED, true ) );
@@ -685,7 +686,7 @@ uno::Any SAL_CALL ScAutoFormatFieldObj::getPropertyValue( const OUString& aPrope
{
case ATTR_STACKED:
{
const SfxInt32Item* pRotItem = pData->GetItem( nFieldIndex, ATTR_ROTATE_VALUE );
const ScRotateValueItem* pRotItem = pData->GetItem( nFieldIndex, ATTR_ROTATE_VALUE );
sal_Int32 nRot = pRotItem ? pRotItem->GetValue() : 0;
bool bStacked = static_cast<const SfxBoolItem*>(pItem)->GetValue();
SvxOrientationItem( nRot, bStacked, 0 ).QueryValue( aVal );
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index d8a12d3..676ab2b 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -2112,7 +2112,7 @@ static void lcl_SetCellProperty( const SfxItemPropertySimpleEntry& rEntry, const
if ( nRotVal < 0 )
nRotVal += 36000;
rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, nRotVal ) );
rSet.Put( ScRotateValueItem( nRotVal ) );
}
break;
@@ -2128,12 +2128,12 @@ static void lcl_SetCellProperty( const SfxItemPropertySimpleEntry& rEntry, const
break;
case table::CellOrientation_TOPBOTTOM:
rSet.Put( SfxBoolItem( ATTR_STACKED, false ) );
rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 27000 ) );
rSet.Put( ScRotateValueItem( 27000 ) );
rSecondItemId = ATTR_ROTATE_VALUE;
break;
case table::CellOrientation_BOTTOMTOP:
rSet.Put( SfxBoolItem( ATTR_STACKED, false ) );
rSet.Put( SfxInt32Item( ATTR_ROTATE_VALUE, 9000 ) );
rSet.Put( ScRotateValueItem( 9000 ) );
rSecondItemId = ATTR_ROTATE_VALUE;
break;
case table::CellOrientation_STACKED:
diff --git a/sc/source/ui/unoobj/styleuno.cxx b/sc/source/ui/unoobj/styleuno.cxx
index 3d61f1a..493c77c 100644
--- a/sc/source/ui/unoobj/styleuno.cxx
+++ b/sc/source/ui/unoobj/styleuno.cxx
@@ -1533,7 +1533,7 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
nRotVal %= 36000;
if (nRotVal < 0)
nRotVal += 36000;
rSet.Put(SfxInt32Item(ATTR_ROTATE_VALUE, nRotVal));
rSet.Put(ScRotateValueItem(nRotVal));
}
}
break;
@@ -1549,11 +1549,11 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
break;
case table::CellOrientation_TOPBOTTOM:
rSet.Put(SfxBoolItem(ATTR_STACKED, false));
rSet.Put(SfxInt32Item(ATTR_ROTATE_VALUE, 27000));
rSet.Put(ScRotateValueItem(27000));
break;
case table::CellOrientation_BOTTOMTOP:
rSet.Put(SfxBoolItem(ATTR_STACKED, false));
rSet.Put(SfxInt32Item(ATTR_ROTATE_VALUE, 9000));
rSet.Put(ScRotateValueItem(9000));
break;
case table::CellOrientation_STACKED:
rSet.Put(SfxBoolItem(ATTR_STACKED, true));
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index b46c3d1..8f5b723 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -2807,7 +2807,7 @@ void ScOutputData::DrawEditStandard(DrawEditParam& rParam)
bool bRepeat = (rParam.meHorJustAttr == SvxCellHorJustify::Repeat && !rParam.mbBreak);
bool bShrink = !rParam.mbBreak && !bRepeat && lcl_GetBoolValue(*rParam.mpPattern, ATTR_SHRINKTOFIT, rParam.mpCondSet);
long nAttrRotate = lcl_GetValue<SfxInt32Item, long>(*rParam.mpPattern, ATTR_ROTATE_VALUE, rParam.mpCondSet);
long nAttrRotate = lcl_GetValue<ScRotateValueItem, long>(*rParam.mpPattern, ATTR_ROTATE_VALUE, rParam.mpCondSet);
if ( rParam.meHorJustAttr == SvxCellHorJustify::Repeat )
{
@@ -3982,7 +3982,7 @@ void ScOutputData::DrawEditAsianVertical(DrawEditParam& rParam)
bool bHidden = false;
bool bShrink = !rParam.mbBreak && lcl_GetBoolValue(*rParam.mpPattern, ATTR_SHRINKTOFIT, rParam.mpCondSet);
long nAttrRotate = lcl_GetValue<SfxInt32Item, long>(*rParam.mpPattern, ATTR_ROTATE_VALUE, rParam.mpCondSet);
long nAttrRotate = lcl_GetValue<ScRotateValueItem, long>(*rParam.mpPattern, ATTR_ROTATE_VALUE, rParam.mpCondSet);
if (nAttrRotate)
{