diff -r 12af337248b1 -r bd7edf625bdd calendarui/views/inc/calenmonthview.h --- a/calendarui/views/inc/calenmonthview.h Tue Aug 31 15:13:43 2010 +0300 +++ b/calendarui/views/inc/calenmonthview.h Wed Sep 01 12:32:31 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2008 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" @@ -11,175 +11,143 @@ * * Contributors: * -* Description: CalenMonthView class definition. -* +* Description: For month view of calendar application. + * */ -#ifndef CALENMONTHVIEW_H + + +#ifndef CALENMONTHVIEW_H #define CALENMONTHVIEW_H -// System includes -#include -#include -#include -#include -#include - -// User includes +// INCLUDES #include "calennativeview.h" -// Forward declarations -class QStandardItemModel; -class HbAction; -class HbGridView; -class HbExtendedLocale; -class XQSettingsManager; -class XQSettingsKey; -class AgendaUtil; -class AgendaEntry; -class MCalenContext; -class CalenMonthData; -class MCalenServices; -class CalenPreviewPane; -class CalenDocLoader; -class CalenThickLinesDrawer; -class CalenMonthGrid; -class CalenPluginLabel; +// FORWARD DECLARATIONS +class CCalenMonthContainer; +class CAknNavigationDecorator; + +// CLASS DEFINITIONS +/** + * For Month View of calendar application + */ +NONSHARABLE_CLASS( CCalenMonthView ) : public CCalenNativeView + { + public: + /** + * Two-phased constructor. + */ + IMPORT_C static CCalenMonthView* NewL( MCalenServices& aServices ); + + /** + * Destructor. + */ + virtual ~CCalenMonthView(); + + public: // New function + void SetStatusPaneFromActiveContextL(); -// Constants -const int KNumOfVisibleRows = 6; + private: // New function + /** + * C++ constructor. + */ + CCalenMonthView( MCalenServices& aServices ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); -#ifdef CALENVIEWS_DLL -#define CALENMONTHVIEW_EXPORT Q_DECL_EXPORT -#else -#define CALENMONTHVIEW_EXPORT Q_DECL_IMPORT -#endif + public: // From CCalenView + virtual TNextPopulationStep ActiveStepL(); + virtual void CancelPopulation(); + virtual TCyclePosition CyclePosition() const; + virtual const TDesC& LocalisedViewNameL( CCalenView::TViewName aViewName ); + virtual CGulIcon* CCalenMonthView::ViewIconL() const; + + protected: // From CCalenNativeView + /** + * Clears view specific data + */ + virtual void ClearViewSpecificDataL(); + + /** + * Updates preview pane/preview popup + */ + void UpdatePreviewPaneL(); -class CALENMONTHVIEW_EXPORT CalenMonthView : public CalenNativeView -{ - Q_OBJECT - -public: - CalenMonthView( MCalenServices &services ); - virtual ~CalenMonthView(); - -public: // From CCalenView - virtual void doPopulation(); - void setupView(CalenDocLoader *docLoader); - void doLazyLoading(); - void handleGridItemActivated(); - void setContextForActiveDay(int index); - QDateTime getCurrentDay(); - QDateTime getActiveDay(); - int rowsInPrevMonth(); - int rowsInFutMonth(); - int getCurrGridIndex(); - void setCurrGridIndex(int index); - void populatePrevMonth(); - void populateNextMonth(); - void onLocaleChanged(int reason); - QList& monthDataList(); - void updateModelWithPrevMonth(); - void updateModelWithFutureMonth(); - void populatePreviewPane(QDateTime &dateTime); - void handlePreviewPaneGesture(bool rightGesture); - QDateTime firstDayOfGrid(); - void fetchEntriesAndUpdateModel(); - void launchDayView(); - void disconnectAboutToQuitEvent(); - -private: - void createGrid(); - void populateWithInstanceView(); - void completePopulation(); - void prepareForPopulation(); - QDateTime dateFromContext( const MCalenContext &context ); - void setActiveDay(QDateTime day); - void setDate(); - void getInstanceList(QList &list, - QDateTime rangeStart, QDateTime rangeEnd); - void handleChangeOrientation(); - void setDateToLabel(); - void updateWeekNumGridModel(); - void addWeekNumbers(); - void removeWeekNumbers(); - void addBackgroundFrame(); - void refreshViewOnGoToDate(); - void showHideRegionalInformation(); - void onContextChanged(); - void updateDayLabel(); - -private slots: - void createEditor(); - void goToToday(); - void updateMonthDataArrayWithActiveDates(); - void handleLeftEffectCompleted(const HbEffect::EffectStatus &status); - void handleRightEffectCompleted(const HbEffect::EffectStatus &status); - void addRemoveActionsInMenu(); - void changeOrientation(Qt::Orientation orientation); - void handleThemeChange(); - -private: - bool mIsFirstTimeLoad; - CalenDocLoader *mDocLoader; - CalenThickLinesDrawer *mDayNameWidget; - CalenMonthGrid *mMonthGrid; - HbWidget* mPrevPaneParent; - HbWidget* mPrevPaneLayoutWidget; - QGraphicsLinearLayout* mPrevPaneLayout; - HbWidget* mCurrPaneParent; - HbWidget* mCurrPaneLayoutWidget; - QGraphicsLinearLayout* mCurrPaneLayout; - HbWidget* mNextPaneParent; - HbWidget* mNextPaneLayoutWidget; - QGraphicsLinearLayout* mNextPaneLayout; - CalenPreviewPane* mCurrPreviewPane; - CalenPreviewPane* mPrevPreviewPane; - CalenPreviewPane* mNextPreviewPane; - CalenThickLinesDrawer *mWeekNumberWidget; - HbWidget *mMonthGridPlusWeekNumWidget; - HbExtendedLocale mLocale; - int mIndexToBeScrolled; - QDateTime mActiveMonth; - int mNumOfRowsInPrevMonth; - int mNumOfRowsInFutureMonth; - HbLabel *mFirstDayLabel; - HbLabel *mSecondDayLabel; - HbLabel *mThirdDayLabel; - HbLabel *mFourthDayLabel; - HbLabel *mFifthDayLabel; - HbLabel *mSixthDayLabel; - HbLabel *mSeventhDayLabel; - HbLabel *mFirstWeekLabel; - HbLabel *mSecondWeekLabel; - HbLabel *mThirdWeekLabel; - HbLabel *mFourthWeekLabel; - HbLabel *mFifthWeekLabel; - HbLabel *mSixthWeekLabel; - QList mMonthDataArray; - QDateTime mDate; - QDateTime mCurrentDay; - QDateTime mFirstDayOfGrid; - QDateTime mLastDayOfGrid; - int mTotalNumOfGridItems; - QList mWeekNumbers; - HbLabel *mTitleLabel; - Qt::Orientation mOrientation; - XQSettingsManager *mSettingsManager; - XQSettingsKey *mWeekNumberCenrepKey; - uint mIsWeekNumbersShown; - AgendaUtil *mAgendaUtil; - bool mIsPrevPaneGesture; - HbAction *mGoToTodayAction; - CalenPluginLabel *mPrevRegionalInfo; - CalenPluginLabel *mCurrRegionalInfo; - CalenPluginLabel *mNextRegionalInfo; - HbMenu *mDeleteSubMenu; - QColor mWeekDaysColor; - bool mIsAboutToQuitEventConnected; // bool to check if month view is registered to get aboutToQuit signals - QColor mPreviewHeadingColor; -}; + /** + * Hides preview pane/preview popup + */ + void HidePreviewPane(); + + private: // From CCalenView + /** + * From CCalenView CCalenView::DoActivateL() calls DoActivateImplL() + */ + void DoActivateImplL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CCalenView + * CCalenView::DoDeactivateL() calls DoDeactivateImplL() + */ + void DoDeactivateImpl(); + + /** + * From CCalenView Creates CCalenContainer + */ + CCalenContainer* CreateContainerImplL(); + + /** + * From CCalenView Called when cross over midinight or locale change. + */ + void OnLocaleChangedL(TInt aReason); + + /** + * From CCalenView Redraw status pane when Form is closed + */ + void RedrawStatusPaneL(); + + /** + * From CCalenView. Normal command handling method. + * needed for MSK. + */ + void HandleCommandL(TInt aCommand); + + private: + // From CAknView + TUid Id() const; + + /** + * Returns ETrue if the vsd is null. + */ + TBool IsViewSpecificDataNullL(); + + private: // From MEikMenuObserver + /** + * From MEikMenuObserver Changes MenuPane dynamically + */ + void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); + + private: // Data + + enum TPopulationStep + { + ENothingDone, + ESizeChanged, + ERequestedInstanceView, + ESetIndicatorNext, + ESetFocusNext, + EPopulationDone + }; + TPopulationStep iPopulationStep; + // view specific data + TTime iDate; + }; #endif //CALENMONTHVIEW_H -// End of file --Don't remove this. + +// End of File