diff -r f979ecb2b13e -r c198609911f9 calendarui/views/inc/calendayview.h --- a/calendarui/views/inc/calendayview.h Tue Feb 02 10:12:19 2010 +0200 +++ b/calendarui/views/inc/calendayview.h Fri Apr 16 14:57:40 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -11,163 +11,169 @@ * * Contributors: * -* Description: Declares view class of View architecture for Day view. - * +* Description: Class declaration for the day/agenda view +* */ - - #ifndef CALENDAYVIEW_H #define CALENDAYVIEW_H -// INCLUDES +// System includes +#include + +// User includes #include "calennativeview.h" -// FORWARD DECLARATIONS -class CAknNavigationDecorator; +// Forward declarations +class QGraphicsSceneMouseEvent; +class CalenDayViewWidget; +class CalenDocLoader; -// CLASS DEFINITIONS +#ifdef CALENVIEWS_DLL +#define CALENDAYVIEW_EXPORT Q_DECL_EXPORT +#else +#define CALENDAYVIEW_EXPORT Q_DECL_IMPORT +#endif /** - * Declares view for Day view + * @class CalenDayView + * @brief Class declaration for the day/agenda view + * which shows the list of events &/ to-do's (if any) + * for any given day in the calendar. User can do other + * basic operations like creating, viewing or deleting + * an event */ -NONSHARABLE_CLASS( CCalenDayView ) : public CCalenNativeView +class CalenDayView : public CalenNativeView { -public: // Constructors and destructor - /** - * Two-phased constructor. - */ - IMPORT_C static CCalenDayView* NewL( MCalenServices& aServices ); + Q_OBJECT +public: /** - * Destructor. - */ - virtual ~CCalenDayView(); - -public: // New function - /** - * Set a date text to StatusPane - * @param aTime Set a time + * @brief Constructor + * @param services A reference to the MCalenServices object */ - void SetStatusPaneFromActiveContextL(); - + CALENDAYVIEW_EXPORT CalenDayView(MCalenServices &services); + /** - * Update CBA buttons depending on if we have items or not in view - * Callend from Day Container as well as DoActivateViewImpl. - * + * @brief Default C++ constructor */ - void UpdateCbaL(); - -public: // From CCalenView - virtual TNextPopulationStep ActiveStepL(); - virtual void CancelPopulation(); - virtual TCyclePosition CyclePosition() const; - virtual const TDesC& LocalisedViewNameL( CCalenView::TViewName aViewName ); - virtual CGulIcon* CCalenDayView::ViewIconL() const; - -protected: // From CCalenNativeView + CALENDAYVIEW_EXPORT virtual ~CalenDayView(); + /** - * Clears view specific data + * @brief Initializes the view after its creation + * Must be called only after the view and its children are constructed + * @param docLoader Pointer to the document loader object which has + * loaded this view from the .docml file */ - virtual void ClearViewSpecificDataL(); + CALENDAYVIEW_EXPORT void setupView(CalenDocLoader *docLoader); /** - * Update date form context when entry is saved + * @brief Activates the current view. Sets this view as the current + * view of the application's main window. Must be called only after + * the view has been constructed and initialized */ - void UpdateDateFromContextL(); + CALENDAYVIEW_EXPORT virtual void doPopulation(); + + /** + * @brief Callback function for any notifications that has been + * subscribed by this view + * @param notification The event for which notification is being sent + */ + CALENDAYVIEW_EXPORT void HandleNotification(const TCalenNotification notification); + + /** + * @brief Getter function for the document loader. Called from the content + * widget in order get its children + */ + CALENDAYVIEW_EXPORT CalenDocLoader* docLoader(); -private: // Constructors + /** - * C++ constructor. + * @brief Called from the content widget to indicate if the day + * has any events or not + * @param yes true if day has events, false otherwise */ - CCalenDayView( MCalenServices& aServices ); + void hasEvents(bool yes); + +protected: + + // TODO: Remove these after gestures are available + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + bool eventFilter(QObject *source, QEvent *event); private: - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - /** - * From CCalenView Second phase DoActivateL - */ - void DoActivateImplL( const TVwsViewId& aPrevViewId, - TUid aCustomMessageId, - const TDesC8& aCustomMessage ); - - /** - * From CCalenView Second phase DoDeactivate - */ - void DoDeactivateImpl(); - - /** - * From CCalenView. Called when locale was changed and - * time was crossed over - */ - void OnLocaleChangedL(TInt aReason); - - /** - * From CCalenView Creates container control for DayView - */ - CCalenContainer* CreateContainerImplL(); - - /** - * From CCalenView Redraw status pane when Form is closed - */ - void RedrawStatusPaneL(); /** - * From CCalenView. Normal command handling method. - * needed for MSK. + * @brief Connects to all the toolbar and menu actions associated + * with this view */ - void HandleCommandL(TInt aCommand); - - TUid Id() const; + void setupActions(); + + /** + * @brief Callback function for listening to locale changes like + * time format, date format etc + */ + void onLocaleChanged(int reason); + +private slots: + + /** + * @brief Slot which is called whenever the orientation of the device changes + * @param orientation The current device orientation + */ + void orientationChanged(Qt::Orientation orientation); + + /** + * @brief Slot which launches back the month view + */ + void launchMonthView(); + +private: + + /** + * @var mDate + * @brief The date for which this view is being shown + */ + QDateTime mDate; /** - * Enable the copy functionality for the entries - *.to single aur multiple calendars. - */ - - void CopyToCalendarsL(); - -private: // From MEikMenuObserver - /** - * From MEikMenuObserver Changes MenuPane dynamically - */ - void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane); - -private: - - /** - * Returns ETrue if the vsd is null. - */ - TBool IsViewSpecificDataNullL(); - -private: // Data + * @var mSoftKeyAction + * TODO: This may not be required going ahead + */ + HbAction *mSoftKeyAction; + + /** + * @var mDayViewWidget + * @brief The pointer to the content widget of this view + */ + CalenDayViewWidget *mDayViewWidget; + + /** + * @var mDocLoader + * @brief Pointer to the document loader which has loaded + * this view + */ + CalenDocLoader *mDocLoader; + + /** + * @var mGoToTodayAction + * Action which provides "Go to today" functionality + */ + HbAction *mGoToTodayAction; + + /** + * @var mDeleteAction + * Action which provides "Delete" functionality + */ + HbAction *mDeleteAction; + + // TODO: Remove these after gestures are available + QPointF mTapPoint; + bool mActionTaken; - TBool iShowBackButtonOnCba; // BACK cba button test variable - TVwsViewId iPreviousViewId; // view id that the day view is switched from +}; -private: - enum TPopulationStep - { - ENothingDone, - ERequestedInstanceView, - ECreateSlotTableNext, - ESizedChanged, - ECreateListBoxDataNext, - EPopulationDone - }; - TPopulationStep iPopulationStep; +#endif /* CALENDAYVIEW_H */ - // View specific data, day container gets references to all of these. - TTime iDate; // Date of current focus. - TInt iHighlightedRowNumber; // The row number highlighted. - TInt iFirstEntryOnScreenIndex; // The offset of the topmost item on screen to the first entry. - TInt iEventViewCommandHandled; - }; - -#endif // CALENDAYVIEW_H - -// End of File +// End of file --Don't remove this.