src/hbwidgets/editors/hbsmileyengine_p.h
changeset 1 f7ac710697a9
parent 0 16d8024aca5e
child 5 627c4a0fd0e7
--- a/src/hbwidgets/editors/hbsmileyengine_p.h	Mon Apr 19 14:02:13 2010 +0300
+++ b/src/hbwidgets/editors/hbsmileyengine_p.h	Mon May 03 12:48:33 2010 +0300
@@ -25,70 +25,50 @@
 #ifndef HBSMILEYENGINE_P_H
 #define HBSMILEYENGINE_P_H
 
+#include <hbglobal.h>
 #include <hbsmileytheme.h>
-#include <hbsmileyengine.h>
-#include <QTextCursor>
-#include <QTextObjectInterface>
+
 #include <QObject>
-#include <QPair>
 
-class HbIconAnimator;
+class HbSmileyEnginePrivate;
 QT_FORWARD_DECLARE_CLASS(QTextDocument);
+QT_FORWARD_DECLARE_CLASS(QTextCursor);
 
-class HbIconTextObject : public QObject, public QTextObjectInterface
+class HB_AUTOTEST_EXPORT HbSmileyEngine : public QObject
 {
     Q_OBJECT
-    Q_INTERFACES(QTextObjectInterface)
 public:
-    enum Properties { HbSmileyData = 1 };
-    typedef QPair<QTextCursor*, HbIconAnimator*> HbSmileyDataType;
+    explicit HbSmileyEngine(QObject *parent = 0);
+    ~HbSmileyEngine();
+
+    void setDocument(QTextDocument *doc);
+    void startAnimation();
+    void stopAnimation();
+    void setTheme(const HbSmileyTheme& theme);
+    HbSmileyTheme theme() const;
+    HbSmileyTheme defaultTheme() const;
+
+    QString toPlainText() const;
+    QString toHtml() const;
+    void setSmileyScaleFactor(qreal scaleFactor);
 
-public:
-    QSizeF intrinsicSize(QTextDocument *doc, int posInDocument,
-                         const QTextFormat &format);
-    void drawObject(QPainter *painter, const QRectF &rect, QTextDocument *doc,
-                    int posInDocument, const QTextFormat &format);
+public slots:
+    void insertSmileys();
+    void insertSmileys(const QTextCursor& cursor);
+    void insertSmiley(const QTextCursor& cursor);
+
+
+protected:
+    HbSmileyEnginePrivate * const d_ptr;
+    explicit HbSmileyEngine(HbSmileyEnginePrivate &dd, QObject *parent = 0);
+
+private:
+    Q_DECLARE_PRIVATE_D(d_ptr, HbSmileyEngine)
+    Q_DISABLE_COPY(HbSmileyEngine)
+    Q_PRIVATE_SLOT(d_func(), void _q_animationProgressed())
+    Q_PRIVATE_SLOT(d_func(), void _q_documentContentsChanged(int position, int charsRemoved, int charsAdded))
+
 };
 
-class HbSmileyEnginePrivate
-{
-    Q_DECLARE_PUBLIC(HbSmileyEngine)
-public:
-    enum { HbIconTextFormat = QTextFormat::UserObject + 1 };
-    HbSmileyEnginePrivate();
-    virtual ~HbSmileyEnginePrivate();
-    void init();
-    void cleanUp();
-    void setDocument(QTextDocument *doc);
-    void insertSmiley( QTextCursor cursor, const QString& name);
-    void insertSmileys( QTextCursor cursor, bool insertOne = false);
-    HbIconAnimator* lookupAnimator(const QString& name);
-    bool isCursorValid(QTextCursor* cursor) const;
-
-    HbIconAnimator* animatorForCursor(const QTextCursor& cursor);
-    void removeCursor(const QTextCursor &cursor, HbIconAnimator* animator);
-    void convertToText(QTextDocument *copyDoc) const;
-
-    void _q_animationProgressed();
-    void _q_documentContentsChanged(int position, int charsRemoved, int charsAdded);
-
-    HbSmileyEngine *q_ptr;
-
-    QTextDocument *mDocument;
-    HbSmileyTheme mSmileyTheme;
-    bool mEdited;
-    QObject *mIconTextObject;
-
-
-    QHash<HbIconAnimator*, QList<QTextCursor*> > mAnimatorToCursors;
-    QHash<QTextCursor*,HbIconAnimator*> mCursorToAnimator;
-    QHash<QString, HbIconAnimator*> mSmileyAnimator;
-
-    static HbSmileyTheme mDefaultTheme;
-};
-
-Q_DECLARE_METATYPE(HbIconAnimator*)
-Q_DECLARE_METATYPE(HbIconTextObject::HbSmileyDataType)
-
-
+Q_DECLARE_METATYPE(HbSmileyEngine*)
 #endif // HBSMILEYENGINE_P_H