QtGui/qtextoption.h Source File

qtextoption.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtGui module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QTEXTOPTION_H
43 #define QTEXTOPTION_H
44 
45 #include <QtCore/qnamespace.h>
46 #include <QtCore/qchar.h>
47 #include <QtCore/qmetatype.h>
48 
49 
51 
53 
54 QT_MODULE(Gui)
55 
56 template <typename T> class QList;
57 struct QTextOptionPrivate;
58 
59 class Q_GUI_EXPORT QTextOption
60 {
61 public:
62  enum TabType {
66  DelimiterTab
67  };
68 
69  struct Q_GUI_EXPORT Tab {
70  inline Tab() : position(80), type(QTextOption::LeftTab) { }
71  inline Tab(qreal pos, TabType tabType, QChar delim = QChar())
72  : position(pos), type(tabType), delimiter(delim) {}
73 
74  inline bool operator==(const Tab &other) const {
75  return type == other.type
76  && qFuzzyCompare(position, other.position)
77  && delimiter == other.delimiter;
78  }
79 
80  inline bool operator!=(const Tab &other) const {
81  return !operator==(other);
82  }
83 
84  qreal position;
87  };
88 
89  QTextOption();
90  QTextOption(Qt::Alignment alignment);
91  ~QTextOption();
92 
93  QTextOption(const QTextOption &o);
94  QTextOption &operator=(const QTextOption &o);
95 
96  inline void setAlignment(Qt::Alignment alignment);
97  inline Qt::Alignment alignment() const { return Qt::Alignment(align); }
98 
99  inline void setTextDirection(Qt::LayoutDirection aDirection) { this->direction = aDirection; }
100  inline Qt::LayoutDirection textDirection() const { return Qt::LayoutDirection(direction); }
101 
102  enum WrapMode {
107  WrapAtWordBoundaryOrAnywhere
108  };
109  inline void setWrapMode(WrapMode wrap) { wordWrap = wrap; }
110  inline WrapMode wrapMode() const { return static_cast<WrapMode>(wordWrap); }
111 
112  enum Flag {
113  ShowTabsAndSpaces = 0x1,
114  ShowLineAndParagraphSeparators = 0x2,
115  AddSpaceForLineAndParagraphSeparators = 0x4,
116  SuppressColors = 0x8,
117  IncludeTrailingSpaces = 0x80000000
118  };
119  Q_DECLARE_FLAGS(Flags, Flag)
120  inline void setFlags(Flags flags);
121  inline Flags flags() const { return Flags(f); }
122 
123  inline void setTabStop(qreal tabStop);
124  inline qreal tabStop() const { return tab; }
125 
126  void setTabArray(QList<qreal> tabStops);
127  QList<qreal> tabArray() const;
128 
129  void setTabs(QList<Tab> tabStops);
130  QList<Tab> tabs() const;
131 
132  void setUseDesignMetrics(bool b) { design = b; }
133  bool useDesignMetrics() const { return design; }
134 
135 private:
136  uint align : 8;
137  uint wordWrap : 4;
138  uint design : 1;
139  uint direction : 2;
140  uint unused : 18;
141  uint f;
142  qreal tab;
143  QTextOptionPrivate *d;
144 };
145 
146 Q_DECLARE_OPERATORS_FOR_FLAGS(QTextOption::Flags)
147 
148 inline void QTextOption::setAlignment(Qt::Alignment aalignment)
149 { align = aalignment; }
150 
151 inline void QTextOption::setFlags(Flags aflags)
152 { f = aflags; }
153 
154 inline void QTextOption::setTabStop(qreal atabStop)
155 { tab = atabStop; }
156 
158 
160 
162 
163 #endif // QTEXTOPTION_H
GLuint GLuint GLsizei GLenum type
Definition: GLee.h:872
Qt::Alignment alignment() const
Definition: qtextoption.h:97
void setUseDesignMetrics(bool b)
Definition: qtextoption.h:132
#define QT_END_NAMESPACE
Definition: qglobal.h:128
#define QT_BEGIN_HEADER
Definition: qglobal.h:141
void setWrapMode(WrapMode wrap)
Definition: qtextoption.h:109
qreal tabStop() const
Definition: qtextoption.h:124
LayoutDirection
Definition: qnamespace.h:1580
Definition: qnamespace.h:54
bool useDesignMetrics() const
Definition: qtextoption.h:133
WrapMode wrapMode() const
Definition: qtextoption.h:110
#define inline
Definition: image.h:2490
#define Q_DECLARE_METATYPE(TYPE)
Definition: qmetatype.h:265
bool operator==(const Attribute &cA, const AttributeInstance< type > &cB)
This operator compares the two attributes and NOT their values.
Definition: node.h:577
#define QT_BEGIN_NAMESPACE
Definition: qglobal.h:127
bool operator!=(const Tab &other) const
Definition: qtextoption.h:80
void setTextDirection(Qt::LayoutDirection aDirection)
Definition: qtextoption.h:99
void setFlags(Flags flags)
Definition: qtextoption.h:151
GLubyte GLubyte b
Definition: GLee.h:5404
bool operator==(const Tab &other) const
Definition: qtextoption.h:74
void setTabStop(qreal tabStop)
Definition: qtextoption.h:154
bool qFuzzyCompare(const QMatrix &m1, const QMatrix &m2)
Definition: qmatrix.h:172
Definition: qchar.h:72
Qt::LayoutDirection textDirection() const
Definition: qtextoption.h:100
#define QT_END_HEADER
Definition: qglobal.h:142
GLclampf f
Definition: GLee.h:9303
Tab(qreal pos, TabType tabType, QChar delim=QChar())
Definition: qtextoption.h:71