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

📄 griddemoappui.cpp

📁 手机编程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
* ============================================================================
*  Name     : CGridDemoAppUi from GridDemoAppUi.cpp
*  Part of  : GridDemo
*  Created  : 2006-11-28 by tomken
*  Implementation notes:
*     Initial content was generated by Series 60 AppWizard.
*  Version  :
*  Copyright: Copyright (c) 2006-2008
* ============================================================================
*/

#include "GridDemoAppUi.h"
#include "GridDemoContainer.h"
#include <GridDemo.rsg>
#include "griddemo.hrh"
#include <akntitle.h> 
#include <avkon.hrh>
#include <eikprogi.h>
#include <bautils.h>
#include <aknnotewrappers.h> 
#include <aknmessagequerydialog.h>
#include <AknWaitDialog.h> 
#include <aknselectionlist.h> 

CGridDemoAppUi::CGridDemoAppUi()
{
	iNaviDecorator = 0;
	converter = 0;
	iAppContainer = 0;
}

void CGridDemoAppUi::ConstructL()
{
    BaseConstructL(EAknEnableSkin);
	User::LeaveIfError(iFs.Connect());

//	User::LeaveIfError(iLogFile.Connect());
//	iLogFile.CreateLog(_L("gd"), _L("gd.log"), EFileLoggingModeOverwrite);

	converter = CCnvCharacterSetConverter::NewL();
	
	if ( CCnvCharacterSetConverter::EAvailable !=
		converter->PrepareToConvertToOrFromL( KCharacterSetIdentifierGb2312, iFs))
	{
		User::Leave(KErrNotSupported);
	}

	LoadSmokeUser();
	LoadSmokeType();
//	LoadSmokeInfo();

    iAppContainer = CGridDemoContainer::NewL(ClientRect());
    iAppContainer->SetMopParent(this);
    AddToStackL( iAppContainer );
}

CGridDemoAppUi::~CGridDemoAppUi()
{
	SetNavigationLabelL(KNullDesC);
	delete iNaviDecorator;
    if (iAppContainer)
    {
        RemoveFromStack( iAppContainer );
        delete iAppContainer;
    }

	iSmokeUsers.ResetAndDestroy();
	iSmokeTypes.ResetAndDestroy();
	iSmokeInfos.ResetAndDestroy();

	if(iCreater)
		delete iCreater;

	delete converter;
	iFs.Close();

//	iLogFile.Close();
}

void CGridDemoAppUi::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
{
	if(aResourceId == R_FUNCTION_MENU && aMenuPane)
	{
		if(iFullScreen)
			aMenuPane->SetItemDimmed(EGridDemoCmdAppFullScreen,ETrue);
		else
			aMenuPane->SetItemDimmed(EGridDemoCmdAppUnFullScreen,ETrue);
	}
	else if(aResourceId == R_SHEET_MENU && aMenuPane)
	{
		if(iFullScreen)
			aMenuPane->SetItemDimmed(EGridDemoCmdAppFullScreen,ETrue);
		else
			aMenuPane->SetItemDimmed(EGridDemoCmdAppUnFullScreen,ETrue);

		if(iAppContainer->IsShowStatus())
			aMenuPane->SetItemDimmed(EGridDemoCmdAppShowStatus,ETrue);
		else
			aMenuPane->SetItemDimmed(EGridDemoCmdAppHideStatus,ETrue);

		if(iAppContainer->IsLockColumn())
			aMenuPane->SetItemDimmed(EGridDemoCmdAppSheetLockColumn,ETrue);
		else
			aMenuPane->SetItemDimmed(EGridDemoCmdAppSheetUnLockColumn,ETrue);

		//if(!iAppContainer->IsAllowEdit())
			//aMenuPane->SetItemDimmed(EGridDemoCmdAppEdit, ETrue);
	}
}

