[Libreoffice-commits] core.git: chart2/source cui/source filter/source include/filter include/o3tl include/oox include/svx include/tools oox/source reportdesign/source sc/inc sc/qa sc/source sd/qa sd/source svx/inc svx/qa svx/source sw/inc sw/source writerfilter/source
Noel (via logerrit)
logerrit at kemper.freedesktop.org
Sat Jan 2 14:27:27 UTC 2021
chart2/source/controller/dialogs/res_DataLabel.cxx | 6
chart2/source/controller/dialogs/tp_AxisLabel.cxx | 4
chart2/source/controller/dialogs/tp_AxisLabel.hxx | 3
chart2/source/controller/dialogs/tp_PolarOptions.cxx | 2
chart2/source/controller/dialogs/tp_TitleRotation.cxx | 4
chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx | 6
chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx | 6
chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx | 4
chart2/source/controller/itemsetwrapper/TextLabelItemConverter.cxx | 4
chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx | 6
chart2/source/controller/main/DrawCommandDispatch.cxx | 2
chart2/source/view/main/ChartItemPool.cxx | 4
cui/source/tabpages/transfrm.cxx | 7
filter/source/msfilter/escherex.cxx | 8
filter/source/msfilter/msdffimp.cxx | 70 ++--
filter/source/msfilter/svdfppt.cxx | 12
include/filter/msfilter/msdffimp.hxx | 5
include/o3tl/strong_int.hxx | 6
include/oox/export/drawingml.hxx | 4
include/oox/vml/vmlformatting.hxx | 3
include/svx/EnhancedCustomShape2d.hxx | 5
include/svx/algitem.hxx | 5
include/svx/dialcontrol.hxx | 15 -
include/svx/obj3d.hxx | 2
include/svx/scene3d.hxx | 2
include/svx/sdangitm.hxx | 6
include/svx/svdedtv.hxx | 10
include/svx/svdglev.hxx | 2
include/svx/svdglue.hxx | 17 -
include/svx/svdhdl.hxx | 4
include/svx/svdmodel.hxx | 3
include/svx/svdoashp.hxx | 6
include/svx/svdobj.hxx | 17 -
include/svx/svdocirc.hxx | 20 -
include/svx/svdoedge.hxx | 4
include/svx/svdogrp.hxx | 12
include/svx/svdomeas.hxx | 6
include/svx/svdopath.hxx | 4
include/svx/svdorect.hxx | 4
include/svx/svdotext.hxx | 8
include/svx/svdovirt.hxx | 12
include/svx/svdpoev.hxx | 2
include/svx/svdsnpv.hxx | 13
include/svx/svdtrans.hxx | 15 -
include/svx/sxciaitm.hxx | 4
include/svx/sxmtfitm.hxx | 2
include/tools/degree.hxx | 22 +
oox/source/drawingml/shape.cxx | 5
oox/source/export/drawingml.cxx | 31 +-
oox/source/shape/WpsContext.cxx | 4
oox/source/vml/vmlformatting.cxx | 10
oox/source/vml/vmlshape.cxx | 12
reportdesign/source/ui/report/ReportSection.cxx | 2
sc/inc/attrib.hxx | 2
sc/inc/patattr.hxx | 3
sc/qa/unit/scshapetest.cxx | 19 -
sc/qa/unit/ucalc.cxx | 6
sc/source/core/data/attarray.cxx | 4
sc/source/core/data/attrib.cxx | 2
sc/source/core/data/column2.cxx | 10
sc/source/core/data/docpool.cxx | 2
sc/source/core/data/document.cxx | 4
sc/source/core/data/patattr.cxx | 22 -
sc/source/core/data/table2.cxx | 4
sc/source/core/tool/autoform.cxx | 2
sc/source/filter/excel/xestyle.cxx | 2
sc/source/filter/excel/xichart.cxx | 8
sc/source/filter/excel/xiescher.cxx | 20 -
sc/source/filter/excel/xistyle.cxx | 2
sc/source/filter/excel/xlchart.cxx | 4
sc/source/filter/excel/xltools.cxx | 8
sc/source/filter/html/htmlexp2.cxx | 2
sc/source/filter/inc/stylesbuffer.hxx | 2
sc/source/filter/inc/xltools.hxx | 5
sc/source/filter/oox/stylesbuffer.cxx | 6
sc/source/filter/xcl97/xcl97rec.cxx | 12
sc/source/filter/xml/xmlexprt.cxx | 2
sc/source/ui/Accessibility/AccessibleCell.cxx | 2
sc/source/ui/Accessibility/AccessibleText.cxx | 2
sc/source/ui/drawfunc/fuconarc.cxx | 4
sc/source/ui/drawfunc/fuconcustomshape.cxx | 2
sc/source/ui/inc/output.hxx | 3
sc/source/ui/sidebar/AlignmentPropertyPanel.cxx | 6
sc/source/ui/unoobj/afmtuno.cxx | 6
sc/source/ui/unoobj/cellsuno.cxx | 8
sc/source/ui/unoobj/styleuno.cxx | 8
sc/source/ui/view/output.cxx | 12
sc/source/ui/view/output2.cxx | 36 +-
sd/qa/unit/uiimpress.cxx | 2
sd/source/ui/app/optsitem.cxx | 4
sd/source/ui/dlg/copydlg.cxx | 4
sd/source/ui/dlg/tpoption.cxx | 4
sd/source/ui/func/fuconarc.cxx | 8
sd/source/ui/func/fuconcs.cxx | 2
sd/source/ui/func/fucopy.cxx | 3
sd/source/ui/func/fusel.cxx | 12
sd/source/ui/inc/optsitem.hxx | 1
sd/source/ui/view/frmview.cxx | 8
svx/inc/dragmt3d.hxx | 4
svx/inc/sxcaitm.hxx | 2
svx/inc/sxmtaitm.hxx | 2
svx/inc/sxroaitm.hxx | 2
svx/inc/sxrooitm.hxx | 2
svx/inc/sxsaitm.hxx | 2
svx/inc/sxsalitm.hxx | 4
svx/inc/sxsoitm.hxx | 4
svx/qa/unit/customshapes.cxx | 2
svx/source/customshapes/EnhancedCustomShape2d.cxx | 6
svx/source/customshapes/EnhancedCustomShape3d.cxx | 4
svx/source/customshapes/EnhancedCustomShapeEngine.cxx | 10
svx/source/dialog/dialcontrol.cxx | 23 -
svx/source/dialog/imapwnd.cxx | 8
svx/source/engine3d/dragmt3d.cxx | 8
svx/source/engine3d/obj3d.cxx | 4
svx/source/engine3d/scene3d.cxx | 4
svx/source/items/algitem.cxx | 12
svx/source/items/autoformathelper.cxx | 4
svx/source/sdr/contact/viewcontactofgraphic.cxx | 6
svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx | 2
svx/source/sdr/contact/viewcontactofsdrcircobj.cxx | 2
svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx | 4
svx/source/sdr/contact/viewcontactofsdrole2obj.cxx | 2
svx/source/sdr/contact/viewcontactofsdrpathobj.cxx | 2
svx/source/sdr/contact/viewcontactofsdrrectobj.cxx | 2
svx/source/sdr/properties/circleproperties.cxx | 2
svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 11
svx/source/svdraw/svdattr.cxx | 6
svx/source/svdraw/svddrgm1.hxx | 12
svx/source/svdraw/svddrgmt.cxx | 144 +++++-----
svx/source/svdraw/svdedtv1.cxx | 58 ++--
svx/source/svdraw/svdedxv.cxx | 2
svx/source/svdraw/svdfmtf.cxx | 17 -
svx/source/svdraw/svdglev.cxx | 6
svx/source/svdraw/svdglue.cxx | 90 +++---
svx/source/svdraw/svdhdl.cxx | 30 +-
svx/source/svdraw/svdmodel.cxx | 4
svx/source/svdraw/svdmrkv.cxx | 4
svx/source/svdraw/svdoashp.cxx | 49 +--
svx/source/svdraw/svdobj.cxx | 46 +--
svx/source/svdraw/svdocirc.cxx | 143 ++++-----
svx/source/svdraw/svdoedge.cxx | 4
svx/source/svdraw/svdograf.cxx | 12
svx/source/svdraw/svdogrp.cxx | 20 -
svx/source/svdraw/svdomeas.cxx | 34 +-
svx/source/svdraw/svdopath.cxx | 92 +++---
svx/source/svdraw/svdorect.cxx | 28 -
svx/source/svdraw/svdotext.cxx | 44 +--
svx/source/svdraw/svdotxdr.cxx | 8
svx/source/svdraw/svdotxed.cxx | 2
svx/source/svdraw/svdotxtr.cxx | 60 ++--
svx/source/svdraw/svdouno.cxx | 8
svx/source/svdraw/svdovirt.cxx | 16 -
svx/source/svdraw/svdpdf.cxx | 5
svx/source/svdraw/svdpoev.cxx | 6
svx/source/svdraw/svdtrans.cxx | 75 ++---
svx/source/table/viewcontactoftableobj.cxx | 4
svx/source/tbxctrls/grafctrl.cxx | 6
svx/source/uitest/sdrobject.cxx | 4
svx/source/unodraw/unoshape.cxx | 28 +
sw/inc/dcontact.hxx | 8
sw/source/core/draw/dcontact.cxx | 8
sw/source/core/draw/dflyobj.cxx | 16 -
sw/source/core/frmedt/feshview.cxx | 4
sw/source/core/inc/dflyobj.hxx | 4
sw/source/filter/ww8/docxattributeoutput.cxx | 2
sw/source/filter/ww8/docxsdrexport.cxx | 23 -
sw/source/filter/ww8/rtfsdrexport.cxx | 2
sw/source/filter/ww8/wrtw8esh.cxx | 4
sw/source/filter/ww8/ww8graf.cxx | 4
sw/source/filter/ww8/ww8par.cxx | 20 -
sw/source/ui/frmdlg/frmpage.cxx | 2
sw/source/uibase/ribbar/concustomshape.cxx | 2
sw/source/uibase/shells/beziersh.cxx | 2
sw/source/uibase/shells/frmsh.cxx | 4
sw/source/uibase/shells/grfsh.cxx | 2
writerfilter/source/dmapper/GraphicImport.cxx | 6
writerfilter/source/rtftok/rtfsdrimport.cxx | 3
177 files changed, 1053 insertions(+), 1012 deletions(-)
New commits:
commit 11e52fe2979b0947814a49b9c17ec373795cbf8e
Author: Noel <noel.grandin at collabora.co.uk>
AuthorDate: Tue Dec 22 15:42:08 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Jan 2 15:26:38 2021 +0100
introduce Degree100 strong_int type
Change-Id: I78f837a1340be0ca5c49097f543a481b7b43a632
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108367
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/chart2/source/controller/dialogs/res_DataLabel.cxx b/chart2/source/controller/dialogs/res_DataLabel.cxx
index c8dee6c1b750..7934e90871dc 100644
--- a/chart2/source/controller/dialogs/res_DataLabel.cxx
+++ b/chart2/source/controller/dialogs/res_DataLabel.cxx
@@ -305,7 +305,7 @@ void DataLabelResources::FillItemSet( SfxItemSet* rOutAttrs ) const
if( m_xDC_Dial->IsVisible() )
{
- sal_Int32 nDegrees = m_xDC_Dial->GetRotation();
+ Degree100 nDegrees = m_xDC_Dial->GetRotation();
rOutAttrs->Put(SdrAngleItem( SCHATTR_TEXT_DEGREES, nDegrees ) );
}
}
@@ -355,11 +355,11 @@ void DataLabelResources::Reset(const SfxItemSet& rInAttrs)
if( rInAttrs.GetItemState( SCHATTR_TEXT_DEGREES, true, &pPoolItem ) == SfxItemState::SET )
{
- sal_Int32 nDegrees = static_cast< const SdrAngleItem * >( pPoolItem )->GetValue();
+ Degree100 nDegrees = static_cast< const SdrAngleItem * >( pPoolItem )->GetValue();
m_xDC_Dial->SetRotation( nDegrees );
}
else
- m_xDC_Dial->SetRotation( 0 );
+ m_xDC_Dial->SetRotation( 0_deg100 );
EnableControls();
}
diff --git a/chart2/source/controller/dialogs/tp_AxisLabel.cxx b/chart2/source/controller/dialogs/tp_AxisLabel.cxx
index afe98676545d..de028152e386 100644
--- a/chart2/source/controller/dialogs/tp_AxisLabel.cxx
+++ b/chart2/source/controller/dialogs/tp_AxisLabel.cxx
@@ -93,7 +93,7 @@ bool SchAxisLabelTabPage::FillItemSet( SfxItemSet* rOutAttrs )
if( m_xCtrlDial->HasRotation() )
{
- sal_Int32 nDegrees = bStacked ? 0 : m_xCtrlDial->GetRotation();
+ Degree100 nDegrees = bStacked ? 0_deg100 : m_xCtrlDial->GetRotation();
if( !m_bHasInitialDegrees || (nDegrees != m_nInitialDegrees) )
rOutAttrs->Put( SdrAngleItem( SCHATTR_TEXT_DEGREES, nDegrees ) );
}
@@ -155,7 +155,7 @@ void SchAxisLabelTabPage::Reset( const SfxItemSet* rInAttrs )
// Rotation as orient item or in degrees ----------
// check new degree item
- m_nInitialDegrees = 0;
+ m_nInitialDegrees = 0_deg100;
aState = rInAttrs->GetItemState( SCHATTR_TEXT_DEGREES, false, &pPoolItem );
if( aState == SfxItemState::SET )
m_nInitialDegrees = static_cast< const SdrAngleItem * >( pPoolItem )->GetValue();
diff --git a/chart2/source/controller/dialogs/tp_AxisLabel.hxx b/chart2/source/controller/dialogs/tp_AxisLabel.hxx
index 370eda70d6b0..0923c91118d5 100644
--- a/chart2/source/controller/dialogs/tp_AxisLabel.hxx
+++ b/chart2/source/controller/dialogs/tp_AxisLabel.hxx
@@ -20,6 +20,7 @@
#include <sfx2/tabdlg.hxx>
#include <svx/dialcontrol.hxx>
+#include <tools/degree.hxx>
namespace chart { class TextDirectionListBox; }
namespace weld {
@@ -39,7 +40,7 @@ class SchAxisLabelTabPage : public SfxTabPage
private:
bool m_bShowStaggeringControls;
- sal_Int32 m_nInitialDegrees;
+ Degree100 m_nInitialDegrees;
bool m_bHasInitialDegrees; /// false = DialControl in tristate
bool m_bInitialStacking;
bool m_bHasInitialStacking; /// false = checkbox in tristate
diff --git a/chart2/source/controller/dialogs/tp_PolarOptions.cxx b/chart2/source/controller/dialogs/tp_PolarOptions.cxx
index 865736b3b66d..59422b3a613e 100644
--- a/chart2/source/controller/dialogs/tp_PolarOptions.cxx
+++ b/chart2/source/controller/dialogs/tp_PolarOptions.cxx
@@ -74,7 +74,7 @@ void PolarOptionsTabPage::Reset(const SfxItemSet* rInAttrs)
if (rInAttrs->GetItemState(SCHATTR_STARTING_ANGLE, true, &pPoolItem) == SfxItemState::SET)
{
- sal_Int32 nTmp = static_cast<const SdrAngleItem*>(pPoolItem)->GetValue();
+ Degree100 nTmp = static_cast<const SdrAngleItem*>(pPoolItem)->GetValue();
m_xAngleDial->SetRotation( nTmp );
}
else
diff --git a/chart2/source/controller/dialogs/tp_TitleRotation.cxx b/chart2/source/controller/dialogs/tp_TitleRotation.cxx
index d2e1e02ab679..ede27edbac9d 100644
--- a/chart2/source/controller/dialogs/tp_TitleRotation.cxx
+++ b/chart2/source/controller/dialogs/tp_TitleRotation.cxx
@@ -94,7 +94,7 @@ bool SchAlignmentTabPage::FillItemSet(SfxItemSet* rOutAttrs)
bool bStacked = m_xCbStacked->get_active();
rOutAttrs->Put( SfxBoolItem( SCHATTR_TEXT_STACKED, bStacked ) );
- sal_Int32 nDegrees = bStacked ? 0 : m_xCtrlDial->GetRotation();
+ Degree100 nDegrees = bStacked ? 0_deg100 : m_xCtrlDial->GetRotation();
rOutAttrs->Put( SdrAngleItem( SCHATTR_TEXT_DEGREES, nDegrees ) );
SvxFrameDirection aDirection( m_xLbTextDirection->get_active_id() );
@@ -107,7 +107,7 @@ void SchAlignmentTabPage::Reset(const SfxItemSet* rInAttrs)
{
const SfxPoolItem* pItem = GetItem( *rInAttrs, SCHATTR_TEXT_DEGREES );
- sal_Int32 nDegrees = pItem ? static_cast<const SdrAngleItem*>(pItem)->GetValue() : 0;
+ Degree100 nDegrees = pItem ? static_cast<const SdrAngleItem*>(pItem)->GetValue() : 0_deg100;
m_xCtrlDial->SetRotation( nDegrees );
pItem = GetItem( *rInAttrs, SCHATTR_TEXT_STACKED );
diff --git a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
index 7c31c9693ab7..297b3de704ee 100644
--- a/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx
@@ -392,8 +392,8 @@ void AxisItemConverter::FillSpecialItem( sal_uInt16 nWhichId, SfxItemSet & rOutI
if( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fVal )
{
- rOutItemSet.Put( SdrAngleItem( nWhichId, static_cast< sal_Int32 >(
- ::rtl::math::round( fVal * 100.0 ) ) ));
+ rOutItemSet.Put( SdrAngleItem( nWhichId, Degree100(static_cast< sal_Int32 >(
+ ::rtl::math::round( fVal * 100.0 )) ) ));
}
}
break;
@@ -881,7 +881,7 @@ bool AxisItemConverter::ApplySpecialItem( sal_uInt16 nWhichId, const SfxItemSet
// convert int to double (divided by 100)
double fVal = static_cast< double >(
static_cast< const SdrAngleItem & >(
- rItemSet.Get( nWhichId )).GetValue()) / 100.0;
+ rItemSet.Get( nWhichId )).GetValue().get()) / 100.0;
double fOldVal = 0.0;
bool bPropExisted =
( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fOldVal );
diff --git a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
index 97f66d4c8431..7693c6ccfa37 100644
--- a/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx
@@ -550,7 +550,7 @@ bool DataPointItemConverter::ApplySpecialItem(
{
double fValue = static_cast< double >(
static_cast< const SdrAngleItem & >(
- rItemSet.Get( nWhichId )).GetValue()) / 100.0;
+ rItemSet.Get( nWhichId )).GetValue().get()) / 100.0;
double fOldValue = 0.0;
bool bPropExisted =
( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fOldValue );
@@ -800,8 +800,8 @@ void DataPointItemConverter::FillSpecialItem(
if( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fValue )
{
- rOutItemSet.Put( SdrAngleItem( nWhichId, static_cast< sal_Int32 >(
- ::rtl::math::round( fValue * 100.0 ) ) ));
+ rOutItemSet.Put( SdrAngleItem( nWhichId, Degree100(static_cast< sal_Int32 >(
+ ::rtl::math::round( fValue * 100.0 ) ) )));
}
}
break;
diff --git a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
index 3c8fbcca9990..fc25407d1a58 100644
--- a/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx
@@ -277,7 +277,7 @@ bool SeriesOptionsItemConverter::ApplySpecialItem( sal_uInt16 nWhichId, const Sf
{
if( m_bSupportingStartingAngle )
{
- m_nStartingAngle = static_cast< const SdrAngleItem & >( rItemSet.Get( nWhichId )).GetValue() / 100;
+ m_nStartingAngle = static_cast< const SdrAngleItem & >( rItemSet.Get( nWhichId )).GetValue().get() / 100;
uno::Reference< beans::XPropertySet > xDiagramProperties( ChartModelHelper::findDiagram(m_xChartModel), uno::UNO_QUERY );
if( xDiagramProperties.is() )
{
@@ -399,7 +399,7 @@ void SeriesOptionsItemConverter::FillSpecialItem(
case SCHATTR_STARTING_ANGLE:
{
if( m_bSupportingStartingAngle )
- rOutItemSet.Put( SdrAngleItem(nWhichId,m_nStartingAngle*100));
+ rOutItemSet.Put( SdrAngleItem(nWhichId, Degree100(m_nStartingAngle*100)) );
break;
}
case SCHATTR_CLOCKWISE:
diff --git a/chart2/source/controller/itemsetwrapper/TextLabelItemConverter.cxx b/chart2/source/controller/itemsetwrapper/TextLabelItemConverter.cxx
index dad6ba3b30ef..adc0b849414b 100644
--- a/chart2/source/controller/itemsetwrapper/TextLabelItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/TextLabelItemConverter.cxx
@@ -489,7 +489,7 @@ bool TextLabelItemConverter::ApplySpecialItem( sal_uInt16 nWhichId, const SfxIte
{
double fValue = static_cast<double>(
static_cast<const SdrAngleItem&>(
- rItemSet.Get(nWhichId)).GetValue()) / 100.0;
+ rItemSet.Get(nWhichId)).GetValue().get()) / 100.0;
double fOldValue = 0.0;
bool bPropExisted =
(GetPropertySet()->getPropertyValue("TextRotation") >>= fOldValue);
@@ -705,7 +705,7 @@ void TextLabelItemConverter::FillSpecialItem( sal_uInt16 nWhichId, SfxItemSet& r
if (GetPropertySet()->getPropertyValue("TextRotation") >>= fValue)
{
rOutItemSet.Put(
- SdrAngleItem(nWhichId, static_cast<sal_Int32>(rtl::math::round(fValue * 100.0))));
+ SdrAngleItem(nWhichId, Degree100(static_cast<sal_Int32>(rtl::math::round(fValue * 100.0)))));
}
}
break;
diff --git a/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx b/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
index 6ca38785fb56..9109bc3ea3a1 100644
--- a/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
+++ b/chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx
@@ -169,7 +169,7 @@ bool TitleItemConverter::ApplySpecialItem(
// convert int to double (divided by 100)
double fVal = static_cast< double >(
static_cast< const SdrAngleItem & >(
- rItemSet.Get( nWhichId )).GetValue()) / 100.0;
+ rItemSet.Get( nWhichId )).GetValue().get()) / 100.0;
double fOldVal = 0.0;
bool bPropExisted =
( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fOldVal );
@@ -198,8 +198,8 @@ void TitleItemConverter::FillSpecialItem(
if( GetPropertySet()->getPropertyValue( "TextRotation" ) >>= fVal )
{
- rOutItemSet.Put( SdrAngleItem( nWhichId, static_cast< sal_Int32 >(
- ::rtl::math::round( fVal * 100.0 ) ) ));
+ rOutItemSet.Put( SdrAngleItem( nWhichId, Degree100(static_cast< sal_Int32 >(
+ ::rtl::math::round( fVal * 100.0 ) ) )));
}
}
break;
diff --git a/chart2/source/controller/main/DrawCommandDispatch.cxx b/chart2/source/controller/main/DrawCommandDispatch.cxx
index 53ed1cfc7a32..ef0bdfd5af5b 100644
--- a/chart2/source/controller/main/DrawCommandDispatch.cxx
+++ b/chart2/source/controller/main/DrawCommandDispatch.cxx
@@ -142,7 +142,7 @@ void DrawCommandDispatch::setAttributes( SdrObject* pObj )
EE_ITEMS_START, EE_ITEMS_END>{});
aDest.Set( rSource );
pObj->SetMergedItemSet( aDest );
- sal_Int32 nAngle = pSourceObj->GetRotateAngle();
+ Degree100 nAngle = pSourceObj->GetRotateAngle();
if ( nAngle )
pObj->NbcRotate( pObj->GetSnapRect().Center(), nAngle );
bAttributesAppliedFromGallery = true;
diff --git a/chart2/source/view/main/ChartItemPool.cxx b/chart2/source/view/main/ChartItemPool.cxx
index 4df7e269a56d..6af1c34c6ef6 100644
--- a/chart2/source/view/main/ChartItemPool.cxx
+++ b/chart2/source/view/main/ChartItemPool.cxx
@@ -63,7 +63,7 @@ ChartItemPool::ChartItemPool():
rPoolDefaults[SCHATTR_LEGEND_NO_OVERLAY - SCHATTR_START] = new SfxBoolItem(SCHATTR_LEGEND_NO_OVERLAY, true);
//text
- rPoolDefaults[SCHATTR_TEXT_DEGREES - SCHATTR_START] = new SdrAngleItem(SCHATTR_TEXT_DEGREES, 0);
+ rPoolDefaults[SCHATTR_TEXT_DEGREES - SCHATTR_START] = new SdrAngleItem(SCHATTR_TEXT_DEGREES, 0_deg100);
rPoolDefaults[SCHATTR_TEXT_STACKED - SCHATTR_START] = new SfxBoolItem(SCHATTR_TEXT_STACKED,false);
//statistic
@@ -142,7 +142,7 @@ ChartItemPool::ChartItemPool():
rPoolDefaults[SCHATTR_SPLINE_ORDER - SCHATTR_START] = new SfxInt32Item( SCHATTR_SPLINE_ORDER, 3 );
rPoolDefaults[SCHATTR_SPLINE_RESOLUTION - SCHATTR_START] = new SfxInt32Item( SCHATTR_SPLINE_RESOLUTION, 20 );
rPoolDefaults[SCHATTR_GROUP_BARS_PER_AXIS - SCHATTR_START] = new SfxBoolItem(SCHATTR_GROUP_BARS_PER_AXIS, false);
- rPoolDefaults[SCHATTR_STARTING_ANGLE - SCHATTR_START] = new SdrAngleItem( SCHATTR_STARTING_ANGLE, 9000 );
+ rPoolDefaults[SCHATTR_STARTING_ANGLE - SCHATTR_START] = new SdrAngleItem( SCHATTR_STARTING_ANGLE, 9000_deg100 );
rPoolDefaults[SCHATTR_CLOCKWISE - SCHATTR_START] = new SfxBoolItem( SCHATTR_CLOCKWISE, false );
rPoolDefaults[SCHATTR_MISSING_VALUE_TREATMENT - SCHATTR_START] = new SfxInt32Item(SCHATTR_MISSING_VALUE_TREATMENT, 0);
diff --git a/cui/source/tabpages/transfrm.cxx b/cui/source/tabpages/transfrm.cxx
index 142bd46e4d9b..de757f65991d 100644
--- a/cui/source/tabpages/transfrm.cxx
+++ b/cui/source/tabpages/transfrm.cxx
@@ -22,6 +22,7 @@
#include <algorithm>
#include <svx/EnhancedCustomShape2d.hxx>
+#include <svx/sdangitm.hxx>
#include <svx/svdundo.hxx>
#include <svx/svdview.hxx>
#include <svx/svdobj.hxx>
@@ -295,7 +296,7 @@ void SvxAngleTabPage::Reset(const SfxItemSet* rAttrs)
}
else
{
- m_xCtlAngle->SetRotation(0);
+ m_xCtlAngle->SetRotation(0_deg100);
}
m_xCtlAngle->SaveValue();
m_xMtrPosX->save_value();
@@ -461,7 +462,7 @@ bool SvxSlantTabPage::FillItemSet(SfxItemSet* rAttrs)
if (m_xMtrAngle->get_value_changed_from_saved())
{
sal_Int32 nValue = static_cast<sal_Int32>(m_xMtrAngle->get_value(FieldUnit::NONE));
- rAttrs->Put( SdrAngleItem( SID_ATTR_TRANSFORM_SHEAR, nValue ) );
+ rAttrs->Put( SdrAngleItem( SID_ATTR_TRANSFORM_SHEAR, Degree100(nValue) ) );
bModified = true;
}
@@ -606,7 +607,7 @@ void SvxSlantTabPage::Reset(const SfxItemSet* rAttrs)
if( pItem )
{
- m_xMtrAngle->set_value(static_cast<const SdrAngleItem*>(pItem)->GetValue(), FieldUnit::NONE);
+ m_xMtrAngle->set_value(static_cast<const SdrAngleItem*>(pItem)->GetValue().get(), FieldUnit::NONE);
}
else
{
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 505e43d91fc1..bde712649af4 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -2102,12 +2102,12 @@ static sal_Int32 lcl_GetConnectorAdjustValue ( const XPolygon& rPoly, sal_uInt16
}
-static void lcl_Rotate(sal_Int32 nAngle, Point center, Point& pt)
+static void lcl_Rotate(Degree100 nAngle, Point center, Point& pt)
{
nAngle = NormAngle36000(nAngle);
int cs, sn;
- switch (nAngle)
+ switch (nAngle.get())
{
case 0:
cs =1;
@@ -2149,8 +2149,8 @@ static bool lcl_GetAngle(tools::Polygon &rPoly, ShapeFlag& rShapeFlags,sal_Int32
if ( nAngle )
{
Point center((aEnd.X()+aStart.X())>>1,(aEnd.Y()+aStart.Y())>>1);
- lcl_Rotate(-nAngle, center,p1);
- lcl_Rotate(-nAngle, center,p2);
+ lcl_Rotate(Degree100(-nAngle), center,p1);
+ lcl_Rotate(Degree100(-nAngle), center,p2);
}
if ( p1.X() > p2.X() )
{
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 442509617f91..bddc9c2552c2 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -383,12 +383,12 @@ void DffPropertyReader::ReadPropSet( SvStream& rIn, SvxMSDffClientData* pClientD
}
-sal_Int32 DffPropertyReader::Fix16ToAngle( sal_Int32 nContent )
+Degree100 DffPropertyReader::Fix16ToAngle( sal_Int32 nContent )
{
- sal_Int32 nAngle = 0;
+ Degree100 nAngle(0);
if ( nContent )
{
- nAngle = ( static_cast<sal_Int16>( nContent >> 16) * 100L ) + ( ( ( nContent & 0x0000ffff) * 100L ) >> 16 );
+ nAngle = Degree100(( static_cast<sal_Int16>( nContent >> 16) * 100L ) + ( ( ( nContent & 0x0000ffff) * 100L ) >> 16 ));
nAngle = NormAngle36000( -nAngle );
}
return nAngle;
@@ -1150,7 +1150,7 @@ static void GetShadeColors( const SvxMSDffManager& rManager, const DffPropertyRe
rIn.Seek( nPos );
}
-static void ApplyRectangularGradientAsBitmap( const SvxMSDffManager& rManager, SvStream& rIn, SfxItemSet& rSet, const std::vector< ShadeColor >& rShadeColors, const DffObjData& rObjData, sal_Int32 nFix16Angle )
+static void ApplyRectangularGradientAsBitmap( const SvxMSDffManager& rManager, SvStream& rIn, SfxItemSet& rSet, const std::vector< ShadeColor >& rShadeColors, const DffObjData& rObjData, Degree100 nFix16Angle )
{
Size aBitmapSizePixel( static_cast< sal_Int32 >( ( rObjData.aBoundRect.GetWidth() / 2540.0 ) * 90.0 ), // we will create a bitmap with 90 dpi
static_cast< sal_Int32 >( ( rObjData.aBoundRect.GetHeight() / 2540.0 ) * 90.0 ) );
@@ -1293,7 +1293,7 @@ static void ApplyRectangularGradientAsBitmap( const SvxMSDffManager& rManager, S
if ( bRotateWithShape )
{
// convert from 100th to 10th degrees
- aBitmapEx.Rotate( Degree10(nFix16Angle * 10), rShadeColors[ 0 ].aColor );
+ aBitmapEx.Rotate( toDegree10(nFix16Angle), rShadeColors[ 0 ].aColor );
BmpMirrorFlags nMirrorFlags = BmpMirrorFlags::NONE;
if ( rObjData.nSpFlags & ShapeFlag::FlipV )
@@ -2770,7 +2770,7 @@ void DffPropertyReader::CheckAndCorrectExcelTextRotation( SvStream& rIn, SfxItem
*pAny >>= fExtraTextRotateAngle;
if ( rManager.mnFix16Angle )
- fExtraTextRotateAngle += mnFix16Angle / 100.0;
+ fExtraTextRotateAngle += mnFix16Angle.get() / 100.0;
if ( rObjData.nSpFlags & ShapeFlag::FlipV )
fExtraTextRotateAngle -= 180.0;
@@ -2788,15 +2788,15 @@ void DffPropertyReader::ImportGradientColor( SfxItemSet& aSet, sal_uInt32 eMSO_F
//support this prop. So need some swap for the two color to keep fidelity with AOO and MS shape.
//So below var is defined.
sal_Int32 nChgColors = 0;
- sal_Int32 nAngle = GetPropertyValue( DFF_Prop_fillAngle, 0 );
- if(nAngle >= 0)
+ sal_Int32 nAngleFix16 = GetPropertyValue( DFF_Prop_fillAngle, 0 );
+ if(nAngleFix16 >= 0)
nChgColors ^= 1;
//Translate a MS clockwise(+) or count clockwise angle(-) into an AOO count clock wise angle
- nAngle=3600 - ( ( Fix16ToAngle(nAngle) + 5 ) / 10 );
+ Degree10 nAngle( 3600 - ( ( Fix16ToAngle(nAngleFix16).get() + 5 ) / 10 ) );
//Make sure this angle belongs to 0~3600
- while ( nAngle >= 3600 ) nAngle -= 3600;
- while ( nAngle < 0 ) nAngle += 3600;
+ while ( nAngle >= Degree10(3600) ) nAngle -= Degree10(3600);
+ while ( nAngle < Degree10(0) ) nAngle += Degree10(3600);
//Rotate angle
if ( mbRotateGranientFillWithAngle )
@@ -2807,10 +2807,10 @@ void DffPropertyReader::ImportGradientColor( SfxItemSet& aSet, sal_uInt32 eMSO_F
nRotateAngle = ( nRotateAngle + 5 ) / 10 ;//round up
//nAngle is a clockwise angle. If nRotateAngle is a clockwise angle, then gradient needs to be rotated a little less
//or it needs to be rotated a little more
- nAngle -= nRotateAngle;
+ nAngle -= Degree10(nRotateAngle);
}
- while ( nAngle >= 3600 ) nAngle -= 3600;
- while ( nAngle < 0 ) nAngle += 3600;
+ while ( nAngle >= Degree10(3600) ) nAngle -= Degree10(3600);
+ while ( nAngle < Degree10(0) ) nAngle += Degree10(3600);
css::awt::GradientStyle eGrad = css::awt::GradientStyle_LINEAR;
@@ -2870,7 +2870,7 @@ void DffPropertyReader::ImportGradientColor( SfxItemSet& aSet, sal_uInt32 eMSO_F
}
//Construct gradient item
- XGradient aGrad( aCol2, aCol1, eGrad, Degree10(nAngle), nFocusX, nFocusY );
+ XGradient aGrad( aCol2, aCol1, eGrad, nAngle, nFocusX, nFocusY );
//Intensity has been merged into color. So here just set is as 100
aGrad.SetStartIntens( 100 );
aGrad.SetEndIntens( 100 );
@@ -2883,7 +2883,7 @@ void DffPropertyReader::ImportGradientColor( SfxItemSet& aSet, sal_uInt32 eMSO_F
aCol1 = Color(nStartCol, nStartCol, nStartCol);
aCol2 = Color(nEndCol, nEndCol, nEndCol);
- XGradient aGrad2( aCol2 , aCol1 , eGrad, Degree10(nAngle), nFocusX, nFocusY );
+ XGradient aGrad2( aCol2 , aCol1 , eGrad, nAngle, nFocusX, nFocusY );
aSet.Put( XFillFloatTransparenceItem( OUString(), aGrad2 ) );
}
}
@@ -4054,13 +4054,13 @@ SdrObject* SvxMSDffManager::ImportGroup( const DffRecordHeader& rHd, SvStream& r
bool bOk = ReadDffRecordHeader(rSt, aRecHd);
if (bOk && aRecHd.nRecType == DFF_msofbtSpContainer)
{
- mnFix16Angle = 0;
+ mnFix16Angle = 0_deg100;
if (!aRecHd.SeekToBegOfRecord(rSt))
return pRet;
pRet = ImportObj( rSt, rClientData, rClientRect, rGlobalChildRect, nCalledByGroup + 1, pShapeId );
if ( pRet )
{
- sal_Int32 nGroupRotateAngle = 0;
+ Degree100 nGroupRotateAngle(0);
ShapeFlag nSpFlags = nGroupShapeFlags;
nGroupRotateAngle = mnFix16Angle;
@@ -4072,8 +4072,8 @@ SdrObject* SvxMSDffManager::ImportGroup( const DffRecordHeader& rHd, SvStream& r
else
aGlobalChildRect = rGlobalChildRect;
- if ( ( nGroupRotateAngle > 4500 && nGroupRotateAngle <= 13500 )
- || ( nGroupRotateAngle > 22500 && nGroupRotateAngle <= 31500 ) )
+ if ( ( nGroupRotateAngle > 4500_deg100 && nGroupRotateAngle <= 13500_deg100 )
+ || ( nGroupRotateAngle > 22500_deg100 && nGroupRotateAngle <= 31500_deg100 ) )
{
sal_Int32 nHalfWidth = ( aClientRect.GetWidth() + 1 ) >> 1;
sal_Int32 nHalfHeight = ( aClientRect.GetHeight() + 1 ) >> 1;
@@ -4237,7 +4237,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
else
{
InitializePropSet( DFF_msofbtOPT ); // get the default PropSet
- static_cast<DffPropertyReader*>(this)->mnFix16Angle = 0;
+ static_cast<DffPropertyReader*>(this)->mnFix16Angle = 0_deg100;
}
aObjData.bOpt2 = maShapeRecords.SeekToContent( rSt, DFF_msofbtUDefProp, SEEK_FROM_CURRENT_AND_RESTART );
@@ -4287,8 +4287,8 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
{ // apply rotation to the BoundingBox BEFORE an object has been generated
if( mnFix16Angle )
{
- tools::Long nAngle = mnFix16Angle;
- if ( ( nAngle > 4500 && nAngle <= 13500 ) || ( nAngle > 22500 && nAngle <= 31500 ) )
+ Degree100 nAngle = mnFix16Angle;
+ if ( ( nAngle > 4500_deg100 && nAngle <= 13500_deg100 ) || ( nAngle > 22500_deg100 && nAngle <= 31500_deg100 ) )
{
sal_Int32 nHalfWidth = ( aObjData.aBoundRect.GetWidth() + 1 ) >> 1;
sal_Int32 nHalfHeight = ( aObjData.aBoundRect.GetHeight() + 1 ) >> 1;
@@ -4320,7 +4320,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
SfxItemSet aSet( pSdrModel->GetItemPool() );
bool bIsConnector = ( ( aObjData.eShapeType >= mso_sptStraightConnector1 ) && ( aObjData.eShapeType <= mso_sptCurvedConnector5 ) );
- sal_Int32 nObjectRotation = mnFix16Angle;
+ Degree100 nObjectRotation = mnFix16Angle;
ShapeFlag nSpFlags = aObjData.nSpFlags;
if ( bGraphic )
@@ -4679,12 +4679,12 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
// sj: taking care of the different rotation points, since the new arc is having a bigger snaprect
if ( mnFix16Angle )
{
- sal_Int32 nAngle = mnFix16Angle;
+ Degree100 nAngle = mnFix16Angle;
if ( nSpFlags & ShapeFlag::FlipH )
- nAngle = 36000 - nAngle;
+ nAngle = 36000_deg100 - nAngle;
if ( nSpFlags & ShapeFlag::FlipV )
nAngle = -nAngle;
- double a = nAngle * F_PI18000;
+ double a = nAngle.get() * F_PI18000;
double ss = sin( a );
double cc = cos( a );
Point aP1( aOldBoundRect.TopLeft() );
@@ -4759,7 +4759,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
// pay attention to the rotations
if ( nObjectRotation )
{
- double a = nObjectRotation * F_PI18000;
+ double a = nObjectRotation.get() * F_PI18000;
Point aCenter( aObjData.aBoundRect.Center() );
double ss = sin(a);
double cc = cos(a);
@@ -4768,7 +4768,7 @@ SdrObject* SvxMSDffManager::ImportShape( const DffRecordHeader& rHd, SvStream& r
RotatePoint(aPoint2, aCenter, ss, cc);
// #i120437# reset rotation, it is part of the path and shall not be applied again
- nObjectRotation = 0;
+ nObjectRotation = 0_deg100;
}
// rotate/mirror line within the area as we need it
@@ -5220,7 +5220,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
ScaleEmu( nTextTop );
ScaleEmu( nTextBottom );
- sal_Int32 nTextRotationAngle=0;
+ Degree100 nTextRotationAngle(0);
bool bVerticalText = false;
if ( IsProperty( DFF_Prop_txflTextFlow ) )
{
@@ -5228,18 +5228,18 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
switch( eTextFlow )
{
case mso_txflBtoT:
- nTextRotationAngle = 9000;
+ nTextRotationAngle = 9000_deg100;
break;
case mso_txflVertN:
case mso_txflTtoBN:
- nTextRotationAngle = 27000;
+ nTextRotationAngle = 27000_deg100;
break;
case mso_txflTtoBA:
bVerticalText = true;
break;
case mso_txflHorzA:
bVerticalText = true;
- nTextRotationAngle = 9000;
+ nTextRotationAngle = 9000_deg100;
break;
case mso_txflHorzN:
default :
@@ -5249,7 +5249,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
if (nTextRotationAngle)
{
- switch (nTextRotationAngle)
+ switch (nTextRotationAngle.get())
{
case 9000:
{
@@ -5436,7 +5436,7 @@ SdrObject* SvxMSDffManager::ProcessObj(SvStream& rSt,
// rotate text with shape?
if ( mnFix16Angle )
{
- double a = mnFix16Angle * F_PI18000;
+ double a = mnFix16Angle.get() * F_PI18000;
pTextObj->NbcRotate( rObjData.aBoundRect.Center(), mnFix16Angle,
sin( a ), cos( a ) );
}
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 545afd68514d..7da1450799c6 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -814,14 +814,14 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, Svx
bool bVerticalText = false;
// and if the text object is not empty, it must be applied to pRet, the object we
// initially got from our escher import
- sal_Int32 nTextRotationAngle = 0;
+ Degree100 nTextRotationAngle(0);
if ( IsProperty( DFF_Prop_txflTextFlow ) )
{
auto eTextFlow = GetPropertyValue(DFF_Prop_txflTextFlow, 0) & 0xFFFF;
switch( eTextFlow )
{
case mso_txflBtoT : // Bottom to Top non-@
- nTextRotationAngle += 9000;
+ nTextRotationAngle += 9000_deg100;
break;
case mso_txflTtoBA : /* #68110# */ // Top to Bottom @-font
case mso_txflTtoBN : // Top to Bottom non-@
@@ -840,7 +840,7 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, Svx
}
const bool bFail = o3tl::checked_multiply<sal_Int32>(nFontDirection, 9000, nFontDirection);
if (!bFail)
- nTextRotationAngle -= nFontDirection;
+ nTextRotationAngle -= Degree100(nFontDirection);
else
SAL_WARN("filter.ms", "Parsing error: bad fontdirection: " << nFontDirection);
aTextObj.SetVertical( bVerticalText );
@@ -1174,7 +1174,7 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, Svx
}
}
// rotate text with shape?
- sal_Int32 nAngle = ( rObjData.nSpFlags & ShapeFlag::FlipV ) ? -mnFix16Angle : mnFix16Angle; // #72116# vertical flip -> rotate by using the other way
+ Degree100 nAngle = ( rObjData.nSpFlags & ShapeFlag::FlipV ) ? -mnFix16Angle : mnFix16Angle; // #72116# vertical flip -> rotate by using the other way
nAngle += nTextRotationAngle;
if ( dynamic_cast< const SdrObjCustomShape* >(pTObj) == nullptr )
@@ -1182,10 +1182,10 @@ SdrObject* SdrEscherImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, Svx
if ( rObjData.nSpFlags & ShapeFlag::FlipV )
{
double a = 18000 * F_PI18000;
- pTObj->Rotate( rTextRect.Center(), 18000, sin( a ), cos( a ) );
+ pTObj->Rotate( rTextRect.Center(), 18000_deg100, sin( a ), cos( a ) );
}
if ( rObjData.nSpFlags & ShapeFlag::FlipH )
- nAngle = 36000 - nAngle;
+ nAngle = 36000_deg100 - nAngle;
if ( nAngle )
pTObj->NbcRotate( rObjData.aBoundRect.Center(), nAngle );
}
diff --git a/include/filter/msfilter/msdffimp.hxx b/include/filter/msfilter/msdffimp.hxx
index 3561d4ad9468..d3c6657c7b90 100644
--- a/include/filter/msfilter/msdffimp.hxx
+++ b/include/filter/msfilter/msdffimp.hxx
@@ -40,6 +40,7 @@
#include <sal/types.h>
#include <svx/msdffdef.hxx>
#include <vcl/errcode.hxx>
+#include <tools/degree.hxx>
#include <tools/gen.hxx>
#include <tools/ref.hxx>
#include <tools/solar.h>
@@ -93,7 +94,7 @@ class MSFILTER_DLLPUBLIC DffPropertyReader : public DffPropSet
void ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, const DffObjData& rObjData ) const;
public:
- sal_Int32 mnFix16Angle;
+ Degree100 mnFix16Angle;
bool mbRotateGranientFillWithAngle;
explicit DffPropertyReader( const SvxMSDffManager& rManager );
@@ -102,7 +103,7 @@ public:
DffPropertyReader& operator=( DffPropertyReader const & ) = delete; // MSVC2015 workaround
DffPropertyReader( DffPropertyReader const & ) = delete; // MSVC2015 workaround
- static sal_Int32 Fix16ToAngle( sal_Int32 nAngle );
+ static Degree100 Fix16ToAngle( sal_Int32 nAngle );
#ifdef DBG_CUSTOMSHAPE
void ReadPropSet( SvStream& rIn, SvxMSDffClientData* pClientData, sal_uInt32 nShapeType = 0 ) const;
diff --git a/include/o3tl/strong_int.hxx b/include/o3tl/strong_int.hxx
index 3db958212229..82107955897f 100644
--- a/include/o3tl/strong_int.hxx
+++ b/include/o3tl/strong_int.hxx
@@ -113,10 +113,16 @@ public:
strong_int& operator+=(strong_int const & other) { m_value += other.m_value; return *this; }
strong_int& operator-=(strong_int const & other) { m_value -= other.m_value; return *this; }
strong_int& operator%=(strong_int const & other) { m_value %= other.m_value; return *this; }
+ strong_int& operator*=(strong_int const & other) { m_value *= other.m_value; return *this; }
+ strong_int& operator/=(strong_int const & other) { m_value /= other.m_value; return *this; }
[[nodiscard]]
strong_int operator%(strong_int const & other) const { return strong_int(m_value % other.m_value); }
[[nodiscard]]
strong_int operator-() const { return strong_int(-m_value); }
+ [[nodiscard]]
+ strong_int operator*(strong_int const & other) const { return strong_int(m_value * other.m_value); }
+ [[nodiscard]]
+ strong_int operator/(strong_int const & other) const { return strong_int(m_value / other.m_value); }
bool anyOf(strong_int v) const {
return *this == v;
diff --git a/include/oox/export/drawingml.hxx b/include/oox/export/drawingml.hxx
index 022a0df00e4e..2cd17e6defb0 100644
--- a/include/oox/export/drawingml.hxx
+++ b/include/oox/export/drawingml.hxx
@@ -111,9 +111,9 @@ public:
// Our rotation is counter-clockwise and is in 100ths of a degree.
// drawingML rotation is clockwise and is in 60000ths of a degree.
-template <typename T> T ExportRotateClockwisify(T input)
+inline sal_Int32 ExportRotateClockwisify(Degree100 input)
{
- return ((21600000 - input * 600) % 21600000);
+ return ((21600000 - input.get() * 600) % 21600000);
}
/// Interface to be implemented by the parent exporter that knows how to handle shape text.
diff --git a/include/oox/vml/vmlformatting.hxx b/include/oox/vml/vmlformatting.hxx
index 3d6cdc5ab87b..4bdabbffb97b 100644
--- a/include/oox/vml/vmlformatting.hxx
+++ b/include/oox/vml/vmlformatting.hxx
@@ -32,6 +32,7 @@
#include <oox/helper/helper.hxx>
#include <rtl/ustring.hxx>
#include <sal/types.h>
+#include <tools/degree.hxx>
namespace com::sun::star {
namespace awt { struct Point; }
@@ -87,7 +88,7 @@ namespace ConversionHelper
point value will be returned unmodified. If the 'fd' suffix is
present, the value will be divided by 65536.
*/
- OOX_DLLPUBLIC sal_Int32 decodeRotation( const OUString& rValue );
+ OOX_DLLPUBLIC Degree100 decodeRotation( const OUString& rValue );
/** Converts the passed VML measure string to EMU (English Metric Units).
diff --git a/include/svx/EnhancedCustomShape2d.hxx b/include/svx/EnhancedCustomShape2d.hxx
index 8976b2bdb106..67b0d06a7d64 100644
--- a/include/svx/EnhancedCustomShape2d.hxx
+++ b/include/svx/EnhancedCustomShape2d.hxx
@@ -22,6 +22,7 @@
#include <svx/msdffdef.hxx>
#include <svx/sdasitm.hxx>
+#include <tools/degree.hxx>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/beans/PropertyValues.hpp>
@@ -122,7 +123,7 @@ class SVXCORE_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet
bool bFlipH;
bool bFlipV;
- sal_Int32 nRotateAngle;
+ Degree100 nRotateAngle;
SAL_DLLPRIVATE bool SetAdjustValueAsDouble( const double& rValue, const sal_Int32 nIndex );
SAL_DLLPRIVATE sal_Int32 GetLuminanceChange( sal_uInt32 nIndex ) const;
@@ -183,7 +184,7 @@ class SVXCORE_DLLPUBLIC EnhancedCustomShape2d : public SfxItemSet
SAL_DLLPRIVATE bool IsFlipVert() const { return bFlipV; };
SAL_DLLPRIVATE bool IsFlipHorz() const { return bFlipH; };
- SAL_DLLPRIVATE sal_Int32 GetRotateAngle() const { return nRotateAngle; };
+ SAL_DLLPRIVATE Degree100 GetRotateAngle() const { return nRotateAngle; };
SdrObject* CreateLineGeometry();
SdrObject* CreateObject( bool bLineGeometryNeededOnly );
diff --git a/include/svx/algitem.hxx b/include/svx/algitem.hxx
index cb37a21ba869..c778735436ee 100644
--- a/include/svx/algitem.hxx
+++ b/include/svx/algitem.hxx
@@ -25,6 +25,7 @@
#include <svl/poolitem.hxx>
#include <svl/eitem.hxx>
#include <svx/svxdllapi.h>
+#include <tools/degree.hxx>
class IntlWrapper;
class SfxItemPool;
@@ -37,7 +38,7 @@ public:
const sal_uInt16 nId );
SvxOrientationItem(
- sal_Int32 nRotation, bool bStacked,
+ Degree100 nRotation, bool bStacked,
const sal_uInt16 nId );
virtual bool GetPresentation( SfxItemPresentation ePres,
@@ -55,7 +56,7 @@ public:
/** Returns sal_True, if the item represents STACKED state. */
bool IsStacked() const;
/** Returns the rotation this item represents (returns nStdAngle for STANDARD and STACKED state). */
- sal_Int32 GetRotation( sal_Int32 nStdAngle ) const;
+ Degree100 GetRotation( Degree100 nStdAngle ) const;
};
class SAL_WARN_UNUSED SVX_DLLPUBLIC SvxMarginItem final : public SfxPoolItem
diff --git a/include/svx/dialcontrol.hxx b/include/svx/dialcontrol.hxx
index 3c5435bb9787..75d7d7fffa78 100644
--- a/include/svx/dialcontrol.hxx
+++ b/include/svx/dialcontrol.hxx
@@ -24,6 +24,7 @@
#include <vcl/customweld.hxx>
#include <vcl/virdev.hxx>
#include <svx/svxdllapi.h>
+#include <svx/svdtrans.hxx>
class Edit;
@@ -40,7 +41,7 @@ public:
void CopyBackground( const DialControlBmp& rSrc );
void DrawBackground( const Size& rSize, bool bEnabled );
void DrawBackground();
- void DrawElements( const OUString& rText, sal_Int32 nAngle );
+ void DrawElements( const OUString& rText, Degree100 nAngle );
Color GetBackgroundColor() const override;
private:
@@ -90,9 +91,9 @@ public:
virtual void Resize() override;
/** Returns the current rotation angle in 1/100 degrees. */
- sal_Int32 GetRotation() const;
+ Degree100 GetRotation() const;
/** Sets the rotation to the passed value (in 1/100 degrees). */
- void SetRotation( sal_Int32 nAngle );
+ void SetRotation( Degree100 nAngle );
/** Returns true, if the control is not in "don't care" state. */
bool HasRotation() const;
/** Sets the control to "don't care" state. */
@@ -138,9 +139,9 @@ private:
sal_Int32 mnLinkedFieldValueMultiplyer;
Size maWinSize;
vcl::Font maWinFont;
- sal_Int32 mnAngle;
- sal_Int32 mnInitialAngle;
- sal_Int32 mnOldAngle;
+ Degree100 mnAngle;
+ Degree100 mnInitialAngle;
+ Degree100 mnOldAngle;
tools::Long mnCenterX;
tools::Long mnCenterY;
bool mbNoRot;
@@ -154,7 +155,7 @@ private:
void HandleMouseEvent( const Point& rPos, bool bInitial );
void HandleEscapeEvent();
- void SetRotation( sal_Int32 nAngle, bool bBroadcast );
+ void SetRotation( Degree100 nAngle, bool bBroadcast );
void Init( const Size& rWinSize, const vcl::Font& rWinFont );
diff --git a/include/svx/obj3d.hxx b/include/svx/obj3d.hxx
index b9f43315d730..e786cbbfbcbd 100644
--- a/include/svx/obj3d.hxx
+++ b/include/svx/obj3d.hxx
@@ -116,7 +116,7 @@ public:
// which is vertical to the screen, plus a shift of the scene.
// This means that also the scene (E3dScene) must define this
// routine as virtual in its class.
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
// get wireframe polygon for local object. No transform is applied.
basegfx::B3DPolyPolygon CreateWireframe() const;
diff --git a/include/svx/scene3d.hxx b/include/svx/scene3d.hxx
index 3ff3a5562e44..13d4157d3449 100644
--- a/include/svx/scene3d.hxx
+++ b/include/svx/scene3d.hxx
@@ -137,7 +137,7 @@ public:
virtual void NbcSetTransform(const basegfx::B3DHomMatrix& rMatrix) override;
virtual void SetTransform(const basegfx::B3DHomMatrix& rMatrix) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
void RotateScene(const Point& rRef, double sn, double cs);
// TakeObjName...() is for the display in the UI, for example "3 frames selected".
diff --git a/include/svx/sdangitm.hxx b/include/svx/sdangitm.hxx
index 81897d43c810..61770899b951 100644
--- a/include/svx/sdangitm.hxx
+++ b/include/svx/sdangitm.hxx
@@ -21,12 +21,13 @@
#include <svl/intitem.hxx>
#include <svx/svxdllapi.h>
+#include <tools/degree.hxx>
class SVXCORE_DLLPUBLIC SdrAngleItem: public SfxInt32Item {
public:
- SdrAngleItem(sal_uInt16 nId, sal_Int32 nAngle): SfxInt32Item(nId,nAngle) {}
+ SdrAngleItem(sal_uInt16 nId, Degree100 nAngle): SfxInt32Item(nId,nAngle.get()) {}
virtual SdrAngleItem* Clone(SfxItemPool* pPool=nullptr) const override;
virtual bool GetPresentation(SfxItemPresentation ePres,
@@ -34,6 +35,9 @@ public:
MapUnit ePresMetric,
OUString& rText,
const IntlWrapper& rIntlWrapper) const override;
+
+ Degree100 GetValue() const { return Degree100(SfxInt32Item::GetValue()); }
+ void SetValue(Degree100 nTheValue) { SfxInt32Item::SetValue(nTheValue.get()); }
};
diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx
index b215108c24c8..560f4cf19fa5 100644
--- a/include/svx/svdedtv.hxx
+++ b/include/svx/svdedtv.hxx
@@ -212,13 +212,13 @@ public:
void MoveMarkedObj(const Size& rSiz, bool bCopy=false);
void ResizeMarkedObj(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bCopy=false);
void ResizeMultMarkedObj(const Point& rRef, const Fraction& xFact, const Fraction& yFact, const bool bWdh, const bool bHgt);
- tools::Long GetMarkedObjRotate() const;
- void RotateMarkedObj(const Point& rRef, tools::Long nAngle, bool bCopy=false);
+ Degree100 GetMarkedObjRotate() const;
+ void RotateMarkedObj(const Point& rRef, Degree100 nAngle, bool bCopy=false);
void MirrorMarkedObj(const Point& rRef1, const Point& rRef2, bool bCopy=false);
void MirrorMarkedObjHorizontal();
void MirrorMarkedObjVertical();
- tools::Long GetMarkedObjShear() const;
- void ShearMarkedObj(const Point& rRef, tools::Long nAngle, bool bVShear=false, bool bCopy=false);
+ Degree100 GetMarkedObjShear() const;
+ void ShearMarkedObj(const Point& rRef, Degree100 nAngle, bool bVShear=false, bool bCopy=false);
void CrookMarkedObj(const Point& rRef, const Point& rRad, SdrCrookMode eMode, bool bVertical, bool bNoContortion, bool bCopy=false);
void DistortMarkedObj(const tools::Rectangle& rRef, const XPolygon& rDistortedRect, bool bNoContortion, bool bCopy=false);
@@ -227,7 +227,7 @@ public:
void SetAllMarkedRect(const tools::Rectangle& rRect) { SetMarkedObjRect(rRect); }
void MoveAllMarked(const Size& rSiz, bool bCopy=false) { MoveMarkedObj(rSiz,bCopy); }
void ResizeAllMarked(const Point& rRef, const Fraction& xFact, const Fraction& yFact) { ResizeMarkedObj(rRef,xFact,yFact); }
- void RotateAllMarked(const Point& rRef, tools::Long nAngle) { RotateMarkedObj(rRef,nAngle); }
+ void RotateAllMarked(const Point& rRef, Degree100 nAngle) { RotateMarkedObj(rRef,nAngle); }
void MirrorAllMarkedHorizontal() { MirrorMarkedObjHorizontal(); }
void MirrorAllMarkedVertical() { MirrorMarkedObjVertical(); }
void CopyMarked() { CopyMarkedObj(); }
diff --git a/include/svx/svdglev.hxx b/include/svx/svdglev.hxx
index 7469444a743b..5a7d3a2ebd38 100644
--- a/include/svx/svdglev.hxx
+++ b/include/svx/svdglev.hxx
@@ -77,7 +77,7 @@ public:
void MoveMarkedGluePoints (const Size& rSiz, bool bCopy);
void ResizeMarkedGluePoints(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bCopy);
- void RotateMarkedGluePoints(const Point& rRef, tools::Long nAngle, bool bCopy);
+ void RotateMarkedGluePoints(const Point& rRef, Degree100 nAngle, bool bCopy);
};
#endif // INCLUDED_SVX_SVDGLEV_HXX
diff --git a/include/svx/svdglue.hxx b/include/svx/svdglue.hxx
index a7eb9b9d76b2..7065b34766a4 100644
--- a/include/svx/svdglue.hxx
+++ b/include/svx/svdglue.hxx
@@ -21,6 +21,7 @@
#define INCLUDED_SVX_SVDGLUE_HXX
#include <tools/gen.hxx>
+#include <tools/degree.hxx>
#include <svx/svxdllapi.h>
#include <memory>
#include <vector>
@@ -104,12 +105,12 @@ public:
void Invalidate(vcl::Window& rWin, const SdrObject* pObj) const;
Point GetAbsolutePos(const SdrObject& rObj) const;
void SetAbsolutePos(const Point& rNewPos, const SdrObject& rObj);
- tools::Long GetAlignAngle() const;
- void SetAlignAngle(tools::Long nAngle);
- static tools::Long EscDirToAngle(SdrEscapeDirection nEsc);
- static SdrEscapeDirection EscAngleToDir(tools::Long nAngle);
- void Rotate(const Point& rRef, tools::Long nAngle, double sn, double cs, const SdrObject* pObj);
- void Mirror(const Point& rRef1, const Point& rRef2, tools::Long nAngle, const SdrObject* pObj);
+ Degree100 GetAlignAngle() const;
+ void SetAlignAngle(Degree100 nAngle);
+ static Degree100 EscDirToAngle(SdrEscapeDirection nEsc);
+ static SdrEscapeDirection EscAngleToDir(Degree100 nAngle);
+ void Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs, const SdrObject* pObj);
+ void Mirror(const Point& rRef1, const Point& rRef2, Degree100 nAngle, const SdrObject* pObj);
void Shear (const Point& rRef, double tn, bool bVShear, const SdrObject* pObj);
};
@@ -137,9 +138,9 @@ public:
void Invalidate(vcl::Window& rWin, const SdrObject* pObj) const;
// temp for transformations on the reference object
void SetReallyAbsolute(bool bOn, const SdrObject& rObj);
- void Rotate(const Point& rRef, tools::Long nAngle, double sn, double cs, const SdrObject* pObj);
+ void Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs, const SdrObject* pObj);
void Mirror(const Point& rRef1, const Point& rRef2, const SdrObject* pObj);
- void Mirror(const Point& rRef1, const Point& rRef2, tools::Long nAngle, const SdrObject* pObj);
+ void Mirror(const Point& rRef1, const Point& rRef2, Degree100 nAngle, const SdrObject* pObj);
void Shear (const Point& rRef, double tn, bool bVShear, const SdrObject* pObj);
};
diff --git a/include/svx/svdhdl.hxx b/include/svx/svdhdl.hxx
index e5cc1379ab94..707c1ddc5a48 100644
--- a/include/svx/svdhdl.hxx
+++ b/include/svx/svdhdl.hxx
@@ -143,7 +143,7 @@ protected:
SdrHdlKind eKind;
- tools::Long nRotationAngle; // turn handle or mousepointer
+ Degree100 nRotationAngle; // turn handle or mousepointer
sal_uInt32 nObjHdlNum; // required by MarkView
sal_uInt32 nPolyNum; // Polygonpoint
sal_uInt32 nPPntNum; // Point number of the polygon
@@ -207,7 +207,7 @@ public:
void SetSelected(bool bJa=true);
void Set1PixMore(bool bJa=true);
- void SetRotationAngle(tools::Long n);
+ void SetRotationAngle(Degree100 n);
bool IsCornerHdl() const { return eKind==SdrHdlKind::UpperLeft || eKind==SdrHdlKind::UpperRight || eKind==SdrHdlKind::LowerLeft || eKind==SdrHdlKind::LowerRight; }
bool IsVertexHdl() const { return eKind==SdrHdlKind::Upper || eKind==SdrHdlKind::Lower || eKind==SdrHdlKind::Left || eKind==SdrHdlKind::Right; }
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index 6f4581d1618a..1d849acd71cd 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -27,6 +27,7 @@
#include <rtl/ustring.hxx>
#include <tools/weakbase.h>
#include <svl/SfxBroadcaster.hxx>
+#include <tools/degree.hxx>
#include <tools/fldunit.hxx>
#include <tools/fract.hxx>
#include <svl/hint.hxx>
@@ -385,7 +386,7 @@ public:
static OUString GetUnitString(FieldUnit eUnit);
OUString GetMetricString(tools::Long nVal, bool bNoUnitChars = false, sal_Int32 nNumDigits = -1) const;
- static OUString GetAngleString(tools::Long nAngle);
+ static OUString GetAngleString(Degree100 nAngle);
static OUString GetPercentString(const Fraction& rVal);
// RecalcPageNums is ordinarily only called by the Page.
diff --git a/include/svx/svdoashp.hxx b/include/svx/svdoashp.hxx
index 2014e0998c2d..070cb2111dfd 100644
--- a/include/svx/svdoashp.hxx
+++ b/include/svx/svdoashp.hxx
@@ -168,16 +168,16 @@ public:
virtual void TakeObjInfo(SdrObjTransformInfoRec& rInfo) const override;
virtual void Move(const Size& rSiz) override;
- virtual void Shear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void SetSnapRect(const tools::Rectangle& rRect) override;
virtual void SetLogicRect(const tools::Rectangle& rRect) override;
virtual void AdjustToMaxRect( const tools::Rectangle& rMaxRect, bool bShrinkOnly = false ) override;
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override;
virtual void NbcSetLogicRect(const tools::Rectangle& rRect) override;
diff --git a/include/svx/svdobj.hxx b/include/svx/svdobj.hxx
index 335eb3d4dcb2..5beb682c6b32 100644
--- a/include/svx/svdobj.hxx
+++ b/include/svx/svdobj.hxx
@@ -27,6 +27,7 @@
#include <svl/lstner.hxx>
#include <svl/poolitem.hxx>
#include <svl/typedwhich.hxx>
+#include <tools/degree.hxx>
#include <svx/DiagramDataInterface.hxx>
#include <svx/svdtypes.hxx>
#include <svx/svdobjkind.hxx>
@@ -536,18 +537,18 @@ public:
virtual void NbcMove (const Size& rSiz);
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact);
virtual void NbcCrop (const basegfx::B2DPoint& rRef, double fxFact, double fyFact);
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs);
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs);
// Utility for call sites that don't have sin and cos handy
- void NbcRotate(const Point& rRef, tools::Long nAngle);
+ void NbcRotate(const Point& rRef, Degree100 nAngle);
virtual void NbcMirror(const Point& rRef1, const Point& rRef2);
- virtual void NbcShear (const Point& rRef, tools::Long nAngle, double tn, bool bVShear);
+ virtual void NbcShear (const Point& rRef, Degree100 nAngle, double tn, bool bVShear);
virtual void Move (const Size& rSiz);
virtual void Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact, bool bUnsetRelative = true);
virtual void Crop (const basegfx::B2DPoint& rRef, double fxFact, double fyFact);
- virtual void Rotate(const Point& rRef, tools::Long nAngle, double sn, double cs);
+ virtual void Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs);
virtual void Mirror(const Point& rRef1, const Point& rRef2);
- virtual void Shear (const Point& rRef, tools::Long nAngle, double tn, bool bVShear);
+ virtual void Shear (const Point& rRef, Degree100 nAngle, double tn, bool bVShear);
/// The relative position of a SdrObject is the distance of the upper
/// left corner of the logic bounding rectangle (SnapRect) to the anchor.
@@ -580,8 +581,8 @@ public:
virtual void AdjustToMaxRect( const tools::Rectangle& rMaxRect, bool bShrinkOnly = false );
// rotation and shear angle
- virtual tools::Long GetRotateAngle() const;
- virtual tools::Long GetShearAngle(bool bVertical = false) const;
+ virtual Degree100 GetRotateAngle() const;
+ virtual Degree100 GetShearAngle(bool bVertical = false) const;
/// snap to special points of an Object (polygon points, center of circle)
virtual sal_uInt32 GetSnapPointCount() const;
@@ -678,7 +679,7 @@ public:
// to be set temporarily when transforming related object(?)
void SetGlueReallyAbsolute(bool bOn);
- void NbcRotateGluePoints(const Point& rRef, tools::Long nAngle, double sn, double cs);
+ void NbcRotateGluePoints(const Point& rRef, Degree100 nAngle, double sn, double cs);
void NbcMirrorGluePoints(const Point& rRef1, const Point& rRef2);
void NbcShearGluePoints (const Point& rRef, double tn, bool bVShear);
diff --git a/include/svx/svdocirc.hxx b/include/svx/svdocirc.hxx
index 15c27ddbe10f..32ecc1f661b0 100644
--- a/include/svx/svdocirc.hxx
+++ b/include/svx/svdocirc.hxx
@@ -32,8 +32,8 @@ namespace sdr::properties {
class SdrCircObjGeoData final : public SdrTextObjGeoData
{
public:
- tools::Long nStartAngle;
- tools::Long nEndAngle;
+ Degree100 nStartAngle;
+ Degree100 nEndAngle;
};
enum class SdrCircKind { Full, Section, Cut, Arc };
@@ -51,10 +51,10 @@ private:
virtual std::unique_ptr<sdr::properties::BaseProperties> CreateObjectSpecificProperties() override;
SdrCircKind meCircleKind;
- tools::Long nStartAngle;
- tools::Long nEndAngle;
+ Degree100 nStartAngle;
+ Degree100 nEndAngle;
- SVX_DLLPRIVATE basegfx::B2DPolygon ImpCalcXPolyCirc(const SdrCircKind eKind, const tools::Rectangle& rRect1, tools::Long nStart, tools::Long nEnd) const;
+ SVX_DLLPRIVATE basegfx::B2DPolygon ImpCalcXPolyCirc(const SdrCircKind eKind, const tools::Rectangle& rRect1, Degree100 nStart, Degree100 nEnd) const;
SVX_DLLPRIVATE static void ImpSetCreateParams(SdrDragStat& rStat);
SVX_DLLPRIVATE void ImpSetAttrToCircInfo(); // copy values from pool
SVX_DLLPRIVATE void ImpSetCircInfoToAttr(); // copy values into pool
@@ -86,8 +86,8 @@ public:
SdrModel& rSdrModel,
SdrCircKind eNewKind,
const tools::Rectangle& rRect,
- tools::Long nNewStartAngle,
- tools::Long nNewEndWink);
+ Degree100 nNewStartAngle,
+ Degree100 nNewEndAngle);
SdrCircKind GetCircleKind() const { return meCircleKind; }
@@ -129,7 +129,7 @@ public:
virtual void NbcMove(const Size& aSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear (const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear (const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual SdrObjectUniquePtr DoConvertToPolyObj(bool bBezier, bool bAddText) const override;
private:
@@ -137,8 +137,8 @@ private:
virtual void SaveGeoData(SdrObjGeoData& rGeo) const override;
virtual void RestGeoData(const SdrObjGeoData& rGeo) override;
public:
- tools::Long GetStartAngle() const { return nStartAngle; }
- tools::Long GetEndAngle() const { return nEndAngle; }
+ Degree100 GetStartAngle() const { return nStartAngle; }
+ Degree100 GetEndAngle() const { return nEndAngle; }
};
diff --git a/include/svx/svdoedge.hxx b/include/svx/svdoedge.hxx
index 5d0116cb97d8..0bda2fece64d 100644
--- a/include/svx/svdoedge.hxx
+++ b/include/svx/svdoedge.hxx
@@ -242,9 +242,9 @@ public:
virtual void NbcResize(const Point& rRefPnt, const Fraction& aXFact, const Fraction& aYFact) override;
// #i54102# added rotate, mirror and shear support
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
// #102344# Added missing implementation
virtual void NbcSetAnchorPos(const Point& rPnt) override;
diff --git a/include/svx/svdogrp.hxx b/include/svx/svdogrp.hxx
index 355b19242400..2083c8839438 100644
--- a/include/svx/svdogrp.hxx
+++ b/include/svx/svdogrp.hxx
@@ -80,15 +80,15 @@ public:
virtual bool BegCreate(SdrDragStat& rStat) override;
- virtual tools::Long GetRotateAngle() const override;
- virtual tools::Long GetShearAngle(bool bVertical = false) const override;
+ virtual Degree100 GetRotateAngle() const override;
+ virtual Degree100 GetShearAngle(bool bVertical = false) const override;
virtual void Move(const Size& rSiz) override;
virtual void Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact,
bool bUnsetRelative = true) override;
- virtual void Rotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void Mirror(const Point& rRef1, const Point& rRef2) override;
- virtual void Shear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void SetAnchorPos(const Point& rPnt) override;
virtual void SetRelativePos(const Point& rPnt) override;
virtual void SetSnapRect(const tools::Rectangle& rRect) override;
@@ -97,9 +97,9 @@ public:
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact,
const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void NbcSetAnchorPos(const Point& rPnt) override;
virtual void NbcSetRelativePos(const Point& rPnt) override;
virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override;
diff --git a/include/svx/svdomeas.hxx b/include/svx/svdomeas.hxx
index d72798e23111..ccc7d2a2f16b 100644
--- a/include/svx/svdomeas.hxx
+++ b/include/svx/svdomeas.hxx
@@ -113,10 +113,10 @@ public:
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
- virtual tools::Long GetRotateAngle() const override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
+ virtual Degree100 GetRotateAngle() const override;
virtual void RecalcSnapRect() override;
virtual sal_uInt32 GetSnapPointCount() const override;
diff --git a/include/svx/svdopath.hxx b/include/svx/svdopath.hxx
index 5f56fd38e5ae..f1a5b1b2b2aa 100644
--- a/include/svx/svdopath.hxx
+++ b/include/svx/svdopath.hxx
@@ -108,9 +108,9 @@ public:
virtual void NbcMove(const Size& aSize) override;
virtual void NbcResize(const Point& rRefPnt, const Fraction& aXFact, const Fraction& aYFact) override;
- virtual void NbcRotate(const Point& rRefPnt, tools::Long nAngle, double fSin, double fCos) override;
+ virtual void NbcRotate(const Point& rRefPnt, Degree100 nAngle, double fSin, double fCos) override;
virtual void NbcMirror(const Point& rRefPnt1, const Point& rRefPnt2) override;
- virtual void NbcShear(const Point& rRefPnt, tools::Long nAngle, double fTan, bool bVShear) override;
+ virtual void NbcShear(const Point& rRefPnt, Degree100 nAngle, double fTan, bool bVShear) override;
virtual sal_uInt32 GetSnapPointCount() const override;
virtual Point GetSnapPoint(sal_uInt32 i) const override;
diff --git a/include/svx/svdorect.hxx b/include/svx/svdorect.hxx
index 9480acdb103a..930fb01ff626 100644
--- a/include/svx/svdorect.hxx
+++ b/include/svx/svdorect.hxx
@@ -112,9 +112,9 @@ public:
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual SdrGluePoint GetVertexGluePoint(sal_uInt16 nNum) const override;
virtual SdrGluePoint GetCornerGluePoint(sal_uInt16 nNum) const override;
diff --git a/include/svx/svdotext.hxx b/include/svx/svdotext.hxx
index 9d74bffec93e..fc7a817b543a 100644
--- a/include/svx/svdotext.hxx
+++ b/include/svx/svdotext.hxx
@@ -454,8 +454,8 @@ public:
virtual void NbcSetSnapRect(const tools::Rectangle& rRect) override;
virtual void NbcSetLogicRect(const tools::Rectangle& rRect) override;
virtual const tools::Rectangle& GetLogicRect() const override;
- virtual tools::Long GetRotateAngle() const override;
- virtual tools::Long GetShearAngle(bool bVertical = false) const override;
+ virtual Degree100 GetRotateAngle() const override;
+ virtual Degree100 GetShearAngle(bool bVertical = false) const override;
virtual sal_uInt32 GetSnapPointCount() const override;
virtual Point GetSnapPoint(sal_uInt32 i) const override;
@@ -478,9 +478,9 @@ public:
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual bool HasTextEdit() const override;
// returns true if TextEditMode started
diff --git a/include/svx/svdovirt.hxx b/include/svx/svdovirt.hxx
index b47bc03ce3f3..12cd04095517 100644
--- a/include/svx/svdovirt.hxx
+++ b/include/svx/svdovirt.hxx
@@ -100,16 +100,16 @@ public:
virtual void NbcMove(const Size& rSiz) override;
virtual void NbcResize(const Point& rRef, const Fraction& xFact,
const Fraction& yFact) override;
- virtual void NbcRotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void NbcRotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void NbcMirror(const Point& rRef1, const Point& rRef2) override;
- virtual void NbcShear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void NbcShear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void Move(const Size& rSiz) override;
virtual void Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact,
bool bUnsetRelative = true) override;
- virtual void Rotate(const Point& rRef, tools::Long nAngle, double sn, double cs) override;
+ virtual void Rotate(const Point& rRef, Degree100 nAngle, double sn, double cs) override;
virtual void Mirror(const Point& rRef1, const Point& rRef2) override;
- virtual void Shear(const Point& rRef, tools::Long nAngle, double tn, bool bVShear) override;
+ virtual void Shear(const Point& rRef, Degree100 nAngle, double tn, bool bVShear) override;
virtual void RecalcSnapRect() override;
virtual const tools::Rectangle& GetSnapRect() const override;
@@ -120,8 +120,8 @@ public:
virtual void SetLogicRect(const tools::Rectangle& rRect) override;
virtual void NbcSetLogicRect(const tools::Rectangle& rRect) override;
- virtual tools::Long GetRotateAngle() const override;
- virtual tools::Long GetShearAngle(bool bVertical = false) const override;
+ virtual Degree100 GetRotateAngle() const override;
+ virtual Degree100 GetShearAngle(bool bVertical = false) const override;
virtual sal_uInt32 GetSnapPointCount() const override;
virtual Point GetSnapPoint(sal_uInt32 i) const override;
diff --git a/include/svx/svdpoev.hxx b/include/svx/svdpoev.hxx
index 538e1012bf49..0ad7addd3a63 100644
--- a/include/svx/svdpoev.hxx
+++ b/include/svx/svdpoev.hxx
@@ -66,7 +66,7 @@ public:
void MoveMarkedPoints(const Size& rSiz);
void ResizeMarkedPoints(const Point& rRef, const Fraction& xFact, const Fraction& yFact);
- void RotateMarkedPoints(const Point& rRef, tools::Long nAngle);
+ void RotateMarkedPoints(const Point& rRef, Degree100 nAngle);
// This probably creates an arbitrary amount of new objects
void RipUpAtMarkedPoints() override;
diff --git a/include/svx/svdsnpv.hxx b/include/svx/svdsnpv.hxx
index 19305837bcc4..b7b06e499590 100644
--- a/include/svx/svdsnpv.hxx
+++ b/include/svx/svdsnpv.hxx
@@ -23,6 +23,7 @@
#include <svx/svdpntv.hxx>
#include <svx/svdhlpln.hxx>
#include <svx/svxdllapi.h>
+#include <tools/degree.hxx>
#include <o3tl/typed_flags_set.hxx>
/**
@@ -104,8 +105,8 @@ protected:
Fraction aSnapWdtY;
sal_uInt16 nMagnSizPix;
- tools::Long nSnapAngle;
- tools::Long nEliminatePolyPointLimitAngle;
+ Degree100 nSnapAngle;
+ Degree100 nEliminatePolyPointLimitAngle;
SdrCrookMode eCrookMode;
@@ -220,8 +221,8 @@ public:
// persistent.
void SetAngleSnapEnabled(bool bOn) { bAngleSnapEnab=bOn; }
bool IsAngleSnapEnabled() const { return bAngleSnapEnab; }
- void SetSnapAngle(tools::Long nAngle) { nSnapAngle=nAngle; }
- tools::Long GetSnapAngle() const { return nSnapAngle; }
+ void SetSnapAngle(Degree100 nAngle) { nSnapAngle=nAngle; }
+ Degree100 GetSnapAngle() const { return nSnapAngle; }
// different effects from Ortho (depending on the context):
// - Create
@@ -280,8 +281,8 @@ public:
// if its adjacent lines are almost a solid line.
void SetEliminatePolyPoints(bool bOn) { bEliminatePolyPoints=bOn; }
bool IsEliminatePolyPoints() const { return bEliminatePolyPoints; }
- void SetEliminatePolyPointLimitAngle(tools::Long nAngle) { nEliminatePolyPointLimitAngle=nAngle; }
- tools::Long GetEliminatePolyPointLimitAngle() const { return nEliminatePolyPointLimitAngle; }
+ void SetEliminatePolyPointLimitAngle(Degree100 nAngle) { nEliminatePolyPointLimitAngle=nAngle; }
+ Degree100 GetEliminatePolyPointLimitAngle() const { return nEliminatePolyPointLimitAngle; }
};
#endif // INCLUDED_SVX_SVDSNPV_HXX
diff --git a/include/svx/svdtrans.hxx b/include/svx/svdtrans.hxx
index a5bd1e640bbf..ccc6308fc018 100644
--- a/include/svx/svdtrans.hxx
+++ b/include/svx/svdtrans.hxx
@@ -22,6 +22,7 @@
#include <rtl/ustring.hxx>
#include <svx/svxdllapi.h>
+#include <tools/degree.hxx>
#include <tools/fldunit.hxx>
#include <tools/fract.hxx>
#include <tools/gen.hxx>
@@ -43,7 +44,7 @@
// To convert it back, we use division.
// That maximum shear angle
-#define SDRMAXSHEAR 8900
+constexpr Degree100 SDRMAXSHEAR(8900);
class XPolygon;
class XPolyPolygon;
@@ -159,13 +160,13 @@ inline double GetCrookAngle(Point& rPnt, const Point& rCenter, const Point& rRad
* @return the returned value is in the range of -180.00..179.99 deg
* and is in 1/100 deg units
*/
-SVXCORE_DLLPUBLIC tools::Long GetAngle(const Point& rPnt);
+SVXCORE_DLLPUBLIC Degree100 GetAngle(const Point& rPnt);
-tools::Long NormAngle18000(tools::Long a); /// Normalize angle to -180.00..179.99
+Degree100 NormAngle18000(Degree100 a); /// Normalize angle to -180.00..179.99
-SVXCORE_DLLPUBLIC tools::Long NormAngle36000(tools::Long a); /// Normalize angle to 0.00..359.99
+SVXCORE_DLLPUBLIC Degree100 NormAngle36000(Degree100 a); /// Normalize angle to 0.00..359.99
-sal_uInt16 GetAngleSector(tools::Long nAngle); /// Determine sector within the cartesian coordinate system
+sal_uInt16 GetAngleSector(Degree100 nAngle); /// Determine sector within the cartesian coordinate system
/**
* Calculates the length of (0,0) via a^2 + b^2 = c^2
@@ -213,8 +214,8 @@ tools::Long GetLen(const Point& rPnt);
class GeoStat { // Geometric state for a rect
public:
- tools::Long nRotationAngle;
- tools::Long nShearAngle;
+ Degree100 nRotationAngle;
+ Degree100 nShearAngle;
double mfTanShearAngle; // tan(nShearAngle)
double mfSinRotationAngle; // sin(nRotationAngle)
double mfCosRotationAngle; // cos(nRotationAngle)
diff --git a/include/svx/sxciaitm.hxx b/include/svx/sxciaitm.hxx
index f14ba75288e7..9d77c18e37b3 100644
--- a/include/svx/sxciaitm.hxx
+++ b/include/svx/sxciaitm.hxx
@@ -22,12 +22,12 @@
#include <svx/svddef.hxx>
#include <svx/sdangitm.hxx>
-inline SdrAngleItem makeSdrCircStartAngleItem(tools::Long nAngle)
+inline SdrAngleItem makeSdrCircStartAngleItem(Degree100 nAngle)
{
return SdrAngleItem(SDRATTR_CIRCSTARTANGLE, nAngle);
}
-inline SdrAngleItem makeSdrCircEndAngleItem(tools::Long nAngle)
+inline SdrAngleItem makeSdrCircEndAngleItem(Degree100 nAngle)
{
return SdrAngleItem(SDRATTR_CIRCENDANGLE, nAngle);
}
diff --git a/include/svx/sxmtfitm.hxx b/include/svx/sxmtfitm.hxx
index 6591ff2eb40a..2e89ebebd127 100644
--- a/include/svx/sxmtfitm.hxx
+++ b/include/svx/sxmtfitm.hxx
@@ -42,7 +42,7 @@ public:
//Angle of the text in 1/100deg. 0=horizontal; read from left to right. (n.i.)
class SdrMeasureTextFixedAngleItem: public SdrAngleItem {
public:
- SdrMeasureTextFixedAngleItem(tools::Long nVal=0): SdrAngleItem(SDRATTR_MEASURETEXTFIXEDANGLE,nVal) {}
+ SdrMeasureTextFixedAngleItem(Degree100 nVal=0_deg100): SdrAngleItem(SDRATTR_MEASURETEXTFIXEDANGLE,nVal) {}
virtual ~SdrMeasureTextFixedAngleItem() override;
virtual SdrMeasureTextFixedAngleItem* Clone(SfxItemPool* pPool=nullptr) const override;
diff --git a/include/tools/degree.hxx b/include/tools/degree.hxx
index 27bdffaa5de1..47dc7a8d98a7 100644
--- a/include/tools/degree.hxx
+++ b/include/tools/degree.hxx
@@ -10,6 +10,7 @@
#include <sal/types.h>
#include <o3tl/strong_int.hxx>
+#include <cstdlib>
#include <math.h>
/** tenths of a Degree, normally rotation */
@@ -18,10 +19,27 @@ typedef o3tl::strong_int<sal_Int16, struct Degree10Tag> Degree10;
/** custom literal */
constexpr Degree10 operator""_deg10(unsigned long long n) { return Degree10{ n }; }
+/** hundredths of a Degree, normally rotation */
+typedef o3tl::strong_int<sal_Int32, struct Degree100Tag> Degree100;
+
+// Android has trouble calling the correct overload of std::abs
+#ifdef ANDROID
+inline Degree100 abs(Degree100 x) { return Degree100(std::abs(static_cast<int>(x.get()))); }
+#else
+inline Degree100 abs(Degree100 x) { return Degree100(std::abs(x.get())); }
+#endif
+
+/** custom literal */
+constexpr Degree100 operator""_deg100(unsigned long long n) { return Degree100{ n }; }
+
/** conversion functions */
-inline sal_Int32 toDegree100(Degree10 x) { return x.get() * 10; }
-inline double toRadians(Degree10 x) { return x.get() * M_PI / 1800.0; }
+inline Degree100 toDegree100(Degree10 x) { return Degree100(x.get() * 10); }
+inline double toRadians(Degree10 x) { return x.get() * (M_PI / 1800.0); }
inline double toDegrees(Degree10 x) { return x.get() / 10.0; }
+inline Degree10 toDegree10(Degree100 x) { return Degree10((x.get() + 5) / 10); }
+inline double toRadians(Degree100 x) { return x.get() * (M_PI / 18000.0); }
+inline double toDegrees(Degree100 x) { return x.get() / 100.0; }
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index ce30b436ffec..98ef5de040b7 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -1048,7 +1048,7 @@ Reference< XShape > const & Shape::createAndInsert(
aShapeProps.assignUsed( getShapeProperties() );
aShapeProps.assignUsed( maDefaultShapeProperties );
if(mnRotation != 0 && bIsCustomShape)
- aShapeProps.setProperty( PROP_RotateAngle, sal_Int32( NormAngle36000( mnRotation / -600 ) ));
+ aShapeProps.setProperty( PROP_RotateAngle, sal_Int32( NormAngle36000( Degree100(mnRotation / -600) ) ));
if ( bIsEmbMedia || aServiceName == "com.sun.star.drawing.GraphicObjectShape" || aServiceName == "com.sun.star.drawing.OLE2Shape" || bIsCustomShape )
mpGraphicPropertiesPtr->pushToPropMap( aShapeProps, rGraphicHelper );
if ( mpTablePropertiesPtr && aServiceName == "com.sun.star.drawing.TableShape" )
@@ -1486,7 +1486,8 @@ Reference< XShape > const & Shape::createAndInsert(
if ( !bUseRotationTransform && (mnRotation != 0 || nCameraRotation != 0) )
{
// use the same logic for rotation from VML exporter (SimpleShape::implConvertAndInsert at vmlshape.cxx)
- aPropertySet.setAnyProperty( PROP_RotateAngle, makeAny( sal_Int32( NormAngle36000( (mnRotation - nCameraRotation) / -600 ) ) ) );
+ Degree100 nAngle = NormAngle36000( Degree100((mnRotation - nCameraRotation) / -600) );
+ aPropertySet.setAnyProperty( PROP_RotateAngle, makeAny( sal_Int32( nAngle.get() ) ) );
aPropertySet.setAnyProperty( PROP_HoriOrientPosition, makeAny( maPosition.X ) );
aPropertySet.setAnyProperty( PROP_VertOrientPosition, makeAny( maPosition.Y ) );
}
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 0571aeed7d93..da3edf2169c7 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1717,8 +1717,8 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
{
SAL_INFO("oox.shape", "write shape transformation");
- sal_Int32 nRotation = 0;
- sal_Int32 nCameraRotation = 0;
+ Degree100 nRotation;
+ Degree100 nCameraRotation;
awt::Point aPos = rXShape->getPosition();
awt::Size aSize = rXShape->getSize();
@@ -1741,22 +1741,26 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
if (!bSuppressRotation)
{
SdrObject* pShape = GetSdrObjectFromXShape( rXShape );
- nRotation = pShape ? pShape->GetRotateAngle() : 0;
+ nRotation = pShape ? pShape->GetRotateAngle() : 0_deg100;
if ( GetDocumentType() != DOCUMENT_DOCX )
{
int faccos=bFlipV ? -1 : 1;
int facsin=bFlipH ? -1 : 1;
- aPos.X-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Width/2-facsin*sin(nRotation*F_PI18000)*aSize.Height/2;
- aPos.Y-=(1-faccos*cos(nRotation*F_PI18000))*aSize.Height/2+facsin*sin(nRotation*F_PI18000)*aSize.Width/2;
+ aPos.X-=(1-faccos*cos(nRotation.get()*F_PI18000))*aSize.Width/2-facsin*sin(nRotation.get()*F_PI18000)*aSize.Height/2;
+ aPos.Y-=(1-faccos*cos(nRotation.get()*F_PI18000))*aSize.Height/2+facsin*sin(nRotation.get()*F_PI18000)*aSize.Width/2;
}
// The RotateAngle property's value is independent from any flipping, and that's exactly what we need here.
uno::Reference<beans::XPropertySet> xPropertySet(rXShape, uno::UNO_QUERY);
uno::Reference<beans::XPropertySetInfo> xPropertySetInfo = xPropertySet->getPropertySetInfo();
if (xPropertySetInfo->hasPropertyByName("RotateAngle"))
- xPropertySet->getPropertyValue("RotateAngle") >>= nRotation;
+ {
+ sal_Int32 nTmp;
+ if (xPropertySet->getPropertyValue("RotateAngle") >>= nTmp)
+ nRotation = Degree100(nTmp);
+ }
// tdf#133037: restore original rotate angle before output
- if (nRotation != 0 && xPropertySetInfo->hasPropertyByName(UNO_NAME_MISC_OBJ_INTEROPGRABBAG))
+ if (nRotation && xPropertySetInfo->hasPropertyByName(UNO_NAME_MISC_OBJ_INTEROPGRABBAG))
{
uno::Sequence<beans::PropertyValue> aGrabBagProps;
xPropertySet->getPropertyValue(UNO_NAME_MISC_OBJ_INTEROPGRABBAG) >>= aGrabBagProps;
@@ -1776,8 +1780,9 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
[](const PropertyValue& rProp) { return rProp.Name == "rotRev"; });
if (pZRotationProp != std::cend(aCameraProps))
{
- pZRotationProp->Value >>= nCameraRotation;
- nCameraRotation = NormAngle36000(nCameraRotation / -600);
+ sal_Int32 nTmp;
+ pZRotationProp->Value >>= nTmp;
+ nCameraRotation = NormAngle36000(Degree100(nTmp / -600));
}
}
}
@@ -1786,7 +1791,7 @@ void DrawingML::WriteShapeTransformation( const Reference< XShape >& rXShape, sa
// OOXML flips shapes before rotating them.
if(bFlipH != bFlipV)
- nRotation = nRotation * -1 + 36000;
+ nRotation = Degree100(nRotation.get() * -1 + 36000);
WriteTransformation(tools::Rectangle(Point(aPos.X, aPos.Y), Size(aSize.Width, aSize.Height)), nXmlNamespace,
bFlipHWrite, bFlipVWrite, ExportRotateClockwisify(nRotation + nCameraRotation), IsGroupShape( rXShape ));
@@ -4981,8 +4986,8 @@ void DrawingML::WriteFromTo(const uno::Reference<css::drawing::XShape>& rXShape,
SdrObject* pObj = SdrObject::getSdrObjectFromXShape(rXShape.get());
if (pObj)
{
- sal_Int32 nRotation = pObj->GetRotateAngle();
- if (nRotation != 0)
+ Degree100 nRotation = pObj->GetRotateAngle();
+ if (nRotation)
{
sal_Int16 nHalfWidth = aSize.Width / 2;
sal_Int16 nHalfHeight = aSize.Height / 2;
@@ -4997,7 +5002,7 @@ void DrawingML::WriteFromTo(const uno::Reference<css::drawing::XShape>& rXShape,
// MSO changes the anchor positions at these angles and that does an extra 90 degrees
// rotation on our shapes, so we output it in such position that MSO
// can draw this shape correctly.
- if ((nRotation >= 45 * 100 && nRotation < 135 * 100) || (nRotation >= 225 * 100 && nRotation < 315 * 100))
+ if ((nRotation >= 4500_deg100 && nRotation < 13500_deg100) || (nRotation >= 22500_deg100 && nRotation < 31500_deg100))
{
aTopLeft.X = aTopLeft.X - nHalfHeight + nHalfWidth;
aTopLeft.Y = aTopLeft.Y - nHalfWidth + nHalfHeight;
diff --git a/oox/source/shape/WpsContext.cxx b/oox/source/shape/WpsContext.cxx
index 5a4210572e51..834dc9f5a730 100644
--- a/oox/source/shape/WpsContext.cxx
+++ b/oox/source/shape/WpsContext.cxx
@@ -84,8 +84,8 @@ oox::core::ContextHandlerRef WpsContext::onCreateContext(sal_Int32 nElementToken
// If the text is not rotated the way the shape wants it already, set the angle.
const sal_Int32 nRotation = nVert == XML_vert270 ? -270 : -90;
- if (static_cast<tools::Long>(basegfx::rad2deg(fRotate))
- != NormAngle36000(static_cast<tools::Long>(nRotation) * 100) / 100)
+ if (static_cast<sal_Int32>(basegfx::rad2deg(fRotate))
+ != NormAngle36000(Degree100(nRotation * 100)).get() / 100)
{
comphelper::SequenceAsHashMap aCustomShapeGeometry(
xPropertySet->getPropertyValue("CustomShapeGeometry"));
diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx
index 62da5dedf10f..60ef7f900d15 100644
--- a/oox/source/vml/vmlformatting.cxx
+++ b/oox/source/vml/vmlformatting.cxx
@@ -118,16 +118,16 @@ double ConversionHelper::decodePercent( const OUString& rValue, double fDefValue
return fDefValue;
}
-sal_Int32 ConversionHelper::decodeRotation( const OUString& rValue )
+Degree100 ConversionHelper::decodeRotation( const OUString& rValue )
{
if( rValue.isEmpty() )
- return 0;
+ return 0_deg100;
double fValue = 0.0;
double fRotation = 0.0;
sal_Int32 nEndPos = 0;
if( !lclExtractDouble(fValue, nEndPos, rValue) )
- return 0;
+ return 0_deg100;
if( nEndPos == rValue.getLength() )
fRotation = fValue;
@@ -136,10 +136,10 @@ sal_Int32 ConversionHelper::decodeRotation( const OUString& rValue )
else
{
OSL_FAIL("ConversionHelper::decodeRotation - unknown measure unit");
- return 0;
+ return 0_deg100;
}
- return NormAngle36000(fRotation * -100);
+ return NormAngle36000(Degree100(static_cast<sal_Int32>(fRotation * -100)));
}
sal_Int64 ConversionHelper::decodeMeasureToEmu( const GraphicHelper& rGraphicHelper,
diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx
index 5b081660148d..32c1ec93ed49 100644
--- a/oox/source/vml/vmlshape.cxx
+++ b/oox/source/vml/vmlshape.cxx
@@ -405,7 +405,7 @@ Reference< XShape > ShapeBase::convertAndInsert( const Reference< XShapes >& rxS
}
if(!maTypeModel.maRotation.isEmpty())
- aGrabBag.push_back(comphelper::makePropertyValue("mso-rotation-angle", ConversionHelper::decodeRotation(maTypeModel.maRotation)));
+ aGrabBag.push_back(comphelper::makePropertyValue("mso-rotation-angle", ConversionHelper::decodeRotation(maTypeModel.maRotation).get()));
propertySet->setPropertyValue("FrameInteropGrabBag", uno::makeAny(comphelper::containerToSequence(aGrabBag)));
sal_Int32 backColorTransparency = 0;
propertySet->getPropertyValue("BackColorTransparency")
@@ -685,7 +685,7 @@ static void lcl_SetAnchorType(PropertySet& rPropSet, const ShapeTypeModel& rType
Reference< XShape > SimpleShape::implConvertAndInsert( const Reference< XShapes >& rxShapes, const awt::Rectangle& rShapeRect ) const
{
awt::Rectangle aShapeRect(rShapeRect);
- std::optional<sal_Int32> oRotation;
+ std::optional<Degree100> oRotation;
bool bFlipX = false, bFlipY = false;
// tdf#137765: skip this rotation for line shapes
if (!maTypeModel.maRotation.isEmpty() && maService != "com.sun.star.drawing.LineShape")
@@ -840,7 +840,7 @@ Reference< XShape > SimpleShape::implConvertAndInsert( const Reference< XShapes
{
if (oRotation)
{
- aPropertySet.setAnyProperty(PROP_RotateAngle, makeAny(*oRotation));
+ aPropertySet.setAnyProperty(PROP_RotateAngle, makeAny((*oRotation).get()));
uno::Reference<lang::XServiceInfo> xServiceInfo(rxShapes, uno::UNO_QUERY);
if (!xServiceInfo->supportsService("com.sun.star.drawing.GroupShape"))
{
@@ -947,7 +947,7 @@ Reference< XShape > SimpleShape::createPictureObject(const Reference< XShapes >&
}
// fdo#70457: preserve rotation information
if ( !maTypeModel.maRotation.isEmpty() )
- aPropSet.setAnyProperty(PROP_RotateAngle, makeAny(ConversionHelper::decodeRotation(maTypeModel.maRotation)));
+ aPropSet.setAnyProperty(PROP_RotateAngle, makeAny(ConversionHelper::decodeRotation(maTypeModel.maRotation).get()));
const GraphicHelper& rGraphicHelper = mrDrawing.getFilter().getGraphicHelper();
lcl_SetAnchorType(aPropSet, maTypeModel, rGraphicHelper);
@@ -1082,7 +1082,7 @@ namespace
// -1 is required because the direction of MSO rotation is the opposite of ours
// 100 is required because in this part of the code the angle is in a hundredth of
// degrees.
- auto nAngle = -1 * 100.0 * rTypeModel.maRotation.toDouble();
+ Degree100 nAngle( static_cast<sal_Int32>(-1 * 100.0 * rTypeModel.maRotation.toDouble()) );
pShape->NbcRotate(pShape->GetSnapRect().Center(), nAngle);
}
}
@@ -1535,7 +1535,7 @@ Reference< XShape > GroupShape::implConvertAndInsert( const Reference< XShapes >
const GraphicHelper& rGraphicHelper = mrDrawing.getFilter().getGraphicHelper();
lcl_SetAnchorType(aPropertySet, maTypeModel, rGraphicHelper);
if (!maTypeModel.maRotation.isEmpty())
- aPropertySet.setAnyProperty(PROP_RotateAngle, makeAny(ConversionHelper::decodeRotation(maTypeModel.maRotation)));
+ aPropertySet.setAnyProperty(PROP_RotateAngle, makeAny(ConversionHelper::decodeRotation(maTypeModel.maRotation).get()));
return xGroupShape;
}
diff --git a/reportdesign/source/ui/report/ReportSection.cxx b/reportdesign/source/ui/report/ReportSection.cxx
index d0618c234c58..a1ea65141ae2 100644
--- a/reportdesign/source/ui/report/ReportSection.cxx
+++ b/reportdesign/source/ui/report/ReportSection.cxx
@@ -604,7 +604,7 @@ void OReportSection::createDefault(const OUString& _sType,SdrObject* _pObj)
EE_ITEMS_START, EE_ITEMS_END>{});
aDest.Set( rSource );
_pObj->SetMergedItemSet( aDest );
- sal_Int32 nAngle = pSourceObj->GetRotateAngle();
+ Degree100 nAngle = pSourceObj->GetRotateAngle();
if ( nAngle )
_pObj->NbcRotate( _pObj->GetSnapRect().Center(), nAngle );
bAttributesAppliedFromGallery = true;
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx
index 4c9206af40aa..63025d90de30 100644
--- a/sc/inc/attrib.hxx
+++ b/sc/inc/attrib.hxx
@@ -288,7 +288,7 @@ private:
class SC_DLLPUBLIC ScRotateValueItem final : public SdrAngleItem
{
public:
- ScRotateValueItem(sal_Int32 nAngle);
+ ScRotateValueItem(Degree100 nAngle);
virtual ScRotateValueItem* Clone(SfxItemPool* pPool=nullptr) const override;
virtual bool GetPresentation( SfxItemPresentation ePresentation,
diff --git a/sc/inc/patattr.hxx b/sc/inc/patattr.hxx
index 63e854edffbb..bfc162bfb657 100644
--- a/sc/inc/patattr.hxx
+++ b/sc/inc/patattr.hxx
@@ -23,6 +23,7 @@
#include <svl/poolitem.hxx>
#include <svl/itemset.hxx>
#include <svl/languageoptions.hxx>
+#include <tools/degree.hxx>
#include <editeng/svxenum.hxx>
#include "scdllapi.h"
#include "fonthelper.hxx"
@@ -139,7 +140,7 @@ public:
sal_uInt32 GetNumberFormat( SvNumberFormatter* pFormatter,
const SfxItemSet* pCondSet ) const;
- tools::Long GetRotateVal( const SfxItemSet* pCondSet ) const;
+ Degree100 GetRotateVal( const SfxItemSet* pCondSet ) const;
ScRotateDir GetRotateDir( const SfxItemSet* pCondSet ) const;
void SetKey(sal_uInt64 nKey);
diff --git a/sc/qa/unit/scshapetest.cxx b/sc/qa/unit/scshapetest.cxx
index 14dc129e6951..344a26e28901 100644
--- a/sc/qa/unit/scshapetest.cxx
+++ b/sc/qa/unit/scshapetest.cxx
@@ -234,16 +234,17 @@ void ScShapeTest::testTdf137033_RotShear_ResizeHide()
// Verify hiding has changed shape geometry as expected
tools::Rectangle aSnapRect(pObj->GetSnapRect());
- tools::Long aRotateAngle(pObj->GetRotateAngle());
- tools::Long aShearAngle(pObj->GetShearAngle());
+ Degree100 aRotateAngle(pObj->GetRotateAngle());
+ Degree100 aShearAngle(pObj->GetShearAngle());
// mathematical exact would be Point(3868, 4795), Size(9763, 1909)
// current values as of LO 7.2
const tools::Rectangle aExpectRect(Point(3871, 4796), Size(9764, 1910));
- const tools::Long aExpectRotateAngle(20923);
- const tools::Long aExpectShearAngle(-6572);
- CPPUNIT_ASSERT_MESSAGE("Hide rows, shear angle: ", abs(aShearAngle - aExpectShearAngle) <= 1);
+ const Degree100 aExpectRotateAngle(20923_deg100);
+ const Degree100 aExpectShearAngle(-6572_deg100);
+ CPPUNIT_ASSERT_MESSAGE("Hide rows, shear angle: ",
+ abs(aShearAngle - aExpectShearAngle) <= 1_deg100);
CPPUNIT_ASSERT_MESSAGE("Hide rows, rotate angle: ",
- abs(aRotateAngle - aExpectRotateAngle) <= 1);
+ abs(aRotateAngle - aExpectRotateAngle) <= 1_deg100);
lcl_AssertRectEqualWithTolerance("Reload: wrong pos or size", aExpectRect, aSnapRect, 1);
// Save and reload.
@@ -269,8 +270,10 @@ void ScShapeTest::testTdf137033_RotShear_ResizeHide()
aSnapRect = pObj->GetSnapRect();
aRotateAngle = pObj->GetRotateAngle();
aShearAngle = pObj->GetShearAngle();
- CPPUNIT_ASSERT_MESSAGE("Reload, shear angle: ", abs(aShearAngle - aExpectShearAngle) <= 3);
- CPPUNIT_ASSERT_MESSAGE("Reload, rotate angle: ", abs(aRotateAngle - aExpectRotateAngle) <= 3);
+ CPPUNIT_ASSERT_MESSAGE("Reload, shear angle: ",
+ abs(aShearAngle - aExpectShearAngle) <= 3_deg100);
+ CPPUNIT_ASSERT_MESSAGE("Reload, rotate angle: ",
+ abs(aRotateAngle - aExpectRotateAngle) <= 3_deg100);
lcl_AssertRectEqualWithTolerance("Reload: wrong pos or size", aExpectRect, aSnapRect, 4);
pDocSh->DoClose();
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 774f3eb7069a..cbf2267ce07e 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -5715,9 +5715,9 @@ void Test::testAnchoredRotatedShape()
SdrRectObj *pObj = new SdrRectObj(*pDrawLayer, aRect);
pPage->InsertObject(pObj);
Point aRef1(pObj->GetSnapRect().Center());
- int nAngle = 9000; //90 deg.
- double nSin = sin(nAngle * F_PI18000);
- double nCos = cos(nAngle * F_PI18000);
+ Degree100 nAngle = 9000_deg100; //90 deg.
+ double nSin = sin(nAngle.get() * F_PI18000);
+ double nCos = cos(nAngle.get() * F_PI18000);
pObj->Rotate(aRef1,nAngle,nSin,nCos);
ScDrawLayer::SetCellAnchoredFromPosition(*pObj, *m_pDoc, 0, true);
diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx
index a44f00243ce4..da8490b72f99 100644
--- a/sc/source/core/data/attarray.cxx
+++ b/sc/source/core/data/attarray.cxx
@@ -1355,8 +1355,8 @@ bool ScAttrArray::HasAttrib_Impl(const ScPatternAttr* pPattern, HasAttrFlags nMa
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();
- if ( nAngle != 0 && nAngle != 9000 && nAngle != 27000 )
+ Degree100 nAngle = pRotate->GetValue();
+ if ( nAngle && nAngle != 9000_deg100 && nAngle != 27000_deg100 )
bFound = true;
}
if ( nMask & HasAttrFlags::NeedHeight )
diff --git a/sc/source/core/data/attrib.cxx b/sc/source/core/data/attrib.cxx
index 1a155a8fa13d..cb39fec0b2f0 100644
--- a/sc/source/core/data/attrib.cxx
+++ b/sc/source/core/data/attrib.cxx
@@ -729,7 +729,7 @@ void ScCondFormatItem::dumpAsXml(xmlTextWriterPtr pWriter) const
xmlTextWriterEndElement(pWriter);
}
-ScRotateValueItem::ScRotateValueItem(sal_Int32 nAngle)
+ScRotateValueItem::ScRotateValueItem(Degree100 nAngle)
: SdrAngleItem(ATTR_ROTATE_VALUE, nAngle)
{
}
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index d3d9910d9326..22d5a16de895 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -211,7 +211,7 @@ tools::Long ScColumn::GetNeededSize(
if ( bWidth && bBreak ) // after determining bAsianVertical (bBreak may be reset)
return 0;
- tools::Long nRotate = 0;
+ Degree100 nRotate(0);
SvxRotateMode eRotMode = SVX_ROTATE_MODE_STANDARD;
if ( eOrient == SvxCellOrientation::Standard )
{
@@ -228,7 +228,7 @@ tools::Long ScColumn::GetNeededSize(
else
eRotMode = pPattern->GetItem(ATTR_ROTATE_MODE).GetValue();
- if ( nRotate == 18000 )
+ if ( nRotate == 18000_deg100 )
eRotMode = SVX_ROTATE_MODE_STANDARD; // no overflow
}
}
@@ -237,7 +237,7 @@ tools::Long ScColumn::GetNeededSize(
{
// ignore orientation/rotation if "repeat" is active
eOrient = SvxCellOrientation::Standard;
- nRotate = 0;
+ nRotate = 0_deg100;
bAsianVertical = false;
}
@@ -301,7 +301,7 @@ tools::Long ScColumn::GetNeededSize(
{
//TODO: take different X/Y scaling into consideration
- double nRealOrient = nRotate * F_PI18000; // nRotate is in 1/100 Grad
+ double nRealOrient = nRotate.get() * F_PI18000; // nRotate is in 1/100 Grad
double nCosAbs = fabs( cos( nRealOrient ) );
double nSinAbs = fabs( sin( nRealOrient ) );
tools::Long nHeight = static_cast<tools::Long>( aSize.Height() * nCosAbs + aSize.Width() * nSinAbs );
@@ -482,7 +482,7 @@ tools::Long ScColumn::GetNeededSize(
//TODO: take different X/Y scaling into consideration
Size aSize( pEngine->CalcTextWidth(), pEngine->GetTextHeight() );
- double nRealOrient = nRotate * F_PI18000; // nRotate is in 1/100 Grad
+ double nRealOrient = nRotate.get() * F_PI18000; // nRotate is in 1/100 Grad
double nCosAbs = fabs( cos( nRealOrient ) );
double nSinAbs = fabs( sin( nRealOrient ) );
tools::Long nHeight = static_cast<tools::Long>( aSize.Height() * nCosAbs + aSize.Width() * nSinAbs );
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index 011b59613689..0a96c3b4ee5d 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -249,7 +249,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 ScVerticalStackCell(false);
- mvPoolDefaults[ ATTR_ROTATE_VALUE - ATTR_STARTINDEX ] = new ScRotateValueItem( 0 );
+ mvPoolDefaults[ ATTR_ROTATE_VALUE - ATTR_STARTINDEX ] = new ScRotateValueItem( 0_deg100 );
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 cb3212ece075..5bbdd06266ee 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -5184,8 +5184,8 @@ bool ScDocument::HasAttrib( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
{
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list