Files
libreoffice/svx/source/uitest/sdrobject.cxx
Noel Grandin 6561fc32af loplugin:oncevar in svx
Change-Id: I22a3a13e059ac7d3479f12860564fe3eb1b55e44
Reviewed-on: https://gerrit.libreoffice.org/39282
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-27 11:11:27 +02:00

168 lines
5.5 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <svx/uiobject.hxx>
#include <svx/svdobj.hxx>
#include <tools/fract.hxx>
SdrUIObject::~SdrUIObject()
{
}
StringMap SdrUIObject::get_state()
{
StringMap aMap;
SdrObject* pObject = get_object();
if (!pObject)
return aMap;
aMap["Name"] = pObject->GetName();
aMap["Description"] = pObject->GetDescription();
aMap["Title"] = pObject->GetTitle();
aMap["Z-Order"] = OUString::number(pObject->GetOrdNum());
aMap["Layer"] = OUString::number(sal_uInt8(pObject->GetLayer()));
aMap["IsGroupObject"] = OUString::boolean(pObject->IsGroupObject());
aMap["IsPolyObject"] = OUString::boolean(pObject->IsPolyObj());
aMap["PointCount"] = OUString::number(pObject->GetPointCount());
aMap["HasTextEdit"] = OUString::boolean(pObject->HasTextEdit());
aMap["HasMacro"] = OUString::boolean(pObject->HasMacro());
aMap["IsClosed"] = OUString::boolean(pObject->IsClosedObj());
aMap["IsEdgeObject"] = OUString::boolean(pObject->IsEdgeObj());
aMap["Is3DObject"] = OUString::boolean(pObject->Is3DObj());
aMap["IsUNOObject"] = OUString::boolean(pObject->IsUnoObj());
aMap["MoveProtected"] = OUString::boolean(pObject->IsMoveProtect());
aMap["ResizeProtected"] = OUString::boolean(pObject->IsResizeProtect());
aMap["Printable"] = OUString::boolean(pObject->IsPrintable());
aMap["Visible"] = OUString::boolean(pObject->IsVisible());
aMap["HasText"] = OUString::boolean(pObject->HasText());
return aMap;
}
void SdrUIObject::execute(const OUString& rAction,
const StringMap& rParameters)
{
SdrObject* pObj = get_object();
if (!pObj)
return;
if (rAction == "MOVE")
{
auto itrNX = rParameters.find("X");
if (itrNX == rParameters.end())
throw css::uno::RuntimeException("missing parameter X");
auto itrNY = rParameters.find("Y");
if (itrNY == rParameters.end())
throw css::uno::RuntimeException("missing parameter Y");
long nX = itrNX->second.toInt32();
long nY = itrNY->second.toInt32();
Size aMoveRange(nX, nY);
pObj->Move(aMoveRange);
}
else if (rAction == "RESIZE")
{
auto itrNX = rParameters.find("X");
if (itrNX == rParameters.end())
throw css::uno::RuntimeException("missing parameter X");
auto itrNY = rParameters.find("Y");
if (itrNY == rParameters.end())
throw css::uno::RuntimeException("missing parameter Y");
long nX = itrNX->second.toInt32();
long nY = itrNY->second.toInt32();
Point aPos(nX, nY);
auto itrFracX = rParameters.find("FRAC_X");
if (itrFracX == rParameters.end())
throw css::uno::RuntimeException("missing parameter FRAC_X");
double nFracX = itrFracX->second.toDouble();
Fraction aFracX(nFracX);
auto itrFracY = rParameters.find("FRAC_Y");
if (itrFracY == rParameters.end())
throw css::uno::RuntimeException("missing parameter FRAC_Y");
double nFracY = itrFracY->second.toDouble();
Fraction aFracY(nFracY);
pObj->Resize(aPos, aFracX, aFracY, true/*bRelative*/);
}
else if (rAction == "CROP")
{
auto itrNX = rParameters.find("X");
if (itrNX == rParameters.end())
throw css::uno::RuntimeException("missing parameter X");
auto itrNY = rParameters.find("Y");
if (itrNY == rParameters.end())
throw css::uno::RuntimeException("missing parameter Y");
long nX = itrNX->second.toInt32();
long nY = itrNY->second.toInt32();
Point aPos(nX, nY);
auto itrFracX = rParameters.find("FRAC_X");
if (itrFracX == rParameters.end())
throw css::uno::RuntimeException("missing parameter FRAC_X");
double nFracX = itrFracX->second.toDouble();
Fraction aFracX(nFracX);
auto itrFracY = rParameters.find("FRAC_Y");
if (itrFracY == rParameters.end())
throw css::uno::RuntimeException("missing parameter FRAC_Y");
double nFracY = itrFracY->second.toDouble();
Fraction aFracY(nFracY);
pObj->Crop(aPos, aFracX, aFracY);
}
else if (rAction == "ROTATE")
{
auto itrNX = rParameters.find("X");
if (itrNX == rParameters.end())
throw css::uno::RuntimeException("missing parameter X");
auto itrNY = rParameters.find("Y");
if (itrNY == rParameters.end())
throw css::uno::RuntimeException("missing parameter Y");
long nX = itrNX->second.toInt32();
long nY = itrNY->second.toInt32();
Point aPos(nX, nY);
auto itrAngle = rParameters.find("ANGLE");
if (itrAngle == rParameters.end())
throw css::uno::RuntimeException("missing parameter ANGLE");
double nAngle = itrAngle->second.toDouble();
pObj->Rotate(aPos, nAngle, 0, 0);
}
else if (rAction == "Mirror")
{
Point aPos;
Point aPos2;
pObj->Mirror(aPos, aPos2);
}
else if (rAction == "SHEAR")
{
Point aPos;
pObj->Shear(aPos, 0.0/*nAngle*/, 0, false);
}
}
OUString SdrUIObject::get_type() const
{
return OUString("SdrUIObject");
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */