diff -r 16d8024aca5e -r f7ac710697a9 src/hbwidgets/editors/hbsmileyengine_p.h --- 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 #include -#include -#include -#include + #include -#include -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 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 > mAnimatorToCursors; - QHash mCursorToAnimator; - QHash mSmileyAnimator; - - static HbSmileyTheme mDefaultTheme; -}; - -Q_DECLARE_METATYPE(HbIconAnimator*) -Q_DECLARE_METATYPE(HbIconTextObject::HbSmileyDataType) - - +Q_DECLARE_METATYPE(HbSmileyEngine*) #endif // HBSMILEYENGINE_P_H