22 #include <com/sun/star/awt/FontDescriptor.hpp>
23 #include <com/sun/star/awt/FontFamily.hpp>
24 #include <com/sun/star/awt/FontPitch.hpp>
25 #include <com/sun/star/awt/FontSlant.hpp>
26 #include <com/sun/star/awt/FontStrikeout.hpp>
27 #include <com/sun/star/awt/FontType.hpp>
28 #include <com/sun/star/awt/FontWeight.hpp>
29 #include <com/sun/star/awt/FontUnderline.hpp>
30 #include <com/sun/star/awt/XDevice.hpp>
31 #include <com/sun/star/awt/XFont2.hpp>
32 #include <com/sun/star/container/XIndexAccess.hpp>
33 #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
34 #include <com/sun/star/style/XStyle.hpp>
35 #include <com/sun/star/text/WritingMode2.hpp>
36 #include <com/sun/star/table/BorderLineStyle.hpp>
37 #include <com/sun/star/table/CellVertJustify2.hpp>
38 #include <com/sun/star/table/CellJustifyMethod.hpp>
60 #include <rtl/tencinfo.h>
61 #include <rtl/ustrbuf.hxx>
63 #include <osl/diagnose.h>
70 #include <oox/token/namespaces.hxx>
71 #include <oox/token/properties.hxx>
72 #include <oox/token/tokens.hxx>
75 #include <document.hxx>
76 #include <stlpool.hxx>
81 #include <globstr.hrc>
85 #include <stlsheet.hxx>
103 const sal_Int32 OOX_COLOR_USEROFFSET = 0;
106 const sal_Int32 OOX_FONTFAMILY_NONE = 0;
107 const sal_Int32 OOX_FONTFAMILY_ROMAN = 1;
108 const sal_Int32 OOX_FONTFAMILY_SWISS = 2;
109 const sal_Int32 OOX_FONTFAMILY_MODERN = 3;
110 const sal_Int32 OOX_FONTFAMILY_SCRIPT = 4;
111 const sal_Int32 OOX_FONTFAMILY_DECORATIVE = 5;
114 const sal_Int32 OOX_XF_TEXTDIR_CONTEXT = 0;
115 const sal_Int32 OOX_XF_TEXTDIR_LTR = 1;
116 const sal_Int32 OOX_XF_TEXTDIR_RTL = 2;
119 const sal_Int32 OOX_XF_ROTATION_NONE = 0;
120 const sal_Int32 OOX_XF_ROTATION_STACKED = 255;
123 const sal_Int32 OOX_XF_INDENT_NONE = 0;
126 const sal_Int32 OOX_STYLE_NORMAL = 0;
127 const sal_Int32 OOX_STYLE_ROWLEVEL = 1;
128 const sal_Int32 OOX_STYLE_COLLEVEL = 2;
134 const sal_uInt8 BIFF12_COLOR_INDEXED = 1;
139 const sal_uInt8 BIFF12_BORDER_DIAG_TLBR = 0x01;
140 const sal_uInt8 BIFF12_BORDER_DIAG_BLTR = 0x02;
143 const sal_Int32 BIFF12_FILL_GRADIENT = 40;
146 const sal_uInt32 BIFF12_XF_WRAPTEXT = 0x00400000;
147 const sal_uInt32 BIFF12_XF_JUSTLASTLINE = 0x00800000;
148 const sal_uInt32 BIFF12_XF_SHRINK = 0x01000000;
149 const sal_uInt32 BIFF12_XF_LOCKED = 0x10000000;
150 const sal_uInt32 BIFF12_XF_HIDDEN = 0x20000000;
153 const sal_uInt16 BIFF12_XF_NUMFMT_USED = 0x0001;
154 const sal_uInt16 BIFF12_XF_FONT_USED = 0x0002;
155 const sal_uInt16 BIFF12_XF_ALIGN_USED = 0x0004;
156 const sal_uInt16 BIFF12_XF_BORDER_USED = 0x0008;
157 const sal_uInt16 BIFF12_XF_AREA_USED = 0x0010;
158 const sal_uInt16 BIFF12_XF_PROT_USED = 0x0020;
161 const sal_uInt16 BIFF12_DXF_FILL_PATTERN = 0;
162 const sal_uInt16 BIFF12_DXF_FILL_FGCOLOR = 1;
163 const sal_uInt16 BIFF12_DXF_FILL_BGCOLOR = 2;
164 const sal_uInt16 BIFF12_DXF_FILL_GRADIENT = 3;
165 const sal_uInt16 BIFF12_DXF_FILL_STOP = 4;
166 const sal_uInt16 BIFF12_DXF_FONT_COLOR = 5;
167 const sal_uInt16 BIFF12_DXF_BORDER_TOP = 6;
168 const sal_uInt16 BIFF12_DXF_BORDER_BOTTOM = 7;
169 const sal_uInt16 BIFF12_DXF_BORDER_LEFT = 8;
170 const sal_uInt16 BIFF12_DXF_BORDER_RIGHT = 9;
171 const sal_uInt16 BIFF12_DXF_FONT_NAME = 24;
172 const sal_uInt16 BIFF12_DXF_FONT_WEIGHT = 25;
173 const sal_uInt16 BIFF12_DXF_FONT_UNDERLINE = 26;
174 const sal_uInt16 BIFF12_DXF_FONT_ESCAPEMENT = 27;
175 const sal_uInt16 BIFF12_DXF_FONT_ITALIC = 28;
176 const sal_uInt16 BIFF12_DXF_FONT_STRIKE = 29;
177 const sal_uInt16 BIFF12_DXF_FONT_OUTLINE = 30;
178 const sal_uInt16 BIFF12_DXF_FONT_SHADOW = 31;
179 const sal_uInt16 BIFF12_DXF_FONT_HEIGHT = 36;
180 const sal_uInt16 BIFF12_DXF_FONT_SCHEME = 37;
181 const sal_uInt16 BIFF12_DXF_NUMFMT_CODE = 38;
182 const sal_uInt16 BIFF12_DXF_NUMFMT_ID = 41;
185 const sal_uInt16 BIFF12_CELLSTYLE_BUILTIN = 0x0001;
186 const sal_uInt16 BIFF12_CELLSTYLE_HIDDEN = 0x0002;
187 const sal_uInt16 BIFF12_CELLSTYLE_CUSTOM = 0x0004;
192 const sal_uInt16 BIFF_FONTFLAG_ITALIC = 0x0002;
193 const sal_uInt16 BIFF_FONTFLAG_STRIKEOUT = 0x0008;
194 const sal_uInt16 BIFF_FONTFLAG_OUTLINE = 0x0010;
195 const sal_uInt16 BIFF_FONTFLAG_SHADOW = 0x0020;
198 const sal_uInt16 BIFF_FONTWEIGHT_BOLD = 450;
201 const sal_uInt8 BIFF_FONTUNDERL_NONE = 0;
202 const sal_uInt8 BIFF_FONTUNDERL_SINGLE = 1;
203 const sal_uInt8 BIFF_FONTUNDERL_DOUBLE = 2;
204 const sal_uInt8 BIFF_FONTUNDERL_SINGLE_ACC = 33;
205 const sal_uInt8 BIFF_FONTUNDERL_DOUBLE_ACC = 34;
207 ::Color lclReadRgbColor( BinaryInputStream& rStrm )
210 nR = rStrm.readuChar();
211 nG = rStrm.readuChar();
212 nB = rStrm.readuChar();
213 nA = rStrm.readuChar();
221 return ::Color(ColorTransparency, nValue);
251 setSrgbClr( sal_uInt32(nRgbValue) & 0xFFFFFF );
258 static const sal_Int32 spnColorTokens[] = {
259 XML_lt1, XML_dk1, XML_lt2, XML_dk2, XML_accent1, XML_accent2,
260 XML_accent3, XML_accent4, XML_accent5, XML_accent6, XML_hlink, XML_folHlink };
282 else if( rAttribs.
getBool( XML_auto,
false ) )
286 OSL_FAIL(
"Color::importColor - unknown color type" );
300 double fTint = nTint;
306 switch( extractValue< sal_uInt8 >( nFlags, 1, 7 ) )
308 case BIFF12_COLOR_AUTO:
312 case BIFF12_COLOR_INDEXED:
316 case BIFF12_COLOR_RGB:
317 setRgb( lclReadRgbColor( rStrm ), fTint );
319 case BIFF12_COLOR_THEME:
324 OSL_FAIL(
"Color::importColor - unknown color type" );
344 #define PALETTE_EGA_COLORS_LIGHT \
345 ::Color(0x000000), ::Color(0xFFFFFF), ::Color(0xFF0000), ::Color(0x00FF00), ::Color(0x0000FF), ::Color(0xFFFF00), ::Color(0xFF00FF), ::Color(0x00FFFF)
347 #define PALETTE_EGA_COLORS_DARK \
348 ::Color(0x800000), ::Color(0x008000), ::Color(0x000080), ::Color(0x808000), ::Color(0x800080), ::Color(0x008080), ::Color(0xC0C0C0), ::Color(0x808080)
351 const ::Color spnDefColors8[] =
363 #undef PALETTE_EGA_COLORS_LIGHT
364 #undef PALETTE_EGA_COLORS_DARK
384 ::Color nRgb = lclReadRgbColor( rStrm );
393 nColor = *pnPaletteColor;
395 else switch( nPaletteIdx )
408 default: OSL_FAIL(
"ColorPalette::getColor - unknown color index" );
424 void lclSetFontName(
ApiScriptFontName& rFontName,
const FontDescriptor& rFontDesc,
bool bHasGlyphs )
428 rFontName.
maName = rFontDesc.Name;
429 rFontName.
mnFamily = rFontDesc.Family;
435 rFontName = ApiScriptFontName();
443 mnFamily( OOX_FONTFAMILY_NONE ),
447 mnEscapement( XML_baseline ),
450 mbStrikeout(
false ),
458 static const sal_Int32 spnSchemes[] = {
XML_none, XML_major, XML_minor };
469 mbBold = nWeight >= BIFF_FONTWEIGHT_BOLD;
477 case BIFF_FONTUNDERL_SINGLE:
mnUnderline = XML_single;
break;
478 case BIFF_FONTUNDERL_DOUBLE:
mnUnderline = XML_double;
break;
479 case BIFF_FONTUNDERL_SINGLE_ACC:
mnUnderline = XML_singleAccounting;
break;
480 case BIFF_FONTUNDERL_DOUBLE_ACC:
mnUnderline = XML_doubleAccounting;
break;
487 static const sal_Int32 spnEscapes[] = { XML_baseline, XML_superscript, XML_subscript };
492 mbNameUsed( bAllUsed ),
493 mbColorUsed( bAllUsed ),
494 mbSchemeUsed( bAllUsed ),
495 mbHeightUsed( bAllUsed ),
496 mbUnderlineUsed( bAllUsed ),
497 mbEscapementUsed( bAllUsed ),
498 mbWeightUsed( bAllUsed ),
499 mbPostureUsed( bAllUsed ),
500 mbStrikeoutUsed( bAllUsed ),
501 mbOutlineUsed( bAllUsed ),
502 mbShadowUsed( bAllUsed )
508 mnTextEnc( RTL_TEXTENCODING_DONTKNOW )
519 RTL_TEXTENCODING_DONTKNOW,
541 maModel( rHelper.getTheme().getDefaultFontModel() ),
542 maUsedFlags( !bDxf ),
560 case XLS_TOKEN(
name ):
561 case XLS_TOKEN( rFont ):
568 case XLS_TOKEN( scheme ):
571 case XLS_TOKEN( family ):
574 case XLS_TOKEN( charset ):
577 case XLS_TOKEN( sz ):
581 case XLS_TOKEN(
color ):
589 case XLS_TOKEN( vertAlign ):
601 case XLS_TOKEN( strike ):
605 case XLS_TOKEN( outline ):
609 case XLS_TOKEN( shadow ):
618 SAL_WARN_IF(
mbDxf,
"sc",
"Font::importFont - unexpected conditional formatting flag" );
620 sal_uInt16 nHeight, nFlags, nWeight, nEscapement;
621 sal_uInt8 nUnderline, nFamily, nCharSet, nScheme;
651 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfName - missing conditional formatting flag" );
658 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfColor - missing conditional formatting flag" );
665 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfScheme - missing conditional formatting flag" );
672 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfHeight - missing conditional formatting flag" );
679 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfWeight - missing conditional formatting flag" );
686 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfUnderline - missing conditional formatting flag" );
693 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfEscapement - missing conditional formatting flag" );
700 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfFlag - missing conditional formatting flag" );
721 OSL_FAIL(
"Font::importDxfFlag - unexpected element identifier" );
733 case OOX_FONTFAMILY_NONE:
maApiData.
maDesc.Family = css::awt::FontFamily::DONTKNOW;
break;
734 case OOX_FONTFAMILY_ROMAN:
maApiData.
maDesc.Family = css::awt::FontFamily::ROMAN;
break;
735 case OOX_FONTFAMILY_SWISS:
maApiData.
maDesc.Family = css::awt::FontFamily::SWISS;
break;
736 case OOX_FONTFAMILY_MODERN:
maApiData.
maDesc.Family = css::awt::FontFamily::MODERN;
break;
737 case OOX_FONTFAMILY_SCRIPT:
maApiData.
maDesc.Family = css::awt::FontFamily::SCRIPT;
break;
738 case OOX_FONTFAMILY_DECORATIVE:
maApiData.
maDesc.Family = css::awt::FontFamily::DECORATIVE;
break;
744 rtl_getTextEncodingFromWindowsCharset( static_cast< sal_uInt8 >(
maModel.
mnCharSet ) ) );
758 case XML_double:
maApiData.
maDesc.Underline = css::awt::FontUnderline::DOUBLE;
break;
759 case XML_doubleAccounting:
maApiData.
maDesc.Underline = css::awt::FontUnderline::DOUBLE;
break;
761 case XML_single:
maApiData.
maDesc.Underline = css::awt::FontUnderline::SINGLE;
break;
762 case XML_singleAccounting:
maApiData.
maDesc.Underline = css::awt::FontUnderline::SINGLE;
break;
772 case XML_superscript:
787 Reference< XDevice > xDevice( aDocProps.
getAnyProperty( PROP_ReferenceDevice ), UNO_QUERY );
791 Reference< XFont2 > xFont( xDevice->getFont(
maApiData.
maDesc ), UNO_QUERY );
797 xFont->hasGlyphs( OUString(
u'\x3041' ) ) ||
798 xFont->hasGlyphs( OUString(
u'\x30A1' ) ) ||
799 xFont->hasGlyphs( OUString(
u'\x3111' ) ) ||
800 xFont->hasGlyphs( OUString(
u'\x3131' ) ) ||
801 xFont->hasGlyphs( OUString(
u'\x3301' ) ) ||
802 xFont->hasGlyphs( OUString(
u'\x3401' ) ) ||
803 xFont->hasGlyphs( OUString(
u'\x4E01' ) ) ||
804 xFont->hasGlyphs( OUString(
u'\x7E01' ) ) ||
805 xFont->hasGlyphs( OUString(
u'\xA001' ) ) ||
806 xFont->hasGlyphs( OUString(
u'\xAC01' ) ) ||
807 xFont->hasGlyphs( OUString(
u'\xCC01' ) ) ||
808 xFont->hasGlyphs( OUString(
u'\xF901' ) ) ||
809 xFont->hasGlyphs( OUString(
u'\xFF71' ) );
812 xFont->hasGlyphs( OUString(
u'\x05D1' ) ) ||
813 xFont->hasGlyphs( OUString(
u'\x0631' ) ) ||
814 xFont->hasGlyphs( OUString(
u'\x0721' ) ) ||
815 xFont->hasGlyphs( OUString(
u'\x0911' ) ) ||
816 xFont->hasGlyphs( OUString(
u'\x0E01' ) ) ||
817 xFont->hasGlyphs( OUString(
u'\xFB21' ) ) ||
818 xFont->hasGlyphs( OUString(
u'\xFB51' ) ) ||
819 xFont->hasGlyphs( OUString(
u'\xFE71' ) );
822 (!bHasAsian && !bHasCmplx) ||
823 xFont->hasGlyphs( OUString(
'A' ) );
840 case css::awt::FontFamily::DONTKNOW:
843 case css::awt::FontFamily::ROMAN:
846 case css::awt::FontFamily::SWISS:
849 case css::awt::FontFamily::MODERN:
852 case css::awt::FontFamily::SCRIPT:
855 case css::awt::FontFamily::DECORATIVE:
870 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
881 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
891 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
938 else if (
maApiData.
maDesc.Underline == css::awt::FontUnderline::SINGLE )
967 eScEscapem = SvxEscapement::Superscript;
969 eScEscapem = SvxEscapement::Subscript;
970 if( bEditEngineText )
1004 float fHeight =
static_cast< float >(
maApiData.
maDesc.Height / 20.0 );
1006 rPropMap.
setProperty( PROP_CharHeightAsian, fHeight);
1007 rPropMap.
setProperty( PROP_CharHeightComplex, fHeight);
1014 rPropMap.
setProperty( PROP_CharWeightAsian, fWeight);
1015 rPropMap.
setProperty( PROP_CharWeightComplex, fWeight);
1055 mnHorAlign( XML_general ),
1056 mnVerAlign( XML_bottom ),
1057 mnTextDir( OOX_XF_TEXTDIR_CONTEXT ),
1058 mnRotation( OOX_XF_ROTATION_NONE ),
1059 mnIndent( OOX_XF_INDENT_NONE ),
1060 mbWrapText(
false ),
1062 mbJustLastLine(
false )
1068 static const sal_Int32 spnHorAligns[] = {
1069 XML_general, XML_left, XML_center, XML_right,
1070 XML_fill, XML_justify, XML_centerContinuous, XML_distributed };
1076 static const sal_Int32 spnVerAligns[] = {
1077 XML_top, XML_center, XML_bottom, XML_justify, XML_distributed };
1082 meHorJustify(
css::
table::CellHoriJustify_STANDARD ),
1083 mnHorJustifyMethod(
css::
table::CellJustifyMethod::
AUTO ),
1085 mnVerJustifyMethod(
css::
table::CellJustifyMethod::
AUTO ),
1086 meOrientation(
css::
table::CellOrientation_STANDARD ),
1090 mbWrapText(
false ),
1120 sal_Int32 nDefaultHorAlign = XML_general;
1125 nDefaultHorAlign = XML_left;
1129 nDefaultHorAlign = XML_right;
1202 (((91 <= nOoxRot) && (nOoxRot <= 180)) ? (100 * (450 - nOoxRot)) : 0));
1206 css::table::CellOrientation_STACKED : css::table::CellOrientation_STANDARD;
1219 case css::table::CellVertJustify2::BOTTOM:
1220 nVert = ::SvxCellVerJustify::Bottom;
1222 case css::table::CellVertJustify2::CENTER:
1223 nVert = ::SvxCellVerJustify::Center;
1225 case css::table::CellVertJustify2::TOP:
1226 nVert = ::SvxCellVerJustify::Top;
1228 case css::table::CellVertJustify2::BLOCK:
1229 nVert = ::SvxCellVerJustify::Block;
1231 case css::table::CellVertJustify2::STANDARD:
1233 nVert = ::SvxCellVerJustify::Standard;
1244 case css::table::CellHoriJustify_LEFT:
1245 nHori = ::SvxCellHorJustify::Left;
1247 case css::table::CellHoriJustify_CENTER:
1248 nHori = ::SvxCellHorJustify::Center;
1250 case css::table::CellHoriJustify_RIGHT:
1251 nHori = ::SvxCellHorJustify::Right;
1253 case css::table::CellHoriJustify_BLOCK:
1254 nHori = ::SvxCellHorJustify::Block;
1256 case css::table::CellHoriJustify_REPEAT:
1257 nHori = ::SvxCellHorJustify::Repeat;
1259 case css::table::CellHoriJustify_STANDARD:
1261 nHori = ::SvxCellHorJustify::Standard;
1272 case css::text::WritingMode2::PAGE:
1273 eFrameDir = SvxFrameDirection::Environment;
1275 case css::text::WritingMode2::LR_TB:
1276 eFrameDir = SvxFrameDirection::Horizontal_LR_TB;
1278 case css::text::WritingMode2::RL_TB:
1279 eFrameDir = SvxFrameDirection::Horizontal_RL_TB;
1282 OSL_FAIL(
"GetScFrameDir - unknown CTL text direction" );
1359 bool lcl_isBorder(
const css::table::BorderLine& rBorder)
1361 return (rBorder.InnerLineWidth > 0) || (rBorder.OuterLineWidth > 0);
1375 static const sal_Int32 spnStyleIds[] = {
1376 XML_none, XML_thin, XML_medium, XML_dashed,
1377 XML_dotted, XML_thick, XML_double, XML_hair,
1378 XML_mediumDashed, XML_dashDot, XML_mediumDashDot, XML_dashDotDot,
1379 XML_mediumDashDotDot, XML_slantDashDot };
1389 mbDiagTLtoBR(
false ),
1390 mbDiagBLtoTR(
false )
1395 mbBorderUsed(
false ),
1403 ( lcl_isBorder(
maTop ) &&
maTop.OuterLineWidth > 0 ) ||
1405 ( lcl_isBorder(
maLeft ) &&
maLeft.OuterLineWidth > 0 ) ||
1411 void lclSetBorderLineWidth( BorderLine& rBorderLine,
1414 rBorderLine.OuterLineWidth = nOuter;
1415 rBorderLine.LineDistance = nDist;
1416 rBorderLine.InnerLineWidth = nInner;
1439 pBorderLine->mbUsed =
true;
1446 pBorderLine->maColor.importColor( rAttribs );
1468 SAL_WARN_IF( !
mbDxf,
"sc",
"Border::importDxfBorder - missing conditional formatting flag" );
1472 rStrm >> pBorderLine->maColor;
1474 pBorderLine->setBiffStyle( nStyle );
1475 pBorderLine->mbUsed =
true;
1510 aBoxItem.
SetLine( &aLine, SvxBoxItemLine::LEFT );
1514 aBoxItem.
SetLine( &aLine, SvxBoxItemLine::RIGHT );
1518 aBoxItem.
SetLine( &aLine, SvxBoxItemLine::TOP );
1522 aBoxItem.
SetLine( &aLine, SvxBoxItemLine::BOTTOM );
1568 rBorderLine.LineStyle = BorderLineStyle::DASH_DOT;
1570 case XML_dashDotDot:
1572 rBorderLine.LineStyle = BorderLineStyle::DASH_DOT_DOT;
1576 rBorderLine.LineStyle = BorderLineStyle::FINE_DASHED;
1580 rBorderLine.LineStyle = BorderLineStyle::DOTTED;
1583 lclSetBorderLineWidth( rBorderLine, 10, 15, 10 );
1584 rBorderLine.LineStyle = BorderLineStyle::DOUBLE_THIN;
1586 case XML_hair: lclSetBorderLineWidth( rBorderLine,
API_LINE_HAIR );
break;
1587 case XML_medium: lclSetBorderLineWidth( rBorderLine,
API_LINE_MEDIUM );
break;
1588 case XML_mediumDashDot:
1590 rBorderLine.LineStyle = BorderLineStyle::DASH_DOT;
1592 case XML_mediumDashDotDot:
1594 rBorderLine.LineStyle = BorderLineStyle::DASH_DOT_DOT;
1596 case XML_mediumDashed:
1598 rBorderLine.LineStyle = BorderLineStyle::DASHED;
1601 case XML_slantDashDot:
1603 rBorderLine.LineStyle = BorderLineStyle::FINE_DASHED;
1605 case XML_thick: lclSetBorderLineWidth( rBorderLine,
API_LINE_THICK );
break;
1606 case XML_thin: lclSetBorderLineWidth( rBorderLine,
API_LINE_THIN );
break;
1607 default: lclSetBorderLineWidth( rBorderLine,
API_LINE_NONE );
break;
1614 mbPattColorUsed( !bDxf ),
1615 mbFillColorUsed( !bDxf ),
1616 mbPatternUsed( !bDxf )
1624 static const sal_Int32 spnPatternIds[] = {
1625 XML_none, XML_solid, XML_mediumGray, XML_darkGray,
1626 XML_lightGray, XML_darkHorizontal, XML_darkVertical, XML_darkDown,
1627 XML_darkUp, XML_darkGrid, XML_darkTrellis, XML_lightHorizontal,
1628 XML_lightVertical, XML_lightDown, XML_lightUp, XML_lightGrid,
1629 XML_lightTrellis, XML_gray125, XML_gray0625 };
1652 static const sal_Int32 spnTypes[] = { XML_linear, XML_path };
1671 if( !rStrm.
isEof() && (fPosition >= 0.0) )
1677 mbTransparent( true ),
1684 sal_Int32 lclGetMixedColorComp( sal_Int32 nPatt, sal_Int32 nFill, sal_Int32 nAlpha )
1686 return ((nPatt - nFill) * nAlpha) / 0x80 + nFill;
1689 ::Color lclGetMixedColor( ::
Color nPattColor, ::
Color nFillColor, sal_Int32 nAlpha )
1692 lclGetMixedColorComp( nPattColor.
GetRed(), nFillColor.
GetRed(), nAlpha ),
1693 lclGetMixedColorComp( nPattColor.
GetGreen(), nFillColor.
GetGreen(), nAlpha ),
1694 lclGetMixedColorComp( nPattColor.
GetBlue(), nFillColor.
GetBlue(), nAlpha ) );
1715 OSL_ENSURE(
mxPatternModel,
"Fill::importFgColor - missing pattern data" );
1725 OSL_ENSURE(
mxPatternModel,
"Fill::importBgColor - missing pattern data" );
1746 OSL_ENSURE(
mxGradientModel,
"Fill::importColor - missing gradient data" );
1753 SAL_WARN_IF(
mbDxf,
"sc",
"Fill::importFill - unexpected conditional formatting flag" );
1755 if( nPattern == BIFF12_FILL_GRADIENT )
1758 sal_Int32 nStopCount;
1762 for( sal_Int32 nStop = 0; (nStop < nStopCount) && !rStrm.
isEof(); ++nStop )
1775 SAL_WARN_IF( !
mbDxf,
"sc",
"Fill::importDxfPattern - missing conditional formatting flag" );
1784 SAL_WARN_IF( !
mbDxf,
"sc",
"Fill::importDxfFgColor - missing conditional formatting flag" );
1793 SAL_WARN_IF( !
mbDxf,
"sc",
"Fill::importDxfBgColor - missing conditional formatting flag" );
1802 SAL_WARN_IF( !
mbDxf,
"sc",
"Fill::importDxfGradient - missing conditional formatting flag" );
1810 SAL_WARN_IF( !
mbDxf,
"sc",
"Fill::importDxfStop - missing conditional formatting flag" );
1850 sal_Int32 nAlpha = 0x80;
1853 case XML_darkDown: nAlpha = 0x40;
break;
1854 case XML_darkGray: nAlpha = 0x60;
break;
1855 case XML_darkGrid: nAlpha = 0x40;
break;
1856 case XML_darkHorizontal: nAlpha = 0x40;
break;
1857 case XML_darkTrellis: nAlpha = 0x60;
break;
1858 case XML_darkUp: nAlpha = 0x40;
break;
1859 case XML_darkVertical: nAlpha = 0x40;
break;
1860 case XML_gray0625: nAlpha = 0x08;
break;
1861 case XML_gray125: nAlpha = 0x10;
break;
1862 case XML_lightDown: nAlpha = 0x20;
break;
1863 case XML_lightGray: nAlpha = 0x20;
break;
1864 case XML_lightGrid: nAlpha = 0x38;
break;
1865 case XML_lightHorizontal: nAlpha = 0x20;
break;
1866 case XML_lightTrellis: nAlpha = 0x30;
break;
1867 case XML_lightUp: nAlpha = 0x20;
break;
1868 case XML_lightVertical: nAlpha = 0x20;
break;
1869 case XML_mediumGray: nAlpha = 0x40;
break;
1870 case XML_solid: nAlpha = 0x80;
break;
1892 GradientFillModel::ColorMap::const_iterator aIt = rModel.
maColors.begin();
1893 OSL_ENSURE( !aIt->second.isAuto(),
"Fill::finalizeImport - automatic gradient color" );
1895 if( ++aIt != rModel.
maColors.end() )
1897 OSL_ENSURE( !aIt->second.isAuto(),
"Fill::finalizeImport - automatic gradient color" );
1929 mbFontUsed(
false ),
1930 mbNumFmtUsed(
false ),
1931 mbAlignUsed(
false ),
1932 mbProtUsed(
false ),
1933 mbBorderUsed(
false ),
1939 mbLatinNumFmtOnly(true),
1940 mpDefPattern(pDefPattern)
2054 ScResId(STR_STYLENAME_STANDARD), SfxStyleFamily::Para));
2061 if ( nNumFmtId >= 0 )
2075 bool bHasGap =
false;
2076 if (rAttrs.
maAttrs.empty() && nRow1 > 0)
2080 if (!rAttrs.
maAttrs.empty() && rAttrs.
maAttrs.back().nEndRow + 1 < nRow1)
2089 rAttrs.
maAttrs.push_back(aEntry);
2099 rAttrs.
maAttrs.push_back(aEntry);
2131 const ::ScPatternAttr&
2150 OSL_ENSURE(
mpStyleSheet,
"Xf::createPattern - no parentStyle created" );
2211 if( (pAlignment->getApiData().mnRotation) && pBorder->getApiData().hasAnyOuterBorder() )
2230 if( bAlwaysNew || !
mxFont )
2231 mxFont = std::make_shared<Font>( *
this, true );
2238 mxBorder = std::make_shared<Border>( *
this, true );
2244 if( bAlwaysNew || !
mxFill )
2245 mxFill = std::make_shared<Fill>( *
this, true );
2257 OUString aFmtCode = rAttribs.
getXString( XML_formatCode, OUString() );
2263 sal_Int32 nNumFmtId = -1;
2265 sal_uInt16 nRecCount;
2268 for( sal_uInt16 nRec = 0; !rStrm.
isEof() && (nRec < nRecCount); ++nRec )
2270 sal_uInt16 nSubRecId, nSubRecSize;
2271 sal_Int64 nRecEnd = rStrm.
tell();
2274 nRecEnd += nSubRecSize;
2277 case BIFF12_DXF_FILL_PATTERN:
createFill(
false )->importDxfPattern( rStrm );
break;
2278 case BIFF12_DXF_FILL_FGCOLOR:
createFill(
false )->importDxfFgColor( rStrm );
break;
2279 case BIFF12_DXF_FILL_BGCOLOR:
createFill(
false )->importDxfBgColor( rStrm );
break;
2280 case BIFF12_DXF_FILL_GRADIENT:
createFill(
false )->importDxfGradient( rStrm );
break;
2281 case BIFF12_DXF_FILL_STOP:
createFill(
false )->importDxfStop( rStrm );
break;
2282 case BIFF12_DXF_FONT_COLOR:
createFont(
false )->importDxfColor( rStrm );
break;
2283 case BIFF12_DXF_BORDER_TOP:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
top ), rStrm );
break;
2284 case BIFF12_DXF_BORDER_BOTTOM:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
bottom ), rStrm );
break;
2285 case BIFF12_DXF_BORDER_LEFT:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
left ), rStrm );
break;
2286 case BIFF12_DXF_BORDER_RIGHT:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
right ), rStrm );
break;
2287 case BIFF12_DXF_FONT_NAME:
createFont(
false )->importDxfName( rStrm );
break;
2288 case BIFF12_DXF_FONT_WEIGHT:
createFont(
false )->importDxfWeight( rStrm );
break;
2289 case BIFF12_DXF_FONT_UNDERLINE:
createFont(
false )->importDxfUnderline( rStrm );
break;
2290 case BIFF12_DXF_FONT_ESCAPEMENT:
createFont(
false )->importDxfEscapement( rStrm );
break;
2291 case BIFF12_DXF_FONT_ITALIC:
createFont(
false )->importDxfFlag( XML_i, rStrm );
break;
2292 case BIFF12_DXF_FONT_STRIKE:
createFont(
false )->importDxfFlag( XML_strike, rStrm );
break;
2293 case BIFF12_DXF_FONT_OUTLINE:
createFont(
false )->importDxfFlag( XML_outline, rStrm );
break;
2294 case BIFF12_DXF_FONT_SHADOW:
createFont(
false )->importDxfFlag( XML_shadow, rStrm );
break;
2295 case BIFF12_DXF_FONT_HEIGHT:
createFont(
false )->importDxfHeight( rStrm );
break;
2296 case BIFF12_DXF_FONT_SCHEME:
createFont(
false )->importDxfScheme( rStrm );
break;
2298 case BIFF12_DXF_NUMFMT_ID: nNumFmtId = rStrm.
readuInt16();
break;
2300 rStrm.
seek( nRecEnd );
2302 OSL_ENSURE( !rStrm.
isEof() && (rStrm.
getRemaining() == 0),
"Dxf::importDxf - unexpected remaining data" );
2309 mxFont->finalizeImport();
2317 if (
mxAlignment->getModel().mnTextDir == OOX_XF_TEXTDIR_RTL )
2327 mxFill->finalizeImport();
2333 mxFont->fillToItemSet(rSet,
false);
2343 mxFill->fillToItemSet(rSet);
2348 const char*
const sppcStyleNames[] =
2359 "Followed Hyperlink",
2405 const sal_Int32 snStyleNamesCount =
static_cast< sal_Int32
>(
SAL_N_ELEMENTS( sppcStyleNames ) );
2407 OUString lclGetBuiltinStyleName( sal_Int32 nBuiltinId, std::u16string_view rName, sal_Int32 nLevel = 0 )
2409 OSL_ENSURE( (0 <= nBuiltinId) && (nBuiltinId < snStyleNamesCount),
"lclGetBuiltinStyleName - unknown built-in style" );
2410 OUStringBuffer aStyleName(
"Excel Built-in ");
2411 if( (0 <= nBuiltinId) && (nBuiltinId < snStyleNamesCount) && (sppcStyleNames[ nBuiltinId ] !=
nullptr) )
2412 aStyleName.appendAscii( sppcStyleNames[ nBuiltinId ] );
2413 else if( !rName.empty() )
2414 aStyleName.append( rName );
2416 aStyleName.append( nBuiltinId );
2417 if( (nBuiltinId == OOX_STYLE_ROWLEVEL) || (nBuiltinId == OOX_STYLE_COLLEVEL) )
2418 aStyleName.append( nLevel );
2419 return aStyleName.makeStringAndClear();
2422 OUString lclCreateStyleName(
const CellStyleModel& rModel )
2424 return rModel.mbBuiltin ? lclGetBuiltinStyleName( rModel.mnBuiltinId, rModel.maName, rModel.mnLevel ) : rModel.
maName;
2452 mpStyleSheet( nullptr )
2495 bool bCreatePattern =
false;
2503 ScResId( STR_STYLENAME_STANDARD ), SfxStyleFamily::Para ) );
2504 OSL_ENSURE(
mpStyleSheet,
"CellStyle::createStyle - Default style not found" );
2505 bCreatePattern =
true;
2513 bCreatePattern =
true;
2536 CellStyleRef xCellStyle = std::make_shared<CellStyle>( *this );
2537 xCellStyle->importCellStyle( rAttribs );
2544 CellStyleRef xCellStyle = std::make_shared<CellStyle>( *this );
2545 xCellStyle->importCellStyle( rStrm );
2554 CellStyleNameMap aCellStyles;
2566 Reference< XStyle > xStyle( xStyleFamilyIA->getByIndex(
nIndex ), UNO_QUERY_THROW );
2567 if( !xStyle->isUserDefined() )
2570 aCellStyles[ xStyle->getName() ];
2586 OUString aStyleName = lclCreateStyleName( rModel );
2590 aCellStyles[ aStyleName ] = rxStyle;
2598 OUString aStyleName = lclCreateStyleName( rModel );
2600 if( aStyleName.getLength() > 0 )
2602 if( aCellStyles.find( aStyleName ) != aCellStyles.end() )
2603 aConflictNameStyles.push_back( rxStyle );
2605 aCellStyles[ aStyleName ] = rxStyle;
2612 for(
const auto& rxStyle : aConflictNameStyles )
2615 OUString aStyleName = lclCreateStyleName( rModel );
2616 OUString aUnusedName;
2619 aUnusedName = aStyleName + OUStringChar(
' ') + OUString::number( ++nIndex );
2621 while( !aCellStyles.try_emplace( aUnusedName, rxStyle ).second );
2660 OSL_ENSURE(
maStylesByXf.count( rModel.
mnXfId ) == 0,
"CellStyleBuffer::insertCellStyle - multiple styles with equal XF identifier" );
2672 pStyleSheet = rxCellStyle->getStyleSheet();
2680 rxCellStyle->createCellStyle();
2681 const OUString& rStyleName = rxCellStyle->getFinalStyleName();
2682 if( !rStyleName.isEmpty() )
2686 return lclGetBuiltinStyleName( OOX_STYLE_NORMAL,
u"" );
2690 mnAutoFormatId( 0 ),
2691 mbApplyNumFmt(
false ),
2692 mbApplyFont(
false ),
2693 mbApplyAlignment(
false ),
2694 mbApplyBorder(
false ),
2695 mbApplyFill(
false ),
2696 mbApplyProtection(
false )
2702 maPalette( rHelper ),
2703 maNumFmts( rHelper ),
2710 FontRef xFont = std::make_shared<Font>( *
this,
false );
2734 FillRef xFill = std::make_shared<Fill>( *
this,
false );
2741 XfRef xXf = std::make_shared<Xf>( *this );
2748 XfRef xXf = std::make_shared<Xf>( *this );
2755 DxfRef xDxf = std::make_shared<Dxf>( *this );
2756 maDxfs.push_back( xDxf );
2762 DxfRef xDxf = std::make_shared<Dxf>( *this );
2848 xFont = pXf->getFont();
2856 xDefFont = pXf->getFont();
2860 OSL_ENSURE( xDefFont,
"StylesBuffer::getDefaultFont - no default font found" );
2873 return nBorderId1 == nBorderId2;
2879 return nFillId1 == nFillId2;
2900 if (!rStyleName.isEmpty())
2908 rStyleName =
"ConditionalStyle_" + OUString::number(nDxfId + 1);
2919 pDxf->fillToItemSet(rStyleItemSet);
2924 if (rStyleName.isEmpty())
2932 OUString rStyleName;
2936 rStyleName =
"ExtConditionalStyle_" + OUString::number(nDxfId + 1);
2947 pDxf->fillToItemSet(rStyleItemSet);
2951 if (rStyleName.isEmpty())
2960 pFont->fillToItemSet( rItemSet,
false, bSkipPoolDefs );
2971 pBorder->fillToItemSet( rItemSet, bSkipPoolDefs );
2977 pFill->fillToItemSet( rItemSet, bSkipPoolDefs );
Helper class to provide access to global workbook data.
::SvxFrameDirection GetScFrameDir() const
bool mbProtUsed
True = alignment used.
BorderRef const & createBorder(bool bAlwaysNew=true)
Creates a new empty border object.
void setAuto()
Sets the color to automatic.
double mfHeight
Windows font character set.
Contains all API cell alignment attributes.
constexpr TypedWhichId< SvxWeightItem > ATTR_CTL_FONT_WEIGHT(118)
sal_uInt32 mnScNumFmt
Calc item set.
PatternModelRef mxPatternModel
bool mbShrink
True = multi-line text.
bool mbAreaUsed
True = border data used.
::Color getPaletteColor(sal_Int32 nIndex) const
Returns the palette color with the specified index.
void importColor(sal_Int32 nElement, const AttributeList &rAttribs)
Sets color attributes for the border line with the passed element identifier.
bool mbColorUsed
True = font name/family/char set are used.
CellStyleRef importCellStyle(const AttributeList &rAttribs)
Appends and returns a new named cell style object.
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CJK(EE_CHAR_START+17)
const ::Color API_RGB_BLACK(0x000000)
const sal_Int32 OOX_COLOR_NOTETEXT
Note background color.
SC_DLLPUBLIC void ApplyStyleAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScStyleSheet &rStyle)
Contains all XML font attributes, e.g.
double scaleValue(double fValue, Unit eFromUnit, Unit eToUnit) const
Converts the passed value between the passed units.
const sal_Int16 API_LINE_THIN
bool mbHeightUsed
True = font scheme is used.
const sal_Int32 OOX_COLOR_WINDOWBACK
System window text color (BIFF5+).
ApiBorderLine maTLtoBR
Bottom line format.
FillRef createFill()
Creates a new empty fill object.
ScDocumentImport & getDocImport()
::Color getColor(sal_Int32 nPaletteIdx) const
Returns the RGB value of the color with the passed index.
void setBiffEscapement(sal_uInt16 nEscapement)
const sal_Int32 OOX_COLOR_WINDOWBACK3
System window text color (BIFF3-BIFF4).
sal_Int32 getDefaultXfId() const
Returns the XF identifier associated to the default cell style.
GradientFillModel()
Gradient colors.
Protection(const WorkbookHelper &rHelper)
OUString ScResId(TranslateId aId)
std::shared_ptr< Fill > FillRef
::Color mnColor
Font descriptor (height in twips, weight in %).
void finalizeImport()
Final processing after import of all style settings.
OptValue< bool > getBool(sal_Int32 nAttrToken) const
constexpr TypedWhichId< SvxBoxItem > ATTR_BORDER(150)
void fillToItemSet(SfxItemSet &rItemSet, bool bSkipPoolDefs=false) const
Font(const WorkbookHelper &rHelper, bool bDxf)
sal_Int32 nextFreeNumFmtId()
ApiBorderLine maTop
Right line format.
static const VectorType::value_type * getVectorElement(const VectorType &rVector, sal_Int32 nIndex)
bool mbHidden
True = locked against editing.
void writeFontToItemSet(SfxItemSet &rItemSet, sal_Int32 nFontId, bool bSkipPoolDefs) const
double mfLeft
Rotation angle for type linear.
CellStyle(const WorkbookHelper &rHelper)
double mfTop
Right convergence for type path.
DxfVector maExtDxfs
List of differential cell styles.
CellStyleXfIdMap maStylesByXf
All user defined cell styles.
void importDxfHeight(SequenceInputStream &rStrm)
Imports the font height from a DXF record.
void importDxfEscapement(SequenceInputStream &rStrm)
Imports the font escapement style from a DXF record.
UnitConverter & getUnitConverter() const
Returns the measurement unit converter.
void writeToDoc(ScDocumentImport &rDoc, const ScRange &rRange)
OptValue< OUString > getXString(sal_Int32 nAttrToken) const
NumberFormatRef createNumFmt(sal_Int32 nNumFmtId, const OUString &rFmtCode)
Creates a number format.
void writeToPropertyMap(PropertyMap &rPropMap) const
Writes all font attributes to the passed property map.
void setBiffUnderline(sal_uInt16 nUnderline)
sal_Int32 mnStyle
Borderline color.
sal_Int32 mnFamily
Major/minor scheme font.
sal_Int16 mnIndent
CTL text direction.
::std::vector< ::Color > maColors
void setBiffHorAlign(sal_uInt8 nHorAlign)
Sets horizontal alignment from the passed BIFF data.
const FontModel & getDefaultFontModel() const
Returns the default font data for the current file type.
OptValue< sal_Int32 > getInteger(sal_Int32 nAttrToken) const
bool mbOutline
Escapement font height.
void importProtection(const AttributeList &rAttribs)
Sets all attributes from the protection element.
void importFont(SequenceInputStream &rStrm)
Imports the FONT record from the passed stream.
const sal_Int32 OOX_COLOR_WINDOWTEXT
System window background color (BIFF3-BIFF4).
constexpr TypedWhichId< SvxCrossedOutItem > ATTR_FONT_CROSSEDOUT(106)
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
Dxf(const WorkbookHelper &rHelper)
const sal_Int32 OOX_COLOR_CHBORDERAUTO
System window background color (BIFF8 charts).
void importDxfBorder(sal_Int32 nElement, SequenceInputStream &rStrm)
Imports a border from a DXF record from the passed stream.
constexpr TypedWhichId< SvxRotateModeItem > ATTR_ROTATE_MODE(136)
sal_Int32 mnNumFmtId
Index to font data list.
bool mbPattColorUsed
Pattern identifier (e.g. solid).
XfRef getCellXf(sal_Int32 nXfId) const
Returns the specified cell format object.
void importDxfColor(SequenceInputStream &rStrm)
Imports the font color from a DXF record.
css::uno::Any getAnyProperty(sal_Int32 nPropId) const
bool mbUsed
Border line style.
sal_Int32 mnVerAlign
Horizontal alignment.
exports com.sun.star. awt
void setBiff12Data(sal_uInt32 nFlags)
Sets the protection attributes from the passed BIFF12 XF record data.
const sal_Int8 API_ESCAPEHEIGHT_NONE
Subscript: lower characters automatically (magic value -101).
bool setProperty(sal_Int32 nPropId, Type &&rValue)
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC(EE_CHAR_START+7)
void importBgColor(const AttributeList &rAttribs)
Sets the background color from the bgColor element.
exports com.sun.star. table
Fill(const WorkbookHelper &rHelper, bool bDxf)
XfRef getStyleXf(sal_Int32 nXfId) const
Returns the specified style format object.
const sal_Int16 API_LINE_HAIR
sal_Int32 mnUnderline
Font height in points.
bool mbWeightUsed
True = escapement style is used.
Helper class that provides functions to convert values from and to different units.
value_type get(sal_Int32 nIndex) const
Reference< XStyle > maCellStyles[style_count]
const ApiProtectionData & getApiData() const
Returns the converted API protection data struct.
XfRef createCellXf()
Creates a new empty cell formatting object.
ApiBorderLine maBottom
Top line format.
const sal_Int16 API_ESCAPE_SUBSCRIPT
Superscript: raise characters automatically (magic value 101).
virtual ::Color getSchemeColor(sal_Int32 nToken) const override
Derived classes may implement to resolve a scheme color from the passed XML token identifier...
OptValue< double > getDouble(sal_Int32 nAttrToken) const
void setBiffVerAlign(sal_uInt8 nVerAlign)
Sets vertical alignment from the passed BIFF data.
CellStyleRef mxDefStyle
All cell styles, mapped by XF identifier.
constexpr TypedWhichId< SvxFontItem > ATTR_FONT(100)
#define STATIC_ARRAY_SELECT(array, index, def)
void SetLine(const editeng::SvxBorderLine *pNew)
void importDxfScheme(SequenceInputStream &rStrm)
Imports the font scheme from a DXF record.
OUString createDxfStyle(sal_Int32 nDxfId) const
Creates the style sheet described by the DXF with the passed identifier.
const sal_Int32 OOX_COLOR_BUTTONBACK
System window background color (BIFF5+).
rtl_TextEncoding getTextEncoding() const
Returns the text encoding used to import/export byte strings.
static bool equalFills(sal_Int32 nFillId1, sal_Int32 nFillId2)
Returns true, if the specified fills are equal.
CellStyleModel()
True = style not visible in GUI.
Xf(const WorkbookHelper &rHelper)
Accessor class to ScDocument.
CellStyleBuffer maCellStyles
List of cell styles.
void finalizeImport()
Final processing after import of all style settings.
ApiSolidFillData()
True = fill data is valid.
std::shared_ptr< Xf > XfRef
OUString createCellStyle(sal_Int32 nXfId) const
Creates the style sheet described by the style XF with the passed identifier.
Contains XML pattern fill attributes from the patternFill element.
XfVector maCellXfs
List of cell area fill objects.
std::shared_ptr< Dxf > DxfRef
bool mbBold
Escapement style.
StylesBuffer & getStyles() const
Returns all cell formatting objects read from the styles substream.
PatternFillModel(bool bDxf)
True = pattern used.
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT(EE_CHAR_START+2)
void fillToItemSet(SfxItemSet &rItemSet, bool bSkipPoolDefs=false) const
ApiSolidFillData maApiData
void importDxfFlag(sal_Int32 nElement, SequenceInputStream &rStrm)
Imports a font style flag from a DXF record.
Contains XML gradient fill attributes from the gradientFill element.
void fillToItemSet(SfxItemSet &rSet) const
void importPaletteColor(const AttributeList &rAttribs)
Appends a new color to the color palette.
void importNumFmt(const AttributeList &rAttribs)
Inserts a new number format code.
void importColor(const AttributeList &rAttribs, double fPosition)
Sets a color from the color element in a gradient fill.
NumberFormatsBuffer maNumFmts
List of font objects.
std::shared_ptr< Border > BorderRef
Contains API font name, family, and charset for a script type.
constexpr auto convertTwipToMm100(N n)
bool mbEscapementUsed
True = underline style is used.
GraphicHelper & getGraphicHelper() const
SC_DLLPUBLIC ScDocumentPool * GetPool()
void setBiff12Data(sal_uInt32 nFlags)
Sets the alignment attributes from the passed BIFF12 XF record data.
const sal_Int32 OOX_COLOR_WINDOWTEXT3
ColorMap maColors
Bottom convergence for type path.
void setProperties(const css::uno::Sequence< OUString > &rPropNames, const css::uno::Sequence< css::uno::Any > &rValues)
sal_Int32 mnLevel
Identifier for builtin styles.
void forEachMem(FuncType pFunc) const
sal_Int32 mnRotation
CTL text direction.
BorderModel(bool bDxf)
True = bottom-left to top-right on.
void importAttribs(sal_Int32 nElement, const AttributeList &rAttribs)
Sets font formatting attributes for the passed element.
CellStyleVector maBuiltinStyles
const ScPatternAttr * pPattern
Alignment maAlignment
Cell XF or style XF model data.
bool mbShrink
True = multi-line text.
void finalizeImport(bool bRTL)
Final processing after import of all style settings.
std::shared_ptr< CellStyle > CellStyleRef
static bool equalBorders(sal_Int32 nBorderId1, sal_Int32 nBorderId2)
Returns true, if the specified borders are equal.
ScPatternAttrPtr mpPattern
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO_CTL(EE_CHAR_START+18)
BorderVector maBorders
List of all number format codes.
DxfVector maDxfs
All built-in and user defined cell styles.
void importDxfBgColor(SequenceInputStream &rStrm)
Imports the background color from a DXF record.
bool mbUsed
True = transparent area.
void importDxfUnderline(SequenceInputStream &rStrm)
Imports the font underline style from a DXF record.
bool hasAttribute(sal_Int32 nAttrToken) const
constexpr TypedWhichId< SvxJustifyMethodItem > ATTR_HOR_JUSTIFY_METHOD(130)
::oox::core::FilterBase & getBaseFilter() const
Returns the base filter object (base class of all filters).
AttrList(const ScPatternAttr *pDefPatternAttr)
NumberFormatRef mxNumFmt
Font data.
bool mbStrikeoutUsed
True = font posture (italic) is used.
void setBiffWeight(sal_uInt16 nWeight)
ApiFontUsedFlags maUsedFlags
const sal_Int32 OOX_COLOR_CHWINDOWBACK
System window text color (BIFF8 charts).
void insertCellStyle(CellStyleRef const &xCellStyle)
Inserts the passed cell style object into the internal maps.
Degree100 mnRotation
Normal or stacked text.
const sal_uInt8 WINDOWS_CHARSET_DEFAULT
SC_DLLPUBLIC void ResetParent()
void importBorder(const AttributeList &rAttribs)
Sets global border attributes from the border element.
XfRef createStyleXf()
Creates a new empty style formatting object.
Contains cell fill attributes, either a pattern fill or a gradient fill.
FillRef const & createFill(bool bAlwaysNew=true)
Creates a new empty fill object.
BorderLineModel maBottom
Top line format.
sal_Int16 mnEscapement
Font color.
sal_uInt8 GetBlue() const
void applyPatternToAttrList(AttrList &rAttrs, SCROW nRow1, SCROW nRow2, sal_Int32 nForceScNumFmt)
sal_Int32 mnXfId
Cell style name.
constexpr TypedWhichId< SvxContourItem > EE_CHAR_OUTLINE(EE_CHAR_START+8)
ExcelGraphicHelper(const WorkbookHelper &rHelper)
ProtectionModel()
True = formula is hidden.
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT(EE_CHAR_START+4)
XfModel maModel
Calc number format.
void SetColor(const Color &rCol)
bool getFlag(Type nBitField, Type nMask)
sal_Int16 mnWritingMode
Text rotation angle.
void importStyle(sal_Int32 nElement, const AttributeList &rAttribs)
Sets border attributes for the border line with the passed element identifier.
css::table::CellOrientation meOrientation
AlignmentModel()
True = justify last line in block text.
constexpr TypedWhichId< SvxUnderlineItem > ATTR_FONT_UNDERLINE(104)
#define SAL_N_ELEMENTS(arr)
virtual sal_Int64 tell() const override
Contains attributes of a cell style, e.g.
sal_Int32 meRotationRef
Cell protection data.
constexpr TypedWhichId< SvxLineItem > ATTR_BORDER_TLBR(141)
exports com.sun.star. text
::ScStyleSheet * getCellStyleSheet(sal_Int32 nXfId) const
Color maFillColor
Pattern foreground color.
const ::Color API_RGB_TRANSPARENT(ColorTransparency, 0xffffffff)
constexpr TypedWhichId< SvxShadowedItem > EE_CHAR_SHADOW(EE_CHAR_START+9)
BorderRef mxBorder
Protection data.
FontVector maFonts
Color palette.
void importGradientFill(const AttributeList &rAttribs)
Sets attributes of a gradientFill element.
sal_Int32 mnFillId
Index to list of cell borders.
bool mbUnderlineUsed
True = font height is used.
std::shared_ptr< NumberFormat > NumberFormatRef
::SvxCellVerJustify GetScVerAlign() const
bool mbStrikeout
True = italic characters.
constexpr TypedWhichId< SvxPostureItem > ATTR_FONT_POSTURE(103)
constexpr TypedWhichId< SvxShadowedItem > ATTR_FONT_SHADOWED(108)
ApiScriptFontName maAsianFont
Font name for latin scripts.
bool mbBorderUsed
Diagonal bottom-left to top-right line format.
const ::Color API_RGB_WHITE(0xFFFFFF)
constexpr TypedWhichId< SvxFontHeightItem > ATTR_CJK_FONT_HEIGHT(112)
bool needsRichTextFormat() const
Returns true, if the font requires rich text formatting in Calc.
ApiFontUsedFlags(bool bAllUsed)
True = shadow style is used.
::FontFamily lcl_getFontFamily(sal_Int32 nFamily)
void setBiffPattern(sal_Int32 nPattern)
Sets the passed BIFF pattern identifier.
SequenceInputStream & operator>>(SequenceInputStream &rStrm, BinAddress &orPos)
BorderRef getBorder(sal_Int32 nBorderId) const
Returns the specified border object.
void setPaletteClr(sal_Int32 nPaletteIdx)
void importColor(const AttributeList &rAttribs)
Imports the color from the passed attribute list.
bool mbDiagUsed
True = left/right/top/bottom line format used.
#define PALETTE_EGA_COLORS_DARK
Standard EGA colors), dark.
sal_Int16 mnFamily
Font name.
BorderLineModel maRight
Left line format.
std::shared_ptr< Alignment > mxAlignment
Number format data.
const ScPatternAttr * mpDefPattern
const css::uno::Reference< css::sheet::XSpreadsheetDocument > & getDocument() const
Returns a reference to the source/target spreadsheet document model.
bool mbDiagTLtoBR
Diagonal line format.
css::uno::Reference< css::container::XNameContainer > getCellStyleFamily() const
Returns the cell styles container from the Calc document.
constexpr TypedWhichId< SvxVerJustifyItem > ATTR_VER_JUSTIFY(132)
::Color getColor(const GraphicHelper &rGraphicHelper,::Color nPhClr=API_RGB_TRANSPARENT) const
sal_Int8 mnEscapeHeight
Escapement style.
FontRef getFont(sal_Int32 nFontId) const
Returns the specified font object.
void writeFillToItemSet(SfxItemSet &rItemSet, sal_Int32 nFillId, bool bSkipPoolDefs) const
Writes the fill attributes of the specified fill data to the passed property map. ...
const FontModel & getDefaultFontModel() const
Returns the model of the default application font (used in the "Normal" cell style).
static OUString readString(SequenceInputStream &rStrm, bool b32BitLen=true)
Reads a BIFF12 string with leading 16-bit or 32-bit length field.
void importDxf(SequenceInputStream &rStrm)
Imports the DXF record from the passed stream.
OUString getDefaultStyleName() const
Returns the default style sheet for unused cells.
XfModel()
True = area data used.
sal_Int32 mnIndent
Text rotation angle.
css::table::CellHoriJustify meHorJustify
ScDocument & getScDocument()
bool mbItalic
True = bold characters.
void importDxfFgColor(SequenceInputStream &rStrm)
Imports the pattern color from a DXF record.
bool mbOutlineUsed
True = strike out style is used.
SfxItemSet & GetItemSet()
bool mbFontUsed
True = cell XF, false = style XF.
bool mbBorderUsed
True = cell protection used.
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CJK(EE_CHAR_START+21)
void finalizeImport()
Final processing after import of all style settings.
std::shared_ptr< Font > FontRef
SC_DLLPUBLIC void ApplyPatternAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScPatternAttr &rAttr)
ApiFontData()
True = shadowed chgaracters.
bool operator==(const ApiAlignmentData &rLeft, const ApiAlignmentData &rRight)
const ApiAlignmentData & getApiData() const
Returns the converted API alignment data struct.
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CTL(EE_CHAR_START+24)
sal_Int32 mnFontId
Index to parent style XF.
void finalizeImport(const OUString &rFinalName)
Stores the passed final style name and creates the cell style, if it is user-defined or modified buil...
sal_Int32 mnCharSet
Font family.
ApiScriptFontName maCmplxFont
Font name for east-asian scripts.
Reference< XComponentContext > getComponentContext(Reference< XMultiServiceFactory > const &factory)
constexpr TypedWhichId< SvxFontHeightItem > ATTR_CTL_FONT_HEIGHT(117)
NumberFormatRef importNumFmt(const AttributeList &rAttribs)
Inserts a new number format code.
constexpr TypedWhichId< SvxFontItem > ATTR_CTL_FONT(116)
void writeBorderToItemSet(SfxItemSet &rItemSet, sal_Int32 nBorderId, bool bSkipPoolDefs) const
Writes the specified number format to the passed property map.
double mfRight
Left convergence for type path.
::ScStyleSheet * mpStyleSheet
Rotation reference dependent on border.
#define PALETTE_EGA_COLORS_LIGHT
Standard EGA colors, bright.
void importDxfName(SequenceInputStream &rStrm)
Imports the font name from a DXF record.
bool mbShadow
True = outlined characters.
FontRef getFontFromCellXf(sal_Int32 nXfId) const
Returns the font object of the specified cell XF.
enumrange< T >::Iterator end(enumrange< T >)
sal_Int32 mnPattern
Background fill color.
void SetStyleSheet(ScStyleSheet *pNewStyle, bool bClearDirectFormat=true)
void fillToItemSet(SfxItemSet &rItemSet, bool bSkipPoolDefs=false) const
void setBiffStyle(sal_Int32 nLineStyle)
Sets the passed BIFF line style.
bool isDefaultStyle() const
Returns true, if this style represents the default document cell style.
css::awt::FontDescriptor maDesc
Font name for complex scripts.
void importCellStyle(const AttributeList &rAttribs)
Imports passed attributes from the cellStyle element.
bool isLatinScript(sal_uInt32 nFormat)
small cache for hot call during import
FontRef const & createFont(bool bAlwaysNew=true)
Creates a new empty font object.
Digit width of document default font.
GradientModelRef mxGradientModel
void setBiff12Scheme(sal_uInt8 nScheme)
void importColorId(SequenceInputStream &rStrm)
Imports a 32-bit palette color identifier from the passed BIFF12 stream.
OUString createCellStyle(sal_Int32 nXfId) const
Creates the style sheet described by the style XF with the passed identifier.
constexpr TypedWhichId< SvxFontItem > ATTR_CJK_FONT(111)
void clearTransformations()
constexpr TypedWhichId< SvxBrushItem > ATTR_BACKGROUND(148)
bool mbOutline
True = Strike out characters.
void readGradientStop(SequenceInputStream &rStrm, bool bDxf)
Reads BIFF12 gradient stop settings from a FILL or DXF record.
void setTheme(sal_Int32 nThemeIdx, double fTint=0.0)
Sets the color to the passed theme index.
sal_uInt8 GetGreen() const
double mfAngle
Gradient type, linear or path.
void finalizeImport()
Final processing after import of all style settings.
const sal_Int16 API_LINE_MEDIUM
void setSchemeClr(sal_Int32 nToken)
std::map< OUString, sal_Int32 > CellStyleNameMap
constexpr TypedWhichId< SvxFrameDirectionItem > ATTR_WRITINGDIR(138)
void fillToItemSet(SfxItemSet &rItemSet, bool bEditEngineText, bool bSkipPoolDefs=false) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
size_t mnAppendIndex
List of RGB values.
constexpr TypedWhichId< SvxCrossedOutItem > EE_CHAR_STRIKEOUT(EE_CHAR_START+6)
FillRef mxFill
Border data.
void fillToItemSet(SfxItemSet &rItemSet, bool bSkipPoolDefs=false) const
ApiBorderData()
True = diagonal line format used.
sal_Int64 getRemaining() const
void setSrgbClr(sal_Int32 nRgb)
constexpr TypedWhichId< SvxJustifyMethodItem > ATTR_VER_JUSTIFY_METHOD(133)
constexpr TypedWhichId< SvxPostureItem > ATTR_CTL_FONT_POSTURE(119)
Protection maProtection
Cell alignment data.
OptValue< sal_Int32 > getIntegerHex(sal_Int32 nAttrToken) const
virtual ::Color getPaletteColor(sal_Int32 nPaletteIdx) const override
Derived classes may implement to resolve a palette index to an RGB color.
mapped_type get(key_type nKey) const
void importDxfWeight(SequenceInputStream &rStrm)
Imports the font weight from a DXF record.
void finalizeImport()
Final processing after import of all style settings.
FillVector maFills
List of cell border objects.
void finalizeImport()
Final processing after import of all style settings.
bool hasAnyOuterBorder() const
Returns true, if any of the outer border lines is visible.
bool convertBorderLine(css::table::BorderLine2 &rBorderLine, const BorderLineModel &rModel)
Converts border line data to an API struct, returns true, if the line is marked as used...
virtual void seek(sal_Int64 nPos) override
const sal_Int16 API_LINE_THICK
DxfStyleMap maDxfStyles
List of differential extlst cell styles.
Contains XML attributes of a single border line.
bool mbWrapText
Indentation.
sal_uInt32 writeNumFmtToItemSet(SfxItemSet &rItemSet, sal_uInt32 nNumFmtId, bool bSkipPoolDefs) const
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CTL(EE_CHAR_START+20)
#define SAL_WARN_IF(condition, area, stream)
ApiBorderLine maBLtoTR
Diagonal top-left to bottom-right line format.
BorderLineModel(bool bDxf)
True = line format used.
void writeToPropertySet(PropertySet &rPropSet) const
Writes all font attributes to the passed property set.
sal_Int32 mnTextDir
Vertical alignment.
bool mbSchemeUsed
True = font color is used.
double mfBottom
Top convergence for type path.
constexpr TypedWhichId< SvxEscapementItem > EE_CHAR_ESCAPEMENT(EE_CHAR_START+10)
sal_Int32 mnEscapement
Underline style.
bool mbCustom
True = builtin style.
void importDxfGradient(SequenceInputStream &rStrm)
Imports gradient settings from a DXF record.
bool mbHidden
True = customized builtin style.
VCL_DLLPUBLIC float ConvertFontWeight(FontWeight eWeight)
ApiAlignmentData maApiData
Alignment model data.
const sal_Int16 API_ESCAPE_SUPERSCRIPT
No escapement.
virtual SfxStyleSheetBase & Make(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits nMask=SfxStyleSearchBits::All) override
constexpr TypedWhichId< SvxWeightItem > EE_CHAR_WEIGHT_CTL(EE_CHAR_START+22)
constexpr TypedWhichId< SvxColorItem > EE_CHAR_COLOR(EE_CHAR_START+0)
constexpr TypedWhichId< SvxPostureItem > ATTR_CJK_FONT_POSTURE(114)
if(aStr!=aBuf) UpdateName_Impl(m_xFollowLb.get()
void importDxfStop(SequenceInputStream &rStrm)
Imports gradient stop settings from a DXF record.
bool mbJustLastLine
True = shrink to fit cell size.
ApiScriptFontName maLatinFont
ApiCellProtection maCellProt
void importProtection(const AttributeList &rAttribs)
Sets all attributes from the protection element.
virtual SC_DLLPUBLIC SfxItemSet & GetItemSet() override
bool mbCreated
Final style name used in API.
Alignment(const WorkbookHelper &rHelper)
const T & Put(std::unique_ptr< T > xItem, sal_uInt16 nWhich=0)
ApiBorderLine maRight
Left line format.
CellStyleVector maUserStyles
All built-in cell styles.
constexpr TypedWhichId< SvxWeightItem > ATTR_FONT_WEIGHT(102)
sal_Int32 mnVerJustifyMethod
Vertical alignment.
constexpr TypedWhichId< SvxHorJustifyItem > ATTR_HOR_JUSTIFY(129)
FontRef createFont()
Creates a new empty font object.
sal_Int16 mnTextEnc
Font family.
bool mbPatternUsed
True = background fill color used.
ApiProtectionData maApiData
Protection model data.
Represents a cell format or a cell style (called XF, extended format).
void setIndexed(sal_Int32 nPaletteIdx, double fTint=0.0)
Sets the color to the passed palette index.
void setBiffHeight(sal_uInt16 nHeight)
void importPatternFill(const AttributeList &rAttribs)
Sets attributes of a patternFill element.
const sal_Int16 API_ESCAPE_NONE
const sal_Int8 API_ESCAPEHEIGHT_DEFAULT
Relative character height if not escaped.
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO(EE_CHAR_START+1)
FontRef getFont() const
Returns the referred font object.
void addExcelTintTransformation(double fTint)
Border(const WorkbookHelper &rHelper, bool bDxf)
SC_DLLPUBLIC ScStyleSheetPool * GetStyleSheetPool() const
bool mbPostureUsed
True = font weight (boldness) is used.
BorderLineModel maTop
Right line format.
Contains all API cell protection attributes.
ApiScriptFontName()
Font text encoding.
bool mbAlignUsed
True = number format used.
void importFill(SequenceInputStream &rStrm)
Imports the FILL record from the passed stream.
Contains all data for a cell format or cell style.
const ::ScPatternAttr & createPattern(bool bSkipPoolDefs=false)
OUString createExtDxfStyle(sal_Int32 nDxfId) const
constexpr TypedWhichId< SvxPostureItem > EE_CHAR_ITALIC_CJK(EE_CHAR_START+23)
void importAlignment(const AttributeList &rAttribs)
Sets all attributes from the alignment element.
void importPaletteColor(const AttributeList &rAttribs)
Appends a new color from the passed attributes.
constexpr TypedWhichId< SvxUnderlineItem > EE_CHAR_UNDERLINE(EE_CHAR_START+5)
void appendColor(::Color nRGBValue)
Appends the passed color.
void importDxfPattern(SequenceInputStream &rStrm)
Imports the fill pattern from a DXF record.
BorderLineModel maDiagonal
Bottom line format.
ThemeBuffer & getTheme() const
Returns the office theme object read from the theme substorage.
BorderLineModel * getBorderLine(sal_Int32 nElement)
Returns the border line struct specified by the passed XML token identifier.
FontModel()
True = shadowed chgaracters.
const sal_Int32 OOX_COLOR_FONTAUTO
Note text color.
bool mbShadowUsed
True = outline style is used.
CellStyleRef importCellStyle(const AttributeList &rAttribs)
Appends and returns a new named cell style object.
constexpr TypedWhichId< SvxFontHeightItem > EE_CHAR_FONTHEIGHT_CJK(EE_CHAR_START+19)
bool mbBuiltin
Level for builtin column/row styles.
sal_Int32 mnHorJustifyMethod
Horizontal alignment.
DxfRef createDxf()
Creates a new empty differential formatting object.
void finalizeImport()
Final processing after import of all style settings.
void writeCellXfToDoc(ScDocumentImport &rDoc, const ScRange &rRange, sal_Int32 nXfId) const
Writes the cell formatting attributes of the specified XF to the passed property set.
void importAlignment(const AttributeList &rAttribs)
Sets all attributes from the alignment element.
OUString getDefaultStyleName() const
Returns the default style sheet for unused cells.
XfVector maStyleXfs
List of cell formats.
::ScStyleSheet * getCellStyleSheet(sal_Int32 nXfId) const
::ScStyleSheet * mpStyleSheet
True = style sheet created.
::Color getColorByToken(sal_Int32 nToken) const
Returns the theme color with the specified token identifier.
BorderRef createBorder()
Creates a new empty border object.
bool mbNumFmtUsed
True = font index used.
bool mbDiagBLtoTR
True = top-left to bottom-right on.
void importFgColor(const AttributeList &rAttribs)
Sets the pattern color from the fgColor element.
FontRef getDefaultFont() const
Returns the default application font (used in the "Normal" cell style).
const sal_Int32 OOX_COLOR_NOTEBACK
Automatic frame border (BIFF8 charts).
StylesBuffer(const WorkbookHelper &rHelper)
bool mbWrapText
Indentation.
sal_Int32 mnScheme
Font color.
sal_Int32 mnBuiltinId
Formatting for this cell style.
void finalizeImport()
Final processing after import of all style settings.
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
ColorPalette(const WorkbookHelper &rHelper)
Constructs the color palette with predefined color values.
constexpr TypedWhichId< SvxColorItem > ATTR_FONT_COLOR(109)
::Color getSystemColor(sal_Int32 nToken,::Color nDefaultRgb=API_RGB_TRANSPARENT) const
bool isCellXf() const
Returns true, if the XF is a cell XF, and false, if it is a style XF.
sal_Int32 mnBorderId
Index to number format list.
constexpr TypedWhichId< SvxWeightItem > ATTR_CJK_FONT_WEIGHT(113)
constexpr TypedWhichId< SvxFontHeightItem > ATTR_FONT_HEIGHT(101)
CellStyleBuffer(const WorkbookHelper &rHelper)
bool mbTransparent
Fill color.
constexpr TypedWhichId< SvxLineItem > ATTR_BORDER_BLTR(142)
constexpr TypedWhichId< SvxContourItem > ATTR_FONT_CONTOUR(107)
const OUString * GetStyleName() const
std::shared_ptr< Protection > mxProtection
Alignment data.
void setRgb(::Color nRgbValue, double fTint=0.0)
Sets the color to the passed RGB value.
ApiAlignmentData()
True = shrink to fit cell size.
bool mbShadow
True = outlined characters.
bool mbFillColorUsed
True = pattern foreground color used.
static bool LineToSvxLine(const css::table::BorderLine &rLine, editeng::SvxBorderLine &rSvxLine, bool bConvert)
::SvxCellHorJustify GetScHorAlign() const
OptValue< sal_Int32 > getToken(sal_Int32 nAttrToken) const
void readGradient(SequenceInputStream &rStrm)
Reads BIFF12 gradient settings from a FILL or DXF record.
void createCellStyle()
Creates the style sheet in the document described by this cell style object.
void importXf(const AttributeList &rAttribs, bool bCellXf)
Sets all attributes from the xf element.
void finalizeImport()
Final processing after import of all style settings.
bool isBuiltin() const
Returns true, if this style is a builtin style.
const sal_Int32 OOX_COLOR_CHWINDOWTEXT
System button background color (face color).
bool m_bDetectedRangeSegmentation false
bool mbCellXf
Index to list of cell areas.
std::vector< ScAttrEntry > maAttrs
void SetLine(const editeng::SvxBorderLine *pNew, SvxBoxItemLine nLine)
const sal_Int16 API_LINE_NONE
Font auto color (system window text color).