Entropy Piano Tuner  1.1.3 (documentation not yet complete)
An open-source experimental software for piano tuning by entropy minimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
graphicskeyitem.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright 2015 Haye Hinrichsen, Christoph Wick
3  *
4  * This file is part of Entropy Piano Tuner.
5  *
6  * Entropy Piano Tuner is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * Entropy Piano Tuner is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * Entropy Piano Tuner. If not, see http://www.gnu.org/licenses/.
18  *****************************************************************************/
19 
20 #ifndef GRAPHICSKEYITEM_H
21 #define GRAPHICSKEYITEM_H
22 
23 #include <QGraphicsRectItem>
24 #include <QPainterPath>
25 #include <QFont>
26 #include <array>
27 
29 
30 class GraphicsKeyItem : public QGraphicsRectItem
31 {
32 public:
33  static void initShapes(qreal b_w, qreal b_h, qreal w_w, qreal w_h);
34  static std::array<QPainterPath, piano::KC_COUNT> mKeyShapes;
35  static std::array<QRectF, piano::KC_COUNT> mKeyRects;
36 
38  static const int KC_BLACK = piano::KC_BLACK;
39  static const int KC_WHITE = piano::KC_WHITE;
40  static const int KC_COUNT = piano::KC_COUNT;
41 
42 public:
43  GraphicsKeyItem(KeyColor color, const QString &text, const QColor &textColor);
44 
45  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) override;
46  void setFont(const QFont &font) {mFont = font;}
47 
48 private:
50  const QString mText;
51  const QColor mTextColor;
52  QFont mFont;
53 };
54 
55 #endif // GRAPHICSKEYITEM_H
static const int KC_WHITE
static void initShapes(qreal b_w, qreal b_h, qreal w_w, qreal w_h)
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0) override
const KeyColor mKeyColor
static const int KC_COUNT
const QString mText
static std::array< QRectF, piano::KC_COUNT > mKeyRects
KeyColor
The KeyColor enum.
Definition: pianodefines.h:51
GraphicsKeyItem(KeyColor color, const QString &text, const QColor &textColor)
White key.
Definition: pianodefines.h:53
Black key.
Definition: pianodefines.h:52
void setFont(const QFont &font)
const QColor mTextColor
static const int KC_BLACK
static std::array< QPainterPath, piano::KC_COUNT > mKeyShapes