Better flexibility and extensibility in text editor tooltip's internals.

This commit is contained in:
Leandro Melo
2010-08-23 15:21:02 +02:00
parent 42d15fcf74
commit 14ffff317c
13 changed files with 548 additions and 150 deletions

View File

@@ -31,50 +31,71 @@
#define TIPS_H
#include <QtCore/QSharedPointer>
#include <QtGui/QFrame>
#include <QtGui/QLabel>
#include <QtGui/QPixmap>
namespace TextEditor {
class TipContent;
}
QT_BEGIN_NAMESPACE
class QColor;
// Please do not change the name of this class. Detailed comments in tooltip.h.
class QTipLabel : public QLabel
{
Q_OBJECT
protected:
QTipLabel(QWidget *parent);
public:
virtual ~QTipLabel();
void setContent(const TextEditor::TipContent &content);
const TextEditor::TipContent &content() const;
virtual void configure() = 0;
virtual bool handleContentReplacement(const TextEditor::TipContent &content) const = 0;
private:
TextEditor::TipContent *m_tipContent;
};
QT_END_NAMESPACE
namespace TextEditor {
namespace Internal {
class TipContent;
class Tip : public QFrame
{
Q_OBJECT
protected:
Tip(QWidget *parent);
public:
virtual ~Tip();
void setContent(const QSharedPointer<TipContent> &content);
const QSharedPointer<TipContent> &content() const;
private:
virtual void configure() = 0;
QSharedPointer<TipContent> m_content;
};
class ColorTip : public Tip
class ColorTip : public QTipLabel
{
Q_OBJECT
public:
ColorTip(QWidget *parent);
virtual ~ColorTip();
private:
virtual void configure();
virtual bool handleContentReplacement(const TipContent &content) const;
private:
virtual void paintEvent(QPaintEvent *event);
QPixmap m_tilePixMap;
};
class TextTip : public QTipLabel
{
Q_OBJECT
public:
TextTip(QWidget *parent);
virtual ~TextTip();
virtual void configure();
virtual bool handleContentReplacement(const TipContent &content) const;
private:
virtual void paintEvent(QPaintEvent *event);
virtual void resizeEvent(QResizeEvent *event);
};
} // namespace Internal
} // namespace TextEditor