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); |