Warning, /education/gcompris/src/activities/digital_electricity/components/SevenSegment.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - SevenSegment.qml
0002 *
0003 * SPDX-FileCopyrightText: 2016 Pulkit Gupta <pulkitnsit@gmail.com>
0004 *
0005 * Authors:
0006 * Bruno Coudoin <bruno.coudoin@gcompris.net> (GTK+ version)
0007 * Pulkit Gupta <pulkitnsit@gmail.com> (Qt Quick port)
0008 *
0009 * SPDX-License-Identifier: GPL-3.0-or-later
0010 */
0011 import QtQuick 2.12
0012 import GCompris 1.0
0013
0014 import "../digital_electricity.js" as Activity
0015
0016 ElectricalComponent {
0017 id: sevenSegmentDisplay
0018 terminalSize: 0.125
0019 noOfInputs: 7
0020 noOfOutputs: 0
0021 property var inputTerminalPosY: [0.066, 0.211, 0.355, 0.5, 0.645, 0.789, 0.934]
0022 property var redBars: ["sevenSegmentDisplayA.svg","sevenSegmentDisplayB.svg","sevenSegmentDisplayC.svg",
0023 "sevenSegmentDisplayD.svg","sevenSegmentDisplayE.svg","sevenSegmentDisplayF.svg",
0024 "sevenSegmentDisplayG.svg"]
0025
0026 information: qsTr("A 7 segment display takes 7 binary inputs. The display " +
0027 "consists of 7 segments and each segment is lighted according to the input. " +
0028 "By generating different combinations of binary inputs, the display can be used to " +
0029 "display numbers from 0 to 9 and a few letters. The diagram is:")
0030
0031 property string infoImageSrc: "7SegmentDisplay.svg"
0032
0033 property alias inputTerminals: inputTerminals
0034
0035 Repeater {
0036 id: inputTerminals
0037 model: 7
0038 delegate: inputTerminal
0039 Component {
0040 id: inputTerminal
0041 TerminalPoint {
0042 posX: 0.06
0043 posY: inputTerminalPosY[index]
0044 type: "In"
0045 }
0046 }
0047 }
0048
0049 function updateOutput(wireVisited) {
0050 for(var i = 0 ; i < noOfInputs ; ++i) {
0051 if(inputTerminals.itemAt(i).value == 1)
0052 outputBar.itemAt(i).visible = true;
0053 else
0054 outputBar.itemAt(i).visible = false;
0055 }
0056 }
0057
0058 Repeater {
0059 id: outputBar
0060 model: 7
0061 delegate: outputBarImages
0062 Component {
0063 id: outputBarImages
0064 Image {
0065 source: Activity.url + redBars[index]
0066 visible: false //code[0] == 1
0067 anchors.centerIn: parent
0068 height: parent.height
0069 width: parent.width
0070 fillMode: Image.PreserveAspectFit
0071 mipmap: true
0072 antialiasing: true
0073 }
0074 }
0075 }
0076 }