src/hbwidgets/widgets/hbdatetimepicker_p.h
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
--- a/src/hbwidgets/widgets/hbdatetimepicker_p.h	Mon Oct 04 17:49:30 2010 +0300
+++ b/src/hbwidgets/widgets/hbdatetimepicker_p.h	Mon Oct 18 18:23:13 2010 +0300
@@ -27,20 +27,22 @@
 #define HBDATETIMEPICKER_P_H
 
 #include "hbwidget_p.h"
-#include "hbtumbleview.h"
 #include "hbdatetimepicker.h"
-
+#include "hbdatepickerview_p.h"
 #include "hbextendedlocale.h"
 
 #include <QStringListModel>
-#include <QGraphicsLinearLayout>
+#include <QGraphicsGridLayout>
 #include <QDateTime>
 #include <QGraphicsWidget>
 #include <QList>
 #include <QHash>
+#include <QPointer>
 
-#define VIEWER HbTumbleView
+#include "hbstyleframeprimitivedata.h"
+#include "hbstyletextprimitivedata.h"
 
+#define VIEWER HbDatePickerView
 
 #define HBDATETIMEPICKER_TIME_MIN QTime(0, 0, 0, 0)
 #define HBDATETIMEPICKER_TIME_MAX QTime(23, 59, 59, 999)
@@ -100,11 +102,34 @@
     const SectionNode &sectionNode(int index) const;
 
     QString mDisplayFormat;
+    
     Sections mDisplaySections;
     QVector<SectionNode> mSectionNodes;
     QStringList mSeparators;
 };
 
+///////////////////////HbDatePickerViewLabel//////////////////////////
+
+class HbDatePickerViewLabel : public HbWidget
+{
+    Q_OBJECT
+
+public:
+    HbDatePickerViewLabel(QGraphicsItem *parent = 0);
+    HbDatePickerViewLabel(const QString &displayText, QGraphicsItem *parent = 0);
+
+    void initPrimitiveData(HbStylePrimitiveData *primitiveData, const QGraphicsObject *primitive);
+
+    void createPrimitives();
+
+public slots:
+    void updatePrimitives();
+
+private:
+    QGraphicsObject *mTextItem;
+};
+////////////////////////////////////////////////
+
 class HbDateTimePickerPrivate : public HbWidgetPrivate
 {
     Q_DECLARE_PUBLIC(HbDateTimePicker)
@@ -116,7 +141,7 @@
     void init(QVariant::Type type = QVariant::Date);
     QString localeDateTimeFormat(const QVariant::Type &mode);
     bool isFormatValid(const QString &newFormat);
-    void parseDisplayFormat(const QString &format);
+    void processDisplaySections();
     void rearrangeTumbleViews();
     void makeConnections();
     void removeConnections();
@@ -131,6 +156,8 @@
     void setDateTime(const QDateTime &newDateTime);
     void setMinimumDateTime(const QDateTime &newMinDateTime);
     void setMaximumDateTime(const QDateTime &newMaxDateTime);
+    void postFormatEvent();
+    void processFormatEvent();
 
     //helpers
     void setYearRange(int start,int end);
@@ -211,8 +238,9 @@
     QDateTime mMaximumDate;
     QVariant::Type mDateTimeMode;
 
-    QGraphicsLinearLayout *mLayout;
+    QGraphicsGridLayout *mLayout;
     QString mFormat;
+      int mFormatEventType;
 
     HbDateTimeParser mParser;
     QList<HbDateTimeParser::Section> mDisplaySections;
@@ -225,14 +253,22 @@
     bool mIs24HourFormat;
     bool mIsTwoDigitYearFormat;
 
-    HbExtendedLocale mLocale;
+    HbExtendedLocale mLocale; 
+    HbWidget *mContent;
+    QHash<QDateTimeEdit::Section, int> mIntervals;
 
     //graphics items/style items
-    QGraphicsItem *mBackground;
-    QGraphicsItem *mFrame;
-    HbWidget *mContent;
-    QHash<QDateTimeEdit::Section, int> mIntervals;
-    QGraphicsItem   *mHighlight;
+    QGraphicsObject *mBackground;
+    QGraphicsObject *mFrame;
+    QGraphicsObject *mHighlight;
+
+    QPointer<HbDatePickerViewLabel> mLabelDay;
+    QPointer<HbDatePickerViewLabel> mLabelMonth;
+    QPointer<HbDatePickerViewLabel> mLabelYear;
+    QPointer<HbDatePickerViewLabel> mLabelHour;
+    QPointer<HbDatePickerViewLabel> mLabelMinute;
+    QPointer<HbDatePickerViewLabel> mLabelSecond;
+    QPointer<VIEWER> mLastAdded;
 };
 
 #endif //HBDATETIMEPICKER_P_H