QGIS API Documentation  2.99.0-Master (0a63d1f)
characterwidget.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation ([email protected])
6 **
7 ** This library/program is free software; you can redistribute it
8 ** and/or modify it under the terms of the GNU Library General Public
9 ** License as published by the Free Software Foundation; either
10 ** version 2 of the License, or ( at your option ) any later version.
11 **
12 ** This file is part of the examples of the Qt Toolkit.
13 **
14 ** $QT_BEGIN_LICENSE:LGPL$
15 ** Commercial Usage
16 ** Licensees holding valid Qt Commercial licenses may use this file in
17 ** accordance with the Qt Commercial License Agreement provided with the
18 ** Software or, alternatively, in accordance with the terms contained in
19 ** a written agreement between you and Nokia.
20 **
21 ** GNU Lesser General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU Lesser
23 ** General Public License version 2.1 as published by the Free Software
24 ** Foundation and appearing in the file LICENSE.LGPL included in the
25 ** packaging of this file. Please review the following information to
26 ** ensure the GNU Lesser General Public License version 2.1 requirements
27 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
28 **
29 ** In addition, as a special exception, Nokia gives you certain additional
30 ** rights. These rights are described in the Nokia Qt LGPL Exception
31 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
32 **
33 ** GNU General Public License Usage
34 ** Alternatively, this file may be used under the terms of the GNU
35 ** General Public License version 3.0 as published by the Free Software
36 ** Foundation and appearing in the file LICENSE.GPL included in the
37 ** packaging of this file. Please review the following information to
38 ** ensure the GNU General Public License version 3.0 requirements will be
39 ** met: http://www.gnu.org/copyleft/gpl.html.
40 **
41 ** If you have questions regarding the use of this file, please contact
42 ** Nokia at [email protected]
43 ** $QT_END_LICENSE$
44 **
45 ****************************************************************************/
46 
47 #ifndef CHARACTERWIDGET_H
48 #define CHARACTERWIDGET_H
49 
50 #include <QFont>
51 #include <QPoint>
52 #include <QSize>
53 #include <QString>
54 #include <QWidget>
55 #include "qgis_gui.h"
56 
57 QT_BEGIN_NAMESPACE
58 class QMouseEvent;
59 class QPaintEvent;
60 QT_END_NAMESPACE
61 
63 class GUI_EXPORT CharacterWidget : public QWidget
64 {
65  Q_OBJECT
66 
67  public:
68  CharacterWidget( QWidget *parent = nullptr );
69  QSize sizeHint() const override;
70 
71  int getColumns() const { return columns; }
72  int getSquareSize() const { return squareSize; }
73 
74  public slots:
75  void updateFont( const QFont &font );
76  void updateSize( double fontSize );
77  void updateStyle( const QString &fontStyle );
78  void updateFontMerging( bool enable );
79  void updateColumns( int cols );
80  void setCharacter( QChar character );
81 
82  signals:
83  void characterSelected( QChar character );
84 
85  protected:
86  void mouseMoveEvent( QMouseEvent *event ) override;
87  void mousePressEvent( QMouseEvent *event ) override;
88  void paintEvent( QPaintEvent *event ) override;
89 
90  private:
91  QFont displayFont;
92  int columns;
93  int lastKey;
94  int squareSize;
95 };
97 
98 #endif
int getSquareSize() const
int getColumns() const