#ifndef CONVERSIONSTATE_H #define CONVERSIONSTATE_H #include "Types.h" #include "../Paragraph/CtrlHeadFoot.h" #include "../Paragraph/CtrlSectionDef.h" #include "../Paragraph/CtrlPageNumPos.h" #include "../Paragraph/CtrlNewNumber.h" #include "../Paragraph/CtrlColumnDef.h" #include "../Paragraph/CtrlField.h" namespace HWP { struct TConversionState { bool m_bOpenedP; bool m_bOpenedR; bool m_bIsNote; bool m_bInTable; struct TLastNode { unsigned int m_unParaIndex; enum class ELastNodeType { Empty, Paragraph, Table } m_eType; TLastNode() : m_unParaIndex(0), m_eType(ELastNodeType::Empty) {} void Clear() { m_unParaIndex = 0; m_eType = ELastNodeType::Empty; } } m_oLastNode; bool m_bInTextBox; // TODO:: используется, чтобы в wps:txbx не появилась новая фигура (посмотреть этот момент нужно подробнее) unsigned short m_ushLastCharShapeId; unsigned short m_ushSecdIndex; unsigned int m_unParaIndex; VECTOR m_arCtrlsHeadFoot; //only for hwpx std::stack m_arOpenedBookmarks; const CCtrlSectionDef* m_pSectionDef; const CCtrlColumnDef* m_pColumnDef; const CCtrlPageNumPos* m_pPageNum; const CCtrlNewNumber* m_pNewNumber; VECTOR* m_pRelationships; enum class EBreakType { Page, Column, TextWrapping, None } m_eBreakType; std::map m_mOpenField; TConversionState() : m_bOpenedP(false), m_bOpenedR(false), m_bIsNote(false), m_bInTable(false), m_bInTextBox(false), m_ushLastCharShapeId(-1), m_ushSecdIndex(0), m_unParaIndex(0), m_pSectionDef(nullptr), m_pColumnDef(nullptr), m_pPageNum(nullptr), m_pNewNumber(nullptr), m_pRelationships(nullptr), m_eBreakType(EBreakType::None) {} }; } #endif // CONVERSIONSTATE_H