📄 calendarapiexamplegridview.cpp
字号:
// INCLUDE FILES
#include <avkon.hrh>
#include <aknviewappui.h>
#include <aknnotewrappers.h> //CAknInformationNote
#include <CalendarAPIexample.rsg>
#include <aknnavi.h>
#include <aknnavilabel.h>
#include "CalendarAPIexampleGridContainer.h"
#include "CalendarAPIexample.hrh"
#include "CalendarAPIexampleEntryView.h"
#include "CalendarAPIexampleEntriesView.h"
#include "CalendarAPIexampleGridView.h"
#include "CalendarAPIexampleDocument.h"
#include "CalendarAPIexampleSearchView.h"
// ================= MEMBER FUNCTIONS =======================
// destructor
CCalendarAPIexampleGridView::~CCalendarAPIexampleGridView()
{
if (iContainer)
{
// Removes Container from View control stack.
AppUi()->RemoveFromViewStack(*this, iContainer);
}
delete iContainer;
iContainer = NULL;
}
// Symbian OS default constructor can leave.
void CCalendarAPIexampleGridView::ConstructL()
{
BaseConstructL(R_CALENDARAPIEXAMPLE_GRID_VIEW);
iDocument = static_cast<CCalendarAPIexampleDocument*>(AppUi()->Document());
}
// ----------------------------------------------------
// CCalendarAPIexampleGridView::Id()
// Returns ID of View
// ----------------------------------------------------
//
TUid CCalendarAPIexampleGridView::Id() const
{
return KGridViewId;
}
// ----------------------------------------------------
// CCalendarAPIexampleGridView::HandleCommandL()
// Takes care of command handling
// ----------------------------------------------------
//
void CCalendarAPIexampleGridView::HandleCommandL( TInt aCommand )
{
switch (aCommand)
{
case ECalendarAPIexampleCmdView:
{
int ind = iContainer->iGrid->View()->CurrentItemIndex()+1;
int col = (int)((ind-1) / 7);
int row = ind-( (col*7)+1);
int curPos=-1;
int current;
if( (ind>7) && (iContainer->mytab[row-1][col-1]<31) && (iContainer->mytab[row-1][col-1]>0) ){
for(current=0;current<iDocument->EntryCount();current++){
TDateTime valT = iContainer->iDocument->Entry(current).Date();
TTime z = (iContainer->debutMois+TTimeIntervalDays(iContainer->mytab[row-1][col-1]-1));
TDateTime curT = z.DateTime();
if( (valT.Year()==curT.Year())&& (valT.Month()==curT.Month()) && (valT.Day()==curT.Day()) ){
curPos=current;
}
}
if(curPos>=0){
_LIT(message,"D閠ail : \n");
TBuf16<200> tgt(message);
tgt.Append(iContainer->iDocument->Entry(curPos).Name());
CAknInformationNote *informationNot = new(ELeave) CAknInformationNote;
informationNot->ExecuteLD(tgt);
}else{
_LIT(message,"Pas d'entr閑 !");
CAknInformationNote *informationNot = new(ELeave) CAknInformationNote;
informationNot->ExecuteLD(message);
}
}
}
break;
case EAknSoftkeyBack:
{
AppUi()->ActivateLocalViewL(KSearchViewId);
}
break;
default:
break;
}
}
// ----------------------------------------------------
// CCalendarAPIexampleGridView::DoActivateL()
// Gets called when the view is activated. Creates
// the search container, adds it to view control stack
// and sets it visible.
// ----------------------------------------------------
//
void CCalendarAPIexampleGridView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,
TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/ )
{
if ( !iContainer )
{
iContainer = CCalendarAPIexampleGridContainer::NewL(ClientRect(),*this,*iDocument);
iContainer->SetMopParent(this);
// Adds Container to View control stack.
AppUi()->AddToStackL( *this, iContainer );
// Requires to display the default screen.
iContainer->MakeVisible( ETrue );
}
TUid naviPaneUid;
naviPaneUid.iUid = EEikStatusPaneUidNavi;
CAknNavigationControlContainer* naviPane = (CAknNavigationControlContainer*)StatusPane()->ControlL(naviPaneUid);
//Affiche mois Ann閑 en cours dans le calendrier
//today.HomeTime();
TBuf<30> dateString;
today.HomeTime();
debutMois = today-TTimeIntervalDays(today.DayNoInMonth());
_LIT(KDateString1,"%N%Y %2 %3");
//_LIT(KDateString1,"%D%M%Y%/0%1%/1%2%/2%3%/3");
debutMois.FormatL(dateString,KDateString1);
// set the navigation pane label
iNaviDecorator = naviPane->CreateNavigationLabelL(dateString);
naviPane->PushL(*iNaviDecorator);
}
// ----------------------------------------------------
// CCalendarAPIexampleGridView::DoDeactivate()
// Gets called when the view is deactivated. Removes
// the search container from view control stack and
// deletes it.
// ----------------------------------------------------
//
void CCalendarAPIexampleGridView::DoDeactivate()
{
if ( iContainer )
{
// Removes Container from View control stack.
AppUi()->RemoveFromViewStack(*this, iContainer );
}
TUid naviPaneUid;
naviPaneUid.iUid = EEikStatusPaneUidNavi;
CAknNavigationControlContainer* naviPane = (CAknNavigationControlContainer*)StatusPane()->ControlL(naviPaneUid);
naviPane->Pop(iNaviDecorator);
delete iContainer;
iContainer = NULL;
}
// ----------------------------------------------------
// CCalendarAPIexampleGridView::DoGridL()
// Requests the model to do an entry search. If no
// entries were found, an information note about it is
// displayed. If entries were found, entries view is
// activated.
// ----------------------------------------------------
//
/*void CCalendarAPIexampleGridView::DoGridL()
{
AppUi()->ActivateLocalViewL(KGridViewId);
}
*/
// End of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -