QGIS API Documentation 3.41.0-Master (45a0abf3bec)
Loading...
Searching...
No Matches
qgstextblockformat.h
Go to the documentation of this file.
1/***************************************************************************
2 qgstextblockformat.h
3 -----------------
4 begin : September 2024
5 copyright : (C) Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSTEXTBLOCKFORMAT_H
17#define QGSTEXTBLOCKFORMAT_H
18
19#include "qgis_sip.h"
20#include "qgis_core.h"
21#include "qgis.h"
22#include "qgsmargins.h"
23
24#include <QFont>
25#include <QColor>
26
27class QTextBlockFormat;
29
42class CORE_EXPORT QgsTextBlockFormat
43{
44 public:
45
46 QgsTextBlockFormat() = default;
47
51 QgsTextBlockFormat( const QTextBlockFormat &format );
52
54 enum class BooleanValue
55 {
56 NotSet,
57 SetTrue,
58 SetFalse,
59 };
60
72 void overrideWith( const QgsTextBlockFormat &other );
73
82 bool hasHorizontalAlignmentSet() const { return mHasHorizontalAlignSet; }
83
92 void setHasHorizontalAlignmentSet( bool set ) { mHasHorizontalAlignSet = set; }
93
102 Qgis::TextHorizontalAlignment horizontalAlignment() const { return mHorizontalAlign; }
103
112 void setHorizontalAlignment( Qgis::TextHorizontalAlignment alignment ) { mHorizontalAlign = alignment; }
113
125 double lineHeight() const;
126
140 void setLineHeight( double height );
141
152 double lineHeightPercentage() const;
153
166 void setLineHeightPercentage( double height );
167
174 QgsMargins margins() const { return mMargins; }
175
182 void setMargins( const QgsMargins &margins ) { mMargins = margins; }
183
193 void updateFontForFormat( QFont &font, const QgsRenderContext &context, double scaleFactor = 1.0 ) const;
194
195 private:
196
197 double mLineHeight = std::numeric_limits< double >::quiet_NaN();
198 double mLineHeightPercentage = std::numeric_limits< double >::quiet_NaN();
199
200 bool mHasHorizontalAlignSet = false;
202
203 QgsMargins mMargins { std::numeric_limits< double >::quiet_NaN(), std::numeric_limits< double >::quiet_NaN(), std::numeric_limits< double >::quiet_NaN(), std::numeric_limits< double >::quiet_NaN() };
204};
205
206#endif // QGSTEXTBLOCKFORMAT_H
TextHorizontalAlignment
Text horizontal alignment.
Definition qgis.h:2740
The QgsMargins class defines the four margins of a rectangle.
Definition qgsmargins.h:37
Contains information about the context of a rendering operation.
Stores information relating to individual block formatting.
Qgis::TextHorizontalAlignment horizontalAlignment() const
Returns the format horizontal alignment.
void setHasHorizontalAlignmentSet(bool set)
Sets whether the format has an explicit horizontal alignment set.
void setHorizontalAlignment(Qgis::TextHorizontalAlignment alignment)
Sets the format horizontal alignment.
void setMargins(const QgsMargins &margins)
Sets the block margins, in points.
bool hasHorizontalAlignmentSet() const
Returns true if the format has an explicit horizontal alignment set.
BooleanValue
Status values for boolean format properties.
QgsMargins margins() const
Returns the block margins, in points.
QgsTextBlockFormat()=default