extras/calcsoft/src/CalcCont.cpp
branchRCL_3
changeset 29 9d6a662e71d9
parent 24 10c6e6d6e4d9
equal deleted inserted replaced
27:2e7bab7ab409 29:9d6a662e71d9
    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         }