⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wsexampleappui.cpp

📁 Symbian智能手机操作系统源代码值的参考_服务器
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    
    if( err == KErrNone )
        {
        dateTime = sunrise.DateTime();
        timeString.Num( dateTime.Hour() );
        timeString.Append( WSE_DDOT );
        timeString.AppendNumFixedWidth( dateTime.Minute(), EDecimal, 
            KTimeNumWidth );
        timeString.Append( WSE_DDOT );
        timeString.AppendNumFixedWidth( dateTime.Second(), EDecimal, 
            KTimeNumWidth  );
        formatBuffer.Append( timeString );
        }
    else
        {
        formatBuffer.Append( WSE_ERROR2 );
        }
    cityInfo->AppendL( formatBuffer );

    formatBuffer.Copy( WSE_CITYSUNSETTODAY );
    if( err == KErrNone )
        {
        dateTime = sunset.DateTime();
        timeString.Num( dateTime.Hour() );
        timeString.Append( WSE_DDOT );
        timeString.AppendNumFixedWidth( dateTime.Minute(), EDecimal, 
            KTimeNumWidth );
        timeString.Append( WSE_DDOT );
        timeString.AppendNumFixedWidth( dateTime.Second(), EDecimal, 
            KTimeNumWidth  );
        formatBuffer.Append( timeString );
        }
    else
        {
        formatBuffer.Append( WSE_ERROR2 );
        }

    cityInfo->AppendL( formatBuffer );

    iAppDialog->SetListBoxTextL( cityInfo );
    CleanupStack::PopAndDestroy( cityInfo );
    }

// ---------------------------------------------------------
//  CWSExampleAppUi::FillListBoxL()
//  Fill main dialog listbox with country information
// ---------------------------------------------------------
void CWSExampleAppUi::FillListBoxL( TCountryData& aCountryData )
    {
    TBuf<KTextBufferLength>    formatBuffer;

    CDesC16ArrayFlat* countryInfo = 
        new (ELeave)CDesC16ArrayFlat( KArrayGranularity );
   	CleanupStack::PushL( countryInfo );

    countryInfo->Reset();

    formatBuffer.Copy( WSE_COUNTRYNAME2 );
    formatBuffer.Append( aCountryData.iCountry );
    countryInfo->AppendL( formatBuffer );

    formatBuffer.Copy( WSE_CAPITAL );
    formatBuffer.Append( aCountryData.iCapital );
    countryInfo->AppendL( formatBuffer );

    formatBuffer.Copy( WSE_INTERNATIONALDIALLINGPREFIX );
    formatBuffer.Append( aCountryData.iIntlPref );
    countryInfo->AppendL( formatBuffer );

    formatBuffer.Copy( WSE_NATIONALDIALLINGCODE2 );
    formatBuffer.Append( aCountryData.iNatCode );
    countryInfo->AppendL( formatBuffer );

    formatBuffer.Copy( WSE_NATIONALDIALLINGPREFIX );
    formatBuffer.Append( aCountryData.iNatPref );
    countryInfo->AppendL( formatBuffer );

    iAppDialog->SetListBoxTextL( countryInfo );
    CleanupStack::PopAndDestroy( countryInfo );
    }

// ---------------------------------------------------------
//  CWSExampleAppUi::CreateCityUIL()
//  Ask all the information about new city and create
//  the new city into world server database.
// ---------------------------------------------------------
void CWSExampleAppUi::CreateCityUIL()
    {
    TCityData   newCity;
    TPtrC       text;

    // new city name
    text.Set(WSE_NEWCITYNAME);
    if( QueryTextL( text, newCity.iCity) == EFalse )
        {
        return;
        }

    CDesC16ArrayFlat* countriesList = 
        new (ELeave)CDesC16ArrayFlat( KArrayGranularity );
   	CleanupStack::PushL( countriesList );

    TBuf<KTextBufferLength> temp;

    temp.Copy( WSE_EMPTY );

    iWSConnection->ListCountriesL( temp, countriesList );

    // choose country where this city is in
    text.Set(WSE_CHOOSECOUNTRY);
    if( AskPopupChoiseL( text, countriesList, newCity.iCountry ) == EFalse )
        {
        CleanupStack::PopAndDestroy( countriesList );
        return;
        }

    CleanupStack::PopAndDestroy( countriesList );

    // daylight saving zone
    if( AskDLSZoneL( newCity.iDaylightSavingZone ) != KErrNone )
        {
        return;
        }

    // local area code
    text.Set(WSE_LOCALAREACODE);
    if( QueryTextL( text, newCity.iAreaCode ) == EFalse )
        {
        return;
        }

    // universal time offset for the city
    text.Set(WSE_THEUTCOFFSET);
    if( AskNumberL( text, newCity.iUniversalTimeOffset ) != KErrNone )
        {
        return;
        }

    // lattitude for the city
    TInt    latitude;
    TInt    longitude;

    text.Set(WSE_LATITUDE);
    if( AskNumberL( text, latitude ) != KErrNone )
        {
        return;
        }

    // longitude for the city
    text.Set(WSE_LONGITUDE);
    if( AskNumberL( text, longitude ) != KErrNone )
        {
        return;
        }

    newCity.iLatLong.SetMinutesL( latitude, longitude );

    // attempt to create the city into world server database.
    if( iWSConnection->AddCity( newCity ) == KErrNone )
        {
        TPtrC msg(WSE_ADDEDNEWCITY);
        ShowInfoL( msg );
        }
    else
        {
        TPtrC msg(WSE_ERRORWHILEADDINGNEWCITY);
        ShowInfoL( msg );
        }
    }

