summaryrefslogtreecommitdiffstats
path: root/src/tastytooltip.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tastytooltip.cpp')
-rw-r--r--src/tastytooltip.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/tastytooltip.cpp b/src/tastytooltip.cpp
new file mode 100644
index 0000000..27f6a12
--- /dev/null
+++ b/src/tastytooltip.cpp
@@ -0,0 +1,100 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Marco Martin *
+ * notmart@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU Library General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#include "tastytooltip.h"
+
+#include <qlabel.h>
+#include <qtimer.h>
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <qbutton.h>
+
+
+TastyToolTip::TastyToolTip( QWidget * parent,const char * name, WFlags fl)
+ : QWidget(parent, name, fl|WX11BypassWM )
+{
+ iconName = "kmenu";
+ tastyToolTipLayout = new QVBoxLayout( this, 0, 0, "tastyToolTipLayout");
+ toolTipWidget = new TastyToolTipWidget(this);
+ tastyToolTipLayout->addWidget(toolTipWidget);
+}
+
+
+void TastyToolTip::loadIcon( QString icon )
+{
+ iconName = icon;
+ KIconLoader *iconLoader = KGlobal::iconLoader();
+ QPixmap btnPixmap(iconLoader->loadIcon(icon, KIcon::Panel, KIcon::SizeHuge));
+
+ if( !btnPixmap.isNull() )
+ toolTipWidget->iconPixmap->setPixmap(btnPixmap);
+ else
+ {
+ kdDebug() << "Failed to load custom icon" << endl;
+ toolTipWidget->iconPixmap->setPixmap(iconLoader->loadIcon("kmenu", KIcon::Panel, KIcon::SizeHuge));
+ }
+}
+
+TastyToolTip::~TastyToolTip()
+{
+}
+
+
+void TastyToolTip::showTip(const QPoint & point)
+{
+ move(point);
+ QTimer::singleShot(250, this, SLOT(show()));
+}
+
+void TastyToolTip::show()
+{
+ QButton *button = dynamic_cast<QButton *>(parent());
+ if(button && button->hasMouse() && !button->isDown())
+ QWidget::show();
+}
+
+void TastyToolTip::hideTip( )
+{
+ QTimer::singleShot(250, this, SLOT(hide()));
+}
+
+void TastyToolTip::notify(const QPoint & point )
+{
+ move(point);
+ show();
+ QTimer::singleShot(5000, this, SLOT(hide()));
+}
+
+void TastyToolTip::setMessage( QString message )
+{
+ KIconLoader *iconLoader = KGlobal::iconLoader();
+ toolTipWidget->MessageLabel->setText(message);
+
+ if( message.length() > 0 )
+ toolTipWidget->iconPixmap->setPixmap(iconLoader->loadIcon("messagebox_info", KIcon::Panel, KIcon::SizeHuge));
+ else
+ loadIcon(iconName);
+}
+
+void TastyToolTip::setTitle( QString title )
+{
+ if( !title.isEmpty() )
+ toolTipWidget->appNameLabel->setText( title );
+}
+