21#include <com/sun/star/embed/Aspects.hpp>
25#include <officecfg/Office/Common.hxx>
27#include <com/sun/star/drawing/XShape.hpp>
73#include <com/sun/star/i18n/XBreakIterator.hpp>
74#include <com/sun/star/lang/XServiceInfo.hpp>
82#include <com/sun/star/beans/XPropertySet.hpp>
83#include <com/sun/star/form/XFormComponent.hpp>
88#include <sfx2/sfxsids.hrc>
96using ::editeng::SvxBorderLine;
100using ::com::sun::star::beans::XPropertySet;
101using ::com::sun::star::drawing::XShape;
105 bool bRelUrl =
false;
129 return sDocUrl.copy(0, sDocUrl.lastIndexOf(
'/') + 1);
134 OUString aDosName(
INetURLObject( rUrl ).getFSysPath( FSysStyle::Dos ) );
141 OUString aTmpName( aDosName );
151 else if (aDosName.startsWith(
"./"))
153 aDosName = aDosName.copy(2);
157 while (aDosName.startsWith(
"../"))
160 aDosName = aDosName.copy(3);
169 if ( !pINetFormatArg )
return;
172 0xD0, 0xC9, 0xEA, 0x79, 0xF9, 0xBA, 0xCE, 0x11, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B };
173 const sal_uInt8 aGuidUrlMoniker[ 16 ] = {
174 0xE0, 0xC9, 0xEA, 0x79, 0xF9, 0xBA, 0xCE, 0x11, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B };
176 const sal_uInt8 aGuidFileMoniker[ 16 ] = {
177 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 };
179 0xFF, 0xFF, 0xAD, 0xDE, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
184 constexpr sal_uInt32 WW8_HLINK_BODY = 0x00000001;
185 constexpr sal_uInt32 WW8_HLINK_ABS = 0x00000002;
187 constexpr sal_uInt32 WW8_HLINK_MARK = 0x00000008;
188 constexpr sal_uInt32 WW8_HLINK_FRAME = 0x00000080;
191 OUString tmpTextMark;
193 OUString rUrl = pINetFormatArg->
GetURL();
195 sal_uInt32 nFlags = 0;
201 if (!rTarFrame.isEmpty())
208 nFlags |= WW8_HLINK_FRAME;
212 if (eProtocol == INetProtocol::File || (eProtocol == INetProtocol::NotValid && rUrl[0] !=
'#'))
219 nFlags |= WW8_HLINK_ABS;
221 nFlags |= WW8_HLINK_BODY;
223 tmpStrm.
WriteBytes(aGuidFileMoniker,
sizeof(aGuidFileMoniker));
227 tmpStrm.
WriteBytes(aGuidFileTail,
sizeof(aGuidFileTail));
235 else if( eProtocol != INetProtocol::NotValid )
237 tmpStrm.
WriteBytes(aGuidUrlMoniker,
sizeof(aGuidUrlMoniker));
241 nFlags |= WW8_HLINK_BODY | WW8_HLINK_ABS;
243 else if (rUrl[0] ==
'#' )
245 OUString aTextMark(rUrl.copy( 1 ));
246 aTextMark = aTextMark.replaceFirst(
".",
"!");
247 tmpTextMark = aTextMark;
250 if (tmpTextMark.isEmpty() && aUrlObj.
HasMark())
252 tmpTextMark = aUrlObj.
GetMark();
255 if (!tmpTextMark.isEmpty())
260 nFlags |= WW8_HLINK_MARK;
270 std::unique_ptr<sal_uInt8[]> pBuffer(
new sal_uInt8[ nLen ] );
279 if (!pINetFormat || pINetFormat->
GetURL().isEmpty())
286 OUString aNamestr = pINetFormat->
GetName();
287 if (!aNamestr.isEmpty())
313 class CompareDrawObjs
319 explicit CompareDrawObjs(
const WW8Export& rWrt) : m_rWrt(rWrt) {};
322 sal_uLong aSort = lcl_getSdrOrderNumber(m_rWrt, a);
323 sal_uLong bSort = lcl_getSdrOrderNumber(m_rWrt, b);
324 return aSort < bSort;
332 void lcl_makeZOrderArray(
const WW8Export& rWrt,
333 std::vector<DrawObj> &rSrcArr,
334 std::vector<DrawObj*> &rDstArr)
337 rDstArr.reserve(rSrcArr.size());
340 rDstArr.push_back( &i );
342 std::sort(rDstArr.begin(), rDstArr.end(), CompareDrawObjs(rWrt));
358 uno::Reference< awt::XControlModel > xControlModel =
360 uno::Reference< lang::XServiceInfo > xInfo(xControlModel,
362 uno::Reference<beans::XPropertySet> xPropSet(xControlModel, uno::UNO_QUERY);
366 if (xInfo->supportsService(
"com.sun.star.form.component.ComboBox"))
378 uno::Sequence<OUString> aListItems;
379 xPropSet->getPropertyValue(
"StringItemList") >>= aListItems;
380 if (aListItems.hasElements())
382 uno::Any aTmp = xPropSet->getPropertyValue(
"DefaultText");
383 auto pStr = o3tl::tryAccess<OUString>(aTmp);
390 uno::Any aTmp = xPropSet->getPropertyValue(
"Name");
391 auto pStr = o3tl::tryAccess<OUString>(aTmp);
401 uno::Any aTmp = xPropSet->getPropertyValue(
"HelpText");
402 auto pStr = o3tl::tryAccess<OUString>(aTmp);
406 catch(
const uno::Exception& )
412 uno::Any aTmp = xPropSet->getPropertyValue(
"Name");
413 auto pStr = o3tl::tryAccess<OUString>(aTmp);
418 DoComboBox(sName, sHelp, sToolTip, sSelected, aListItems);
422 const OUString &rHelp,
423 const OUString &rToolTip,
424 const OUString &rSelected,
425 const uno::Sequence<OUString> &rListItems)
445 m_pChpPlc->AppendFkpEntry(
Strm().Tell(),
sizeof(aArr1), aArr1);
457 sal_uInt32 nListItems = rListItems.getLength();
459 for (sal_uInt32 i = 0;
i < nListItems;
i++)
461 if (i < 0x20 && rSelected == rListItems[i])
462 aFFData.
setResult(::sal::static_int_cast<sal_uInt8>(i));
489 sizeof( aArr1 ), aArr1 );
501 const OUString fieldStr( pField->
ExpandField(
true,
nullptr) );
509 pDataAdr = aArr2 + 2;
512 sizeof( aArr2 ), aArr2 );
526sal_Int16 eHoriOri, sal_Int16 eHoriRel,
SwTwips nPageLeft,
532 if (eHoriRel == text::RelOrientation::PAGE_FRAME)
534 rLeft = nPageSize - rLeft;
538 (eHoriRel == text::RelOrientation::PAGE_PRINT_AREA) ||
539 (eHoriRel == text::RelOrientation::FRAME) ||
540 (eHoriRel == text::RelOrientation::PRINT_AREA)
543 rLeft = nPageSize - nPageLeft - nPageRight - rLeft;
553 sal_Int16 eHoriOri, sal_Int16 eHoriRel,
SwTwips nPageLeft,
559 if (eHoriRel == text::RelOrientation::PAGE_FRAME)
561 rLeft = nPageSize + rLeft;
565 (eHoriRel == text::RelOrientation::PAGE_PRINT_AREA) ||
566 (eHoriRel == text::RelOrientation::FRAME) ||
567 (eHoriRel == text::RelOrientation::PRINT_AREA)
570 rLeft = nPageSize - nPageLeft - nPageRight + rLeft;
584 SwTwips nWidth = rRight - rLeft;
609 rRight = rLeft + nWidth;
614 if (8 > rWrt.
m_pFib->m_nVersion)
635 const ww8::Frame &rFrameFormat = rDrawObj.maContent;
644 const bool bPosConverted =
648 bool bHasHeightWidthSwapped(
false);
665 aRect = aLayRect.
SVRect();
670 OSL_ENSURE(pObj,
"Where is the SDR-Object?");
678 if ( bAllowSwap && (( nAngle > 4500_deg100 && nAngle <= 13500_deg100 ) || ( nAngle > 22500_deg100 && nAngle <= 31500_deg100 )) )
684 bHasHeightWidthSwapped =
true;
698 aRect -= rDrawObj.maParentPos;
704 if (eOri == text::RelOrientation::CHAR || eOri == text::RelOrientation::TEXT_LINE)
705 aObjPos.setY( -rVOr.
GetPos() );
707 aObjPos.setY( rVOr.
GetPos() );
710 aObjPos.setX( rHOr.
GetPos() );
714 sal_Int32 nThick = rDrawObj.mnThick;
736 if (nTop == 0 && !rFrameFormat.
IsInline() &&
758 if(bHasHeightWidthSwapped)
760 nXOff = (nSnapWidth - nLogicHeight + 1) / 2;
761 nYOff = (nSnapHeight - nLogicWidth + 1) / 2;
765 nXOff = (nSnapWidth - nLogicWidth + 1) / 2;
766 nYOff = (nSnapHeight - nLogicHeight + 1) / 2;
791 sal_uInt16 nContour = rSurr.
IsContour() ? 0x0080 : 0x0040;
792 css::text::WrapTextMode eSurround = rSurr.
GetSurround();
801 eSurround = css::text::WrapTextMode_THROUGH;
805 case css::text::WrapTextMode_NONE:
808 case css::text::WrapTextMode_THROUGH:
811 case css::text::WrapTextMode_PARALLEL:
812 nFlags |= 0x0000 | nContour;
814 case css::text::WrapTextMode_DYNAMIC:
815 nFlags |= 0x0600 | nContour;
817 case css::text::WrapTextMode_LEFT:
818 nFlags |= 0x0200 | nContour;
820 case css::text::WrapTextMode_RIGHT:
821 nFlags |= 0x0400 | nContour;
824 OSL_ENSURE(
false,
"Unsupported surround type for export");
850 sal_uInt32 nLen)
const
862 sal_uInt32 nLen)
const
874 const Point& rNdTopLeft )
966 const Point& rNdTopLeft)
968 OSL_ENSURE(!
m_pEscher,
"the EscherStream was already written!");
984 bool bSuccess = pDrwO->
Append(*
this, nCP, rFrameFormat, rNdTopLeft);
985 OSL_ENSURE(bSuccess,
"Couldn't export a graphical element!");
991 0x03, 0x6a, 0, 0, 0, 0,
1000 m_pChpPlc->AppendFkpEntry(
Strm().Tell(),
sizeof( aSpec8 ), aSpec8 );
1013 :
MSWordAttrIter( rWr ), m_pEditObj(&rEditObj), m_pEditPool(nullptr), mnTyp(nTyp)
1051 sal_Int32
nPos = rTextAtr.nStart;
1052 if(
nPos >= nStartPos &&
nPos <= nMinPos )
1058 nPos = rTextAtr.nEnd;
1059 if(
nPos >= nStartPos &&
nPos < nMinPos )
1078 rtl_TextEncoding eChrSet =
static_cast<const SvxFontItem&
>(rItem).GetCharSet();
1084 std::vector<const EECharAttrib*>::iterator it =
1098 if (
auto pURL =
dynamic_cast< const SvxURLField *
>( pField ))
1104 const OUString &rStr = pURL->GetRepresentation();
1119 std::set<sal_uInt16> aUsedRunWhichs;
1122 if (nSwPos >= rTextAtr.nStart && nSwPos < rTextAtr.nEnd)
1124 sal_uInt16 nWhich = rTextAtr.pAttr->Which();
1125 aUsedRunWhichs.insert(nWhich);
1128 if( nSwPos < rTextAtr.nStart )
1148 if (nSwPos >= rTextAtr.nStart && nSwPos < rTextAtr.nEnd)
1150 sal_uInt16 nWhich = rTextAtr.pAttr->Which();
1168 const sal_uInt16 nSlotId = pSrcPool->
GetSlotId(nWhich);
1169 if (nSlotId && nWhich != nSlotId)
1171 nWhich = rDstPool.
GetWhich(nSlotId);
1172 if (nWhich && nWhich != nSlotId &&
1177 std::unique_ptr<SfxPoolItem> pI(rTextAtr.pAttr->Clone());
1178 pI->SetWhich( nWhich );
1189 if( nSwPos < rTextAtr.nStart )
1202 return (nSwPos >= rTextAtr.nStart && nSwPos < rTextAtr.nEnd) &&
1203 (rTextAtr.pAttr->Which() == EE_FEATURE_FIELD ||
1204 rTextAtr.pAttr->Which() == EE_FEATURE_TAB);
1223 return rTextAtr.pAttr;
1239 OSL_ENSURE(nWhich,
"Impossible, catastrophic failure imminent");
1240 pRet = &aSet.
Get(nWhich);
1254 for (sal_uInt16 nEEWhich = aWhichIter.
FirstWhich(); nEEWhich; nEEWhich = aWhichIter.
NextWhich())
1256 if (SfxItemState::SET != aWhichIter.
GetItemState(
false))
1269 if (rDrawItem != rStandardItem)
1295 sal_uInt16 nWhich = pItem->
Which();
1296 if (pWhichsToIgnore && pWhichsToIgnore->find(nWhich) != pWhichsToIgnore->end())
1299 sal_uInt16 nSlotId = pSrcPool->
GetSlotId(nWhich);
1301 if ( nSlotId && nWhich != nSlotId &&
1302 0 != ( nWhich = pDstPool->GetWhich( nSlotId ) ) &&
1303 nWhich != nSlotId &&
1308 std::unique_ptr<SfxPoolItem> pI(pItem->
Clone());
1309 pI->SetWhich( nWhich );
1313 }
while ((pItem = aIter.
NextItem()));
1343 bool bAnyWrite =
false;
1349 for( sal_Int32
n = 0;
n < nPara; ++
n )
1354 OSL_ENSURE(
m_pO->empty(),
" pO is not empty at start of line" );
1357 sal_Int32 nCurrentPos = 0;
1358 const sal_Int32 nEnd =
aStr.getLength();
1361 bool bIsRTLPara =
false;
1365 bIsRTLPara = SvxFrameDirection::Horizontal_RL_TB == nDir;
1371 bool bTextAtr = aAttrIter.
IsTextAttr( nCurrentPos );
1377 if( nNextAttr == nEnd && !bTextAtr )
1381 aAttrIter.
OutAttr( nCurrentPos );
1398 if( nNextAttr == nEnd && bTextAtr )
1400 nCurrentPos = nNextAttr;
1403 while( nCurrentPos < nEnd );
1405 OSL_ENSURE(
m_pO->empty(),
" pO is not empty at start of line" );
1407 m_pO->push_back( bNul );
1408 m_pO->push_back( bNul );
1419 bAnyWrite = 0 != nPara;
1463 OSL_ENSURE( !
m_pEscher,
"Who did not deleted the pointer?" );
1465 pEscherStrm->
SetEndian(SvStreamEndian::LITTLE);
1479 m_pFib->m_fcDggInfo = nStart;
1492 mxGlobal->SetNewBlipStreamOffset( nEndPos );
1494 pPicStrm->Seek( 0 );
1513 mxPicStrm = std::make_shared<SvMemoryStream>();
1514 mxPicStrm->SetEndian(SvStreamEndian::LITTLE);
1555 nFlags |= ShapeFlag::FlipH;
1558 nFlags |= ShapeFlag::FlipV;
1561 nFlags |= ShapeFlag::FlipH | ShapeFlag::FlipV;
1575 if ( !aUniqueId.isEmpty() )
1577 sal_uInt32 nBlibId =
mxGlobal->GetBlibID( *(
mxGlobal->QueryPictureStream()), aGraphicObject );
1592 std::shared_ptr<SvxBrushItem> aBrush(std::make_shared<SvxBrushItem>(aTmpColor,
RES_BACKGROUND));
1595 aBrush.reset(pRet->
Clone());
1607 sal_Int32 nBorderThick=0;
1610 OSL_ENSURE(pGrfNd,
"No SwGrfNode ?, suspicious");
1612 return nBorderThick;
1618 AddMirrorFlags(ShapeFlag::HaveAnchor | ShapeFlag::HaveShapeProperty, rMirror),
1644 if (!aUniqueId.isEmpty())
1662 return nBorderThick;
1669 sal_Int32 nContrast = 0;
1670 sal_Int16 nBrightness = 0;
1674 nContrast = pItem->GetValue();
1679 nBrightness = pItem->GetValue();
1685 if (nMode == GraphicDrawMode::Watermark)
1695 if (nBrightness > 100)
1698 if (nContrast < -100)
1700 nMode = GraphicDrawMode::Standard;
1704 sal_uInt32 nPictureMode;
1705 if (nMode == GraphicDrawMode::Greys)
1706 nPictureMode = 0x40004;
1707 else if (nMode == GraphicDrawMode::Mono)
1708 nPictureMode = 0x60006;
1716 if (nContrast == 100)
1717 nContrast = 0x10000;
1718 else if (nContrast < 100)
1720 nContrast *= 0x10000;
1723 else if (nContrast < 200)
1724 nContrast = (100 * 0x10000) / (200-nContrast);
1726 nContrast = 0x7fffffff;
1730 if (nBrightness != 0)
1733 sal_Int32 nCropL = 0;
1734 sal_Int32 nCropR = 0;
1735 sal_Int32 nCropT = 0;
1736 sal_Int32 nCropB = 0;
1739 nCropL += pCropItem->GetLeft();
1740 nCropR += pCropItem->GetRight();
1741 nCropT += pCropItem->GetTop();
1742 nCropB += pCropItem->GetBottom();
1748 nCropL -= pBoxItem->GetDistance( SvxBoxItemLine::LEFT );
1749 nCropR -= pBoxItem->GetDistance( SvxBoxItemLine::RIGHT );
1750 nCropT -= pBoxItem->GetDistance( SvxBoxItemLine::TOP );
1751 nCropB -= pBoxItem->GetDistance( SvxBoxItemLine::BOTTOM );
1781 sal_Int32 nBorderThick = 0;
1793 awt::Rectangle aRect;
1794 bool bRectIsSet =
false;
1797 if ( xObj.is() && nAspect != embed::Aspects::MSOLE_ICON )
1801 awt::Size aSize = xObj->getVisualAreaSize( nAspect );
1802 aRect.Width = aSize.Width;
1803 aRect.Height = aSize.Height;
1806 catch(
const uno::Exception& )
1815#ifdef OLE_PREVIEW_AS_EMF
1823 AddMirrorFlags(ShapeFlag::HaveAnchor | ShapeFlag::HaveShapeProperty | ShapeFlag::OLEShape, rMirror),
1824 pGraphic ? *pGraphic :
Graphic(), *pSdrObj, nShapeId, bRectIsSet ? &aRect :
nullptr );
1835 return nBorderThick;
1841 bool bSetOpacity =
false;
1842 sal_uInt32 nOpaque = 0;
1845 OString aUniqueId = pGraphicObject->GetUniqueID();
1846 if (!aUniqueId.isEmpty())
1853 nOpaque = 255 - pGraphicObject->GetAttr().GetAlpha();
1875 nOpaque = (nOpaque * 100) / 0xFE;
1876 nOpaque = ((100 - nOpaque) << 16) / 100;
1885 bool bFirstLine =
true;
1893 const SvxBorderLine* pLine;
1897 pLine = pItem->GetLine(
n );
1898 if(
nullptr != pLine )
1902 sal_uInt32 nLineColor =
GetColor(pLine->GetColor());
1905 nLineColor ^ 0xffffff );
1908 if( pLine->isDouble() )
1912 if( pLine->GetInWidth() == pLine->GetOutWidth() )
1914 else if( pLine->GetInWidth() < pLine->GetOutWidth() )
1931 switch (pLine->GetBorderLineStyle())
1933 case SvxBorderLineStyle::DASHED:
1936 case SvxBorderLineStyle::DOTTED:
1939 case SvxBorderLineStyle::SOLID:
1953 pItem->GetDistance(
n ) ));
1976 constexpr sal_uInt32 nShadowType = 131074;
1978 Color nColor = pSI->GetColor();
1985 if( (eLocation!=SvxShadowLocation::NONE) && (pSI->GetWidth()!=0) )
1989 case SvxShadowLocation::TopLeft:
1995 case SvxShadowLocation::TopRight:
2000 case SvxShadowLocation::BottomLeft:
2005 case SvxShadowLocation::BottomRight:
2022 const bool bIsThrough = rFormat.
GetSurround().
GetValue() == css::text::WrapTextMode_THROUGH;
2026 if (bIsInHeader || bIsThrough)
2093 if (pPolyPoly && pPolyPoly->
Count())
2097 aPolyDump.
SetEndian(SvStreamEndian::LITTLE);
2099 sal_uInt16 nLen = aPoly.
GetSize();
2103 for (sal_uInt16 nI = 0; nI < nLen; ++nI)
2121 MapUnit eMap = MapUnit::MapTwip;
2126 eMap = pModel->GetScaleUnit();
2144 sal_Int32 nMSVal = (nVal / 65536) * nMax;
2145 nMSVal += (nVal * 65536) / nMax;
2150 sal_Int32
const nDiv = (nVal / sal_Int32(nMax)) - 1;
2151 sal_uInt32 nMSVal = (sal_uInt32(nDiv) << 16) & 0xffff0000;
2152 nMSVal += (nVal * 65536) / sal_Int32(nMax) + (-nDiv * 65536);
2169 sal_Int32 nEndPos = pPicStrm->Tell();
2184 sal_uInt16 nColorCount = 4;
2200 if (!pSdrObjs->
size())
2222 sal_uInt32 nShapeId=0;
2223 for (
auto& pObj : aSorted)
2225 sal_Int32 nBorderThick=0;
2226 OSL_ENSURE(pObj,
"impossible");
2251#if OSL_DEBUG_LEVEL > 0
2253 OSL_ENSURE(
false,
"Where is the SDR-Object?" );
2271 if( nSecondShapeId )
2276 ShapeFlag::HaveAnchor | ShapeFlag::HaveShapeProperty | ShapeFlag::Background,
2299 aPropOpt.
Commit( *pStrm );
2325 template<
typename OrientType>
2326 void lcl_SetRelationOrient(OrientType& rOrient,
const sw::WW8AnchorConv eConv,
const std::function<
void()>& fDefault)
2332 rOrient.SetRelationOrient(text::RelOrientation::PAGE_PRINT_AREA);
2335 rOrient.SetRelationOrient(text::RelOrientation::PAGE_FRAME);
2338 rOrient.SetRelationOrient(text::RelOrientation::FRAME);
2341 rOrient.SetRelationOrient(text::RelOrientation::CHAR);
2344 rOrient.SetRelationOrient(text::RelOrientation::TEXT_LINE);
2382 if ( (RndStdIds::FLY_AS_CHAR == eAnchor) || (RndStdIds::FLY_AT_FLY == eAnchor) )
2395 bool bConvDueToAnchoredAtColBreakPara(
false );
2396 if ( ( (eAnchor == RndStdIds::FLY_AT_PARA) || (eAnchor == RndStdIds::FLY_AT_CHAR) ) &&
2403 if (rBreak.
GetBreak() == SvxBreak::ColumnBefore)
2405 bConvDueToAnchoredAtColBreakPara =
true;
2415 bool bConvDueToOrientation(
false );
2418 bConvDueToOrientation = eHOri == text::HoriOrientation::LEFT || eHOri == text::HoriOrientation::RIGHT ||
2419 eHOri == text::HoriOrientation::INSIDE || eHOri == text::HoriOrientation::OUTSIDE ||
2420 ( eHOri != text::HoriOrientation::CENTER && _iorHoriOri.
IsPosToggle() );
2424 if ( bConvDueToAnchoredAtColBreakPara )
2429 && _iorHoriOri.
GetHoriOrient() == text::HoriOrientation::RIGHT )
2432 _iorHoriOri.
SetHoriOrient( text::HoriOrientation::OUTSIDE );
2438 case text::RelOrientation::PAGE_FRAME:
2439 case text::RelOrientation::PAGE_PRINT_AREA:
2441 if ( bConvDueToOrientation || bFollowTextFlow )
2445 case text::RelOrientation::PAGE_LEFT:
2446 case text::RelOrientation::PAGE_RIGHT:
2452 case text::RelOrientation::FRAME:
2454 if ( bConvDueToOrientation )
2458 case text::RelOrientation::PRINT_AREA:
2459 case text::RelOrientation::FRAME_LEFT:
2460 case text::RelOrientation::FRAME_RIGHT:
2466 case text::RelOrientation::CHAR:
2468 if ( bConvDueToOrientation )
2473 OSL_FAIL(
"<WinwordAnchoring::ConvertPosition(..)> - unknown horizontal relation" );
2482 bool bConvDueToOrientation(
false );
2485 bConvDueToOrientation = ( eVOri == text::VertOrientation::TOP ||
2486 eVOri == text::VertOrientation::BOTTOM ||
2487 eVOri == text::VertOrientation::CHAR_TOP ||
2488 eVOri == text::VertOrientation::CHAR_BOTTOM ||
2489 eVOri == text::VertOrientation::CHAR_CENTER ||
2490 eVOri == text::VertOrientation::LINE_TOP ||
2491 eVOri == text::VertOrientation::LINE_BOTTOM ||
2492 eVOri == text::VertOrientation::LINE_CENTER );
2496 if ( bConvDueToAnchoredAtColBreakPara )
2504 case text::RelOrientation::PAGE_FRAME:
2505 case text::RelOrientation::PAGE_PRINT_AREA:
2507 if ( bConvDueToOrientation || bFollowTextFlow )
2511 case text::RelOrientation::FRAME:
2513 if ( bConvDueToOrientation ||
2514 _iorVertOri.
GetVertOrient() == text::VertOrientation::CENTER )
2520 case text::RelOrientation::PRINT_AREA:
2526 case text::RelOrientation::CHAR:
2532 case text::RelOrientation::TEXT_LINE:
2534 if ( bConvDueToOrientation ||
2541 case text::RelOrientation::PAGE_LEFT:
2542 case text::RelOrientation::PAGE_RIGHT:
2543 case text::RelOrientation::FRAME_LEFT:
2544 case text::RelOrientation::FRAME_RIGHT:
2546 OSL_FAIL(
"<WinwordAnchoring::ConvertPosition(..)> - unknown vertical relation" );
2575 mbInline = (eAnchor == RndStdIds::FLY_AS_CHAR);
2589 const bool bPosConverted =
ConvertPosition( rHoriOri, rVertOri, rFormat );
2604 case text::HoriOrientation::LEFT:
2607 case text::HoriOrientation::CENTER:
2610 case text::HoriOrientation::RIGHT:
2613 case text::HoriOrientation::INSIDE:
2616 case text::HoriOrientation::OUTSIDE:
2625 const bool bVertSwap = !bPosConverted &&
2626 ( (eVRel == text::RelOrientation::CHAR) ||
2627 (eVRel == text::RelOrientation::TEXT_LINE) );
2634 case text::VertOrientation::TOP:
2635 case text::VertOrientation::LINE_TOP:
2636 case text::VertOrientation::CHAR_TOP:
2639 case text::VertOrientation::CENTER:
2640 case text::VertOrientation::LINE_CENTER:
2643 case text::VertOrientation::BOTTOM:
2644 case text::VertOrientation::LINE_BOTTOM:
2645 case text::VertOrientation::CHAR_BOTTOM:
2653 case text::RelOrientation::PAGE_PRINT_AREA:
2656 case text::RelOrientation::PAGE_FRAME:
2657 case text::RelOrientation::PAGE_LEFT:
2658 case text::RelOrientation::PAGE_RIGHT:
2661 case text::RelOrientation::FRAME:
2662 case text::RelOrientation::FRAME_LEFT:
2663 case text::RelOrientation::FRAME_RIGHT:
2664 if (eAnchor == RndStdIds::FLY_AT_PAGE)
2669 case text::RelOrientation::PRINT_AREA:
2670 if (eAnchor == RndStdIds::FLY_AT_PAGE)
2675 case text::RelOrientation::CHAR:
2678 case text::RelOrientation::TEXT_LINE:
2685 case text::RelOrientation::PAGE_PRINT_AREA:
2688 case text::RelOrientation::PAGE_FRAME:
2691 case text::RelOrientation::PRINT_AREA:
2692 if (eAnchor == RndStdIds::FLY_AT_PAGE)
2697 case text::RelOrientation::FRAME:
2698 if (eAnchor == RndStdIds::FLY_AT_PAGE)
2703 case text::RelOrientation::CHAR:
2704 case text::RelOrientation::TEXT_LINE:
2705 case text::RelOrientation::PAGE_LEFT:
2706 case text::RelOrientation::PAGE_RIGHT:
2707 case text::RelOrientation::FRAME_LEFT:
2708 case text::RelOrientation::FRAME_RIGHT:
2732 sal_Int32 nBorderThick = 0;
2752 sal_uInt16 nOff = 0;
2764 if( USHRT_MAX == nTextId )
2776 if( USHRT_MAX == nTextId )
2778 sal_uInt32 nPrevShapeId =
2796 if( bBrowseMode && rFormat.
GetDoc())
2811 return nBorderThick;
2817 auto aIter = std::find_if(rPVec.begin(), rPVec.end(),
2818 [&rFormat, nHdFtIndex](
const DrawObj* pObj) {
2819 OSL_ENSURE(pObj,
"Impossible");
2821 nHdFtIndex == pObj->mnHdFtIndex &&
2822 &rFormat == (&pObj->maContent.GetFrameFormat());
2824 if (aIter != rPVec.end())
2825 return static_cast< sal_uInt16
>(aIter - rPVec.begin());
2835 sal_Int32 nBorderThick=0;
2854 OSL_ENSURE(
false,
"unknown direction type");
2856 case SvxFrameDirection::Horizontal_LR_TB:
2859 case SvxFrameDirection::Horizontal_RL_TB:
2862 case SvxFrameDirection::Vertical_LR_TB:
2863 case SvxFrameDirection::Vertical_RL_TB:
2866 case SvxFrameDirection::Vertical_LR_BT:
2880 return nBorderThick;
2885 sal_uInt32 nShapeId,
const awt::Rectangle* pVisArea )
2900 SetPicId(rObj, nShapeId, rPropOpt);
2914 OSL_ENSURE(pModel && pDevice,
"no model or device");
2918 SdrView aExchange(*pModel, pDevice);
2922 ShapeFlag::HaveAnchor | ShapeFlag::HaveShapeProperty | ShapeFlag::OLEShape, aGraphic,
2923 *pSdrObj, nShapeId,
nullptr );
2938 ::lcl_makeZOrderArray(
mrWrt, rSrcArr, rDstArr);
2946 bool bNeedsShapeId =
false;
2952 bNeedsShapeId =
true;
2964 sal_uInt16
nPos =
FindPos(rFormat, nHdFtIndex, rpVec);
2965 sal_uInt32 nShapeId;
2966 if (USHRT_MAX !=
nPos)
2981 const uno::Reference< drawing::XShape>& xXShapeRef, sal_uInt32 nShapeId )
2994::ole::MSConvertOCXControls( pDSh ? pDSh->GetModel() : nullptr ), m_pPaM( pP ), mnObjectId(0)
3002 css::uno::Reference< css::drawing::XShape > *pShapeRef,
3003 bool bFloatingCtrl )
3005 uno::Reference< form::XFormComponent > xFComp;
3007 if ( bRes && xFComp.is() )
3017 const uno::Reference< awt::XControlModel >& xControlModel =
3035 OUString sStorageName =
"_" + OUString::number(
static_cast<sal_Int64
>( nObjId ));
3047 0x03, 0x6a, 0xFF, 0xFF, 0xFF, 0xFF,
css::chart::ChartAxisLabelPosition ePos
css::uno::Reference< css::frame::XModel2 > mxModel
Fraction conversionFract(o3tl::Length from, o3tl::Length to)
constexpr auto convertTwipToMm100(N n)
static OutputDevice * GetDefaultDevice()
virtual void RawText(const OUString &rText, rtl_TextEncoding eCharSet)=0
Output text (without markup).
virtual bool EndURL(bool isAtEndOfParagraph)=0
Output URL end.
virtual bool StartURL(const OUString &rUrl, const OUString &rTarget)=0
Output URL start.
void OutputItem(const SfxPoolItem &rHt)
Call the right virtual function according to the type of the item.
const OUString & GetValue() const
sal_uInt8 GetAlpha() const
SvxFrameDirection mnDirection
void SetShapeDetails(sal_uInt32 nId, sal_Int32 nThick)
virtual sal_Int32 GetParagraphCount() const=0
virtual OUString GetText(sal_Int32 nPara) const=0
virtual const SfxItemSet & GetParaAttribs(sal_Int32 nPara) const=0
virtual void GetCharAttribs(sal_Int32 nPara, std::vector< EECharAttrib > &rLst) const=0
SvStream * GetPictureStream()
void SetClientData(EscherExClientRecord_Base *p)
virtual sal_uInt32 EnterGroup(const OUString &rShapeName, const tools::Rectangle *pBoundRect)
SdrLayerID GetHellLayerId() const
sal_uInt32 AddDummyShape()
sal_uInt32 AddSdrObject(const SdrObject &rObj, bool ooxmlExport=false, sal_uInt32 nId=0)
virtual void AddShape(sal_uInt32 nShpInstance, ShapeFlag nFlagIds, sal_uInt32 nShapeID=0)
void AddAtom(sal_uInt32 nAtomSitze, sal_uInt16 nRecType, int nRecVersion=0, int nRecInstance=0)
void SetHellLayerId(SdrLayerID nId)
static sal_uInt32 GetColor(const sal_uInt32 nColor)
virtual sal_uInt32 GenerateShapeId()
std::shared_ptr< EscherExGlobal > mxGlobal
virtual void OpenContainer(sal_uInt16 nEscherContainer, int nRecInstance=0)
void Flush(SvStream *pPicStreamMergeBSE=nullptr)
SvStream & GetStream() const
SvStream * QueryPictureStream()
sal_uInt32 GetGroupLevel() const
virtual void CloseContainer()
void AddOpt(sal_uInt16 nPropID, bool bBlib, sal_uInt32 nSizeReduction, SvMemoryStream &rStream)
bool GetOpt(sal_uInt16 nPropertyID, sal_uInt32 &rPropValue) const
void Commit(SvStream &rSt, sal_uInt16 nVersion=3, sal_uInt16 nRecType=ESCHER_OPT)
const Fraction & X() const
sal_Int32 GetNumerator() const
sal_Int32 GetDenominator() const
OString GetUniqueID() const
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const override
virtual WW8_CP GetCpOffset(const WW8Fib &rFib) const override
virtual SdrLayerID GetHellId() const =0
virtual SdrLayerID GetInvisibleHellId() const =0
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
virtual bool get(DocumentSettingId id) const =0
Return the specified document setting.
virtual SwTextFormatColl * GetTextCollFromPool(sal_uInt16 nId, bool bRegardLanguage=true)=0
Return "Auto-Collection with ID.
OUString GetMark(DecodeMechanism eMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8) const
static OUString GetRelURL(std::u16string_view rTheBaseURIRef, OUString const &rTheAbsURIRef, EncodeMechanism eEncodeMechanism=EncodeMechanism::WasEncoded, DecodeMechanism eDecodeMechanism=DecodeMechanism::ToIUri, rtl_TextEncoding eCharset=RTL_TEXTENCODING_UTF8, FSysStyle eStyle=FSysStyle::Detect)
INetProtocol GetProtocol() const
The class MSWordAttrIter is a helper class to build the Fkp.chpx.
MSWordExportBase & m_rExport
Base class for WW8Export and DocxExport.
SvxFrameDirection TrueFrameDirection(const SwFrameFormat &rFlyFormat) const
Right to left?
const SfxItemSet * GetCurItemSet() const
Getter for pISet.
virtual bool CollapseScriptsforWordOk(sal_uInt16 nScript, sal_uInt16 nWhich)=0
Guess the script (asian/western).
virtual void WriteChar(sal_Unicode c)=0
const sw::BroadcastingModify * m_pOutFormatNode
std::unique_ptr< MainTextPlcDrawObj > m_pSdrObjs
std::unique_ptr< WW8_WrPlcTextBoxes > m_pHFTextBxs
std::unique_ptr< WW8_WrPlcField > m_pFieldTextBxs
bool m_bFontSizeWritten
Is font size written already as part of the current character properties?
std::unique_ptr< WW8_WrPlcField > m_pFieldHFTextBxs
virtual AttributeOutputBase & AttrOutput() const =0
Access to the attribute output class.
void SetCurItemSet(const SfxItemSet *pS)
Setter for pISet.
std::unique_ptr< WW8_WrPlcPn > m_pPapPlc
std::unique_ptr< HdFtPlcDrawObj > m_pHFSdrObjs
std::unique_ptr< WW8_WrPlcTextBoxes > m_pTextBxs
std::unique_ptr< WW8_WrPlcPn > m_pChpPlc
Used to export formatted text associated to drawings.
virtual const SfxPoolItem & GetItem(sal_uInt16 nWhich) const override
void SetCharSet(const EECharAttrib &rTextAttr, bool bStart)
void OutAttr(sal_Int32 nSwPos)
rtl_TextEncoding GetNextCharSet() const
void OutParaAttr(bool bCharAttr, const std::set< sal_uInt16 > *pWhichsToIgnore=nullptr)
rtl_TextEncoding GetNodeCharSet() const
MSWord_SdrAttrIter(const MSWord_SdrAttrIter &)=delete
virtual const SfxPoolItem * HasTextItem(sal_uInt16 nWhich) const override
std::vector< EECharAttrib > m_aTextAtrArr
sal_Int32 SearchNext(sal_Int32 nStartPos)
sal_Int32 m_nCurrentSwPos
std::vector< const EECharAttrib * > m_aChrTextAtrArr
std::vector< rtl_TextEncoding > m_aChrSetArr
void NextPara(sal_Int32 nPar)
bool IsTextAttr(sal_Int32 nSwPos)
void SetItemsThatDifferFromStandard(bool bCharAttr, SfxItemSet &rSet)
void OutEEField(const SfxPoolItem &rHt)
sal_Int32 WhereNext() const
const SfxItemPool * m_pEditPool
const EditTextObject * m_pEditObj
rtl_TextEncoding m_eNdChrSet
virtual WW8_CP GetCpOffset(const WW8Fib &) const override
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const override
const EditTextObject & GetTextObject() const
DrawObjVector & GetObjArr()
virtual void RegisterWithFib(WW8Fib &rFib, sal_uInt32 nStart, sal_uInt32 nLen) const =0
virtual WW8_CP GetCpOffset(const WW8Fib &rFib) const =0
void WritePlc(WW8Export &rWrt) const
bool Append(WW8Export const &, WW8_CP nCp, const ww8::Frame &rFormat, const Point &rNdTopLeft)
static Graphic GetObjGraphic(const SdrObject &rSdrObject)
const SdrPage * GetPage(sal_uInt16 nPgNum) const
size_t GetObjCount() const
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
virtual Degree100 GetRotateAngle() const
sal_uInt32 GetOrdNum() const
virtual const tools::Rectangle & GetSnapRect() const
virtual SdrObjKind GetObjIdentifier() const
virtual SdrLayerID GetLayer() const
virtual const tools::Rectangle & GetLogicRect() const
bool IsTextEditActive() const
virtual OutlinerParaObject * GetOutlinerParaObject() const override
std::optional< OutlinerParaObject > CreateEditOutlinerParaObject() const
virtual const tools::Rectangle & GetLogicRect() const override
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
const SfxPoolItem * GetCurItem() const
const SfxPoolItem * NextItem()
sal_uInt16 GetWhich(sal_uInt16 nSlot, bool bDeep=true) const
sal_uInt16 GetSlotId(sal_uInt16 nWhich) const
SfxItemPool * GetPool() const
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
SfxItemSet * GetItemSet() const
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const=0
SfxItemState GetItemState(bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
constexpr tools::Long Height() const
constexpr tools::Long Width() const
SotStorage * OpenSotStorage(const OUString &rEleName, StreamMode=StreamMode::STD_READWRITE, bool transacted=true)
SotStorage & GetStorage() const
SvStream & WriteInt32(sal_Int32 nInt32)
void SetEndian(SvStreamEndian SvStreamEndian)
std::size_t WriteBytes(const void *pData, std::size_t nSize)
SvStream & WriteUInt16(sal_uInt16 nUInt16)
SvStream & WriteUInt32(sal_uInt32 nUInt32)
sal_uInt64 Seek(sal_uInt64 nPos)
SvStream & WriteChar(char nChar)
std::size_t ReadBytes(void *pData, std::size_t nSize)
sal_uInt64 remainingSize()
SvStream & WriteStream(SvStream &rStream)
const GraphicObject * GetGraphicObject(OUString const &referer=OUString()) const
const Color & GetColor() const
const Graphic * GetGraphic(OUString const &referer=OUString()) const
virtual SvxBrushItem * Clone(SfxItemPool *pPool=nullptr) const override
const Color & GetValue() const
const SvxFieldData * GetField() const
const Size & GetSize() const
const SwMirrorGrf & GetMirrorGrf(bool=true) const
virtual void WritePictures()
sal_Int32 WriteOLEFlyFrame(const SwFrameFormat &rFormat, sal_uInt32 nShapeId)
void WriteHyperlinkWithinFly(SvMemoryStream &rStrm, const SwFormatURL *pINetFormatArg)
void WriteOLEPicture(EscherPropertyContainer &rPropOpt, ShapeFlag nShapeFlags, const Graphic &rGraphic, const SdrObject &rObj, sal_uInt32 nShapeId, const css::awt::Rectangle *pVisArea)
virtual void SetPicId(const SdrObject &, sal_uInt32, EscherPropertyContainer &)
void WriteEmptyFlyFrame(const SwFrameFormat &rFormat, sal_uInt32 nShapeId)
SdrLayerID GetInvisibleHellId() const
static sal_Int32 ToFract16(sal_Int32 nVal, sal_uInt32 nMax)
sal_Int32 DrawModelToEmu(sal_Int32 nVal) const
SwBasicEscherEx(SvStream *pStrm, WW8Export &rWrt)
OUString BuildFileName(sal_uInt16 &rnLevel, bool &rbRel, const OUString &rUrl)
sal_Int32 WriteGrfFlyFrame(const SwFrameFormat &rFormat, sal_uInt32 nShapeId)
virtual ~SwBasicEscherEx() override
void WriteBrushAttr(const SvxBrushItem &rBrush, EscherPropertyContainer &rPropOpt)
static void WriteGrfAttr(const SwNoTextNode &rNd, const SwFrameFormat &rFormat, EscherPropertyContainer &rPropOpt)
virtual sal_Int32 WriteFlyFrameAttr(const SwFrameFormat &rFormat, MSO_SPT eShapeType, EscherPropertyContainer &rPropOpt)
virtual void WriteFrameExtraData(const SwFrameFormat &)
OUString GetBasePath() const
void PreWriteHyperlinkWithinFly(const SwFrameFormat &rFormat, EscherPropertyContainer &rPropOpt)
void WriteGrfBullet(const Graphic &)
css::uno::Reference< css::i18n::XBreakIterator > const & GetBreakIter() const
const SwAttrSet & GetSwAttrSet() const
Does node has already its own auto-attributes? Access to SwAttrSet.
IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const
const SwAttrPool & GetAttrPool() const
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
const sw::FrameFormats< sw::SpzFrameFormat * > * GetSpzFrameFormats() const
const SwPageDesc & GetPageDesc(const size_t i) const
SvxFrameDirection GetTextDirection(const SwPosition &rPos, const Point *pPt=nullptr) const
virtual SvStream * ImplQueryPictureStream() override
Override to create a new memory stream for picture data.
std::shared_ptr< SvStream > mxPicStrm
virtual ~SwEscherExGlobal() override
virtual void SetPicId(const SdrObject &rSdrObj, sal_uInt32 nShapeId, EscherPropertyContainer &rPropOpt) override
void WriteOCXControl(const SwFrameFormat &rFormat, sal_uInt32 nShapeId)
EscherExHostAppData m_aHostData
virtual ~SwEscherEx() override
sal_uInt32 GetFlyShapeId(const SwFrameFormat &rFormat, unsigned int nHdFtIndex, DrawObjPointerVector &rPVec)
virtual sal_Int32 WriteFlyFrameAttr(const SwFrameFormat &rFormat, MSO_SPT eShapeType, EscherPropertyContainer &rPropOpt) override
SwEscherEx(SvStream *pStrm, WW8Export &rWW8Wrt)
std::vector< sal_uLong > m_aFollowShpIds
sal_Int32 WriteTextFlyFrame(const DrawObj &rObj, sal_uInt32 nShapeId, sal_uInt32 nTextBox, DrawObjPointerVector &rPVec)
virtual void WritePictures() override
sal_Int32 WriteFlyFrame(const DrawObj &rObj, sal_uInt32 &rShapeId, DrawObjPointerVector &rPVec)
WinwordAnchoring m_aWinwordAnchoring
virtual void WriteFrameExtraData(const SwFrameFormat &rFormat) override
virtual sal_uInt32 QueryTextID(const css::uno::Reference< css::drawing::XShape > &, sal_uInt32) override
void MakeZOrderArrAndFollowIds(std::vector< DrawObj > &rSrcArr, DrawObjPointerVector &rDstArr)
WW8_WrPlcTextBoxes * m_pTextBxs
OUString ExpandField(bool bCached, SwRootFrame const *pLayout) const
expand the field.
const SwNodeIndex * GetContentIdx() const
bool IsLinkedFile() const
const Graphic & GetGrf(bool bWait=false) const
bool GetFileFilterNms(OUString *pFileNm, OUString *pFilterNm) const
virtual bool InsertControl(const css::uno::Reference< css::form::XFormComponent > &rFComp, const css::awt::Size &rSize, css::uno::Reference< css::drawing::XShape > *pShape, bool bFloatingCtrl) override
bool ReadOCXStream(tools::SvRef< SotStorage > const &rSrc1, css::uno::Reference< css::drawing::XShape > *pShapeRef, bool bFloatingCtrl=false)
SwMSConvertControls(SfxObjectShell const *pDSh, SwPaM *pP)
void ExportControl(WW8Export &rWrt, const SdrUnoObj &rFormObj)
static sal_Int32 GetEscherLineMatch(MSO_LineStyle eStyle, MSO_SPT eShapeType, sal_Int32 &rThick)
Layout frame for SwNoTextNode, i.e. graphics and OLE nodes (including charts).
virtual Size GetTwipSize() const =0
Marks a node in the document model.
SwOLENode * GetOLENode()
Inline methods from Node.hxx.
SwNodeType GetNodeType() const
sal_Int64 GetAspect() const
const SwOLEObj & GetOLEObj() const
const Graphic * GetGraphic()
css::uno::Reference< css::embed::XEmbeddedObject > const & GetOleRef()
PaM is Point and Mark: a selection of the document model.
SwFrameFormat & GetMaster()
Of course Writer needs its own rectangles.
tools::Rectangle SVRect() const
void Width(tools::Long nNew)
Represents the style of a paragraph.
SwTextNode is a paragraph in the document model.
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
End: Data collected during idle time.
static void WriteString8(SvStream &rStrm, std::u16string_view rStr, bool bAddZero, rtl_TextEncoding eCodeSet)
static void InsAsString16(ww::bytes &rO, const OUString &rStr)
static void InsUInt16(ww::bytes &rO, sal_uInt16 n)
static void WriteLong(SvStream &rStrm, sal_Int32 nVal)
static void WriteString16(SvStream &rStrm, const OUString &rStr, bool bAddZero)
static void WriteShort(SvStream &rStrm, sal_Int16 nVal)
Exporter of the binary Word file formats.
virtual void OutputField(const SwField *pField, ww::eField eFieldType, const OUString &rFieldCmd, FieldFlags nMode=FieldFlags::All) override
Write the field.
void WriteSdrTextObj(const SdrTextObj &rObj, sal_uInt8 nTyp)
void DoComboBox(css::uno::Reference< css::beans::XPropertySet > const &xPropSet)
void WriteStringAsPara(const OUString &rText)
void OutGrf(const ww8::Frame &rFrame)
void WriteOutliner(const OutlinerParaObject &rOutliner, sal_uInt8 nTyp)
void WriteChar(sal_Unicode c) override
SvStream * m_pDataStrm
Streams for WW97 Export.
void MiserableRTLFrameFormatHack(SwTwips &rLeft, SwTwips &rRight, const ww8::Frame &rFrameFormat)
Nasty swap for bidi if necessary.
bool MiserableFormFieldExportHack(const SwFrameFormat &rFrameFormat)
const SvxBrushItem * GetCurrentPageBgBrush() const
void AppendFlyInFlys(const ww8::Frame &rFrameFormat, const Point &rNdTopLeft)
unsigned int GetHdFtIndex() const
std::unique_ptr< WW8Fib > m_pFib
File Information Block.
std::shared_ptr< SvxBrushItem > TrueFrameBgBrush(const SwFrameFormat &rFlyFormat) const
SwTwips CurrentPageWidth(SwTwips &rLeft, SwTwips &rRight) const
virtual AttributeOutputBase & AttrOutput() const override
memory leak #i120098#, to hold the reference to unnamed SotStorage obj
sal_uInt32 GetSdrOrdNum(const SwFrameFormat &rFormat) const
virtual void DoFormText(const SwInputField *pField) override
WW8_CP Fc2Cp(sal_uLong nFc) const
SwWW8Writer & GetWriter() const
std::unique_ptr< ww::bytes > m_pO
Buffer.
virtual void WriteCR(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner=ww8::WW8TableNodeInfoInner::Pointer_t()) override
void OutSwString(const OUString &, sal_Int32 nStt, sal_Int32 nLen)
FIB - the File Information Block.
sal_Int32 m_lcbPlcfspaHdr
sal_Int32 m_lcbPlcfspaMom
std::vector< const void * > m_aContent
std::vector< const SwFrameFormat * > m_aSpareFormats
bool WriteGenericText(WW8Export &rWrt, sal_uInt8 nTTyp, WW8_CP &rCount)
void Append(const SdrObject &rObj, sal_uInt32 nShapeId)
std::vector< sal_uInt32 > m_aShapeIds
sal_uInt16 GetPos(const void *p) const
bool WriteText(WW8Export &rWrt)
virtual const std::vector< sal_uInt32 > * GetShapeIdArr() const override
static bool ConvertPosition(SwFormatHoriOrient &_iorHoriOri, SwFormatVertOrient &_iorVertOri, const SwFrameFormat &_rFrameFormat)
method to perform conversion of positioning attributes with the help of corresponding layout informat...
void SetAnchoring(const SwFrameFormat &rFormat)
sal_uInt32 mnGroupShapeBooleanProperties
void WriteData(EscherEx &rEx) const override
static bool WriteOCXStream(const css::uno::Reference< css::frame::XModel > &rxModel, tools::SvRef< SotStorage > const &rSrc1, const css::uno::Reference< css::awt::XControlModel > &rControlModel, const css::awt::Size &rSize, OUString &rName)
bool ReadOCXStorage(tools::SvRef< SotStorage > const &rSrc1, css::uno::Reference< css::form::XFormComponent > &rxFormComp)
void addListboxEntry(const OUString &rEntry)
void setStatus(const OUString &rStatus)
void setName(const OUString &rName)
void setType(sal_uInt8 nType)
void setResult(sal_uInt8 nResult)
void setHelp(const OUString &rHelp)
void Write(SvStream *pDataStrm)
Make exporting a Writer Frame easy.
WriterSource GetWriterType() const
Get the type of frame that this wraps.
const SwFrameFormat & GetFrameFormat() const
Get the writer SwFrameFormat that this object describes.
bool IsInline() const
Is this frame inline (as character)
const SwPosition & GetPosition() const
Get the position this frame is anchored at.
constexpr ::Color COL_WHITE(0xFF, 0xFF, 0xFF)
constexpr ::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
constexpr TypedWhichId< SvxFieldItem > EE_FEATURE_FIELD(EE_FEATURE_NOTCONV+1)
constexpr TypedWhichId< SvxFrameDirectionItem > EE_PARA_WRITINGDIR(EE_PARA_START+0)
constexpr sal_uInt16 EE_FEATURE_TAB(EE_FEATURE_START+0)
constexpr TypedWhichId< SvxColorItem > EE_CHAR_BKGCOLOR(EE_CHAR_START+32)
constexpr TypedWhichId< SvxFontItem > EE_CHAR_FONTINFO(EE_CHAR_START+1)
EmbeddedObjectRef * pObject
const sal_uInt32 nInlineHack
#define ESCHER_Prop_cropFromRight
#define ESCHER_Prop_pictureActive
#define ESCHER_Prop_lineColor
#define ESCHER_Prop_dyWrapDistTop
#define ESCHER_Prop_pibName
#define ESCHER_SplitMenuColors
#define ESCHER_Prop_fNoFillHitTest
#define ESCHER_ClientData
#define ESCHER_Prop_fNoLineDrawDash
#define ESCHER_Prop_wzName
#define ESCHER_Prop_lineStyle
#define ESCHER_Prop_shadowColor
ESCHER_BlipFlagLinkToFile
#define ESCHER_Prop_txflTextFlow
#define ESCHER_ShpInst_TextBox
#define ESCHER_DgContainer
#define ESCHER_Prop_dyWrapDistBottom
#define ESCHER_Prop_cropFromTop
#define ESCHER_Prop_dxWrapDistLeft
#define ESCHER_Prop_pictureBrightness
#define ESCHER_Prop_hspNext
#define ESCHER_Prop_lineBackColor
#define ESCHER_Prop_dxWrapDistRight
#define ESCHER_Prop_dxTextLeft
#define ESCHER_ClientAnchor
#define ESCHER_Prop_lineWidth
#define ESCHER_Prop_pibFlags
#define ESCHER_Prop_dyTextTop
#define ESCHER_Prop_cropFromLeft
#define ESCHER_Prop_fillBackColor
#define ESCHER_Prop_fillBlip
#define ESCHER_Prop_pictureId
#define ESCHER_Prop_cropFromBottom
#define ESCHER_Prop_dyTextBottom
#define ESCHER_Prop_fPrint
#define ESCHER_Prop_lTxid
#define ESCHER_ShpInst_Rectangle
#define ESCHER_Prop_fBackground
#define ESCHER_Prop_pihlShape
#define ESCHER_Prop_fillType
#define ESCHER_Prop_fillOpacity
#define ESCHER_Prop_pictureContrast
#define ESCHER_SpContainer
#define ESCHER_ClientTextbox
#define ESCHER_Prop_dxTextRight
#define ESCHER_DggContainer
#define ESCHER_Prop_fillColor
#define ESCHER_Prop_lineDashing
#define ESCHER_ShpInst_PictureFrame
constexpr TypedWhichId< SwFormatURL > RES_URL(117)
constexpr TypedWhichId< SwLuminanceGrf > RES_GRFATR_LUMINANCE(144)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
constexpr sal_uInt16 RES_PARATR_BEGIN(RES_TXTATR_END)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_CJK_FONTSIZE(23)
constexpr TypedWhichId< SvxShadowItem > RES_SHADOW(113)
constexpr TypedWhichId< SwContrastGrf > RES_GRFATR_CONTRAST(145)
constexpr sal_uInt16 RES_FRMATR_END(141)
constexpr TypedWhichId< SfxInt16Item > RES_CHRATR_BIDIRTL(44)
constexpr TypedWhichId< SvxBrushItem > RES_BACKGROUND(111)
constexpr TypedWhichId< SwDrawModeGrf > RES_GRFATR_DRAWMODE(152)
constexpr TypedWhichId< SvxBrushItem > RES_CHRATR_BACKGROUND(21)
constexpr TypedWhichId< SwFlyFrameFormat > RES_FLYFRMFMT(162)
constexpr sal_uInt16 RES_CHRATR_BEGIN(HINT_BEGIN)
constexpr sal_uInt16 RES_UNKNOWNATR_BEGIN(RES_BOXATR_END)
constexpr TypedWhichId< SvxBoxItem > RES_BOX(112)
constexpr TypedWhichId< SvxFormatBreakItem > RES_BREAK(100)
constexpr TypedWhichId< SwCropGrf > RES_GRFATR_CROPGRF(142)
constexpr sal_uInt16 RES_TXTATR_END(RES_TXTATR_NOEND_END)
constexpr TypedWhichId< SvxLRSpaceItem > RES_LR_SPACE(97)
constexpr TypedWhichId< SvxULSpaceItem > RES_UL_SPACE(98)
std::unique_ptr< sal_Int32[]> pData
#define DFF_Prop_shadowOffsetY
#define DFF_Prop_fshadowObscured
#define DFF_Prop_pWrapPolygonVertices
#define DFF_Prop_shadowOffsetX
#define DFF_msofbtUDefProp
#define DFF_Prop_shadowColor
constexpr OUStringLiteral aObjectPool
std::shared_ptr< T > make_shared(Args &&... args)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
sal_uInt16 TransformWhichBetweenPools(const SfxItemPool &rDestPool, const SfxItemPool &rSrcPool, sal_uInt16 nWhich)
Map an ID valid in one SfxItemPool to its equivalent in another.
sal_uInt16 GetSetWhichFromSwDocWhich(const SfxItemSet &rSet, const SwDoc &rDoc, sal_uInt16 nWhich)
Map a SwDoc WhichId to the equivalent Id for a given SfxItemSet.
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
SwNoTextNode * GetNoTextNodeFromSwFrameFormat(const SwFrameFormat &rFormat)
Get the SwNoTextNode associated with a SwFrameFormat if here is one.
tools::Polygon CorrectWordWrapPolygonForExport(const tools::PolyPolygon &rPolyPoly, const SwNoTextNode *pNd, bool bCorrectCrop)
Undo all scaling / move tricks of the wrap polygon done during import.
bool IsFlyFrameFormatInHeader(const SwFrameFormat &rFormat)
sal_uInt32 RGBToBGR(::Color nColour)
std::vector< sal_uInt8 > bytes
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
@ RES_POOLCOLL_STANDARD
Standard.
#define STREAM_SEEK_TO_BEGIN
const SfxPoolItem * pAttr
SVXCORE_DLLPUBLIC FrPair GetMapFactor(MapUnit eS, MapUnit eD)
SVXCORE_DLLPUBLIC Degree100 NormAngle36000(Degree100 a)
constexpr OUStringLiteral INET_FILE_SCHEME
bool RTLGraphicsHack(SwTwips &rLeft, SwTwips nWidth, sal_Int16 eHoriOri, sal_Int16 eHoriRel, SwTwips nPageLeft, SwTwips nPageRight, SwTwips nPageSize)
static sal_uInt16 FindPos(const SwFrameFormat &rFormat, unsigned int nHdFtIndex, DrawObjPointerVector &rPVec)
static ShapeFlag AddMirrorFlags(ShapeFlag nFlags, const SwMirrorGrf &rMirror)
static bool RTLDrawingsHack(SwTwips &rLeft, sal_Int16 eHoriOri, sal_Int16 eHoriRel, SwTwips nPageLeft, SwTwips nPageRight, SwTwips nPageSize)
std::vector< DrawObj * > DrawObjPointerVector
OUString FieldString(ww::eField eIndex)
void Set_UInt32(sal_uInt8 *&p, sal_uInt32 n)