Warning, /games/kbreakout/src/qml/TextItem.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2012 Viranch Mehta <viranch.mehta@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick 2.3
0008 import org.kde.games.core 0.1 as KgCore
0009 import "globals.js" as Globals
0010 
0011 CanvasItem {
0012     id: item
0013     spriteKey: "Display"
0014     property alias text: textItem.text
0015     property int fontSize
0016 
0017     Text {
0018         id: textItem
0019         anchors.centerIn: parent
0020         opacity: 220/256
0021         font { bold: true; family: "Helvetica"; pixelSize: fontSize*m_scale }
0022         color: "white"
0023     }
0024 
0025     onTextChanged: updateFontSize();
0026     Component.onCompleted: updateTimer.start();
0027 
0028     Timer {
0029         id: updateTimer
0030         interval: 1
0031         onTriggered: updateFontSize();
0032     }
0033 
0034     function updateFontSize() {
0035         opacity = 0;
0036         fontSize = 72/m_scale;
0037 
0038         var w = item.width*0.8;
0039         var h = item.height;
0040         while (textItem.width > w || textItem.height > h) {
0041             var size = Math.min(w * fontSize / textItem.width, h * fontSize / textItem.height);
0042             size = Math.floor(size);
0043             if (size == fontSize) {
0044                 break;
0045             } else {
0046                 fontSize = size;
0047             }
0048         }
0049 
0050         opacity = 1;
0051     }
0052 }