📄 griddemoappui.cpp
字号:
/*
* ============================================================================
* 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 + -