// ---------------------------------------------------------
//  CWSExampleAppUi::DistanceUIL()
//  Calculate distance between currently selected city and
//  the city which is asked from user in this method.
// ---------------------------------------------------------
void CWSExampleAppUi::DistanceUIL()
    {
    TBuf<KTextBufferLength>    placeName;
    TPtrC text;

    CDesC16ArrayFlat* citiesList = 
        new (ELeave)CDesC16ArrayFlat( KArrayGranularity );
    CleanupStack::PushL( citiesList );

    // ask for 2nd city name. first being as the current
    // city showing in the dialog listbox
    text.Set(WSE_2NDCITYNAME);
    if( QueryTextL( text, placeName ) )
        {
        iWSConnection->ListCitiesL( placeName, citiesList );

        if( citiesList->Count() == 0 )
            {
            TPtrC msg(WSE_NOMATCHINGCITYFOUND);
            ShowInfoL( msg );
            }
        else
            {
            // more than one city found, ask user to choose
            if( citiesList->Count() > 1 )
                {
                text.Set(WSE_2NDCITYNAME);
                if( AskPopupChoiseL( text, citiesList, placeName ) )
                    {
                    // this is used to mark that a choise was made.
                    citiesList->Reset();
                    }
                }
            else
                {
                placeName.Copy( citiesList->operator[](0) );
                }
            
            if( citiesList->Count() <= 1 )
                {
                TInt distance;
                TInt err;

                err = iWSConnection->CalculateDistance( iCurrentCity.iCity, 
                    placeName, distance );

                if( err != KErrNone )
                    {
                    TPtrC msg(WSE_ERRORWHILECALCULATINGDISTANCE);
                    ShowInfoL( msg );
                    }
                else
                    {
                    // Fill the listbox with the distance information
                    TBuf<KTextBufferLength>   distanceText;
                    CDesC16ArrayFlat* distanceInfo = 
                        new (ELeave)CDesC16ArrayFlat( KArrayGranularity );
                    CleanupStack::PushL( distanceInfo );

                    distanceText.Copy( WSE_FIRSTCITY );
                    distanceText.Append( iCurrentCity.iCity );
                    distanceInfo->AppendL( distanceText );

                    distanceText.Copy( WSE_SECONDCITY );
                    distanceText.Append( placeName );
                    distanceInfo->AppendL( distanceText );

                    distanceText.Copy( WSE_DISTANCEBETWEEN );
                    distanceText.AppendNum( distance );

                    if( iWSConnection->GetUnit() == EWldMiles )
                        {
                        distanceText.Append( WSE_MILES );
                        }
                    else
                        {
                        distanceText.Append( WSE_KILOMETERS );
                        }
                
                    distanceInfo->AppendL( distanceText );

                    iAppDialog->SetListBoxTextL( distanceInfo );
                    iShowing = EShowingNothing;
                    CleanupStack::PopAndDestroy( distanceInfo );
                    }
                }
            }
        }
    CleanupStack::PopAndDestroy( citiesList );
    }

// ---------------------------------------------------------
//  CWSExampleAppUi::CreateCountryUIL()
//  Create new country and capital city for it into
//  world server database.
// ---------------------------------------------------------
void CWSExampleAppUi::CreateCountryUIL()
    {
    TCountryData            country;
    TPtrC                   text;

    // new country name
    text.Set(WSE_COUNTRYNAME);
    if( QueryTextL(text, country.iCountry) == EFalse )
        {
        return;
        }

    // international dialing prefix
    text.Set(WSE_INTDIALINGPREFIX);
    if( QueryTextL( text, country.iIntlPref) == EFalse )
        {
        return;
        }

    // National dialing code
    text.Set(WSE_NATIONALDIALLINGCODE);
    if( QueryTextL( text, country.iNatCode) == EFalse )
        {
        return;
        }
    // national dialing prefix
    text.Set(WSE_NATDIALLINGPREFIX);
    if( QueryTextL( text, country.iNatPref) == EFalse )
        {
        return;
        }

    // create the capital city
    TCityData   newCity;

    // capital city name
    text.Set(WSE_CAPITALCITYNAME);
    if( QueryTextL( text, newCity.iCity) == EFalse )
        {
        return;
        }

    country.iCapital.Copy( newCity.iCity );
    newCity.iCountry.Copy(country.iCountry);

    // daylight saving zone
    if( AskDLSZoneL( newCity.iDaylightSavingZone ) != KErrNone )
        {
        return;
        }

    // local area code for capital city
    text.Set(WSE_LOCALAREACODE);
    if( QueryTextL( text, newCity.iAreaCode) == EFalse )
        {
        return;
        }

    // universal time offset for capital city
    text.Set(WSE_THEUTCOFFSET);
    if( AskNumberL( text, newCity.iUniversalTimeOffset ) != KErrNone )
        {
        return;
        }
    // latitude for capital city
    TInt    latitude;
    TInt    longitude;

    text.Set(WSE_LATITUDE);
    if( AskNumberL( text, latitude ) != KErrNone )
        {
        return;
        }

    // longitude for capital city
    text.Set(WSE_LONGITUDE);
    if( AskNumberL( text, longitude ) != KErrNone )
        {
        return;
        }

    newCity.iLatLong.SetMinutesL( latitude, longitude );

    // attempt to create the country and capital city 
    // into world server database.
    if( iWSConnection->AddCountry( country, newCity ) == KErrNone )
        {
        TPtrC msg(WSE_ADDEDNEWCOUNTRY);
        ShowInfoL( msg );
        }
    else
        {
        TPtrC msg(WSE_ERRORWHILEADDINGNEWCOUNTRY);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -