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>
43#include <osl/diagnose.h>
50#include <svx/strings.hrc>
92#include <boost/property_tree/json_parser.hpp>
93#include <libxml/xmlwriter.h>
113 nPalIndex(rNameOrIndex.nPalIndex)
119 return ( SfxStringItem::operator==(rItem) &&
135 bool bForceNew =
false;
142 if (!aUniqueName.isEmpty() && pPool1)
152 if( !pCompareValueFunc( pNameOrIndex, pCheckItem ) )
165 if (aUniqueName.isEmpty())
167 sal_Int32 nUserIndex = 1;
168 const OUString aUser(
SvxResId(pPrefixResId) +
" ");
172 const int nCount = pDefaults->Count();
188 bFound = (rGraphicObjectA == rGraphicObjectB);
192 bFound =
static_cast<const XLineDashItem*
>(pCheckItem)->GetDashValue() ==
static_cast<const XDashEntry*
>(pEntry)->GetDash();
195 bFound =
static_cast<const XLineStartItem*
>(pCheckItem)->GetLineStartValue() ==
static_cast<const XLineEndEntry*
>(pEntry)->GetLineEnd();
198 bFound =
static_cast<const XLineEndItem*
>(pCheckItem)->GetLineEndValue() ==
static_cast<const XLineEndEntry*
>(pEntry)->GetLineEnd();
204 bFound =
static_cast<const XFillHatchItem*
>(pCheckItem)->GetHatchValue() ==
static_cast<const XHatchEntry*
>(pEntry)->GetHatch();
210 aUniqueName = pEntry->
GetName();
216 if(
aEntryName.getLength() >= aUser.getLength())
219 if( nThisIndex >= nUserIndex )
220 nUserIndex = nThisIndex + 1;
227 if (aUniqueName.isEmpty() && pPool1)
233 if( !pNameOrIndex->
GetName().isEmpty() )
235 if( !bForceNew && pCompareValueFunc( pNameOrIndex, pCheckItem ) )
236 return pNameOrIndex->
GetName();
238 if( pNameOrIndex->
GetName().startsWith( aUser ) )
241 if( nThisIndex >= nUserIndex )
242 nUserIndex = nThisIndex + 1;
246 aUniqueName = aUser + OUString::number( nUserIndex );
255 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"NameOrIndex"));
256 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
257 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"isIndex"), BAD_CAST(OString::boolean(
IsIndex()).getStr()));
258 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"name"), BAD_CAST(
GetName().toUtf8().getStr()));
259 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"index"), BAD_CAST(OString::number(
nPalIndex).getStr()));
260 (void)xmlTextWriterEndElement(pWriter);
285 aColor(rItem.aColor),
286 maComplexColor(rItem.maComplexColor)
297 return ( NameOrIndex::operator==(rItem) &&
311 nMemberId &= ~CONVERT_TWIPS;
317 rVal <<= xComplexColor;
336 nMemberId &= ~CONVERT_TWIPS;
341 css::uno::Reference<css::util::XComplexColor> xComplexColor;
342 if (!(rVal >>= xComplexColor))
349 OUString sComplexColorJson;
350 if (!(rVal >>= sComplexColorJson))
353 if (sComplexColorJson.isEmpty())
378 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XColorItem"));
381 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(
"SDRATTR_SHADOWCOLOR"));
385 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(
"XATTR_FILLCOLOR"));
387 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"aColor"),
392 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"complex-color"));
394 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"scheme-index"),
399 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"transformation"));
400 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"type"),
401 BAD_CAST(OString::number(sal_Int16(rTransform.meType)).getStr()));
402 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
403 BAD_CAST(OString::number(rTransform.mnValue).getStr()));
404 (void)xmlTextWriterEndElement(pWriter);
407 (void)xmlTextWriterEndElement(pWriter);
409 (void)xmlTextWriterEndElement(pWriter);
441 case css::drawing::LineStyle_NONE:
442 pId = RID_SVXSTR_INVISIBLE;
444 case css::drawing::LineStyle_SOLID:
445 pId = RID_SVXSTR_SOLID;
457 css::drawing::LineStyle eLS =
GetValue();
464 css::drawing::LineStyle eLS;
471 eLS =
static_cast<css::drawing::LineStyle
>(nLS);
483XDash::XDash(css::drawing::DashStyle eTheDash, sal_uInt16 nTheDots,
double nTheDotLen,
484 sal_uInt16 nTheDashes,
double nTheDashLen,
double nTheDistance) :
489 nDashLen(nTheDashLen),
490 nDistance(nTheDistance)
511 double fFullDotDashLen(0.0);
513 rDotDashArray.resize( nNumDotDashArray, 0.0 );
520 if (fLineWidth == 0.0)
523 if(
GetDashStyle() == css::drawing::DashStyle_RECTRELATIVE ||
GetDashStyle() == css::drawing::DashStyle_ROUNDRELATIVE)
525 double fFactor = fLineWidth / 100.0;
532 fSingleDashLen *= fFactor;
537 fSingleDashLen = fLineWidth;
546 fSingleDotLen *= fFactor;
551 fSingleDotLen = fLineWidth;
560 fDashDotDistance *= fFactor;
565 fDashDotDistance = fLineWidth;
585 if(fSingleDashLen < fLineWidth)
587 fSingleDashLen = fLineWidth;
605 if(fSingleDotLen < fLineWidth)
607 fSingleDotLen = fLineWidth;
625 if(fDashDotDistance < fLineWidth)
627 fDashDotDistance = fLineWidth;
635 rDotDashArray[nIns++] = fSingleDotLen;
636 fFullDotDashLen += fSingleDotLen;
637 rDotDashArray[nIns++] = fDashDotDistance;
638 fFullDotDashLen += fDashDotDistance;
643 rDotDashArray[nIns++] = fSingleDashLen;
644 fFullDotDashLen += fSingleDashLen;
645 rDotDashArray[nIns++] = fDashDotDistance;
646 fFullDotDashLen += fDashDotDistance;
649 return fFullDotDashLen;
679 return ( NameOrIndex::operator==(rItem) &&
709 nMemberId &= ~CONVERT_TWIPS;
715 css::drawing::LineDash aLineDash;
718 aLineDash.Style =
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(rXD.
GetDashStyle()));
719 aLineDash.Dots = rXD.
GetDots();
725 uno::Sequence< beans::PropertyValue > aPropSeq{
743 css::drawing::LineDash aLineDash;
745 aLineDash.Style =
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(rXD.
GetDashStyle()));
746 aLineDash.Dots = rXD.
GetDots();
759 rVal <<= static_cast<css::drawing::DashStyle>(
static_cast<sal_Int16
>(rXD.
GetDashStyle()));
798 default: OSL_FAIL(
"Wrong MemberId!");
return false;
806 nMemberId &= ~CONVERT_TWIPS;
812 uno::Sequence< beans::PropertyValue > aPropSeq;
814 if ( rVal >>= aPropSeq )
816 css::drawing::LineDash aLineDash;
818 bool bLineDash(
false );
819 for (
const auto& rProp : std::as_const(aPropSeq) )
821 if ( rProp.Name ==
"Name" )
822 rProp.Value >>=
aName;
823 else if ( rProp.Name ==
"LineDash" )
825 if ( rProp.Value >>= aLineDash )
835 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(aLineDash.Style)));
836 aXDash.
SetDots(aLineDash.Dots);
857 if (!(rVal >>=
aName))
865 css::drawing::LineDash aLineDash;
866 if(!(rVal >>= aLineDash))
871 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(aLineDash.Style)));
872 aXDash.
SetDots(aLineDash.Dots);
887 sal_Int16 nVal = sal_Int16();
892 aXDash.
SetDashStyle(
static_cast<css::drawing::DashStyle
>(
static_cast<sal_uInt16
>(nVal)));
905 sal_Int16 nVal = sal_Int16();
965 return std::make_unique<XLineDashItem>( aUniqueName,
aDash );
992 eCoreUnit, ePresUnit, &rIntl) +
1049 nMemberId &= ~CONVERT_TWIPS;
1055 rVal <<= xComplexColor;
1074 nMemberId &= ~CONVERT_TWIPS;
1079 css::uno::Reference<css::util::XComplexColor> xComplexColor;
1080 if (!(rVal >>= xComplexColor))
1087 OUString sComplexColorJson;
1088 if (!(rVal >>= sComplexColorJson))
1091 if (sComplexColorJson.isEmpty())
1094 OString aJSON =
OUStringToOString(sComplexColorJson, RTL_TEXTENCODING_ASCII_US);
1162 nMemberId &= ~CONVERT_TWIPS;
1169 css::drawing::PolyPolygonBezierCoords aBezier;
1179 nMemberId &= ~CONVERT_TWIPS;
1188 if( rVal.hasValue() )
1190 auto pCoords = o3tl::tryAccess<css::drawing::PolyPolygonBezierCoords>(
1195 if( pCoords->Coordinates.getLength() > 0 )
1214 std::unique_ptr<XLineStartItem> pTempItem;
1217 OUString aUniqueName(
GetName() );
1222 if( aUniqueName.isEmpty() )
1226 return std::make_unique<XLineStartItem>(
"",
maPolyPolygon );
1237 pTempItem.reset(
new XLineStartItem( aUniqueName, std::move(aNew) ));
1238 pLineStartItem = pTempItem.get();
1242 bool bForceNew =
false;
1248 if (!aUniqueName.isEmpty())
1254 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1261 aUniqueName.clear();
1274 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1281 aUniqueName.clear();
1291 if( !aUniqueName.isEmpty() && pPool2)
1297 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1304 aUniqueName.clear();
1317 if( pItem && ( pItem->GetName() == pLineStartItem->
GetName() ) )
1324 aUniqueName.clear();
1335 if( aUniqueName.isEmpty() )
1337 bool bFoundExisting =
false;
1339 sal_Int32 nUserIndex = 1;
1340 const OUString aUser(
SvxResId(RID_SVXSTR_LINEEND));
1346 if (pItem && !pItem->GetName().isEmpty())
1348 if (!bForceNew && pItem->GetLineStartValue() == pLineStartItem->
GetLineStartValue())
1350 aUniqueName = pItem->
GetName();
1351 bFoundExisting =
true;
1355 if (pItem->GetName().startsWith(aUser))
1357 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1358 if (nThisIndex >= nUserIndex)
1359 nUserIndex = nThisIndex + 1;
1368 if (pItem && !pItem->GetName().isEmpty())
1370 if (!bForceNew && pItem->GetLineEndValue() == pLineStartItem->
GetLineStartValue())
1372 aUniqueName = pItem->
GetName();
1373 bFoundExisting =
true;
1377 if (pItem->GetName().startsWith(aUser))
1379 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1380 if (nThisIndex >= nUserIndex)
1381 nUserIndex = nThisIndex + 1;
1386 if( !bFoundExisting )
1388 aUniqueName = aUser +
" " + OUString::number( nUserIndex );
1393 if( aUniqueName !=
GetName() || pTempItem )
1397 pTempItem->SetName( aUniqueName );
1402 return std::make_unique<XLineStartItem>( aUniqueName,
maPolyPolygon );
1453 std::unique_ptr<XLineEndItem> pTempItem;
1456 OUString aUniqueName(
GetName() );
1461 if( aUniqueName.isEmpty() )
1476 pTempItem.reset(
new XLineEndItem( aUniqueName, std::move(aNew) ));
1477 pLineEndItem = pTempItem.get();
1481 bool bForceNew =
false;
1487 if (!aUniqueName.isEmpty())
1493 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1500 aUniqueName.clear();
1513 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1520 aUniqueName.clear();
1530 if( !aUniqueName.isEmpty() && pPool2)
1536 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1543 aUniqueName.clear();
1556 if( pItem && ( pItem->GetName() == pLineEndItem->
GetName() ) )
1563 aUniqueName.clear();
1574 if( aUniqueName.isEmpty() )
1576 bool bFoundExisting =
false;
1578 sal_Int32 nUserIndex = 1;
1579 const OUString aUser(
SvxResId(RID_SVXSTR_LINEEND));
1585 if (pItem && !pItem->GetName().isEmpty())
1587 if (!bForceNew && pItem->GetLineStartValue() == pLineEndItem->
GetLineEndValue())
1589 aUniqueName = pItem->
GetName();
1590 bFoundExisting =
true;
1594 if (pItem->GetName().startsWith(aUser))
1596 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1597 if (nThisIndex >= nUserIndex)
1598 nUserIndex = nThisIndex + 1;
1607 if (pItem && !pItem->GetName().isEmpty())
1609 if (!bForceNew && pItem->GetLineEndValue() == pLineEndItem->
GetLineEndValue())
1611 aUniqueName = pItem->
GetName();
1612 bFoundExisting =
true;
1616 if (pItem->GetName().startsWith(aUser))
1618 sal_Int32 nThisIndex =
o3tl::toInt32(pItem->GetName().subView(aUser.getLength()));
1619 if (nThisIndex >= nUserIndex)
1620 nUserIndex = nThisIndex + 1;
1625 if( !bFoundExisting )
1627 aUniqueName = aUser +
" " + OUString::number( nUserIndex );
1632 if( aUniqueName !=
GetName() || pTempItem )
1636 pTempItem->SetName( aUniqueName );
1641 return std::make_unique<XLineEndItem>( aUniqueName,
maPolyPolygon );
1663 nMemberId &= ~CONVERT_TWIPS;
1670 css::drawing::PolyPolygonBezierCoords aBezier;
1679 nMemberId &= ~CONVERT_TWIPS;
1688 if( rVal.hasValue() )
1690 auto pCoords = o3tl::tryAccess<css::drawing::PolyPolygonBezierCoords>(
1695 if( pCoords->Coordinates.getLength() > 0 )
1726 eCoreUnit, ePresUnit, &rIntl) +
1764 eCoreUnit, ePresUnit, &rIntl) +
1801 rText =
SvxResId(
GetValue() ? RID_SVXSTR_CENTERED : RID_SVXSTR_NOTCENTERED);
1840 rText =
SvxResId(
GetValue() ? RID_SVXSTR_CENTERED : RID_SVXSTR_NOTCENTERED);
1890 case drawing::FillStyle_NONE:
1891 pId = RID_SVXSTR_INVISIBLE;
1893 case drawing::FillStyle_SOLID:
1894 pId = RID_SVXSTR_SOLID;
1896 case drawing::FillStyle_GRADIENT:
1897 pId = RID_SVXSTR_GRADIENT;
1899 case drawing::FillStyle_HATCH:
1900 pId = RID_SVXSTR_HATCH;
1902 case drawing::FillStyle_BITMAP:
1903 pId = RID_SVXSTR_BITMAP;
1920 css::drawing::FillStyle eFS =
GetValue();
1929 css::drawing::FillStyle eFS;
1936 eFS =
static_cast<css::drawing::FillStyle
>(nFS);
1946 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XFillStyleItem"));
1947 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
1948 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"), BAD_CAST(OString::number(
static_cast<sal_Int16
>(
GetValue())).getStr()));
1950 OUString aPresentation;
1952 GetPresentation(SfxItemPresentation::Nameless, MapUnit::Map100thMM, MapUnit::Map100thMM, aPresentation, aIntlWrapper);
1953 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"presentation"), BAD_CAST(aPresentation.toUtf8().getStr()));
1955 (void)xmlTextWriterEndElement(pWriter);
1963 aTree.put(
"commandName",
".uno:FillStyle");
1969 case drawing::FillStyle_NONE:
1972 case drawing::FillStyle_SOLID:
1975 case drawing::FillStyle_GRADIENT:
1976 sValue =
"GRADIENT";
1978 case drawing::FillStyle_HATCH:
1981 case drawing::FillStyle_BITMAP:
1987 aTree.put(
"state", sValue);
2024 nMemberId &= ~CONVERT_TWIPS;
2034 sal_Int16
nValue = 10000;
2038 nValue = rTransform.mnValue;
2049 nValue = rTransform.mnValue;
2057 rVal <<= xComplexColor;
2077 nMemberId &= ~CONVERT_TWIPS;
2090 sal_Int16 nLumMod = 10000;
2091 if (!(rVal >>= nLumMod))
2099 sal_Int16 nLumOff = 0;
2100 if (!(rVal >>= nLumOff))
2108 css::uno::Reference<css::util::XComplexColor> xComplexColor;
2109 if (!(rVal >>= xComplexColor))
2116 OUString sComplexColorJson;
2117 if (!(rVal >>= sComplexColorJson))
2120 if (sComplexColorJson.isEmpty())
2123 OString aJSON =
OUStringToOString(sComplexColorJson, RTL_TEXTENCODING_ASCII_US);
2145 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"XFillColorItem"));
2146 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"whichId"), BAD_CAST(OString::number(
Which()).getStr()));
2150 (void)xmlTextWriterEndElement(pWriter);
2158 aTree.put(
"commandName",
".uno:FillPageColor");
2192 aGradient(rTheGradient)
2199 , aGradient(rTheGradient)
2205 aGradient(rItem.aGradient)
2211 aGradient(rTheGradient)
2222 return ( NameOrIndex::operator==(rItem) &&
2249 nMemberId &= ~CONVERT_TWIPS;
2250 switch ( nMemberId )
2258 uno::Sequence< beans::PropertyValue > aPropSeq{
2272 rVal <<= aGradient2;
2285 const css::awt::ColorStopSequence aColorStopSequence(
2289 rVal <<= aColorStopSequence;
2304 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2312 nMemberId &= ~CONVERT_TWIPS;
2314 switch ( nMemberId )
2318 uno::Sequence< beans::PropertyValue > aPropSeq;
2319 css::uno::Any aGradientAny;
2321 if ( rVal >>= aPropSeq )
2325 for (
const auto& rProp : std::as_const(aPropSeq) )
2327 if ( rProp.Name ==
"Name" )
2328 rProp.Value >>=
aName;
2329 else if ( rProp.Name ==
"FillGradient" )
2330 aGradientAny = rProp.Value;
2335 if (aGradientAny.hasValue() && (aGradientAny.has<css::awt::Gradient>() || aGradientAny.has<css::awt::Gradient2>()))
2350 if (!(rVal >>=
aName ))
2358 if (rVal.hasValue() && (rVal.has<css::awt::Gradient>() || rVal.has<css::awt::Gradient2>()))
2370 if (rVal.hasValue() && rVal.has<css::awt::ColorStopSequence>())
2374 if (!aColorStops.empty())
2388 if(!(rVal >>= nVal ))
2417 sal_Int16 nVal = sal_Int16();
2418 if(!(rVal >>= nVal ))
2423 switch ( nMemberId )
2426 aBGradient.
SetGradientStyle(
static_cast<css::awt::GradientStyle
>(nVal) );
break;
2436 aBGradient.
SetSteps( nVal );
break;
2466 if( aUniqueName !=
GetName() )
2478 aTree.put(
"commandName",
".uno:FillGradient");
2496 bEnabled ( bEnable )
2503 bEnabled ( rItem.bEnabled )
2510 bEnabled ( bEnable )
2517 return ( NameOrIndex::operator==(rItem) ) &&
2541 rVal <<= OUString();
2586 RID_SVXSTR_TRASNGR0,
2590 if( aUniqueName !=
GetName() )
2592 return std::make_unique<XFillFloatTransparenceItem>( aUniqueName,
GetGradientValue(),
true );
2601 return std::make_unique<XFillFloatTransparenceItem>(OUString(),
GetGradientValue(),
false);
2611 aTree.put(
"commandName",
".uno:FillFloatTransparence");
2615 boost::property_tree::ptree& rState = aTree.get_child(
"state");
2621 rState.put(
"style",
"NONE");
2623 rState.put(
"style",
"SOLID");
2633 nDistance(nTheDistance),
2650 const XHatch& rTheHatch) :
2658 aHatch(rItem.aHatch)
2675 return ( NameOrIndex::operator==(rItem) &&
2703 nMemberId &= ~CONVERT_TWIPS;
2705 switch ( nMemberId )
2709 css::drawing::Hatch aUnoHatch;
2716 uno::Sequence< beans::PropertyValue > aPropSeq{
2726 css::drawing::Hatch aUnoHatch;
2751 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2759 nMemberId &= ~CONVERT_TWIPS;
2761 switch ( nMemberId )
2765 uno::Sequence< beans::PropertyValue > aPropSeq;
2766 if ( rVal >>= aPropSeq )
2768 css::drawing::Hatch aUnoHatch;
2770 bool bHatch(
false );
2771 for (
const auto& rProp : std::as_const(aPropSeq) )
2773 if ( rProp.Name ==
"Name" )
2774 rProp.Value >>=
aName;
2775 else if ( rProp.Name ==
"FillHatch" )
2777 if ( rProp.Value >>= aUnoHatch )
2799 css::drawing::Hatch aUnoHatch;
2800 if(!(rVal >>= aUnoHatch))
2813 if (!(rVal >>=
aName ))
2821 sal_Int16 nVal = sal_Int16();
2822 if (!(rVal >>= nVal ))
2833 if (!(rVal >>= nVal ))
2845 default: OSL_FAIL(
"Wrong MemberId!");
return false;
2866 if( aUniqueName !=
GetName() )
2867 return std::make_unique<XFillHatchItem>( aUniqueName,
aHatch );
2895 rVal <<= static_cast<sal_Int32>(
GetValue());
2928 rVal <<= static_cast<sal_Int32>(
GetValue());
3009 rVal <<= static_cast<sal_Int32>(
GetValue());
3026 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
const model::ComplexColor & getComplexColor() 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
void setComplexColor(model::ComplexColor const &rComplexColor)
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const override
virtual XColorItem * Clone(SfxItemPool *pPool=nullptr) const override
void SetColorValue(const Color &rNew)
const Color & GetColorValue() const
virtual bool operator==(const SfxPoolItem &rItem) const override
model::ComplexColor maComplexColor
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
void SetGradientValue(const basegfx::BGradient &rNew)
virtual XFillGradientItem * Clone(SfxItemPool *pPool=nullptr) const override
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const override
virtual bool operator==(const SfxPoolItem &rItem) const override
const basegfx::BGradient & GetGradientValue() const
std::unique_ptr< XFillGradientItem > checkForUniqueItem(SdrModel *pModel) const
virtual bool GetPresentation(SfxItemPresentation ePres, MapUnit eCoreMetric, MapUnit ePresMetric, OUString &rText, const IntlWrapper &) const override
basegfx::BGradient aGradient
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)
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)
void replaceEndColor(const BColor &rEnd)
void replaceStartColor(const BColor &rStart)
sal_uInt16 GetBorder() const
void SetGradientStyle(css::awt::GradientStyle eNewStyle)
sal_uInt16 GetStartIntens() const
void SetColorStops(const basegfx::BColorStops &rSteps)
sal_uInt16 GetSteps() const
void SetEndIntens(sal_uInt16 nNewIntens)
void SetYOffset(sal_uInt16 nNewOffset)
void SetXOffset(sal_uInt16 nNewOffset)
sal_uInt16 GetXOffset() const
void SetSteps(sal_uInt16 nSteps)
void SetBorder(sal_uInt16 nNewBorder)
const basegfx::BColorStops & GetColorStops() const
sal_uInt16 GetEndIntens() const
void SetStartIntens(sal_uInt16 nNewIntens)
void SetAngle(Degree10 nNewAngle)
sal_uInt16 GetYOffset() const
void setSchemeColor(ThemeColorType eType)
std::vector< Transformation > const & getTransformations() const
void removeTransformations(TransformationType eType)
void addTransformation(Transformation const &rTransform)
ThemeColorType getSchemeType() const
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_COMPLEX_COLOR_JSON
#define MID_COMPLEX_COLOR
#define MID_COLOR_THEME_INDEX
#define MID_COLOR_LUM_OFF
void B2DPolyPolygonToUnoPolyPolygonBezierCoords(const B2DPolyPolygon &rPolyPolygon, css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsRetval)
B2DPolyPolygon UnoPolyPolygonBezierCoordsToB2DPolyPolygon(const css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsSource)
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
model::ComplexColor getFromXComplexColor(uno::Reference< util::XComplexColor > const &rxColor)
bool convertFromJSON(OString const &rJsonString, model::ComplexColor &rComplexColor)
OString convertToJSON(model::ComplexColor const &rComplexColor)
uno::Reference< util::XComplexColor > createXComplexColor(model::ComplexColor const &rColor)
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)
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,...
#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)