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

📄 calendarapiexamplegridview.cpp

📁 该源码实现个人日程管理以及备忘功能
💻 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 + -