TSmokeUser* CGridDemoAppUi::FindSmokeUserByName(const TDesC& aName)
{
	for(TInt i=0; i<iSmokeUsers.Count(); i++)
	{
		TPtrC ptr = iSmokeUsers[i]->iName;
		if(ptr.Find(aName) != KErrNotFound)
		{
			return iSmokeUsers[i];
		}
	}

	return NULL;
}

TSmokeUser* CGridDemoAppUi::FindSmokeUser(const TDesC& aNo)
{
	TInt minValue = 0;
	TInt maxValue = iSmokeUsers.Count() - 1;
	TInt middleValue = 0;
	TInt cmp = -1;
	while(minValue <= maxValue)
	{
		middleValue = (minValue + maxValue) / 2;
		cmp = aNo.Compare(iSmokeUsers[middleValue]->iNo);
		if( cmp==0)
			return iSmokeUsers[middleValue];
		else if( cmp > 0)
			minValue = middleValue + 1;
		else
			maxValue = middleValue - 1;
	}

	return NULL;
}

TSmokeType* CGridDemoAppUi::FindSmokeType(const TDesC& aCode)
{
	TInt minValue = 0;
	TInt maxValue = iSmokeTypes.Count() - 1;
	TInt middleValue = 0;
	TInt cmp = -1;
	while(minValue <= maxValue)
	{
		middleValue = (minValue + maxValue) / 2 ;
		cmp = aCode.Compare(iSmokeTypes[middleValue]->iCode);
		if( cmp==0)
			return iSmokeTypes[middleValue];
		else if( cmp > 0)
			minValue = middleValue + 1;
		else
			maxValue = middleValue - 1;
	}

	return NULL;
}


void CGridDemoAppUi::HandleCommandL(TInt aCommand)
    {
    switch ( aCommand )
        {
        case EAknSoftkeyBack:
        case EEikCmdExit:
            {
            Exit();
            break;
            }
        case EGridDemoCmdAppOpen:
            {
				iAppContainer->HandleFunctionCall();
			}
			break;
		case EGridDemoCmdAppDetail:
			{
				iAppContainer->HandleSheetEnterEvent();
			}
			break;
		case EGridDemoCmdAppEdit:
			{
				iAppContainer->HandleSheetEditEvent();
			}
			break;
		case EGridDemoCmdAppSheetReturn:
			{
				TBuf<32> buf;
				iEikonEnv->ReadResource(buf, R_MAIN_TITLE);
				SetStatusPaneTitleL(buf);
				iAppContainer->ShowFunctionList();
				ChangeCBA(R_FUNCTION_CBA, R_FUNCTION_MENUBAR);
			}
			break;
		case EGridDemoCmdAppSheetLockColumn:
			{
				iAppContainer->LockCurrentColumn();
            }
			break;
		case EGridDemoCmdAppSheetUnLockColumn:
			{
				iAppContainer->UnLockCurrentColumn();
            }
			break;
		case EGridDemoCmdAppUnFullScreen:
		case EGridDemoCmdAppFullScreen:
			{
				if(iFullScreen)
				{
					iAppContainer->SetRect(ClientRect());
					iFullScreen = EFalse;
				}
				else
				{
					iAppContainer->SetExtentToWholeScreen();
					iFullScreen = ETrue;
				}
			}
			break;
		case EGridDemoCmdAppShowStatus:
			{
				iAppContainer->ShowStatus(ETrue);
			}
			break;
		case EGridDemoCmdAppHideStatus:
			{
				iAppContainer->ShowStatus(EFalse);
			}
			break;
		case EGridDemoCmdAppAbout:
			{
				ShowMessageQueryDialog(_L("About GridDemo"), _L("Author:tomken\n\nExcel demo\n\nCopyright (c) 2006-2008"));
			}
        case EGridDemoCmdAppTest:
			{
				Test();
			}
			break;
		case EGridDemoCmdAppCreateIndex:
			{
				CreateIndex(EFalse);
			}
			break;
		case EGridDemoCmdAppCreateAllIndex:
			{
				CreateIndex(ETrue);
			}
			break;
		case EGridDemoCmdAppEditOk:
			{
				iAppContainer->HandleEditOk();
			}
			break;
		case EGridDemoCmdAppEditCancel:
			{
				iAppContainer->HandleEditCancel();
			}
			break;
        default:
            break;      
        }
    }

void CGridDemoAppUi::Test()
{
	/*
	CDesCArray*  aa = new (ELeave) CDesCArrayFlat(3);
	aa->InsertIsqAllowDuplicatesL(_L("aa"));
	aa->InsertIsqAllowDuplicatesL(_L("cc"));
	aa->InsertIsqAllowDuplicatesL(_L("bb"));
	aa->InsertIsqAllowDuplicatesL(_L("cc"));

	for(TInt i=0; i<aa->Count(); i++)
	{
		TPtrC ptr = (*aa)[i];
		RDebug::Print(_L("%S"), &ptr);
	}

	aa->Reset();
	delete aa;
	*/
	TTime timer;
	timer.HomeTime();
	TBuf<30> dateString;
	TDateTime tdt=timer.DateTime();
	_LIT(KDateString,"%Y%M%D%1-%2-%3");
	timer.FormatL(dateString,KDateString);
	ShowInformationNoteL(dateString);
	tdt.Month();
	if (tdt.Year()>=2007 && tdt.Day()>=15)
		ShowInformationNoteL(_L("1234567890"));
	else
		ShowInformationNoteL(_L("abcd"));
	/*
		TBuf<30> dateString;
	_LIT(KDateString,"%Y%M%D%1-%2-%3");
	_LIT(KDateString2,"2006-12-20");
	timer.FormatL(dateString,KDateString);
	ShowInformationNoteL(dateString);
	ShowInformationNoteL(KDateString2);
	if (dateString.Compare(KDateString2)==0)
		ShowInformationNoteL(KDateString2);
	*/
	
}

void CGridDemoAppUi::HandleCreateProgress(TInt aLine)
{
//	iLogFile.WriteFormat(_L8("CGridDemoAppUi::HandleCreateProgress %d"), aLine);
//	UpdateProgressL(aLine);
}

void CGridDemoAppUi::HandleChangeFile()
{
	UpdateProgressL(1);
//	iLogFile.WriteFormat(_L("CGridDemoAppUi::HandleChangeFile %S %d"), &aFile, aCount);

//	HideProgressDialog();
//#ifndef __WINS__
//	TBuf<64> buf;
//	iEikonEnv->ReadResource(buf, R_PROGRESS_TEXT);
//	buf.Append(aFile);

//	ShowProgressDialog(buf, aCount);
//#endif
}

void CGridDemoAppUi::HandleCreateFinished()
{
//	iLogFile.Write(_L8("CGridDemoAppUi::HandleCreateFinished"));

	HideProgressDialog();
}

void CGridDemoAppUi::ChangeCBA(TInt aCbaRes, TInt aMenuRes)
{
	if(Cba())
	{
		Cba()->SetCommandSetL(aCbaRes);
		Cba()->DrawDeferred();

		if(aMenuRes)
		{
			iEikonEnv->AppUiFactory()->MenuBar()->SetMenuTitleResourceId(aMenuRes);
			iEikonEnv->AppUiFactory()->MenuBar()->DrawDeferred();
		}
	}
}

void CGridDemoAppUi::LoadSmokeUser()
{
	TBuf<256>  filename;
	filename = KSmokeUserFile;
	CompleteWithDataPath(filename);

	if(!BaflUtils::FileExists(iFs, filename))
	{
		ShowInformationNoteL(_L("no found smokeuser.dat"));
		return;
	}

	RFile file;
	User::LeaveIfError(file.Open(iFs, filename, EFileRead));
	CleanupClosePushL(file);
	
	TInt size = 0;

⌨️ 快捷键说明

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