24#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
25#include <com/sun/star/drawing/Hatch.hpp>
26#include <com/sun/star/drawing/LineStyle.hpp>
27#include <com/sun/star/drawing/LineDash.hpp>
28#include <com/sun/star/drawing/DashStyle.hpp>
29#include <com/sun/star/drawing/FillStyle.hpp>
30#include <com/sun/star/awt/Gradient2.hpp>
31#include <com/sun/star/uno/Sequence.hxx>
32#include <com/sun/star/beans/PropertyValue.hpp>
42#include <osl/diagnose.h>
49#include <svx/strings.hrc>
91#include <boost/property_tree/json_parser.hpp>
92#include <libxml/xmlwriter.h>
112 nPalIndex(rNameOrIndex.nPalIndex)
118 return ( SfxStringItem::operator==(rItem) &&
134 bool bForceNew =
false;
141 if (!aUniqueName.isEmpty() && pPool1)
151 if( !pCompareValueFunc( pNameOrIndex, pCheckItem ) )
164 if (aUniqueName.isEmpty())
166 sal_Int32 nUserIndex = 1;
167 const OUString aUser(
SvxResId(pPrefixResId) +
" ");
171 const int nCount = pDefaults->Count();
187 bFound = (rGraphicObjectA == rGraphicObjectB);
191 bFound =
static_cast<const XLineDashItem*
>(pCheckItem)->GetDashValue() ==
static_cast<const XDashEntry*
>(pEntry)->GetDash();
194 bFound =
static_cast<const XLineStartItem*
>(pCheckItem)->GetLineStartValue() ==
static_cast<const XLineEndEntry*
>(pEntry)->GetLineEnd();
197 bFound =
static_cast<const XLineEndItem*
>(pCheckItem)->GetLineEndValue() ==
static_cast<const XLineEndEntry*
>(pEntry)->GetLineEnd();
203 bFound =
static_cast<const XFillHatchItem*
>(pCheckItem)->GetHatchValue() ==
static_cast<const XHatchEntry*
>(pEntry)->GetHatch();
209 aUniqueName = pEntry->
GetName();
215 if(
aEntryName.getLength() >= aUser.getLength())
218 if( nThisIndex >= nUserIndex )
219 nUserIndex = nThisIndex + 1;
226 if (aUniqueName.isEmpty() && pPool1)
232 if( !pNameOrIndex->
GetName().isEmpty() )
234 if( !bForceNew && pCompareValueFunc( pNameOrIndex, pCheckItem ) )
235 return pNameOrIndex->
GetName();
237 if( pNameOrIndex->
GetName().startsWith( aUser ) )
240 if( nThisIndex >= nUserIndex )
241 nUserIndex = nThisIndex + 1;
245 aUniqueName = aUser + OUString::number( nUserIndex );
254 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"NameOrIndex"));
255 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
256 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"isIndex"), BAD_CAST(OString::boolean(
IsIndex()).getStr()));
257 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"name"), BAD_CAST(
GetName().toUtf8().getStr()));
258 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(
nPalIndex).getStr()));
259 (void)xmlTextWriterEndElement(pWriter);
284 aColor(rItem.aColor),
285 maThemeColor(rItem.maThemeColor)
296 return ( NameOrIndex::operator==(rItem) &&
325 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XColorItem"));
328 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(
"SDRATTR_SHADOWCOLOR"));
332 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(
"XATTR_FILLCOLOR"));
334 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"aColor"),
339 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"theme-color"));
341 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"theme-index"),
346 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"transformation"));
347 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"),
348 BAD_CAST(OString::number(sal_Int16(rTransform.meType)).getStr()));
349 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
350 BAD_CAST(OString::number(rTransform.mnValue).getStr()));
351 (void)xmlTextWriterEndElement(pWriter);
354 (void)xmlTextWriterEndElement(pWriter);
356 (void)xmlTextWriterEndElement(pWriter);
388 case css::drawing::LineStyle_NONE:
389 pId = RID_SVXSTR_INVISIBLE;
391 case css::drawing::LineStyle_SOLID:
392 pId = RID_SVXSTR_SOLID;
404 css::drawing::LineStyle eLS =
GetValue();
411 css::drawing::LineStyle eLS;
418 eLS =
static_cast<css::drawing::LineStyle
>(nLS);
430XDash::XDash(css::drawing::DashStyle eTheDash, sal_uInt16 nTheDots,
double nTheDotLen,
431 sal_uInt16 nTheDashes,
double nTheDashLen,
double nTheDistance) :
436 nDashLen(nTheDashLen),
437 nDistance(nTheDistance)
458 double fFullDotDashLen(0.0);
460 rDotDashArray.resize( nNumDotDashArray, 0.0 );
467 if (fLineWidth == 0.0)
470 if(
GetDashStyle() == css::drawing::DashStyle_RECTRELATIVE ||
GetDashStyle() == css::drawing::DashStyle_ROUNDRELATIVE)
472 double fFactor = fLineWidth / 100.0;
479 fSingleDashLen *= fFactor;
484 fSingleDashLen = fLineWidth;
493 fSingleDotLen *= fFactor;
498 fSingleDotLen = fLineWidth;
507 fDashDotDistance *= fFactor;
512 fDashDotDistance = fLineWidth;
532 if(fSingleDashLen < fLineWidth)
534 fSingleDashLen = fLineWidth;
552 if(fSingleDotLen < fLineWidth)
554 fSingleDotLen = fLineWidth;
572 if(fDashDotDistance < fLineWidth)
574 fDashDotDistance = fLineWidth;
582 rDotDashArray[nIns++] = fSingleDotLen;
583 fFullDotDashLen += fSingleDotLen;
584 rDotDashArray[nIns++] = fDashDotDistance;
585 fFullDotDashLen += fDashDotDistance;
590 rDotDashArray[nIns++] = fSingleDashLen;
591 fFullDotDashLen += fSingleDashLen;
592 rDotDashArray[nIns++] = fDashDotDistance;
593 fFullDotDashLen += fDashDotDistance;
596 return fFullDotDashLen;
626 return ( NameOrIndex::operator==(rItem) &&
656 nMemberId &= ~CONVERT_TWIPS;
662 css::drawing::LineDash aLineDash;
665 aLineDash.Style =
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(rXD.
GetDashStyle()));
666 aLineDash.Dots = rXD.
GetDots();
672 uno::Sequence< beans::PropertyValue > aPropSeq{
690 css::drawing::LineDash aLineDash;
692 aLineDash.Style =
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(rXD.
GetDashStyle()));
693 aLineDash.Dots = rXD.
GetDots();
706 rVal <<= static_cast<css::drawing::DashStyle>(
static_cast<sal_Int16
>(rXD.
GetDashStyle()));
745 default: OSL_FAIL(
"Wrong MemberId!");
return false;
753 nMemberId &= ~CONVERT_TWIPS;
759 uno::Sequence< beans::PropertyValue > aPropSeq;
761 if ( rVal >>= aPropSeq )
763 css::drawing::LineDash aLineDash;
765 bool bLineDash(
false );
766 for (
const auto& rProp : std::as_const(aPropSeq) )
768 if ( rProp.Name ==
"Name" )
769 rProp.Value >>=
aName;
770 else if ( rProp.Name ==
"LineDash" )
772 if ( rProp.Value >>= aLineDash )
782 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(aLineDash.Style)));
783 aXDash.
SetDots(aLineDash.Dots);
804 if (!(rVal >>=
aName))
812 css::drawing::LineDash aLineDash;
813 if(!(rVal >>= aLineDash))
818 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(aLineDash.Style)));
819 aXDash.
SetDots(aLineDash.Dots);
834 sal_Int16 nVal = sal_Int16();
839 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(nVal)));
852 sal_Int16 nVal = sal_Int16();
912 return std::make_unique<XLineDashItem>( aUniqueName,
aDash );
939 eCoreUnit, ePresUnit, &rIntl) +
996 nMemberId &= ~CONVERT_TWIPS;
1002 rVal <<= xThemeColor;
1016 nMemberId &= ~CONVERT_TWIPS;
1021 css::uno::Reference<css::util::XThemeColor> xThemeColor;
1022 if (!(rVal >>= xThemeColor))
1090 nMemberId &= ~CONVERT_TWIPS;
1097 css::drawing::PolyPolygonBezierCoords aBezier;
1107 nMemberId &= ~CONVERT_TWIPS;
1116 if( rVal.hasValue() )
1118 auto pCoords = o3tl::tryAccess<css::drawing::PolyPolygonBezierCoords>(
1123 if( pCoords->Coordinates.getLength() > 0 )
1142 std::unique_ptr<XLineStartItem> pTempItem;
1145 OUString aUniqueName(
GetName() );
1150 if( aUniqueName.isEmpty() )
1154 return std::make_unique<XLineStartItem>(
"",
maPolyPolygon );
1165 pTempItem.reset(
new XLineStartItem( aUniqueName, std::move(aNew) ));
1166 pLineStartItem = pTempItem.get();
1170 bool bForceNew =
false;
1176 if (!aUniqueName.isEmpty())
1182 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1189 aUniqueName.clear();
1202 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1209 aUniqueName.clear();
1219 if( !aUniqueName.isEmpty() && pPool2)
1225 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1232 aUniqueName.clear();
1245 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1252 aUniqueName.clear();
1263 if( aUniqueName.isEmpty() )
1265 bool bFoundExisting =
false;
1267 sal_Int32 nUserIndex = 1;
1268 const OUString aUser(
SvxResId(RID_SVXSTR_LINEEND));
1274 if (pItem && !pItem->GetName().isEmpty())
1276 if (!bForceNew && pItem->GetLineStartValue() == pLineStartItem->
GetLineStartValue())
1278 aUniqueName = pItem->
GetName();
1279 bFoundExisting =
true;
1283 if (pItem->GetName().startsWith(aUser))
1285 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1286 if (nThisIndex >= nUserIndex)
1287 nUserIndex = nThisIndex + 1;
1296 if (pItem && !pItem->GetName().isEmpty())
1298 if (!bForceNew && pItem->GetLineEndValue() == pLineStartItem->
GetLineStartValue())
1300 aUniqueName = pItem->
GetName();
1301 bFoundExisting =
true;
1305 if (pItem->GetName().startsWith(aUser))
1307 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1308 if (nThisIndex >= nUserIndex)
1309 nUserIndex = nThisIndex + 1;
1314 if( !bFoundExisting )
1316 aUniqueName = aUser +
" " + OUString::number( nUserIndex );
1321 if( aUniqueName !=
GetName() || pTempItem )
1325 pTempItem->SetName( aUniqueName );
1330 return std::make_unique<XLineStartItem>( aUniqueName,
maPolyPolygon );
1381 std::unique_ptr<XLineEndItem> pTempItem;
1384 OUString aUniqueName(
GetName() );
1389 if( aUniqueName.isEmpty() )
1404 pTempItem.reset(
new XLineEndItem( aUniqueName, std::move(aNew) ));
1405 pLineEndItem = pTempItem.get();
1409 bool bForceNew =
false;
1415 if (!aUniqueName.isEmpty())
1421 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1428 aUniqueName.clear();
1441 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1448 aUniqueName.clear();
1458 if( !aUniqueName.isEmpty() && pPool2)
1464 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1471 aUniqueName.clear();
1484 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1491 aUniqueName.clear();
1502 if( aUniqueName.isEmpty() )
1504 bool bFoundExisting =
false;
1506 sal_Int32 nUserIndex = 1;
1507 const OUString aUser(
SvxResId(RID_SVXSTR_LINEEND));
1513 if (pItem && !pItem->GetName().isEmpty())
1515 if (!bForceNew && pItem->GetLineStartValue() == pLineEndItem->
GetLineEndValue())
1517 aUniqueName = pItem->
GetName();
1518 bFoundExisting =
true;
1522 if (pItem->GetName().startsWith(aUser))
1524 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1525 if (nThisIndex >= nUserIndex)
1526 nUserIndex = nThisIndex + 1;
1535 if (pItem && !pItem->GetName().isEmpty())
1537 if (!bForceNew && pItem->GetLineEndValue() == pLineEndItem->
GetLineEndValue())
1539 aUniqueName = pItem->
GetName();
1540 bFoundExisting =
true;
1544 if (pItem->GetName().startsWith(aUser))
1546 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1547 if (nThisIndex >= nUserIndex)
1548 nUserIndex = nThisIndex + 1;
1553 if( !bFoundExisting )
1555 aUniqueName = aUser +
" " + OUString::number( nUserIndex );
1560 if( aUniqueName !=
GetName() || pTempItem )
1564 pTempItem->SetName( aUniqueName );
1569 return std::make_unique<XLineEndItem>( aUniqueName,
maPolyPolygon );
1591 nMemberId &= ~CONVERT_TWIPS;
1598 css::drawing::PolyPolygonBezierCoords aBezier;
1607 nMemberId &= ~CONVERT_TWIPS;
1616 if( rVal.hasValue() )
1618 auto pCoords = o3tl::tryAccess<css::drawing::PolyPolygonBezierCoords>(
1623 if( pCoords->Coordinates.getLength() > 0 )
1654 eCoreUnit, ePresUnit, &rIntl) +
1692 eCoreUnit, ePresUnit, &rIntl) +
1729 rText =
SvxResId(
GetValue() ? RID_SVXSTR_CENTERED : RID_SVXSTR_NOTCENTERED);
1768 rText =
SvxResId(
GetValue() ? RID_SVXSTR_CENTERED : RID_SVXSTR_NOTCENTERED);
1818 case drawing::FillStyle_NONE:
1819 pId = RID_SVXSTR_INVISIBLE;
1821 case drawing::FillStyle_SOLID:
1822 pId = RID_SVXSTR_SOLID;
1824 case drawing::FillStyle_GRADIENT:
1825 pId = RID_SVXSTR_GRADIENT;
1827 case drawing::FillStyle_HATCH:
1828 pId = RID_SVXSTR_HATCH;
1830 case drawing::FillStyle_BITMAP:
1831 pId = RID_SVXSTR_BITMAP;
1848 css::drawing::FillStyle eFS =
GetValue();
1857 css::drawing::FillStyle eFS;
1864 eFS =
static_cast<css::drawing::FillStyle
>(nFS);
1874 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XFillStyleItem"));
1875 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
1876 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"), BAD_CAST(OString::number(
static_cast<sal_Int16
>(
GetValue())).getStr()));
1878 OUString aPresentation;
1880 GetPresentation(SfxItemPresentation::Nameless, MapUnit::Map100thMM, MapUnit::Map100thMM, aPresentation, aIntlWrapper);
1881 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"presentation"), BAD_CAST(aPresentation.toUtf8().getStr()));
1883 (void)xmlTextWriterEndElement(pWriter);
1891 aTree.put(
"commandName",
".uno:FillStyle");
1897 case drawing::FillStyle_NONE:
1900 case drawing::FillStyle_SOLID:
1903 case drawing::FillStyle_GRADIENT:
1904 sValue =
"GRADIENT";
1906 case drawing::FillStyle_HATCH:
1909 case drawing::FillStyle_BITMAP:
1915 aTree.put(
"state", sValue);
1952 nMemberId &= ~CONVERT_TWIPS;
1962 sal_Int16
nValue = 10000;
1963 for (
auto const& rTransform :
GetThemeColor().getTransformations())
1966 nValue = rTransform.mnValue;
1974 for (
auto const& rTransform :
GetThemeColor().getTransformations())
1977 nValue = rTransform.mnValue;
1985 rVal <<= xThemeColor;
2000 nMemberId &= ~CONVERT_TWIPS;
2013 sal_Int16 nLumMod = 10000;
2014 if (!(rVal >>= nLumMod))
2022 sal_Int16 nLumOff = 0;
2023 if (!(rVal >>= nLumOff))
2031 css::uno::Reference<css::util::XThemeColor> xThemeColor;
2032 if (!(rVal >>= xThemeColor))
2052 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XFillColorItem"));
2053 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
2057 (void)xmlTextWriterEndElement(pWriter);
2065 aTree.put(
"commandName",
".uno:FillPageColor");
2098 case css::awt::GradientStyle::GradientStyle_LINEAR:
2101 case css::awt::GradientStyle::GradientStyle_AXIAL:
2104 case css::awt::GradientStyle::GradientStyle_RADIAL:
2107 case css::awt::GradientStyle::GradientStyle_ELLIPTICAL:
2108 return "ELLIPTICAL";
2110 case css::awt::GradientStyle::GradientStyle_SQUARE:
2113 case css::awt::GradientStyle::GradientStyle_RECT:
2116 case css::awt::GradientStyle::GradientStyle_MAKE_FIXED_SIZE:
2117 return "MAKE_FIXED_SIZE";
2125 css::awt::GradientStyle lcl_getStyleFromString(std::u16string_view rStyle)
2127 if (rStyle == u
"LINEAR")
2128 return css::awt::GradientStyle_LINEAR;
2129 else if (rStyle == u
"AXIAL")
2130 return css::awt::GradientStyle_AXIAL;
2131 else if (rStyle == u
"RADIAL")
2132 return css::awt::GradientStyle_RADIAL;
2133 else if (rStyle == u
"ELLIPTICAL")
2134 return css::awt::GradientStyle_ELLIPTICAL;
2135 else if (rStyle == u
"SQUARE")
2136 return css::awt::GradientStyle_SQUARE;
2137 else if (rStyle == u
"RECT")
2138 return css::awt::GradientStyle_RECT;
2140 return css::awt::GradientStyle_LINEAR;
2143 StringMap lcl_jsonToStringMap(std::u16string_view rJSON)
2146 if (rJSON.size() && rJSON[0] !=
'\0')
2148 std::stringstream aStream(
OUStringToOString(rJSON, RTL_TEXTENCODING_ASCII_US).getStr());
2149 boost::property_tree::ptree aTree;
2150 boost::property_tree::read_json(aStream, aTree);
2152 for (
const auto& rPair : aTree)
2154 aArgs[OUString::fromUtf8(rPair.first.c_str())] = OUString::fromUtf8(rPair.second.get_value<std::string>(
".").c_str());
2164 Color(ColorTransparency, rMap[
"startcolor"].
toInt32(16)).getBColor(),
2165 Color(ColorTransparency, rMap[
"endcolor"].
toInt32(16)).getBColor()));
2167 aGradient.SetGradientStyle(lcl_getStyleFromString(rMap[
"style"]));
2177 return lcl_buildGradientFromStringMap(
aMap);
2182 void fillGradient2FromXGradient(css::awt::Gradient2& rGradient2,
const XGradient& rXGradient)
2186 rGradient2.Angle =
static_cast<short>(rXGradient.
GetAngle());
2187 rGradient2.Border = rXGradient.
GetBorder();
2188 rGradient2.XOffset = rXGradient.
GetXOffset();
2189 rGradient2.YOffset = rXGradient.
GetYOffset();
2192 rGradient2.StepCount = rXGradient.
GetSteps();
2196 rGradient2.StartColor =
static_cast<sal_Int32
>(
Color(rColorStops.front().getStopColor()));
2197 rGradient2.EndColor =
static_cast<sal_Int32
>(
Color(rColorStops.back().getStopColor()));
2206 css::awt::Gradient2 aGradient2;
2209 fillGradient2FromXGradient(aGradient2, *
this);
2215 eStyle( css::awt::GradientStyle_LINEAR ),
2221 nIntensStart( 100 ),
2230 css::awt::GradientStyle eTheStyle,
Degree10 nTheAngle, sal_uInt16 nXOfs,
2231 sal_uInt16 nYOfs, sal_uInt16 nTheBorder,
2232 sal_uInt16 nStartIntens, sal_uInt16 nEndIntens,
2233 sal_uInt16 nSteps) :
2235 aColorStops(rColorStops),
2240 nIntensStart(nStartIntens),
2241 nIntensEnd(nEndIntens),
2270 boost::property_tree::ptree aTree;
2273 aTree.put(
"startcolor",
Color(
GetColorStops().front().getStopColor()).AsRGBHexString());
2274 aTree.put(
"endcolor",
Color(
GetColorStops().back().getStopColor()).AsRGBHexString());
2275 aTree.put(
"angle", std::to_string(
nAngle.
get()));
2276 aTree.put(
"border", std::to_string(
nBorder));
2277 aTree.put(
"x", std::to_string(
nOfsX));
2278 aTree.put(
"y", std::to_string(
nOfsY));
2279 aTree.put(
"intensstart", std::to_string(
nIntensStart));
2280 aTree.put(
"intensend", std::to_string(
nIntensEnd));
2281 aTree.put(
"stepcount", std::to_string(
nStepCount));
2291 aGradient(rTheGradient)
2298 , aGradient(rTheGradient)
2304 aGradient(rItem.aGradient)
2310 aGradient(rTheGradient)
2321 return ( NameOrIndex::operator==(rItem) &&
2348 void fillXGradientFromAny(
XGradient& rXGradient,
const css::uno::Any& rVal)
2350 css::awt::Gradient aGradient;
2351 if (!(rVal >>= aGradient))
2362 rXGradient.
SetBorder( aGradient.Border );
2367 rXGradient.
SetSteps( aGradient.StepCount );
2372 if (!aColorStops.empty())
2379 nMemberId &= ~CONVERT_TWIPS;
2380 switch ( nMemberId )
2384 css::awt::Gradient2 aGradient2;
2390 uno::Sequence< beans::PropertyValue > aPropSeq{
2400 css::awt::Gradient2 aGradient2;
2406 rVal <<= aGradient2;
2418 css::awt::ColorStopSequence aColorStopSequence;
2424 rVal <<= aColorStopSequence;
2439 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2447 nMemberId &= ~CONVERT_TWIPS;
2449 switch ( nMemberId )
2453 uno::Sequence< beans::PropertyValue > aPropSeq;
2454 css::uno::Any aGradientAny;
2456 if ( rVal >>= aPropSeq )
2460 for (
const auto& rProp : std::as_const(aPropSeq) )
2462 if ( rProp.Name ==
"Name" )
2463 rProp.Value >>=
aName;
2464 else if ( rProp.Name ==
"FillGradient" )
2465 aGradientAny = rProp.Value;
2470 if ( aGradientAny.hasValue() )
2473 fillXGradientFromAny(aXGradient, aGradientAny);
2486 if (!(rVal >>=
aName ))
2495 fillXGradientFromAny(aXGradient, rVal);
2505 if (!aColorStops.empty())
2518 if(!(rVal >>= nVal ))
2547 sal_Int16 nVal = sal_Int16();
2548 if(!(rVal >>= nVal ))
2553 switch ( nMemberId )
2556 aXGradient.
SetGradientStyle(
static_cast<css::awt::GradientStyle
>(nVal) );
break;
2566 aXGradient.
SetSteps( nVal );
break;
2596 if( aUniqueName !=
GetName() )
2608 aTree.put(
"commandName",
".uno:FillGradient");
2626 bEnabled ( bEnable )
2633 bEnabled ( rItem.bEnabled )
2640 bEnabled ( bEnable )
2647 return ( NameOrIndex::operator==(rItem) ) &&
2692 RID_SVXSTR_TRASNGR0,
2696 if( aUniqueName !=
GetName() )
2698 return std::make_unique<XFillFloatTransparenceItem>( aUniqueName,
GetGradientValue(),
true );
2707 return std::make_unique<XFillFloatTransparenceItem>(OUString(),
GetGradientValue(),
false);
2717 aTree.put(
"commandName",
".uno:FillFloatTransparence");
2721 boost::property_tree::ptree& rState = aTree.get_child(
"state");
2727 rState.put(
"style",
"NONE");
2729 rState.put(
"style",
"SOLID");
2739 nDistance(nTheDistance),
2756 const XHatch& rTheHatch) :
2764 aHatch(rItem.aHatch)
2781 return ( NameOrIndex::operator==(rItem) &&
2809 nMemberId &= ~CONVERT_TWIPS;
2811 switch ( nMemberId )
2815 css::drawing::Hatch aUnoHatch;
2822 uno::Sequence< beans::PropertyValue > aPropSeq{
2832 css::drawing::Hatch aUnoHatch;
2857 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2865 nMemberId &= ~CONVERT_TWIPS;
2867 switch ( nMemberId )
2871 uno::Sequence< beans::PropertyValue > aPropSeq;
2872 if ( rVal >>= aPropSeq )
2874 css::drawing::Hatch aUnoHatch;
2876 bool bHatch(
false );
2877 for (
const auto& rProp : std::as_const(aPropSeq) )
2879 if ( rProp.Name ==
"Name" )
2880 rProp.Value >>=
aName;
2881 else if ( rProp.Name ==
"FillHatch" )
2883 if ( rProp.Value >>= aUnoHatch )
2905 css::drawing::Hatch aUnoHatch;
2906 if(!(rVal >>= aUnoHatch))
2919 if (!(rVal >>=
aName ))
2927 sal_Int16 nVal = sal_Int16();
2928 if (!(rVal >>= nVal ))
2939 if (!(rVal >>= nVal ))
2951 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2972 if( aUniqueName !=
GetName() )
2973 return std::make_unique<XFillHatchItem>( aUniqueName,
aHatch );
3001 rVal <<= static_cast<sal_Int32>(
GetValue());
3034 rVal <<= static_cast<sal_Int32>(
GetValue());
3115 rVal <<= static_cast<sal_Int32>(
GetValue());
3132 const Color& rTheColor) :
constexpr auto convertTwipToMm100(N n)
static tools::Long Scale(tools::Long nVal, tools::Long nMult, tools::Long nDiv)
sal_Int32 GetValue() const
void SetValue(sal_Int32 nTheValue)
Color GetRGBColor() const
basegfx::BColor getBColor() const
OUString AsRGBHexString() const
virtual bool operator==(const SfxPoolItem &rItem) const override
OUString const & GetName() const
void SetName(const OUString &rName)
void dumpAsXml(xmlTextWriterPtr pWriter) const override
virtual NameOrIndex * Clone(SfxItemPool *pPool=nullptr) const override
static OUString CheckNamedItem(const NameOrIndex *pCheckItem, const sal_uInt16 nWhich, const SfxItemPool *pPool1, SvxCompareValueFunc pCompareValueFunc, TranslateId pPrefixResId, const XPropertyListRef &pDefaults)
this static checks if the given NameOrIndex item has a unique name for its value.
const SfxItemPool & GetItemPool() const
SfxStyleSheetBasePool * GetStyleSheetPool() const
const XPropertyListRef & GetPropertyList(XPropertyListType t) const
void SetValue(bool const bTheValue)
void SetValue(EnumT nTheValue)
Item2Range GetItemSurrogates(sal_uInt16 nWhich) const
void SetWhich(sal_uInt16 nId)
virtual boost::property_tree::ptree dumpAsJSON() const
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
static SfxPoolItem * CreateDefault()
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override
virtual XColorItem * Clone(SfxItemPool *pPool=nullptr) const override
void SetColorValue(const Color &rNew)
model::ThemeColor & GetThemeColor()
model::ThemeColor maThemeColor
const Color & GetColorValue() const
virtual bool operator==(const SfxPoolItem &rItem) const override
void SetDashLen(double nNewDashLen)
css::drawing::DashStyle eDash
void SetDots(sal_uInt16 nNewDots)
css::drawing::DashStyle GetDashStyle() const
bool operator==(const XDash &rDash) const
void SetDotLen(double nNewDotLen)
double GetDashLen() const
void SetDistance(double nNewDistance)
void SetDashes(sal_uInt16 nNewDashes)
double GetDistance() const
double CreateDotDashArray(::std::vector< double > &rDotDashArray, double fLineWidth) const
void SetDashStyle(css::drawing::DashStyle eNewStyle)
sal_uInt16 GetDots() const
XDash(css::drawing::DashStyle eDash=css::drawing::DashStyle_RECT, sal_uInt16 nDots=1, double nDotLen=20, sal_uInt16 nDashes=1, double nDashLen=20, double nDistance=20)
sal_uInt16 GetDashes() const
virtual XFillAttrSetItem * Clone(SfxItemPool *pToPool=nullptr) const override
XFillAttrSetItem(SfxItemSet &&pItemSet)
fill attribute set item
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
static SfxPoolItem * CreateDefault()
virtual XFillColorItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual boost::property_tree::ptree dumpAsJSON() const override
void dumpAsXml(xmlTextWriterPtr pWriter) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool operator==(const SfxPoolItem &rItem) const override
static bool CompareValueFunc(const NameOrIndex *p1, const NameOrIndex *p2)
static SfxPoolItem * CreateDefault()
virtual XFillFloatTransparenceItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual boost::property_tree::ptree dumpAsJSON() const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
XFillFloatTransparenceItem()
std::unique_ptr< XFillFloatTransparenceItem > checkForUniqueItem(SdrModel *pModel) const
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &rIntlWrapper) const override
virtual XFillGradientItem * Clone(SfxItemPool *pPool=nullptr) const override
const XGradient & GetGradientValue() const
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool operator==(const SfxPoolItem &rItem) const override
std::unique_ptr< XFillGradientItem > checkForUniqueItem(SdrModel *pModel) const
void SetGradientValue(const XGradient &rNew)
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
static bool CompareValueFunc(const NameOrIndex *p1, const NameOrIndex *p2)
static SfxPoolItem * CreateDefault()
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual boost::property_tree::ptree dumpAsJSON() const override
const XHatch & GetHatchValue() const
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool HasMetrics() const override
virtual void ScaleMetrics(tools::Long nMul, tools::Long nDiv) override
static SfxPoolItem * CreateDefault()
virtual bool operator==(const SfxPoolItem &rItem) const override
std::unique_ptr< XFillHatchItem > checkForUniqueItem(SdrModel *pModel) const
static bool CompareValueFunc(const NameOrIndex *p1, const NameOrIndex *p2)
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual XFillHatchItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
void dumpAsXml(xmlTextWriterPtr pWriter) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual XFillStyleItem * Clone(SfxItemPool *pPool=nullptr) const override
XFillStyleItem(css::drawing::FillStyle=css::drawing::FillStyle_SOLID)
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
static SfxPoolItem * CreateDefault()
virtual boost::property_tree::ptree dumpAsJSON() const override
virtual sal_uInt16 GetValueCount() const override
XFormTextAdjustItem(XFormTextAdjust=XFormTextAdjust::Center)
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
static SfxPoolItem * CreateDefault()
virtual sal_uInt16 GetValueCount() const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual XFormTextAdjustItem * Clone(SfxItemPool *pPool=nullptr) const override
static SfxPoolItem * CreateDefault()
virtual XFormTextDistanceItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextDistanceItem(tools::Long nDist=0)
static SfxPoolItem * CreateDefault()
virtual XFormTextHideFormItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextHideFormItem(bool bHide=false)
static SfxPoolItem * CreateDefault()
virtual XFormTextMirrorItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextMirrorItem(bool bMirror=false)
static SfxPoolItem * CreateDefault()
virtual XFormTextOutlineItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextOutlineItem(bool bOutline=false)
virtual XFormTextShadowColorItem * Clone(SfxItemPool *pPool=nullptr) const override
static SfxPoolItem * CreateDefault()
XFormTextShadowColorItem()
virtual sal_uInt16 GetValueCount() const override
virtual XFormTextShadowItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
static SfxPoolItem * CreateDefault()
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
XFormTextShadowItem(XFormTextShadow=XFormTextShadow::NONE)
static SfxPoolItem * CreateDefault()
XFormTextShadowXValItem(tools::Long nVal=0)
virtual XFormTextShadowXValItem * Clone(SfxItemPool *pPool=nullptr) const override
static SfxPoolItem * CreateDefault()
virtual XFormTextShadowYValItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextShadowYValItem(tools::Long nVal=0)
virtual XFormTextStartItem * Clone(SfxItemPool *pPool=nullptr) const override
XFormTextStartItem(tools::Long nStart=0)
static SfxPoolItem * CreateDefault()
virtual XFormTextStyleItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual sal_uInt16 GetValueCount() const override
static SfxPoolItem * CreateDefault()
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
XFormTextStyleItem(XFormTextStyle=XFormTextStyle::NONE)
sal_uInt16 GetYOffset() const
void SetEndIntens(sal_uInt16 nNewIntens)
static XGradient fromJSON(std::u16string_view rJSON)
sal_uInt16 GetStartIntens() const
css::awt::GradientStyle GetGradientStyle() const
basegfx::ColorStops aColorStops
void SetBorder(sal_uInt16 nNewBorder)
css::awt::Gradient2 toGradientUNO() const
void SetColorStops(const basegfx::ColorStops &rSteps)
css::awt::GradientStyle eStyle
sal_uInt16 GetBorder() const
sal_uInt16 GetEndIntens() const
Degree10 GetAngle() const
sal_uInt16 GetSteps() const
void SetGradientStyle(css::awt::GradientStyle eNewStyle)
void SetXOffset(sal_uInt16 nNewOffset)
static std::string GradientStyleToString(css::awt::GradientStyle eStyle)
void SetAngle(Degree10 nNewAngle)
void SetStartIntens(sal_uInt16 nNewIntens)
sal_uInt16 GetXOffset() const
bool operator==(const XGradient &rGradient) const
void SetYOffset(sal_uInt16 nNewOffset)
void SetSteps(sal_uInt16 nSteps)
const basegfx::ColorStops & GetColorStops() const
boost::property_tree::ptree dumpAsJSON() const
css::drawing::HatchStyle eStyle
const Color & GetColor() const
tools::Long GetDistance() const
void SetDistance(tools::Long nNewDistance)
bool operator==(const XHatch &rHatch) const
void SetHatchStyle(css::drawing::HatchStyle eNewStyle)
css::drawing::HatchStyle GetHatchStyle() const
void SetColor(const Color &rColor)
Degree10 GetAngle() const
void SetAngle(Degree10 nNewAngle)
XLineAttrSetItem(SfxItemSet &&pItemSet)
a line attribute set item
virtual XLineAttrSetItem * Clone(SfxItemPool *pToPool=nullptr) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual XLineColorItem * Clone(SfxItemPool *pPool=nullptr) const override
static SfxPoolItem * CreateDefault()
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
static bool CompareValueFunc(const NameOrIndex *p1, const NameOrIndex *p2)
const XDash & GetDashValue() const
static SfxPoolItem * CreateDefault()
virtual void ScaleMetrics(tools::Long nMul, tools::Long nDiv) override
virtual XLineDashItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool HasMetrics() const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
std::unique_ptr< XLineDashItem > checkForUniqueItem(SdrModel *pModel) const
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
void SetDashValue(const XDash &rNew)
virtual bool operator==(const SfxPoolItem &rItem) const override
virtual XLineEndCenterItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
XLineEndCenterItem(bool bEndCenter=false)
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
const basegfx::B2DPolyPolygon & GetLineEndValue() const
virtual XLineEndItem * Clone(SfxItemPool *pPool=nullptr) const override
static SfxPoolItem * CreateDefault()
basegfx::B2DPolyPolygon maPolyPolygon
virtual bool operator==(const SfxPoolItem &rItem) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
std::unique_ptr< XLineEndItem > checkForUniqueItem(SdrModel *pModel) const
this function searches in both the models pool and the styles pool for XLineStartItem and XLineEndIte...
XLineEndItem(sal_Int32 nIndex=-1)
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual XLineEndWidthItem * Clone(SfxItemPool *pPool=nullptr) const override
XLineEndWidthItem(tools::Long nWidth=LINE_END_WIDTH_DEFAULT)
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
XLineStartCenterItem(bool bStartCenter=false)
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
virtual XLineStartCenterItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
std::unique_ptr< XLineStartItem > checkForUniqueItem(SdrModel *pModel) const
this function searches in both the models pool and the styles pool for XLineStartItem and XLineEndIte...
const basegfx::B2DPolyPolygon & GetLineStartValue() const
basegfx::B2DPolyPolygon maPolyPolygon
XLineStartItem(sal_Int32 nIndex=-1)
virtual XLineStartItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
static SfxPoolItem * CreateDefault()
virtual bool operator==(const SfxPoolItem &rItem) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual XLineStartWidthItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
XLineStartWidthItem(tools::Long nWidth=LINE_START_WIDTH_DEFAULT)
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
static SfxPoolItem * CreateDefault()
virtual XLineStyleItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual sal_uInt16 GetValueCount() const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
XLineStyleItem(css::drawing::LineStyle=css::drawing::LineStyle_SOLID)
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
XLineWidthItem(tools::Long nWidth=0)
virtual XLineWidthItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool PutValue(const css::uno::Any &rVal, sal_uInt8 nMemberId) override
static SfxPoolItem * CreateDefault()
const OUString & GetName() const
virtual SVX_DLLPRIVATE XSecondaryFillColorItem * Clone(SfxItemPool *pPool=nullptr) const override
XSecondaryFillColorItem(const OUString &rName, const Color &rTheColor)
virtual SVX_DLLPRIVATE bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
void setClosed(bool bNew)
std::vector< Transformation > const & getTransformations() const
void addTransformation(Transformation const &rTransform)
void removeTransformations(TransformationType eType)
ThemeColorType getType() const
void setType(ThemeColorType eType)
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
OUString SvxResId(TranslateId aId)
OUString EditResId(TranslateId aId)
struct _xmlTextWriter * xmlTextWriterPtr
OUString GetMetricText(tools::Long nVal, MapUnit eSrcUnit, MapUnit eDestUnit, const IntlWrapper *pIntl)
TranslateId GetMetricId(MapUnit eUnit)
#define MID_COLOR_LUM_MOD
#define MID_COLOR_THEME_REFERENCE
#define MID_COLOR_THEME_INDEX
#define MID_COLOR_LUM_OFF
tools::Long const nBorder
void fillColorStopSequenceFromColorStops(css::awt::ColorStopSequence &rColorStopSequence, const ColorStops &rColorStops)
void fillColorStopsFromAny(ColorStops &rColorStops, const css::uno::Any &rVal)
void sortAndCorrectColorStops(ColorStops &rColorStops)
void replaceEndColor(ColorStops &rColorStops, const BColor &rEnd)
void B2DPolyPolygonToUnoPolyPolygonBezierCoords(const B2DPolyPolygon &rPolyPolygon, css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsRetval)
ColorStops createColorStopsFromStartEndColor(const BColor &rStart, const BColor &rEnd)
B2DPolyPolygon UnoPolyPolygonBezierCoordsToB2DPolyPolygon(const css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsSource)
void replaceStartColor(ColorStops &rColorStops, const BColor &rStart)
std::vector< ColorStop > ColorStops
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
void setFromXThemeColor(model::ThemeColor &rThemeColor, uno::Reference< util::XThemeColor > const &rxColorTheme)
uno::Reference< util::XThemeColor > createXThemeColor(model::ThemeColor const &rThemeColor)
constexpr ThemeColorType convertToThemeColorType(sal_Int32 nIndex)
detail::Optional< bool >::type tryAccess< bool >(css::uno::Any const &any)
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
constexpr auto toTwips(N number, Length from)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
sal_Int32 toInt32(std::u16string_view rStr)
HashMap_OWString_Interface aMap
bool getType(BSTR name, Type &type)
UNDERLYING_TYPE get() const
constexpr TypedWhichId< XColorItem > SDRATTR_SHADOWCOLOR(SDRATTR_SHADOW_FIRST+1)
Degree100 GetAngle(const Point &rPnt)
The Y axis points down! The function negates the Y axis, when calculating the angle,...
std::map< OUString, OUString > StringMap
#define MID_GRADIENT_ENDINTENSITY
#define MID_LINEDASH_DOTLEN
#define MID_GRADIENT_ENDCOLOR
#define MID_LINEDASH_DOTS
#define MID_GRADIENT_ANGLE
#define MID_GRADIENT_STEPCOUNT
#define MID_GRADIENT_XOFFSET
#define MID_GRADIENT_YOFFSET
#define MID_GRADIENT_STYLE
#define MID_LINEDASH_DASHES
#define MID_HATCH_DISTANCE
#define MID_GRADIENT_STARTINTENSITY
#define MID_LINEDASH_DASHLEN
#define MID_LINEDASH_DISTANCE
#define MID_LINEDASH_STYLE
#define MID_GRADIENT_COLORSTOPSEQUENCE
#define MID_GRADIENT_BORDER
#define MID_GRADIENT_STARTCOLOR
OUString SvxUnogetApiNameForItem(const sal_uInt16 nWhich, const OUString &rInternalName)
if the given name is a predefined name for the current language it is replaced by the corresponding a...
OUString SvxUnogetInternalNameForItem(const sal_uInt16 nWhich, const OUString &rApiName)
if the given name is a predefined api name it is replaced by the predefined name for the current lang...
const double SMALLEST_DASH_WIDTH(26.95)
std::map< OUString, OUString > StringMap
constexpr TypedWhichId< XFillColorItem > XATTR_FILLCOLOR(XATTR_FILL_FIRST+1)
constexpr TypedWhichId< XFillAttrSetItem > XATTRSET_FILL(XATTR_FILL_LAST+1)
constexpr TypedWhichId< XSecondaryFillColorItem > XATTR_SECONDARYFILLCOLOR(XATTR_FILL_FIRST+12)
constexpr TypedWhichId< XFormTextMirrorItem > XATTR_FORMTXTMIRROR(XATTR_TEXT_FIRST+4)
constexpr TypedWhichId< XFormTextStyleItem > XATTR_FORMTXTSTYLE(XATTR_TEXT_FIRST)
constexpr TypedWhichId< XFormTextStartItem > XATTR_FORMTXTSTART(XATTR_TEXT_FIRST+3)
constexpr TypedWhichId< XLineColorItem > XATTR_LINECOLOR(XATTR_LINE_FIRST+3)
constexpr TypedWhichId< XLineStartWidthItem > XATTR_LINESTARTWIDTH(XATTR_LINE_FIRST+6)
constexpr TypedWhichId< XFormTextShadowYValItem > XATTR_FORMTXTSHDWYVAL(XATTR_TEXT_FIRST+9)
constexpr TypedWhichId< XFormTextHideFormItem > XATTR_FORMTXTHIDEFORM(XATTR_TEXT_FIRST+10)
constexpr TypedWhichId< XLineDashItem > XATTR_LINEDASH(XATTR_LINE_FIRST+1)
constexpr TypedWhichId< XFormTextDistanceItem > XATTR_FORMTXTDISTANCE(XATTR_TEXT_FIRST+2)
constexpr TypedWhichId< XLineWidthItem > XATTR_LINEWIDTH(XATTR_LINE_FIRST+2)
constexpr TypedWhichId< XLineEndItem > XATTR_LINEEND(XATTR_LINE_FIRST+5)
constexpr TypedWhichId< XFormTextShadowItem > XATTR_FORMTXTSHADOW(XATTR_TEXT_FIRST+6)
constexpr TypedWhichId< XLineStartItem > XATTR_LINESTART(XATTR_LINE_FIRST+4)
constexpr sal_uInt16 XATTR_LINE_FIRST(XATTR_START)
constexpr TypedWhichId< XFormTextOutlineItem > XATTR_FORMTXTOUTLINE(XATTR_TEXT_FIRST+5)
constexpr TypedWhichId< XFormTextShadowXValItem > XATTR_FORMTXTSHDWXVAL(XATTR_TEXT_FIRST+8)
constexpr TypedWhichId< XFormTextShadowColorItem > XATTR_FORMTXTSHDWCOLOR(XATTR_TEXT_FIRST+7)
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
constexpr TypedWhichId< XLineEndCenterItem > XATTR_LINEENDCENTER(XATTR_LINE_FIRST+9)
constexpr sal_uInt16 XATTR_LINE_LAST(XATTR_LINECAP)
constexpr TypedWhichId< XLineAttrSetItem > XATTRSET_LINE(XATTR_LINE_LAST+1)
constexpr TypedWhichId< XFillHatchItem > XATTR_FILLHATCH(XATTR_FILL_FIRST+3)
constexpr TypedWhichId< XLineStartCenterItem > XATTR_LINESTARTCENTER(XATTR_LINE_FIRST+8)
constexpr sal_uInt16 XATTR_FILL_LAST(XATTR_FILLUSESLIDEBACKGROUND)
constexpr TypedWhichId< XFillBitmapItem > XATTR_FILLBITMAP(XATTR_FILL_FIRST+4)
constexpr TypedWhichId< XFillFloatTransparenceItem > XATTR_FILLFLOATTRANSPARENCE(XATTR_FILL_FIRST+11)
constexpr TypedWhichId< XLineStyleItem > XATTR_LINESTYLE(XATTR_LINE_FIRST)
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
constexpr TypedWhichId< XFormTextAdjustItem > XATTR_FORMTXTADJUST(XATTR_TEXT_FIRST+1)
constexpr TypedWhichId< XFillGradientItem > XATTR_FILLGRADIENT(XATTR_FILL_FIRST+2)
constexpr TypedWhichId< XLineEndWidthItem > XATTR_LINEENDWIDTH(XATTR_LINE_FIRST+7)
bool(* SvxCompareValueFunc)(const NameOrIndex *p1, const NameOrIndex *p2)