calendarui/views/dayview/inc/calendayview.h
author hgs
Wed, 25 Aug 2010 14:02:13 +0530
changeset 63 a3cb48f6c889
parent 57 bb2d3e476f29
child 70 a5ed90760192
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: CalenDayView class definition.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef CALEDAYVIEW_H
hgs
parents:
diff changeset
    19
#define CALEDAYVIEW_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// System includes
hgs
parents:
diff changeset
    22
#include <QDateTime>
hgs
parents:
diff changeset
    23
#include <xqsettingskey.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// User includes
hgs
parents:
diff changeset
    26
#include "calennativeview.h"
hgs
parents:
diff changeset
    27
#include "calendaycommonheaders.h"
hgs
parents:
diff changeset
    28
#include "hb_calencommands.hrh"      // command ids
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// Forward declarations
hgs
parents:
diff changeset
    31
class QGraphicsLinearLayout;
hgs
parents:
diff changeset
    32
class XQSettingsManager;
hgs
parents:
diff changeset
    33
class QVariant;
hgs
parents:
diff changeset
    34
class HbGroupBox;
63
hgs
parents: 57
diff changeset
    35
class HbFrameItem;
45
hgs
parents:
diff changeset
    36
class AgendaEntry;
hgs
parents:
diff changeset
    37
class CalenDocLoader;
hgs
parents:
diff changeset
    38
class CalenDayContentScrollArea;
hgs
parents:
diff changeset
    39
class CalenDayContentWidget;
hgs
parents:
diff changeset
    40
class CalenDayHourScrollArea;
hgs
parents:
diff changeset
    41
class CalenDayModelManager;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
// Constants
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
#ifdef  CALENVIEWS_DLL
hgs
parents:
diff changeset
    48
#define CALENDAYVIEW_EXPORT Q_DECL_EXPORT
hgs
parents:
diff changeset
    49
#else
hgs
parents:
diff changeset
    50
#define CALENDAYVIEW_EXPORT Q_DECL_IMPORT
hgs
parents:
diff changeset
    51
