calendarui/views/dayview/inc/calendayview.h
author hgs
Mon, 20 Sep 2010 12:44:39 +0530
changeset 75 7ac58b2aae6f
parent 70 a5ed90760192
child 81 ce92091cbd61
permissions -rw-r--r--
201037
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
public:
hgs
parents:
diff changeset
    96
    //API
hgs
parents:
diff changeset
    97
    
hgs
parents:
diff changeset
    98
    /**
hgs
parents:
diff changeset
    99
     * Sets up the view accroding to the 'xml'
hgs
parents:
diff changeset
   100
     * 
hgs
parents:
diff changeset
   101
     * @param docLoader Loaded document.
hgs
parents:
diff changeset
   102
     */
hgs
parents:
diff changeset
   103
    CALENDAYVIEW_EXPORT void setupView(CalenDocLoader* docLoader);
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
private slots:
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
    /**
hgs
parents:
diff changeset
   108
     * Handles 'back' functionality;
hgs
parents:
diff changeset
   109
     */
hgs
parents:
diff changeset
   110
    void onBack();
hgs
parents:
diff changeset
   111
    
hgs
parents:
diff changeset
   112
    /**
hgs
parents:
diff changeset
   113
     * Updates selected date member and context
hgs
parents:
diff changeset
   114
     */
hgs
parents:
diff changeset
   115
    void dayChangeStarted(CalenScrollDirection direction);
hgs
parents:
diff changeset
   116
    
hgs
parents:
diff changeset
   117
    /**
hgs
parents:
diff changeset
   118
     * Refreshes the model
hgs
parents:
diff changeset
   119
     */
hgs
parents:
diff changeset
   120
    void dayChanged(CalenScrollDirection direction);
hgs
parents:
diff changeset
   121
    
hgs
parents:
diff changeset
   122
    /**
hgs
parents:
diff changeset
   123
     * Sets new date as heading text. Triggerd after fadeOut effect.
hgs
parents:
diff changeset
   124
     */
hgs
parents:
diff changeset
   125
    void setHeadingText(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   126
    
hgs
parents:
diff changeset
   127
    /**
hgs
parents:
diff changeset
   128
     * Handles actions from menu
hgs
parents:
diff changeset
   129
     */
hgs
parents:
diff changeset
   130
    void runNewMeeting();
hgs
parents:
diff changeset
   131
    void runGoToToday();
hgs
parents:
diff changeset
   132
    void runChangeToAgendaView();
hgs
parents:
diff changeset
   133
    void runLunarData();
hgs
parents:
diff changeset
   134
    
hgs
parents:
diff changeset
   135
    void showRegionalInformation(const HbEffect::EffectStatus &status);
hgs
parents:
diff changeset
   136
    void showRegionalInformationFadeIn();
hgs
parents:
diff changeset
   137
    void showHideRegionalInformationChanged(const XQSettingsKey& key, const QVariant& var);
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
public slots:
hgs
parents:
diff changeset
   140
	void changeView(TCalenCommandId viewId);
57
hgs
parents: 55
diff changeset
   141
hgs
parents: 55
diff changeset
   142
private slots:
55
hgs
parents: 45
diff changeset
   143
    /**
hgs
parents: 45
diff changeset
   144
     * Scrolls content to correct position after view repopulation
hgs
parents: 45
diff changeset
   145
     */
hgs
parents: 45
diff changeset
   146
    void setupViewport();
63
hgs
parents: 57
diff changeset
   147
    void orientationChanged(Qt::Orientation orientation);
55
hgs
parents: 45
diff changeset
   148
45
hgs
parents:
diff changeset
   149
private:
hgs
parents:
diff changeset
   150
    /**
hgs
parents:
diff changeset
   151
     * 
hgs
parents:
diff changeset
   152
     */
hgs
parents:
diff changeset
   153
    void getCurrentDate();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    /**
hgs
parents:
diff changeset
   156
     * setup menu for the view
hgs
parents:
diff changeset
   157
     */
hgs
parents:
diff changeset
   158
    void setupMenu();
hgs
parents:
diff changeset
   159
    
hgs
parents:
diff changeset
   160
    /**
hgs
parents:
diff changeset
   161
     * Connects view's slots.
hgs
parents:
diff changeset
   162
     */
hgs
parents:
diff changeset
   163
    void setupSlots();
55
hgs
parents: 45
diff changeset
   164
    
75
hgs
parents: 70
diff changeset
   165
    void initializeViews();
hgs
parents: 70
diff changeset
   166
    
45
hgs
parents:
diff changeset
   167
private: // members related to view management and gesture handling
hgs
parents:
diff changeset
   168
    
hgs
parents:
diff changeset
   169
    CalenDayModelManager* mModelManager;
hgs
parents:
diff changeset
   170
    
55
hgs
parents: 45
diff changeset
   171
    CalenDayContentScrollArea* mContentScrollArea;  //!< Scroll area for content
hgs
parents: 45
diff changeset
   172
    CalenDayContentWidget* mContentWidget;    //!< Content widget
hgs
parents: 45
diff changeset
   173
    CalenDayHourScrollArea* mHourScrollArea;  //!< Scroll area for hour elements
hgs
parents: 45
diff changeset
   174
    QGraphicsLinearLayout* mVLayout;    //!< Vertical layout for day view
63
hgs
parents: 57
diff changeset
   175
    HbWidget* mMainContainer;//!< Container widget for hour elements and content
45
hgs
parents:
diff changeset
   176
    
55
hgs
parents: 45
diff changeset
   177
    CalenDocLoader* mDocLoader; //!< Document loader for day view
hgs
parents: 45
diff changeset
   178
    
hgs
parents: 45
diff changeset
   179
    bool mIsLaunching;  //!< Indicates that view is launching first time
70
hgs
parents: 63
diff changeset
   180
    HbWidget *mGesturesAbsorber; //!<Widget that absorbs swipe and pan gestures
55
hgs
parents: 45
diff changeset
   181
    
45
hgs
parents:
diff changeset
   182
private:    
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
    XQSettingsManager* mSettingsManager;
63
hgs
parents: 57
diff changeset
   185
    XQSettingsKey mRegionalInfoKey;
45
hgs
parents:
diff changeset
   186
    MCalenServices  &mServices;
hgs
parents:
diff changeset
   187
	
hgs
parents:
diff changeset
   188
    /**
hgs
parents:
diff changeset
   189
     * Current date/time.
hgs
parents:
diff changeset
   190
     */
hgs
parents:
diff changeset
   191
    QDateTime mDate;
hgs
parents:
diff changeset
   192
    
hgs
parents:
diff changeset
   193
    HbGroupBox *mHeadingLabel;
hgs
parents:
diff changeset
   194
    
hgs
parents:
diff changeset
   195
    HbGroupBox *mRegionalInfoGroupBox;
hgs
parents:
diff changeset
   196
    /*!
hgs
parents:
diff changeset
   197
     * \brief It keep pointer to go to Today action from menu. 
hgs
parents:
diff changeset
   198
     */
hgs
parents:
diff changeset
   199
    HbAction *mGoToTodayMenuAction;
63
hgs
parents: 57
diff changeset
   200
    
hgs
parents: 57
diff changeset
   201
    HbFrameItem *mBg;   //!< Background graphic for content and hour elements
45
hgs
parents:
diff changeset
   202
};
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
#endif // CALEDAYVIEW_H
hgs
parents:
diff changeset
   206
hgs
parents:
diff changeset
   207
//End of file