28#include <svx/svxids.hrc>
58#include <osl/diagnose.h>
112 {
"normal", sal_uInt16(SvxCaseMap::NotMapped) },
113 {
"small-caps", sal_uInt16(SvxCaseMap::SmallCaps) },
119 {
"uppercase", sal_uInt16(SvxCaseMap::Uppercase) },
120 {
"lowercase", sal_uInt16(SvxCaseMap::Lowercase) },
121 {
"capitalize", sal_uInt16(SvxCaseMap::Capitalize) },
127 {
"ltr", sal_uInt16(SvxFrameDirection::Horizontal_LR_TB) },
128 {
"rtl", sal_uInt16(SvxFrameDirection::Horizontal_RL_TB) },
129 {
"inherit", sal_uInt16(SvxFrameDirection::Environment) },
160 {
"left", sal_uInt16(SvxAdjust::Left) },
161 {
"center", sal_uInt16(SvxAdjust::Center) },
162 {
"right", sal_uInt16(SvxAdjust::Right) },
163 {
"justify", sal_uInt16(SvxAdjust::Block) },
177enum CSS1BorderStyle { CSS1_BS_NONE, CSS1_BS_SINGLE, CSS1_BS_DOUBLE, CSS1_BS_DOTTED, CSS1_BS_DASHED, CSS1_BS_GROOVE, CSS1_BS_RIDGE, CSS1_BS_INSET, CSS1_BS_OUTSET };
183 {
"none", CSS1_BS_NONE },
184 {
"dotted", CSS1_BS_DOTTED },
185 {
"dashed", CSS1_BS_DASHED },
186 {
"solid", CSS1_BS_SINGLE },
187 {
"double", CSS1_BS_DOUBLE },
188 {
"groove", CSS1_BS_GROOVE },
189 {
"ridge", CSS1_BS_RIDGE },
190 {
"inset", CSS1_BS_INSET },
191 {
"outset", CSS1_BS_OUTSET },
197 {
"left", sal_uInt16(SvxAdjust::Left) },
198 {
"right", sal_uInt16(SvxAdjust::Right) },
199 {
"none", sal_uInt16(SvxAdjust::End) },
268 sal_uInt16 nPostureCJK;
269 sal_uInt16 nPostureCTL;
271 sal_uInt16 nWeightCJK;
272 sal_uInt16 nWeightCTL;
273 sal_uInt16 nFontHeight;
274 sal_uInt16 nFontHeightCJK;
275 sal_uInt16 nFontHeightCTL;
276 sal_uInt16 nUnderline;
277 sal_uInt16 nOverline;
278 sal_uInt16 nCrossedOut;
284 sal_uInt16 nLineSpacing;
288 sal_uInt16 nFormatSplit;
295 sal_uInt16 nLanguage;
296 sal_uInt16 nLanguageCJK;
297 sal_uInt16 nLanguageCTL;
298 sal_uInt16 nDirection;
378 m_aId( rProp.m_aId ),
379 m_bTopMargin( rProp.m_bTopMargin ),
380 m_bBottomMargin( rProp.m_bBottomMargin ),
381 m_bLeftMargin( rProp.m_bLeftMargin ),
382 m_bRightMargin( rProp.m_bRightMargin ),
383 m_bTextIndent( rProp.m_bTextIndent ),
384 m_bNumbering ( rProp.m_bNumbering ),
385 m_bBullet ( rProp.m_bBullet ),
386 m_eFloat( rProp.m_eFloat ),
388 m_nTopBorderDistance( rProp.m_nTopBorderDistance ),
389 m_nBottomBorderDistance( rProp.m_nBottomBorderDistance ),
390 m_nLeftBorderDistance( rProp.m_nLeftBorderDistance ),
391 m_nRightBorderDistance( rProp.m_nRightBorderDistance ),
392 m_nNumberingType ( rProp.m_nNumberingType ),
393 m_cBulletChar( rProp.m_cBulletChar ),
394 m_nColumnCount( rProp.m_nColumnCount ),
395 m_nLeft( rProp.m_nLeft ),
396 m_nTop( rProp.m_nTop ),
397 m_nWidth( rProp.m_nWidth ),
398 m_nHeight( rProp.m_nHeight ),
399 m_nLeftMargin( rProp.m_nLeftMargin ),
400 m_nRightMargin( rProp.m_nRightMargin ),
401 m_eLeftType( rProp.m_eLeftType ),
402 m_eTopType( rProp.m_eTopType ),
403 m_eWidthType( rProp.m_eWidthType ),
404 m_eHeightType( rProp.m_eHeightType ),
405 m_eLeftMarginType( rProp.m_eLeftMarginType ),
406 m_eRightMarginType( rProp.m_eRightMarginType ),
407 m_eSizeType( rProp.m_eSizeType ),
408 m_ePageBreakBefore( rProp.m_ePageBreakBefore ),
409 m_ePageBreakAfter( rProp.m_ePageBreakAfter )
494 if( rProp.
m_eFloat != SvxAdjust::End )
544 case SvxBoxItemLine::TOP:
nPos = 0;
break;
545 case SvxBoxItemLine::BOTTOM:
nPos = 1;
break;
546 case SvxBoxItemLine::LEFT:
nPos = 2;
break;
547 case SvxBoxItemLine::RIGHT:
nPos = 3;
break;
581 CopyBorderInfo( SvxBoxItemLine::BOTTOM, SvxBoxItemLine::TOP, nWhat );
582 CopyBorderInfo( SvxBoxItemLine::TOP, SvxBoxItemLine::LEFT, nWhat );
586 CopyBorderInfo( SvxBoxItemLine::LEFT, SvxBoxItemLine::RIGHT, nWhat );
591 sal_uInt16 nMinBorderDist,
605 std::shared_ptr<SvxBoxItem> aBoxItem(std::make_shared<SvxBoxItem>(
aItemIds.nBox));
607 aBoxItem.reset(pDfltItem->
Clone());
628 sal_uInt16 nDist = 0;
631 case 0: nLine = SvxBoxItemLine::TOP;
635 case 1: nLine = SvxBoxItemLine::BOTTOM;
639 case 2: nLine = SvxBoxItemLine::LEFT;
643 case 3: nLine = SvxBoxItemLine::RIGHT;
649 if( aBoxItem->GetLine( nLine ) )
652 nDist = aBoxItem->GetDistance( nLine );
654 if( nDist < nMinBorderDist )
655 nDist = nMinBorderDist;
662 aBoxItem->SetDistance( nDist, nLine );
665 rItemSet.
Put( *aBoxItem );
672 m_aItemSet(
std::move( aItemSet )),
687 OSL_ENSURE(
m_pSheetItemSet,
"Where is the Item-Set for Style-Sheets?" );
689 for (
const std::unique_ptr<CSS1Selector> & rpSelection :
m_Selectors)
704 sal_uInt16
const *pWhichIds, sal_uInt16 nWhichIds ) :
705 m_sBaseURL(
std::move( aBaseURL )),
707 m_pPropInfo( nullptr ),
708 m_eDefaultEnc( RTL_TEXTENCODING_DONTKNOW ),
709 m_bIgnoreFontFamily( false )
712 auto initTrueWhich = [&rPool,
this](sal_uInt16 rWid)
719 aItemIds.nFont = initTrueWhich( SID_ATTR_CHAR_FONT );
720 aItemIds.nFontCJK = initTrueWhich( SID_ATTR_CHAR_CJK_FONT );
721 aItemIds.nFontCTL = initTrueWhich( SID_ATTR_CHAR_CTL_FONT );
722 aItemIds.nPosture = initTrueWhich( SID_ATTR_CHAR_POSTURE );
723 aItemIds.nPostureCJK = initTrueWhich( SID_ATTR_CHAR_CJK_POSTURE );
724 aItemIds.nPostureCTL = initTrueWhich( SID_ATTR_CHAR_CTL_POSTURE );
725 aItemIds.nWeight = initTrueWhich( SID_ATTR_CHAR_WEIGHT );
726 aItemIds.nWeightCJK = initTrueWhich( SID_ATTR_CHAR_CJK_WEIGHT );
727 aItemIds.nWeightCTL = initTrueWhich( SID_ATTR_CHAR_CTL_WEIGHT );
728 aItemIds.nFontHeight = initTrueWhich( SID_ATTR_CHAR_FONTHEIGHT );
729 aItemIds.nFontHeightCJK = initTrueWhich( SID_ATTR_CHAR_CJK_FONTHEIGHT );
730 aItemIds.nFontHeightCTL = initTrueWhich( SID_ATTR_CHAR_CTL_FONTHEIGHT );
731 aItemIds.nUnderline = initTrueWhich( SID_ATTR_CHAR_UNDERLINE );
732 aItemIds.nOverline = initTrueWhich( SID_ATTR_CHAR_OVERLINE );
733 aItemIds.nCrossedOut = initTrueWhich( SID_ATTR_CHAR_STRIKEOUT );
734 aItemIds.nColor = initTrueWhich( SID_ATTR_CHAR_COLOR );
735 aItemIds.nKerning = initTrueWhich( SID_ATTR_CHAR_KERNING );
736 aItemIds.nCaseMap = initTrueWhich( SID_ATTR_CHAR_CASEMAP );
737 aItemIds.nBlink = initTrueWhich( SID_ATTR_FLASH );
739 aItemIds.nLineSpacing = initTrueWhich( SID_ATTR_PARA_LINESPACE );
740 aItemIds.nAdjust = initTrueWhich( SID_ATTR_PARA_ADJUST );
741 aItemIds.nWidows = initTrueWhich( SID_ATTR_PARA_WIDOWS );
742 aItemIds.nOrphans = initTrueWhich( SID_ATTR_PARA_ORPHANS );
743 aItemIds.nFormatSplit = initTrueWhich( SID_ATTR_PARA_SPLIT );
750 aItemIds.nBox = initTrueWhich( SID_ATTR_BORDER_OUTER );
751 aItemIds.nBrush = initTrueWhich( SID_ATTR_BRUSH );
753 aItemIds.nLanguage = initTrueWhich( SID_ATTR_CHAR_LANGUAGE );
754 aItemIds.nLanguageCJK = initTrueWhich( SID_ATTR_CHAR_CJK_LANGUAGE );
755 aItemIds.nLanguageCTL = initTrueWhich( SID_ATTR_CHAR_CTL_LANGUAGE );
756 aItemIds.nDirection = initTrueWhich( SID_ATTR_FRAMEDIRECTION );
758 if( pWhichIds && nWhichIds )
759 for (sal_uInt16
i = 0;
i < nWhichIds; ++
i)
781 CSS1Map::const_iterator itr =
m_Ids.find(rId);
782 return itr ==
m_Ids.end() ? nullptr : itr->second.get();
794 CSS1Map::const_iterator itr =
m_Classes.find(rClass);
795 return itr ==
m_Classes.end() ? nullptr : itr->second.get();
803 OUString aKey( rPage );
811 OUString aKey( rPage );
815 CSS1Map::iterator itr =
m_Pages.find(aKey);
816 return itr ==
m_Pages.end() ? nullptr : itr->second.get();
828 CSS1Map::iterator itr =
m_Tags.find(rTag);
829 return itr ==
m_Tags.end() ? nullptr : itr->second.get();
839 for (
const std::unique_ptr<CSS1Selector> & rpSelector :
m_Selectors)
870 std::u16string_view rValue, sal_uInt16& rEnum )
872 while( pPropTable->
pName )
880 if( pPropTable->
pName )
881 rEnum = pPropTable->
nEnum;
883 return (pPropTable->
pName !=
nullptr);
890 Size aTwipSz( rWidth, rHeight );
894 rWidth = aTwipSz.
Width();
895 rHeight = aTwipSz.
Height();
905 case 0: nHeight = 8*20;
break;
906 case 1: nHeight = 10*20;
break;
907 case 2: nHeight = 11*20;
break;
908 case 3: nHeight = 12*20;
break;
909 case 4: nHeight = 17*20;
break;
910 case 5: nHeight = 20*20;
break;
912 default: nHeight = 32*20;
break;
928 auto [itr,
inserted] = rMap.insert(std::make_pair(rKey,
nullptr));
930 itr->second = std::make_unique<SvxCSS1MapEntry>(rItemSet, rProp);
935 p->GetItemSet(),
p->GetPropertyInfo(),
true );
947 rTargetSet.
Put( rSrcSet );
979 rTargetSet.
Put( aULSpace );
983 rTargetInfo.
Merge( rSrcInfo );
996 OSL_ENSURE( pExpr,
"no expression" );
999 sal_uInt16 nPropHeight = 100;
1009 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
1014 nHeight =
static_cast<sal_uLong>(nPHeight);
1018 SAL_WARN(
"sw.html",
"out-of-size pxlength: " << fHeight);
1024 nPropHeight = o3tl::narrowing<sal_uInt16>(pExpr->
GetNumber());
1042 if( nHeight || nPropHeight!=100 )
1046 rItemSet.
Put( aFontHeight );
1047 aFontHeight.SetWhich(
aItemIds.nFontHeightCJK );
1048 rItemSet.
Put( aFontHeight );
1049 aFontHeight.SetWhich(
aItemIds.nFontHeightCTL );
1050 rItemSet.
Put( aFontHeight );
1059 OSL_ENSURE( pExpr,
"no expression" );
1061 OUStringBuffer
aName;
1065 bool bFound =
false;
1066 while( pExpr && (bFirst ||
','==pExpr->
GetOp() || !pExpr->
GetOp()) )
1077 while( pNext && !pNext->
GetOp() &&
1085 if( !aIdent.isEmpty() )
1087 if( !bFound && pFList )
1090 if(
nullptr != hFont )
1093 if( RTL_TEXTENCODING_DONTKNOW != rFMetric.
GetCharSet() )
1096 if( RTL_TEXTENCODING_SYMBOL == rFMetric.
GetCharSet() )
1097 eEnc = RTL_TEXTENCODING_SYMBOL;
1103 aName.append(aIdent);
1115 rItemSet.
Put( aFont );
1116 aFont.SetWhich(
aItemIds.nFontCJK );
1117 rItemSet.
Put( aFont );
1118 aFont.SetWhich(
aItemIds.nFontCTL );
1119 rItemSet.
Put( aFont );
1128 OSL_ENSURE( pExpr,
"no expression" );
1140 rItemSet.
Put( aWeight );
1141 aWeight.SetWhich(
aItemIds.nWeightCJK );
1142 rItemSet.
Put( aWeight );
1143 aWeight.SetWhich(
aItemIds.nWeightCTL );
1144 rItemSet.
Put( aWeight );
1150 sal_uInt16 nWeight = o3tl::narrowing<sal_uInt16>(pExpr->
GetNumber());
1153 rItemSet.
Put( aWeight );
1154 aWeight.SetWhich(
aItemIds.nWeightCJK );
1155 rItemSet.
Put( aWeight );
1156 aWeight.SetWhich(
aItemIds.nWeightCTL );
1157 rItemSet.
Put( aWeight );
1171 OSL_ENSURE( pExpr,
"no expression" );
1173 bool bPosture =
false;
1174 bool bCaseMap =
false;
1182 for(
int i=0; pExpr &&
i<2; ++
i )
1188 const OUString& rValue = pExpr->
GetString();
1197 eCaseMap = SvxCaseMap::NotMapped;
1202 else if( !bCaseMap &&
1203 rValue.equalsIgnoreAsciiCase(
"small-caps" ) )
1205 eCaseMap = SvxCaseMap::SmallCaps;
1217 rItemSet.
Put( aPosture );
1218 aPosture.SetWhich(
aItemIds.nPostureCJK );
1219 rItemSet.
Put( aPosture );
1220 aPosture.SetWhich(
aItemIds.nPostureCTL );
1221 rItemSet.
Put( aPosture );
1233 assert(pExpr &&
"no expression");
1240 sal_uInt16 nCaseMap;
1259 OSL_ENSURE( pExpr,
"no expression" );
1267 sal_uInt16 nCaseMap;
1286 OSL_ENSURE( pExpr,
"no expression" );
1310 assert(pExpr &&
"no expression");
1314 double columnCount = pExpr->
GetNumber();
1315 if ( columnCount >= 2 )
1327 assert(pExpr &&
"no expression");
1350 "vertical position not at the top" );
1380 "horizontal position not on the left side" );
1412 OSL_ENSURE( pExpr,
"no expression" );
1417 bool bColor =
false, bTransparent =
false;
1420 bool bHori =
false, bVert =
false;
1422 while( pExpr && !pExpr->
GetOp() )
1431 bColor = pExpr->
GetColor( aColor );
1441 bool nonZero = std::trunc(pExpr->
GetNumber()) != 0.0;
1459 sal_uInt16 nPerc = o3tl::narrowing<sal_uInt16>(pExpr->
GetNumber());
1481 const OUString &rValue = pExpr->
GetString();
1482 if( rValue.equalsIgnoreAsciiCase(
"transparent" ) )
1484 bTransparent =
true;
1503 bColor = pExpr->
GetColor( aColor );
1527 if( !bTransparent && !bColor &&
aURL.isEmpty() )
1537 if( !
aURL.isEmpty() )
1543 rItemSet.
Put( aBrushItem );
1551 OSL_ENSURE( pExpr,
"no expression" );
1555 bool bColor =
false, bTransparent =
false;
1560 bColor = pExpr->
GetColor( aColor );
1565 if( pExpr->
GetString().equalsIgnoreAsciiCase(
"transparent" ) )
1567 bTransparent =
true;
1572 bColor = pExpr->
GetColor( aColor );
1579 if( bTransparent || bColor )
1588 rItemSet.
Put( aBrushItem );
1597 OSL_ENSURE( pExpr,
"no expression" );
1599 sal_uInt16 nHeight = 0;
1600 sal_uInt16 nPropHeight = 0;
1605 nHeight = o3tl::narrowing<sal_uInt16>(pExpr->
GetULength());
1610 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
1615 nHeight = o3tl::narrowing<sal_uInt16>(nPHeight);
1621 nPropHeight = o3tl::narrowing<sal_uInt16>(pExpr->
GetNumber());
1626 nPropHeight = o3tl::narrowing<sal_uInt16>(pExpr->
GetNumber() * 100);
1642 rItemSet.
Put( aLSItem );
1644 else if( nPropHeight )
1648 if( 100 == nPropHeight )
1652 rItemSet.
Put( aLSItem );
1662 OSL_ENSURE( pExpr,
"no expression" );
1667 const OUString& rValue = pExpr->
GetString();
1688 OSL_ENSURE( pExpr,
"no expression" );
1695 while( pExpr && !pExpr->
GetOp() &&
1703 const OUString& rValue = pExpr->
GetString();
1729 if( !pExpr || pExpr->
GetOp() )
1735 rItemSet.
Put( aPosture );
1736 aPosture.SetWhich(
aItemIds.nPostureCJK );
1737 rItemSet.
Put( aPosture );
1738 aPosture.SetWhich(
aItemIds.nPostureCTL );
1739 rItemSet.
Put( aPosture );
1744 rItemSet.
Put( aWeight );
1745 aWeight.SetWhich(
aItemIds.nWeightCJK );
1746 rItemSet.
Put( aWeight );
1747 aWeight.SetWhich(
aItemIds.nWeightCTL );
1748 rItemSet.
Put( aWeight );
1760 if(
'/' == pExpr->
GetOp() )
1769 if( !pExpr || pExpr->
GetOp() )
1781 OSL_ENSURE( pExpr,
"no expression" );
1793 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
1813 if( pExpr->
GetString().equalsIgnoreAsciiCase(
"normal" ) )
1828 OSL_ENSURE( pExpr,
"no expression" );
1830 bool bUnderline =
false;
1831 bool bOverline =
false;
1832 bool bCrossedOut =
false;
1833 bool bBlink =
false;
1834 bool bBlinkOn =
false;
1843 OUString aValue = pExpr->
GetString().toAsciiLowerCase();
1844 bool bKnown =
false;
1849 if( aValue ==
"none" )
1868 if( aValue ==
"underline" )
1878 if( aValue ==
"overline" )
1888 if( aValue ==
"line-through" )
1898 if( aValue ==
"blink" )
1935 OSL_ENSURE( pExpr,
"no expression" );
1955 OSL_ENSURE( pExpr,
"no expression" );
1966 "sw.html",
"clamping length " <<
n <<
" to short range");
1967 nIndent =
static_cast<short>(
1970 double(std::numeric_limits<short>::max())));
1977 if (fWidth < SAL_MAX_INT32/2.0 && fWidth >
SAL_MIN_INT32/2.0)
1982 nIndent =
static_cast<short>(nPWidth);
1998 rItemSet.
Put(firstLine);
2007 OSL_ENSURE( pExpr,
"no expression" );
2031 SAL_WARN(
"sw.html",
"out-of-size pxlength: " << fLeft);
2057 rItemSet.
Put(leftMargin);
2066 OSL_ENSURE( pExpr,
"no expression" );
2081 if (fRight < SAL_MAX_INT32/2.0 && fRight >
SAL_MIN_INT32/2.0)
2111 rItemSet.
Put(rightMargin);
2120 assert(pExpr &&
"no expression");
2122 sal_uInt16 nUpper = 0;
2131 nUpper = o3tl::narrowing<sal_uInt16>(nTmp);
2138 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
2145 nUpper = o3tl::narrowing<sal_uInt16>(nPHeight);
2164 rItemSet.
Put( aULItem );
2170 rItemSet.
Put( aULItem );
2180 OSL_ENSURE( pExpr,
"no expression" );
2182 sal_uInt16 nLower = 0;
2191 nLower = o3tl::narrowing<sal_uInt16>(nTmp);
2198 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
2205 nLower = o3tl::narrowing<sal_uInt16>(nPHeight);
2224 rItemSet.
Put( aULItem );
2230 rItemSet.
Put( aULItem );
2240 OSL_ENSURE( pExpr,
"no expression" );
2243 bool bSetMargins[4] = {
false,
false,
false,
false };
2245 for(
int i=0; pExpr &&
i<4 && !pExpr->
GetOp(); ++
i )
2247 bool bSetThis =
false;
2261 if (fMargin < SAL_MAX_INT32/2.0 && fMargin >
SAL_MIN_INT32/2.0)
2270 SAL_WARN(
"sw.html",
"out-of-size pxlength: " << fMargin);
2290 nMargins[0] = nMargins[1] =nMargins[2] = nMargins[3] = nMargin;
2291 bSetMargins[0] = bSetMargins[1] =
2292 bSetMargins[2] = bSetMargins[3] =
true;
2295 nMargins[1] = nMargins[3] = nMargin;
2296 bSetMargins[1] = bSetMargins[3] =
true;
2299 nMargins[2] = nMargin;
2300 bSetMargins[2] =
true;
2303 nMargins[3] = nMargin;
2304 bSetMargins[3] =
true;
2311 if( bSetMargins[3] || bSetMargins[1] )
2313 if( bSetMargins[3] )
2317 if( nMargins[3] < 0 )
2320 if( bSetMargins[1] )
2324 if( nMargins[1] < 0 )
2331 rItemSet.
Put(leftMargin);
2336 rItemSet.
Put(rightMargin);
2340 if( !(bSetMargins[0] || bSetMargins[2]) )
2343 if( nMargins[0] < 0 )
2345 if( nMargins[2] < 0 )
2351 if( bSetMargins[0] )
2352 aULItem.
SetUpper( o3tl::narrowing<sal_uInt16>(nMargins[0]) );
2353 if( bSetMargins[2] )
2354 aULItem.
SetLower( o3tl::narrowing<sal_uInt16>(nMargins[2]) );
2355 rItemSet.
Put( aULItem );
2360 if( bSetMargins[0] )
2361 aULItem.
SetUpper( o3tl::narrowing<sal_uInt16>(nMargins[0]) );
2362 if( bSetMargins[2] )
2363 aULItem.
SetLower( o3tl::narrowing<sal_uInt16>(nMargins[2]) );
2364 rItemSet.
Put( aULItem );
2375 OSL_ENSURE( pExpr,
"no expression" );
2378 sal_uInt16 nDist = 0;
2389 nDist = o3tl::narrowing<sal_uInt16>(nTmp);
2396 if (fWidth < SAL_MAX_INT32/2.0 && fWidth >
SAL_MIN_INT32/2.0)
2405 nDist = o3tl::narrowing<sal_uInt16>(nPWidth);
2419 switch( nWhichLine )
2469 while( n<4 && pExpr && !pExpr->GetOp() )
2471 SvxBoxItemLine nLine =
n==0 ||
n==2 ? SvxBoxItemLine::BOTTOM : SvxBoxItemLine::LEFT;
2494 OSL_ENSURE( pExpr,
"no expression" );
2496 sal_uInt16 nWidth = USHRT_MAX;
2497 sal_uInt16 nNWidth = 1;
2498 CSS1BorderStyle eStyle = CSS1_BS_NONE;
2500 bool bColor =
false;
2502 while( pExpr && !pExpr->
GetOp() )
2514 const OUString& rValue = pExpr->
GetString();
2522 eStyle =
static_cast<CSS1BorderStyle
>(
nValue);
2524 else if( pExpr->
GetColor( aColor ) )
2532 nWidth = o3tl::narrowing<sal_uInt16>(pExpr->
GetULength());
2541 bool bHori = nWhichLine == SvxBoxItemLine::TOP ||
2542 nWhichLine == SvxBoxItemLine::BOTTOM;
2547 nWidth = o3tl::narrowing<sal_uInt16>(bHori ? nPHeight : nPWidth);
2561 for(
int i=0;
i<4; ++
i )
2566 case 0: nLine = SvxBoxItemLine::TOP;
break;
2567 case 1: nLine = SvxBoxItemLine::BOTTOM;
break;
2568 case 2: nLine = SvxBoxItemLine::LEFT;
break;
2569 case 3: nLine = SvxBoxItemLine::RIGHT;
break;
2572 if( bAll || nLine == nWhichLine )
2590 OSL_ENSURE( pExpr,
"no expression" );
2592 sal_uInt16 nWidth = USHRT_MAX;
2593 sal_uInt16 nNWidth = 1;
2608 nWidth = o3tl::narrowing<sal_uInt16>(pExpr->
GetULength());
2614 if (fLength < SAL_MAX_INT32/2.0 && fLength >
SAL_MIN_INT32/2.0)
2618 bool bHori = nWhichLine == SvxBoxItemLine::TOP ||
2619 nWhichLine == SvxBoxItemLine::BOTTOM;
2624 nWidth = o3tl::narrowing<sal_uInt16>(bHori ? nPHeight : nPWidth);
2676 while( n<4 && pExpr && !pExpr->GetOp() )
2678 SvxBoxItemLine nLine =
n==0 ||
n==2 ? SvxBoxItemLine::BOTTOM : SvxBoxItemLine::LEFT;
2693 while( n<4 && pExpr && !pExpr->GetOp() )
2695 SvxBoxItemLine nLine =
n==0 ||
n==2 ? SvxBoxItemLine::BOTTOM : SvxBoxItemLine::LEFT;
2721 while( n<4 && pExpr && !pExpr->GetOp() )
2723 SvxBoxItemLine nLine =
n==0 ||
n==2 ? SvxBoxItemLine::BOTTOM : SvxBoxItemLine::LEFT;
2783 OSL_ENSURE( pExpr,
"no expression" );
2798 OSL_ENSURE( pExpr,
"no expression" );
2816 if( pExpr->
GetString().equalsIgnoreAsciiCase(
"auto" ) )
2832 if (fLength < SAL_MAX_INT32/2.0 && fLength >
SAL_MIN_INT32/2.0)
2838 rLength = (bHori ? nPHeight : nPWidth);
2893 while( n<2 && pExpr && !pExpr->GetOp() )
2918 if (fHeight < SAL_MAX_INT32/2.0 && fHeight >
SAL_MIN_INT32/2.0)
2977 bool bSetSplit =
false, bSplit =
true;
3006 rItemSet.
Put( aWidowsItem );
3021 rItemSet.
Put( aOrphansItem );
3037 rItemSet.
Put( aLang );
3038 aLang.SetWhich(
aItemIds.nLanguageCJK );
3039 rItemSet.
Put( aLang );
3040 aLang.SetWhich(
aItemIds.nLanguageCTL );
3041 rItemSet.
Put( aLang );
3059 std::string_view
pName;
3126 return s.compareToIgnoreAsciiCaseAscii(lhs.pName) > 0;
3130 std::unique_ptr<CSS1Expression> pExpr )
3132 OSL_ENSURE(
m_pItemSet,
"DeclarationParsed() without ItemSet" );
3135 [[maybe_unused]]
static const bool bSortedPropFns = []() {
3137 [](
const auto& lhs,
const auto& rhs)
constexpr {
return lhs.pName < rhs.pName; } ) );
css::chart::ChartAxisLabelPosition ePos
static OutputDevice * GetDefaultDevice()
void ParseStyleOption(const OUString &rIn)
parse the content of a HTML style option
static const FontMetric & GetFontMetric(sal_Handle hFontMetric)
sal_Handle GetFirstFontMetric(std::u16string_view rName) const
static LanguageType convertToLanguageTypeWithFallback(const OUString &rBcp47)
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
sal_uInt16 GetTrueWhich(sal_uInt16 nSlot, bool bDeep=true) const
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
static const sal_Int16 VeryThin
static const sal_Int16 Thin
static const sal_Int16 Hairline
virtual SvxBoxItem * Clone(SfxItemPool *pPool=nullptr) const override
void SetLine(const editeng::SvxBorderLine *pNew, SvxBoxItemLine nLine)
void SetGraphicPos(SvxGraphicPosition eNew)
void SetGraphicLink(const OUString &rNew)
void SetColor(const Color &rCol)
SvxCSS1MapEntry(SfxItemSet aItemSet, const SvxCSS1PropertyInfo &rProp)
std::unique_ptr< SfxItemSet > m_pSheetItemSet
void InsertPage(const OUString &rPage, bool bPseudo, const SfxItemSet &rItemSet, const SvxCSS1PropertyInfo &rProp)
const SvxCSS1MapEntry * GetId(const OUString &rId) const
void InsertId(const OUString &rId, const SfxItemSet &rItemSet, const SvxCSS1PropertyInfo &rProp)
void ParseStyleOption(const OUString &rIn, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo)
CSS1Selectors m_Selectors
bool IsIgnoreFontFamily() const
std::unique_ptr< SvxCSS1PropertyInfo > m_pSheetPropInfo
SvxCSS1MapEntry * GetTag(const OUString &rTag)
virtual void SetDfltEncoding(rtl_TextEncoding eEnc)
rtl_TextEncoding GetDfltEncoding() const
void InsertClass(const OUString &rClass, const SfxItemSet &rItemSet, const SvxCSS1PropertyInfo &rProp)
static void PixelToTwip(tools::Long &nWidth, tools::Long &nHeight)
static void InsertMapEntry(const OUString &rKey, const SfxItemSet &rItemSet, const SvxCSS1PropertyInfo &rProp, CSS1Map &rMap)
virtual void StyleParsed(const CSS1Selector *pSelector, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo)
static sal_uInt16 GetMinFixLineSpace()
rtl_TextEncoding m_eDefaultEnc
std::map< OUString, std::unique_ptr< SvxCSS1MapEntry > > CSS1Map
static void MergeStyles(const SfxItemSet &rSrcSet, const SvxCSS1PropertyInfo &rSrcInfo, SfxItemSet &rTargetSet, SvxCSS1PropertyInfo &rTargetInfo, bool bSmart)
virtual void DeclarationParsed(const OUString &rProperty, std::unique_ptr< CSS1Expression > pExpr) override
Will be called for every parsed Property.
const SvxCSS1MapEntry * GetClass(const OUString &rClass) const
SvxCSS1MapEntry * GetPage(const OUString &rPage, bool bPseudo)
virtual sal_uInt32 GetFontHeight(sal_uInt16 nSize) const
static bool GetEnum(const CSS1PropertyEnum *pPropTable, std::u16string_view rValue, sal_uInt16 &rEnum)
const OUString & GetBaseURL() const
virtual void SelectorParsed(std::unique_ptr< CSS1Selector > pSelector, bool bFirst) override
Will be called when a Selector is parsed.
virtual ~SvxCSS1Parser() override
SvxCSS1Parser(SfxItemPool &rPool, OUString aBaseURL, sal_uInt16 const *pWhichIds, sal_uInt16 nWhichIds)
WhichRangesContainer m_aWhichMap
virtual const FontList * GetFontList() const
SvxCSS1PropertyInfo * m_pPropInfo
void InsertTag(const OUString &rTag, const SfxItemSet &rItemSet, const SvxCSS1PropertyInfo &rProp)
sal_Unicode m_cBulletChar
SvxCSS1PageBreak m_ePageBreakBefore
void SetBoxItem(SfxItemSet &rItemSet, sal_uInt16 nMinBorderDist, const SvxBoxItem *pDflt=nullptr)
SvxNumType m_nNumberingType
sal_uInt16 m_nColumnCount
SvxCSS1PageBreak m_ePageBreakAfter
SvxCSS1BorderInfo * GetBorderInfo(SvxBoxItemLine nLine, bool bCreate=true)
void CopyBorderInfo(SvxBoxItemLine nSrcLine, SvxBoxItemLine nDstLine, sal_uInt16 nWhat)
SvxCSS1SizeType m_eSizeType
SvxCSS1LengthType m_eRightMarginType
void DestroyBorderInfos()
tools::Long m_nRightMargin
SvxCSS1LengthType m_eLeftMarginType
sal_uInt16 m_nBottomBorderDistance
sal_uInt16 m_nRightBorderDistance
sal_uInt16 m_nLeftBorderDistance
SvxCSS1LengthType m_eHeightType
SvxCSS1Position m_ePosition
SvxCSS1LengthType m_eWidthType
void Merge(const SvxCSS1PropertyInfo &rProp)
sal_uInt16 m_nTopBorderDistance
SvxCSS1LengthType m_eTopType
static constexpr sal_uInt16 UNSET_BORDER_DISTANCE
std::array< std::unique_ptr< SvxCSS1BorderInfo >, 4 > m_aBorderInfos
tools::Long m_nLeftMargin
SvxCSS1LengthType m_eLeftType
void SetPropLineSpace(const sal_uInt16 nProp)
void SetInterLineSpaceRule(SvxInterLineSpaceRule e)
void SetLineSpaceRule(SvxLineSpaceRule e)
void SetLineHeight(const sal_uInt16 nHeight)
void SetLower(const sal_uInt16 nL, const sal_uInt16 nProp=100)
sal_uInt16 GetUpper() const
void SetUpper(const sal_uInt16 nU, const sal_uInt16 nProp=100)
sal_uInt16 GetLower() const
void SetWidth(tools::Long nWidth)
void SetBorderLineStyle(SvxBorderLineStyle nNew)
rtl_TextEncoding GetCharSet() const
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr std::string_view sCSS1_P_font_weight
constexpr std::string_view sCSS1_P_left
constexpr std::string_view sCSS1_P_border_style
constexpr std::string_view sCSS1_P_font_family
constexpr std::string_view sCSS1_P_width
constexpr std::string_view sCSS1_P_border_right
constexpr std::string_view sCSS1_P_column_count
constexpr std::string_view sCSS1_P_margin_top
constexpr std::string_view sCSS1_P_text_indent
constexpr std::string_view sCSS1_P_float
constexpr std::string_view sCSS1_P_list_style_type
constexpr std::string_view sCSS1_P_font_variant
constexpr std::string_view sCSS1_P_height
constexpr std::string_view sCSS1_P_letter_spacing
constexpr std::string_view sCSS1_P_text_decoration
constexpr std::string_view sCSS1_P_size
constexpr std::string_view sCSS1_P_background_color
constexpr std::string_view sCSS1_P_font_size
constexpr std::string_view sCSS1_P_padding
constexpr std::string_view sCSS1_P_border_bottom_width
constexpr std::string_view sCSS1_P_orphans
constexpr std::string_view sCSS1_P_background
constexpr std::string_view sCSS1_P_page_break_before
constexpr std::string_view sCSS1_P_border_bottom
constexpr std::string_view sCSS1_P_padding_left
constexpr std::string_view sCSS1_P_text_align
constexpr std::string_view sCSS1_P_page_break_inside
constexpr std::string_view sCSS1_P_border_top_width
constexpr std::string_view sCSS1_P_border_left
constexpr std::string_view sCSS1_P_widows
constexpr std::string_view sCSS1_P_direction
constexpr std::string_view sCSS1_P_visibility
constexpr std::string_view sCSS1_P_line_height
constexpr std::string_view sCSS1_P_font_style
constexpr std::string_view sCSS1_P_position
constexpr std::string_view sCSS1_P_border
constexpr std::string_view sCSS1_P_so_language
constexpr std::string_view sCSS1_P_border_top
constexpr std::string_view sCSS1_P_border_width
constexpr std::string_view sCSS1_P_padding_bottom
constexpr std::string_view sCSS1_P_border_right_width
constexpr std::string_view sCSS1_P_page_break_after
constexpr std::string_view sCSS1_P_border_left_width
constexpr std::string_view sCSS1_P_padding_right
constexpr std::string_view sCSS1_P_margin_left
constexpr std::string_view sCSS1_P_text_transform
constexpr std::string_view sCSS1_P_color
constexpr std::string_view sCSS1_P_margin_right
constexpr std::string_view sCSS1_P_border_color
constexpr std::string_view sCSS1_P_top
constexpr std::string_view sCSS1_P_padding_top
constexpr std::string_view sCSS1_P_font
constexpr std::string_view sCSS1_P_margin_bottom
constexpr std::string_view sCSS1_P_margin
constexpr TypedWhichId< SvxFirstLineIndentItem > RES_MARGIN_FIRSTLINE(91)
constexpr TypedWhichId< SvxRightMarginItem > RES_MARGIN_RIGHT(93)
constexpr TypedWhichId< SvxTextLeftMarginItem > RES_MARGIN_TEXTLEFT(92)
#define HTML_BULLETCHAR_SQUARE
#define HTML_BULLETCHAR_CIRCLE
#define HTML_BULLETCHAR_DISC
#define LANGUAGE_DONTKNOW
DECL_LISTENERMULTIPLEXER_END void SAL_CALL inserted(::sal_Int32 ID) override
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
SVL_DLLPUBLIC OUString SmartRel2Abs(INetURLObject const &rTheBaseURIRef, OUString const &rTheRelURIRef, Link< OUString *, bool > const &rMaybeFileHdl=Link< OUString *, bool >(), bool bCheckFileExists=true, bool bIgnoreFragment=false, INetURLObject::EncodeMechanism eEncodeMechanism=INetURLObject::EncodeMechanism::WasEncoded, INetURLObject::DecodeMechanism eDecodeMechanism=INetURLObject::DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
void copy(const fs::path &src, const fs::path &dest)
bool equalsIgnoreAsciiCase(std::u16string_view s1, std::u16string_view s2)
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
a subexpression of a CSS1 declaration
const CSS1Expression * GetNext() const
CSS1Token GetType() const
void Set(CSS1Token eTyp, const OUString &rVal, double nVal)
void GetURL(OUString &rURL) const
sal_uInt32 GetULength() const
sal_Unicode GetOp() const
const OUString & GetString() const
sal_Int32 GetSLength() const
bool GetColor(Color &rRGB) const
void SetBorderLine(SvxBoxItemLine nLine, SvxBoxItem &rBoxItem) const
SAL_WARN_UNUSED_RESULT WhichRangesContainer MergeRange(sal_uInt16 nFrom, sal_uInt16 nTo) const
static SvxCSS1ItemIds aItemIds
static void ParseCSS1_left(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_border_width(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
CSS1PropertyEnum const aFontSizeTable[]
static void ParseCSS1_border_style(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_padding_left(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_orphans(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
CSS1PropertyEnum const aPositionTable[]
static void ParseCSS1_border_right(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void MergeHori(SvxGraphicPosition &ePos, SvxGraphicPosition eHori)
CSS1PropertyEnum const aBorderStyleTable[]
static void ParseCSS1_letter_spacing(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
CSS1PropertyEnum const aFloatTable[]
static void ParseCSS1_page_break_before(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_border_xxx_width(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &, SvxBoxItemLine nWhichLine)
static void ParseCSS1_margin_top(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aSizeTable[]
static void ParseCSS1_visibility(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_background(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &rParser)
static void ParseCSS1_font_size(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &rParser)
static void ParseCSS1_border_top(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_font_variant(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_so_language(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_top(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aBorderWidthTable[]
static void ParseCSS1_widows(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static bool ParseCSS1_padding_xxx(const CSS1Expression *pExpr, SvxCSS1PropertyInfo &rPropInfo, SvxBoxItemLine nWhichLine)
static void ParseCSS1_padding_top(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_padding_bottom(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
void(* FnParseCSS1Prop)(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
type of functions to parse CSS1 properties
static void ParseCSS1_float(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_background_color(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_border_left(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
CSS1PropertyEnum const aTextAlignTable[]
static void ParseCSS1_line_height(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_margin_right(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aTextTransformTable[]
static void ParseCSS1_margin_bottom(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aDirectionTable[]
static void ParseCSS1_font_style(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
CSS1PropertyEnum const aPageBreakTable[]
static void ParseCSS1_width(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_text_transform(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_border_top_width(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static bool CSS1PropEntryFindCompare(CSS1PropEntry const &lhs, OUString const &s)
CSS1PropertyEnum const aBGHoriPosTable[]
static void ParseCSS1_page_break_xxx(const CSS1Expression *pExpr, SvxCSS1PageBreak &rPBreak)
static void ParseCSS1_border_left_width(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
CSS1PropEntry const aCSS1PropFnTab[]
static void ParseCSS1_padding_right(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aFontVariantTable[]
static void ParseCSS1_text_indent(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aFontWeightTable[]
static void ParseCSS1_margin_left(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aNumberStyleTable[]
static void ParseCSS1_font_family(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &rParser)
static void ParseCSS1_margin(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_border_right_width(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_font_weight(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_page_break_after(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_border(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_position(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void MergeVert(SvxGraphicPosition &ePos, SvxGraphicPosition eVert)
static void ParseCSS1_size(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_column_count(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_height(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aFontStyleTable[]
static void ParseCSS1_length(const CSS1Expression *pExpr, tools::Long &rLength, SvxCSS1LengthType &rLengthType, bool bHori)
static void ParseCSS1_padding(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
CSS1PropertyEnum const aBGVertPosTable[]
static void ParseCSS1_font(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_page_break_inside(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
sal_uInt16 const aBorderWidths[]
CSS1PropertyEnum const aBGRepeatTable[]
static void ParseCSS1_text_decoration(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
CSS1PropertyEnum const aBulletStyleTable[]
static void ParseCSS1_list_style_type(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_color(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_border_bottom_width(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_border_color(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &)
static void ParseCSS1_border_xxx(const CSS1Expression *pExpr, SfxItemSet &, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &, SvxBoxItemLine nWhichLine, bool bAll)
static void ParseCSS1_border_bottom(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &rPropInfo, const SvxCSS1Parser &rParser)
static void ParseCSS1_direction(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
static void ParseCSS1_text_align(const CSS1Expression *pExpr, SfxItemSet &rItemSet, SvxCSS1PropertyInfo &, const SvxCSS1Parser &)
#define SVX_CSS1_BORDERINFO_STYLE
#define SVX_CSS1_BORDERINFO_COLOR
@ SVX_CSS1_STYPE_LANDSCAPE
@ SVX_CSS1_STYPE_PORTRAIT
@ SVX_CSS1_LTYPE_PERCENTAGE
#define SVX_CSS1_BORDERINFO_WIDTH
SVX_NUM_CHARS_LOWER_LETTER
SVX_NUM_CHARS_UPPER_LETTER