--- 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 <QGraphicsLinearLayout>
-#include <qdatetime.h>
-#include <hblabel.h>
-#include <hbextendedlocale.h>
-#include <hbframeitem.h>
-
-// 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<CalenMonthData>& 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<QDate> &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<CalenMonthData> mMonthDataArray;
- QDateTime mDate;
- QDateTime mCurrentDay;
- QDateTime mFirstDayOfGrid;
- QDateTime mLastDayOfGrid;
- int mTotalNumOfGridItems;
- QList<int> 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