#endif
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
class CalenDayView : public CalenNativeView
hgs
parents:
diff changeset
    54
{
hgs
parents:
diff changeset
    55
    Q_OBJECT
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
public:
hgs
parents:
diff changeset
    58
    
hgs
parents:
diff changeset
    59
    /**
hgs
parents:
diff changeset
    60
     * Constructor.
hgs
parents:
diff changeset
    61
     * 
hgs
parents:
diff changeset
    62
     * @param services Calendar services.
hgs
parents:
diff changeset
    63
     */
hgs
parents:
diff changeset
    64
    CALENDAYVIEW_EXPORT CalenDayView( MCalenServices &services );
hgs
parents:
diff changeset
    65
    
hgs
parents:
diff changeset
    66
    /**
hgs
parents:
diff changeset
    67
     * Destructor.
hgs
parents:
diff changeset
    68
     */
hgs
parents:
diff changeset
    69
    CALENDAYVIEW_EXPORT virtual ~CalenDayView();
hgs
parents:
diff changeset
    70
    
hgs
parents:
diff changeset
    71
public:
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
//From CalenNativeView
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    /**
hgs
parents:
diff changeset
    76
     * Handles locale change.
hgs
parents:
diff changeset
    77
     * 
hgs
parents:
diff changeset
    78
     * @param reason Change reason.
hgs
parents:
diff changeset
    79
     */    
hgs
parents:
diff changeset
    80
    virtual void onLocaleChanged(int reason);
hgs
parents:
diff changeset
    81
    
hgs
parents:
diff changeset
    82
//From CalenView
hgs
parents:
diff changeset
    83
    
hgs
parents:
diff changeset
    84
    /**
hgs
parents:
diff changeset
    85
     * Handles view (re)population.
hgs
parents:
diff changeset
    86
     * 
hgs
parents:
diff changeset
    87
     */
hgs
parents:
diff changeset
    88
    CALENDAYVIEW_EXPORT virtual void doPopulation();
hgs
parents:
diff changeset
    89
    
hgs
parents:
diff changeset
    90
    /**
hgs
parents:
diff changeset
    91
     * Informs the organizer that the view's population is complete.
hgs
parents:
diff changeset
    92
     */
hgs
parents:
diff changeset
    93
    virtual void populationComplete();
hgs
parents:
diff changeset
    94
   
hgs
parents:
diff changeset
    95
//From MCalenNotificationHandler
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
    /**
hgs
parents:
diff changeset
    98
     * The function handles calendar notifications.
hgs
parents:
diff changeset
    99
     */
hgs
parents:
diff changeset
   100
    virtual void HandleNotification( const TCalenNotification notification );
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
public:
hgs
parents:
diff changeset
   103
    //API
hgs
parents:
diff changeset
   104
    
hgs
parents:
diff changeset
   105
    /**
hgs
parents:
diff changeset
   106
     * Sets up the view accroding to the 'xml'
hgs
parents:
diff changeset
   107
     * 
hgs
parents:
diff changeset
   108
     * @param docLoader Loaded document.
hgs
parents:
diff changeset
   109
     */
hgs
parents:
diff changeset
   110
    CALENDAYVIEW_EXPORT void setupView(CalenDocLoader* docLoader);
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
private slots:
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    /**
hgs
parents:
diff changeset
   115
     * Handles 'back' functionality;
hgs
parents:
diff changeset
   116
     */
hgs
parents:
diff changeset
   117
    void onBack();
hgs
parents:
diff changeset
   118
    
hgs
parents:
diff changeset
   119
    /**
hgs
parents:
diff changeset
   120
     * Updates selected date member and context
hgs
parents:
diff changeset
   121
     */
hgs
parents:
diff changeset
   122
    void dayChangeStarted(CalenScrollDirection direction);
hgs
parents:
diff changeset
   123
    
hgs
parents:
diff changeset
   124
    /**
hgs
parents:
diff changeset
   125
     * Refreshes the model
hgs
parents:
diff changeset
   126
     */
hgs
parents:
diff changeset
   127
    void dayChanged(CalenScrollDirection direction);
hgs
parents:
diff changeset
   128
    
hgs
parents:
diff changeset
   129
    /**
hgs
parents:
diff changeset
   130
     * Sets new date as heading text. Triggerd after fadeOut effect.
hgs
parents:
diff changeset
   131
     */
hgs
parents:
diff changeset
   132
    void setHeadingText(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   133
    
hgs
parents:
diff changeset
   134
    /**
hgs
parents:
diff changeset
   135
     * Handles actions from menu
hgs
parents:
diff changeset
   136
     */
hgs
parents:
diff changeset
   137
    void runNewMeeting();
hgs
parents:
diff changeset
   138
    void runGoToToday();
hgs
parents:
diff changeset
   139
    void runChangeToAgendaView();
hgs
parents:
diff changeset
   140
    void runLunarData();
hgs
parents:
diff changeset
   141
    
hgs
parents:
diff changeset
   142
    void showRegionalInformation(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   143
    void showRegionalInformationFadeIn();
hgs
parents:
diff changeset
   144
    void showHideRegionalInformationChanged(const XQSettingsKey& key, const QVariant& var);
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
public slots:
hgs
parents:
diff changeset
   147
	void changeView(TCalenCommandId viewId);
57
hgs
parents: 55
diff changeset
   148
hgs
parents: 55
diff changeset
   149
private slots:
55
hgs
parents: 45
diff changeset
   150
    /**
hgs
parents: 45
diff changeset
   151
     * Scrolls content to correct position after view repopulation
hgs
parents: 45
diff changeset
   152
     */
hgs
parents: 45
diff changeset
   153
    void setupViewport();
63
hgs
parents: 57
diff changeset
   154
    void orientationChanged(Qt::Orientation orientation);
55
hgs
parents: 45
diff changeset
   155
45
hgs
parents:
diff changeset
   156
private:
hgs
parents:
diff changeset
   157
    /**
hgs
parents:
diff changeset
   158
     * 
hgs
parents:
diff changeset
   159
     */
hgs
parents:
diff changeset
   160
    void getCurrentDate();
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    /**
hgs
parents:
diff changeset
   163
     * setup menu for the view
hgs
parents:
diff changeset
   164
     */
hgs
parents:
diff changeset
   165
    void setupMenu();
hgs
parents:
diff changeset
   166
    
hgs
parents:
diff changeset
   167
    /**
hgs
parents:
diff changeset
   168
     * Connects view's slots.
hgs
parents:
diff changeset
   169
     */
hgs
parents:
diff changeset
   170
    void setupSlots();
55
hgs
parents: 45
diff changeset
   171
    
45
hgs
parents:
diff changeset
   172
private: // members related to view management and gesture handling
hgs
parents:
diff changeset
   173
    
hgs
parents:
diff changeset
   174
    CalenDayModelManager* mModelManager;
hgs
parents:
diff changeset
   175
    
55
hgs
parents: 45
diff changeset
   176
    CalenDayContentScrollArea* mContentScrollArea;  //!< Scroll area for content
hgs
parents: 45
diff changeset
   177
    CalenDayContentWidget* mContentWidget;    //!< Content widget
hgs
parents: 45
diff changeset
   178
    CalenDayHourScrollArea* mHourScrollArea;  //!< Scroll area for hour elements
hgs
parents: 45
diff changeset
   179
    QGraphicsLinearLayout* mVLayout;    //!< Vertical layout for day view
63
hgs
parents: 57
diff changeset
   180
    HbWidget* mMainContainer;//!< Container widget for hour elements and content
45
hgs
parents:
diff changeset
   181
    
55
hgs
parents: 45
diff changeset
   182
    CalenDocLoader* mDocLoader; //!< Document loader for day view
hgs
parents: 45
diff changeset
   183
    
hgs
parents: 45
diff changeset
   184
    bool mIsLaunching;  //!< Indicates that view is launching first time
hgs
parents: 45
diff changeset
   185
    
45
hgs
parents:
diff changeset
   186
private:    
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
    XQSettingsManager* mSettingsManager;
63
hgs
parents: 57
diff changeset
   189
    XQSettingsKey mRegionalInfoKey;
45
hgs
parents:
diff changeset
   190
    MCalenServices  &mServices;
hgs
parents:
diff changeset
   191
	
hgs
parents:
diff changeset
   192
    /**
hgs
parents:
diff changeset
   193
     * Current date/time.
hgs
parents:
diff changeset
   194
     */
hgs
parents:
diff changeset
   195
    QDateTime mDate;
hgs
parents:
diff changeset
   196
    
hgs
parents:
diff changeset
   197
    HbGroupBox *mHeadingLabel;
hgs
parents:
diff changeset
   198
    
hgs
parents:
diff changeset
   199
    HbGroupBox *mRegionalInfoGroupBox;
hgs
parents:
diff changeset
   200
    /*!
hgs
parents:
diff changeset
   201
     * \brief It keep pointer to go to Today action from menu. 
hgs
parents:
diff changeset
   202
     */
hgs
parents:
diff changeset
   203
    HbAction *mGoToTodayMenuAction;
63
hgs
parents: 57
diff changeset
   204
    
hgs
parents: 57
diff changeset
   205
    HbFrameItem *mBg;   //!< Background graphic for content and hour elements
45
hgs
parents:
diff changeset
   206
};
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
hgs
parents:
diff changeset
   209
#endif // CALEDAYVIEW_H
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
//End of file