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

📄 calendarapiexampleentrycontainer.cpp

📁 塞班3D游戏
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CCalendarAPIexampleEntryContainer from CalendarAPIexampleEntryContainer.h
*  Part of  : CalendarAPIexample
*  Created  : 12/06/2006 by Forum Nokia
*  Version  : 2.0
*  Copyright: Nokia Corporation
* ============================================================================
*/

// INCLUDE FILES
#include <CalendarAPIexample.rsg> 
#include "CalendarAPIexampleEntryContainer.h"
#include "CalendarAPIexample.hrh"
#include "CalendarAPIexampleEntryItemList.h"
#include "CalendarAPIexampleDocument.h"


// ================= MEMBER FUNCTIONS =======================

// constructor
CCalendarAPIexampleEntryContainer::CCalendarAPIexampleEntryContainer()
	{
	}

// destructor
CCalendarAPIexampleEntryContainer::~CCalendarAPIexampleEntryContainer()
	{
	delete iItemList;
	iItemList=NULL;
	}

// Two-phased constructor.	
CCalendarAPIexampleEntryContainer* CCalendarAPIexampleEntryContainer::NewL(
                            const TRect& aRect, 
                            const TDesC& aName,
                            const TDateTime& aDate,
                            const TBool& aAlarm,
                            const TDateTime& aAlarmTime,
                            const TInt& aSync)
	{
	CCalendarAPIexampleEntryContainer* self = 
	    new (ELeave) CCalendarAPIexampleEntryContainer();
	CleanupStack::PushL(self);
	self->ConstructL(aRect, aName, aDate,aAlarm, aAlarmTime, aSync);
	CleanupStack::Pop(self);
	return self;
	}

// Symbian OS default constructor can leave.	
void CCalendarAPIexampleEntryContainer::ConstructL(
                            const TRect& aRect,
                            const TDesC& aName,
                            const TDateTime& aDate,
                            const TBool& aAlarm,
                            const TDateTime& aAlarmTime,
                            const TInt& aSync)
	{
	CreateWindowL();    

 	iItemList = new (ELeave) CCalendarAPIexampleEntryItemList();
	SetValues(aName, aDate,aAlarm, aAlarmTime, aSync);
	
	//This results in a call to CreateSettingItemL
	//So the data should be there already	
    iItemList->ConstructFromResourceL(R_ENTRY_SETTINGS_LIST); 
    iItemList->MakeVisible(ETrue);
    iItemList->SetRect(aRect);
    
    iItemList->ActivateL();
    iItemList->DrawNow();    

	SetRect(aRect);
    
	ActivateL();	
	}

//This is called by framework because the component is in control stack	
void CCalendarAPIexampleEntryContainer::HandleResourceChange(TInt aType)
    {    
    CCoeControl::HandleResourceChange(aType);
    
    if (aType == KEikDynamicLayoutVariantSwitch)
        {
        TRect mainPaneRect;
        AknLayoutUtils::LayoutMetricsRect(
            AknLayoutUtils::EMainPane, mainPaneRect );        
        SetRect(mainPaneRect);
        
        TRect rect = Rect();
        
        AknLayoutUtils::LayoutMetricsRect(
            AknLayoutUtils::EMainPane, mainPaneRect );        
        
        //Set the itemlist and it's listboxes size
        iItemList->SetRect(Rect());
        iItemList->ListBox()->SetRect(Rect());
        
        //Set their position to mainpanes top left corner
        iItemList->SetPosition( mainPaneRect.iTl );
        iItemList->ListBox()->SetPosition( mainPaneRect.iTl );        
        }

	}	

// ----------------------------------------------------
// CCalendarAPIexampleEntryContainer::CountComponentControls()
// Gets the number of controls contained in a compound 
// control. 
// ----------------------------------------------------
//			
TInt CCalendarAPIexampleEntryContainer::CountComponentControls() const
	{
	TInt count = 0;
	if (iItemList)
		count++;
	return count;
	}
	
// ----------------------------------------------------
// CCalendarAPIexampleEntryContainer::ComponentControl()
// Gets the specified component of a compound control.
// ----------------------------------------------------
//	
CCoeControl* CCalendarAPIexampleEntryContainer::ComponentControl(
                                                                TInt /*aIndex*/
                                                                ) const
	{
	return iItemList;
	}
	
// ----------------------------------------------------
// CCalendarAPIexampleEntryContainer::OfferKeyEventL()
// When a key event occurs, the control framework calls 
// this function for each control on the control stack, 
// until one of them can process the key event 
// (and returns EKeyWasConsumed).
// ----------------------------------------------------
//	
TKeyResponse CCalendarAPIexampleEntryContainer::OfferKeyEventL(	
                                                const TKeyEvent& aKeyEvent, 
												TEventCode aType )
	{
    if(aType != EEventKey)
        {
        return EKeyWasNotConsumed;
        }    
    else if(iItemList)
        {
        return iItemList->OfferKeyEventL( aKeyEvent, aType );
        }
    else
        {
        return EKeyWasNotConsumed;
        }
	
	}
	
// ----------------------------------------------------
// CCalendarAPIexampleEntryContainer::SaveL()
// Calls the itemlist to save its values to containers
// member entry object
// ----------------------------------------------------
//	
TBool CCalendarAPIexampleEntryContainer::SaveL()
	{	
	return iItemList->SaveL();
	}
	
void CCalendarAPIexampleEntryContainer::GetValues(
                                TDes& aName, TTime& aDate,
                                TBool& aAlarm, TTime& aAlarmTime, 
                                TInt& aSync)
    {
    iItemList->GetValues(aName,aDate,aAlarm,aAlarmTime,aSync);
    }

void CCalendarAPIexampleEntryContainer::SetValues(
                            const TDesC& aName,
                            const TDateTime& aDate,
                            const TBool& aAlarm,
                            const TDateTime& aAlarmTime,
                            const TInt& aSync)                               
    {
    iItemList->SetValues(aName,aDate,aAlarm,aAlarmTime,aSync);
    }    

// End of File

⌨️ 快捷键说明

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