22 #include <com/sun/star/lang/XServiceInfo.hpp>
23 #include <com/sun/star/frame/XModel.hpp>
24 #include <com/sun/star/form/FormComponentType.hpp>
25 #include <com/sun/star/awt/VisualEffect.hpp>
26 #include <com/sun/star/awt/ScrollBarOrientation.hpp>
27 #include <com/sun/star/awt/XControlModel.hpp>
28 #include <com/sun/star/drawing/XShape.hpp>
29 #include <com/sun/star/form/binding/XBindableValue.hpp>
30 #include <com/sun/star/form/binding/XListEntrySink.hpp>
31 #include <com/sun/star/awt/Size.hpp>
32 #include <com/sun/star/chart/XChartDocument.hpp>
43 #include <unonames.hxx>
62 #include <document.hxx>
67 #include <oox/token/tokens.hxx>
72 #include <oox/token/namespaces.hxx>
76 using ::com::sun::star::uno::UNO_QUERY;
77 using ::com::sun::star::uno::Reference;
78 using ::com::sun::star::uno::Sequence;
79 using ::com::sun::star::lang::XServiceInfo;
80 using ::com::sun::star::beans::XPropertySet;
81 using ::com::sun::star::drawing::XShape;
82 using ::com::sun::star::drawing::XShapes;
83 using ::com::sun::star::frame::XModel;
84 using ::com::sun::star::awt::XControlModel;
85 using ::com::sun::star::form::binding::XBindableValue;
86 using ::com::sun::star::form::binding::XListEntrySink;
87 using ::com::sun::star::script::ScriptEventDescriptor;
88 using ::com::sun::star::table::CellAddress;
89 using ::com::sun::star::table::CellRangeAddress;
90 using ::oox::drawingml::DrawingML;
91 using ::oox::drawingml::ChartExport;
136 rComments->startElement(
FSNS(XML_xdr, XML_col));
137 rComments->writeEscaped( OUString::number( aRect.
Left() ) );
138 rComments->endElement(
FSNS( XML_xdr, XML_col ) );
139 rComments->startElement(
FSNS(XML_xdr, XML_colOff));
140 rComments->writeEscaped( OUString::number( aRect.
Top() ) );
141 rComments->endElement(
FSNS( XML_xdr, XML_colOff ) );
142 rComments->startElement(
FSNS(XML_xdr, XML_row));
143 rComments->writeEscaped( OUString::number( aRect.
Right() ) );
144 rComments->endElement(
FSNS( XML_xdr, XML_row ) );
145 rComments->startElement(
FSNS(XML_xdr, XML_rowOff));
146 rComments->writeEscaped( OUString::number( aRect.
Bottom() ) );
147 rComments->endElement(
FSNS( XML_xdr, XML_rowOff ) );
155 return lcl_hmm2px(value);
160 sal_Int32 nCol = 0, nRow = 0;
161 sal_Int32 nColOff = 0, nRowOff= 0;
174 if( r.
Top() <= aRect.
Top() )
177 nRowOff = aRect.
Top() - r.
Top();
182 nRow-1, lcl_hmm2output( nRowOff, bInEMU ) );
197 if( r.
Top() <= aRect.
Top() )
200 nRowOff = aRect.
Top() - r.
Top();
205 nRow-1, lcl_hmm2output( nRowOff, bInEMU ) );
222 nRow, lcl_hmm2output( aRect.
Bottom() - r.
Top(), bInEMU ));
239 nRow, lcl_hmm2output( aRect.
Bottom() - r.
Top(), bInEMU ));
283 OSL_FAIL(
"XclExpDffAnchorBase::ImplSetFlags - not implemented" );
288 OSL_FAIL(
"XclExpDffAnchorBase::ImplCalcAnchorRect - not implemented" );
293 mnScTab( rRoot.GetCurrScTab() )
312 const Size& rPageSize, sal_Int32 nScaleX, sal_Int32 nScaleY ) :
349 mrEscherEx( rEscherEx ),
350 mnFragmentKey( rEscherEx.InitNextDffFragment() )
357 "XclExpMsoDrawingBase::WriteBody - DFF stream position mismatch" );
371 0xBF, 0x00, 0x08, 0x00, 0x08, 0x00, 0x81, 0x01,
372 0x09, 0x00, 0x00, 0x08, 0xC0, 0x01, 0x40, 0x00,
376 rDffStrm.
WriteBytes(spnDffOpt,
sizeof(spnDffOpt));
379 static const sal_uInt8 spnDffSplitMenuColors[] = {
380 0x0D, 0x00, 0x00, 0x08, 0x0C, 0x00, 0x00, 0x08,
381 0x17, 0x00, 0x00, 0x08, 0xF7, 0x00, 0x00, 0x10
384 rDffStrm.
WriteBytes(spnDffSplitMenuColors,
sizeof(spnDffSplitMenuColors));
406 aBmp.
Convert( BmpConversion::N24Bit );
412 sal_Int32 nWidth = ::std::min< sal_Int32 >( pAccess->
Width(), 0xFFFF );
413 sal_Int32 nHeight = ::std::min< sal_Int32 >( pAccess->
Height(), 0xFFFF );
414 if( (nWidth <= 0) || (nHeight <= 0) )
418 sal_uInt32 nTmpSize =
static_cast< sal_uInt32
>( (nWidth * 3 + nPadding) * nHeight + 12 );
426 <<
static_cast< sal_uInt16
>( nWidth )
427 << static_cast< sal_uInt16 >( nHeight )
431 for( sal_Int32 nY = nHeight - 1; nY >= 0; --nY )
434 for( sal_Int32 nX = 0; nX < nWidth; ++nX )
437 rStrm << rBmpColor.GetBlue() << rBmpColor.GetGreen() << rBmpColor.GetRed();
449 DrawingML aDML(pWorksheet, &rStrm, drawingml::DOCUMENT_XLSX);
450 OUString rId = aDML.WriteImage(
maGraphic );
451 pWorksheet->singleElement(XML_picture,
FSNS(XML_r, XML_id), rId);
473 if( !xCtrlModel.is() )
478 Reference< XBindableValue > xBindable( xCtrlModel, UNO_QUERY );
481 Reference< XServiceInfo > xServInfo( xBindable->getValueBinding(), UNO_QUERY );
485 CellAddress aApiAddress;
497 Reference< XListEntrySink > xEntrySink( xCtrlModel, UNO_QUERY );
498 if( !xEntrySink.is() )
501 Reference< XServiceInfo > xServInfo( xEntrySink->getListEntrySource(), UNO_QUERY );
506 CellRangeAddress aApiRange;
519 sal_uInt16 nFmlaSize = rTokArr.
GetSize();
520 rStrm << nFmlaSize << sal_uInt32( 0 );
537 const tools::Rectangle* pChildAnchor,
const OUString& rClassName, sal_uInt32 nStrmStart, sal_uInt32 nStrmSize ) :
540 maClassName( rClassName ),
541 mnStrmStart( nStrmStart ),
542 mnStrmSize( nStrmSize )
555 ShapeFlag::HaveShapeProperty | ShapeFlag::HaveAnchor | ShapeFlag::OLEShape );
564 if( aCtrlProp.
GetProperty( aCtrlName,
"Name" ) && !aCtrlName.isEmpty() )
570 if( xShapePS.is() && aPropOpt.CreateGraphicProperties( xShapePS,
"MetaFile",
false ) )
595 rStrm << sal_uInt16( 2 );
600 rStrm << sal_uInt16( 0x0031 );
605 sal_uInt16 nClassNameSize =
static_cast< sal_uInt16
>( aClass.
GetSize() );
606 sal_uInt16 nClassNamePad = nClassNameSize & 1;
607 sal_uInt16 nFirstPartSize = 12 + nClassNameSize + nClassNamePad;
610 sal_uInt16 nCellLinkSize = pCellLink ? ((pCellLink->
GetSize() + 7) & 0xFFFE) : 0;
613 sal_uInt16 nSrcRangeSize = pSrcRange ? ((pSrcRange->
GetSize() + 7) & 0xFFFE) : 0;
615 sal_uInt16 nPictFmlaSize = nFirstPartSize + nCellLinkSize + nSrcRangeSize + 18;
618 rStrm << nFirstPartSize
629 rStrm << nCellLinkSize;
633 rStrm << nSrcRangeSize;
656 mbFlatButton( false ),
657 mbFlatBorder( false ),
659 mbScrollHor( false ),
664 namespace FormCompType = css::form::FormComponentType;
665 namespace AwtVisualEffect = css::awt::VisualEffect;
666 namespace AwtScrollOrient = css::awt::ScrollBarOrientation;
669 if( !xShape.is() || !aCtrlProp.
Is() )
672 mnHeight = xShape->getSize().Height;
677 sal_Int16 nClassId = 0;
725 OUString aDescrText = pSdrObj->GetDescription();
726 if(!aDescrText.isEmpty())
770 sal_Int16 nApiButton = AwtVisualEffect::LOOK3D;
771 sal_Int16 nApiBorder = AwtVisualEffect::LOOK3D;
774 case FormCompType::LISTBOX:
775 case FormCompType::COMBOBOX:
778 case FormCompType::CHECKBOX:
779 case FormCompType::RADIOBUTTON:
780 aCtrlProp.
GetProperty( nApiButton,
"VisualEffect" );
784 case FormCompType::COMMANDBUTTON:
785 nApiBorder = AwtVisualEffect::LOOK3D;
788 case FormCompType::FIXEDTEXT:
793 case FormCompType::SCROLLBAR:
794 case FormCompType::SPINBUTTON:
795 nApiButton = AwtVisualEffect::LOOK3D;
799 case FormCompType::GROUPBOX:
800 nApiBorder = AwtVisualEffect::LOOK3D;
807 sal_Int16 nApiState = 0;
821 case FormCompType::LISTBOX:
824 Sequence< sal_Int16 > aSelection;
825 if( aCtrlProp.
GetProperty( aSelection,
"SelectedItems" ) )
827 if( aSelection.hasElements() )
840 case FormCompType::COMBOBOX:
844 if( aCtrlProp.
GetProperty( aStringList,
"StringItemList" ) &&
846 aStringList.hasElements() && !aDefText.isEmpty() )
861 case FormCompType::SCROLLBAR:
863 sal_Int32 nApiValue = 0;
864 if( aCtrlProp.
GetProperty( nApiValue,
"ScrollValueMin" ) )
866 if( aCtrlProp.
GetProperty( nApiValue,
"ScrollValueMax" ) )
868 if( aCtrlProp.
GetProperty( nApiValue,
"ScrollValue" ) )
870 if( aCtrlProp.
GetProperty( nApiValue,
"LineIncrement" ) )
872 if( aCtrlProp.
GetProperty( nApiValue,
"BlockIncrement" ) )
874 if( aCtrlProp.
GetProperty( nApiValue,
"Orientation" ) )
875 mbScrollHor = nApiValue == AwtScrollOrient::HORIZONTAL;
879 case FormCompType::SPINBUTTON:
881 sal_Int32 nApiValue = 0;
882 if( aCtrlProp.
GetProperty( nApiValue,
"SpinValueMin" ) )
884 if( aCtrlProp.
GetProperty( nApiValue,
"SpinValueMax" ) )
886 if( aCtrlProp.
GetProperty( nApiValue,
"SpinValue" ) )
888 if( aCtrlProp.
GetProperty( nApiValue,
"SpinIncrement" ) )
890 if( aCtrlProp.
GetProperty( nApiValue,
"Orientation" ) )
891 mbScrollHor = nApiValue == AwtScrollOrient::HORIZONTAL;
898 if( xCtrlModel.is() )
900 Reference< XBindableValue > xBindable( xCtrlModel, UNO_QUERY );
903 Reference< XServiceInfo > xServInfo( xBindable->getValueBinding(), UNO_QUERY );
907 CellAddress aApiAddress;
946 sal_uInt16 nStyle = 0;
995 sal_uInt16 nStyle = 0;
1003 rStrm << static_cast< sal_uInt16 >( (pSrcRange->GetSize() + 7) & 0xFFFE );
1007 rStrm << sal_uInt16( 0 );
1009 rStrm << nEntryCount <<
mnSelEntry << nStyle << sal_uInt16( 0 );
1016 if( rItem < nEntryCount )
1017 aSelEx[ rItem ] = 1;
1018 rStrm.
Write( aSelEx.data(), aSelEx.size() );
1023 rStrm << sal_uInt16( 0 ) << mnLineCount << sal_uInt16( 0 ) << sal_uInt16( 0 );
1052 sal_uInt16 nStyle = 0;
1056 rStrm << sal_uInt32( 0 )
1072 sal_uInt16 nOrient = 0;
1078 rStrm << sal_uInt32( 0 )
1100 pDrawing->startElement(
FSNS(XML_mc, XML_AlternateContent),
1102 pDrawing->startElement(
FSNS(XML_mc, XML_Choice),
1104 XML_Requires,
"a14");
1106 pDrawing->startElement(
FSNS(XML_xdr, XML_twoCellAnchor), XML_editAs,
"oneCell");
1108 pDrawing->startElement(
FSNS(XML_xdr, XML_from));
1110 pDrawing->endElement(
FSNS(XML_xdr, XML_from));
1111 pDrawing->startElement(
FSNS(XML_xdr, XML_to));
1112 lcl_WriteAnchorVertex(pDrawing,
maAreaTo);
1113 pDrawing->endElement(
FSNS(XML_xdr, XML_to));
1115 pDrawing->startElement(
FSNS(XML_xdr, XML_sp));
1118 pDrawing->startElement(
FSNS(XML_xdr, XML_nvSpPr));
1120 pDrawing->singleElement(
FSNS(XML_xdr, XML_cNvPr),
1121 XML_id, OString::number(
mnShapeId).getStr(),
1125 pDrawing->singleElement(
FSNS(XML_xdr, XML_cNvSpPr));
1127 pDrawing->endElement(
FSNS(XML_xdr, XML_nvSpPr));
1130 pDrawing->startElement(
FSNS(XML_xdr, XML_spPr));
1133 pDrawing->startElement(
FSNS(XML_a, XML_xfrm));
1135 pDrawing->singleElement(
FSNS(XML_a, XML_off),
1138 pDrawing->singleElement(
FSNS(XML_a, XML_ext),
1142 pDrawing->endElement(
FSNS(XML_a, XML_xfrm));
1145 pDrawing->startElement(
FSNS(XML_a, XML_prstGeom), XML_prst,
"rect");
1147 pDrawing->singleElement(
FSNS(XML_a, XML_avLst));
1149 pDrawing->endElement(
FSNS(XML_a, XML_prstGeom));
1151 pDrawing->endElement(
FSNS(XML_xdr, XML_spPr));
1155 pDrawing->startElement(
FSNS(XML_xdr, XML_txBody));
1157 #define DEFLRINS 254
1158 #define DEFTBINS 127
1159 sal_Int32 nLeft, nRight, nTop, nBottom;
1171 mAny = rXPropSet->getPropertyValue(
"TextLeftDistance");
1172 if (mAny.hasValue())
1175 mAny = rXPropSet->getPropertyValue(
"TextRightDistance");
1176 if (mAny.hasValue())
1179 mAny = rXPropSet->getPropertyValue(
"TextUpperDistance");
1180 if (mAny.hasValue())
1183 mAny = rXPropSet->getPropertyValue(
"TextLowerDistance");
1184 if (mAny.hasValue())
1194 pDrawing->startElementNS(XML_a, XML_bodyPr,
1202 bool bTextAutoGrowHeight =
false;
1208 mAny = rXPropSet->getPropertyValue(
"TextAutoGrowHeight");
1209 if (mAny.hasValue())
1210 mAny >>= bTextAutoGrowHeight;
1216 pDrawing->singleElementNS(XML_a, (bTextAutoGrowHeight ? XML_spAutoFit : XML_noAutofit));
1219 pDrawing->endElementNS(XML_a, XML_bodyPr);
1222 pDrawing->startElementNS(XML_a, XML_p);
1223 pDrawing->startElementNS(XML_a, XML_r);
1224 pDrawing->startElementNS(XML_a, XML_t);
1226 pDrawing->endElementNS(XML_a, XML_t);
1227 pDrawing->endElementNS(XML_a, XML_r);
1228 pDrawing->endElementNS(XML_a, XML_p);
1231 pDrawing->endElement(
FSNS(XML_xdr, XML_txBody));
1234 pDrawing->endElement(
FSNS(XML_xdr, XML_sp));
1235 pDrawing->singleElement(
FSNS(XML_xdr, XML_clientData));
1237 pDrawing->endElement(
FSNS(XML_xdr, XML_twoCellAnchor));
1238 pDrawing->endElement(
FSNS( XML_mc, XML_Choice ) );
1239 pDrawing->endElement(
FSNS( XML_mc, XML_AlternateContent ) );
1245 OUString sIdFormControlPr;
1251 const sal_Int32 nDrawing = DrawingML::getNewDrawingUniqueId();
1256 "application/vnd.ms-excel.controlproperties+xml",
1258 &sIdFormControlPr );
1266 pFormControl->write(
"<formControlPr xmlns=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/main\" objectType=\"CheckBox\"");
1268 pFormControl->write(
" checked=\"Checked\"");
1270 pFormControl->write(
" autoLine=\"false\"");
1273 pFormControl->write(
" print=\"true\"");
1275 pFormControl->write(
" print=\"false\"");
1284 pFormControl->write(
" fmlaLink=\"");
1285 if (aCellLink.indexOf(
'!') < 0)
1288 pFormControl->write(
"!");
1290 pFormControl->write(aCellLink);
1291 pFormControl->write(
"\"");
1294 pFormControl->write(
" lockText=\"1\" noThreeD=\"1\"/>");
1301 return sIdFormControlPr;
1313 rWorksheet->startElement(
FSNS(XML_mc, XML_AlternateContent),
1315 rWorksheet->startElement(
FSNS(XML_mc, XML_Choice), XML_Requires,
"x14");
1317 rWorksheet->startElement(
1319 XML_shapeId, OString::number(
mnShapeId).getStr(),
1320 FSNS(XML_r, XML_id), aIdFormControlPr,
1323 rWorksheet->write(
"<controlPr defaultSize=\"0\" locked=\"1\" autoFill=\"0\" autoLine=\"0\" autoPict=\"0\"");
1326 rWorksheet->write(
" print=\"true\"");
1328 rWorksheet->write(
" print=\"false\"");
1332 rWorksheet->write(
" altText=\"");
1334 rWorksheet->write(
"\"");
1337 rWorksheet->write(
">");
1339 rWorksheet->startElement(XML_anchor, XML_moveWithCells,
"true", XML_sizeWithCells,
"false");
1340 rWorksheet->startElement(XML_from);
1341 lcl_WriteAnchorVertex(rWorksheet,
maAreaFrom);
1342 rWorksheet->endElement(XML_from);
1343 rWorksheet->startElement(XML_to);
1344 lcl_WriteAnchorVertex(rWorksheet,
maAreaTo);
1345 rWorksheet->endElement(XML_to);
1346 rWorksheet->endElement( XML_anchor );
1348 rWorksheet->write(
"</controlPr>");
1350 rWorksheet->endElement(XML_control);
1351 rWorksheet->endElement(
FSNS( XML_mc, XML_Choice ) );
1352 rWorksheet->endElement(
FSNS( XML_mc, XML_AlternateContent ) );
1391 if(
SdrOle2Obj* pSdrOleObj = dynamic_cast< SdrOle2Obj* >( pSdrObj ) )
1396 Reference< XModel >
xModel;
1397 aShapeProp.GetProperty( xModel,
"Model" );
1399 css::awt::Rectangle aBoundRect;
1400 aShapeProp.GetProperty( aBoundRect,
"BoundRect" );
1402 mxChart = std::make_shared<XclExpChart>(
GetRoot(), xModel, aChartRect );
1422 pDrawing->startElement(
FSNS( XML_xdr, XML_twoCellAnchor ),
1423 XML_editAs,
"oneCell" );
1428 ChartExport aChartExport(XML_xdr, pDrawing,
mxChartDoc, &rStrm, drawingml::DOCUMENT_XLSX);
1429 auto pURLTransformer = std::make_shared<ScURLTransformer>(*mpDoc);
1430 aChartExport.SetURLTranslator(pURLTransformer);
1431 static sal_Int32 nChartCount = 0;
1434 aChartExport.WriteChartObj(
mxShape, nID, nChartCount );
1438 pDrawing->singleElement(
FSNS( XML_xdr, XML_clientData)
1442 pDrawing->endElement(
FSNS( XML_xdr, XML_twoCellAnchor ) );
1451 const ScPostIt* pScNote,
const OUString& rAddText)
1456 ,
mbVisible(pScNote && pScNote->IsCaptionShown())
1459 , mbAutoScale(false)
1462 , mbColHidden(false)
1463 , mbRowHidden(false)
1469 aNoteText = pScNote->
GetText();
1495 SfxItemSet aItemSet = pCaption->GetMergedItemSet();
1496 meTVA = pCaption->GetTextVerticalAdjust();
1497 meTHA = pCaption->GetTextHorizontalAdjust();
1498 mbAutoScale = pCaption->GetFitToSize() != drawing::TextFitToSizeType_NONE;
1499 mbLocked = pCaption->IsMoveProtect() || pCaption->IsResizeProtect();
1532 sal_uInt16 nCharsLeft =
static_cast< sal_uInt16
>(
maNoteText.getLength() );
1542 rStrm << static_cast< sal_uInt16 >(
maScPos.
Row() )
1543 << static_cast< sal_uInt16 >(
maScPos.
Col() )
1549 rStrm << sal_uInt16( 0xFFFF )
1553 rStrm.
Write( pcBuffer, nWriteChars );
1556 pcBuffer += nWriteChars;
1557 nCharsLeft = nCharsLeft - nWriteChars;
1576 sal_uInt16 nFlags = 0;
1579 rStrm << static_cast< sal_uInt16 >(
maScPos.
Row() )
1580 << static_cast< sal_uInt16 >(
maScPos.
Col() )
1591 rComments->startElement( XML_comment,
1593 XML_authorId, OString::number(nAuthorId)
1596 rComments->startElement(XML_text);
1600 rComments->endElement( XML_text );
1606 #if 1//def XLSX_OOXML_FUTURE
1609 rComments->startElement(
FSNS(XML_mc, XML_AlternateContent));
1610 rComments->startElement(
FSNS(XML_mc, XML_Choice), XML_Requires,
"v2");
1611 rComments->startElement( XML_commentPr,
1617 XML_textHAlign, ToHorizAlign(
meTHA ),
1618 XML_textVAlign, ToVertAlign(
meTVA ) );
1619 rComments->startElement(XML_anchor, XML_moveWithCells,
"false", XML_sizeWithCells,
"false");
1620 rComments->startElement(
FSNS(XML_xdr, XML_from));
1622 rComments->endElement(
FSNS( XML_xdr, XML_from ) );
1623 rComments->startElement(
FSNS(XML_xdr, XML_to));
1625 rComments->endElement(
FSNS( XML_xdr, XML_to ) );
1626 rComments->endElement( XML_anchor );
1627 rComments->endElement( XML_commentPr );
1629 rComments->endElement(
FSNS( XML_mc, XML_Choice ) );
1630 rComments->startElement(
FSNS(XML_mc, XML_Fallback));
1632 rComments->endElement(
FSNS( XML_mc, XML_Fallback ) );
1633 rComments->endElement(
FSNS( XML_mc, XML_AlternateContent ) );
1636 rComments->endElement( XML_comment );
1658 if( !aMacroName.isEmpty() )
1668 if( !rMacroName.isEmpty() )
1685 if ( pInfo && !pInfo->
GetMacro().isEmpty() )
1703 : mnTab( nTab ), mrNotes( rNotes )
1716 "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
1721 rComments->startElement( XML_comments,
1726 FSNS( XML_mc, XML_Ignorable ),
"v2" );
1728 rComments->startElement( XML_comments,
1732 rComments->startElement(XML_authors);
1734 typedef std::set<OUString> Authors;
1738 for(
size_t i = 0;
i < nNotes; ++
i )
1743 for(
const auto& rAuthor : aAuthors )
1745 rComments->startElement(XML_author);
1746 rComments->writeEscaped( rAuthor );
1747 rComments->endElement( XML_author );
1750 rComments->endElement( XML_authors );
1751 rComments->startElement(XML_commentList);
1753 Authors::const_iterator aAuthorsBegin = aAuthors.begin();
1754 for(
size_t i = 0;
i < nNotes; ++
i )
1757 Authors::const_iterator aAuthor = aAuthors.find(
1759 sal_Int32 nAuthorId =
distance( aAuthorsBegin, aAuthor );
1760 xNote->WriteXml( nAuthorId, rStrm );
1763 rComments->endElement( XML_commentList );
1764 rComments->endElement( XML_comments );
1809 OSL_ENSURE(
mxEscherEx->GetGroupLevel() <= 1,
"XclExpObjectManager::ProcessDrawing - still groups open?" );
1821 OSL_ENSURE(
mxEscherEx->GetGroupLevel() <= 1,
"XclExpObjectManager::ProcessDrawing - still groups open?" );
1835 return mxObjList->GetMsodrawingPerSheet();
1845 return mxObjList->Add( std::move(pObjRec) );
1857 mxTempFile = std::make_shared<::utl::TempFile>();
1866 mxDffStrm = std::make_unique<SvMemoryStream>();
1868 mxDffStrm->SetEndian( SvStreamEndian::LITTLE );
1875 mnScaleX( nScaleX ),
SvStream & WriteXclObjAnchor(SvStream &rStrm, const XclObjAnchor &rAnchor)
XclFontPropSetHelper & GetFontPropSetHelper() const
Returns the property set helper for fonts.
This class stores an unformatted or formatted string for Excel export.
const sal_uInt16 EXC_NOTE5_MAXLEN
bool mbRowHidden
Column containing the comment is hidden.
virtual void WriteData(EscherEx &rEscherEx, const tools::Rectangle &rRect) override
Called from SVX DFF converter.
SdrTextHorzAdjust meTHA
true = permanently visible.
XclExpDffAnchorBase(const XclExpRoot &rRoot, sal_uInt16 nFlags=0)
Constructs a dummy client anchor.
SC_DLLPUBLIC void Format(OStringBuffer &r, ScRefFlags nFlags, const ScDocument *pDocument=nullptr, const Details &rDetails=detailsOOOa1) const
std::size_t Write(const void *pData, std::size_t nBytes)
Writes nBytes bytes from memory.
static OString ToOString(const Color &rColor)
ScAddress maScPos
Text and formatting data (OOXML)
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the record (without record header).
const sal_uInt16 EXC_ID_OBJSBS
Radio button group data.
tools::Long Height() const
rtl_TextEncoding GetTextEncoding() const
Returns the text encoding to import/export byte strings.
void WriteCellLinkSubRec(XclExpStream &rStrm, sal_uInt16 nSubRecId)
Writes a subrecord containing a cell link, or nothing, if no link present.
sal_uInt16 mnScrollMin
Scrollbar: Current value.
The MSODRAWINGGROUP record contains the DGGCONTAINER with global DFF data such as the picture contain...
virtual const tools::Rectangle & GetCurrentBoundRect() const
sal_uInt32 mnStrmStart
Class name of the control.
const XclExpString & GetAuthor() const
#define ESCHER_Prop_fshadowObscured
bool IsExportTab(SCTAB nScTab) const
Returns true, if the specified Calc sheet will be exported.
std::unique_ptr< XclExpMsoDrawing > pClientTextbox
virtual void Save(XclExpStream &rStrm) override
Writes the BITMAP record.
SC_DLLPUBLIC bool IsNegativePage(SCTAB nTab) const
SvStream & WriteUInt16(sal_uInt16 nUInt16)
const OUString & GetMacro() const
const sal_uInt16 EXC_OBJTYPE_UNKNOWN
This class is used to export Excel record streams.
virtual void SaveXml(XclExpXmlStream &rStrm) override
#define ESCHER_Prop_pictureId
const sal_uInt16 EXC_OBJ_SCROLLBAR_DEFFLAGS
const sal_uInt16 EXC_ID_NOTE
sal_uLong GetStreamPos() const
sal_uInt16 mnRX
Y offset in top row (1/256 of row height).
sal_uInt16 mnObjId
Calc cell address of the note.
const sal_uInt16 EXC_OBJ_INVALID_ID
sal_Int32 findValue(const css::uno::Sequence< T1 > &_rList, const T2 &_rValue)
XclExpLinkManager & GetLocalLinkManager() const
Returns the local link manager for the current sheet.
static OUString ToOUString(const char *s)
rtl::Reference< XclExpRecordBase > CreateDrawingGroup()
Creates and returns the MSODRAWINGGROUP record containing global DFF data in the DGGCONTAINER.
XclTokenArrayRef mxMacroLink
const sal_uInt16 EXC_ID_OBJPICTFMLA
Option flags.
std::unique_ptr< XclObj > RemoveLastObj()
const OUString & GetAuthor() const
Returns the author date of this note.
void ConvertSheetLinks(css::uno::Reference< css::drawing::XShape > const &xShape)
Tries to get spreadsheet cell link and source range link from the passed shape.
static ScMacroInfo * GetMacroInfo(SdrObject *pObj, bool bCreate=false)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
sal_uInt16 Insert(const XclFontData &rFontData, XclExpColorType eColorType, bool bAppFont=false)
Inserts a new font with the passed font data into the buffer if not present.
const sal_uInt8 EXC_OBJ_LISTBOX_MULTI
Single selection.
const sal_uInt16 EXC_ID_MSODRAWINGGROUP
OoxmlVersion getVersion() const
constexpr TypedWhichId< XFillStyleItem > XATTR_FILLSTYLE(XATTR_FILL_FIRST)
virtual void WriteSubRecs(XclExpStream &rStrm) override
const sal_uInt16 EXC_OBJ_SCROLLBAR_HOR
This struct helps reading and writing Excel fonts.
virtual void Save(XclExpStream &rStrm) override
Writes the NOTE record, if the respective Escher object is present.
void Commit(SvStream &rSt, sal_uInt16 nVersion=3, sal_uInt16 nRecType=ESCHER_OPT)
XclExpFormulaCompiler & GetFormulaCompiler() const
Returns the formula compiler to produce formula token arrays.
void SetRecSize(std::size_t nRecSize)
Sets a new record size prediction.
void EndDocument()
Finalizes the object manager after conversion of all sheets.
#define ESCHER_ClientAnchor
bool mbAutoFill
Position & Size locked.
virtual ~XclExpObjectManager() override
sal_uInt16 mnScrollPage
Scrollbar: Single step.
sal_uInt16 mnHeight
Font color.
bool GetBoolProperty(const OUString &rPropName) const
Gets the specified Boolean property from the property set.
std::shared_ptr< XclEscherEx > mxEscherEx
bool mbFlatButton
Scrollbar: Page step.
#define SC_UNONAME_BOUNDCELL
const sal_uInt16 EXC_IMGDATA_BMP
sal_uInt16 GetSize() const
Returns the size of the token array in bytes.
void FindExtSheet(sal_uInt16 &rnExtSheet, sal_uInt16 &rnXclTab, SCTAB nScTab, XclExpRefLogEntry *pRefLogEntry=nullptr)
Searches for an EXTERNSHEET index for the given Calc sheet.
virtual void AddShape(sal_uInt32 nShpInstance, ShapeFlag nFlagIds, sal_uInt32 nShapeID=0)
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
XclExpShapeObj(XclExpObjectManager &rRoot, css::uno::Reference< css::drawing::XShape > const &xShape, ScDocument *pDoc)
virtual void ImplSetFlags(const SdrObject &rSdrObj) override
void SetSdrObject(const SdrObject &rSdrObj)
Sets the anchor position and flags according to the passed SdrObject.
bool SetMacroLink(const css::script::ScriptEventDescriptor &rEvent)
Sets the name of a macro attached to this control.
#define ESCHER_ClientTextbox
void SetPrintable(bool b)
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
void StartSheet()
Initializes the object manager for a new sheet.
void SetFlags(const SdrObject &rSdrObj)
Sets the flags according to the passed SdrObject.
virtual ~XclExpControlHelper() override
const sal_uInt16 EXC_ID_OBJFLAGS
Clipboard format.
const sal_uInt16 EXC_ID_OBJSBSFMLA
Note data.
XAdjustmentListener.adjustmentValueChanged.
XTextListener.textChanged.
sal_Int16 mnLineCount
Checked/unchecked state.
uno::Reference< drawing::XShape > const mxShape
#define SC_SERVICENAME_VALBIND
XclExpNote(const XclExpRoot &rRoot, const ScAddress &rScPos, const ScPostIt *pScNote, const OUString &rAddText)
Constructs a NOTE record from the passed note object and/or the text.
XclExpOcxControlObj(XclExpObjectManager &rObjMgr, css::uno::Reference< css::drawing::XShape > const &xShape, const tools::Rectangle *pChildAnchor, const OUString &rClassName, sal_uInt32 nStrmStart, sal_uInt32 nStrmSize)
SvStream & GetStream() const
DstType sequenceToContainer(const css::uno::Sequence< SrcType > &i_Sequence)
Access to global data from other classes.
const sal_uInt16 EXC_FONT_APP
#define ESCHER_Prop_wzName
const sal_uInt16 EXC_OBJ_LISTBOX_FLAT
const css::uno::Reference< css::chart::XChartDocument > & GetChartDoc() const
static void WriteFormulaSubRec(XclExpStream &rStrm, sal_uInt16 nSubRecId, const XclTokenArray &rTokArr)
Writes a formula subrecord with special style only valid in OBJ records.
static std::unique_ptr< SvStream > CreateStream(const OUString &rFileName, StreamMode eOpenMode, css::uno::Reference< css::awt::XWindow > xParentWin=nullptr)
const sal_uInt16 EXC_OBJTYPE_SCROLLBAR
OUString getNamespaceURL(sal_Int32 nNSID) const
const sal_uInt8 EXC_OBJ_LISTBOX_SINGLE
Additional class containing cell annotation data.
bool SetMacroLink(const css::script::ScriptEventDescriptor &rEvent, const XclTbxEventType &nEventType)
Sets the name of a macro for object of passed type.
Scanline GetScanline(tools::Long nY) const
XclExpDffEmbeddedAnchor(const XclExpRoot &rRoot, const Size &rPageSize, sal_Int32 nScaleX, sal_Int32 nScaleY)
sal_uInt16 GetSourceEntryCount() const
Returns the number of entries in the source range, or 0, if no source set.
void ImplWriteAnchor(const SdrObject *pSdrObj, const tools::Rectangle *pChildAnchor)
void WriteArray(XclExpStream &rStrm) const
Writes the tokens of the token array (without size field).
sal_uInt32 GetDffFragmentSize(sal_uInt32 nFragmentKey)
Returns the size of the specified DFF stream fragment.
#define ESCHER_Prop_wzDescription
void PushStream(sax_fastparser::FSHelperPtr const &aStream)
const ::basegfx::B2DSize maPageSize
void SaveSheetXml(XclExpXmlStream &rStrm, const OUString &aIdFormControlPr) const
#define ESCHER_ShpInst_HostControl
const sal_uInt16 EXC_IMGDATA_WIN
#define ESCHER_Prop_LockAgainstGrouping
const sal_uInt16 EXC_ESC_ANCHOR_POSLOCKED
Base class for records holding DFF stream fragments.
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
sal_uInt16 mnScrollStep
Scrollbar: Maximum value.
OString maNoteText
Name of the author.
sax_fastparser::FSHelperPtr & GetCurrentStream()
OUString getRelationship(Relationship eRelationship)
tools::Rectangle maAreaTo
virtual void ImplCalcAnchorRect(const tools::Rectangle &rRect, MapUnit eMapUnit) override
SvStream * QueryPictureStream()
Represents the position (anchor) of a shape in an embedded draw page.
virtual void WriteBody(XclExpStream &rStrm) override
Writes the body of the NOTE record.
bool mbPrint
Scrollbar: true = horizontal.
XclExpMsoDrawingGroup(XclEscherEx &rEscherEx)
void UpdateDffFragmentEnd()
Called after some data has been written to the DFF stream, to update the end position of the DFF frag...
bool mbAutoScale
text vertical adjust
void WriteXml(sal_Int32 nAuthorId, XclExpXmlStream &rStrm)
const sal_uInt16 EXC_OBJ_SCROLLBAR_FLAT
const XclTokenArray * GetCellLinkTokArr() const
Returns the Excel token array of the cell link, or 0, if no link present.
#define ESCHER_Prop_fNoLineDrawDash
sal_uInt32 mnBY
X offset in right column (1/1024 of column width).
void WriteSbs(XclExpStream &rStrm)
Writes the ftSbs sub structure containing scrollbar data.
static void WriteFormula(XclExpStream &rStrm, const XclTokenArray &rTokArr)
Writes a formula with special style only valid in OBJ records.
const sal_uInt16 EXC_OBJTYPE_DROPDOWN
const sal_uInt16 EXC_OBJTYPE_GROUPBOX
SC_DLLPUBLIC bool ColHidden(SCCOL nCol, SCTAB nTab, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
virtual void SaveXml(XclExpXmlStream &rStrm) override
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt16 EXC_ID_MSODRAWING
const sal_uInt16 EXC_OBJ_GROUPBOX_FLAT
Dropdown style: filtered.
static OUString ExtractFromMacroDescriptor(const css::script::ScriptEventDescriptor &rDescriptor, XclTbxEventType eEventType)
Tries to extract an Excel macro name from the passed macro descriptor.
XclExpAddressConverter & GetAddressConverter() const
Returns the address converter.
tools::Rectangle maCommentFrom
Row containing the comment is hidden.
ScAddress mxCellLinkAddress
Number of entries in source range.
XclExpDffDropDownAnchor(const XclExpRoot &rRoot, const ScAddress &rScPos)
SVXCORE_DLLPUBLIC SdrObject * GetSdrObjectFromXShape(const css::uno::Reference< css::drawing::XShape > &xShape)
const sal_uInt8 EXC_OBJ_VER_CENTER
#define ESCHER_Prop_WrapText
Base class for DFF client anchor atoms used in spreadsheets.
static ScAnchorType GetAnchorType(const SdrObject &)
const sal_uInt16 EXC_OBJ_CHECKBOX_FLAT
bool mbMultiSel
False = 3D border style; True = Flat border style.
virtual void ImplCalcAnchorRect(const tools::Rectangle &rRect, MapUnit eMapUnit) override
const sal_uInt16 EXC_OBJ_SCROLLBAR_MAX
const sal_uInt16 EXC_OBJTYPE_LABEL
const sal_uInt8 EXC_OBJ_HOR_CENTER
#define SC_UNONAME_CELLRANGE
sal_uInt16 mnEntryCount
Formula for source data range.
sal_Int64 convertHmmToEmu(sal_Int32 nValue)
const sal_uInt16 EXC_ESC_ANCHOR_LOCKED
tools::Long Width() const
void InitStream(bool bTempFile)
std::size_t WriteBytes(const void *pData, std::size_t nSize)
virtual void WriteSubRecs(XclExpStream &rStrm) override
static void WriteFromTo(XclExpXmlStream &rStrm, const XclObjAny &rObj)
OUString GetText() const
Returns the caption text of this note.
void EndRecord()
Checks and corrects real record length.
const sal_uInt16 EXC_ID_OBJGBODATA
Scroll bar/list box/combo box cell link.
XclExpStringRef mpNoteContents
Main text of the note (<=BIFF7).
const sal_uInt16 EXC_NOTE_VISIBLE
SdrCaptionObj * GetOrCreateCaption(const ScAddress &rPos) const
Returns the caption object of this note.
std::unique_ptr< SvStream > mxDffStrm
XclExpNameManager & GetNameManager() const
Returns the buffer that contains internal defined names.
XclExpTabInfo & GetTabInfo() const
Returns the buffer for Calc->Excel sheet index conversion.
#define ESCHER_Prop_FitTextToShape
sal_uInt16 mnScrollMax
Scrollbar: Minimum value.
virtual ~XclExpShapeObj() override
sal_uInt16 mnState
Height of the control.
SC_DLLPUBLIC tools::Rectangle GetMMRect(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bHiddenAsZero=true) const
XclExpTbxControlObj(XclExpObjectManager &rObjMgr, css::uno::Reference< css::drawing::XShape > const &xShape, const tools::Rectangle *pChildAnchor)
BitmapEx GetBitmapEx(const GraphicConversionParameters &rParameters=GraphicConversionParameters()) const
virtual void ImplSetFlags(const SdrObject &rSdrObj)
virtual void ImplCalcAnchorRect(const tools::Rectangle &rRect, MapUnit eMapUnit)
#define MSPROP_DESCRIPTION_MAX_LEN
tools::Rectangle maAreaFrom
void CopyFromStream(SvStream &rInStrm, sal_uInt64 nBytes=STREAM_SEEK_TO_END)
Copies nBytes bytes from current position of the stream rInStrm.
XclExpImgData(const Graphic &rGraphic, sal_uInt16 nRecId)
const XclTokenArray * GetSourceRangeTokArr() const
Returns the Excel token array of the source range, or 0, if no link present.
std::shared_ptr< FastSerializerHelper > FSHelperPtr
virtual void ImplSetFlags(const SdrObject &rSdrObj) override
const sal_uInt16 EXC_ID_OBJCBLS
OLE link formula.
const sal_uInt16 EXC_OBJ_CHECKBOX_CHECKED
static void FillScAddress(ScAddress &rScAddress, const css::table::CellAddress &rApiAddress)
const XclExpRoot & mrRoot
sal_Int16 mnSelEntry
Combobox dropdown line count.
const sal_uInt16 EXC_OBJ_CHECKBOX_TRISTATE
virtual ~XclExpChartObj() override
const XclExpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
std::unique_ptr< XclTxo > pTxo
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
sal_uInt32 mnFragmentKey
Reference to the DFF converter containing the DFF stream.
#define ESCHER_Prop_fillBackColor
bool Is() const
Returns true, if the contained XPropertySet interface is valid.
void ReadFontProperties(XclFontData &rFontData, const ScfPropertySet &rPropSet, XclFontPropSetType eType, sal_Int16 nScript=-1)
Reads all font properties from the passed property set.
Bitmap GetBitmap(Color aTransparentReplaceColor) const
XclMacroHelper(const XclExpRoot &rRoot)
Token array containing a link to an attached macro.
sal_uInt16 mnFlags
The client anchor data.
static OUString GetStreamName(const char *sStreamDir, const char *sStream, sal_Int32 nId)
sal_uInt32 GetDffFragmentPos(sal_uInt32 nFragmentKey)
Returns the position of the specified DFF stream fragment.
One or more MSODRAWING records contain the DFF stream data for a drawing shape.
SdrTextVertAdjust meTVA
text horizontal adjust
const sal_uInt16 EXC_OBJTYPE_CHECKBOX
#define ESCHER_Prop_fillColor
XclTbxEventType meEventType
Indexes of all selected entries in a multi selection.
RecType * GetRecord(size_t nPos) const
Returns reference to an existing record or empty reference on error.
#define ESCHER_DggContainer
Binary representation of an Excel token array.
const sal_uInt16 EXC_OBJ_CHECKBOX_UNCHECKED
XclTokenArrayRef mxSrcRange
Formula for linked cell.
A wrapper for a UNO property set.
constexpr TypedWhichId< XFillColorItem > XATTR_FILLCOLOR(XATTR_FILL_FIRST+1)
rtl::Reference< XclExpRecordBase > ProcessDrawing(const SdrPage *pSdrPage)
Processes a drawing page and returns the record block containing all related records (MSODRAWING...
#define ESCHER_SpContainer
OUString SaveControlPropertiesXml(XclExpXmlStream &rStrm) const
const sal_Unicode EXC_EXTSH_OWNDOC
const sal_uInt16 EXC_OBJTYPE_SPIN
virtual void CloseContainer()
sal_uInt16 mnRecId
The VCL graphic.
const sal_uInt16 EXC_ESC_ANCHOR_SIZELOCKED
void AddAtom(sal_uInt32 nAtomSitze, sal_uInt16 nRecType, int nRecVersion=0, int nRecInstance=0)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
sal_uInt16 InsertMacroCall(const OUString &rMacroName, bool bVBasic, bool bFunc, bool bHidden=false)
Searches or inserts a defined name describing a macro name.
static SC_DLLPUBLIC OUString addToken(const OUString &rTokenList, const OUString &rToken, sal_Unicode cSep, sal_Int32 nSepCount=1, bool bForceSep=false)
Adds the string rToken to rTokenList, using a list separator character.
css::uno::Reference< css::chart::XChartDocument > mxChartDoc
#define ESCHER_Prop_lineColor
XclExpControlHelper(const XclExpRoot &rRoot)
rtl::Reference< XclExpObjList > mxObjList
std::size_t GetSize() const
Returns the byte count the whole string will take on export.
#define ESCHER_Prop_fNoFillHitTest
bool Convert(BmpConversion eConversion)
bool mbFlatBorder
False = 3D button style; True = Flat button style.
void setShapeId(sal_Int32 aShapeId)
virtual void OpenContainer(sal_uInt16 nEscherContainer, int nRecInstance=0)
#define SC_SERVICENAME_LISTSOURCE
const css::uno::Reference< css::drawing::XShape > mxShape
bool mbScrollHor
true = Multi selection in listbox.
virtual void WriteSubRecs(XclExpStream &rStrm) override
std::shared_ptr< ::utl::TempFile > mxTempFile
const sal_uInt16 EXC_ID_OBJLBSDATA
Check box/radio button data.
sax_fastparser::FSHelperPtr CreateOutputStream(const OUString &sFullStream, const OUString &sRelativeStream, const css::uno::Reference< css::io::XOutputStream > &xParentRelation, const char *sContentType, std::u16string_view sRelationshipType, OUString *pRelationshipId=nullptr)
bool mbVisible
Escher object ID (BIFF8).
virtual XclExpDffAnchorBase * CreateDffAnchor() const
Creates a new DFF client anchor object.
void WriteDffData(EscherEx &rEscherEx) const
Writes the DFF client anchor structure with the current anchor position.
css::uno::Reference< css::drawing::XShape > mxShape
The chart itself (BOF/EOF substream data).
const sal_uInt16 EXC_ID_OBJCBLSFMLA
List box/combo box data.
const sal_uInt16 EXC_OBJTYPE_LISTBOX
void AddOpt(sal_uInt16 nPropID, bool bBlib, sal_uInt32 nSizeReduction, SvMemoryStream &rStream)
virtual void Save(XclExpStream &rStrm) override
Writes the OBJ record and the entire chart substream.
XclExpObjectManager & GetObjectManager() const
Returns the drawing object manager.
XActionListener.actionPerformed.
virtual void SaveXml(XclExpXmlStream &rStrm) override
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
const sal_uInt8 EXC_OBJ_HOR_LEFT
sal_Int32 mnHeight
Type of supported macro event.
const sal_uInt16 EXC_OBJTYPE_CHART
BitmapColor GetPixelFromData(const sal_uInt8 *pData, tools::Long nX) const
sal_uInt32 mnTY
X offset in left column (1/1024 of column width).
virtual XclExpDffAnchorBase * CreateDffAnchor() const override
Creates a new DFF client anchor object for embedded objects according to the scaling data passed to t...
sal_uInt16 mnScrollValue
Selected entry in combobox (1-based).
constexpr sal_Int32 FSNS(sal_Int32 namespc, sal_Int32 element)
SC_DLLPUBLIC bool RowHidden(SCROW nRow, SCTAB nTab, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
tools::Rectangle maCommentTo
From and From Offset.
const std::u16string_view aStringList[]
void StartRecord(sal_uInt16 nRecId, std::size_t nRecSize)
Starts a new record: writes header data, stores calculated record size.
#define ESCHER_SplitMenuColors
Represents the position (anchor) of an object in a Calc sheet.
const EditTextObject * GetEditTextObject() const
Returns the pointer to the current edit text object, or null.
static XclExpStringRef CreateString(const XclExpRoot &rRoot, const OUString &rString, XclStrFlags nFlags=XclStrFlags::NONE, sal_uInt16 nMaxLen=EXC_STR_MAXLEN)
Creates a new unformatted string from the passed string.
XclExpObjectManager(const XclExpRoot &rRoot)
Reference< XModel > xModel
sal_uInt32 mnStrmSize
Start position in 'Ctls' stream.
XclExpDffSheetAnchor(const XclExpRoot &rRoot)
static bool TryRunningState(const css::uno::Reference< css::embed::XEmbeddedObject > &)
sal_uInt16 GetBitCount() const
XclExpDffNoteAnchor(const XclExpRoot &rRoot, const tools::Rectangle &rRect)
XclExpMsoDrawing(XclEscherEx &rEscherEx)
#define ESCHER_Prop_fPrint
const XclExpRoot & GetRoot() const
Returns the filter root data.
virtual ~XclMacroHelper() override
static void FillScRange(ScRange &rScRange, const css::table::CellRangeAddress &rApiRange)
virtual void WriteSubRecs(XclExpStream &rStrm) override
const sal_uInt16 EXC_OBJTYPE_PICTURE
void WriteMacroSubRec(XclExpStream &rStrm)
Writes an ftMacro subrecord containing a macro link, or nothing, if no macro present.
virtual void Save(XclExpStream &rStrm) override
Writes the record header and calls WriteBody().
const char * UseIf(const char *s, bool bUse)
XclExpFontBuffer & GetFontBuffer() const
Returns the font buffer.
const sal_uInt16 EXC_OBJ_SCROLLBAR_MIN
XclExpChartObj(XclExpObjectManager &rObjMgr, css::uno::Reference< css::drawing::XShape > const &xShape, const tools::Rectangle *pChildAnchor, ScDocument *pDoc)
XclExpEmbeddedObjectManager(const XclExpObjectManager &rParent, const Size &rPageSize, sal_Int32 nScaleX, sal_Int32 nScaleY)
bool GetProperty(Type &rValue, const OUString &rPropName) const
Gets the specified property from the property set.
const sal_uInt16 EXC_ID_OBJMACRO
End of OBJ.
const sal_uInt16 EXC_OBJTYPE_BUTTON
XclExpMsoDrawing * GetMsodrawingPerSheet()
Helper class for form controls to manage spreadsheet links .
bool mbLocked
Auto scale text.
const sal_uInt16 EXC_OBJTYPE_OPTIONBUTTON
bool ConvertAddress(XclAddress &rXclPos, const ScAddress &rScPos, bool bWarn)
Converts the passed Calc cell address to an Excel cell address.
XclTokenArrayRef mxCellLink
sal_uInt16 AddObj(std::unique_ptr< XclObj > pObjRec)
All text objects in charts.
const sal_uInt16 EXC_ID_OBJCF
Group marker.
Base class for single records with any content.
#define ESCHER_Prop_lTxid
EscherGraphicProvider & GetGraphicProvider()
void SetRect(const XclRoot &rRoot, SCTAB nScTab, const tools::Rectangle &rRect, MapUnit eMapUnit)
Initializes the anchor coordinates for a sheet.
#define ESCHER_ClientData
XclExpMsoDrawingBase(XclEscherEx &rEscherEx, sal_uInt16 nRecId)
static css::uno::Reference< css::awt::XControlModel > GetControlModel(css::uno::Reference< css::drawing::XShape > const &xShape)
Returns the API control model from the passed API shape object.
void WriteZeroBytes(std::size_t nBytes)
Writes a sequence of nBytes zero bytes (respects slice setting).
bool mbColHidden
Auto Fill Style.