javauis/lcdui_qt/src/javax/microedition/lcdui/SystemPropertyUtil.java
author hgs
Fri, 29 Oct 2010 11:49:32 +0300
changeset 87 1627c337e51e
parent 49 35baca0e7a2e
permissions -rw-r--r--
v2.2.21_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     1
/*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2009,2010 Nokia Corporation and/or its subsidiary(-ies).
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     3
* All rights reserved.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     8
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    11
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    12
* Contributors:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    13
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    14
* Description:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    15
*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    16
*/
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    17
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    18
package javax.microedition.lcdui;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    19
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    20
import org.eclipse.swt.internal.extension.OS;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    21
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    22
final class SystemPropertyUtil {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    23
	
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    24
	 /**
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    25
     * Constant for Soft Key Label Height
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    26
     */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    27
   public static final int LABEL_HEIGHT = 30;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    28
   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    29
   private static final int HbKeyboardNone = 0x00000000;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    30
   private static final int HbKeyboard12Key = 0x00000001;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    31
   private static final int HbKeyboardQwerty = 0x00000001|0x00010000; 
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    32
	
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    33
   /*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    34
	* This method checks if the current Displayable exists
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    35
	* If yes, then the current Displayable is asked for the property
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    36
	* If no, the null is returned
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    37
	*/
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    38
   final static String getSoftKeyLabelLocationImpl(String softKeyId)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    39
	{
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    40
	   String SoftKeyLabelLocation = null;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    41
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    42
	   Displayable disp = javax.microedition.lcdui.Display.getDisplay().getCurrent();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    43
	   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    44
	   if((disp != null) && (disp instanceof Canvas))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    45
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    46
		   if(((Canvas) disp).IsFullScreenMode())
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    47
		   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    48
			   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    49
			   if("com.nokia.softkey1.label.location".equals(softKeyId))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    50
			   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    51
				   SoftKeyLabelLocation = "0," + String.valueOf(((Canvas) disp).getHeight()) + ","
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    52
				   						+ String.valueOf((((Canvas) disp).getWidth())/2) + ","
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    53
				   						+ String.valueOf(LABEL_HEIGHT);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    54
			   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    55
			   else if("com.nokia.softkey2.label.location".equals(softKeyId))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    56
			   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    57
				   SoftKeyLabelLocation = String.valueOf((((Canvas) disp).getWidth())/2) + ","
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    58
				   		+ String.valueOf(((Canvas) disp).getHeight()) + ","
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    59
				   		+ String.valueOf((((Canvas) disp).getWidth())/2) + ","
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    60
				   		+ String.valueOf(LABEL_HEIGHT);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    61
			   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    62
		   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    63
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    64
	   return SoftKeyLabelLocation;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    65
	}
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    66
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    67
   /*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    68
    * This method checks if the current Displayable exists
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    69
    * If yes, then the current Displayable is asked for the property
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    70
    * If no, the null is returned
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    71
    */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    72
   final static String getSoftKeyLabelAnchorImpl(String softKeyId)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    73
   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    74
	   String SoftKeyLabelAnchor = null;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    75
	   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    76
	   Displayable disp = javax.microedition.lcdui.Display.getDisplay().getCurrent();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    77
	   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    78
	   if((disp != null) && (disp instanceof Canvas))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    79
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    80
		   if(null == ((Canvas) disp).getCanvasKeypad())
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    81
		   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    82
			   SoftKeyLabelAnchor = String.valueOf(Graphics.TOP | Graphics.HCENTER);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    83
		   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    84
		   else
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    85
		   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    86
			   if("com.nokia.softkey1.label.anchor".equals(softKeyId))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    87
			   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    88
				   SoftKeyLabelAnchor = String.valueOf(Graphics.TOP | Graphics.LEFT);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    89
			   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    90
			   else if("com.nokia.softkey2.label.anchor".equals(softKeyId))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    91
			   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    92
				   SoftKeyLabelAnchor = String.valueOf(Graphics.TOP | Graphics.RIGHT);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    93
			   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    94
		   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    95
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    96
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    97
	   return SoftKeyLabelAnchor;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    98
   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
    99
	    
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   100
   final static String doGetDynamicProperty(String key)
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   101
   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   102
	   if("com.nokia.key.scancode".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   103
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   104
		   return String.valueOf(ESWTUIThreadRunner.getLastKeyScancode());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   105
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   106
	   else if("com.nokia.key.modifier".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   107
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   108
		   return String.valueOf(ESWTUIThreadRunner.getLastKeyModifier());
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   109
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   110
	   else if("com.nokia.keyboard.type".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   111
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   112
		   // TODO: eSWT support required
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   113
		   /*
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   114
	            No keypad (for example a touch device without keypad)   - None
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   115
	            Standard ITU-T keypad (Phone keypad with 12 keys)       - PhoneKeypad
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   116
	            QWERTY (4x12 layout)                                    - FullKeyboard
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   117
	            QWERTY (limited, 4x10 layout)                           - LimitedKeyboard4x10
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   118
	            QWERTY (limited, 3x11 layout)                           - LimitedKeyboard3x11
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   119
	            Half QWERTY layout (aka Compact QWERTY keyboard).       - HalfKeyboard
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   120
	            Custom QWERTY layout                                    - Custom
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   121
	            Unknown layout                                          - Unknown
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   122
		    */
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   123
		   String keyBoard="None";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   124
		   int type = OS.HbInputSettingProxy_availableHwKeyboard();
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   125
		   
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   126
		   switch(type){
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   127
		   case HbKeyboardNone:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   128
			   keyBoard="None";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   129
			   break;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   130
		   case HbKeyboard12Key:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   131
			   keyBoard="PhoneKeypad";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   132
			   break;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   133
		   case HbKeyboardQwerty:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   134
			   keyBoard="FullKeyboard";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   135
			   break;	
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   136
		   default:
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   137
			   keyBoard = "None";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   138
		   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   139
		   return keyBoard;
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   140
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   141
	   else if("com.nokia.softkey1.label.location".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   142
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   143
		   return getSoftKeyLabelLocationImpl(key);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   144
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   145
	   else if("com.nokia.softkey1.label.anchor".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   146
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   147
		   return getSoftKeyLabelAnchorImpl(key);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   148
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   149
	   else if("com.nokia.softkey2.label.location".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   150
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   151
		   return getSoftKeyLabelLocationImpl(key);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   152
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   153
	   else if("com.nokia.softkey2.label.anchor".equals(key))
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   154
	   {
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   155
		   return getSoftKeyLabelAnchorImpl(key);
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   156
	   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   157
	   return "key not supported";
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   158
   }
35baca0e7a2e v2.2.3_1
hgs
parents:
diff changeset
   159
}