javauis/lcdui_akn/lcdui/src/CMIDTextBoxQueryDialog.cpp
changeset 23 98ccebc37403
parent 21 2a9601315dfc
child 25 9ac0a0a7da70
equal deleted inserted replaced
21:2a9601315dfc 23:98ccebc37403
  1284 
  1284 
  1285 /** Create non-midlet commands according to the constraints and add them
  1285 /** Create non-midlet commands according to the constraints and add them
  1286 to either the displayable or to the item. Commands will be processed in ProcessCommandL(). */
  1286 to either the displayable or to the item. Commands will be processed in ProcessCommandL(). */
  1287 void CMIDTextBoxQueryDialog::CreateNonMidletCommandsL()
  1287 void CMIDTextBoxQueryDialog::CreateNonMidletCommandsL()
  1288 {
  1288 {
  1289     RPointerArray<MMIDCommand> array;
       
  1290     CleanupClosePushL(array);
       
  1291 
       
  1292     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EPhoneNumber) && !(iConstraints & MMIDTextField::EUneditable))
  1289     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EPhoneNumber) && !(iConstraints & MMIDTextField::EUneditable))
  1293     {
  1290     {
  1294         AddCommandToArrayL(array, R_MIDP_PB_FETCH_NUMBER_SHORT_COMMAND_TEXT, R_MIDP_PB_FETCH_NUMBER_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandFetchPhoneNumber);
  1291         AddCommandToEdwinL(R_MIDP_PB_FETCH_NUMBER_SHORT_COMMAND_TEXT, R_MIDP_PB_FETCH_NUMBER_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandFetchPhoneNumber);
  1295         AddCommandToArrayL(array, R_MIDP_CREATE_CALL_SHORT_COMMAND_TEXT, R_MIDP_CREATE_CALL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandCreatePhoneCall);
  1292         AddCommandToEdwinL(R_MIDP_CREATE_CALL_SHORT_COMMAND_TEXT, R_MIDP_CREATE_CALL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandCreatePhoneCall);
  1296     }
  1293     }
  1297 
  1294 
  1298     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EPhoneNumber) && (iConstraints & MMIDTextField::EUneditable))
  1295     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EPhoneNumber) && (iConstraints & MMIDTextField::EUneditable))
  1299     {
  1296     {
  1300         AddCommandToArrayL(array, R_MIDP_CREATE_CALL_SHORT_COMMAND_TEXT, R_MIDP_CREATE_CALL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandCreatePhoneCall);
  1297         AddCommandToEdwinL(R_MIDP_CREATE_CALL_SHORT_COMMAND_TEXT, R_MIDP_CREATE_CALL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandCreatePhoneCall);
  1301     }
  1298     }
  1302 
  1299 
  1303     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EMailAddr) && !(iConstraints & MMIDTextField::EUneditable))
  1300     if (((iConstraints & MMIDTextField::EConstraintMask) == MMIDTextField::EMailAddr) && !(iConstraints & MMIDTextField::EUneditable))
  1304     {
  1301     {
  1305         AddCommandToArrayL(array, R_MIDP_PB_FETCH_EMAIL_SHORT_COMMAND_TEXT, R_MIDP_PB_FETCH_EMAIL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandFetchEmailAddress);
  1302         AddCommandToEdwinL(R_MIDP_PB_FETCH_EMAIL_SHORT_COMMAND_TEXT, R_MIDP_PB_FETCH_EMAIL_COMMAND_TEXT, CMIDEdwinUtils::EMenuCommandFetchEmailAddress);
  1306     }
  1303     }
  1307     AddCommandsToEdwinL(array);
       
  1308 
       
  1309     CleanupStack::PopAndDestroy(&array);
       
  1310 }
  1304 }
  1311 
  1305 
  1312 /**
  1306 /**
  1313 Creates and adds new command to array based on shot & long label resource ids
  1307 Creates and adds new command to edwin based on shot & long label resource ids
  1314 and other parameters.
  1308 and other parameters.
  1315 */
  1309 */
  1316 void CMIDTextBoxQueryDialog::AddCommandToArrayL(RPointerArray<MMIDCommand>& aArray,
  1310 void CMIDTextBoxQueryDialog::AddCommandToEdwinL(TInt aCommandResIdShort,
  1317         TInt aCommandResIdShort, TInt aCommandResIdLong, TInt aCommandId)
  1311                                                 TInt aCommandResIdLong,
       
  1312                                                 TInt aCommandId)
  1318 {
  1313 {
  1319     TBuf<64> shortLabel;
  1314     TBuf<64> shortLabel;
  1320     iEikonEnv->ReadResourceL(shortLabel, aCommandResIdShort);
  1315     iEikonEnv->ReadResourceL(shortLabel, aCommandResIdShort);
  1321     TBuf<64> longLabel;
  1316     TBuf<64> longLabel;
  1322     iEikonEnv->ReadResourceL(longLabel, aCommandResIdLong);
  1317     iEikonEnv->ReadResourceL(longLabel, aCommandResIdLong);
  1324     MMIDCommand* cmd = CMIDCommand::NewL(shortLabel, longLabel, MMIDCommand::EItem, 0, aCommandId);
  1319     MMIDCommand* cmd = CMIDCommand::NewL(shortLabel, longLabel, MMIDCommand::EItem, 0, aCommandId);
  1325     CleanupStack::PushL(cmd);
  1320     CleanupStack::PushL(cmd);
  1326 
  1321 
  1327     STATIC_CAST(CMIDCommand*,cmd)->SetObserver(this);
  1322     STATIC_CAST(CMIDCommand*,cmd)->SetObserver(this);
  1328 
  1323 
  1329     aArray.AppendL(cmd);
  1324     AddCommandToEdwinL(*cmd);
  1330     CleanupStack::Pop(cmd);
  1325     CleanupStack::Pop(cmd);
  1331 }
  1326 }
  1332 
  1327 
  1333 /**
  1328 /**
  1334 Creates and adds new command to array, short label is the same as long label.
  1329 Creates and adds new command to edwin, short label is the same as long label.
  1335 */
  1330 */
  1336 void CMIDTextBoxQueryDialog::AddCommandToArrayL(RPointerArray<MMIDCommand>& aArray,
  1331 void CMIDTextBoxQueryDialog::AddCommandToEdwinL(TInt aCommandResId,
  1337         TInt aCommandResId, TInt aCommandId)
  1332                                                 TInt aCommandId)
  1338 {
  1333 {
  1339     AddCommandToArrayL(aArray, aCommandResId, aCommandResId, aCommandId);
  1334     AddCommandToEdwinL(aCommandResId, aCommandResId, aCommandId);
  1340 }
  1335 }
  1341 
  1336 
  1342 /** This method is called from the destructor and removes
  1337 /** This method is called from the destructor and removes
  1343     the commands added by CreateNonMidletCommandsL(). To do
  1338     the commands added by CreateNonMidletCommandsL(). To do
  1344     this we examine cmds on the list (either of the displayable
  1339     this we examine cmds on the list (either of the displayable
  1367             i--;
  1362             i--;
  1368         }
  1363         }
  1369     }
  1364     }
  1370 }
  1365 }
  1371 
  1366 
  1372 void CMIDTextBoxQueryDialog::AddCommandsToEdwinL(RPointerArray<MMIDCommand>& aArray)
  1367 void CMIDTextBoxQueryDialog::AddCommandToEdwinL(MMIDCommand& aCommand)
  1373 {
  1368 {
  1374     for (TInt i = 0; i < aArray.Count(); i++)
  1369     STATIC_CAST(CMIDDisplayable*, iDisplayable)->AddCommandL(&aCommand);
  1375     {
       
  1376         STATIC_CAST(CMIDDisplayable*, iDisplayable)->AddCommandL(aArray[i]);
       
  1377     }
       
  1378 }
  1370 }
  1379 
  1371 
  1380 void CMIDTextBoxQueryDialog::CreatePhoneCallL()
  1372 void CMIDTextBoxQueryDialog::CreatePhoneCallL()
  1381 {
  1373 {
  1382     iEdwinUtils->CreatePhoneCallL(Size(), CCoeEnv::Static()->WsSession(), iEditor);
  1374     iEdwinUtils->CreatePhoneCallL(Size(), CCoeEnv::Static()->WsSession(), iEditor);