diff -r 000000000000 -r f979ecb2b13e calendarui/multicaluidialog/inc/caluidialogimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/multicaluidialog/inc/caluidialogimpl.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description : implementation class for multiple calendars list dialog. + */ + +#ifndef CCalUiDialogImpl_H_ +#define CCalCalUiDialogImpl_H_ + +//System include +#include +#include +#include +#include +#include +#include + +//Forward declarations. +class CEikColumnListBox; +class TAknsItemID; +class CAknIconArray; +class CAknDoubleGraphicStyleListBox; +class CAknsBasicBackgroundControlContext; +class CAknNavigationControlContainer; +class CCalenDbListbox; +class CGulIcon; +class CCalEntry; +class CMultiCalUiDialogModel; +#include "multicaluidialogimpl.h" +#include "multicaluidialogmodel.h" +#include "caldblistbox.h" +#include"caldblistboxitemdrawer.h" + +#include +#include +#include +#include // for CFormattedCellListBoxItemDrawer +#include // for CAknDoubleLargeStyleListBox +#include + + +NONSHARABLE_CLASS(CCalUiDialogImpl) : public CAknDialog, public MEikListBoxObserver + { + public: + /** + * 1st phase constructor pushes pointer on the cleanup stack + * @return CCalenMultiDbUtilityImpl* A pointer to CCalenMultiDbUtilityImpl + */ + static CCalUiDialogImpl* NewL(const RPointerArray& aCalEntries); + + /** + * 1st phase constructor pushes pointer on the cleanup stack + * @return CCalenMultiDbUtilityImpl* A pointer to CCalenMultiDbUtilityImpl + */ + static CCalUiDialogImpl* NewLC(const RPointerArray& aCalEntries); + + /** + * Destructor. + */ + ~CCalUiDialogImpl(); + + /** + * Launches the multiple calendars list dialog + */ + TInt LaunchCalenDbListDialogL(); + + /** + * @brief From CAknDialog. + * @param aDrawNow draw status from CAknDialog. + */ + void FocusChanged( TDrawNow aDrawNow ); + + protected: + /** + * From CEikDialog + * @param aResourceId Not used. + * @param aMenuPane Not used. + */ + void DynInitMenuPaneL( TInt aResourceId,CEikMenuPane* aMenuPane ) ; + + /** + * From MEikMenuObserver. + * Hides the menu. + * @param aCommandId Not used. + */ + void ProcessCommandL( TInt aCommandId ) ; + + /** + * From CCoeControl. + * Handles key events. + **/ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) ; + + /** + * From CCoeControl. + * Handles pointer events. + **/ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + /** + * From CEikDialog. + * Handles a dialog button press for the specified button. + **/ + TBool OkToExitL(TInt aButtonId) ; + + /** + * From MObjectProvider. + * Gets Mop supply object of the given type. + * @param aId Identifier for the supply object. + * @return Pointer to the supply object type ID. + */ + TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + + /** + * From @c CEikDialog. + * Prepare of controls + **/ + void PreLayoutDynInitL(); + + /** + * From @c CEikDialog. + **/ + void PostLayoutDynInitL(); + + /** + * From @c CCoeControl. + * Called when controls extent is set. + **/ + void SizeChanged(); + + /** + * From @c CCoeControl. + **/ + void HandleResourceChange(TInt aType); + + /** + * From @c CCoeControl. + * @param aIndex index of the control + * @return Pointer to the Control. + **/ + CCoeControl* ComponentControl( TInt aIndex) const; + + /** + * From @c CCoeControl. + * @return Pointer to the Control. + **/ + TInt CountComponentControls() const; + + /** + * From @c CCoeControl. + * + * @param aRect + **/ + void Draw(const TRect &aRect) const; + + private: + /** + * Class constructor + */ + CCalUiDialogImpl(); + + /** + * Second phase constructor + */ + void ConstructL(const RPointerArray& aCalEntries); + + private: //Internal + /** + * Construction of listbox ui + * @return void + */ + void ConstructListL(); + + /** + * Update listbox contents + * @return void + */ + void UpdateListboxL(); + + /** + * setup title pane for the status pane + * @param aCurrentState + * @return void + */ + void SetTitlePaneL( TBool aCurrentState ); + + /** + * Marks or unmarks the calendar based on user input. + */ + void MarkUnmarkCalendarL(); + + + // from MEikListBoxObserver + /** + * Handles list box events. + * + * This is invoked by CEikListBox to + * notify the observer of list box events. + * + * @param aListBox The originating list box. + * @param aEventType A code for the event. + */ + void HandleListBoxEventL( CEikListBox* /*aListBox */, + TListBoxEvent aEventType ); + + /* + * Async exit for the dialog + * @param aPtr + * @return TInt + */ + static TInt DoAsyncExit(TAny* aPtr); + + + private: // data + CCalenDbListbox* iListBox; + CAknsBasicBackgroundControlContext* iBgContext; //Owns + CAknNavigationControlContainer* iNaviContainer; + CDesCArrayFlat* iDesArray; //Owns + TRect iRect; + RArray iColorUidArray; + TInt iResourceFileOffset; + TFileName iIconFile; + CAknIconArray* iIconsList; + TBool iFirstTap; + TBufC<20> iTitlepaneText; + CMultiCalUiDialogModel* iMultiCalUiDialogModel; + CAsyncCallBack* iAsyncExit; + TInt iAsyncExitCmd; + }; + +#endif //CCalUiDialogImpl_H_