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 }