chxavaccesspointsettingsitem.cpp
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:2k
源码类别:

Symbian

开发平台:

Visual C++

  1. /************************************************************************
  2.  * chxavaccesspointsettingsitem.cpp
  3.  * --------------------------------
  4.  *
  5.  * Synopsis:
  6.  * Implementation of access point settings item.
  7.  *
  8.  * Target:
  9.  * Symbian OS
  10.  *
  11.  *
  12.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  13.  *
  14.  ************************************************************************/
  15. // Includes from this project...
  16. #include "chxavmisc.h"
  17. #include "chxavcleanstring.h"
  18. #include "chxavaccesspointdb.h"
  19. #include "chxavaccesspointsettingsitem.h"
  20. ///////////////////////////////////
  21. // ctor
  22. CHXAvAccessPointSettingsItem::CHXAvAccessPointSettingsItem(TInt aIdentifier, TUint32& apId)
  23. : CAknSettingItem(aIdentifier), m_apId(apId)
  24. {
  25. }
  26. ///////////////////////////////////
  27. // dtor
  28. CHXAvAccessPointSettingsItem::~CHXAvAccessPointSettingsItem()
  29. {
  30. }
  31. ////////////////////////////////////////////
  32. // ensure text description accuately indicates what the
  33. // access point id is set to
  34. //
  35. void CHXAvAccessPointSettingsItem::UpdateApTextL()
  36. {
  37.     CHXAvAccessPointDB* pDb = new (ELeave) CHXAvAccessPointDB;
  38.     AUTO_PUSH_POP_DEL(pDb);
  39.     pDb->ConstructL();
  40.     m_spApText = pDb->AllocAccessPointNameL(m_apId);
  41.     if( 0 == m_spApText->Length() )
  42.     {
  43.         TPtr ptr = m_spApText->Des();
  44.         ptr.Copy(CHXAvCleanString(R_AVP_NO_ACCESS_POINT)());
  45.         SetCompulsoryIndTextL (_L("*")); 
  46.     }
  47. }
  48. ////////////////////////////////////////////
  49. //
  50. const TDesC& CHXAvAccessPointSettingsItem::SettingTextL()
  51. {
  52.     if(!m_spApText)
  53.     {
  54.         UpdateApTextL();  
  55.     }
  56.     return *m_spApText;
  57. }
  58. ////////////////////////////////////////////
  59. // show the settings page associated with this settings item
  60. //
  61. void CHXAvAccessPointSettingsItem::EditItemL( TBool /* aCalledFromMenu */)
  62. {
  63.     TInt wapId = CHXAvMisc::RunAccessPointSettingPageL(m_apId);
  64.     if( wapId != 0 )
  65.     {
  66.         CHXAvAccessPointDB* pDb = new (ELeave) CHXAvAccessPointDB;
  67.         AUTO_PUSH_POP_DEL(pDb);
  68.         pDb->ConstructL();
  69. TInt apId = 0;
  70. apId = pDb->GetAPIdFromWapIdL(wapId);
  71.         // user selected something...
  72.         m_apId = apId;
  73.         // update name
  74.         UpdateApTextL();
  75.         UpdateListBoxTextL();
  76.     }
  77. }