18#include <com/sun/star/text/WrapTextMode.hpp>
19#include <com/sun/star/io/WrongFormatException.hpp>
21#include <rtl/strbuf.hxx>
22#include <rtl/ustrbuf.hxx>
44class XDocumentProperties;
48class XMultiServiceFactory;
118using Buf_t = std::tuple<RTFBufferTypes, RTFValue::Pointer_t, tools::SvRef<TableRowBuffer>>;
134 std::deque<RTFSprms> aAttributes,
int const nCells)
266 std::vector<std::pair<OUString, OUString>>
278 css::text::WrapTextMode
m_nWrap = css::text::WrapTextMode::WrapTextMode_MAKE_FIXED_SIZE;
295 void setShape(
const css::uno::Reference<css::drawing::XShape>& xShape) {
m_xShape = xShape; }
297 void setPropertySet(
const css::uno::Reference<css::beans::XPropertySet>& xPropertySet)
333 css::uno::Reference<css::drawing::XShape>
m_xShape;
647 throw css::io::WrongFormatException(
648 "Parser state is empty! Invalid usage of destination braces in RTF?",
nullptr);
654 throw css::io::WrongFormatException(
655 "Parser state is empty! Invalid usage of destination braces in RTF?",
nullptr);
681 const OUString& rName);
690 RTFDocumentImpl(css::uno::Reference<css::uno::XComponentContext>
const& xContext,
691 css::uno::Reference<css::io::XInputStream>
const& xInputStream,
692 css::uno::Reference<css::lang::XComponent>
const& xDstDoc,
693 css::uno::Reference<css::frame::XFrame>
const& xFrame,
694 css::uno::Reference<css::task::XStatusIndicator>
const& xStatusIndicator,
739 void resolvePict(
bool bInline, css::uno::Reference<css::drawing::XShape>
const& rShape);
781 void text(OUString& rString);
798 int nCells,
int nCurrentCellX);
804 ::std::deque<RTFSprms>& rCellsAttributes,
int nCells);
816 css::uno::Reference<css::uno::XComponentContext>
const&
m_xContext;
818 css::uno::Reference<css::lang::XComponent>
const&
m_xDstDoc;
819 css::uno::Reference<css::frame::XFrame>
const&
m_xFrame;
An entry in the color table.
void SetBlue(sal_uInt8 nBlue)
void SetRed(sal_uInt8 nRed)
void SetGreen(sal_uInt8 nGreen)
Implementation of the RTFDocument interface.
int m_nInheritingCells
backup of top-level props, to support inheriting cell props
OUStringBuffer m_aUnicodeBuffer
void replayRowBuffer(RTFBuffer_t &rBuffer, ::std::deque< RTFSprms > &rCellsSprms, ::std::deque< RTFSprms > &rCellsAttributes, int nCells)
void resolvePict(bool bInline, css::uno::Reference< css::drawing::XShape > const &rShape)
Resolve a picture: If not inline, then anchored.
void resolve(Stream &rMapper) override
Resolves this document to a stream handler.
int m_nNestedCurrentCellX
Current cellx value (nested table)
void resetTableRowProperties()
void setNeedSect(bool bNeedSect)
If we need a final section break at the end of the document.
void restoreTableRowProperties()
void afterPopState(RTFParserState &rState)
RTFSprms m_aSettingsTableAttributes
The settings table attributes.
bool m_bHadPicture
A picture was seen in the current paragraph.
RTFDocumentImpl * m_pSuperstream
Superstream of this substream.
bool dispatchCharacterSprmValue(RTFKeyword nKeyword, int nParam)
bool m_bObject
If we are in an object group and if the we use its \objdata element.
css::uno::Reference< css::frame::XFrame > const & m_xFrame
bool dispatchTableValue(RTFKeyword nKeyword, int nParam)
std::deque< RTFBuffer_t > m_aTableBufferStack
Buffered table cells, till cell definitions are not reached.
RTFError dispatchValue(RTFKeyword nKeyword, int nParam) override
int m_nDefaultFontIndex
Raw default font index, use getFont() on it to get a real one.
std::map< int, RTFValue::Pointer_t > m_aListTable
Maps listtable indexes to listtable entries.
std::map< int, OUString > m_aFontNames
Font index <-> name map.
int m_nBackupTopLevelCurrentCellX
writerfilter::Reference< Properties >::Pointer_t getProperties(const RTFSprms &rAttributes, RTFSprms const &rSprms, Id nStyleType)
std::size_t m_nGroupStartPos
RTFSprms m_aOLEAttributes
OLE attributes are attributes of the ooxml:OLEObject_OLEObject sprm.
bool isStyleSheetImport()
Are we inside the stylesheet table?
OUString m_aIgnoreFirst
Ignore the first occurrence of this text.
bool m_bIgnoreNextContSectBreak
If the next continuous section break should be ignored.
std::map< int, int > m_aInvalidListLevelFirstIndents
Maps List level indexes to removed values in the current list entry.
std::deque< RTFSprms > m_aTopLevelTableCellsAttributes
~RTFDocumentImpl() override
int m_nListPictureId
ID of the next \listlevel picture.
OUString m_aAuthor
Annotation author of the next annotation.
std::deque< RTFSprms > m_aTableInheritingCellsSprms
bool m_bNeedFinalPar
If set, an empty paragraph will be added at the end of the document.
std::map< int, int > m_aListOverrideTable
Maps between listoverridetable and listtable indexes.
OUString m_aPicturePath
For the INCLUDEPICTURE field's argument.
void handleFontTableEntry()
bool dispatchCharacterAttributeValue(RTFKeyword nKeyword, int nParam)
RTFError dispatchDestination(RTFKeyword nKeyword) override
RTFKeyword m_nResetBreakOnSectBreak
clean up a synthetic page break, see RTF_PAGE if inactive value is -1, otherwise the RTF_SKB* to rest...
void resetFrame()
Resets m_aStates.top().aFrame.
const utl::MediaDescriptor & m_rMediaDescriptor
The media descriptor contains e.g. the base URL of the document.
RTFError dispatchSymbol(RTFKeyword nKeyword) override
void finishSubstream() override
std::queue< std::pair< Id, std::size_t > > m_nHeaderFooterPositions
css::uno::Reference< css::task::XStatusIndicator > const & m_xStatusIndicator
RTFSprms m_aSettingsTableSprms
The settings table sprms.
int m_nCurrentEncoding
Used only during font table parsing till we don't know the font name.
bool m_bNeedCrOrig
Original value of m_bNeedCr – saved/restored before/after textframes.
Destination getDestination() override
OUString getFontName(int nIndex)
Return the name of the font, based on a dmapper index.
bool m_bHadSect
The document has multiple sections.
RTFReferenceTable::Entries_t m_aFontTableEntries
css::uno::Reference< css::uno::XComponentContext > const & m_xContext
RTFError handleEmbeddedObject()
Turns the destination text into an input stream of the current OLE attributes.
void singleChar(sal_uInt8 nValue, bool bRunProps=false)
Id m_nStreamType
Type of the stream: header, footer, footnote, etc.
int m_nTopLevelCurrentCellX
Current cellx value (top-level table)
bool m_bFirstRunException
except in the case of tables in initial multicolumn section (global for assertion)
bool getFirstRun() const
If the initial paragraph is started.
bool isSubstream() const override
std::deque< RTFSprms > m_aNestedTableCellsAttributes
bool m_bFirstRun
to start initial paragraph / section after font/style tables
std::deque< RTFSprms > m_aTopLevelTableCellsSprms
void checkUnicode(bool bUnicode, bool bHex)
If we have some unicode or hex characters to send.
RTFBuffer_t m_aSuperBuffer
Buffered superscript, till footnote is reached (or not).
std::unique_ptr< SvStream > m_pInStream
css::uno::Reference< css::lang::XMultiServiceFactory > m_xModelFactory
OStringBuffer m_aHexBuffer
Same for hex characters.
std::deque< RTFSprms > m_aTableInheritingCellsAttributes
std::map< int, rtl_TextEncoding > m_aFontEncodings
Font index <-> encoding map, not part of the parser state.
RTFInternalState getInternalState() override
std::deque< RTFSprms > m_aNestedTableCellsSprms
Id getStyleType(int nIndex)
Return the style type of an RTF style index.
bool m_bIsNewDoc
New document means not pasting into an existing one.
bool getSkipUnknown() override
std::shared_ptr< SvStream > m_pBinaryData
If the data for a picture is a binary one, it's stored here.
bool dispatchFloatingTableFlag(RTFKeyword nKeyword)
Dispatches flags related to Positioned Wrapped Tables.
RTFParserState & getDefaultState()
Get the default parser state.
void setDestination(Destination eDestination) override
std::map< int, std::map< int, int > > m_aInvalidListTableFirstIndents
Maps list table indexes to levels (and their removed values).
std::map< OUString, int > m_aBookmarks
Bookmark name <-> index map.
int m_nNestedCells
cell props buffer for nested tables, reset by \nestrow the \nesttableprops is a destination and must ...
int m_nListLevel
Index of the current list level in a list table entry.
void bufferProperties(RTFBuffer_t &rBuffer, const RTFValue::Pointer_t &pValue, const tools::SvRef< TableRowBuffer > &pTableProperties, Id nStyleType=0)
Buffers properties to be sent later.
oox::formulaimport::XmlStreamBuilder m_aMathBuffer
Formula import.
const css::uno::Reference< css::lang::XMultiServiceFactory > & getModelFactory() const
std::map< int, Id > m_aStyleTypes
Maps style indexes to style types.
std::shared_ptr< oox::GraphicHelper > m_pGraphicHelper
OUString getStyleName(int nIndex)
Return the style name of an RTF style index.
std::vector< Color > m_aColorTable
Color index <-> RGB color value map.
OUString m_aAuthorInitials
Initials of author of the next annotation.
css::uno::Reference< css::io::XInputStream > const & m_xInputStream
writerfilter::Reference< Properties >::Pointer_t createStyleProperties()
void sendProperties(writerfilter::Reference< Properties >::Pointer_t const &pParagraphProperties, writerfilter::Reference< Properties >::Pointer_t const &pFrameProperties, writerfilter::Reference< Properties >::Pointer_t const &pTableRowProperties)
Send the passed properties to dmapper.
int getFontIndex(int nIndex)
Return the dmapper index of an RTF index for fonts.
bool m_bMathNor
Normal text property, that is math italic and math spacing are not applied to the current run.
RTFDocumentImpl(css::uno::Reference< css::uno::XComponentContext > const &xContext, css::uno::Reference< css::io::XInputStream > const &xInputStream, css::uno::Reference< css::lang::XComponent > const &xDstDoc, css::uno::Reference< css::frame::XFrame > const &xFrame, css::uno::Reference< css::task::XStatusIndicator > const &xStatusIndicator, const utl::MediaDescriptor &rMediaDescriptor)
oox::GraphicHelper & getGraphicHelper()
void setInternalState(RTFInternalState nInternalState) override
RTFSprms m_aFormfieldAttributes
bool m_bNeedCr
If we need to emit a CR at the end of substream.
css::uno::Reference< css::lang::XComponent > const & m_xDstDoc
int m_nTopLevelCells
cell props buffer for top-level table, reset by \row
tools::SvRef< RTFTokenizer > m_pTokenizer
void prepareProperties(RTFParserState &rState, writerfilter::Reference< Properties >::Pointer_t &o_rpParagraphProperties, writerfilter::Reference< Properties >::Pointer_t &o_rpFrameProperties, writerfilter::Reference< Properties >::Pointer_t &o_rpTableRowProperties, int nCells, int nCurrentCellX)
RTFParserState m_aDefaultState
Read by RTF_PARD.
void checkFirstRun()
If this is the first run of the document, starts the initial paragraph.
bool dispatchInfoValue(RTFKeyword nKeyword, int nParam)
void replayBuffer(RTFBuffer_t &rBuffer, RTFSprms *pSprms, RTFSprms const *pAttributes)
std::map< int, OUString > m_aAuthors
Revision index <-> author map.
RTFReferenceTable::Entries_t deduplicateStyleTable()
implement non-obvious RTF specific style inheritance
tools::SvRef< RTFSdrImport > m_pSdrImport
void text(OUString &rString)
RTFError beforePopState(RTFParserState &rState)
RTFSprms m_aObjectAttributes
void setSkipUnknown(bool bSkipUnknown) override
void setSuperstream(RTFDocumentImpl *pSuperstream)
RTFError dispatchFlag(RTFKeyword nKeyword) override
bool m_bAfterCellBeforeRow
Are we after a \cell, but before a \row?
void sectBreak(bool bFinal=false)
RTFSprms m_aBackupTableRowSprms
std::map< int, OUString > m_aStyleNames
Maps style indexes to style names.
void resolveSubstream(std::size_t nPos, Id nId)
rtl_TextEncoding getEncoding(int nFontIndex)
Return the encoding associated with a font index.
RTFError dispatchToggle(RTFKeyword nKeyword, bool bParam, int nParam) override
void setNeedPar(bool bNeedPar)
If we need to add a dummy paragraph before a section break.
void setDestinationText(std::u16string_view rString)
RTFSprms m_aFormfieldSprms
bool m_bNeedPap
If paragraph properties should be emitted on next run.
bool dispatchTableSprmValue(RTFKeyword nKeyword, int nParam)
RTFFormFieldType m_nFormFieldType
bool dispatchParagraphSprmValue(RTFKeyword nKeyword, int nParam)
RTFSprms m_aBackupTableRowAttributes
RTFError pushState() override
std::shared_ptr< RTFReferenceTable::Entries_t > m_pStyleTableEntries
To avoid copying entries between DomainMapper instances it is stored as pointer.
std::vector< int > m_aFontIndexes
Maps the non-continuous font indexes to the continuous dmapper indexes.
bool m_hasRHeader
Flags for ensuring that only one header and footer is added per section.
RTFError resolveChars(char ch) override
void backupTableRowProperties()
RTFSprms m_aListTableSprms
The list table and list override table combined.
bool m_bWasInFrame
If aFrame.inFrame() was true in the previous state.
RTFError popState() override
bool m_bNeedSect
If a section break is needed before the end of the doc (false right after a section break).
void outputSettingsTable()
Send NS_ooxml::LN_settings_settings to dmapper.
int m_nCellxMax
Max width of the rows in the current table.
Color getColorTable(sal_uInt32 nIndex)
bool dispatchFrameValue(RTFKeyword nKeyword, int nParam)
css::uno::Reference< css::document::XDocumentProperties > m_xDocumentProperties
The RTFDocument opens and resolves the RTF document.
Stores the properties of a drawing object.
std::vector< css::beans::PropertyValue > m_aPendingProperties
sal_uInt8 getLineColorR() const
void setPropertySet(const css::uno::Reference< css::beans::XPropertySet > &xPropertySet)
void setFillColorG(sal_uInt8 nFillColorG)
void setDhgt(sal_Int32 nDhgt)
void setHasLineColor(bool bHasLineColor)
const css::uno::Reference< css::beans::XPropertySet > & getPropertySet() const
sal_Int32 getFLine() const
bool getHasFillColor() const
sal_uInt8 getFillColorR() const
sal_Int32 m_nPolyLineCount
void setHasFillColor(bool bHasFillColor)
void setLineColorR(sal_uInt8 nLineColorR)
void setFLine(sal_Int32 nFLine)
void setPolyLineCount(sal_Int32 nPolyLineCount)
sal_uInt8 getLineColorG() const
bool getHadShapeText() const
sal_Int32 getDhgt() const
std::vector< css::beans::PropertyValue > & getPendingProperties()
sal_Int32 getPolyLineCount() const
void setHadShapeText(bool bHadShapeText)
void setLineColorG(sal_uInt8 nLineColorG)
const css::uno::Reference< css::drawing::XShape > & getShape() const
css::uno::Reference< css::beans::XPropertySet > m_xPropertySet
css::uno::Reference< css::drawing::XShape > m_xShape
std::vector< css::awt::Point > & getPolyLinePoints()
sal_uInt8 getFillColorG() const
void setFillColorB(sal_uInt8 nFillColorB)
bool getHasLineColor() const
sal_uInt8 getLineColorB() const
void setFillColorR(sal_uInt8 nFillColorR)
void setShape(const css::uno::Reference< css::drawing::XShape > &xShape)
void setLineColorB(sal_uInt8 nLineColorB)
std::vector< css::awt::Point > m_aPolyLinePoints
sal_uInt8 getFillColorB() const
Stores the properties of a frame.
bool hasProperties() const
RTFFrame(RTFParserState *pParserState)
bool inFrame() const
If we got tokens indicating we're in a frame.
RTFDocumentImpl * m_pDocumentImpl
RTFSprms getSprms()
Convert the stored properties to Sprms.
void setSprm(Id nId, Id nValue)
Store a property.
std::optional< Id > m_oWrap
RTFTokenizer needs a class implementing this interface.
State of the parser, which gets saved / restored when changing groups.
void setRunType(RunType eRunType)
OUString m_aDocVar
For importing document variables which are not referenced in the document.
RTFFieldStatus m_eFieldStatus
RTFColorTableEntry m_aCurrentColor
RTFSprms m_aTabAttributes
void setCurrentListIndex(int nCurrentListIndex)
void setStartedTrackchange(bool bStartedTrackchange)
int m_nListLevelNum
Next list level index to use when parsing list table.
void setDay(sal_uInt16 nDay)
void setCurrentCharacterStyleIndex(int nCurrentCharacterStyleIndex)
void setCurrentEncoding(rtl_TextEncoding nCurrentEncoding)
RTFSprms & getParagraphSprms()
bool m_bCreatedShapeGroup
A GroupShape was created and pushed to the parent stack.
Destination m_eDestination
RTFDocumentImpl * getDocumentImpl()
std::vector< sal_Int32 > m_aLevelNumbers
List of character positions in leveltext to replace.
void setCreatedShapeGroup(bool bCreatedShapeGroup)
RTFParserState(RTFDocumentImpl *pDocumentImpl)
bool m_bInListpicture
If we're inside a \listpicture group.
sal_uInt16 getMinute() const
void setDocVarName(OUString &aDocVarName)
bool m_bStartedTrackchange
Track change is started, need to end it before popping.
RTFColorTableEntry & getCurrentColor()
OUStringBuffer & getDestinationText()
RTFSprms & getTableRowSprms()
int getCurrentListIndex() const
RTFSprms m_aCharacterAttributes
RTFSprms & getTabAttributes()
OUString const & getPropName() const
RTFDrawingObject & getDrawingObject()
void setPropType(const css::uno::Type &rPropType)
OUString m_aPropName
User-defined property: key name.
void setCurrentStyleIndex(int nCurrentStyleIndex)
int getCurrentListOverrideIndex() const
RTFSprms m_aTableRowSprms
RTFDrawingObject m_aDrawingObject
OUStringBuffer * m_pCurrentDestinationText
point to the buffer of the current destination
bool getHadShapeText() const
RTFInternalState getInternalState() const
Destination getDestination() const
RTFSprms & getSectionAttributes()
int getBinaryToRead() const
bool m_bInShapeGroup
If we're inside a \shpgrp group.
int m_nCurrentListOverrideIndex
Current ls, points to a listoverridetable entry.
int m_nCurrentCharacterStyleIndex
Index of the current character style.
RTFSprms m_aListLevelEntries
List level entries, which will form a list entry later.
int m_nCurrentStyleIndex
Index of the current style.
void setBorderState(RTFBorderState nBorderState)
void setInShape(bool bInShape)
RTFBorderState m_nBorderState
RTFSprms m_aTableAttributes
RTFSprms m_aSectionAttributes
RTFSprms & getListLevelEntries()
void setHour(sal_uInt16 nHour)
RTFSprms & getTableRowAttributes()
bool getCreatedShapeGroup() const
bool getInBackground() const
void setLevelNumbersValid(bool bLevelNumbersValid)
RTFSprms m_aTableRowAttributes
int getTableRowWidthAfter() const
void setCurrentBuffer(RTFBuffer_t *pCurrentBuffer)
sal_uInt16 getHour() const
void setFieldLocked(bool bSet)
RTFPicture & getPicture()
rtl_TextEncoding getCurrentEncoding() const
RTFSprms & getTableSprms()
void setMonth(sal_uInt16 nMonth)
css::uno::Type const & getPropType() const
RTFFieldStatus getFieldStatus() const
void setDestination(Destination eDestination)
bool getInListpicture() const
sal_uInt16 getMonth() const
RTFSprms & getCharacterAttributes()
RTFSprms m_aParagraphAttributes
void setPropName(const OUString &rPropName)
void setTableRowWidthAfter(int nTableRowWidthAfter)
OUStringBuffer * getCurrentDestinationText() const
RTFBorderState getBorderState() const
rtl_TextEncoding m_nCurrentEncoding
int getCurrentCharacterStyleIndex() const
bool getStartedTrackchange() const
int m_nTableRowWidthAfter
Width of invisible cell at the end of the row.
int m_nCharsToSkip
Characters to skip, set to nUc by \u.
RTFSprms m_aParagraphSprms
RTFBuffer_t * getCurrentBuffer() const
void setFieldStatus(RTFFieldStatus eFieldStatus)
RTFInternalState m_nInternalState
RTFSprms & getCharacterSprms()
void setBinaryToRead(int nBinaryToRead)
void setInShapeGroup(bool bInShapeGroup)
void setInListpicture(bool bInListpicture)
void setCurrentListOverrideIndex(int nCurrentListOverrideIndex)
bool isFieldLocked() const
RTFSprms & getSectionSprms()
RTFSprms & getTableCellAttributes()
css::uno::Type m_aPropType
User-defined property: value type.
void setYear(sal_uInt16 nYear)
RTFSprms & getParagraphAttributes()
bool getInShapeGroup() const
OUStringBuffer m_aDestinationText
Text from special destinations.
RunType
Maps to OOXML's ascii, cs or eastAsia.
void appendDocVar(OUString &aDocVar)
int m_nCurrentListIndex
Current listid, points to a listtable entry.
sal_uInt16 getYear() const
RTFBuffer_t * m_pCurrentBuffer
Points to the active buffer, if there is one.
bool m_bLevelNumbersValid
If aLevelNumbers should be read at all.
bool m_bInBackground
If we're inside a \background group.
int getCurrentStyleIndex() const
RTFSprms & getTableAttributes()
int m_nBinaryToRead
Characters to read, once in binary mode.
void setInBackground(bool bInBackground)
bool m_bInShape
If we're inside a \shp group.
RTFSprms m_aTableCellSprms
RTFSprms m_aTableCellAttributes
std::vector< sal_Int32 > & getLevelNumbers()
void appendDestinationText(std::u16string_view rString)
void setHadShapeText(bool bHadShapeText)
sal_uInt16 getDay() const
void setInternalState(RTFInternalState nInternalState)
RTFDocumentImpl * m_pDocumentImpl
RunType getRunType() const
RTFSprms m_aCharacterSprms
bool getLevelNumbersValid() const
RTFSprms & getTableCellSprms()
void setMinute(sal_uInt16 nMinute)
void setCurrentDestinationText(OUStringBuffer *pDestinationText)
int m_nUc
Current \uc value.
Stores the properties of a picture.
std::map< int, writerfilter::Reference< Properties >::Pointer_t > Entries_t
Stores the properties of a shape.
RTFSprms m_aWrapPolygonSprms
Wrap polygon, written by RTFSdrImport::resolve(), read by RTFDocumentImpl::resolvePict().
std::vector< std::pair< OUString, OUString > > & getProperties()
sal_Int16 getVertOrientRelation() const
void setHoriOrientRelation(sal_Int16 nHoriOrientRelation)
void setBottom(sal_Int32 nBottom)
css::text::WrapTextMode m_nWrap
sal_Int16 getHoriOrientRelation() const
std::pair< Id, RTFValue::Pointer_t > m_aWrapSprm
Wrap type, written by RTFDocumentImpl::popState(), read by RTFDocumentImpl::resolvePict().
RTFSprms m_aAnchorAttributes
Anchor attributes like wrap distance, written by RTFSdrImport::resolve(), read by RTFDocumentImpl::re...
sal_uInt32 m_nVertOrientRelationToken
Vertical dmapper token for Writer pictures.
css::text::WrapTextMode getWrap() const
sal_Int32 getBottom() const
sal_Int16 m_nVertOrientRelation
Vertical text::RelOrientation for drawinglayer shapes.
sal_uInt32 getHoriOrientRelationToken() const
std::pair< Id, RTFValue::Pointer_t > & getWrapSprm()
std::vector< std::pair< OUString, OUString > > & getGroupProperties()
RTFSprms & getWrapPolygonSprms()
bool getInBackground() const
std::optional< sal_Int32 > m_oZ
Z-Order of the shape.
void setVertOrientRelationToken(sal_uInt32 nVertOrientRelationToken)
RTFSprms & getAnchorAttributes()
void setLeft(sal_Int32 nLeft)
sal_Int32 getLeft() const
std::vector< std::pair< OUString, OUString > > m_aGroupProperties
Properties applied on the groupshape.
bool m_bInBackground
If shape is below text (true) or text is below shape (false).
sal_uInt32 m_nHoriOrientRelationToken
Horizontal dmapper token for Writer pictures.
const std::vector< std::pair< OUString, OUString > > & getProperties() const
void setInBackground(bool bInBackground)
sal_Int16 m_nHoriOrientRelation
Horizontal text::RelOrientation for drawinglayer shapes.
void setVertOrientRelation(sal_Int16 nVertOrientRelation)
void setTop(sal_Int32 nTop)
void setWrap(css::text::WrapTextMode nWrap)
sal_uInt32 getVertOrientRelationToken() const
std::vector< std::pair< OUString, OUString > > m_aProperties
Properties of a single shape.
void setHoriOrientRelationToken(sal_uInt32 nHoriOrientRelationToken)
sal_Int32 getRight() const
void setRight(sal_Int32 nRight)
A list of RTFSprm with a copy constructor that performs a deep copy.
tools::SvRef< RTFValue > Pointer_t
holds one nested table row
writerfilter::Reference< Properties >::Pointer_t m_pParaProperties
writerfilter::Reference< Properties >::Pointer_t & GetParaProperties()
std::deque< RTFSprms > & GetCellsSprms()
writerfilter::Reference< Properties >::Pointer_t m_pFrameProperties
writerfilter::Reference< Properties >::Pointer_t m_pRowProperties
std::deque< RTFSprms > & GetCellsAttributes()
writerfilter::Reference< Properties >::Pointer_t & GetRowProperties()
writerfilter::Reference< Properties >::Pointer_t & GetFrameProperties()
::std::deque< RTFSprms > m_aCellsSprms
TableRowBuffer(RTFBuffer_t aBuffer, std::deque< RTFSprms > aSprms, std::deque< RTFSprms > aAttributes, int const nCells)
::std::deque< RTFSprms > m_aCellsAttributes
RTFBuffer_t & GetBuffer()
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
class SAL_NO_VTABLE XPropertySet
bool findPropertyName(const std::vector< beans::PropertyValue > &rProperties, const OUString &rName)
RTFValue::Pointer_t getNestedAttribute(RTFSprms &rSprms, Id nParent, Id nId)
Looks up the nParent then the nested nId attribute in rSprms.
std::tuple< RTFBufferTypes, RTFValue::Pointer_t, tools::SvRef< TableRowBuffer > > Buf_t
A buffer storing dmapper calls.
void putNestedAttribute(RTFSprms &rSprms, Id nParent, Id nId, const RTFValue::Pointer_t &pValue, RTFOverwrite eOverwrite, bool bAttribute)
bool eraseNestedAttribute(RTFSprms &rSprms, Id nParent, Id nId)
@ NO_APPEND
No, always append the value to the end of the list.
@ YES
Yes, if an existing key is found, overwrite it.
void putNestedSprm(RTFSprms &rSprms, Id nParent, Id nId, const RTFValue::Pointer_t &pValue, RTFOverwrite eOverwrite)
RTFValue::Pointer_t getNestedSprm(RTFSprms &rSprms, Id nParent, Id nId)
Looks up the nParent then the nested nId sprm in rSprms.
Destination
An RTF destination state is the last open destination control word.
RTFFormFieldType
Form field types.
Id getParagraphBorder(sal_uInt32 nIndex)
OString DTTM22OString(tools::Long nDTTM)
RTFBufferTypes
Different kind of buffers for table cell contents.
@ BUFFER_RESOLVESHAPE
Imports a shape.
@ BUFFER_RESOLVESUBSTREAM
@ BUFFER_PROPS
Stores properties, should be created only in bufferProperties().
@ BUFFER_PICTURE
Restores RTFParserState::aPicture.
RTFSprms & getLastAttributes(RTFSprms &rSprms, Id nId)
std::deque< Buf_t > RTFBuffer_t
void putBorderProperty(RTFStack &aStates, Id nId, const RTFValue::Pointer_t &pValue)
An RTF stack is similar to std::stack, except that it has an operator[].
const RTFParserState & operator[](size_t nIndex) const
RTFParserState & operator[](size_t nIndex)
std::deque< RTFParserState > m_Impl
void push(RTFParserState const &rState)
std::unique_ptr< char[]> aBuffer