2
import "utils.js" as Utils
8
/*color : "#FF000000"*/
10
property int keyWidth : width / 10.5
11
property int keyHeight : 60
12
property int numKeyWidth : ( width - ( keyWidth * 1.1 ) ) / 10
13
property int numKeyHeight : 60
15
property bool useIKey_l : true
16
property Item pressedKey
17
property alias backspaceKey : key_backspace
19
/*keyWidth : 800 / 10 * 1.010*/
20
/*keyHeight : keyWidth * 0.975*/
25
function updateCandString() {
26
engine.updateCandidate( 0 )
27
key_5_6.candString = engine.getWord()
29
preedit.preeditCode = engine.getPreeditCode()
30
preedit.invaildCode = engine.getInvalidCode()
31
preedit.selectedWord = engine.getSelectedWord()
33
engine.updateCandidate( 1 )
34
key_3_4.candString = engine.getWord()
35
engine.updateCandidate( 2 )
36
key_7_8.candString = engine.getWord()
37
engine.updateCandidate( 3 )
38
key_9_0.candString = engine.getWord()
39
engine.updateCandidate( 4 )
40
key_1_2.candString = engine.getWord()
43
/*console.log( inputmethod.cursorRect.x, inputmethod.cursorRect.y, inputmethod.cursorRect.width, inputmethod.cursorRect.height)*/
44
inputmethod.sendCommit( engine.getSelectedWord() )
47
property bool needClearShift : false
48
property bool needClearAlt : false
49
function keyPress( key ) {
50
var keycode = key.keycode
51
if ( keycode == Utils.keycode_space ) {
52
if ( engine.getCodeLength() <= 0 ) {
53
if ( mask == Utils.keymask_null ) {
55
key_space.keepDown = true
56
mask = Utils.keymask_space
60
else if ( keycode == Utils.keycode_shift_l || keycode == Utils.keycode_shift_r ) {
61
if ( engine.getCodeLength() <= 0 ) {
62
if ( mask != Utils.keymask_shift ) {
64
key_shift_l.keepDown = true
65
key_shift_r.keepDown = true
66
mask = Utils.keymask_shift
72
else if ( keycode == Utils.keycode_alt_l || keycode == Utils.keycode_alt_r ) {
73
if ( engine.getCodeLength() <= 0 ) {
74
if ( mask != Utils.keymask_alt ) {
76
key_alt_l.keepDown = true
77
key_alt_r.keepDown = true
78
mask = Utils.keymask_alt
86
function clearMask() {
87
key_alt_l.keepDown = false
88
key_alt_r.keepDown = false
89
key_shift_l.keepDown = false
90
key_shift_r.keepDown = false
91
key_space.keepDown = false
92
mask = Utils.keymask_null
94
needClearShift = false
96
function switchMode() {
97
if ( mode == Utils.mode_CN ) {
98
if ( engine.getCodeLength() <= 0 ) {
102
else if ( mode == Utils.mode_EN ) {
106
function backspace() {
107
if ( !key_backspace.paused ) {
108
if ( engine.getSelectedWordLength() > 0 ) {
112
else if ( engine.getCodeLength() > 0 ) {
115
if ( engine.getCodeLength() <= 0 )
116
key_backspace.pauseAutoRepeat()
119
inputmethod.sendCommit( "\b" )
123
function keyRelease( key ) {
124
var keycode = key.keycode
125
var keysym = Utils.keysym[mode][keycode]
126
if ( keycode >= Utils.keycode_a && keycode <= Utils.keycode_z && mask == Utils.keymask_null ) {
127
/*engine.appendCode( keysym[mask][mode] )*/
128
if ( mode == Utils.mode_CN ) {
129
engine.appendCode( keysym[mask] )
133
inputmethod.sendCommit( keysym[mask] )
136
else if ( keycode == Utils.keycode_backspace ) {
139
else if ( keycode == Utils.keycode_shift_l ) {
140
if ( engine.getCodeLength() > 0 ) {
145
else if ( keycode == Utils.keycode_shift_r ) {
146
if ( engine.getCodeLength() > 0 ) {
151
else if ( keycode == Utils.keycode_alt_l ) {
152
if ( engine.getCodeLength() > 0 ) {
157
else if ( keycode == Utils.keycode_alt_r ) {
158
if ( engine.getCodeLength() > 0 ) {
163
else if ( keycode == Utils.keycode_enter ) {
164
if ( engine.getCodeLength() > 0 ) {
165
inputmethod.sendCommit( engine.getCode() )
170
inputmethod.sendCommit( "\n" )
173
else if ( keycode == Utils.keycode_space ) {
174
if ( engine.getCodeLength() > 0 ) {
177
if ( engine.getCodeLength() <= 0 && engine.getInvalidCodeLength() <= 0 && engine.getSelectedWordLength() > 0 ) {
183
inputmethod.sendCommit( keysym[mask] )
186
else if ( keycode >= Utils.keycode_0 && keycode <= Utils.keycode_9 ) {
187
if ( engine.getCodeLength() > 0 ) {
188
var index = keycode - Utils.keycode_0
189
index = Utils.candIndex[index]
190
engine.select( index )
192
if ( engine.getCodeLength() <= 0 && engine.getInvalidCodeLength() <= 0 && engine.getSelectedWordLength() > 0 ) {
198
inputmethod.sendCommit( keysym[mask] )
201
else if ( keycode != Utils.keycode_ctrl && keycode != Utils.keycode_alt_l && keycode != Utils.keycode_alt_r ) {
202
inputmethod.sendCommit( keysym[mask] )
205
if ( keycode == Utils.keycode_shift_l || keycode == Utils.keycode_shift_r ) {
206
if ( needClearShift ) {
208
/*needClearShift = false*/
211
/*needClearShift = true*/
213
else if ( keycode == Utils.keycode_alt_l || keycode == Utils.keycode_alt_r ) {
214
if ( needClearAlt ) {
216
/*needClearAlt = false*/
219
/*needClearAlt = true*/
223
/*if ( !needClearAlt && !needClearShift ) {*/
228
function keyExit( key ) {
231
/*tooltip.visible = false*/
232
/*console.log( "exit", key.keysym[0] )*/
234
function keyEnter( key ) {
235
/*console.log( "enter", key.keysym[0] )*/
239
function moveTooltip( key ) {
240
/*var keycode = key.keycode*/
241
/*var keysym = Utils.keysym[keycode]*/
242
if ( !key.keepDown ) {
243
var parent = key.parent
244
var pos = parent.mapToItem( tooltip.parent, key.x, key.y )
245
var x = pos.x + key.width / 2 - tooltip.width / 2
246
var y = pos.y - tooltip.height - keyHeight * 0.1
253
tooltip.text = key.text
261
/*anchors.fill : parent */
263
anchors.centerIn : parent
265
anchors.horizontalCenter : parent.horizontalCenter
266
CandKey { id : key_1_2 ; keycode_l : Utils.keycode_1 ; keycode_r : Utils.keycode_2 ; width : numKeyWidth * 2.0 ; height : numKeyHeight }
267
CandKey { id : key_3_4 ; keycode_l : Utils.keycode_3 ; keycode_r : Utils.keycode_4 ; width : numKeyWidth * 2.0 ; height : numKeyHeight }
268
CandKey { id : key_5_6 ; keycode_l : Utils.keycode_5 ; keycode_r : Utils.keycode_6 ; width : numKeyWidth * 2.0 ; height : numKeyHeight }
269
CandKey { id : key_7_8 ; keycode_l : Utils.keycode_7 ; keycode_r : Utils.keycode_8 ; width : numKeyWidth * 2.0 ; height : numKeyHeight }
270
CandKey { id : key_9_0 ; keycode_l : Utils.keycode_9 ; keycode_r : Utils.keycode_0 ; width : numKeyWidth * 2.0 ; height : numKeyHeight }
271
AutoRepeatKey { id : key_backspace ; keycode : Utils.keycode_backspace ; width : keyWidth * 1.1 ; height : numKeyHeight ; onRepeated : backspace() }
274
anchors.horizontalCenter : parent.horizontalCenter
275
/*Item { width : keyWidth * 0.25 ; height : keyHeight }*/
276
ProxyMouseArea { id : ikey_q ; width : keyWidth * 0.1 ; height : keyHeight }
277
Key { id : key_q ; keycode : Utils.keycode_q ; width : keyWidth ; height : keyHeight }
278
Key { id : key_w ; keycode : Utils.keycode_w ; width : keyWidth ; height : keyHeight }
279
Key { id : key_e ; keycode : Utils.keycode_e ; width : keyWidth ; height : keyHeight }
280
Key { id : key_r ; keycode : Utils.keycode_r ; width : keyWidth ; height : keyHeight }
281
Key { id : key_t ; keycode : Utils.keycode_t ; width : keyWidth ; height : keyHeight }
282
Key { id : key_y ; keycode : Utils.keycode_y ; width : keyWidth ; height : keyHeight }
283
Key { id : key_u ; keycode : Utils.keycode_u ; width : keyWidth ; height : keyHeight }
284
Key { id : key_i ; keycode : Utils.keycode_i ; width : keyWidth ; height : keyHeight }
285
Key { id : key_o ; keycode : Utils.keycode_o ; width : keyWidth ; height : keyHeight }
286
Key { id : key_p ; keycode : Utils.keycode_p ; width : keyWidth ; height : keyHeight }
287
ProxyMouseArea { id : ikey_p ; width : keyWidth * 0.5 ; height : keyHeight }
288
/*ProxyMouseArea { id : ikey_backspace ; width : keyWidth ; height : keyHeight }*/
291
anchors.horizontalCenter : parent.horizontalCenter
292
ProxyMouseArea { id : ikey_a ; width : keyWidth * 0.3 ; height : keyHeight }
293
Key { id : key_a ; keycode : Utils.keycode_a ; width : keyWidth ; height : keyHeight }
294
Key { id : key_s ; keycode : Utils.keycode_s ; width : keyWidth ; height : keyHeight }
295
Key { id : key_d ; keycode : Utils.keycode_d ; width : keyWidth ; height : keyHeight }
296
Key { id : key_f ; keycode : Utils.keycode_f ; width : keyWidth ; height : keyHeight }
297
Key { id : key_g ; keycode : Utils.keycode_g ; width : keyWidth ; height : keyHeight }
298
Key { id : key_h ; keycode : Utils.keycode_h ; width : keyWidth ; height : keyHeight }
299
Key { id : key_j ; keycode : Utils.keycode_j ; width : keyWidth ; height : keyHeight }
300
Key { id : key_k ; keycode : Utils.keycode_k ; width : keyWidth ; height : keyHeight }
301
Key { id : key_l ; keycode : Utils.keycode_l ; width : keyWidth ; height : keyHeight }
302
Key { id : key_enter ; keycode : Utils.keycode_enter ; width : keyWidth * 1.2 ; height : keyHeight }
305
anchors.horizontalCenter : parent.horizontalCenter
306
ProxyMouseArea { id : ikey_shift_l ; width : keyWidth * 0.75 ; height : keyHeight }
307
Key { id : key_z ; keycode : Utils.keycode_z ; width : keyWidth ; height : keyHeight }
308
Key { id : key_x ; keycode : Utils.keycode_x ; width : keyWidth ; height : keyHeight }
309
Key { id : key_c ; keycode : Utils.keycode_c ; width : keyWidth ; height : keyHeight }
310
Key { id : key_v ; keycode : Utils.keycode_v ; width : keyWidth ; height : keyHeight }
311
Key { id : key_b ; keycode : Utils.keycode_b ; width : keyWidth ; height : keyHeight }
312
Key { id : key_n ; keycode : Utils.keycode_n ; width : keyWidth ; height : keyHeight }
313
Key { id : key_m ; keycode : Utils.keycode_m ; width : keyWidth ; height : keyHeight }
314
Key { id : key_comma ; keycode : Utils.keycode_comma ; width : keyWidth ; height : keyHeight }
315
Key { id : key_dot ; keycode : Utils.keycode_dot ; width : keyWidth ; height : keyHeight }
316
ProxyMouseArea { id : ikey_shift_r ; width : keyWidth * 0.75 ; height : keyHeight }
319
anchors.horizontalCenter : parent.horizontalCenter
320
Key { id : key_shift_l ; keycode : Utils.keycode_shift_l ; width : keyWidth * 1.75 ; height : keyHeight }
321
ProxyMouseArea { id : ikey_shift_l_2 ; width : keyWidth * 0.25 ; height : keyHeight }
322
Key { id : key_alt_l ; keycode : Utils.keycode_alt_l ; width : keyWidth * 1.5 ; height : keyHeight }
323
ProxyMouseArea { id : ikey_alt_l ; width : keyWidth * 0.25 ; height : keyHeight }
324
Key { id : key_space ; keycode : Utils.keycode_space ; width : keyWidth * 3.0 ; height : keyHeight }
325
ProxyMouseArea { id : ikey_alt_r ; width : keyWidth * 0.25 ; height : keyHeight }
326
Key { id : key_alt_r ; keycode : Utils.keycode_alt_r ; width : keyWidth * 1.5 ; height : keyHeight }
327
ProxyMouseArea { id : ikey_shift_r_2 ; width : keyWidth * 0.25 ; height : keyHeight }
328
Key { id : key_shift_r ; keycode : Utils.keycode_shift_r ; width : keyWidth * 1.75 ; height : keyHeight }
332
id : ikey_l ; width : keyWidth * 0.35 ; height : keyHeight
333
x : key_l.x + key_l.parent.x + key_l.parent.parent.x + key_l.width
334
y : key_l.y + key_l.parent.y + key_l.parent.parent.y
338
Component.onCompleted : {
339
ikey_a.target = key_a
341
ikey_l.target = key_l
343
ikey_l.target = key_enter
344
ikey_p.target = key_p
345
ikey_shift_l.target = key_shift_l
346
ikey_shift_r.target = key_shift_r
347
ikey_shift_l_2.target = key_shift_l
348
ikey_shift_r_2.target = key_shift_r
349
ikey_alt_l.target = key_alt_l
350
ikey_alt_r.target = key_alt_r