calendarwidgetplugin/inc/calendarwidget.h
changeset 0 db1bf15cefff
child 1 f8e7eccf5f96
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarwidgetplugin/inc/calendarwidget.h	Tue Jul 06 11:55:49 2010 +0300
@@ -0,0 +1,219 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Home screen calendar widget
+*
+*/
+
+#ifndef CALENDARWIDGET_H
+#define CALENDARWIDGET_H
+
+// System includes
+#include <hbwidget.h>
+
+// Forward declarations
+class HbLabel;
+class QGraphicsLinearLayout;
+class HbFrameDrawer;
+class HbFrameItem;
+class ContentLayoutHandler;
+class DateIconLayoutHandler;
+class MainLayoutHandler;
+/*!
+    \class HbWidget
+    \brief The super class for homescreen widgets.
+*/
+class HbWidget;
+class XQServiceRequest;
+class HbDocumentLoader;
+class QTranslator;
+
+/*!
+    \class CalendarWidget
+    \brief The CalendarWidget class is the main class for the calendar widget project
+*/
+// Class declaration
+class CalendarWidget : public HbWidget
+{
+    Q_OBJECT
+
+public:
+    /*! 
+        \fn CalendarWidget::CalendarWidget(QGraphicsItem* parent, Qt::WindowFlags flags)
+        
+        Constructor of the CalendarWidget class.
+     */
+    CalendarWidget(QGraphicsItem *parent = 0, Qt::WindowFlags flags = 0);
+    /*!
+        \fn CalendarWidget::~CalendarWidget()
+
+        Destructor of the CalendarWidget class.
+    */
+    ~CalendarWidget();
+    /*!
+        \fn QRectF CalendarWidget::boundingRect() const
+
+        Derived from HbWidget. Returns the bounding rectangle of the widget.
+    */
+    QRectF boundingRect() const;
+    /*!
+        \fn QPainterPath CalendarWidget::shape() const
+
+        Derived from HbWidget. Returns the shape of the widget.
+    */
+    QPainterPath shape() const;
+
+signals:
+    /*!
+        \fn void CalendarWidget::mousePressed(QPointF& point)
+
+        Emitted by the widget when mouse press event is received
+        @param point The position in which the event took place.
+    */
+    void mousePressed(QPointF& point);
+    /*!
+        \fn void CalendarWidget::mouseReleased()
+
+        Emitted by the widget when mouse release event is received.
+    */
+    void mouseReleased();
+    /*!
+        \fn void CalendarWidget::themeChanged()
+
+        Emitted by the framework when a theme change event is received by the widget.
+    */
+    void themeChanged();
+    /*!
+        \fn void CalendarWidget::finished()
+
+        Emitted by the widget if the initialization fails.
+    */
+    void finished();
+        /*!
+        \fn void CalendarWidget::tapGesture(QPointF& point)
+
+        Emitted by the widget when the widget receives a tap gesture.
+        @param point Position of the tap gesture
+    */
+    void tapGesture(QPointF& point);
+
+protected:
+    /*!
+        \fn bool CalendarWidget::event(QEvent *  event)
+
+        Derived from HbWidget. Catches all the events that are directed to the widget.
+        @param event The received event.
+    */
+    bool event(QEvent *  event);
+    /*!
+        \fn bool CalendarWidget::eventFilter(QObject * obj, QEvent * event)
+
+        Reimplemented from QObject. Filters events when CalendarWidget has 
+        been installed as an event filter for a watched object. Used for detecting 
+        mouse press events before they arrive to HomeScreen application.
+        @param obj The watched object.
+        @param event The caught event.
+    */
+    bool eventFilter(QObject *obj, QEvent *event);
+    /*!
+        \fn void CalendarWidget::gestureEvent(QGestureEvent *event)
+
+        Reimplemented from HbWidgetBase. Called by the framework when 
+        a gesture event has been received.
+        @param event The received event
+    */
+    void gestureEvent(QGestureEvent *event);
+
+public slots:
+    /*!
+        \fn void CalendarWidget::onShow()
+
+        Called by the framework each time the widget is shown on the screen.
+    */
+    void onShow();
+    /*!
+        \fn void CalendarWidget::onHide()
+
+        Called by the framework each time the widget is hidden from the screen.
+    */
+    void onHide();
+    /*!
+        \fn void CalendarWidget::onInitialize()
+
+        Called by the framework each time the widget is initialized.
+    */
+    void onInitialize();
+    /*!
+        \fn void CalendarWidget::onUninitialize()
+
+        Called by the framework each time the widget is deleted.
+    */
+    void onUninitialize();
+
+private:
+    /*!
+        \fn bool CalendarWidget::loadWidget()
+
+        Used by CalendarWidget::onInitialize to load the DOCML and create the layout handlers. 
+        Upon success it returns true. If initialization fails it returns false. 
+    */
+    bool loadWidget();
+    /*!
+        \fn void CalendarWidget::mousePressEvent(QGraphicsSceneMouseEvent *aEvent)
+
+        Called by the framework when the mouse is pressed on the top of the widget.
+        Does not currently do anything. Mouse press events are caught using an event filter.
+        @param aEvent The received mouse event
+    */
+    void mousePressEvent(QGraphicsSceneMouseEvent *aEvent);
+    /*!
+        \fn void CalendarWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent *aEvent)
+
+        Called by the framework when the mouse is released on the top of the widget.
+        @param aEvent The received mouse event
+    */
+    void mouseReleaseEvent(QGraphicsSceneMouseEvent *aEvent);
+    /*!
+        \fn void CalendarWidget::loadTranslator()
+
+        Loads and installs the localization.
+    */
+    void loadTranslator();
+    /*!
+        \fn void CalendarWidget::connectLayoutHandler(HbWidget *widget, QObject *layoutHandler, HbDocumentLoader& loader)()
+
+        Used by CalendarWidget::loadWidget() to initialize the layouts and to connect the widget's signals with 
+        layout handler's slots.
+        @param widget Main widget
+        @param layoutHandler Layout handler to connect
+        @param loader Document loader needed for getting the relevant objects
+    */
+    void connectLayoutHandler(HbWidget *widget, QObject *layoutHandler, HbDocumentLoader& loader);
+    /*!
+        \fn bool CalendarWidget::parseFile(QString& fileName, HbDocumentLoader& loader)
+
+        Parses an XML file that describes the functionality of the widget.
+        @param fileName Name of the XML file
+        @param loader Document loader that contains the relevant objects
+    */
+    bool parseFile(QString& fileName, HbDocumentLoader& loader);
+
+private: // data
+    Q_DISABLE_COPY(CalendarWidget)
+    QTranslator* mCommonTranslator;
+    
+    //For documentation purpose
+    ContentLayoutHandler* mContent;
+};
+
+#endif // CALENDARWIDGET_H