20#ifndef INCLUDED_SW_SOURCE_FILTER_WW8_ATTRIBUTEOUTPUTBASE_HXX
21#define INCLUDED_SW_SOURCE_FILTER_WW8_ATTRIBUTEOUTPUTBASE_HXX
26#include <rtl/textenc.h>
31#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
122namespace editeng {
class SvxBorderLine; }
124namespace rtl {
class OUString; }
148 OUString
ConvertURL(
const OUString& rUrl,
bool bAbsoluteOut );
176 virtual void EndRun(
const SwTextNode* pNode, sal_Int32 nPos, sal_Int32 nLen,
bool bLastRun =
false ) = 0;
194 virtual void RunText(
const OUString& rText, rtl_TextEncoding eCharSet = RTL_TEXTENCODING_UTF8,
const OUString& rSymbolFont = OUString() ) = 0;
197 virtual void RawText(
const OUString& rText, rtl_TextEncoding eCharSet) = 0;
206 virtual bool StartURL(
const OUString& rUrl,
const OUString& rTarget ) = 0;
209 virtual bool EndURL(
bool isAtEndOfParagraph) = 0;
271 virtual void EndStyles( sal_uInt16 nNumberOfStyles ) = 0;
278 sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nLink, sal_uInt16 nWwId, sal_uInt16 nSlot,
279 bool bAutoUpdate ) = 0;
339 virtual void SectionPageNumbering( sal_uInt16 nNumType, const ::std::optional<sal_uInt16>& oPageRestartNumber ) = 0;
349 const std::map< size_t, size_t > & )
361 sal_uInt16 nNumberingType,
368 sal_Int16 nFirstLineIndex,
369 sal_Int16 nListTabPos,
370 const OUString &rNumberingString,
486 virtual void CharBorder( const ::editeng::SvxBorderLine* pAllBorder,
const sal_uInt16 nDist,
const bool bShadow ) = 0;
646 virtual bool AnalyzeURL(
const OUString& rUrl,
const OUString& rTarget, OUString* pLinkURL, OUString* pMark );
virtual void RawText(const OUString &rText, rtl_TextEncoding eCharSet)=0
Output text (without markup).
virtual void StartRuby(const SwTextNode &rNode, sal_Int32 nPos, const SwFormatRuby &rRuby)=0
Output ruby start.
virtual void FormatKeep(const SvxFormatKeepItem &)=0
Sfx item RES_KEEP.
virtual void FieldVanish(const OUString &rText, ww::eField eType, OUString const *pBookmarkName)=0
void OutputFlyFrame(const ww8::Frame &rFormat)
Output frames.
virtual void ParaTabStop(const SvxTabStopItem &)=0
Sfx item RES_PARATR_TABSTOP.
virtual void DefaultStyle()=0
Write default style.
virtual void NumberingDefinition(sal_uInt16 nId, const SwNumRule &rRule)=0
Definition of a numbering instance.
virtual void ParagraphStyle(sal_uInt16 nStyle)=0
Output style.
virtual void EndSection()=0
End of the section properties.
virtual void CharCaseMap(const SvxCaseMapItem &)=0
Sfx item Sfx item RES_CHRATR_CASEMAP.
virtual void FormatFillStyle(const XFillStyleItem &)=0
Sfx item RES_FILL_STYLE.
virtual void FormatTextLeftMargin(const SvxTextLeftMarginItem &rTextLeftMargin)=0
Sfx item RES_MARGIN_TEXTLEFT.
virtual void TextLineBreak(const SwFormatLineBreak &)=0
RES_TXTATR_LINEBREAK, i.e. clearing breaks.
virtual void SectionPageNumbering(sal_uInt16 nNumType, const ::std::optional< sal_uInt16 > &oPageRestartNumber)=0
The style of the page numbers.
virtual void TextINetFormat(const SwFormatINetFormat &)=0
Sfx item RES_TXTATR_INETFMT.
virtual void CharWeightCTL(const SvxWeightItem &)=0
Sfx item RES_CHRATR_CTL_WEIGHT.
virtual void ParaHyphenZone(const SvxHyphenZoneItem &)=0
Sfx item RES_PARATR_HYPHENZONE.
virtual void SetStateOfFlyFrame(FlyProcessingState)
Set the state of the Fly at current position.
virtual void WriteExpand(const SwField *pField)=0
Write the expanded field.
virtual void EndStyles(sal_uInt16 nNumberOfStyles)=0
End of the styles table.
virtual void ParaSplit(const SvxFormatSplitItem &)=0
Sfx item RES_PARATR_SPLIT.
virtual void CharBorder(const ::editeng::SvxBorderLine *pAllBorder, const sal_uInt16 nDist, const bool bShadow)=0
virtual void SectFootnoteEndnotePr()
for footnote/endnote section properties
virtual void SectionBiDi(bool bBiDi)=0
Columns populated from right/numbers on the right side?
virtual void CharFontSize(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_FONTSIZE.
virtual void EndParagraphProperties(const SfxItemSet &rParagraphMarkerProperties, const SwRedlineData *pRedlineData, const SwRedlineData *pRedlineParagraphMarkerDeleted, const SwRedlineData *pRedlineParagraphMarkerInserted)=0
Called after we end outputting the attributes.
virtual void TableBidi(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void CharFontSizeCJK(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_CJK_FONTSIZE.
virtual void TableCellRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void EmptyParagraph()=0
Empty paragraph.
virtual bool MaybeOutputBrushItem(SfxItemSet const &)
virtual void CharFontSizeCTL(const SvxFontHeightItem &)=0
Sfx item RES_CHRATR_CTL_FONTSIZE.
void GenerateBookmarksForSequenceField(const SwTextNode &rNode, SwWW8AttrIter &rAttrIter)
MSO uses bookmarks to reference sequence fields, so we need to generate these additional bookmarks du...
virtual void TableSpacing(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner)=0
virtual void CharKerning(const SvxKerningItem &)=0
Sfx item RES_CHRATR_KERNING.
virtual void StartStyleProperties(bool bParProp, sal_uInt16 nStyle)=0
Start of (paragraph or run) properties of a style.
virtual sal_Int32 StartParagraph(ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, bool bGenerateParaId)=0
Start of the paragraph.
void ParaNumRule(const SwNumRuleItem &)
Sfx item RES_PARATR_NUMRULE.
virtual void CharBidiRTL(const SfxPoolItem &)=0
Sfx item RES_CHRATR_BidiRTL.
virtual void CharPostureCJK(const SvxPostureItem &)=0
Sfx item RES_CHRATR_CJK_POSTURE.
virtual void FormatSurround(const SwFormatSurround &)=0
Sfx item RES_SURROUND.
virtual void ParaAdjust(const SvxAdjustItem &)=0
Sfx item RES_PARATR_ADJUST.
void TextFlyContent(const SwFormatFlyCnt &)
Sfx item RES_TXTATR_FLYCNT.
virtual void Redline(const SwRedlineData *pRedline)=0
Output redlining.
virtual void EndParagraph(ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner)=0
End of the paragraph.
void TextField(const SwFormatField &)
Sfx item RES_TXTATR_FIELD, RES_TXTATR_ANNOTATION and RES_TXTATR_INPUTFIELD.
virtual void SectionPageBorders(const SwFrameFormat *pFormat, const SwFrameFormat *pFirstPageFormat)=0
Description of the page borders.
virtual bool EndURL(bool isAtEndOfParagraph)=0
Output URL end.
virtual void BulletDefinition(int, const Graphic &, Size)
Exports the definition (image, size) of a single numbering picture bullet.
virtual void FormatBackground(const SvxBrushItem &)=0
Sfx item RES_BACKGROUND.
virtual void TableInfoRow(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void ParaOutlineLevel(const SfxUInt16Item &)=0
virtual void FormatFirstLineIndent(const SvxFirstLineIndentItem &rFirstLine)=0
Sfx item RES_MARGIN_FIRSTLINE.
virtual void CharFontCTL(const SvxFontItem &)=0
Sfx item RES_CHRATR_CTL_FONT.
void CharBackgroundBase(const SvxBrushItem &)
Sfx item RES_CHRATR_BACKGROUND.
virtual void SetAnchorIsLinkedToNode(bool)
If the node has an anchor linked.
virtual void TableDefinition(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void FormatTextGrid(const SwTextGridItem &)=0
Sfx item RES_TEXTGRID.
virtual void ParaScriptSpace(const SfxBoolItem &)=0
Sfx item RES_PARATR_SCRIPTSPACE.
virtual void RunText(const OUString &rText, rtl_TextEncoding eCharSet=RTL_TEXTENCODING_UTF8, const OUString &rSymbolFont=OUString())=0
Output text (inside a run).
void FormatPageDescription(const SwFormatPageDesc &)
Sfx item RES_PAGEDESC.
virtual void CharLanguage(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_LANGUAGE.
virtual bool FootnoteEndnoteRefTag()
docx requires footnoteRef/endnoteRef tag at the beginning of each of them
virtual void SetField(const SwField &rField, ww::eField eType, const OUString &rCmd)=0
virtual void EndStyleProperties(bool bParProp)=0
End of (paragraph or run) properties of a style.
virtual void ParaVerticalAlign(const SvxParaVertAlignItem &)=0
Sfx item RES_PARATR_VERTALIGN.
virtual void NumberingLevel(sal_uInt8 nLevel, sal_uInt16 nStart, sal_uInt16 nNumberingType, SvxAdjust eAdjust, const sal_uInt8 *pNumLvlPos, sal_uInt8 nFollow, const wwFont *pFont, const SfxItemSet *pOutSet, sal_Int16 nIndentAt, sal_Int16 nFirstLineIndex, sal_Int16 nListTabPos, const OUString &rNumberingString, const SvxBrushItem *pBrush, bool isLegal)=0
All the numbering level information.
virtual void FormatPaperBin(const SvxPaperBinItem &)=0
Sfx item RES_PAPER_BIN.
virtual void CharWeight(const SvxWeightItem &)=0
Sfx item RES_CHRATR_WEIGHT.
virtual void SectionFormProtection(bool bProtected)=0
Protection of forms.
void TOXMark(const SwTextNode &rNode, const SwTOXMark &rAttr)
virtual bool IsFlyProcessingPostponed()
Is processing of fly postponed ?
virtual void CharColor(const SvxColorItem &)=0
Sfx item Sfx item RES_CHRATR_COLOR.
virtual bool DropdownField(const SwField *pField)=0
virtual void TableDefaultBorders(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void SectionType(sal_uInt8 nBreakCode)=0
The type of breaking.
void OutputStyleItemSet(const SfxItemSet &rSet, bool bTestForDefault)
Use OutputItem() on an item set - for styles.
virtual void FormatColumns_Impl(sal_uInt16 nCols, const SwFormatCol &rCol, bool bEven, SwTwips nPageSize)=0
void EndTOX(const SwSection &rSect, bool bCareEnd=true)
virtual void CharAnimatedText(const SvxBlinkItem &)=0
Sfx item RES_CHRATR_BLINK.
virtual void PageBreakBefore(bool bBreak)=0
Page break As a paragraph property - the paragraph should be on the next page.
virtual void WriteBookmarkInActParagraph(const OUString &rName, sal_Int32 nFirstRunPos, sal_Int32 nLastRunPos)=0
Insert a bookmark inside the currently processed paragraph.
virtual void EndRun(const SwTextNode *pNode, sal_Int32 nPos, sal_Int32 nLen, bool bLastRun=false)=0
End of the text run.
virtual bool StartURL(const OUString &rUrl, const OUString &rTarget)=0
Output URL start.
virtual void SectionLineNumbering(sal_uLong nRestartNo, const SwLineNumberInfo &rLnNumInfo)=0
Numbering of the lines in the document.
virtual void ParaHangingPunctuation(const SfxBoolItem &)=0
Sfx item RES_PARATR_HANGINGPUNCTUATION.
virtual void ResetFlyProcessingFlag()
Reset the flag for FlyProcessing.
virtual void SectionTitlePage()=0
Has different headers/footers for the title page.
virtual void CharWeightCJK(const SvxWeightItem &)=0
Sfx item RES_CHRATR_CJK_WEIGHT.
virtual void StartStyles()=0
Start of the styles table.
virtual void FormatFrameDirection(const SvxFrameDirectionItem &)=0
Sfx item RES_FRAMEDIR.
virtual void CharRotate(const SvxCharRotateItem &)=0
Sfx item RES_CHRATR_ROTATE.
virtual void ParaForbiddenRules(const SfxBoolItem &)=0
Sfx item RES_PARATR_FORBIDDEN_RULES.
virtual void FormatAnchor(const SwFormatAnchor &)=0
Sfx item RES_ANCHOR.
virtual bool AnalyzeURL(const OUString &rUrl, const OUString &rTarget, OUString *pLinkURL, OUString *pMark)
virtual void TableInfoCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
void FormatBreak(const SvxFormatBreakItem &)
Sfx item RES_BREAK.
virtual void ParaWidows(const SvxWidowsItem &)=0
Sfx item RES_PARATR_WIDOWS.
virtual void StartSection()=0
Start of the section properties.
virtual void FormatFillGradient(const XFillGradientItem &)=0
Sfx item RES_FILL_GRADIENT.
virtual void StartRunProperties()=0
Called before we start outputting the attributes.
virtual void RTLAndCJKState(bool bIsRTL, sal_uInt16 nScript)=0
Export the state of RTL/CJK.
virtual void FormatDrop(const SwTextNode &rNode, const SwFormatDrop &rSwFormatDrop, sal_uInt16 nStyle, ww8::WW8TableNodeInfo::Pointer_t pTextNodeInfo, ww8::WW8TableNodeInfoInner::Pointer_t pTextNodeInfoInner)=0
virtual void CharIdctHint(const SfxPoolItem &)=0
Sfx item RES_CHRATR_IdctHint.
virtual void StartParagraphProperties()=0
Called before we start outputting the attributes.
virtual void TextCharFormat(const SwFormatCharFormat &)=0
Sfx item RES_TXTATR_CHARFMT.
virtual void CharShadow(const SvxShadowedItem &)=0
Sfx item RES_CHRATR_SHADOWED.
virtual void CharRelief(const SvxCharReliefItem &)=0
Sfx item RES_CHRATR_RELIEF.
virtual bool PlaceholderField(const SwField *pField)=0
virtual void RefField(const SwField &rField, const OUString &rRef)=0
virtual void CharUnderline(const SvxUnderlineItem &)=0
Sfx item RES_CHRATR_UNDERLINE.
virtual void FormatHorizOrientation(const SwFormatHoriOrient &)=0
Sfx item RES_HORI_ORIENT.
virtual void CharHighlight(const SvxBrushItem &)=0
Sfx item RES_CHRATR_HIGHLIGHT.
virtual void OverrideNumberingDefinition(SwNumRule const &, sal_uInt16, sal_uInt16, const std::map< size_t, size_t > &)
Numbering definition that overrides abstract numbering definition.
virtual void WritePostitFieldReference()
for docx w:commentReference
virtual void CharBackground(const SvxBrushItem &)=0
virtual void TableHeight(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void TableOrientation(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfoInner)=0
ww8::WidthsPtr GetColumnWidths(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
void FormatCharBorder(const SvxBoxItem &rBox)
Sfx item RES_CHRATR_BOX.
void ParaOutlineLevelBase(const SfxUInt16Item &rItem)
Sfx item RES_PARATR_OUTLINELEVEL.
virtual void OutputFKP(bool)
Output FKP (Formatted disK Page) - necessary for binary formats only.
virtual void StartRun(const SwRedlineData *pRedlineData, sal_Int32 nPos, bool bSingleEmptyRun=false)=0
Start of the text run.
virtual void FormatFrameSize(const SwFormatFrameSize &)=0
Sfx item RES_FRM_SIZE.
virtual MSWordExportBase & GetExport()=0
Return the right export class.
virtual void OnTOXEnding()
virtual ~AttributeOutputBase()
virtual void ParaLineSpacing_Impl(short nSpace, short nMulti)=0
Count the values in ParaLineSpacing, and pass theme here.
void ParaLineSpacing(const SvxLineSpacingItem &)
Sfx item RES_PARATR_LINESPACING.
virtual void FormatVertOrientation(const SwFormatVertOrient &)=0
Sfx item RES_VERT_ORIENT.
virtual void FormatLRSpace(const SvxLRSpaceItem &)=0
Sfx item RES_LR_SPACE.
AttributeOutputBase(OUString sBaseURL)
virtual void CharTwoLines(const SvxTwoLinesItem &)=0
Sfx item RES_CHRATR_TWO_LINES.
virtual void CharPosture(const SvxPostureItem &)=0
Sfx item RES_CHRATR_POSTURE.
void OutputItem(const SfxPoolItem &rHt)
Call the right virtual function according to the type of the item.
static void GetNumberPara(OUString &rStr, const SwField &rField)
sal_uInt32 GridCharacterPitch(const SwTextGridItem &rGrid) const
Compute the grid character pitch.
virtual void StartAbstractNumbering(sal_uInt16)
Start of the abstract numbering definition instance.
virtual void CharPostureCTL(const SvxPostureItem &)=0
Sfx item RES_CHRATR_CTL_POSTURE.
virtual void EndRuby(const SwTextNode &rNode, sal_Int32 nPos)=0
Output ruby end.
virtual void CharGrabBag(const SfxGrabBagItem &)=0
Sfx item RES_CHRATR_GRABBAG.
virtual void StartStyle(const OUString &rName, StyleType eType, sal_uInt16 nBase, sal_uInt16 nNext, sal_uInt16 nLink, sal_uInt16 nWwId, sal_uInt16 nSlot, bool bAutoUpdate)=0
Start of a style in the styles table.
const MSWordExportBase & GetExport() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void CharCrossedOut(const SvxCrossedOutItem &)=0
Sfx item RES_CHRATR_CROSSEDOUT.
virtual void FormatBox(const SvxBoxItem &)=0
Sfx item RES_BOX.
void StartTOX(const SwSection &rSect)
OUString ConvertURL(const OUString &rUrl, bool bAbsoluteOut)
void GetTablePageSize(ww8::WW8TableNodeInfoInner const *pTableTextNodeInfoInner, tools::Long &rPageSize, bool &rRelBoxSize)
virtual void CharAutoKern(const SvxAutoKernItem &)=0
Sfx item RES_CHRATR_AUTOKERN.
virtual void FormatULSpace(const SvxULSpaceItem &)=0
Sfx item RES_UL_SPACE.
virtual void PostitField(const SwField *pField)=0
void TextFootnote(const SwFormatFootnote &)
Sfx item RES_TXTATR_FTN.
virtual void ParaNumRule_Impl(const SwTextNode *pTextNd, sal_Int32 nLvl, sal_Int32 nNumId)=0
Numbering - the implementation.
virtual void TableCanSplit(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
void FormatColumns(const SwFormatCol &)
Sfx item RES_COL.
virtual void CharHidden(const SvxCharHiddenItem &)=0
Sfx item RES_CHRATR_HIDDEN.
virtual void EndAbstractNumbering()
End of the abstract numbering definition instance.
virtual void HiddenField(const SwField &rField)=0
virtual void TableVerticalCell(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void TextVerticalAdjustment(const css::drawing::TextVerticalAdjust)
virtual void EndStyle()=0
End of a style in the styles table.
virtual void OutputFlyFrame_Impl(const ww8::Frame &rFormat, const Point &rNdTopLeft)=0
Output frames - the implementation.
virtual void TableRowRedline(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void SectionBreaks(const SwNode &rNode)=0
Called in order to output section breaks.
virtual void ParaGrabBag(const SfxGrabBagItem &)=0
Sfx item RES_PARATR_GRABBAG.
virtual void CharContour(const SvxContourItem &)=0
Sfx item Sfx item RES_CHRATR_CONTOUR.
virtual void CharFontCJK(const SvxFontItem &)=0
Sfx item RES_CHRATR_CJK_FONT.
virtual void CharLanguageCJK(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_CJK_LANGUAGE.
virtual void CharScaleWidth(const SvxCharScaleWidthItem &)=0
Sfx item RES_CHRATR_SCALEW.
virtual void CharFont(const SvxFontItem &)=0
Sfx item RES_CHRATR_FONT.
ww8::GridColsPtr GetGridCols(ww8::WW8TableNodeInfoInner::Pointer_t const &pTableTextNodeInfoInner)
virtual void EndRunProperties(const SwRedlineData *pRedlineData)=0
Called after we end outputting the attributes.
virtual void TableBackgrounds(ww8::WW8TableNodeInfoInner::Pointer_t pTableTextNodeInfo)=0
virtual void ParaSnapToGrid(const SvxParaGridItem &)=0
Sfx item RES_PARATR_SNAPTOGRID.
virtual void CharEmphasisMark(const SvxEmphasisMarkItem &)=0
Sfx item RES_CHRATR_EMPHASIS_MARK.
virtual void FormatRightMargin(const SvxRightMarginItem &rRightMargin)=0
Sfx item RES_MARGIN_RIGHT.
virtual void CharEscapement(const SvxEscapementItem &)=0
Sfx item RES_CHRATR_ESCAPEMENT.
virtual void CharLanguageCTL(const SvxLanguageItem &)=0
Sfx item RES_CHRATR_CTL_LANGUAGE.
virtual void TextFootnote_Impl(const SwFormatFootnote &)=0
Sfx item RES_TXTATR_FTN.
virtual void SectionBreak(sal_uInt8 nC, bool bBreakAfter, const WW8_SepInfo *pSectionInfo=nullptr, bool bExtraPageBreak=false)=0
Write a section break msword::ColumnBreak or msword::PageBreak bBreakAfter: the break must be schedul...
virtual void OutlineNumbering(sal_uInt8 nLvl)=0
Numbering rule and Id.
virtual void FormatLineNumbering(const SwFormatLineNumber &)=0
Sfx item RES_LINENUMBER.
const SwRedlineData * GetParagraphMarkerRedline(const SwTextNode &rNode, RedlineType aRedlineType)
virtual void SectionRtlGutter(const SfxBoolItem &rRtlGutter)=0
RES_RTL_GUTTER.
virtual void TableRowEnd(sal_uInt32 nDepth)=0
virtual void TableNodeInfoInner(ww8::WW8TableNodeInfoInner::Pointer_t pNodeInfoInner)=0
Base class for WW8Export and DocxExport.
Base class of all fields.
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
< purpose of derivation from SwClient: character style for displaying the numbers.
Base class of the Writer document model elements.
SwTextNode is a paragraph in the document model.
sal_uInt32 GetBaseHeight() const
sal_uInt32 GetRubyHeight() const
OUString const & GetFontFamily() const
char GetDirective() const
WW8Ruby(const SwTextNode &rNode, const SwFormatRuby &rRuby, const MSWordExportBase &rExport)
Make exporting a Writer Frame easy.
std::shared_ptr< WW8TableNodeInfoInner > Pointer_t
std::shared_ptr< WW8TableNodeInfo > Pointer_t
Collects and outputs fonts.
const sal_uInt8 ColumnBreak
const sal_uInt8 PageBreak
std::shared_ptr< GridCols > GridColsPtr
std::shared_ptr< Widths > WidthsPtr
FlyProcessingState
enum to state the present state of the fly