javauis/lcdui_qt/src/javax/microedition/lcdui/CanvasKeypad.java
author hgs
Mon, 04 Oct 2010 11:29:25 +0300
changeset 78 71ad690e91f5
parent 57 59b3b4473dc8
permissions -rw-r--r--
v2.2.17_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     3
 * All rights reserved.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     4
 * This component and the accompanying materials are made available
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     6
 * which accompanies this distribution, and is available
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     8
 *
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
     9
 * Initial Contributors:
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    10
 * Nokia Corporation - initial contribution.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    11
 *
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    12
 * Contributors:
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    13
 *
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    14
 * Description:
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    15
 *
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    16
 */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
package javax.microedition.lcdui;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
import java.util.Timer;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
import java.util.TimerTask;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
import org.eclipse.swt.SWT;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
import org.eclipse.swt.events.*;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
import org.eclipse.swt.widgets.*;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
import org.eclipse.swt.widgets.Display;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
import org.eclipse.swt.graphics.*;
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    27
import org.eclipse.swt.internal.extension.ImageUtil;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
import org.eclipse.swt.internal.qt.*;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
import org.eclipse.swt.layout.FormAttachment;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
import org.eclipse.swt.layout.FormData;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
import org.eclipse.swt.layout.FormLayout;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    34
/**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    35
 * The CanvasKeypad class is designed to generate the on screen keypad and
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    36
 * handle graphical operations as well as low-level pointer events. CanvasKeypad
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    37
 * maps the pointer events to key events that are needed by the Canvas.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    38
 * 
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    39
 */
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
    40
