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>
87 #include <stlsheet.hxx>
105 const sal_Int32 OOX_COLOR_USEROFFSET = 0;
108 const sal_Int32 OOX_FONTFAMILY_NONE = 0;
109 const sal_Int32 OOX_FONTFAMILY_ROMAN = 1;
110 const sal_Int32 OOX_FONTFAMILY_SWISS = 2;
111 const sal_Int32 OOX_FONTFAMILY_MODERN = 3;
112 const sal_Int32 OOX_FONTFAMILY_SCRIPT = 4;
113 const sal_Int32 OOX_FONTFAMILY_DECORATIVE = 5;
116 const sal_Int32 OOX_XF_TEXTDIR_CONTEXT = 0;
117 const sal_Int32 OOX_XF_TEXTDIR_LTR = 1;
118 const sal_Int32 OOX_XF_TEXTDIR_RTL = 2;
121 const sal_Int32 OOX_XF_ROTATION_NONE = 0;
122 const sal_Int32 OOX_XF_ROTATION_STACKED = 255;
125 const sal_Int32 OOX_XF_INDENT_NONE = 0;
128 const sal_Int32 OOX_STYLE_NORMAL = 0;
129 const sal_Int32 OOX_STYLE_ROWLEVEL = 1;
130 const sal_Int32 OOX_STYLE_COLLEVEL = 2;
136 const sal_uInt8 BIFF12_COLOR_INDEXED = 1;
141 const sal_uInt8 BIFF12_BORDER_DIAG_TLBR = 0x01;
142 const sal_uInt8 BIFF12_BORDER_DIAG_BLTR = 0x02;
145 const sal_Int32 BIFF12_FILL_GRADIENT = 40;
148 const sal_uInt32 BIFF12_XF_WRAPTEXT = 0x00400000;
149 const sal_uInt32 BIFF12_XF_JUSTLASTLINE = 0x00800000;
150 const sal_uInt32 BIFF12_XF_SHRINK = 0x01000000;
151 const sal_uInt32 BIFF12_XF_LOCKED = 0x10000000;
152 const sal_uInt32 BIFF12_XF_HIDDEN = 0x20000000;
155 const sal_uInt16 BIFF12_XF_NUMFMT_USED = 0x0001;
156 const sal_uInt16 BIFF12_XF_FONT_USED = 0x0002;
157 const sal_uInt16 BIFF12_XF_ALIGN_USED = 0x0004;
158 const sal_uInt16 BIFF12_XF_BORDER_USED = 0x0008;
159 const sal_uInt16 BIFF12_XF_AREA_USED = 0x0010;
160 const sal_uInt16 BIFF12_XF_PROT_USED = 0x0020;
163 const sal_uInt16 BIFF12_DXF_FILL_PATTERN = 0;
164 const sal_uInt16 BIFF12_DXF_FILL_FGCOLOR = 1;
165 const sal_uInt16 BIFF12_DXF_FILL_BGCOLOR = 2;
166 const sal_uInt16 BIFF12_DXF_FILL_GRADIENT = 3;
167 const sal_uInt16 BIFF12_DXF_FILL_STOP = 4;
168 const sal_uInt16 BIFF12_DXF_FONT_COLOR = 5;
169 const sal_uInt16 BIFF12_DXF_BORDER_TOP = 6;
170 const sal_uInt16 BIFF12_DXF_BORDER_BOTTOM = 7;
171 const sal_uInt16 BIFF12_DXF_BORDER_LEFT = 8;
172 const sal_uInt16 BIFF12_DXF_BORDER_RIGHT = 9;
173 const sal_uInt16 BIFF12_DXF_FONT_NAME = 24;
174 const sal_uInt16 BIFF12_DXF_FONT_WEIGHT = 25;
175 const sal_uInt16 BIFF12_DXF_FONT_UNDERLINE = 26;
176 const sal_uInt16 BIFF12_DXF_FONT_ESCAPEMENT = 27;
177 const sal_uInt16 BIFF12_DXF_FONT_ITALIC = 28;
178 const sal_uInt16 BIFF12_DXF_FONT_STRIKE = 29;
179 const sal_uInt16 BIFF12_DXF_FONT_OUTLINE = 30;
180 const sal_uInt16 BIFF12_DXF_FONT_SHADOW = 31;
181 const sal_uInt16 BIFF12_DXF_FONT_HEIGHT = 36;
182 const sal_uInt16 BIFF12_DXF_FONT_SCHEME = 37;
183 const sal_uInt16 BIFF12_DXF_NUMFMT_CODE = 38;
184 const sal_uInt16 BIFF12_DXF_NUMFMT_ID = 41;
187 const sal_uInt16 BIFF12_CELLSTYLE_BUILTIN = 0x0001;
188 const sal_uInt16 BIFF12_CELLSTYLE_HIDDEN = 0x0002;
189 const sal_uInt16 BIFF12_CELLSTYLE_CUSTOM = 0x0004;
194 const sal_uInt16 BIFF_FONTFLAG_ITALIC = 0x0002;
195 const sal_uInt16 BIFF_FONTFLAG_STRIKEOUT = 0x0008;
196 const sal_uInt16 BIFF_FONTFLAG_OUTLINE = 0x0010;
197 const sal_uInt16 BIFF_FONTFLAG_SHADOW = 0x0020;
200 const sal_uInt16 BIFF_FONTWEIGHT_BOLD = 450;
203 const sal_uInt8 BIFF_FONTUNDERL_NONE = 0;
204 const sal_uInt8 BIFF_FONTUNDERL_SINGLE = 1;
205 const sal_uInt8 BIFF_FONTUNDERL_DOUBLE = 2;
206 const sal_uInt8 BIFF_FONTUNDERL_SINGLE_ACC = 33;
207 const sal_uInt8 BIFF_FONTUNDERL_DOUBLE_ACC = 34;
209 ::Color lclReadRgbColor( BinaryInputStream& rStrm )
212 nR = rStrm.readuChar();
213 nG = rStrm.readuChar();
214 nB = rStrm.readuChar();
215 nA = rStrm.readuChar();
223 return ::Color(ColorTransparency, nValue);
253 setSrgbClr( sal_uInt32(nRgbValue) & 0xFFFFFF );
260 static const sal_Int32 spnColorTokens[] = {
261 XML_lt1, XML_dk1, XML_lt2, XML_dk2, XML_accent1, XML_accent2,
262 XML_accent3, XML_accent4, XML_accent5, XML_accent6, XML_hlink, XML_folHlink };
284 else if( rAttribs.
getBool( XML_auto,
false ) )
288 OSL_FAIL(
"Color::importColor - unknown color type" );
302 double fTint = nTint;
308 switch( extractValue< sal_uInt8 >( nFlags, 1, 7 ) )
310 case BIFF12_COLOR_AUTO:
314 case BIFF12_COLOR_INDEXED:
318 case BIFF12_COLOR_RGB:
319 setRgb( lclReadRgbColor( rStrm ), fTint );
321 case BIFF12_COLOR_THEME:
326 OSL_FAIL(
"Color::importColor - unknown color type" );
346 #define PALETTE_EGA_COLORS_LIGHT \
347 ::Color(0x000000), ::Color(0xFFFFFF), ::Color(0xFF0000), ::Color(0x00FF00), ::Color(0x0000FF), ::Color(0xFFFF00), ::Color(0xFF00FF), ::Color(0x00FFFF)
349 #define PALETTE_EGA_COLORS_DARK \
350 ::Color(0x800000), ::Color(0x008000), ::Color(0x000080), ::Color(0x808000), ::Color(0x800080), ::Color(0x008080), ::Color(0xC0C0C0), ::Color(0x808080)
353 const ::Color spnDefColors8[] =
365 #undef PALETTE_EGA_COLORS_LIGHT
366 #undef PALETTE_EGA_COLORS_DARK
386 ::Color nRgb = lclReadRgbColor( rStrm );
395 nColor = *pnPaletteColor;
397 else switch( nPaletteIdx )
410 default: OSL_FAIL(
"ColorPalette::getColor - unknown color index" );
426 void lclSetFontName(
ApiScriptFontName& rFontName,
const FontDescriptor& rFontDesc,
bool bHasGlyphs )
430 rFontName.
maName = rFontDesc.Name;
431 rFontName.
mnFamily = rFontDesc.Family;
437 rFontName = ApiScriptFontName();
444 mnScheme( XML_none ),
445 mnFamily( OOX_FONTFAMILY_NONE ),
448 mnUnderline( XML_none ),
449 mnEscapement( XML_baseline ),
452 mbStrikeout( false ),
460 static const sal_Int32 spnSchemes[] = { XML_none, XML_major, XML_minor };
471 mbBold = nWeight >= BIFF_FONTWEIGHT_BOLD;
478 case BIFF_FONTUNDERL_NONE:
mnUnderline = XML_none;
break;
479 case BIFF_FONTUNDERL_SINGLE:
mnUnderline = XML_single;
break;
480 case BIFF_FONTUNDERL_DOUBLE:
mnUnderline = XML_double;
break;
481 case BIFF_FONTUNDERL_SINGLE_ACC:
mnUnderline = XML_singleAccounting;
break;
482 case BIFF_FONTUNDERL_DOUBLE_ACC:
mnUnderline = XML_doubleAccounting;
break;
489 static const sal_Int32 spnEscapes[] = { XML_baseline, XML_superscript, XML_subscript };
494 mbNameUsed( bAllUsed ),
495 mbColorUsed( bAllUsed ),
496 mbSchemeUsed( bAllUsed ),
497 mbHeightUsed( bAllUsed ),
498 mbUnderlineUsed( bAllUsed ),
499 mbEscapementUsed( bAllUsed ),
500 mbWeightUsed( bAllUsed ),
501 mbPostureUsed( bAllUsed ),
502 mbStrikeoutUsed( bAllUsed ),
503 mbOutlineUsed( bAllUsed ),
504 mbShadowUsed( bAllUsed )
510 mnTextEnc( RTL_TEXTENCODING_DONTKNOW )
521 RTL_TEXTENCODING_DONTKNOW,
543 maModel( rHelper.getTheme().getDefaultFontModel() ),
544 maUsedFlags( !bDxf ),
562 case XLS_TOKEN(
name ):
563 case XLS_TOKEN( rFont ):
570 case XLS_TOKEN( scheme ):
573 case XLS_TOKEN( family ):
576 case XLS_TOKEN( charset ):
579 case XLS_TOKEN( sz ):
583 case XLS_TOKEN(
color ):
591 case XLS_TOKEN( vertAlign ):
603 case XLS_TOKEN( strike ):
607 case XLS_TOKEN( outline ):
611 case XLS_TOKEN( shadow ):
620 SAL_WARN_IF(
mbDxf,
"sc",
"Font::importFont - unexpected conditional formatting flag" );
622 sal_uInt16 nHeight, nFlags, nWeight, nEscapement;
623 sal_uInt8 nUnderline, nFamily, nCharSet, nScheme;
653 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfName - missing conditional formatting flag" );
660 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfColor - missing conditional formatting flag" );
667 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfScheme - missing conditional formatting flag" );
674 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfHeight - missing conditional formatting flag" );
681 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfWeight - missing conditional formatting flag" );
688 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfUnderline - missing conditional formatting flag" );
695 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfEscapement - missing conditional formatting flag" );
702 SAL_WARN_IF( !
mbDxf,
"sc",
"Font::importDxfFlag - missing conditional formatting flag" );
723 OSL_FAIL(
"Font::importDxfFlag - unexpected element identifier" );
735 case OOX_FONTFAMILY_NONE:
maApiData.
maDesc.Family = css::awt::FontFamily::DONTKNOW;
break;
736 case OOX_FONTFAMILY_ROMAN:
maApiData.
maDesc.Family = css::awt::FontFamily::ROMAN;
break;
737 case OOX_FONTFAMILY_SWISS:
maApiData.
maDesc.Family = css::awt::FontFamily::SWISS;
break;
738 case OOX_FONTFAMILY_MODERN:
maApiData.
maDesc.Family = css::awt::FontFamily::MODERN;
break;
739 case OOX_FONTFAMILY_SCRIPT:
maApiData.
maDesc.Family = css::awt::FontFamily::SCRIPT;
break;
740 case OOX_FONTFAMILY_DECORATIVE:
maApiData.
maDesc.Family = css::awt::FontFamily::DECORATIVE;
break;
746 rtl_getTextEncodingFromWindowsCharset( static_cast< sal_uInt8 >(
maModel.
mnCharSet ) ) );
760 case XML_double:
maApiData.
maDesc.Underline = css::awt::FontUnderline::DOUBLE;
break;
761 case XML_doubleAccounting:
maApiData.
maDesc.Underline = css::awt::FontUnderline::DOUBLE;
break;
763 case XML_single:
maApiData.
maDesc.Underline = css::awt::FontUnderline::SINGLE;
break;
764 case XML_singleAccounting:
maApiData.
maDesc.Underline = css::awt::FontUnderline::SINGLE;
break;
774 case XML_superscript:
789 Reference< XDevice > xDevice( aDocProps.
getAnyProperty( PROP_ReferenceDevice ), UNO_QUERY );
793 Reference< XFont2 > xFont( xDevice->getFont(
maApiData.
maDesc ), UNO_QUERY );
799 xFont->hasGlyphs( OUString(
u'\x3041' ) ) ||
800 xFont->hasGlyphs( OUString(
u'\x30A1' ) ) ||
801 xFont->hasGlyphs( OUString(
u'\x3111' ) ) ||
802 xFont->hasGlyphs( OUString(
u'\x3131' ) ) ||
803 xFont->hasGlyphs( OUString(
u'\x3301' ) ) ||
804 xFont->hasGlyphs( OUString(
u'\x3401' ) ) ||
805 xFont->hasGlyphs( OUString(
u'\x4E01' ) ) ||
806 xFont->hasGlyphs( OUString(
u'\x7E01' ) ) ||
807 xFont->hasGlyphs( OUString(
u'\xA001' ) ) ||
808 xFont->hasGlyphs( OUString(
u'\xAC01' ) ) ||
809 xFont->hasGlyphs( OUString(
u'\xCC01' ) ) ||
810 xFont->hasGlyphs( OUString(
u'\xF901' ) ) ||
811 xFont->hasGlyphs( OUString(
u'\xFF71' ) );
814 xFont->hasGlyphs( OUString(
u'\x05D1' ) ) ||
815 xFont->hasGlyphs( OUString(
u'\x0631' ) ) ||
816 xFont->hasGlyphs( OUString(
u'\x0721' ) ) ||
817 xFont->hasGlyphs( OUString(
u'\x0911' ) ) ||
818 xFont->hasGlyphs( OUString(
u'\x0E01' ) ) ||
819 xFont->hasGlyphs( OUString(
u'\xFB21' ) ) ||
820 xFont->hasGlyphs( OUString(
u'\xFB51' ) ) ||
821 xFont->hasGlyphs( OUString(
u'\xFE71' ) );
824 (!bHasAsian && !bHasCmplx) ||
825 xFont->hasGlyphs( OUString(
'A' ) );
842 case css::awt::FontFamily::DONTKNOW:
845 case css::awt::FontFamily::ROMAN:
848 case css::awt::FontFamily::SWISS:
851 case css::awt::FontFamily::MODERN:
854 case css::awt::FontFamily::SCRIPT:
857 case css::awt::FontFamily::DECORATIVE:
872 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
883 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
893 rtl_TextEncoding eTempTextEnc = (bEditEngineText && (eFontEnc ==
getTextEncoding())) ?
940 else if (
maApiData.
maDesc.Underline == css::awt::FontUnderline::SINGLE )
969 eScEscapem = SvxEscapement::Superscript;
971 eScEscapem = SvxEscapement::Subscript;
972 if( bEditEngineText )
1006 float fHeight =
static_cast< float >(
maApiData.
maDesc.Height / 20.0 );
1008 rPropMap.
setProperty( PROP_CharHeightAsian, fHeight);
1009 rPropMap.
setProperty( PROP_CharHeightComplex, fHeight);
1016 rPropMap.
setProperty( PROP_CharWeightAsian, fWeight);
1017 rPropMap.
setProperty( PROP_CharWeightComplex, fWeight);
1057 mnHorAlign( XML_general ),
1058 mnVerAlign( XML_bottom ),
1059 mnTextDir( OOX_XF_TEXTDIR_CONTEXT ),
1060 mnRotation( OOX_XF_ROTATION_NONE ),
1061 mnIndent( OOX_XF_INDENT_NONE ),
1062 mbWrapText( false ),
1064 mbJustLastLine( false )
1070 static const sal_Int32 spnHorAligns[] = {
1071 XML_general, XML_left, XML_center, XML_right,
1072 XML_fill, XML_justify, XML_centerContinuous, XML_distributed };
1078 static const sal_Int32 spnVerAligns[] = {
1079 XML_top, XML_center, XML_bottom, XML_justify, XML_distributed };
1084 meHorJustify(
css::
table::CellHoriJustify_STANDARD ),
1085 mnHorJustifyMethod(
css::
table::CellJustifyMethod::
AUTO ),
1087 mnVerJustifyMethod(
css::
table::CellJustifyMethod::
AUTO ),
1088 meOrientation(
css::
table::CellOrientation_STANDARD ),
1092 mbWrapText( false ),
1122 sal_Int32 nDefaultHorAlign = XML_general;
1127 nDefaultHorAlign = XML_left;
1131 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" );
1316 maCellProt( true, false, false, false )
1359 bool lcl_isBorder(
const css::table::BorderLine& rBorder)
1361 return (rBorder.InnerLineWidth > 0) || (rBorder.OuterLineWidth > 0);
1367 mnStyle( XML_none ),
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;
1438 pBorderLine->mnStyle = rAttribs.
getToken( XML_style, XML_none );
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;
1600 case XML_none: lclSetBorderLineWidth( rBorderLine,
API_LINE_NONE );
break;
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;
1613 mnPattern( XML_none ),
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" );
1847 sal_Int32 nAlpha = 0x80;
1850 case XML_darkDown: nAlpha = 0x40;
break;
1851 case XML_darkGray: nAlpha = 0x60;
break;
1852 case XML_darkGrid: nAlpha = 0x40;
break;
1853 case XML_darkHorizontal: nAlpha = 0x40;
break;
1854 case XML_darkTrellis: nAlpha = 0x60;
break;
1855 case XML_darkUp: nAlpha = 0x40;
break;
1856 case XML_darkVertical: nAlpha = 0x40;
break;
1857 case XML_gray0625: nAlpha = 0x08;
break;
1858 case XML_gray125: nAlpha = 0x10;
break;
1859 case XML_lightDown: nAlpha = 0x20;
break;
1860 case XML_lightGray: nAlpha = 0x20;
break;
1861 case XML_lightGrid: nAlpha = 0x38;
break;
1862 case XML_lightHorizontal: nAlpha = 0x20;
break;
1863 case XML_lightTrellis: nAlpha = 0x30;
break;
1864 case XML_lightUp: nAlpha = 0x20;
break;
1865 case XML_lightVertical: nAlpha = 0x20;
break;
1866 case XML_mediumGray: nAlpha = 0x40;
break;
1867 case XML_solid: nAlpha = 0x80;
break;
1889 GradientFillModel::ColorMap::const_iterator aIt = rModel.
maColors.begin();
1890 OSL_ENSURE( !aIt->second.isAuto(),
"Fill::finalizeImport - automatic gradient color" );
1892 if( ++aIt != rModel.
maColors.end() )
1894 OSL_ENSURE( !aIt->second.isAuto(),
"Fill::finalizeImport - automatic gradient color" );
1926 mbFontUsed( false ),
1927 mbNumFmtUsed( false ),
1928 mbAlignUsed( false ),
1929 mbProtUsed( false ),
1930 mbBorderUsed( false ),
1936 mbLatinNumFmtOnly(true),
1937 mpDefPattern(pDefPattern)
2050 ScResId(STR_STYLENAME_STANDARD), SfxStyleFamily::Para));
2057 if ( nNumFmtId >= 0 )
2071 bool bHasGap =
false;
2072 if (rAttrs.
maAttrs.empty() && nRow1 > 0)
2076 if (!rAttrs.
maAttrs.empty() && rAttrs.
maAttrs.back().nEndRow + 1 < nRow1)
2085 rAttrs.
maAttrs.push_back(aEntry);
2095 rAttrs.
maAttrs.push_back(aEntry);
2127 const ::ScPatternAttr&
2146 OSL_ENSURE(
mpStyleSheet,
"Xf::createPattern - no parentStyle created" );
2207 if( (pAlignment->getApiData().mnRotation) && pBorder->getApiData().hasAnyOuterBorder() )
2226 if( bAlwaysNew || !
mxFont )
2227 mxFont = std::make_shared<Font>( *
this, true );
2234 mxBorder = std::make_shared<Border>( *
this, true );
2240 if( bAlwaysNew || !
mxFill )
2241 mxFill = std::make_shared<Fill>( *
this, true );
2253 OUString aFmtCode = rAttribs.
getXString( XML_formatCode, OUString() );
2259 sal_Int32 nNumFmtId = -1;
2261 sal_uInt16 nRecCount;
2264 for( sal_uInt16 nRec = 0; !rStrm.
isEof() && (nRec < nRecCount); ++nRec )
2266 sal_uInt16 nSubRecId, nSubRecSize;
2267 sal_Int64 nRecEnd = rStrm.
tell();
2270 nRecEnd += nSubRecSize;
2273 case BIFF12_DXF_FILL_PATTERN:
createFill(
false )->importDxfPattern( rStrm );
break;
2274 case BIFF12_DXF_FILL_FGCOLOR:
createFill(
false )->importDxfFgColor( rStrm );
break;
2275 case BIFF12_DXF_FILL_BGCOLOR:
createFill(
false )->importDxfBgColor( rStrm );
break;
2276 case BIFF12_DXF_FILL_GRADIENT:
createFill(
false )->importDxfGradient( rStrm );
break;
2277 case BIFF12_DXF_FILL_STOP:
createFill(
false )->importDxfStop( rStrm );
break;
2278 case BIFF12_DXF_FONT_COLOR:
createFont(
false )->importDxfColor( rStrm );
break;
2279 case BIFF12_DXF_BORDER_TOP:
createBorder(
false )->importDxfBorder( XLS_TOKEN( top ), rStrm );
break;
2280 case BIFF12_DXF_BORDER_BOTTOM:
createBorder(
false )->importDxfBorder( XLS_TOKEN( bottom ), rStrm );
break;
2281 case BIFF12_DXF_BORDER_LEFT:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
left ), rStrm );
break;
2282 case BIFF12_DXF_BORDER_RIGHT:
createBorder(
false )->importDxfBorder( XLS_TOKEN(
right ), rStrm );
break;
2283 case BIFF12_DXF_FONT_NAME:
createFont(
false )->importDxfName( rStrm );
break;
2284 case BIFF12_DXF_FONT_WEIGHT:
createFont(
false )->importDxfWeight( rStrm );
break;
2285 case BIFF12_DXF_FONT_UNDERLINE:
createFont(
false )->importDxfUnderline( rStrm );
break;
2286 case BIFF12_DXF_FONT_ESCAPEMENT:
createFont(
false )->importDxfEscapement( rStrm );
break;
2287 case BIFF12_DXF_FONT_ITALIC:
createFont(
false )->importDxfFlag( XML_i, rStrm );
break;
2288 case BIFF12_DXF_FONT_STRIKE:
createFont(
false )->importDxfFlag( XML_strike, rStrm );
break;
2289 case BIFF12_DXF_FONT_OUTLINE:
createFont(
false )->importDxfFlag( XML_outline, rStrm );
break;
2290 case BIFF12_DXF_FONT_SHADOW:
createFont(
false )->importDxfFlag( XML_shadow, rStrm );
break;
2291 case BIFF12_DXF_FONT_HEIGHT:
createFont(
false )->importDxfHeight( rStrm );
break;
2292 case BIFF12_DXF_FONT_SCHEME:
createFont(
false )->importDxfScheme( rStrm );
break;
2294 case BIFF12_DXF_NUMFMT_ID: nNumFmtId = rStrm.
readuInt16();
break;
2296 rStrm.
seek( nRecEnd );
2298 OSL_ENSURE( !rStrm.
isEof() && (rStrm.
getRemaining() == 0),
"Dxf::importDxf - unexpected remaining data" );
2305 mxFont->finalizeImport();
2313 if (
mxAlignment->getModel().mnTextDir == OOX_XF_TEXTDIR_RTL )
2323 mxFill->finalizeImport();
2329 mxFont->fillToItemSet(rSet,
false);
2339 mxFill->fillToItemSet(rSet);
2344 const char*
const sppcStyleNames[] =
2355 "Followed Hyperlink",
2401 const sal_Int32 snStyleNamesCount =
static_cast< sal_Int32
>(
SAL_N_ELEMENTS( sppcStyleNames ) );
2403 OUString lclGetBuiltinStyleName( sal_Int32 nBuiltinId, std::u16string_view rName, sal_Int32 nLevel = 0 )
2405 OSL_ENSURE( (0 <= nBuiltinId) && (nBuiltinId < snStyleNamesCount),
"lclGetBuiltinStyleName - unknown built-in style" );
2406 OUStringBuffer aStyleName(
"Excel Built-in ");
2407 if( (0 <= nBuiltinId) && (nBuiltinId < snStyleNamesCount) && (sppcStyleNames[ nBuiltinId ] !=
nullptr) )
2408 aStyleName.appendAscii( sppcStyleNames[ nBuiltinId ] );
2409 else if( !rName.empty() )
2410 aStyleName.append( rName );
2412 aStyleName.append( nBuiltinId );
2413 if( (nBuiltinId == OOX_STYLE_ROWLEVEL) || (nBuiltinId == OOX_STYLE_COLLEVEL) )
2414 aStyleName.append( nLevel );
2415 return aStyleName.makeStringAndClear();
2418 OUString lclCreateStyleName(
const CellStyleModel& rModel )
2420 return rModel.mbBuiltin ? lclGetBuiltinStyleName( rModel.mnBuiltinId, rModel.maName, rModel.mnLevel ) : rModel.
maName;
2448 mpStyleSheet( nullptr )
2491 bool bCreatePattern =
false;
2499 ScResId( STR_STYLENAME_STANDARD ), SfxStyleFamily::Para ) );
2500 OSL_ENSURE(
mpStyleSheet,
"CellStyle::createStyle - Default style not found" );
2501 bCreatePattern =
true;
2509 bCreatePattern =
true;
2532 CellStyleRef xCellStyle = std::make_shared<CellStyle>( *this );
2533 xCellStyle->importCellStyle( rAttribs );
2540 CellStyleRef xCellStyle = std::make_shared<CellStyle>( *this );
2541 xCellStyle->importCellStyle( rStrm );
2550 CellStyleNameMap aCellStyles;
2562 Reference< XStyle > xStyle( xStyleFamilyIA->getByIndex(
nIndex ), UNO_QUERY_THROW );
2563 if( !xStyle->isUserDefined() )
2566 aCellStyles[ xStyle->getName() ];
2582 OUString aStyleName = lclCreateStyleName( rModel );
2586 aCellStyles[ aStyleName ] = rxStyle;
2594 OUString aStyleName = lclCreateStyleName( rModel );
2596 if( aStyleName.getLength() > 0 )
2598 if( aCellStyles.find( aStyleName ) != aCellStyles.end() )
2599 aConflictNameStyles.push_back( rxStyle );
2601 aCellStyles[ aStyleName ] = rxStyle;
2608 for(
const auto& rxStyle : aConflictNameStyles )
2611 OUString aStyleName = lclCreateStyleName( rModel );
2612 OUString aUnusedName;
2615 aUnusedName = aStyleName + OUStringChar(
' ') + OUString::number( ++nIndex );
2617 while( !aCellStyles.try_emplace( aUnusedName, rxStyle ).second );
2656 OSL_ENSURE(
maStylesByXf.count( rModel.
mnXfId ) == 0,
"CellStyleBuffer::insertCellStyle - multiple styles with equal XF identifier" );
2668 pStyleSheet = rxCellStyle->getStyleSheet();
2676 rxCellStyle->createCellStyle();
2677 const OUString& rStyleName = rxCellStyle->getFinalStyleName();
2678 if( !rStyleName.isEmpty() )
2682 return lclGetBuiltinStyleName( OOX_STYLE_NORMAL,
u"" );
2686 mnAutoFormatId( 0 ),
2687 mbApplyNumFmt( false ),
2688 mbApplyFont( false ),
2689 mbApplyAlignment( false ),
2690 mbApplyBorder( false ),
2691 mbApplyFill( false ),
2692 mbApplyProtection( false )
2698 maPalette( rHelper ),
2699 maNumFmts( rHelper ),
2706 FontRef xFont = std::make_shared<Font>( *
this, false );
2723 BorderRef xBorder = std::make_shared<Border>( *
this, false );
2730 FillRef xFill = std::make_shared<Fill>( *
this, false );
2737 XfRef xXf = std::make_shared<Xf>( *this );
2744 XfRef xXf = std::make_shared<Xf>( *this );
2751 DxfRef xDxf = std::make_shared<Dxf>( *this );
2752 maDxfs.push_back( xDxf );
2758 DxfRef xDxf = std::make_shared<Dxf>( *this );
2844 xFont = pXf->getFont();
2852 xDefFont = pXf->getFont();
2856 OSL_ENSURE( xDefFont,
"StylesBuffer::getDefaultFont - no default font found" );
2869 return nBorderId1 == nBorderId2;
2875 return nFillId1 == nFillId2;
2896 if (!rStyleName.isEmpty())
2901 rStyleName =
"ConditionalStyle_" + OUString::number(nDxfId + 1);
2912 pDxf->fillToItemSet(rStyleItemSet);
2917 if (rStyleName.isEmpty())
2925 OUString rStyleName;
2929 rStyleName =
"ExtConditionalStyle_" + OUString::number(nDxfId + 1);
2940 pDxf->fillToItemSet(rStyleItemSet);
2944 if (rStyleName.isEmpty())
2953 pFont->fillToItemSet( rItemSet,
false, bSkipPoolDefs );
2964 pBorder->fillToItemSet( rItemSet, bSkipPoolDefs );
2970 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.
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.
::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)
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.
const SfxItemSet & GetItemSet() const
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.
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.
sal_Int32 scaleToMm100(double fValue, Unit eUnit) const
Converts the passed value to 1/100 millimeters.
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.
bool mbFontUsed
True = cell XF, false = style XF.
OUString ScResId(const char *pId)
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.
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.
static bool isLatinScript(const ScPatternAttr &rPat, ScDocument &rDoc)
Check if the attribute pattern has a number format that only produces latin script output...
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 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).