File indexing completed on 2024-04-14 04:02:11

0001 /*
0002     SPDX-FileCopyrightText: 2008 Ian Wadham <iandw.au@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "scenelabel.h"
0008 
0009 #include "kbkglobal.h"
0010 
0011 #include <QFontMetrics>
0012 #include <QOpenGLWidget>
0013 #include <QPainter>
0014 
0015 SceneLabel::SceneLabel (const QString & labelText)
0016 {
0017     font.setPointSize (12);
0018     font.setWeight (QFont::Bold);
0019 
0020     visible     = true;
0021     x           = 0;
0022     y           = 0;
0023     setText (labelText);
0024 }
0025 
0026 
0027 void SceneLabel::setVisible (const bool onOff)
0028 {
0029     visible     = onOff;
0030 }
0031 
0032 
0033 void SceneLabel::move (const int posX, const int posY)
0034 {
0035     x           = posX;
0036     y           = posY;
0037 }
0038 
0039 
0040 void SceneLabel::setText (const QString & labelText)
0041 {
0042     QFontMetrics metrics (font);
0043 
0044     text        = labelText;
0045     textWidth   = metrics.boundingRect(text).width();
0046     lineHeight  = metrics.lineSpacing();
0047 }
0048 
0049 
0050 void SceneLabel::drawLabel (QOpenGLWidget * view)
0051 {
0052     if (!visible) {
0053         return;
0054     }
0055 
0056     QPainter painter(view);
0057     painter.setFont(font);
0058     painter.setPen(Qt::white);
0059     painter.drawText(x, y, text);
0060     painter.end();
0061 }
0062 
0063 
0064 int SceneLabel::width() const
0065 {
0066     return textWidth;
0067 }
0068 
0069 
0070 int SceneLabel::height() const
0071 {
0072     return lineHeight;
0073 }