final class CanvasKeypad implements MouseListener, MouseMoveListener
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    41
{
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    43
     * Constant for <code>UP</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    44
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    private static final int UP = -1;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    48
     * Constant for <code>DOWN</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    49
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
    private static final int DOWN = -2;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    53
     * Constant for <code>LEFT</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    54
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
    private static final int LEFT = -3;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    58
     * Constant for <code>RIGHT</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    59
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    private static final int RIGHT = -4;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    63
     * Constant for <code>FIRE</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    64
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
    private static final int FIRE = -5;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    66
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    68
     * Constant for <code>SLK</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    69
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    private static final int SLK = -6;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    71
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    73
     * Constant for <code>SRK</code> game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    74
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
    private static final int SRK = -7;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    78
     * Constant for general "<code>A</code>" game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    79
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    private static final int GAME_A = 55;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    83
     * Constant for general "<code>B</code>" game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    84
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
    private static final int GAME_B = 57;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    88
     * Constant for general "<code>C</code>" game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    89
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
    private static final int GAME_C = 42;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    93
     * Constant for general "<code>D</code>" game action.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    94
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    private static final int GAME_D = 35;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    96
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    98
     * Constant for general invalid key code.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
    99
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    private static final int INVALID_CODE = -99;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   101
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   102
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   103
     * Constant for long keypress timeout.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   104
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    private static final int KEYREPEAT_INTERVAL = 500;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   106
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   107
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   108
     * Alpha value of a transparent pixel.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   109
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   110
    private static final int TRANSPARENT = 0;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   112
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   113
     * Keypad and game keys composites.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   114
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    private Composite keypadComposite;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    private Composite gameKeysComposite;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    private Canvas canvas;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   118
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   119
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   120
     * CSS engine instance
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   121
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   122
    private BaseCSSEngine cssEngine;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   123
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   124
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   125
     * Canvas keypad buttons.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   126
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   127
    private Label center;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   128
    private Label up;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   129
    private Label down;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   130
    private Label left;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   131
    private Label right;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   132
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   133
    private org.eclipse.swt.graphics.Image center_normal;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   134
    private org.eclipse.swt.graphics.Image center_pressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   135
    private org.eclipse.swt.graphics.Image left_normal;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   136
    private org.eclipse.swt.graphics.Image left_pressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   137
    private org.eclipse.swt.graphics.Image right_normal;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   138
    private org.eclipse.swt.graphics.Image right_pressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   139
    private org.eclipse.swt.graphics.Image up_normal;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   140
    private org.eclipse.swt.graphics.Image up_pressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   141
    private org.eclipse.swt.graphics.Image down_normal;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   142
    private org.eclipse.swt.graphics.Image down_pressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   143
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   144
    private ImageData center_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   145
    private ImageData left_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   146
    private ImageData right_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   147
    private ImageData up_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   148
    private ImageData down_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   149
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   150
    private ImageData pressedKeyData;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   151
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
    private Button skright;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
    private Button skleft;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
    private Button gameA;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
    private Button gameB;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    private Button gameC;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    private Button gameD;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   158
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   159
    private Display display;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   160
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    private int keyPressed;
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   162
    private Label rockerKeyPressed;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   163
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   164
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   165
     * Timer for handling long key press and mouse move events.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   166
     */
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    private Timer timer = new Timer();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    private CanvasKeypadTimerTask timerTask;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   169
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   170
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   171
     * Path of the osk graphics
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   172
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   173
    private static final String RESOURCE_PATH = "c:/data/images/";
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   174
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   175
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   176
     * Offset on the composite in pixels where the osk rocker keys are layed
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   177
     * out.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   178
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   179
    private int image_offset;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   180
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   181
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   182
     * Constructs a canvas kepad based on the JAD attribute
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   183
     * 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   184
     * @param canvas
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   185
     *            - canvas for which the keypad is required.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   186
     * @param mode
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   187
     *            - the jad attribute as a string.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   188
     */
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   189
    CanvasKeypad(Canvas canvas, String mode)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   190
    {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   191
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   192
        this.canvas = canvas;
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   193
        display = ESWTUIThreadRunner.getInstance().getDisplay();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   194
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   195
        cssEngine = new BaseCSSEngine(display);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   196
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   197
        // Load the images
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   198
        center_normal = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_normal_c");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   199
        center_pressed = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_pressed_c");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   200
        left_normal = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_normal_l");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   201
        left_pressed = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_pressed_l");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   202
        right_normal = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_normal_r");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   203
        right_pressed = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_pressed_r");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   204
        up_normal = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_normal_t");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   205
        up_pressed = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_pressed_t");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   206
        down_normal = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_normal_b");
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   207
        down_pressed = ImageUtil.createImageFromTheme(display, "qtg_fr_rocker_pressed_b");
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   208
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   209
        image_offset = (display.getBounds().width / 2) - (center_normal.getBounds().width / 2);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   210
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   211
        // Load image data required to determine the osk button pressed on mouse events
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   212
        center_data = center_normal.getImageData();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   213
        left_data = left_normal.getImageData();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   214
        right_data = right_normal.getImageData();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   215
        up_data = up_normal.getImageData();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   216
        down_data = down_normal.getImageData();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   217
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   218
        // Set form layout for the shell containing the canvas.
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
        canvas.getShell().setLayout(new FormLayout());
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   220
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   221
        // Create the Navigation keypad
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
        createNavKeypad();
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   223
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   224
        // Check if game keys are needed
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   225
        if (mode.equalsIgnoreCase("gameactions"))
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   226
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
            createGamePad();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   229
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   230
        // Layout the game keys, navigation keys and the canvas composites on
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   231
        // the shell using form layout
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
        FormData canvasData = new FormData();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
        canvasData.right = new FormAttachment(100);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
        canvasData.left = new FormAttachment(0);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
        canvasData.top = new FormAttachment(0);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
        canvasData.bottom = new FormAttachment(keypadComposite);
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   237
        canvas.getContentComp().setLayoutData(canvasData);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   238
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
        FormData navKeyData = new FormData();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
        navKeyData.right = new FormAttachment(100);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
        navKeyData.left = new FormAttachment(0);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   242
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   243
        if (gameKeysComposite != null)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   244
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   245
            // Game keypad was created above, so layout the game keys.
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
            navKeyData.bottom = new FormAttachment(gameKeysComposite);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   247
        }
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   248
        else
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   249
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   250
            // Game keys are not needed
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
            navKeyData.bottom = new FormAttachment(100);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
        }
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   253
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
        keypadComposite.setLayoutData(navKeyData);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   255
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   256
        if (gameKeysComposite != null)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   257
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   258
            // Game keys were created, layout the game keys
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
            FormData gameKeyData = new FormData();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
            gameKeyData.right = new FormAttachment(100);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
            gameKeyData.left = new FormAttachment(0);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
            gameKeyData.bottom = new FormAttachment(100);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
            gameKeysComposite.setLayoutData(gameKeyData);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   265
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
        canvas.getShell().layout();
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   267
    }
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   268
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   270
     * creates the navigation keypad - the directional keys and selctio key.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   271
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   272
    private void createNavKeypad()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   273
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   274
        // Create the navigation key composite
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
        keypadComposite = new Composite(canvas.getShell(), SWT.NONE);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   276
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   277
        center = new Label(keypadComposite, SWT.NONE);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   278
        left = new Label(keypadComposite, SWT.NONE);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   279
        right = new Label(keypadComposite, SWT.NONE);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   280
        up = new Label(keypadComposite, SWT.NONE);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   281
        down = new Label(keypadComposite, SWT.NONE);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   283
        center.setImage(center_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   284
        center.pack();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   285
        left.setImage(left_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   286
        left.pack();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   287
        right.setImage(right_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   288
        right.pack();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   289
        up.setImage(up_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   290
        up.pack();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   291
        down.setImage(down_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   292
        down.pack();
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   293
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   294
        // layout the navigation keys
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
        keypadComposite.setLayout(new FormLayout());
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   296
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   297
        FormData navkeysFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   298
        navkeysFormData.top = new FormAttachment(0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   299
        navkeysFormData.left = new FormAttachment(0, image_offset);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   300
        center.setLayoutData(navkeysFormData);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   301
        left.setLayoutData(navkeysFormData);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   302
        right.setLayoutData(navkeysFormData);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   303
        up.setLayoutData(navkeysFormData);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   304
        down.setLayoutData(navkeysFormData);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   305
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   306
        keypadComposite.pack(); // will also layout
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   307
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   308
        // The down Label will catch all mouse down events as it is covering
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   309
        // all other rocker Labels, with the assumption that they all have 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   310
        // the same bounds!
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   311
        down.addMouseListener(this);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   312
        down.addMouseMoveListener(this);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   313
        
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   314
        // We want to catch all drag events occurring on top of the rocker 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   315
        // including those starting outside. 
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   316
        keypadComposite.addMouseListener(this);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   317
        keypadComposite.addMouseMoveListener(this);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   319
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   321
     * creates the game keypad - the game action keys A, B, C and D.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   322
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   323
    private void createGamePad()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   324
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   325
        // create the game pad composite
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
        gameKeysComposite = new Composite(canvas.getShell(), SWT.NONE);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
        gameKeysComposite.setLayout(new FormLayout());
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   328
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   329
        // Add the game buttons
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
        gameA = new Button(gameKeysComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   331
        gameA.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   332
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   333
        gameB = new Button(gameKeysComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   334
        gameB.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   335
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   336
        gameC = new Button(gameKeysComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   337
        gameC.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   338
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   339
        gameD = new Button(gameKeysComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   340
        gameD.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   341
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   342
        // Set the game key style sheets
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   343
        cssEngine.applyCSS(gameA, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   344
            + "border-style: outset;" + "border-width: 1px; " + "border-color: black;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   345
            + "border-radius: 2px;" + "font: bold 14px;" + "min-height: 2em;" + "min-width: 5.1em;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   346
            + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   347
            + "QPushButton:pressed { border-style: inset;" + "}");
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   348
        cssEngine.applyCSS(gameB, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   349
            + "border-style: outset;" + "border-width: 1px; " + "border-color: black;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   350
            + "border-radius: 2px;" + "font: bold 14px;" + "min-height: 2em;" + "min-width: 5.1em;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   351
            + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   352
            + "QPushButton:pressed { border-style: inset;" + "}");
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   353
        cssEngine.applyCSS(gameC, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   354
            + "border-style: outset;" + "border-width: 1px; " + "border-color: black;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   355
            + "border-radius: 2px;" + "font: bold 14px;" + "min-height: 2em;" + "min-width: 5.1em;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   356
            + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   357
            + "QPushButton:pressed { border-style: inset;" + "}");
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   358
        cssEngine.applyCSS(gameD, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   359
            + "border-style: outset;" + "border-width: 1px; " + "border-color: black;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   360
            + "border-radius: 2px;" + "font: bold 14px;" + "min-height: 2em;" + "min-width: 5.1em;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   361
            + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   362
            + "QPushButton:pressed { border-style: inset;" + "}");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   363
            
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   364
        gameA.setText("A");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   365
		    gameB.setText("B");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   366
		    gameC.setText("C");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   367
		    gameD.setText("D");
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   368
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   369
        // layout the game Keys
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
        FormData gameAFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   371
        gameAFormData.bottom = new FormAttachment(100, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   372
        gameAFormData.left = new FormAttachment(0, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   373
        gameA.setLayoutData(gameAFormData);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   375
        FormData gameBFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   376
        gameBFormData.bottom = new FormAttachment(100, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   377
        gameBFormData.left = new FormAttachment(gameA, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   378
        gameB.setLayoutData(gameBFormData);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   379
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   380
        FormData gameCFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   381
        gameCFormData.bottom = new FormAttachment(100, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   382
        gameCFormData.left = new FormAttachment(gameB, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   383
        gameC.setLayoutData(gameCFormData);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   384
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   385
        FormData gameDFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   386
        gameDFormData.bottom = new FormAttachment(100, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   387
        gameDFormData.left = new FormAttachment(gameC, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   388
        gameD.setLayoutData(gameDFormData);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   389
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
        gameKeysComposite.layout();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   392
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   394
     * Handles orientation changes.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   395
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   396
    void handleOrientationChange(int mode)
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   397
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   398
        // change the layout as per orientation mode
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   400
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   401
    /**
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   402
     * Sets the currect Canvas for Key events.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   403
     * 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   404
     * @param canvas
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   405
     *            - Current Canvas to which the key events needs to be
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   406
     *            delivered.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   407
     */
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   408
    void setCurrentCanvas(Canvas canvas)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   409
    {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   410
        this.canvas = canvas;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   411
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   412
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   414
     * Adds LSk and RSK keys to navigation keypad if the canvas is set to full
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   415
     * screen mode.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   416
     * 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   417
     * @param mode
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   418
     *            - Indicates if the canvas is in fullscreen mode or not. True
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   419
     *            if fullscreen, False otherwise.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   420
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   421
    void setFullScreenMode(boolean mode)
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   422
    {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   423
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   424
        // add the soft keys if the canvas is set to full screen mode/remove
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   425
        // otherwise
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   426
        if (mode == true)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   427
        {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   428
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   429
            if (keypadComposite != null)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   430
            {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   431
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   432
                Color black = display.getSystemColor(SWT.COLOR_BLACK);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   433
                keypadComposite.setBackground(black);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   434
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
                skright = new Button(keypadComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   436
                skright.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   437
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
                skleft = new Button(keypadComposite, SWT.PUSH);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   439
                skleft.addMouseListener(this);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   440
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   441
                // Set the style sheet
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   442
                cssEngine.applyCSS(skright, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   443
                    + "border-style: outset;" + "border-width: 1px; "
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   444
                    + "border-bottom-left-radius: 22px;" + "border-color: black;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   445
                    + "font: bold 14px;" + "min-width: 3em;" + "min-height: 2em;" + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   446
                    + "QPushButton:pressed { border-style: inset;" + "}");
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   448
                cssEngine.applyCSS(skleft, "QPushButton" + "{" + "background-color:white;"
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   449
                    + "border-style: outset;" + "border-width: 1px; "
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   450
                    + "border-bottom-right-radius: 22px;" + "border-color: black;"
78
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   451
                    + "font: bold 14px;" + "min-width: 3em;" + "min-height: 2em;" + "}"
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   452
                    + "QPushButton:pressed { border-style: inset;" + "}");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   453
                    
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   454
                skleft.setText("LSK");
71ad690e91f5 v2.2.17_1
hgs
parents: 57
diff changeset
   455
                skright.setText("RSK");
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   456
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
                FormData sklFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   458
                sklFormData.top = new FormAttachment(0, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   459
                sklFormData.left = new FormAttachment(0, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   460
                skleft.setLayoutData(sklFormData);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   461
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   462
                FormData skrFormData = new FormData();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   463
                skrFormData.top = new FormAttachment(0, 0);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   464
                skrFormData.right = new FormAttachment(100, 0);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   465
                skright.setLayoutData(skrFormData);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   466
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
                keypadComposite.layout();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
            }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   470
        else
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   471
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   472
            // LSK and RSK buttons are not needed, remove the buttons from
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   473
            // navigation keypad
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   474
            if (skright != null)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
                skright.dispose();
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   476
            if (skleft != null)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
                skleft.dispose();
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   478
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   479
            keypadComposite.setBackground(null);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   481
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   485
     * returns the height of the canvas keypad in pixels.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   486
     * 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   487
     * @return Height of the canvas keypad in pixels.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   488
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   489
    int getHeight()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   490
    {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   491
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
        int navKeyPadHeight = 0;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
        int gameKeyPadHeight = 0;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   494
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   495
        if (keypadComposite != null)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   496
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   497
            // calculate the navigation keypad height
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
            navKeyPadHeight = keypadComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   500
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   501
        if (gameKeysComposite != null)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   502
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   503
            // calculate the game keypad height
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
            gameKeyPadHeight = gameKeysComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   506
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   507
        // return the total height
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
        return (navKeyPadHeight + gameKeyPadHeight);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   510
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   512
     * returns the keycode corresponding to the canvas keypad button.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   513
     * 
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   514
     * @return keycode.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   515
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   516
    private int getKeyCode(Widget w)
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   517
    {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
        int keyCode = INVALID_CODE;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   519
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
        // Find out which osk button was pressed
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   521
        if (w == up)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   522
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
            keyCode = UP;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   524
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   525
        else if (w == down)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   526
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
            keyCode = DOWN;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   528
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   529
        else if (w == left)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   530
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
            keyCode = LEFT;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   532
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   533
        else if (w == right)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   534
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   535
            keyCode = RIGHT;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   536
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   537
        else if (w == center)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   538
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
            keyCode = FIRE;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   540
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   541
        else if (w == skleft)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   542
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   543
            keyCode = SLK;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   544
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   545
        else if (w == skright)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   546
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
            keyCode = SRK;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   548
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   549
        else if (w == gameA)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   550
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   551
            keyCode = GAME_A;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   552
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   553
        else if (w == gameB)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   554
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
            keyCode = GAME_B;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   556
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   557
        else if (w == gameC)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   558
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
            keyCode = GAME_C;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   560
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   561
        else if (w == gameD)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   562
        {
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
            keyCode = GAME_D;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   564
        }
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   565
        else
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   566
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   567
            keyCode = INVALID_CODE;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   569
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
        return keyCode;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   572
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   574
     * Mouse listeners.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   575
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   576
    public void mouseDown(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   577
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   578
        handleMouseDown(e);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   579
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   580
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   581
    public void mouseUp(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   582
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   583
        handleMouseUp(e);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   584
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   585
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   586
    public void mouseMove(MouseEvent e)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   587
    {
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   588
        handleMouseMove(e);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   589
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   590
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   591
    public void mouseDoubleClick(MouseEvent event)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   592
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   593
        // Do nothing
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   594
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   595
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   596
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   597
     * Handles the mouse down event
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   598
     * Note that e.x and e.y are relative to the widget that was pressed.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   599
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   600
    private void handleMouseDown(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   601
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   602
        if (e.widget == down) // highest in the z-order
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   603
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   604
            keyPressed = handleRockerPressed(e);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   605
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   606
        else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   607
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   608
            keyPressed = getKeyCode(e.widget);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   609
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   610
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   611
        if (keyPressed != INVALID_CODE)
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   612
        {
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   613
            canvas.doKeyPressed(keyPressed);
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   614
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
            timerTask = new CanvasKeypadTimerTask();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
            timer.schedule(timerTask, KEYREPEAT_INTERVAL);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
        }
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   618
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   620
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   621
     * Handles the mouse up event
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   622
     * Note that e.x and e.y are relative to the widget that was pressed.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   623
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   624
    private void handleMouseUp(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   625
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   626
        int keyReleased;
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   627
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   628
        if (timerTask != null)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   629
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   630
            timerTask.cancel();
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   631
            timerTask = null;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   632
        }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   633
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   634
        if (e.widget == down || e.widget == keypadComposite)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   635
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   636
            keyReleased = handleRockerReleased(e);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   637
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   638
        else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   639
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   640
            keyReleased = getKeyCode(e.widget);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   641
        }
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   642
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   643
        if (keyReleased != INVALID_CODE)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   644
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   645
            canvas.doKeyReleased(keyReleased);
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   646
        }
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   647
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   648
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   649
    /**
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   650
     * Handles the mouse move event
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   651
     * Note that e.x and e.y are relative to the widget that was pressed.
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   652
     */
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   653
    private void handleMouseMove(MouseEvent e)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   654
    {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   655
        if (timerTask != null)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   656
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   657
            timerTask.cancel();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   658
            timerTask = null;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   659
        }
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   660
        
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   661
        if (e.widget == down || e.widget == keypadComposite)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   662
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   663
            handleRockerMoved(e);    
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   664
        }
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   665
        else
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   666
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   667
            keyPressed = getKeyCode(e.widget);
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   668
            canvas.doKeyPressed(keyPressed);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
            timerTask = new CanvasKeypadTimerTask();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
            timer.schedule(timerTask, KEYREPEAT_INTERVAL);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
    }
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   673
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   674
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   675
     * Handles the rocker key press
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   676
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   677
    private int handleRockerPressed(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   678
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   679
        keyPressed = INVALID_CODE;
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   680
        
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   681
        Point rockerSize = center.getSize();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   682
        if (e.x >= 0 && e.x <= rockerSize.x && e.y >= 0 && e.y <= rockerSize.y)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   683
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   684
            if (center_data.getAlpha(e.x, e.y) != TRANSPARENT)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   685
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   686
                keyPressed = FIRE;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   687
                rockerKeyPressed = center;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   688
                center.setImage(center_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   689
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   690
            else if (left_data.getAlpha(e.x, e.y) != TRANSPARENT)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   691
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   692
                keyPressed = LEFT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   693
                rockerKeyPressed = left;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   694
                left.setImage(left_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   695
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   696
            else if (right_data.getAlpha(e.x, e.y) != TRANSPARENT)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   697
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   698
                keyPressed = RIGHT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   699
                rockerKeyPressed = right;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   700
                right.setImage(right_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   701
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   702
            else if (up_data.getAlpha(e.x, e.y) != TRANSPARENT)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   703
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   704
                keyPressed = UP;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   705
                rockerKeyPressed = up;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   706
                up.setImage(up_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   707
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   708
            else if (down_data.getAlpha(e.x, e.y) != TRANSPARENT)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   709
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   710
                keyPressed = DOWN;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   711
                rockerKeyPressed = down;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   712
                down.setImage(down_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   713
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   714
            else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   715
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   716
                keyPressed = INVALID_CODE;
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   717
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   718
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   719
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   720
        return keyPressed;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   721
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   722
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   723
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   724
     * Handles the mouse released on the rocker keys
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   725
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   726
    private int handleRockerReleased(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   727
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   728
        int keyReleased = INVALID_CODE;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   729
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   730
        Point rockerSize = center.getSize();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   731
        Point rockerLoc = center.getLocation();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   732
        
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   733
        if (e.widget == keypadComposite)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   734
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   735
            // Drag started outside rocker
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   736
            e.x -= rockerLoc.x;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   737
            e.y -= rockerLoc.y;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   738
        }
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   739
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   740
        if (e.x >= 0 && e.x <= rockerSize.x && e.y >= 0 && e.y <= rockerSize.y)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   741
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   742
            if ((rockerKeyPressed == center)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   743
                && (center_data.getAlpha(e.x, e.y) != TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   744
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   745
                keyReleased = FIRE;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   746
                center.setImage(center_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   747
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   748
            else if ((rockerKeyPressed == left)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   749
                && (left_data.getAlpha(e.x, e.y) != TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   750
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   751
                keyReleased = LEFT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   752
                left.setImage(left_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   753
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   754
            else if ((rockerKeyPressed == right)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   755
                && (right_data.getAlpha(e.x, e.y) != TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   756
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   757
                keyReleased = RIGHT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   758
                right.setImage(right_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   759
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   760
            else if ((rockerKeyPressed == up)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   761
                && (up_data.getAlpha(e.x, e.y) != TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   762
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   763
                keyReleased = UP;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   764
                up.setImage(up_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   765
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   766
            else if ((rockerKeyPressed == down)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   767
                && (down_data.getAlpha(e.x, e.y) != TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   768
            {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   769
                keyReleased = DOWN;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   770
                down.setImage(down_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   771
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   772
            else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   773
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   774
                keyReleased = INVALID_CODE;
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   775
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   776
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   777
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   778
        return keyReleased;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   779
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   780
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   781
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   782
     * Handles the mouse move on the rocker keys
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   783
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   784
    private void handleRockerMoved(MouseEvent e)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   785
    {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   786
        keyPressed = INVALID_CODE;
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   787
        Point size = center.getSize();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   788
        Point rockerLoc = center.getLocation();
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   789
        
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   790
        if (e.widget == keypadComposite)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   791
        {
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   792
            // Drag started outside rocker
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   793
            e.x -= rockerLoc.x;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   794
            e.y -= rockerLoc.y;
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   795
        }
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   796
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   797
        if (e.x >= 0 && e.x <= size.x && e.y >= 0 && e.y <= size.y)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   798
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   799
            if ((center_data.getAlpha(e.x, e.y) != TRANSPARENT)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   800
                && (rockerKeyPressed != center))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   801
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   802
                // Mouse moved to center rocker key from another rocker key,
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   803
                // release the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   804
                releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   805
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   806
            else if ((left_data.getAlpha(e.x, e.y) != TRANSPARENT)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   807
                && (rockerKeyPressed != left))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   808
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   809
                // Mouse moved to left rocker key from another rocker key,
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   810
                // release the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   811
                // and press the left key
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   812
                releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   813
                keyPressed = LEFT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   814
                left.setImage(left_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   815
                rockerKeyPressed = left;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   816
                canvas.doKeyPressed(keyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   817
                pressedKeyData = left_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   818
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   819
            else if ((right_data.getAlpha(e.x, e.y) != TRANSPARENT)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   820
                && (rockerKeyPressed != right))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   821
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   822
                // Mouse moved to right rocker key from another rocker key,
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   823
                // release the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   824
                // and press the right key
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   825
                releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   826
                keyPressed = RIGHT;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   827
                right.setImage(right_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   828
                rockerKeyPressed = right;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   829
                canvas.doKeyPressed(keyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   830
                pressedKeyData = right_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   831
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   832
            else if ((up_data.getAlpha(e.x, e.y) != TRANSPARENT)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   833
                && (rockerKeyPressed != up))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   834
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   835
                // Mouse moved to up rocker key from another rocker key, release
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   836
                // the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   837
                // and press the up key
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   838
                releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   839
                keyPressed = UP;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   840
                up.setImage(up_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   841
                canvas.doKeyPressed(keyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   842
                rockerKeyPressed = up;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   843
                pressedKeyData = up_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   844
            }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   845
            else if ((down_data.getAlpha(e.x, e.y) != TRANSPARENT)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   846
                && (rockerKeyPressed != down))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   847
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   848
                // Mouse moved to down rocker key from another rocker key,
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   849
                // release the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   850
                // and press the down key
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   851
                releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   852
                keyPressed = DOWN;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   853
                down.setImage(down_pressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   854
                rockerKeyPressed = down;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   855
                canvas.doKeyPressed(keyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   856
                pressedKeyData = down_data;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   857
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   858
            else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   859
            {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   860
                if ((pressedKeyData != null)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   861
                    && (pressedKeyData.getAlpha(e.x, e.y) == TRANSPARENT))
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   862
                {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   863
                    // Mouse moved to out of all rocker keys from another rocker
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   864
                    // key, release the other(source) rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   865
                    releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   866
                    pressedKeyData = null;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   867
                    rockerKeyPressed = null;
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   868
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   869
                }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   870
            }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   871
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   872
        else
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   873
        {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   874
            // Mouse moved to out of all rocker keys, release the other(source)
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   875
            // rocker key
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   876
            releaseRockerKey(rockerKeyPressed);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   877
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   878
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   879
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   880
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   881
     * Releases a rocker key
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   882
     */
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   883
    private void releaseRockerKey(Label rockerKeyPressed)
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   884
    {
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   885
        if (rockerKeyPressed == center)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   886
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   887
            center.setImage(center_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   888
            canvas.doKeyReleased(FIRE);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   889
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   890
        else if (rockerKeyPressed == left)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   891
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   892
            left.setImage(left_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   893
            canvas.doKeyReleased(LEFT);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   894
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   895
        else if (rockerKeyPressed == right)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   896
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   897
            right.setImage(right_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   898
            canvas.doKeyReleased(RIGHT);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   899
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   900
        else if (rockerKeyPressed == up)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   901
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   902
            up.setImage(up_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   903
            canvas.doKeyReleased(UP);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   904
        }
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   905
        else if (rockerKeyPressed == down)
26
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   906
        {
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   907
            down.setImage(down_normal);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   908
            canvas.doKeyReleased(DOWN);
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   909
        }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   910
    }
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   911
dc7c549001d5 Revision: v2.1.26
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 23
diff changeset
   912
    /**
57
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   913
     * Canvas Keypad timer task
59b3b4473dc8 v2.2.9_1
hgs
parents: 26
diff changeset
   914
     */
23
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   915
    class CanvasKeypadTimerTask extends TimerTask
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   916
    {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   917
        public void run()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   918
        {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   919
            ESWTUIThreadRunner.syncExec(new Runnable()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   920
            {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   921
                public void run()
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   922
                {
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   923
                    canvas.doKeyPressed(keyPressed);
98ccebc37403 Revision: v2.1.24
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   924
                }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   925
            });
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   926
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   927
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   928
}