calendarui/views/dayview/inc/calendayview.h
author hgs
Mon, 28 Jun 2010 15:22:02 +0530
changeset 45 b6db4fd4947b
child 55 2c54b51f39c4
child 58 ef813d54df51
permissions -rw-r--r--
201025
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;
hgs
parents:
diff changeset
    35
class AgendaEntry;
hgs
parents:
diff changeset
    36
class CalenDocLoader;
hgs
parents:
diff changeset
    37
class CalenDayContentScrollArea;
hgs
parents:
diff changeset
    38
class CalenDayContentWidget;
hgs
parents:
diff changeset
    39
class CalenDayHourScrollArea;
hgs
parents:
diff changeset
    40
class CalenDayModelManager;
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// Constants
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
#ifdef  CALENVIEWS_DLL
hgs
parents:
diff changeset
    47
#define CALENDAYVIEW_EXPORT Q_DECL_EXPORT
hgs
parents:
diff changeset
    48
#else
hgs
parents:
diff changeset
    49
#define CALENDAYVIEW_EXPORT Q_DECL_IMPORT
hgs
parents:
diff changeset
    50
#endif
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
class CalenDayView : public CalenNativeView
hgs
parents:
diff changeset
    53
{
hgs
parents:
diff changeset
    54
    Q_OBJECT
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
public:
hgs
parents:
diff changeset
    57
    
hgs
parents:
diff changeset
    58
    /**
hgs
parents:
diff changeset
    59
     * Constructor.
hgs
parents:
diff changeset
    60
     * 
hgs
parents:
diff changeset
    61
     * @param services Calendar services.
hgs
parents:
diff changeset
    62
     */
hgs
parents:
diff changeset
    63
    CALENDAYVIEW_EXPORT CalenDayView( MCalenServices &services );
hgs
parents:
diff changeset
    64
    
hgs
parents:
diff changeset
    65
    /**
hgs
parents:
diff changeset
    66
     * Destructor.
hgs
parents:
diff changeset
    67
     */
hgs
parents:
diff changeset
    68
    CALENDAYVIEW_EXPORT virtual ~CalenDayView();
hgs
parents:
diff changeset
    69
    
hgs
parents:
diff changeset
    70
public:
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
//From CalenNativeView
hgs
parents:
diff changeset
    73
    
hgs
parents:
diff changeset
    74
    /**
hgs
parents:
diff changeset
    75
     * Handles locale change.
hgs
parents:
diff changeset
    76
     * 
hgs
parents:
diff changeset
    77
     * @param reason Change reason.
hgs
parents:
diff changeset
    78
     */    
hgs
parents:
diff changeset
    79
    virtual void onLocaleChanged(int reason);
hgs
parents:
diff changeset
    80
    
hgs
parents:
diff changeset
    81
//From CalenView
hgs
parents:
diff changeset
    82
    
hgs
parents:
diff changeset
    83
    /**
hgs
parents:
diff changeset
    84
     * Handles view (re)population.
hgs
parents:
diff changeset
    85
     * 
hgs
parents:
diff changeset
    86
     */
hgs
parents:
diff changeset
    87
    CALENDAYVIEW_EXPORT virtual void doPopulation();
hgs
parents:
diff changeset
    88
    
hgs
parents:
diff changeset
    89
    /**
hgs
parents:
diff changeset
    90
     * Informs the organizer that the view's population is complete.
hgs
parents:
diff changeset
    91
     */
hgs
parents:
diff changeset
    92
    virtual void populationComplete();
hgs
parents:
diff changeset
    93
   
hgs
parents:
diff changeset
    94
//From MCalenNotificationHandler
hgs
parents:
diff changeset
    95
    
hgs
parents:
diff changeset
    96
    /**
hgs
parents:
diff changeset
    97
     * The function handles calendar notifications.
hgs
parents:
diff changeset
    98
     */
hgs
parents:
diff changeset
    99
    virtual void HandleNotification( const TCalenNotification notification );
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
public:
hgs
parents:
diff changeset
   102
    //API
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    /**
hgs
parents:
diff changeset
   105
     * Sets up the view accroding to the 'xml'
hgs
parents:
diff changeset
   106
     * 
hgs
parents:
diff changeset
   107
     * @param docLoader Loaded document.
hgs
parents:
diff changeset
   108
     */
hgs
parents:
diff changeset
   109
    CALENDAYVIEW_EXPORT void setupView(CalenDocLoader* docLoader);
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
private slots:
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    /**
hgs
parents:
diff changeset
   114
     * Handles 'back' functionality;
hgs
parents:
diff changeset
   115
     */
hgs
parents:
diff changeset
   116
    void onBack();
hgs
parents:
diff changeset
   117
    
hgs
parents:
diff changeset
   118
    /**
hgs
parents:
diff changeset
   119
     * Updates selected date member and context
hgs
parents:
diff changeset
   120
     */
hgs
parents:
diff changeset
   121
    void dayChangeStarted(CalenScrollDirection direction);
hgs
parents:
diff changeset
   122
    
hgs
parents:
diff changeset
   123
    /**
hgs
parents:
diff changeset
   124
     * Refreshes the model
hgs
parents:
diff changeset
   125
     */
hgs
parents:
diff changeset
   126
    void dayChanged(CalenScrollDirection direction);
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
    /**
hgs
parents:
diff changeset
   129
     * Sets new date as heading text. Triggerd after fadeOut effect.
hgs
parents:
diff changeset
   130
     */
hgs
parents:
diff changeset
   131
    void setHeadingText(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   132
    
hgs
parents:
diff changeset
   133
    /**
hgs
parents:
diff changeset
   134
     * Handles actions from menu
hgs
parents:
diff changeset
   135
     */
hgs
parents:
diff changeset
   136
    void runNewMeeting();
hgs
parents:
diff changeset
   137
    void runGoToToday();
hgs
parents:
diff changeset
   138
    void runChangeToAgendaView();
hgs
parents:
diff changeset
   139
    void runLunarData();
hgs
parents:
diff changeset
   140
    
hgs
parents:
diff changeset
   141
    void showRegionalInformation(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   142
    void showRegionalInformationFadeIn();
hgs
parents:
diff changeset
   143
    void showHideRegionalInformationChanged(const XQSettingsKey& key, const QVariant& var);
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
public slots:
hgs
parents:
diff changeset
   146
	void changeView(TCalenCommandId viewId);
hgs
parents:
diff changeset
   147
private:
hgs
parents:
diff changeset
   148
    /**
hgs
parents:
diff changeset
   149
     * 
hgs
parents:
diff changeset
   150
     */
hgs
parents:
diff changeset
   151
    void getCurrentDate();
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    /**
hgs
parents:
diff changeset
   154
     * setup menu for the view
hgs
parents:
diff changeset
   155
     */
hgs
parents:
diff changeset
   156
    void setupMenu();
hgs
parents:
diff changeset
   157
    
hgs
parents:
diff changeset
   158
    /**
hgs
parents:
diff changeset
   159
     * Connects view's slots.
hgs
parents:
diff changeset
   160
     */
hgs
parents:
diff changeset
   161
    void setupSlots();
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    /**
hgs
parents:
diff changeset
   164
     * Scrolls content to correct position after view repopulation
hgs
parents:
diff changeset
   165
     */
hgs
parents:
diff changeset
   166
    void setupViewport();
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
private: // members related to view management and gesture handling
hgs
parents:
diff changeset
   169
    
hgs
parents:
diff changeset
   170
    CalenDayContentScrollArea* mContentScrollArea;  //!< Scroll area for content (events)
hgs
parents:
diff changeset
   171
    
hgs
parents:
diff changeset
   172
    CalenDayContentWidget* mContentWidget;    //!< Content widget
hgs
parents:
diff changeset
   173
    
hgs
parents:
diff changeset
   174
    CalenDayHourScrollArea* mHourScrollArea;  //!< Scroll area for hour elements
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    CalenDayModelManager* mModelManager;
hgs
parents:
diff changeset
   177
    
hgs
parents:
diff changeset
   178
    QGraphicsLinearLayout* mVLayout;
hgs
parents:
diff changeset
   179
    
hgs
parents:
diff changeset
   180
   
hgs
parents:
diff changeset
   181
private:    
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
    XQSettingsManager* mSettingsManager;
hgs
parents:
diff changeset
   184
    XQSettingsKey mRegionalInfo;
hgs
parents:
diff changeset
   185
    MCalenServices  &mServices;
hgs
parents:
diff changeset
   186
	
hgs
parents:
diff changeset
   187
    /**
hgs
parents:
diff changeset
   188
     * Current date/time.
hgs
parents:
diff changeset
   189
     */
hgs
parents:
diff changeset
   190
    QDateTime mDate;
hgs
parents:
diff changeset
   191
    
hgs
parents:
diff changeset
   192
    HbGroupBox *mHeadingLabel;
hgs
parents:
diff changeset
   193
    
hgs
parents:
diff changeset
   194
    HbGroupBox *mRegionalInfoGroupBox;
hgs
parents:
diff changeset
   195
    /*!
hgs
parents:
diff changeset
   196
     * \brief It keep pointer to go to Today action from menu. 
hgs
parents:
diff changeset
   197
     */
hgs
parents:
diff changeset
   198
    HbAction *mGoToTodayMenuAction;
hgs
parents:
diff changeset
   199
};
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif // CALEDAYVIEW_H
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
//End of file