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

📄 settingexampleui.cpp

📁 基于 symbian OS的屏幕设置经典程序,很不错,欢迎下载学习
💻 CPP
字号:
/*
 * ============================================================================
 *  Name     : CSettingExampleAppUi from SettingExampleUi.cpp
 *  Part of  : SettingExample
 *  Created  : 29/05/2006 by Forum Nokia
 *  Version  : 2.0
 *  Copyright: Forum Nokia
 * ============================================================================
 */
 
#include "SettingExampleUi.h"
#include "SettingExampleListView.h"
#include "SettingExampleSettingList.h"
#include "SettingExampleSettingsData.h"
#include <aknutils.h> 
#include <S32FILE.H>
#include <f32file.h>
#include <EIKAPP.H>

// Constants
_LIT(KSettingsFile, "settings.dat");

// ConstructL is called by the application framework
void CSettingExampleAppUi::ConstructL()
    {
	BaseConstructL(EAknEnableSkin);
    RFs& fsSession = iEikonEnv->FsSession();
    
#ifdef __SERIES60_3X__
    User::LeaveIfError(fsSession.CreatePrivatePath( EDriveC ) );
    User::LeaveIfError(fsSession.PrivatePath(iSettingsFile));
    iSettingsFile += KSettingsFile;
#else
    TFileName appFullName = Application()->AppFullName();
    TParsePtr appPath(appFullName);
#ifdef __WINS__
    iSettingsFile = _L("c:");
    iSettingsFile.Append(appPath.Path());
    fsSession.MkDir(iSettingsFile);
#else
    iSettingsFile = appPath.DriveAndPath();
#endif // __WINS__
    iSettingsFile.Append(KSettingsFile);
#endif // __SERIES60_3x__    

	// construct the data object the settings list will use
	iData = CSettingsData::NewL();
    InternalizeSettingsDataL();

	// construct the view as well.
	CAknView* view;
	view = CSettingListView::NewLC(*iData);
	AddViewL(view);
	CleanupStack::Pop(view);
	ActivateLocalViewL(view->Id());
    }

CSettingExampleAppUi::CSettingExampleAppUi()                              
    {
    }

CSettingExampleAppUi::~CSettingExampleAppUi()
    {
	// make sure we clean up the data object
	delete iData;
    }

// handle menu commands
void CSettingExampleAppUi::HandleCommandL(TInt aCommand)
    {
    switch(aCommand)
        {
        case EEikCmdExit:
		case EAknSoftkeyExit:	// only softkey handled at this level
            ExternalizeSettingsDataL();
            Exit();
            break;
        default:
            break;
        }
    }
    
void CSettingExampleAppUi::InternalizeSettingsDataL()
    {
    RFs& fs = iEikonEnv->FsSession();
    RFileReadStream readStream;
    TInt error = readStream.Open(fs, iSettingsFile, EFileRead);
    TInt internalizationError = KErrNone;
    // if file existed, try to read settings.
    if (error == KErrNone)
        {
        TRAP(internalizationError, iData->LoadL(readStream);)
        }
    readStream.Release();

    // reading failed, settings file might be corrupted.    
    if (internalizationError != KErrNone)
        {
        User::LeaveIfError(fs.Delete(iSettingsFile));
        }
    }


void CSettingExampleAppUi::ExternalizeSettingsDataL() const
    {
    RFs& fs = iEikonEnv->FsSession();
    RFileWriteStream writeStream;
    TInt error = writeStream.Open(fs, iSettingsFile, EFileWrite);
    // setting file did not exist, create one.
    if (error != KErrNone)
        {
        User::LeaveIfError(writeStream.Create(fs, iSettingsFile, EFileWrite));
        }
    writeStream.PushL();
    iData->SaveL(writeStream);
    writeStream.CommitL();
    writeStream.Pop();
    writeStream.Release();
    }    
	
//EOF

⌨️ 快捷键说明

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