Warning, /education/gcompris/src/activities/braille_alphabets/BrailleMap.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - BrailleMap.qml 0002 * 0003 * SPDX-FileCopyrightText: 2014 Arkit Vora <arkitvora123@gmail.com> 0004 * 0005 * Authors: 0006 * Srishti Sethi <srishakatux@gmail.com> (GTK+ version) 0007 * Arkit Vora <arkitvora123@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 import "../../core" 0014 import "braille_alphabets.js" as Activity 0015 0016 Rectangle { 0017 id: brailleMap 0018 color: "#808080" 0019 z: 1000 0020 property bool isDialog: true 0021 signal close 0022 signal start 0023 signal stop 0024 0025 Keys.onPressed: { 0026 if(event.key === Qt.Key_Space || event.key === Qt.Key_Escape) { 0027 close(); 0028 } 0029 } 0030 0031 onStart: { 0032 brailleMap.forceActiveFocus(); 0033 activity.Keys.enabled = false; 0034 } 0035 0036 onClose: { 0037 activity.Keys.enabled = true; 0038 activity.forceActiveFocus(); 0039 } 0040 0041 // The back button 0042 Image { 0043 id: cancel 0044 source: Activity.url + "back.svg" 0045 fillMode: Image.PreserveAspectFit 0046 anchors.right: parent.right 0047 anchors.top: parent.top 0048 smooth: true 0049 sourceSize.width: 60 * ApplicationInfo.ratio 0050 anchors.margins: 10 0051 SequentialAnimation { 0052 id: anim 0053 running: true 0054 loops: Animation.Infinite 0055 NumberAnimation { 0056 target: cancel 0057 property: "rotation" 0058 from: -10; to: 10 0059 duration: 500 0060 easing.type: Easing.InOutQuad 0061 } 0062 NumberAnimation { 0063 target: cancel 0064 property: "rotation" 0065 from: 10; to: -10 0066 duration: 500 0067 easing.type: Easing.InOutQuad 0068 } 0069 } 0070 MouseArea { 0071 anchors.fill: parent 0072 onClicked: close() 0073 } 0074 } 0075 0076 Flickable { 0077 id: flick 0078 anchors.top: cancel.bottom 0079 anchors.bottom: parent.bottom 0080 anchors.left: parent.left 0081 anchors.right: parent.right 0082 contentWidth: parent.width 0083 contentHeight: (grid1.height + grid2.height) * 1.1 0084 flickableDirection: Flickable.VerticalFlick 0085 clip: true 0086 0087 Flow { 0088 id: grid1 0089 width: parent.width * 0.9 0090 anchors { 0091 top: parent.top 0092 topMargin: 10 * ApplicationInfo.ratio 0093 horizontalCenter: parent.horizontalCenter 0094 } 0095 spacing: 5 * ApplicationInfo.ratio 0096 0097 Repeater { 0098 id: cardRepeater 0099 model: [ 0100 "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 0101 "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", 0102 "U", "V", "X", "Y", "Z", "", "", "", "", "W" 0103 ] 0104 0105 Column { 0106 width: (grid1.width - grid1.spacing * 10) / 10 0107 0108 Rectangle { 0109 id: rect1 0110 width: parent.width 0111 height: ins.height 0112 border.width: ins.thinBorder 0113 border.color: "#373737" 0114 color: "#f0f0f0" 0115 opacity: modelData != "" ? 1 : 0 0116 0117 BrailleChar { 0118 id: ins 0119 width: parent.width * 0.9 0120 anchors.centerIn: parent 0121 clickable: false 0122 brailleChar: modelData 0123 } 0124 } 0125 GCText { 0126 id: text1 0127 text: modelData 0128 font.weight: Font.DemiBold 0129 style: Text.Outline 0130 styleColor: "#373737" 0131 color: "white" 0132 fontSize: Math.max(Math.min(parent.width * 0.2, 24), 12) 0133 anchors { 0134 horizontalCenter: parent.horizontalCenter 0135 } 0136 } 0137 } 0138 } 0139 } 0140 0141 Flow { 0142 id: grid2 0143 width : parent.width * 0.9 0144 anchors { 0145 horizontalCenter: parent.horizontalCenter 0146 top: grid1.bottom 0147 topMargin: 10 * ApplicationInfo.ratio 0148 } 0149 spacing: 6 0150 0151 Repeater { 0152 id: cardRepeater2 0153 model: [ 0154 "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", 0155 "+", "-", "*", "/", "#" 0156 ] 0157 0158 Column { 0159 width: (grid1.width - grid1.spacing * 10) / 10 0160 0161 Rectangle { 0162 id: rect2 0163 width: parent.width 0164 height: ins2.height 0165 border.width: 3 0166 border.color: "black" 0167 color: "white" 0168 0169 BrailleChar { 0170 id: ins2 0171 width: parent.width * 0.9 0172 anchors.centerIn: parent 0173 clickable: false 0174 brailleChar: modelData 0175 } 0176 } 0177 GCText { 0178 id: text2 0179 text: modelData 0180 font.weight: Font.DemiBold 0181 style: Text.Outline 0182 styleColor: "black" 0183 color: "white" 0184 fontSize: Math.max(Math.min(parent.width * 0.2, 24), 12) 0185 anchors { 0186 horizontalCenter: parent.horizontalCenter 0187 } 0188 } 0189 } 0190 } 0191 } 0192 } 0193 }