X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5e73577d6c3520fa3dfd63646795e628cf2a0614..abb6807645598e8117e98bbf232cd9cd90fe019a:/src/tooltips/ktooltip.h diff --git a/src/tooltips/ktooltip.h b/src/tooltips/ktooltip.h index 31589c690..6de08315c 100644 --- a/src/tooltips/ktooltip.h +++ b/src/tooltips/ktooltip.h @@ -20,156 +20,11 @@ #ifndef KTOOLTIP_H #define KTOOLTIP_H -#include -#include -#include -#include +#include + #include #include - -class QString; -class QIcon; -class QSize; -class QPainter; -class QRegion; - -class KToolTipItemPrivate; - -/** - * KToolTipItem contains the data to be displayed in a tooltip. - * - * Custom data can be stored as QVariants in the object by calling - * setData() with a custom item role, and retrieved and displayed - * by a tooltip delegate by calling data(). - * - * The default tooltip delegate uses Qt::DecorationRole and - * Qt::DisplayRole. - * - * To display the tooltip, call KToolTip::showTip() with a pointer - * to the KToolTipItem. - * - * You can reimplement the setData() and/or data() methods in this - * class to implement on-demand loading of data. - */ -class KToolTipItem -{ -public: - enum ItemType { DefaultType, UserType = 1000 }; - - /** - * Creates a KToolTipItem with @p text and no icon. - */ - explicit KToolTipItem(const QString &text, int type = DefaultType); - - /** - * Creates a KToolTipItem with an @p icon and @p text. - */ - KToolTipItem(const QIcon &icon, const QString &text, int type = DefaultType); - - /** - * Destroys the KToolTipItem. - */ - virtual ~KToolTipItem(); - - /** - * Returns the item type. - */ - int type() const; - - QString text() const; - QIcon icon() const; - - virtual QVariant data(int role) const; - virtual void setData(int role, const QVariant &data); - -private: - KToolTipItemPrivate * const d; -}; - - -class KStyleOptionToolTip -{ -public: - KStyleOptionToolTip(); - enum Corner { TopLeftCorner, TopRightCorner, BottomLeftCorner, BottomRightCorner, NoCorner }; - - Qt::LayoutDirection direction; - QFontMetrics fontMetrics; - QPalette palette; - QRect rect; - QStyle::State state; - QFont font; - QSize decorationSize; - Corner activeCorner; -}; - -/** - * KToolTipDelegate is responsible for providing the size hint and - * painting the tooltips. - */ -class KToolTipDelegate : public QObject -{ - Q_OBJECT -public: - KToolTipDelegate(); - virtual ~KToolTipDelegate(); - - virtual QSize sizeHint(const KStyleOptionToolTip &option, const KToolTipItem &item) const; - - /** - * If haveAlphaChannel() returns true, the paint device will be filled with - * Qt::transparent when this function is called, otherwise the content is - * undefined. - */ - virtual void paint(QPainter *painter, - const KStyleOptionToolTip &option, - const KToolTipItem &item) const; - - /** - * Reimplement this function to specify the region of the tooltip - * that accepts input. Any mouse events that occur outside this - * region will be sent to the widget below the tooltip. - * - * The default implementation returns a region containing the - * bounding rect of the tooltip. - * - * This function will only be called if haveAlphaChannel() - * returns true. - */ - virtual QRegion inputShape(const KStyleOptionToolTip &option) const; - - /** - * Reimplement this function to specify a shape mask for the tooltip. - * - * The default implementation returns a region containing the - * bounding rect of the tooltip. - * - * This function will only be called if haveAlphaChannel() - * returns false. - */ - virtual QRegion shapeMask(const KStyleOptionToolTip &option) const; - -protected: - /** - * Returns true if the tooltip has an alpha channel, and false - * otherwise. - * - * Implementors should assume that this condition may change at - * any time during the runtime of the application, as compositing - * can be enabled or disabled in the window manager. - */ - bool haveAlphaChannel() const; - -#if 0 -private Q_SLOTS: - /** - * Schedules a repaint of the tooltip item. - * This slot can be connected to a timer to animate the tooltip. - */ - void update(const KToolTipItem *item); -#endif -}; - +class KToolTipDelegate; /** * KToolTip provides customizable tooltips that can have animations as well as an alpha