75 }; |
75 }; |
76 |
76 |
77 // If const TChar is used, complie error occurs in THUMB build. |
77 // If const TChar is used, complie error occurs in THUMB build. |
78 // To avoid this, #define is used. |
78 // To avoid this, #define is used. |
79 #define KCalcAsteriskBtn '*' |
79 #define KCalcAsteriskBtn '*' |
80 |
80 //define a Comma as decimal separator |
81 |
81 #define KCommaSeparator ',' |
|
82 //define a dot as decimal separator |
|
83 #define KDotSeparator '.' |
|
84 //define a '#' as input decimal separator by conventional 12 phone keypad. |
|
85 #define KHashSeparator '#' |
82 // ================= MEMBER FUNCTIONS ======================= |
86 // ================= MEMBER FUNCTIONS ======================= |
83 |
87 |
84 // Two-phased constructor. |
88 // Two-phased constructor. |
85 CCalcContainer* CCalcContainer::NewL( |
89 CCalcContainer* CCalcContainer::NewL( |
86 CCalcView* aView) |
90 CCalcView* aView) |
1145 TEventCode keycode = EEventKeyDown; |
1149 TEventCode keycode = EEventKeyDown; |
1146 eventkey.iCode = 0; |
1150 eventkey.iCode = 0; |
1147 #ifdef RD_INTELLIGENT_TEXT_INPUT |
1151 #ifdef RD_INTELLIGENT_TEXT_INPUT |
1148 if ( iFuncmapPane->GetKeyboardType() == EPtiKeyboardHalfQwerty ) |
1152 if ( iFuncmapPane->GetKeyboardType() == EPtiKeyboardHalfQwerty ) |
1149 { |
1153 { |
1150 eventkey.iScanCode = 126; //scan code for separator |
1154 eventkey.iScanCode = EStdKeySingleQuote; //scan code for separator |
|
1155 eventkey.iCode = ( TUint )KDotSeparator; // icode for separator |
1151 } |
1156 } |
1152 else |
1157 else |
1153 #endif |
1158 #endif |
1154 { |
1159 { |
1155 eventkey.iScanCode = 122; //scan code for separator |
1160 TLocale locale; |
|
1161 //Get a decimal separator from system for current phone language. |
|
1162 TChar decimalSeparator( locale.DecimalSeparator() ); |
|
1163 |
|
1164 if ( KCommaSeparator == decimalSeparator ) |
|
1165 { |
|
1166 //separator is Comma |
|
1167 eventkey.iScanCode = EStdKeyComma; //scan code for separator |
|
1168 } |
|
1169 else |
|
1170 { |
|
1171 //separator is dot |
|
1172 eventkey.iScanCode = EStdKeyFullStop; //scan code for separator |
|
1173 } |
|
1174 eventkey.iCode = ( TUint )decimalSeparator; // icode for separator |
1156 } |
1175 } |
1157 |
1176 |
1158 // First send Keydown event |
1177 // First send Keydown event |
1159 OfferKeyEventL( eventkey, keycode ); |
1178 OfferKeyEventL( eventkey, keycode ); |
1160 eventkey.iCode = 46; // icode for separator |
1179 |
1161 keycode = EEventKey; |
1180 keycode = EEventKey; |
1162 |
1181 |
1163 // Next send EventKey |
1182 // Next send EventKey |
1164 OfferKeyEventL( eventkey, keycode ); |
1183 OfferKeyEventL( eventkey, keycode ); |
1165 } |
1184 } |
1167 { |
1186 { |
1168 // Simulate events as events are occurring from the KB Events |
1187 // Simulate events as events are occurring from the KB Events |
1169 TKeyEvent eventkey; |
1188 TKeyEvent eventkey; |
1170 TEventCode keycode = EEventKeyDown; |
1189 TEventCode keycode = EEventKeyDown; |
1171 eventkey.iCode = 0; |
1190 eventkey.iCode = 0; |
1172 eventkey.iScanCode = 127; // scan code for separator |
1191 eventkey.iScanCode = EStdKeyHash; // scan code for separator |
1173 |
1192 |
1174 // First send Keydown event |
1193 // First send Keydown event |
1175 OfferKeyEventL( eventkey, keycode ); |
1194 OfferKeyEventL( eventkey, keycode ); |
1176 eventkey.iCode = 35; // icode for separator |
1195 eventkey.iCode = ( TUint )KHashSeparator; // icode for separator |
1177 keycode = EEventKey; |
1196 keycode = EEventKey; |
1178 |
1197 |
1179 // Next send EventKey |
1198 // Next send EventKey |
1180 OfferKeyEventL( eventkey, keycode ); |
1199 OfferKeyEventL( eventkey, keycode ); |
1181 } |
1200 } |