X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/5e73577d6c3520fa3dfd63646795e628cf2a0614..d324e790d62c8a341abd06e845f8fe8d64aa8ef3:/src/tooltips/ktooltip.h diff --git a/src/tooltips/ktooltip.h b/src/tooltips/ktooltip.h index 31589c690..bd539b834 100644 --- a/src/tooltips/ktooltip.h +++ b/src/tooltips/ktooltip.h @@ -20,180 +20,27 @@ #ifndef KTOOLTIP_H #define KTOOLTIP_H -#include -#include -#include -#include -#include -#include - +class QPoint; class QString; -class QIcon; -class QSize; -class QPainter; -class QRegion; - -class KToolTipItemPrivate; +class QWidget; /** - * 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 -}; - - -/** - * KToolTip provides customizable tooltips that can have animations as well as an alpha - * channel, allowing for dynamic transparency effects. - * - * ARGB tooltips work on X11 even when the application isn't using the ARGB visual. + * Allows to show tooltips having a widget as content. */ namespace KToolTip { - void showText(const QPoint &pos, const QString &text, QWidget *widget, const QRect &rect); - void showText(const QPoint &pos, const QString &text, QWidget *widget = 0); - + void showText(const QPoint& pos, const QString& text); + /** - * Shows the tip @p item at the global position indicated by @p pos. + * Shows the tip @p content at the global position indicated by @p pos. * - * Ownership of the item is transferred to KToolTip. The item will be deleted + * Ownership of the content widget is transferred to KToolTip. The widget will be deleted * automatically when it is hidden. * * The tip is shown immediately when this function is called. */ - void showTip(const QPoint &pos, KToolTipItem *item); + void showTip(const QPoint& pos, QWidget* content); void hideTip(); - - void setToolTipDelegate(KToolTipDelegate *delegate); } #endif