QGIS API Documentation  2.14.0-Essen
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 
56 QT_BEGIN_NAMESPACE
57 class QMouseEvent;
58 class QPaintEvent;
59 QT_END_NAMESPACE
60 
62 class GUI_EXPORT CharacterWidget : public QWidget
63 {
64  Q_OBJECT
65 
66  public:
67  CharacterWidget( QWidget *parent = nullptr );
68  QSize sizeHint() const override;
69 
70  int getColumns() const { return columns; }
71  int getSquareSize() const { return squareSize; }
72 
73  public slots:
74  void updateFont( const QFont &font );
75  void updateSize( double fontSize );
76  void updateStyle( const QString &fontStyle );
77  void updateFontMerging( bool enable );
78  void updateColumns( int cols );
79  void setCharacter( QChar character );
80 
81  signals:
82  void characterSelected( QChar character );
83 
84  protected:
85  void mouseMoveEvent( QMouseEvent *event ) override;
86  void mousePressEvent( QMouseEvent *event ) override;
87  void paintEvent( QPaintEvent *event ) override;
88 
89  private:
90  QFont displayFont;
91  int columns;
92  int lastKey;
93  int squareSize;
94 };
96 
97 #endif
int getColumns() const
virtual void paintEvent(QPaintEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
int getSquareSize() const
virtual void mouseMoveEvent(QMouseEvent *event)
virtual QSize sizeHint() const