forked from qt-creator/qt-creator
Better flexibility and extensibility in text editor tooltip's internals.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user