22#include <com/sun/star/beans/NamedValue.hpp>
23#include <com/sun/star/container/XIndexContainer.hpp>
24#include <com/sun/star/container/XNameContainer.hpp>
25#include <com/sun/star/embed/Aspects.hpp>
26#include <com/sun/star/embed/XEmbeddedObject.hpp>
27#include <com/sun/star/embed/XEmbedPersist.hpp>
28#include <com/sun/star/awt/PushButtonType.hpp>
29#include <com/sun/star/awt/ScrollBarOrientation.hpp>
30#include <com/sun/star/awt/VisualEffect.hpp>
31#include <com/sun/star/style/VerticalAlignment.hpp>
32#include <com/sun/star/drawing/XControlShape.hpp>
33#include <com/sun/star/form/XForm.hpp>
34#include <com/sun/star/form/XFormsSupplier.hpp>
35#include <com/sun/star/form/binding/XBindableValue.hpp>
36#include <com/sun/star/form/binding/XValueBinding.hpp>
37#include <com/sun/star/form/binding/XListEntrySink.hpp>
38#include <com/sun/star/form/binding/XListEntrySource.hpp>
39#include <com/sun/star/script/ScriptEventDescriptor.hpp>
40#include <com/sun/star/script/XEventAttacherManager.hpp>
41#include <com/sun/star/beans/XPropertySet.hpp>
42#include <com/sun/star/frame/XModel.hpp>
103#include <document.hxx>
106#include <unonames.hxx>
109#include <globstr.hrc>
128#include <string_view>
132using ::com::sun::star::uno::Any;
133using ::com::sun::star::beans::XPropertySet;
134using ::com::sun::star::uno::Exception;
135using ::com::sun::star::uno::Reference;
136using ::com::sun::star::uno::Sequence;
137using ::com::sun::star::uno::UNO_QUERY;
138using ::com::sun::star::uno::UNO_QUERY_THROW;
139using ::com::sun::star::uno::UNO_SET_THROW;
140using ::com::sun::star::beans::NamedValue;
141using ::com::sun::star::lang::XMultiServiceFactory;
142using ::com::sun::star::container::XIndexContainer;
143using ::com::sun::star::container::XNameContainer;
144using ::com::sun::star::frame::XModel;
145using ::com::sun::star::awt::XControlModel;
146using ::com::sun::star::embed::XEmbeddedObject;
147using ::com::sun::star::embed::XEmbedPersist;
148using ::com::sun::star::drawing::XControlShape;
149using ::com::sun::star::drawing::XShape;
150using ::com::sun::star::form::XFormComponent;
151using ::com::sun::star::form::XFormsSupplier;
152using ::com::sun::star::form::binding::XBindableValue;
153using ::com::sun::star::form::binding::XValueBinding;
154using ::com::sun::star::form::binding::XListEntrySink;
155using ::com::sun::star::form::binding::XListEntrySource;
156using ::com::sun::star::script::ScriptEventDescriptor;
157using ::com::sun::star::script::XEventAttacherManager;
158using ::com::sun::star::table::CellAddress;
159using ::com::sun::star::table::CellRangeAddress;
170 mbHasAnchor( false ),
175 mbAutoMargin( true ),
176 mbSimpleMacro( true ),
177 mbProcessSdr( true ),
179 mbCustomDff( false ),
180 mbNotifyMacroEventRead( false )
192 if(
rStrm.GetRecLeft() >= 30 )
196 nObjType =
rStrm.ReaduInt16();
199 case EXC_OBJTYPE_GROUP: xDrawObj= std::make_shared<XclImpGroupObj>( rRoot );
break;
200 case EXC_OBJTYPE_LINE: xDrawObj= std::make_shared<XclImpLineObj>( rRoot );
break;
202 case EXC_OBJTYPE_OVAL: xDrawObj= std::make_shared<XclImpOvalObj>( rRoot );
break;
203 case EXC_OBJTYPE_ARC: xDrawObj= std::make_shared<XclImpArcObj>( rRoot );
break;
204 case EXC_OBJTYPE_CHART: xDrawObj= std::make_shared<XclImpChartObj>( rRoot );
break;
205 case EXC_OBJTYPE_TEXT: xDrawObj= std::make_shared<XclImpTextObj>( rRoot );
break;
209 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::ReadObj3 - unknown object type 0x" << std::hex << nObjType );
216 xDrawObj = std::make_shared<XclImpPhObj>(rRoot);
220 xDrawObj->ImplReadObj3(
rStrm );
228 if(
rStrm.GetRecLeft() >= 30 )
232 nObjType =
rStrm.ReaduInt16();
235 case EXC_OBJTYPE_GROUP: xDrawObj = std::make_shared<XclImpGroupObj>( rRoot );
break;
236 case EXC_OBJTYPE_LINE: xDrawObj = std::make_shared<XclImpLineObj>( rRoot );
break;
238 case EXC_OBJTYPE_OVAL: xDrawObj = std::make_shared<XclImpOvalObj>( rRoot );
break;
239 case EXC_OBJTYPE_ARC: xDrawObj = std::make_shared<XclImpArcObj>( rRoot );
break;
240 case EXC_OBJTYPE_CHART: xDrawObj = std::make_shared<XclImpChartObj>( rRoot );
break;
241 case EXC_OBJTYPE_TEXT: xDrawObj = std::make_shared<XclImpTextObj>( rRoot );
break;
242 case EXC_OBJTYPE_BUTTON: xDrawObj = std::make_shared<XclImpButtonObj>( rRoot );
break;
246 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::ReadObj4 - unknown object type 0x" << std::hex << nObjType );
253 xDrawObj = std::make_shared<XclImpPhObj>(rRoot);
257 xDrawObj->ImplReadObj4(
rStrm );
265 if(
rStrm.GetRecLeft() >= 34 )
269 nObjType =
rStrm.ReaduInt16();
272 case EXC_OBJTYPE_GROUP: xDrawObj = std::make_shared<XclImpGroupObj>( rRoot );
break;
273 case EXC_OBJTYPE_LINE: xDrawObj = std::make_shared<XclImpLineObj>( rRoot );
break;
275 case EXC_OBJTYPE_OVAL: xDrawObj = std::make_shared<XclImpOvalObj>( rRoot );
break;
276 case EXC_OBJTYPE_ARC: xDrawObj = std::make_shared<XclImpArcObj>( rRoot );
break;
277 case EXC_OBJTYPE_CHART: xDrawObj = std::make_shared<XclImpChartObj>( rRoot );
break;
278 case EXC_OBJTYPE_TEXT: xDrawObj = std::make_shared<XclImpTextObj>( rRoot );
break;
279 case EXC_OBJTYPE_BUTTON: xDrawObj = std::make_shared<XclImpButtonObj>( rRoot );
break;
284 case EXC_OBJTYPE_EDIT: xDrawObj = std::make_shared<XclImpEditObj>( rRoot );
break;
285 case EXC_OBJTYPE_LABEL: xDrawObj = std::make_shared<XclImpLabelObj>( rRoot );
break;
286 case EXC_OBJTYPE_DIALOG: xDrawObj = std::make_shared<XclImpDialogObj>( rRoot );
break;
287 case EXC_OBJTYPE_SPIN: xDrawObj = std::make_shared<XclImpSpinButtonObj>( rRoot );
break;
293 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::ReadObj5 - unknown object type 0x" << std::hex << nObjType );
295 xDrawObj = std::make_shared<XclImpPhObj>( rRoot );
299 OSL_ENSURE(xDrawObj,
"object import failed");
304 xDrawObj->ImplReadObj5(
rStrm );
313 if(
rStrm.GetRecLeft() >= 10 )
315 sal_uInt16 nSubRecId(0), nSubRecSize(0), nObjType(0);
316 nSubRecId =
rStrm.ReaduInt16();
317 nSubRecSize =
rStrm.ReaduInt16();
318 nObjType =
rStrm.ReaduInt16();
319 OSL_ENSURE( nSubRecId ==
EXC_ID_OBJCMO,
"XclImpDrawObjBase::ReadObj8 - OBJCMO subrecord expected" );
327 xDrawObj = std::make_shared<XclImpTextObj>( rRoot );
329 xDrawObj->SetAreaObj(
false );
338 xDrawObj = std::make_shared<XclImpTextObj>( rRoot );
341 case EXC_OBJTYPE_GROUP: xDrawObj = std::make_shared<XclImpGroupObj>( rRoot );
break;
342 case EXC_OBJTYPE_CHART: xDrawObj = std::make_shared<XclImpChartObj>( rRoot );
break;
343 case EXC_OBJTYPE_BUTTON: xDrawObj = std::make_shared<XclImpButtonObj>( rRoot );
break;
347 case EXC_OBJTYPE_EDIT: xDrawObj = std::make_shared<XclImpEditObj>( rRoot );
break;
348 case EXC_OBJTYPE_LABEL: xDrawObj = std::make_shared<XclImpLabelObj>( rRoot );
break;
349 case EXC_OBJTYPE_DIALOG: xDrawObj = std::make_shared<XclImpDialogObj>( rRoot );
break;
350 case EXC_OBJTYPE_SPIN: xDrawObj = std::make_shared<XclImpSpinButtonObj>( rRoot );
break;
355 case EXC_OBJTYPE_NOTE: xDrawObj = std::make_shared<XclImpNoteObj>( rRoot );
break;
358 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::ReadObj8 - unknown object type 0x" << std::hex << nObjType );
366 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::ReadObj8 import failed, substituting placeholder");
367 xDrawObj = std::make_shared<XclImpPhObj>( rRoot );
371 xDrawObj->ImplReadObj8(
rStrm );
387 const DffObjData& rDffObjData,
const OUString& rObjName,
const OUString& rHyperlink,
388 bool bVisible,
bool bAutoMargin )
470 if( xSdrObj && xSdrObj->IsUnoObj() &&
474 if( pSdrUnoObj !=
nullptr )
477 Reference< XPropertySet > xPropSet(xCtrlModel,UNO_QUERY);
478 static constexpr OUStringLiteral sPropertyName(
u"ControlTypeinMSO");
480 enum { eCreateFromOffice = 0, eCreateFromMSTBXControl, eCreateFromMSOCXControl };
482 if(
mnObjType == 7 || (mnObjType < 25 && mnObjType > 10) )
487 const sal_Int16 nTBXControlType = eCreateFromMSTBXControl ;
488 xPropSet->setPropertyValue(sPropertyName,
Any(nTBXControlType));
492 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::CreateSdrObject, this control can't be set the property ControlTypeinMSO!");
498 static constexpr OUStringLiteral sObjIdPropertyName(
u"ObjIDinMSO");
504 const sal_Int16 nOCXControlType = eCreateFromMSOCXControl;
505 xPropSet->setPropertyValue(sPropertyName,
Any(nOCXControlType));
507 xPropSet->setPropertyValue(sObjIdPropertyName,
Any(sal_uInt16(
mnObjId)));
511 SAL_WARN(
"sc.filter",
"XclImpDrawObjBase::CreateSdrObject, this control can't be set the property ObjIDinMSO!");
561 if (!sMacro.isEmpty())
563 pInfo->SetMacro(sMacro);
589 if(
rStrm.GetRecPos() & 1 )
rStrm.Ignore( 1 );
596 rStrm.Ignore( nMacroSize );
598 if(
rStrm.GetRecPos() & 1 )
rStrm.Ignore( 1 );
604 rStrm.Ignore( nMacroSize );
610 rStrm.Ignore( nMacroSize );
616 if(
rStrm.GetRecLeft() <= 6 )
620 sal_uInt16 nFmlaSize;
621 nFmlaSize =
rStrm.ReaduInt16();
623 OSL_ENSURE( nFmlaSize == 7,
"XclImpDrawObjBase::ReadMacro - unexpected formula size" );
627 sal_uInt16 nExtSheet, nExtName;
628 nTokenId =
rStrm.ReaduInt8();
629 nExtSheet =
rStrm.ReaduInt16();
630 nExtName =
rStrm.ReaduInt16();
632 "XclImpDrawObjBase::ReadMacro - tNameXR token expected" );
721 static const sal_uInt8 sppnPatterns[][ 8 ] =
723 { 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55 },
724 { 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD },
725 { 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22 },
726 { 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 },
727 { 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC },
728 { 0x33, 0x66, 0xCC, 0x99, 0x33, 0x66, 0xCC, 0x99 },
729 { 0xCC, 0x66, 0x33, 0x99, 0xCC, 0x66, 0x33, 0x99 },
730 { 0xCC, 0xCC, 0x33, 0x33, 0xCC, 0xCC, 0x33, 0x33 },
731 { 0xCC, 0xFF, 0x33, 0xFF, 0xCC, 0xFF, 0x33, 0xFF },
732 { 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 },
733 { 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88 },
734 { 0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88 },
735 { 0x88, 0x44, 0x22, 0x11, 0x88, 0x44, 0x22, 0x11 },
736 { 0xFF, 0x11, 0x11, 0x11, 0xFF, 0x11, 0x11, 0x11 },
737 { 0xAA, 0x44, 0xAA, 0x11, 0xAA, 0x44, 0xAA, 0x11 },
738 { 0x88, 0x00, 0x22, 0x00, 0x88, 0x00, 0x22, 0x00 },
739 { 0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x08, 0x00 }
747 for(
size_t nIdx = 0; nIdx < 8; ++nIdx )
751 (void)
ReadDIB(aBitmap, aMemStrm,
false);
756 ::std::swap( aPattColor, aBackColor );
856 sal_uInt16 nObjFlags, nMacroSize;
859 nObjFlags =
rStrm.ReaduInt16();
861 nMacroSize =
rStrm.ReaduInt16();
875 sal_uInt16 nObjFlags, nMacroSize;
878 nObjFlags =
rStrm.ReaduInt16();
880 nMacroSize =
rStrm.ReaduInt16();
895 sal_uInt16 nObjFlags, nMacroSize, nNameLen;
898 nObjFlags =
rStrm.ReaduInt16();
900 nMacroSize =
rStrm.ReaduInt16();
902 nNameLen =
rStrm.ReaduInt16();
920 if (
rStrm.GetRecLeft() < 4)
923 sal_uInt16 nSubRecId =
rStrm.ReaduInt16();
924 sal_uInt16 nSubRecSize =
rStrm.ReaduInt16();
925 rStrm.PushPosition();
927 nSubRecSize =
static_cast< sal_uInt16
>( ::std::min< std::size_t >( nSubRecSize,
rStrm.GetRecLeft() ) );
932 OSL_ENSURE(
rStrm.GetRecPos() == 4,
"XclImpDrawObjBase::ImplReadObj8 - unexpected OBJCMO subrecord" );
933 if( (
rStrm.GetRecPos() == 4) && (nSubRecSize >= 6) )
935 sal_uInt16 nObjFlags;
938 nObjFlags =
rStrm.ReaduInt16( );
953 rStrm.Ignore( nSubRecSize );
971 sal_uInt32 nDataSize =
rStrm.ReaduInt32();
972 nDataSize -=
rStrm.GetRecLeft();
980 if (!
rStrm.StartNextRecord())
982 OSL_ENSURE( nDataSize >=
rStrm.GetRecLeft(),
"XclImpDrawObjBase::ImplReadObj8 - CONTINUE too long" );
983 nDataSize -= ::std::min< sal_uInt32 >(
rStrm.GetRecLeft(), nDataSize );
985 OSL_ENSURE( nDataSize == 0,
"XclImpDrawObjBase::ImplReadObj8 - missing CONTINUE records" );
993 if( pGroupObj->TryInsert( xDrawObj ) )
995 mObjs.push_back( xDrawObj );
1000 return std::accumulate(
mObjs.begin(),
mObjs.end(), std::size_t(0),
1001 [](
const std::size_t& rSum,
const XclImpDrawObjRef& rxObj) { return rSum + rxObj->GetProgressSize(); });
1012 mnFirstUngrouped( 0 )
1059 *
GetDoc().GetDrawLayer()));
1061 SdrObjList& rObjList = *xSdrObj->GetSubList();
1129 *
GetDoc().GetDrawLayer(),
1136 bool bLineStart =
false;
1137 bool bLineEnd =
false;
1138 bool bFilled =
false;
1139 switch( nArrowType )
1141 case EXC_OBJ_ARROW_OPEN: bLineStart =
false; bLineEnd =
true; bFilled =
false;
break;
1146 if( bLineStart || bLineEnd )
1149 double fArrowWidth = 3.0;
1150 switch( nArrowWidth )
1158 double fArrowLength = 3.0;
1159 switch( nArrowLength )
1167#define EXC_ARROW_POINT( x, y ) ::basegfx::B2DPoint( fArrowWidth * (x), fArrowLength * (y) )
1184#undef EXC_ARROW_POINT
1190 xSdrObj->SetMergedItem(
XLineStartItem( OUString(), aArrowPolyPoly ) );
1196 xSdrObj->SetMergedItem(
XLineEndItem( OUString(), aArrowPolyPoly ) );
1248 *
GetDoc().GetDrawLayer(),
1264 *
GetDoc().GetDrawLayer(),
1313 nStartAngle = 0_deg100;
1314 nEndAngle = 9000_deg100;
1319 nStartAngle = 9000_deg100;
1320 nEndAngle = 18000_deg100;
1325 nStartAngle = 18000_deg100;
1326 nEndAngle = 27000_deg100;
1331 nStartAngle = 27000_deg100;
1332 nEndAngle = 0_deg100;
1340 *
GetDoc().GetDrawLayer(),
1363 OSL_ENSURE(
rStrm.GetRecLeft() / 4 ==
mnPointCount,
"XclImpPolygonObj::ReadCoordList - wrong polygon point count" );
1366 if (
rStrm.GetRecLeft() < 4)
1368 sal_uInt16 nX =
rStrm.ReaduInt16();
1369 sal_uInt16 nY =
rStrm.ReaduInt16();
1402 return ::basegfx::B2DPoint(
1403 rAnchorRect.
Left() +
static_cast< sal_Int32
>( ::std::min< double >( rPoint.
X(), 16384.0 ) / 16384.0 * rAnchorRect.
GetWidth() + 0.5 ),
1404 rAnchorRect.
Top() +
static_cast< sal_Int32
>( ::std::min< double >( rPoint.
Y(), 16384.0 ) / 16384.0 * rAnchorRect.
GetHeight() + 0.5 ) );
1416 for(
const auto& rCoord :
maCoords )
1417 aB2DPolygon.
append( lclGetPolyPoint( rAnchorRect, rCoord ) );
1420 aB2DPolygon.
append( lclGetPolyPoint( rAnchorRect,
maCoords.front() ) );
1425 *
GetDoc().GetDrawLayer(),
1441 if(
rStrm.GetRecPos() & 1 )
rStrm.Ignore( 1 );
1491 *
GetDoc().GetDrawLayer()));
1492 xSdrObj->NbcSetSnapRect( rAnchorRect );
1493 OUString aRectType =
"rectangle";
1494 xSdrObj->MergeDefaultAttributes( &aRectType );
1515 SAL_WARN(
"sc.filter",
"truncating slow long rich text for fuzzing performance");
1520 std::unique_ptr< EditTextObject > xEditObj(
1524 pTextObj->NbcSetOutlinerParaObject( std::move(aOutlineObj) );
1543 namespace csst = ::com::sun::star::text;
1544 csst::WritingMode eWriteMode = csst::WritingMode_LR_TB;
1550 eWriteMode = csst::WritingMode_LR_TB;
1572 css::beans::PropertyValue aTextRotateAngle;
1573 aTextRotateAngle.Name =
"TextRotateAngle";
1574 aTextRotateAngle.Value <<= 180.0;
1577 pObjCustomShape->SetMergedItem( aGeometryItem );
1579 eWriteMode = csst::WritingMode_TB_RL;
1588 switch( eTextAnchor )
1594 eHorAlign = SvxAdjust::Center;
1619 eWriteMode = csst::WritingMode_TB_RL;
1628 switch ( eTextAnchor )
1634 eHorAlign = SvxAdjust::Center;
1681 rStrm.RewindRecord();
1687 sal_uInt16 nBofType;
1689 nBofType =
rStrm.ReaduInt16();
1694 SAL_INFO(
"sc.filter",
"XclImpChartObj::ReadChartSubStream - missing chart substream");
1747 rStrm.ResetRecord(
true );
1751 rStrm.ResetRecord(
false );
1767 OUString aEmbObjName;
1778 sal_Int64 nAspect = css::embed::Aspects::MSOLE_CONTENT;
1781 css::awt::Size aAwtSize( aSize.
Width(), aSize.
Height() );
1782 xEmbObj->setVisualAreaSize( nAspect, aAwtSize );
1791 *
GetDoc().GetDrawLayer(),
1803 if( !(
mxChart && pSdrOleObj) )
1806 const Reference< XEmbeddedObject >& xEmbObj = pSdrOleObj->
GetObjRef();
1809 Reference< XEmbedPersist > xPersist( xEmbObj, UNO_QUERY_THROW );
1810 Reference< XModel >
xModel( xEmbObj->getComponent(), UNO_QUERY_THROW );
1822 OSL_ENSURE(
mbOwnTab,
"XclImpChartObj::FinalizeTabChart - not allowed for embedded chart objects" );
1854 maScPos(
ScAddress::INITIALIZE_INVALID ),
1879 OUString(), *pOutlinerObj,
1887 meBindMode( eBindMode )
1896 const Reference< XShape >& rxShape,
const tools::Rectangle& rAnchorRect )
const
1902 xSdrObj->NbcSetSnapRect( rAnchorRect );
1913 if( !xCtrlModel.is() )
1921 Reference< XMultiServiceFactory >
xFactory( pDocShell->
GetModel(), UNO_QUERY );
1928 Reference< XBindableValue > xBindable( xCtrlModel, UNO_QUERY_THROW );
1931 CellAddress aApiAddress;
1936 aValue.Value <<= aApiAddress;
1938 Sequence< Any > aArgs{
Any(aValue) };
1941 OUString aServiceName;
1947 Reference< XValueBinding > xBinding(
1948 xFactory->createInstanceWithArguments( aServiceName, aArgs ), UNO_QUERY_THROW );
1949 xBindable->setValueBinding( xBinding );
1961 Reference< XListEntrySink > xEntrySink( xCtrlModel, UNO_QUERY_THROW );
1964 CellRangeAddress aApiRange;
1969 aValue.Value <<= aApiRange;
1971 Sequence< Any > aArgs{
Any(aValue) };
1974 Reference< XListEntrySource > xEntrySource(
xFactory->createInstanceWithArguments(
1976 xEntrySink->setListEntrySource( xEntrySource );
1986 if( !xCtrlModel.is() )
2009 if ( !aScRanges.
empty() )
2021 if ( !aScRanges.
empty() )
2024 mxSrcRange = std::make_shared<ScRange>( rScRange );
2043 if( bWithBoundSize )
2046 nSize =
rStrm.ReaduInt16();
2049 rStrm.PushPosition();
2051 rStrm.PopPosition();
2052 rStrm.Ignore( nSize );
2071void lclExtractColor(
sal_uInt8& rnColorIdx,
const DffPropSet& rDffPropSet, sal_uInt32 nPropId )
2076 if( (nColor & 0xFF000000) == 0x08000000 )
2077 rnColorIdx = ::extract_value< sal_uInt8 >( nColor, 0, 8 );
2098 if (!xCtrlModel.is())
2115 if( rFormatRuns.empty() )
2140 Reference< css::beans::XPropertySet > xPropset(
mxShape, UNO_QUERY );
2143 xPropset->setPropertyValue(
"Description",
Any(
aLabel) );
2146 SAL_WARN(
"sc.filter",
"Can't set a default text for TBX Control ");
2177 sal_Int16 nHorAlign = 1;
2187 namespace csss = ::com::sun::star::style;
2188 csss::VerticalAlignment eVerAlign = csss::VerticalAlignment_MIDDLE;
2195 rPropSet.
SetProperty(
"VerticalAlign", eVerAlign );
2205 namespace cssa = ::com::sun::star::awt;
2206 cssa::PushButtonType eButtonType = cssa::PushButtonType_STANDARD;
2208 eButtonType = cssa::PushButtonType_OK;
2210 eButtonType = cssa::PushButtonType_CANCEL;
2212 eButtonType = cssa::PushButtonType_HELP;
2214 rPropSet.
SetProperty(
"PushButtonType", sal_Int16( eButtonType ) );
2219 return "com.sun.star.form.component.CommandButton";
2230 mnCheckBoxFlags( 0 )
2278 sal_Int16 nApiState = 0;
2285 if( bSupportsTristate )
2287 rPropSet.
SetProperty(
"DefaultState", nApiState );
2290 namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
2298 namespace csss = ::com::sun::star::style;
2299 rPropSet.
SetProperty(
"VerticalAlign", csss::VerticalAlignment_MIDDLE );
2305 rPropSet.
SetProperty(
"BackgroundColor", nColor );
2311 return "com.sun.star.form.component.CheckBox";
2372 sal_Int32 nRefVal = 1;
2377 if ( xCtrlModel.is() )
2380 OUString sGroupName = OUString::number( pLeader->
GetDffShapeId() );
2404 return "com.sun.star.form.component.RadioButton";
2429 namespace csss = ::com::sun::star::style;
2430 rPropSet.
SetProperty(
"VerticalAlign", csss::VerticalAlignment_TOP );
2438 return "com.sun.star.form.component.FixedText";
2448 mnGroupBoxFlags( 0 )
2489 return "com.sun.star.form.component.GroupBox";
2511 return "com.sun.star.form.component.GroupBox";
2572 rPropSet.
SetProperty(
"DefaultValue", aText.toDouble() );
2588 OUString(
"com.sun.star.form.component.NumericField" ) :
2589 OUString(
"com.sun.star.form.component.TextField" );
2667 return "com.sun.star.form.component.SpinButton";
2700 namespace AwtScrollOrient = ::com::sun::star::awt::ScrollBarOrientation;
2702 rPropSet.
SetProperty(
"Orientation", nApiOrient );
2707 return "com.sun.star.form.component.ScrollBar";
2721 mbHasDefFontIdx( false )
2737 namespace AwtVisualEffect = ::com::sun::star::awt::VisualEffect;
2755 std::size_t nRecEnd =
rStrm.GetRecPos() + nRecLeft;
2758 "XclImpListBoxObj::ReadFullLbsData - invalid size of OBJLBSDATA record" );
2759 while (
rStrm.IsValid())
2761 if (
rStrm.GetRecPos() >= nRecEnd)
2816 aSelVec.push_back(
nIndex );
2822 aSelVec.push_back(
static_cast< sal_Int16
>(
mnSelEntry - 1 ) );
2824 if( !aSelVec.empty() )
2826 Sequence<sal_Int16> aSelSeq(aSelVec.data(),
static_cast<sal_Int32
>(aSelVec.size()));
2827 rPropSet.
SetProperty(
"DefaultSelection", aSelSeq );
2833 return "com.sun.star.form.component.ListBox";
2847 mnDropDownFlags( 0 ),
2922 Sequence< sal_Int16 > aSelSeq{ o3tl::narrowing<sal_Int16>(
mnSelEntry - 1) };
2923 rPropSet.
SetProperty(
"DefaultSelection", aSelSeq );
2931 OUString(
"com.sun.star.form.component.ComboBox" ) :
2932 OUString(
"com.sun.star.form.component.ListBox" );
2945 mnCtlsStrmSize( 0 ),
2946 mbEmbedded( false ),
2950 mbUseCtlsStrm( false )
2959 OUStringBuffer aStrgName;
2963 static const char spcHexChars[] =
"0123456789ABCDEF";
2965 aStrgName.append(OUStringChar( spcHexChars[ ::extract_value< sal_uInt8 >(
mnStorageId,
nIndex - 4, 4 ) ] ));
2967 return aStrgName.makeStringAndClear();
2972 sal_uInt16 nLinkSize;
2975 nLinkSize =
rStrm.ReaduInt16();
2987 sal_uInt16 nLinkSize;
2990 nLinkSize =
rStrm.ReaduInt16();
3002 sal_uInt16 nLinkSize;
3005 nLinkSize =
rStrm.ReaduInt16();
3061 *
GetDoc().GetDrawLayer(),
3076 if (!
sName.isEmpty())
3096 if( pOleSdrObj && pDocShell )
3099 Reference< XEmbeddedObject > xEmbObj = pOleSdrObj->
GetObjRef();
3116 if( aOldName != aNewName )
3127 nFlags =
rStrm.ReaduInt16();
3134 nFlags =
rStrm.ReaduInt16();
3138 OSL_ENSURE(
mbControl || !
mbUseCtlsStrm,
"XclImpPictureObj::ReadFlags8 - CTLS stream for controls only" );
3144 std::size_t nLinkEnd =
rStrm.GetRecPos() + nLinkSize;
3145 if( nLinkSize >= 6 )
3147 sal_uInt16 nFmlaSize;
3148 nFmlaSize =
rStrm.ReaduInt16();
3149 OSL_ENSURE( nFmlaSize > 0,
"XclImpPictureObj::ReadPictFmla - missing link formula" );
3166 sal_uInt16 nNameIdx;
3169 nNameIdx =
rStrm.ReaduInt16();
3172 if( pExtName && pExtName->
IsOLE() )
3178 sal_uInt16 nXti, nExtName;
3179 nXti =
rStrm.ReaduInt16();
3180 nExtName =
rStrm.ReaduInt16();
3193 OSL_ENSURE( nFmlaSize == 5,
"XclImpPictureObj::ReadPictFmla - unexpected formula size" );
3194 rStrm.Ignore( nFmlaSize - 1 );
3199 if(
rStrm.GetRecPos() + 2 <= nLinkEnd )
3201 sal_uInt16 nLen =
rStrm.ReaduInt16();
3223 if(
rStrm.GetRecLeft() <= 8 )
return;
3229 if(
rStrm.GetRecLeft() <= 8 )
return;
3232 sal_uInt32 nAddStrSize;
3233 nAddStrSize =
rStrm.ReaduInt32();
3234 OSL_ENSURE(
rStrm.GetRecLeft() >= nAddStrSize + 4,
"XclImpPictureObj::ReadPictFmla - missing data" );
3235 if(
rStrm.GetRecLeft() >= nAddStrSize + 4 )
3237 rStrm.Ignore( nAddStrSize );
3253 if( nDffShapeId > 0 )
3255 maSdrInfoMap[ nDffShapeId ].Set( &rSdrObj, nDffFlags );
3263 XclImpSdrObjMap::iterator aIt =
maSdrObjMap.find( &rSdrObj );
3273 if(
SdrObjList* pSubList = pGroupObj->GetSubList() )
3277 for(
SdrObject* pChildObj = aObjIt.
Next(); pChildObj; pChildObj = aObjIt.
Next() )
3285 for (
auto const & pRule :
aCList)
3302 XclImpSdrInfoMap::const_iterator aIt =
maSdrInfoMap.find( nDffShapeId );
3305 rpSdrObj = aIt->second.mpSdrObj;
3307 *pnDffFlags = aIt->second.mnDffFlags;
3335 mrDrawing( rDrawing ),
3336 mrSdrModel( rSdrModel ),
3337 mrSdrPage( rSdrPage ),
3338 mnLastCtrlIndex( -1 ),
3339 mbHasCtrlForm( false )
3378 Reference< XIndexContainer > xIdToOleName;
3380 xIdToOleName->getByIndex( nObjId ) >>= sOleName;
3395 OSL_ENSURE(
mxProgress,
"XclImpDffConverter::Progress - invalid call, no progress bar" );
3401 XclImpDffConvDataRef xConvData = std::make_shared<XclImpDffConvData>( rDrawing, rSdrModel, rSdrPage );
3403 SetModel( &xConvData->mrSdrModel, 1440 );
3430 for(
const auto& rxDrawObj : rDrawObjs )
3449 OSL_ENSURE( !
maDataStack.empty(),
"XclImpDffConverter::FinalizeDrawing - no drawing manager on stack" );
3476 css::awt::Size aDummySize;
3477 Reference< XShape > xShape;
3483 ScriptEventDescriptor aDescriptor;
3487 Reference< XEventAttacherManager > xEventMgr( rConvData.
mxCtrlForm, UNO_QUERY_THROW );
3488 xEventMgr->registerScriptEvent( rConvData.
mnLastCtrlIndex, aDescriptor );
3514 Reference< XShape > xShape;
3517 Reference< XFormComponent > xFComp;
3539 if( pDocShell && xSrcStrg.
is() && (!aStrgName.isEmpty()) )
3549 if( aGraphic.
GetType() != GraphicType::NONE )
3552 namespace cssea = ::com::sun::star::embed::Aspects;
3553 sal_Int64 nAspects = rPicObj.
IsSymbol() ? cssea::MSOLE_ICON : cssea::MSOLE_CONTENT;
3598 rDffStrm >> aAnchor;
3600 if (!rDffStrm.
good())
3602 SAL_WARN(
"sc.filter",
"ProcessClientAnchor2 short read");
3620 XclImpDrawObjClientData()
3621 : m_pTopLevelObj(nullptr)
3624 virtual void NotifyFreeObj(
SdrObject*)
override {}
3644 bool bGlobalPageGroup( rDffObjData.
nSpFlags & ShapeFlag::Patriarch );
3645 if( !xDrawObj || !xDrawObj->IsProcessSdrObj() || bGlobalPageGroup )
3651 XclImpDrawObjClientData& rDrawObjClientData =
static_cast<XclImpDrawObjClientData&
>(rClientData);
3652 const bool bIsTopLevel = !rDrawObjClientData.m_pTopLevelObj;
3654 rDrawObjClientData.m_pTopLevelObj = xDrawObj.get();
3657 if(
dynamic_cast< SdrEdgeObj*
>( xSdrObj.get() ) )
3658 xDrawObj->SetAreaObj(
false );
3664 bool bEmbeddedGroup = !bIsTopLevel &&
dynamic_cast< SdrObjGroup*
>( xSdrObj.get() );
3665 if( !bEmbeddedGroup && !xDrawObj->IsValidSize( rAnchorRect ) )
3673 xDrawObj->SetDffData( rDffObjData, aObjName, aHyperlink,
bVisible, bAutoMargin );
3679 pTextObj->SetTextData( *pTextData );
3683 pTbxObj->SetDffProperties( *
this );
3688 xSdrObj = std::move( xNewSdrObj );
3698 xDrawObj->PreProcessSdrObject( *
this, *xSdrObj );
3704 if( !xDrawObj->IsInsertSdrObj() )
3723 xDrawObj->PostProcessSdrObject( *
this, *xSdrObj );
3741 if( xSdrObj && xDrawObj )
3748 return xSdrObj.get();
3752 const css::awt::Size& , Reference< XShape >* pxShape,
3758 Reference< XIndexContainer > xFormIC( rConvData.
mxCtrlForm, UNO_QUERY_THROW );
3759 Reference< XControlModel > xCtrlModel( rxFormComp, UNO_QUERY_THROW );
3763 Reference< XControlShape > xCtrlShape( xShape, UNO_QUERY_THROW );
3766 sal_Int32 nNewIndex = xFormIC->getCount();
3767 xFormIC->insertByIndex( nNewIndex,
Any( rxFormComp ) );
3772 xCtrlShape->setControl( xCtrlModel );
3773 if( pxShape ) *pxShape = xShape;
3778 OSL_FAIL(
"XclImpDffConverter::InsertControl - cannot create form control" );
3788 OSL_ENSURE( !
maDataStack.empty(),
"XclImpDffConverter::GetConvData - no drawing manager on stack" );
3794 OSL_ENSURE( !
maDataStack.empty(),
"XclImpDffConverter::GetConvData - no drawing manager on stack" );
3814 ::std::vector< sal_uInt8 >
aBuffer( nBufferSize );
3816 if (rDffStrm.
ReadBytes(pnData, nBufferSize) == nBufferSize)
3832 bool isBreak(
false);
3833 while (!isBreak && rDffStrm.
good() && rDffStrm.
Tell() < nEndPos)
3863 bool isBreak(
false);
3864 while (!isBreak && rDffStrm.
good() && rDffStrm.
Tell() < nEndPos)
3896 XclImpDrawObjClientData aDrawObjClientData;
3904 if (aDrawObjClientData.m_pTopLevelObj && xSdrObj )
3941 Reference< XFormsSupplier > xFormsSupplier( rConvData.
mrSdrPage.
getUnoPage(), UNO_QUERY_THROW );
3942 Reference< XNameContainer > xFormsNC( xFormsSupplier->getForms(), UNO_SET_THROW );
3963 mbOleObjs( bOleObjects )
3974 sal_uInt16 nFormat =
rStrm.ReaduInt16();
3976 sal_uInt32 nDataSize =
rStrm.ReaduInt32();
3977 if( nDataSize <=
rStrm.GetRecLeft() )
3983 default: OSL_FAIL(
"XclImpDrawing::ReadImgData - unknown image format" );
3996 OSL_ENSURE(
maDffStrm.
Tell() == 0,
"XclImpDrawing::ReadObj - unexpected DFF stream data, OBJ will be ignored" );
4018 maObjMapId[ xDrawObj->GetObjId() ] = xDrawObj;
4026 rStrm.ResetRecord(
false );
4032 while( bLoop )
switch(
rStrm.GetNextRecId() )
4037 rStrm.StartNextRecord();
4041 rStrm.StartNextRecord();
4045 rStrm.StartNextRecord();
4053 rStrm.ResetRecord(
true );
4067 xDrawObj = aIt->second;
4074 XclImpObjMapById::const_iterator aIt =
maObjMapId.find( nObjId );
4076 xDrawObj = aIt->second;
4090 return aIt->second.get();
4098 std::multimap<double, XclImpDrawObjRef> aGroupBoxAreaMap;
4105 aGroupBoxAreaMap.insert(std::pair<double, XclImpDrawObjRef>(fArea, rGroupBox.second));
4111 if (!pRadioButton || pRadioButton->IsInGroup())
4114 OUString sGroupName(
"autoGroup_");
4115 for (
auto& rGroupBox : aGroupBoxAreaMap)
4117 assert(pRadioButton->GetTab() == rGroupBox.second->GetTab() &&
"impossible right?");
4118 if (!rGroupBox.second->GetDffRect().Contains(pRadioButton->GetDffRect()))
4121 sGroupName = rGroupBox.second->GetObjName();
4122 if (sGroupName.isEmpty())
4123 sGroupName +=
"autoGroup_" + OUString::number(rGroupBox.second->GetObjId());
4127 pRadioButton->SetStringProperty(
"GroupName", sGroupName);
4139 [](
const std::size_t& rSum,
const XclImpObjMap::value_type& rEntry) { return rSum + rEntry.second->GetProgressSize(); });
4153 pDrawObj->SetProcessSdrObj(
false );
4169 OSL_ENSURE( rxDrawObj,
"XclImpDrawing::AppendRawObject - unexpected empty reference" );
4180 rStrm.CopyToStream( aMemStrm,
rStrm.GetRecLeft() );
4184 if( ::ReadWindowMetafile( aMemStrm, aGDIMetaFile ) )
4185 rGraphic = aGDIMetaFile;
4200 rStrm.PushPosition();
4201 sal_uInt32 nHdrSize;
4202 sal_uInt16 nWidth, nHeight, nPlanes, nDepth;
4203 nHdrSize =
rStrm.ReaduInt32();
4204 nWidth =
rStrm.ReaduInt16();
4205 nHeight =
rStrm.ReaduInt16();
4206 nPlanes =
rStrm.ReaduInt16();
4207 nDepth =
rStrm.ReaduInt16();
4208 if( (nHdrSize == 12) && (nPlanes == 1) && (nDepth == 32) )
4211 aMemStrm.
SetEndian( SvStreamEndian::LITTLE );
4213 rStrm.CopyToStream( aMemStrm,
rStrm.GetRecLeft() );
4215 rStrm.PopPosition();
4219 if( aMemStrm.
Tell() == 0 )
4220 rStrm.CopyToStream( aMemStrm,
rStrm.GetRecLeft() );
4225 if(
ReadDIB(aBitmap, aMemStrm,
false) )
4240 maObjMapId[ xDrawObj->GetObjId() ] = xDrawObj;
4249 xTextData->maData.ReadTxo8(
rStrm );
4252 xTextData->mxString.reset();
4254 if( xTextData->maData.mnTextLen > 0 )
4257 OSL_ENSURE( bValid,
"XclImpDrawing::ReadTxo - missing CONTINUE record" );
4259 xTextData->mxString = std::make_shared<XclImpString>(
rStrm.ReadUniString( xTextData->maData.mnTextLen ) );
4263 if( xTextData->maData.mnFormatSize > 0 )
4266 OSL_ENSURE( bValid,
"XclImpDrawing::ReadTxo - missing CONTINUE record" );
4268 xTextData->ReadFormats(
rStrm );
4274 maScUsedArea(
ScAddress::INITIALIZE_INVALID )
4301 auto xChartObj = std::make_shared<XclImpChartObj>(
GetRoot(),
true );
4302 xChartObj->ReadChartSubStream(
rStrm );
4332 sal_uInt16 nTotalLen =
rStrm.ReaduInt16();
4338 sal_uInt16 nPartLen = ::std::min( nTotalLen,
static_cast< sal_uInt16
>(
rStrm.GetRecLeft() ) );
4339 OUStringBuffer aNoteText(
rStrm.ReadRawByteString( nPartLen ));
4340 nTotalLen = nTotalLen - nPartLen;
4347 if (!
rStrm.StartNextRecord())
4350 nPartLen =
rStrm.ReaduInt16();
4351 OSL_ENSURE( aXclPos.mnRow == 0xFFFF,
"XclImpObjectManager::ReadNote3 - missing continuation NOTE record" );
4352 if( aXclPos.mnRow == 0xFFFF )
4354 OSL_ENSURE( nPartLen <= nTotalLen,
"XclImpObjectManager::ReadNote3 - string too long" );
4355 aNoteText.append(
rStrm.ReadRawByteString( nPartLen ));
4356 nTotalLen = nTotalLen - ::std::min( nTotalLen, nPartLen );
4372 sal_uInt16 nFlags, nObjId;
4374 nFlags =
rStrm.ReaduInt16();
4375 nObjId =
rStrm.ReaduInt16();
4381 pNoteObj->SetNoteData( aScNotePos, nFlags );
4430 rxDrawing = std::make_shared<XclImpSheetDrawing>(
GetRoot(), nScTab );
4437 if( !
GetDoc().GetDrawLayer() )
4442 [](
const std::size_t& rSum,
const XclImpSheetDrawingMap::value_type& rEntry) { return rSum + rEntry.second->GetProgressSize(); });
4444 if( nProgressSize == 0 )
4450 rEntry.second->ConvertObjects( aDffConv );
4461 aDefName = aIt->second;
4462 return aDefName +
" " + OUString::number(
static_cast<sal_Int32
>(rDrawObj.
GetObjId()));
4467 XclImpSheetDrawingMap::const_iterator aIt =
maSheetDrawings.find( nScTab );
4469 return aIt->second->GetUsedArea();
4477 maDffConv( rRoot, maDummyStrm )
4483 sal_uInt32 nPropSetSize;
4485 rStrm.PushPosition();
4487 nPropSetSize =
rStrm.ReaduInt32();
4488 rStrm.PopPosition();
css::uno::Reference< css::frame::XModel2 > mxModel
Bitmap GetBitmap(Color aTransparentReplaceColor) const
sal_uInt32 GetPropertyValue(sal_uInt32 nId, sal_uInt32 nDefault) const
bool IsProperty(sal_uInt32 nRecType) const
bool GetPropertyBool(sal_uInt32 nId) const
OUString GetPropertyString(sal_uInt32 nId, SvStream &rStrm) const
bool SeekToContent(sal_uInt32 nRecType, SvStream &rSt) const
void ReadPropSet(SvStream &rIn, SvxMSDffClientData *pClientData) const
void ApplyAttributes(SvStream &rIn, SfxItemSet &rSet) const
GraphicType GetType() const
void SetOutlinerMode(OutlinerMode nNew)
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
constexpr tools::Long Y() const
constexpr tools::Long X() const
void IncCol(SCCOL nDelta=1)
void IncRow(SCROW nDelta=1)
static ScMacroInfo * GetMacroInfo(SdrObject *pObj, bool bCreate=false)
static void SetCellAnchoredFromPosition(SdrObject &rObj, const ScDocument &rDoc, SCTAB nTab, bool bResizeWithCell)
OUString GetCodeName(SCTAB nTab) const
static ScPostIt * CreateNoteFromString(ScDocument &rDoc, const ScAddress &rPos, const OUString &rNoteText, bool bShown, bool bAlwaysCreateCaption, sal_uInt32 nPostItId=0)
Creates a cell note based on the passed string and inserts it into the document.
static ScPostIt * CreateNoteFromObjectData(ScDocument &rDoc, const ScAddress &rPos, SfxItemSet &&oItemSet, const OUString &rStyleName, const OutlinerParaObject &rOutlinerObj, const tools::Rectangle &rCaptionRect, bool bShown)
Creates a cell note based on the passed caption object data.
void ExtendTo(const ScRange &rRange)
static void FillApiAddress(css::table::CellAddress &rApiAddress, const ScAddress &rScAddress)
static void FillApiRange(css::table::CellRangeAddress &rApiRange, const ScRange &rScRange)
static css::uno::Reference< css::uno::XInterface > CreateInstance(const css::uno::Reference< css::lang::XMultiServiceFactory > &xFactory, const OUString &rServiceName)
Creates an instance from the passed service name, using the passed service factory.
A wrapper for a UNO property set.
void SetProperty(const OUString &rPropName, const Type &rValue)
Puts the passed value into the property set.
void SetStringProperty(const OUString &rPropName, const OUString &rValue)
Puts the passed string into the property set.
void SetBoolProperty(const OUString &rPropName, bool bValue)
Puts the passed Boolean value into the property set.
void SetPropertyValue(const css::beans::PropertyValue &rPropVal)
void EnableUndo(bool bEnable)
bool IsUndoEnabled() const
virtual void NbcInsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
virtual void NbcSetLayer(SdrLayerID nLayer)
virtual OutlinerParaObject * GetOutlinerParaObject() const
const SfxItemSet & GetMergedItemSet() const
void SetMergedItem(const SfxPoolItem &rItem)
virtual void SetName(const OUString &rStr, const bool bSetChanged=true)
void setHyperlink(const OUString &sHyperlink)
virtual const tools::Rectangle & GetLogicRect() const
static Graphic GetEmptyOLEReplacementGraphic()
css::uno::Reference< css::embed::XEmbeddedObject > const & GetObjRef() const
const OUString & GetPersistName() const
void SetPersistName(const OUString &rPersistName, SvxOle2Shape *pCreator=nullptr)
css::uno::Reference< css::uno::XInterface > const & getUnoPage()
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
SfxItemSet CloneAsValue(bool bItems=true, SfxItemPool *pToPool=nullptr) const
comphelper::EmbeddedObjectContainer & GetEmbeddedObjectContainer() const
css::uno::Reference< css::frame::XModel3 > GetModel() const
css::uno::Reference< css::embed::XStorage > const & GetStorage()
constexpr tools::Long Height() const
constexpr tools::Long Width() const
void SetEndian(SvStreamEndian SvStreamEndian)
virtual sal_uInt64 TellEnd()
SvStream & ReadInt16(sal_Int16 &rInt16)
std::size_t WriteBytes(const void *pData, std::size_t nSize)
SvStream & WriteInt16(sal_Int16 nInt16)
SvStream & WriteUChar(unsigned char nChar)
SvStream & WriteUInt16(sal_uInt16 nUInt16)
SvStream & WriteUInt32(sal_uInt32 nUInt32)
sal_uInt64 Seek(sal_uInt64 nPos)
std::size_t ReadBytes(void *pData, std::size_t nSize)
sal_uInt64 SeekRel(sal_Int64 nPos)
SvStream & ReadUChar(unsigned char &rChar)
bool IsMathType2Math() const
bool IsWinWord2Writer() const
static SvtFilterOptions & Get()
bool IsPowerPoint2Impress() const
static rtl::Reference< SdrOle2Obj > CreateSdrOLEFromStorage(SdrModel &rSdrModel, const OUString &rStorageName, tools::SvRef< SotStorage > const &rSrcStorage, const css::uno::Reference< css::embed::XStorage > &xDestStg, const Graphic &rGraf, const tools::Rectangle &rBoundRect, const tools::Rectangle &rVisArea, SvStream *pDataStrrm, ErrCode &rError, sal_uInt32 nConvertFlags, sal_Int64 nAspect, OUString const &rBaseURL)
void SetSvxMSDffSettings(sal_uInt32 nSettings)
bool GetBLIP(sal_uLong nIdx, Graphic &rData, tools::Rectangle *pVisArea=nullptr)
static void SolveSolver(const SvxMSDffSolverContainer &rSolver)
SdrModel * GetModel() const
void ScaleEmu(sal_Int32 &rVal) const
rtl::Reference< SdrObject > ImportObj(SvStream &rSt, SvxMSDffClientData &rData, tools::Rectangle &rClientRect, const tools::Rectangle &rGlobalChildRect, int nCalledByGroup, sal_Int32 *pShapeId)
void SetModel(SdrModel *pModel, tools::Long nApplicationScale)
static MapUnit UnoEmbed2VCLMapUnit(sal_Int32 nUnoEmbedMapUnit)
BitmapEx GetBitmap() const
const Color & GetBackgroundColor() const
void SetBackgroundColor(const Color &rColor)
void SetPixelColor(const Color &rColor)
static bool FillMacroDescriptor(css::script::ScriptEventDescriptor &rDescriptor, XclTbxEventType eEventType, const OUString &rXclMacroName, SfxObjectShell *pDocShell)
Fills the macro descriptor according to the passed macro name.
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.
XclObjFillData maFillData
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
XclImpArcObj(const XclImpRoot &rRoot)
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
XclObjLineData maLineData
BIFF5 fill formatting.
sal_uInt8 mnQuadrant
BIFF5 line formatting.
XclImpChartObj(const XclImpRoot &rRoot, bool bOwnTab=false)
void FinalizeTabChart()
Calculates the object anchor of a sheet chart (chart fills one page).
void ReadChartSubStream(XclImpStream &rStrm)
Reads the complete chart substream (BOF/EOF block).
virtual std::size_t DoGetProgressSize() const override
Returns the needed size on the progress bar.
virtual void DoPostProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const override
Converts the chart document.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
bool mbOwnTab
The chart itself (BOF/EOF substream data).
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
sal_uInt16 mnCheckBoxFlags
XclImpCheckBoxObj(const XclImpRoot &rRoot)
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
Helper base class for TBX and OCX form controls to manage spreadsheet links.
rtl::Reference< SdrObject > CreateSdrObjectFromShape(const css::uno::Reference< css::drawing::XShape > &rxShape, const tools::Rectangle &rAnchorRect) const
Returns the SdrObject from the passed control shape and sets the bounding rectangle.
virtual ~XclImpControlHelper()
void ReadRangeList(ScRangeList &rScRanges, XclImpStream &rStrm)
Linked cell in the Calc document.
XclImpControlHelper(const XclImpRoot &rRoot, XclCtrlBindMode eBindMode)
css::uno::Reference< css::drawing::XShape > mxShape
std::shared_ptr< ScAddress > mxCellLink
The UNO wrapper of the control shape.
const XclImpRoot & mrRoot
void ReadSourceRangeFormula(XclImpStream &rStrm, bool bWithBoundSize)
Reads the formula for the source range from the current position of the stream.
void ReadCellLinkFormula(XclImpStream &rStrm, bool bWithBoundSize)
Reads the formula for the linked cell from the current position of the stream.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const
Derived classes will set additional properties for the current form control.
bool HasCellLink() const
Returns true, if a linked cell address is present.
std::shared_ptr< ScRange > mxSrcRange
Not derived from XclImpRoot to allow multiple inheritance.
void ApplySheetLinkProps() const
void SetStringProperty(const OUString &sName, const OUString &sVal)
XclCtrlBindMode meBindMode
Source data range in the Calc document.
void ProcessControl(const XclImpDrawObjBase &rDrawObj) const
Sets additional properties to the form control model, calls virtual DoProcessControl().
This is the central instance for converting binary DFF data into shape objects.
sal_Int32 GetDefaultTextMargin() const
Returns the default text margin in drawing layer units.
ScfProgressBarRef mxProgress
The 'Ctls' stream for OCX form controls.
virtual ~XclImpDffConverter() override
void Progress(std::size_t nDelta=1)
Increase the progress bar by the passed value.
bool mbNotifyMacroEventRead
Default margin in text boxes.
virtual SdrObject * FinalizeObj(DffObjData &rDffObjData, SdrObject *pOldSdrObj) override
Finalize a DFF object, sets anchor after nested objs have been loaded.
void StartProgressBar(std::size_t nProgressSize)
Initializes the internal progress bar with the passed size and starts it.
OUString ReadHlinkProperty(SvStream &rDffStrm) const
Reads contents of a hyperlink property and returns the extracted URL.
sal_Int32 mnDefTextMargin
Application OLE import settings.
std::shared_ptr< XclImpDffConvData > XclImpDffConvDataRef
XclImpDffConvData & GetConvData()
Returns the current drawing manager data struct from top of the stack.
void NotifyMacroEventRead()
Notify that this document contains a macro event handler.
void FinalizeDrawing()
Finally called after the objects of the passed drawing manager have been converted.
XclImpDffConverter(const XclImpRoot &rRoot, SvStream &rDffStrm)
Standard name of control forms.
void ProcessObject(SdrObjList &rObjList, XclImpDrawObjBase &rDrawObj)
Processes BIFF5 drawing objects without DFF data, inserts into the passed object list.
void InitControlForm()
Initializes the mxCtrlForm referring to the standard controls form.
virtual rtl::Reference< SdrObject > ProcessObj(SvStream &rDffStrm, DffObjData &rDffObjData, SvxMSDffClientData &rClientData, tools::Rectangle &rTextRect, SdrObject *pOldSdrObj) override
Processes a DFF object, reads properties from DFF stream.
tools::SvRef< SotStorageStream > mxCtlsStrm
bool ProcessSolverContainer(SvStream &rDffStrm, const DffRecordHeader &rSolverHeader)
Processes the solver container (connectors of a sheet).
bool ProcessShContainer(SvStream &rDffStrm, const DffRecordHeader &rShHeader)
Processes a shape or shape group container (one top-level shape).
void InsertSdrObject(SdrObjList &rObjList, const XclImpDrawObjBase &rDrawObj, SdrObject *pSdrObj)
Inserts the passed SdrObject into the document.
void ProcessDrawing(const XclImpDrawObjVector &rDrawObjs)
Processes all objects in the passed list.
bool ProcessDgContainer(SvStream &rDffStrm, const DffRecordHeader &rDgHeader)
Processes a drawing container (all drawing data of a sheet).
void InitializeDrawing(XclImpDrawing &rDrawing, SdrModel &rSdrModel, SdrPage &rSdrPage)
Initially called before the objects of the passed drawing manager are converted.
virtual bool InsertControl(const css::uno::Reference< css::form::XFormComponent > &rxFormComp, const css::awt::Size &rSize, css::uno::Reference< css::drawing::XShape > *pxShape, bool bFloatingCtrl) override
Inserts the passed control rxFComp into the form.
std::vector< XclImpDffConvDataRef > maDataStack
The progress bar used in ProcessObj().
virtual void ProcessClientAnchor2(SvStream &rDffStrm, DffRecordHeader &rHeader, DffObjData &rObjData) override
Reads the client anchor from the DFF stream and sets it at the correct object.
rtl::Reference< SdrObject > CreateSdrObject(const XclImpTbxObjBase &rTbxObj, const tools::Rectangle &rAnchorRect)
Creates the SdrObject for the passed Excel TBX form control object.
sal_uInt32 mnOleImpFlags
Stack for registered drawing managers.
bool ProcessShGrContainer(SvStream &rDffStrm, const DffRecordHeader &rShGrHeader)
Processes the global shape group container (all shapes of a sheet).
bool SupportsOleObjects() const
Returns true, if the conversion of OLE objects is supported.
This class reads a DFF property set (msofbtOPT record).
sal_uInt32 GetPropertyValue(sal_uInt16 nPropId) const
Returns the specified property or zero, if not extant.
void Read(XclImpStream &rStrm)
Reads a DFF property set from the stream.
void FillToItemSet(SfxItemSet &rItemSet) const
Translates the properties and fills the item set.
XclImpSimpleDffConverter maDffConv
Dummy DGG stream for DFF manager.
SvMemoryStreamPtr mxMemStrm
DFF converter used to resolve palette colors.
XclImpDffPropSet(const XclImpRoot &rRoot)
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
XclImpDialogObj(const XclImpRoot &rRoot)
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
Base class for drawing objects (OBJ records).
void SetInsertSdrObj(bool bInsert)
If set to false, the SdrObject will be created or processed, but not be inserted into the draw page.
static XclImpDrawObjRef ReadObj4(const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads the BIFF4 OBJ record, returns a new drawing object.
static XclImpDrawObjRef ReadObj3(const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads the BIFF3 OBJ record, returns a new drawing object.
const XclObjAnchor * GetAnchor() const
Returns the object anchor if existing, null otherwise.
sal_uInt32 mnDffShapeId
The Excel object type from OBJ record.
void SetProcessSdrObj(bool bProcess)
If set to false, the SdrObject will not be created, processed, or inserted into the draw page.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize)
Derived classes read the contents of the specified subrecord of a BIFF8 OBJ record from stream.
bool mbAreaObj
true = Object is printable.
static XclImpDrawObjRef ReadObj5(const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads the BIFF5 OBJ record, returns a new drawing object.
bool mbVisible
true = Object is hidden.
void PreProcessSdrObject(XclImpDffConverter &rDffConv, SdrObject &rSdrObj)
Additional processing for the passed SdrObject before insertion into the drawing page (calls virtual ...
std::size_t GetProgressSize() const
Returns the needed size on the progress bar (calls virtual DoGetProgressSize() function).
bool IsVisible() const
Returns true, if the object is visible.
bool IsValidSize(const tools::Rectangle &rAnchorRect) const
Returns true, if the passed size is valid for this object.
void PostProcessSdrObject(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const
Additional processing for the passed SdrObject after insertion into the drawing page (calls virtual D...
ShapeFlag mnDffFlags
Shape ID from DFF stream.
bool IsHidden() const
Returns true, if the object is hidden.
sal_uInt16 mnObjId
The position of the object in its parent.
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize)
Derived classes read the contents of the a BIFF3 OBJ record from the passed stream.
bool mbHidden
true = maAnchor is initialized.
virtual OUString GetObjName() const
Returns the name of this object, may generate a default name.
void SetAnchor(const XclObjAnchor &rAnchor)
Sets the object anchor explicitly.
void ReadMacro5(XclImpStream &rStrm, sal_uInt16 nMacroSize)
Reads the macro link in a BIFF5 OBJ record.
void SetSimpleMacro(bool bMacro)
If set to true, a new SdrObject will be created while in DFF import.
bool IsPrintable() const
Returns true, if the object is printable.
bool mbAutoMargin
true = Width and height must be greater than 0.
bool IsProcessSdrObj() const
Returns true, if the object is valid and will be processed.
void ImplReadObj5(XclImpStream &rStrm)
Reads the contents of a BIFF5 OBJ record.
void ReadMacro3(XclImpStream &rStrm, sal_uInt16 nMacroSize)
Reads the macro link in a BIFF3 OBJ record.
void ReadMacro4(XclImpStream &rStrm, sal_uInt16 nMacroSize)
Reads the macro link in a BIFF4 OBJ record.
rtl::Reference< SdrObject > CreateSdrObject(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect, bool bIsDff) const
Creates and returns an SdrObject from the contained data.
bool IsInsertSdrObj() const
Returns true, if the SdrObject will be created or processed, but not be inserted into the draw page.
sal_uInt16 mnObjType
Location of object.
virtual ~XclImpDrawObjBase() override
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const
Derived classes create and return a new SdrObject from the contained data.
void SetDffData(const DffObjData &rDffObjData, const OUString &rObjName, const OUString &rHyperlink, bool bVisible, bool bAutoMargin)
Sets shape data from DFF stream.
void ReadMacro8(XclImpStream &rStrm)
Reads the contents of the ftMacro sub structure in an OBJ record.
OUString maHyperlink
Name of an attached macro.
sal_uInt16 GetObjId() const
Returns the sheet index and Excel object identifier from OBJ record.
XclImpDrawObjBase(const XclImpRoot &rRoot)
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize)
Derived classes read the contents of the a BIFF4 OBJ record from the passed stream.
const OUString & GetMacroName() const
Returns associated macro name, if set, otherwise zero length string.
void SetAreaObj(bool bAreaObj)
Sets whether this is an area object (then its width and height must be greater than 0).
sal_uInt32 GetDffShapeId() const
Returns the shape identifier used in the DFF stream.
void ImplReadObj4(XclImpStream &rStrm)
Reads the contents of a BIFF4 OBJ record.
Color GetSolidFillColor(const XclObjFillData &rFillData) const
Returns a solid fill color from the passed fill data struct.
void ConvertFrameStyle(SdrObject &rSdrObj, sal_uInt16 nFrameFlags) const
Converts the passed frame flags to the passed SdrObject.
ScRange GetUsedArea(SCTAB nScTab) const
Returns the range in the sheet covered by this object.
void ConvertFillStyle(SdrObject &rSdrObj, const XclObjFillData &rFillData) const
Converts the passed fill formatting to the passed SdrObject.
void NotifyMacroEventRead()
Notify that the document contains a macro event handler.
void ImplReadObj8(XclImpStream &rStrm)
Reads the contents of a BIFF8 OBJ record.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize)
Derived classes read the contents of the a BIFF5 OBJ record from the passed stream.
virtual void DoPreProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const
Derived classes may perform additional processing for the passed SdrObject before insertion.
static XclImpDrawObjRef ReadObj8(const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads the BIFF8 OBJ record, returns a new drawing object.
Color GetSolidLineColor(const XclObjLineData &rLineData) const
Returns a solid line color from the passed line data struct.
bool mbHasAnchor
On-click hyperlink URL.
void SetCustomDffObj(bool bCustom)
If set to true, a new SdrObject will be created while in DFF import.
sal_uInt16 GetObjType() const
Returns the Excel object type from OBJ record.
void ConvertLineStyle(SdrObject &rSdrObj, const XclObjLineData &rLineData) const
Converts the passed line formatting to the passed SdrObject.
OUString maMacroName
Name of the object.
tools::Rectangle maDffRect
Shape flags from DFF stream.
virtual std::size_t DoGetProgressSize() const
Derived classes may return a progress bar size different from 1.
virtual void DoPostProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const
Derived classes may perform additional processing for the passed SdrObject after insertion.
bool mbNotifyMacroEventRead
true = Recreate SdrObject in DFF import.
const tools::Rectangle & GetDffRect() const
bool mbCustomDff
true = Insert the SdrObject into draw page.
void ReadName5(XclImpStream &rStrm, sal_uInt16 nNameLen)
Reads the object name in a BIFF5 OBJ record.
bool mbPrintable
true = Object is visible.
void ImplReadObj3(XclImpStream &rStrm)
Reads the contents of a BIFF3 OBJ record.
void push_back(const XclImpDrawObjRef &rObj)
std::vector< XclImpDrawObjRef > mObjs
void InsertGrouped(XclImpDrawObjRef const &xDrawObj)
Tries to insert the passed object into the last group or appends it.
std::size_t GetProgressSize() const
Returns the needed size on the progress bar for all contained objects.
Base class for a container for all objects on a drawing (spreadsheet or embedded chart object).
void ReadDffRecord(XclImpStream &rStrm)
Reads contents of a DFF record and append data to internal DFF stream.
void SetSkipObj(sal_uInt16 nObjId)
Sets the object with the passed identification to be skipped on import.
std::size_t GetProgressSize() const
Returns the size of the progress bar shown while processing all objects.
std::shared_ptr< XclImpObjTextData > XclImpObjTextRef
XclImpDrawing(const XclImpRoot &rRoot, bool bOleObjects)
void ReadObj8(XclImpStream &rStrm)
Reads a BIFF8 OBJ record following an MSODRAWING record.
static void ReadBmp(Graphic &rGraphic, const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads and returns a bitmap from BMP format.
XclImpDrawObjRef FindDrawObj(const DffRecordHeader &rHeader) const
Finds the OBJ record data related to the DFF shape at the passed position.
bool SupportsOleObjects() const
Returns true, if the conversion of OLE objects is supported.
XclImpObjMap maObjMap
Copy of the DFF page stream in memory.
void AppendRawObject(const XclImpDrawObjRef &rxDrawObj)
Appends a new drawing object to the list of raw objects (without DFF data).
void ReadTxo(XclImpStream &rStrm)
Reads the TXO record and following CONTINUE records containing string and formatting.
XclImpObjMapById maObjMapId
Maps BIFF8 drawing objects to DFF stream position.
ScfUInt16Vec maSkipObjs
Maps BIFF8 TXO textbox data to DFF stream position.
XclImpDrawObjVector maRawObjs
XclImpObjTextMap maTextMap
Maps BIFF8 drawing objects to object ID.
void ReadObj(XclImpStream &rStrm)
Reads a plain OBJ record (without leading DFF data).
SvMemoryStream maDffStrm
BIFF5 objects without DFF data.
virtual void OnObjectInserted(const XclImpDrawObjBase &rDrawObj)=0
Called whenever an object has been inserted into the draw page.
void ImplConvertObjects(XclImpDffConverter &rDffConv, SdrModel &rSdrModel, SdrPage &rSdrPage)
Converts all objects and inserts them into the current drawing page.
static void ReadWmf(Graphic &rGraphic, XclImpStream &rStrm)
Reads and returns a bitmap from WMF/PICT format.
virtual ~XclImpDrawing() override
const XclImpObjTextData * FindTextData(const DffRecordHeader &rHeader) const
Finds the textbox data related to the DFF shape at the passed position.
void ReadMsoDrawing(XclImpStream &rStrm)
Reads the MSODRAWING or MSODRAWINGSELECTION record.
static Graphic ReadImgData(const XclImpRoot &rRoot, XclImpStream &rStrm)
Reads and returns a bitmap from the IMGDATA record.
virtual tools::Rectangle CalcAnchorRect(const XclObjAnchor &rAnchor, bool bDffAnchor) const =0
Derived classes calculate the resulting rectangle of the passed anchor.
XclImpDropDownObj(const XclImpRoot &rRoot)
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
sal_uInt16 GetDropDownType() const
Returns the type of the dropdown control.
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
void ReadFullLbsData(XclImpStream &rStrm)
Reads dropdown box settings.
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
sal_uInt16 mnDropDownFlags
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
sal_uInt16 mnListBoxObjId
bool IsNumeric() const
REturns true, if the field type is numeric.
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
XclImpEditObj(const XclImpRoot &rRoot)
Stores contents of an external name.
XclImpExtNameType GetType() const
sal_uInt32 GetStorageId() const
void WriteDefaultCtrlFontProperties(ScfPropertySet &rPropSet) const
Writes default font properties for form controls to the passed property set.
void WriteFontProperties(ScfPropertySet &rPropSet, XclFontPropSetType eType, sal_uInt16 nFontIdx, const Color *pFontColor=nullptr) const
Writes all font properties to the passed property set.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
sal_uInt16 mnGroupBoxFlags
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
XclImpGroupBoxObj(const XclImpRoot &rRoot)
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
bool TryInsert(XclImpDrawObjRef const &xDrawObj)
Tries to insert the drawing object into this or a nested group.
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
sal_uInt16 mnFirstUngrouped
Grouped objects.
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual std::size_t DoGetProgressSize() const override
Returns a progress bar size that takes all group children into account.
XclImpGroupObj(const XclImpRoot &rRoot)
XclImpDrawObjVector maChildren
static OUString ReadEmbeddedData(XclImpStream &rStrm)
Reads the (undocumented) embedded hyperlink data and returns the URL.
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
XclImpLabelObj(const XclImpRoot &rRoot)
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
XclImpLineObj(const XclImpRoot &rRoot)
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
XclObjLineData maLineData
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
sal_uInt8 mnStartPoint
Line arrows.
sal_uInt16 mnArrows
BIFF5 line formatting.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
OUString GetMacroName(sal_uInt16 nExtSheet, sal_uInt16 nExtName) const
Returns the specified macro name or an empty string on error.
const XclImpExtName * GetExternName(sal_uInt16 nXtiIndex, sal_uInt16 nExtName) const
Returns the specified external name or 0 on error.
virtual XclTbxEventType DoGetEventType() const override
Returns the type of the macro event to be created.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual OUString DoGetServiceName() const override
Returns the service name of the control component to be created.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
XclImpListBoxObj(const XclImpRoot &rRoot)
virtual void DoProcessControl(ScfPropertySet &rPropSet) const override
Sets additional properties for the current form control.
void ReadFullLbsData(XclImpStream &rStrm, std::size_t nRecLeft)
Reads listbox settings and selection.
A note object, which is a specialized text box object.
sal_uInt16 mnNoteFlags
Cell position of the note object.
void SetNoteData(const ScAddress &rScPos, sal_uInt16 nNoteFlags)
Sets note flags and the note position in the Calc sheet.
XclImpNoteObj(const XclImpRoot &rRoot)
virtual void DoPreProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const override
Inserts the note into the document, sets visibility.
css::uno::Reference< css::container::XNameContainer > mxOleCtrlNameOverride
OUString GetDefaultObjName(const XclImpDrawObjBase &rDrawObj) const
Returns the default name for the passed object.
OUString GetOleNameOverride(SCTAB nTab, sal_uInt16 nObjId)
Returns the name of overridden name ( or zero length string ) for associated object id.
XclImpObjectManager(const XclImpRoot &rRoot)
XclImpSheetDrawing & GetSheetDrawing(SCTAB nScTab)
Returns (initially creates) the drawing manager of the specified sheet.
void ReadMsoDrawingGroup(XclImpStream &rStrm)
Reads the MSODRAWINGGROUP record.
virtual ~XclImpObjectManager() override
ScRange GetUsedArea(SCTAB nScTab) const
Returns the used area in the sheet with the passed index.
std::shared_ptr< XclImpSheetDrawing > XclImpSheetDrawingRef
DefObjNameMap maDefObjNames
XclImpSheetDrawingMap maSheetDrawings
Copy of global DFF data (DGG container) in memory.
SvMemoryStream maDggStrm
Default base names for all object types.
void ConvertObjects()
Inserts all objects into the Calc document.
XclImpOvalObj(const XclImpRoot &rRoot)
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
void SetPaperSize(sal_uInt16 nXclPaperSize, bool bPortrait)
Overrides paper size and orientation (used in sheet-charts).
const XclPageData & GetPageData() const
Returns read-only access to the page data.
void ReadImgData(XclImpStream &rStrm)
Reads an IMGDATA record and creates the SvxBrushItem.
Color GetColor(sal_uInt16 nXclIndex) const
Returns the color for a (non-zero-based) Excel palette entry.
XclImpPhObj(const XclImpRoot &rRoot)
A picture, an embedded or linked OLE object, or an OCX form control.
std::size_t mnCtlsStrmSize
Position in 'Ctls' stream for this control.
OUString GetOleStorageName() const
Returns the storage name for the OLE object.
std::size_t GetCtlsStreamSize() const
Returns the size in the 'Ctls' stream for additional form control data.
std::size_t mnCtlsStrmPos
Identifier of the storage for this object.
bool mbControl
true = Show as symbol.
std::size_t GetCtlsStreamPos() const
Returns the position in the 'Ctls' stream for additional form control data.
bool mbEmbedded
Size in 'Ctls' stream for this control.
OUString maClassName
Picture or OLE placeholder graphic.
bool mbLinked
true = Embedded OLE object.
bool mbSymbol
true = Linked OLE object.
sal_uInt32 mnStorageId
Class name of embedded OLE object.
virtual OUString GetObjName() const override
Returns the ObjectName - can use non-obvious lookup for override in the associated vba document modul...
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
bool IsOcxControl() const
Returns true, if this object is an OCX form control.
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
void ReadFlags3(XclImpStream &rStrm)
Reads and sets the picture flags from a BIFF3-BIFF5 OBJ picture record.
void ReadFlags8(XclImpStream &rStrm)
Reads the contents of the OBJFLAGS subrecord.
bool IsSymbol() const
Returns true, if the OLE object will be shown as symbol.
virtual void DoReadObj8SubRec(XclImpStream &rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize) override
Reads the contents of the specified subrecord of a BIFF8 OBJ record from stream.
const Graphic & GetGraphic() const
Returns the graphic imported from the IMGDATA record.
bool mbUseCtlsStrm
true = Form control, false = OLE object.
void ReadPictFmla(XclImpStream &rStrm, sal_uInt16 nLinkSize)
Reads the contents of the OBJPICTFMLA subrecord.
XclImpPictureObj(const XclImpRoot &rRoot)
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
virtual void DoPreProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const override
Override to do additional processing on the SdrObject.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
sal_uInt16 mnPolyFlags
Coordinates relative to bounding rectangle.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
XclImpPolygonObj(const XclImpRoot &rRoot)
void ReadCoordList(XclImpStream &rStrm)
Reads the COORDLIST record following the OBJ record.
sal_uInt16 mnPointCount
Additional flags.
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
A rectangle or oval object.
XclImpRectObj(const XclImpRoot &rRoot)
XclObjLineData maLineData
BIFF5 fill formatting.
sal_uInt16 mnFrameFlags
BIFF5 line formatting.
void ReadFrameData(XclImpStream &rStrm)
Reads fil data, line data, and frame flags.
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
void ConvertRectStyle(SdrObject &rSdrObj) const
Converts fill formatting, line formatting, and frame style.
XclObjFillData maFillData
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
Access to global data from other classes.
XclImpAddressConverter & GetAddressConverter() const
Returns the address converter.
XclImpLinkManager & GetLinkManager() const
Returns the link manager.
XclImpFontBuffer & GetFontBuffer() const
Returns the font buffer.
XclImpFormulaCompiler & GetFormulaCompiler() const
Returns the formula converter.
XclImpPalette & GetPalette() const
Returns the color buffer.
const XclImpRoot & GetRoot() const
Returns this root instance - for code readability in derived classes.
XclImpPageSettings & GetPageSettings() const
Returns the page settings of the current sheet.
XclImpObjectManager & GetObjectManager() const
Returns the drawing object manager.
Drawing manager of a single sheet.
void ConvertObjects(XclImpDffConverter &rDffConv)
Converts all objects and inserts them into the sheet drawing page.
virtual tools::Rectangle CalcAnchorRect(const XclObjAnchor &rAnchor, bool bDffAnchor) const override
Calculate the resulting rectangle of the passed anchor.
virtual void OnObjectInserted(const XclImpDrawObjBase &rDrawObj) override
On call, updates the used area of the sheet.
void ReadNote(XclImpStream &rStrm)
Reads the NOTE record.
void ReadNote3(XclImpStream &rStrm)
Reads a BIFF3-BIFF5 NOTE record.
void ReadNote8(XclImpStream &rStrm)
Reads a BIFF8 NOTE record.
XclImpSheetDrawing(const XclImpRoot &rRoot, SCTAB nScTab)
void ReadTabChart(XclImpStream &rStrm)
Inserts a new chart object and reads the chart substream (BOF/EOF block).
Simple implementation of the SVX DFF manager.
XclImpSimpleDffConverter(const XclImpRoot &rRoot, SvStream &rDffStrm)
virtual ~XclImpSimpleDffConverter() override
virtual bool GetColorFromPalette(sal_uInt16 nIndex, Color &rColor) const override
Returns a color from the Excel color palette.
The solver container collects all connector rules for connected objects.
XclImpSdrObjMap maSdrObjMap
Maps shape IDs to SdrObjects and flags.
void RemoveSdrObjectInfo(SdrObject &rSdrObj)
Removes information of an SdrObject (and all child objects if it is a group).
void RemoveConnectorRules()
Removes all contained connector rules.
XclImpSdrInfoMap maSdrInfoMap
void UpdateConnectorRules()
Inserts the SdrObject pointers into all connector rules.
void UpdateConnection(sal_uInt32 nDffShapeId, SdrObject *&rpSdrObj, ShapeFlag *pnDffFlags=nullptr)
Updates the data of a connected shape in a connector rule.
void InsertSdrObjectInfo(SdrObject &rSdrObj, sal_uInt32 nDffShapeId, ShapeFlag nDffFlags)
Inserts information about a new SdrObject.
This class is used to import record oriented streams.
bool StartNextRecord()
Sets stream pointer to the start of the next record content.
static std::unique_ptr< EditTextObject > CreateTextObject(const XclImpRoot &rRoot, const XclImpString &rString)
Returns a new edit engine text object.
Base class for textbox based form controls.
bool FillMacroDescriptor(css::script::ScriptEventDescriptor &rDescriptor) const
Fills the passed macro event descriptor.
virtual XclTbxEventType DoGetEventType() const =0
Derived classes return the type of the macro event to be created.
virtual void DoPreProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const override
Additional processing on the SdrObject, calls new virtual function DoProcessControl().
void ConvertLabel(ScfPropertySet &rPropSet) const
Sets control label and text formatting.
OUString GetServiceName() const
Returns the service name of the control component to be created.
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
void ConvertFont(ScfPropertySet &rPropSet) const
Sets control text formatting.
XclImpTbxObjBase(const XclImpRoot &rRoot)
void SetDffProperties(const DffPropSet &rDffPropSet)
Sets line and fill formatting from the passed DFF property set.
Base class for list controls (listbox, dropdown).
void ReadLbsData(XclImpStream &rStrm)
Reads common listbox settings.
void SetBoxFormatting(ScfPropertySet &rPropSet) const
Sets common listbox/dropdown formatting attributes.
XclImpTbxObjListBase(const XclImpRoot &rRoot)
A drawing object supporting text contents.
XclImpObjTextData maTextData
virtual rtl::Reference< SdrObject > DoCreateSdrObj(XclImpDffConverter &rDffConv, const tools::Rectangle &rAnchorRect) const override
Creates and returns a new SdrObject from the contained data.
virtual void DoReadObj5(XclImpStream &rStrm, sal_uInt16 nNameLen, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF5 OBJ record from the passed stream.
XclImpTextObj(const XclImpRoot &rRoot)
virtual void DoPreProcessSdrObj(XclImpDffConverter &rDffConv, SdrObject &rSdrObj) const override
Inserts the contained text data at the passed object.
virtual void DoReadObj3(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF3 OBJ record from the passed stream.
virtual void DoReadObj4(XclImpStream &rStrm, sal_uInt16 nMacroSize) override
Reads the contents of the a BIFF4 OBJ record from the passed stream.
SfxObjectShell * GetDocShell() const
Returns the object shell of the Calc document.
const tools::SvRef< SotStorage > & GetRootStorage() const
Returns the OLE2 root storage of the imported/exported file.
ScExtDocOptions & GetExtDocOptions() const
Returns the extended document options.
SfxMedium & GetMedium() const
Returns the medium to import from.
XclTracer & GetTracer() const
Returns the filter tracer.
tools::SvRef< SotStorageStream > OpenStream(tools::SvRef< SotStorage > const &xStrg, const OUString &rStrmName) const
Tries to open a new stream in the specified storage for reading or writing.
SCTAB GetCurrScTab() const
Returns the current Calc sheet index.
XclBiff GetBiff() const
Returns the current BIFF version of the importer/exporter.
RootData & GetOldRoot() const
Returns old RootData struct.
ScDocument & GetDoc() const
Returns reference to the destination document (import) or source document (export).
SdrPage * GetSdrPage(SCTAB nScTab) const
Returns the drawing layer page of the passed sheet, if present.
static sal_uInt8 GetTokenId(sal_uInt8 nBaseId, sal_uInt8 nTokenClass)
Returns the classified token ID from a base ID and the token class.
Binary representation of an Excel token array.
void ReadArray(sal_uInt16 nSize, XclImpStream &rStrm)
Reads the tokens of the token array (without size field).
static sal_uInt16 ReadSize(XclImpStream &rStrm)
Reads the size field of the token array.
void TraceUnsupportedObjects()
void TraceObjectNotPrintable()
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
void AddEmbeddedObject(const css::uno::Reference< css::embed::XEmbeddedObject > &, const OUString &)
bool HasEmbeddedObject(const OUString &)
bool InsertEmbeddedObject(const css::uno::Reference< css::embed::XEmbeddedObject > &, OUString &)
MSConvertOCXControls(const css::uno::Reference< css::frame::XModel > &rxModel)
bool ReadOCXCtlsStream(tools::SvRef< SotStorageStream > const &rSrc1, css::uno::Reference< css::form::XFormComponent > &rxFormComp, sal_Int32 nPos, sal_Int32 nSize)
static bool TryRunningState(const css::uno::Reference< css::embed::XEmbeddedObject > &)
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr TypedWhichId< SvxAdjustItem > EE_PARA_JUST(EE_PARA_START+16)
Reference< XSingleServiceFactory > xFactory
constexpr SdrLayerID SC_LAYER_FRONT(0)
constexpr SdrLayerID SC_LAYER_CONTROLS(3)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
#define SAL_N_ELEMENTS(arr)
#define DFF_Prop_anchorText
#define DFF_msofbtClientAnchor
#define DFF_Prop_pihlShape
#define DFF_Prop_lineColor
#define DFF_Prop_AutoTextMargin
#define DFF_msofbtDgContainer
#define DFF_msofbtSolverContainer
#define DFF_msofbtSpContainer
#define DFF_msofbtSpgrContainer
#define DFF_Prop_fillColor
#define DFF_Prop_fillBackColor
SvStream & ReadSvxMSDffSolverContainer(SvStream &rIn, SvxMSDffSolverContainer &rContainer)
#define SVXMSDFF_SETTINGS_CROP_BITMAPS
#define OLE_MATHTYPE_2_STARMATH
#define OLE_WINWORD_2_STARWRITER
#define OLE_POWERPOINT_2_STARIMPRESS
#define SVXMSDFF_SETTINGS_IMPORT_EXCEL
COMPHELPER_DLLPUBLIC void notifyMacroEventRead(const css::uno::Reference< css::frame::XModel > &_rxDocument)
constexpr T saturating_add(T a, T b)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
OUString ScResId(TranslateId aId)
SdrOnOffItem makeSdrTextWordWrapItem(bool bAuto)
XColorItem makeSdrShadowColorItem(const Color &rTheColor)
SdrOnOffItem makeSdrShadowItem(bool bShadow)
SdrMetricItem makeSdrShadowXDistItem(tools::Long nDist)
SdrMetricItem makeSdrShadowYDistItem(tools::Long nDist)
SdrOnOffItem makeSdrTextAutoGrowHeightItem(bool bAuto)
SdrOnOffItem makeSdrTextAutoGrowWidthItem(bool bAuto)
SdrMetricItem makeSdrTextUpperDistItem(tools::Long mnHeight)
SdrMetricItem makeSdrTextRightDistItem(tools::Long mnHeight)
SdrMetricItem makeSdrTextLowerDistItem(tools::Long mnHeight)
SdrMetricItem makeSdrTextLeftDistItem(tools::Long mnHeight)
#define STREAM_SEEK_TO_END
#define STREAM_SEEK_TO_BEGIN
const DffRecordHeader & rSpHd
tools::Rectangle aChildAnchor
std::unique_ptr< ExtNameBuff > pExtNameBuff
::std::vector< std::unique_ptr< SvxMSDffConnectorRule > > aCList
A 2D cell address struct with Excel column and row indexes.
Data per registered drawing manager, will be stacked for recursive calls.
XclImpDffConvData(XclImpDrawing &rDrawing, SdrModel &rSdrModel, SdrPage &rSdrPage)
True = mxCtrlForm is initialized (but maybe still null).
bool mbHasCtrlForm
Last insertion index of a form control (for macro events).
XclImpSolverContainer maSolverCont
The SdrPage of the drawing manager.
XclImpDrawing & mrDrawing
css::uno::Reference< css::form::XForm > mxCtrlForm
The solver container for connector rules.
sal_Int32 mnLastCtrlIndex
Controls form of current drawing page.
SdrPage & mrSdrPage
The SdrModel of the drawing manager.
void ReadByteString(XclImpStream &rStrm)
Plain or rich string.
void ReadFormats(XclImpStream &rStrm)
Reads text formatting from the passed stream.
XclImpStringRef mxString
BIFF5 text data.
Represents the position (anchor) of an object in a Calc document.
tools::Rectangle GetRect(const XclRoot &rRoot, SCTAB nScTab, MapUnit eMapUnit) const
Calculates a rectangle from the contained coordinates.
sal_uInt32 mnBY
X offset in right column (1/1024 of column width).
sal_uInt16 mnRX
Y offset in top row (1/256 of row height).
void SetRect(const XclRoot &rRoot, SCTAB nScTab, const tools::Rectangle &rRect, MapUnit eMapUnit)
Initializes the anchor coordinates for a sheet.
sal_uInt8 GetHorAlign() const
void ReadObj3(XclImpStream &rStrm)
Reads text data from a BIFF3/BIFF4 OBJ record.
sal_uInt8 GetVerAlign() const
void ReadObj5(XclImpStream &rStrm)
Reads text data from a BIFF5 OBJ record.
Contains all page (print) settings for a single sheet.
bool mbPrintHeadings
true = centered vertically; false = top aligned.
double mfRightMargin
Left margin in inches.
double mfBottomMargin
Top margin in inches.
Size GetScPaperSize() const
Returns the real paper size (twips) from the paper size index and paper orientation.
double mfTopMargin
Right margin in inches.
double mfLeftMargin
Excel footer string for first page (empty = off).
Reference< XModel > xModel
constexpr TypedWhichId< SdrCustomShapeGeometryItem > SDRATTR_CUSTOMSHAPE_GEOMETRY(SDRATTR_CUSTOMSHAPE_FIRST+2)
constexpr TypedWhichId< SvxWritingModeItem > SDRATTR_TEXTDIRECTION(SDRATTR_NOTPERSIST_FIRST+34)
SVXCORE_DLLPUBLIC SdrTextObj * DynCastSdrTextObj(SdrObject *)
constexpr OUStringLiteral SC_UNONAME_BOUNDCELL
constexpr OUStringLiteral SC_SERVICENAME_LISTCELLBIND
constexpr OUStringLiteral SC_SERVICENAME_VALBIND
constexpr OUStringLiteral SC_SERVICENAME_LISTSOURCE
constexpr OUStringLiteral SC_UNONAME_CELLRANGE
constexpr OUStringLiteral VERTICAL(u"Vertical")
std::unique_ptr< char[]> aBuffer
XclImpStream & operator>>(XclImpStream &rStrm, XclImpDffPropSet &rPropSet)
constexpr OUStringLiteral gaStdFormName(u"Standard")
#define EXC_ARROW_POINT(x, y)
std::shared_ptr< XclImpDrawObjBase > XclImpDrawObjRef
@ xlExtOLE
A DDE link range.
#define EXC_STORAGE_OLE_EMBEDDED
const sal_uInt16 EXC_BOF_CHART
Regular worksheet.
#define EXC_STORAGE_OLE_LINKED
A Calc sheet index for the workbook globals.
constexpr OUStringLiteral EXC_STREAM_CTLS
@ EXC_BIFF8
MS Excel 5.0, MS Excel 7.0 (95)
const sal_uInt16 EXC_ID5_BOF
const sal_uInt16 EXC_ID_OBJPICTFMLA
Option flags.
const sal_uInt8 EXC_OBJ_LINE_SOLID
const sal_uInt16 EXC_OBJ_ORIENT_STACKED
const sal_uInt8 EXC_OBJ_ARC_TL
const sal_uInt16 EXC_OBJ_DROPDOWN_SIMPLE
Dropdown listbox with editable text.
const sal_uInt8 EXC_OBJ_LINE_BL
const sal_Int32 EXC_OBJ_TEXT_MARGIN
const sal_uInt8 EXC_OBJ_LINE_MEDTRANS
const sal_uInt16 EXC_OBJTYPE_NOTE
const sal_uInt8 EXC_OBJ_ARC_TR
Automatic text margin (EMUs).
const sal_uInt8 EXC_OBJ_VER_CENTER
const sal_uInt16 EXC_OBJ_BUTTON_CLOSE
const sal_uInt16 EXC_OBJTYPE_DRAWING
const sal_uInt16 EXC_OBJ_EDIT_DOUBLE
const sal_uInt16 EXC_OBJ_CHECKBOX_FLAT
const sal_uInt16 EXC_OBJ_FRAME_SHADOW
const sal_uInt16 EXC_OBJTYPE_CHART
const sal_uInt16 EXC_OBJ_EDIT_TEXT
const sal_uInt8 EXC_OBJ_ARROW_NARROW
const sal_uInt16 EXC_OBJTYPE_EDIT
const sal_uInt16 EXC_OBJ_CHECKBOX_CHECKED
const sal_uInt8 EXC_OBJ_LINE_THICK
const sal_uInt16 EXC_OBJ_PIC_CONTROL
const sal_uInt16 EXC_ID_OBJCMO
Check box/radio button cell link.
const sal_uInt16 EXC_OBJ_CHECKBOX_TRISTATE
const sal_uInt16 EXC_ID3_IMGDATA
const sal_uInt16 EXC_IMGDATA_BMP
const sal_uInt8 EXC_OBJ_VER_JUSTIFY
const sal_uInt16 EXC_OBJ_PIC_CTLSSTREAM
Form control (BIFF8).
const sal_uInt16 EXC_ID_OBJEDODATA
Group box data.
const sal_uInt8 EXC_OBJ_LINE_BR
const sal_uInt8 EXC_OBJ_LINE_TR
const sal_uInt8 EXC_OBJ_VER_BOTTOM
const sal_uInt8 EXC_OBJ_LINE_DASHDOT
const sal_uInt8 EXC_OBJ_LINE_AUTO
const sal_uInt8 EXC_OBJ_ARROW_FILLED
const sal_uInt16 EXC_OBJ_CHECKBOX_UNCHECKED
const sal_uInt16 EXC_OBJ_PIC_SYMBOL
const sal_uInt8 EXC_OBJ_ARC_BR
const sal_uInt16 EXC_OBJTYPE_UNKNOWN
const sal_uInt16 EXC_ID_OBJCBLSFMLA
List box/combo box data.
const sal_uInt16 EXC_OBJ_BUTTON_CANCEL
const sal_uInt16 EXC_OBJ_POLY_CLOSED
const sal_uInt16 EXC_OBJ_EDIT_INTEGER
const sal_uInt8 EXC_OBJ_VER_TOP
const sal_uInt16 EXC_OBJTYPE_POLYGON
const sal_uInt16 EXC_ID_OBJGBODATA
Scroll bar/list box/combo box cell link.
const sal_uInt16 EXC_ID_OBJRBODATA
Edit box data.
const sal_uInt8 EXC_OBJ_LINE_DARKTRANS
const sal_uInt16 EXC_OBJTYPE_ARC
const sal_uInt16 EXC_OBJTYPE_GROUPBOX
const sal_uInt8 EXC_OBJ_ARC_BL
const sal_uInt8 EXC_OBJ_ARROW_MEDIUM
const sal_uInt8 EXC_OBJ_LINE_TL
const sal_uInt16 EXC_OBJTYPE_DROPDOWN
const sal_uInt16 EXC_ID_OBJSBS
Radio button group data.
const sal_uInt16 EXC_OBJTYPE_OPTIONBUTTON
const sal_uInt16 EXC_OBJTYPE_BUTTON
const sal_uInt16 EXC_OBJ_ORIENT_90CCW
Stacked top to bottom.
const sal_uInt16 EXC_OBJTYPE_GROUP
const sal_uInt8 EXC_OBJ_LINE_THIN
const sal_uInt8 EXC_OBJ_LINE_NONE
const sal_uInt16 EXC_ID_OBJCBLS
OLE link formula.
const sal_uInt8 EXC_OBJ_HOR_CENTER
const sal_uInt16 EXC_OBJ_ORIENT_NONE
const sal_uInt16 EXC_OBJTYPE_RECTANGLE
const sal_uInt8 EXC_OBJ_ARROW_OPEN
const sal_uInt8 EXC_OBJ_ARROW_OPENBOTH
const sal_uInt16 EXC_OBJ_TEXT_AUTOSIZE
90 degr. clockwise.
const sal_uInt16 EXC_ID_OBJFLAGS
Clipboard format.
const sal_uInt8 EXC_OBJ_HOR_LEFT
const sal_uInt16 EXC_IMGDATA_WMF
const sal_uInt16 EXC_ID_MSODRAWINGSEL
const sal_uInt16 EXC_OBJ_PRINTABLE
const sal_uInt16 EXC_ID_OBJ
const sal_uInt8 EXC_OBJ_ARROW_WIDE
const sal_uInt16 EXC_OBJTYPE_LINE
const sal_uInt8 EXC_OBJ_FILL_AUTO
XclCtrlBindMode
Automatic fill formatting.
@ EXC_CTRL_BINDPOSITION
Binds cell to content of control.
const sal_uInt16 EXC_OBJCMO_PRINTABLE
For internal use only.
@ EXC_TBX_EVENT_VALUE
XTextListener.textChanged.
@ EXC_TBX_EVENT_MOUSE
XActionListener.actionPerformed.
@ EXC_TBX_EVENT_CHANGE
XAdjustmentListener.adjustmentValueChanged.
@ EXC_TBX_EVENT_TEXT
XMouseListener.mouseReleased.
const sal_uInt16 EXC_OBJTYPE_TEXT
const sal_uInt8 EXC_OBJ_LINE_DASH
const sal_uInt16 EXC_ID_OBJSBSFMLA
Note data.
const sal_uInt8 EXC_OBJ_LISTBOX_SINGLE
const sal_uInt8 EXC_OBJ_LINE_DOT
const sal_uInt8 EXC_OBJ_HOR_RIGHT
const sal_uInt16 EXC_ID_TXO
const sal_uInt16 EXC_ID_MSODRAWING
const sal_uInt16 EXC_OBJTYPE_LABEL
const sal_uInt16 EXC_OBJTYPE_OVAL
const sal_uInt16 EXC_OBJ_VISIBLE
const sal_uInt16 EXC_ID_OBJLBSDATA
Check box/radio button data.
const sal_uInt16 EXC_OBJ_BUTTON_HELP
const sal_uInt16 EXC_ID_OBJMACRO
End of OBJ.
const sal_uInt16 EXC_OBJ_DROPDOWN_COMBOBOX
Listbox, text not editable.
const sal_uInt16 EXC_OBJTYPE_DIALOG
const sal_uInt8 EXC_OBJ_HOR_JUSTIFY
const sal_uInt16 EXC_OBJTYPE_SCROLLBAR
const sal_uInt16 EXC_OBJ_SCROLLBAR_HOR
const sal_uInt16 EXC_ID_COORDLIST
const sal_uInt16 EXC_OBJTYPE_CHECKBOX
const sal_uInt16 EXC_ID_OBJEND
const sal_uInt16 EXC_ID_NOTE
const sal_uInt16 EXC_OBJ_ORIENT_90CW
90 degr. counterclockwise.
const sal_uInt16 EXC_OBJ_BUTTON_DEFAULT
Auto-load form control (BIFF8).
const sal_uInt8 EXC_OBJ_LINE_LIGHTTRANS
const sal_uInt16 EXC_ID_MSODRAWINGGROUP
const sal_uInt16 EXC_OBJTYPE_SPIN
const sal_uInt16 EXC_OBJ_INVALID_ID
const sal_uInt16 EXC_OBJ_LISTBOX_FLAT
const sal_uInt16 EXC_NOTE_VISIBLE
const sal_uInt16 EXC_OBJ_HIDDEN
For internal use only.
const sal_uInt8 EXC_OBJ_LINE_DASHDOTDOT
const sal_uInt8 EXC_OBJ_ARROW_FILLEDBOTH
const sal_uInt16 EXC_OBJTYPE_PICTURE
const sal_uInt16 EXC_OBJTYPE_LISTBOX
const sal_uInt16 EXC_PAPERSIZE_DEFAULT
const sal_uInt16 EXC_ID_CONT
const std::size_t EXC_REC_SEEK_TO_BEGIN
::std::vector< XclFormatRun > XclFormatRunVec
A vector with all formatting runs for a rich-string.
const sal_uInt16 EXC_COLOR_WINDOWBACK
System window text color (>=BIFF5).
@ EXC_FONTPROPSET_CONTROL
All text objects in charts.
const sal_uInt16 EXC_COLOR_WINDOWTEXT
System window background color (BIFF3-BIFF4).
const sal_uInt8 EXC_PATT_NONE
const sal_uInt8 EXC_PATT_SOLID