Warning, /education/gcompris/src/core/GCText.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - GCText.qml
0002 *
0003 * SPDX-FileCopyrightText: 2014 Johnny Jazeix <jazeix@gmail.com>
0004 *
0005 * Authors:
0006 * Johnny Jazeix <jazeix@gmail.com>
0007 * Holger Kaelberer <holger.k@elberer.de>
0008 *
0009 * SPDX-License-Identifier: GPL-3.0-or-later
0010 */
0011 import QtQuick 2.12
0012 import GCompris 1.0
0013 import "."
0014
0015 /**
0016 * A QML component unifying text presentation in GCompris.
0017 * @ingroup components
0018 *
0019 * GCText wraps QtQuick's Text to provide
0020 *
0021 * (1) a uniform font-family,<br/>
0022 * (2) DPI based automatic font-scaling and<br/>
0023 * (3) application-wide manual font-sizing.<br/>
0024 *
0025 * Activities should almost always use the @ref fontSize property to
0026 * define font sizes, it implements both (2) and (3). <b>Do not</b> set
0027 * @c font.pointSize directly, or GCText's automatic scaling will be
0028 * deactivated. If you really need to enforce a fixed font size (which
0029 * might be the case for dialogs) use the fixFontSize property.
0030 *
0031 * The xxxSize properties are meant to be enum-like values for often needed
0032 * font sizes. (QtQuick does not support enum definitions on QML layer, cf.
0033 * Qt issue #14861.)
0034 *
0035 * @inherit QtQuick.Text
0036 * @sa GCSingletonFontLoader
0037 */
0038 Text {
0039 /**
0040 * type:int
0041 * Tiny font-size.
0042 * Value: 10
0043 */
0044 readonly property int tinySize: 10.0
0045
0046 /**
0047 * type:int
0048 * Small font-size.
0049 * Value: 12
0050 */
0051 readonly property int smallSize: 12.0
0052
0053 /**
0054 * type:int
0055 * Regular font-size.
0056 * Value: 14
0057 */
0058 readonly property int regularSize: 14.0
0059
0060 /**
0061 * type:int
0062 * Medium font-size.
0063 * Value: 16
0064 */
0065 readonly property int mediumSize: 16.0
0066
0067 /**
0068 * type:int
0069 * Large font-size.
0070 * Value: 24
0071 */
0072 readonly property int largeSize: 24.0
0073
0074 /**
0075 * type:int
0076 * Huge font-size.
0077 * Value: 32
0078 */
0079 readonly property int hugeSize: 32.0
0080
0081 /**
0082 * type:bool
0083 * Whether to not apply ApplicationSettings.baseFontSize.
0084 *
0085 * Set to true if you don't want to scale fonts. Used in some rare cases
0086 * like for dialogs.
0087 */
0088 property bool fixFontSize: false
0089
0090 /**
0091 * type:int
0092 * Font size wrapping font.pointSize and applying font-scaling.
0093 *
0094 * Font-sizes are best specified using the fontSize property, which
0095 * wraps font.pointSize to take the DPI of the display into account.
0096 * If font.pointSize is used directly text might appear to small on some
0097 * devices.
0098 *
0099 * If you really need to specify font.pixelSize instead of pointSize,
0100 * you need to clear font.pointSize explicitly with NaN:
0101 *
0102 * @code
0103 * font.pointSize: NaN
0104 * @endcode
0105 *
0106 * Default is 14.
0107 */
0108 property int fontSize: 14
0109
0110 /**
0111 * type:int
0112 * Read only value of the calculated pointSize
0113 */
0114 readonly property int pointSize: font.pointSize
0115
0116 font.pointSize: ((fixFontSize ? 0 : ApplicationSettings.baseFontSize)
0117 + fontSize) * ApplicationInfo.fontRatio
0118 font.family: GCSingletonFontLoader.fontLoader.name
0119 font.capitalization: ApplicationSettings.fontCapitalization
0120 font.letterSpacing: ApplicationSettings.fontLetterSpacing
0121 color: "#191919"
0122 }