/************************************************************************ ** ** @file vpatternpiecedata.cpp ** @author Bojan Kverh ** @date July 19, 2016 ** ** @brief ** @copyright ** This source code is part of the Valentine project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2013-2015 Valentina project ** All Rights Reserved. ** ** Valentina is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Valentina is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see . ** *************************************************************************/ #ifndef VTEXTMANAGER_H #define VTEXTMANAGER_H #include #include #include #include #include #include #include #include class QFontMetrics; class VAbstractPattern; class VPatternPieceData; #define MIN_FONT_SIZE 5 #define MAX_FONT_SIZE 128 /** * @brief The TextLine struct holds the information about one text line */ struct TextLine { QString m_qsText; int m_iFontSize; // 0 means default QFont::Weight m_eFontWeight; QFont::Style m_eStyle; Qt::Alignment m_eAlign; TextLine(); }; /** * @brief The VTextManager class this class is used to determine whether a collection of * text lines can fit into specified bounding box and with what font size */ class VTextManager { Q_DECLARE_TR_FUNCTIONS(VTextManager) public: VTextManager(); virtual ~VTextManager(); VTextManager(const VTextManager &text); VTextManager &operator=(const VTextManager &text); virtual int GetSpacing() const; void SetFont(const QFont& font); const QFont& GetFont() const; void SetFontSize(int iFS); void FitFontSize(qreal fW, qreal fH); QList GetAllSourceLines() const; void AddSourceLine(const TextLine& tl); void ClearSourceLines(); int GetSourceLinesCount() const; const TextLine& GetSourceLine(int i) const; void Update(const QString& qsName, const VPatternPieceData& data); void Update(const VAbstractPattern* pDoc, qreal dSize, qreal dHeight); private: QFont m_font; QList m_liLines; }; #endif // VTEXTMANAGER_H