diff options
Diffstat (limited to 'src/modules/notifier/notifiermessage.cpp')
| -rw-r--r-- | src/modules/notifier/notifiermessage.cpp | 209 |
1 files changed, 107 insertions, 102 deletions
diff --git a/src/modules/notifier/notifiermessage.cpp b/src/modules/notifier/notifiermessage.cpp index 02d2bd900..4e088b409 100644 --- a/src/modules/notifier/notifiermessage.cpp +++ b/src/modules/notifier/notifiermessage.cpp @@ -1,102 +1,107 @@ -//============================================================================= -// -// File : notifiermessage.cpp -// Created on mar 02 nov 2004 02:41:18 by Iacopo -// -// This file is part of the KVirc irc client distribution -// Copyright (C) 2004 Iacopo <iakko@siena.linux.it> -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) 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 "notifiermessage.h" -#include "notifierwindow.h" - -#include "kvi_iconmanager.h" -#include "kvi_config.h" -#include "kvi_app.h" -#include "kvi_window.h" - -#include "kvi_locale.h" -#include "kvi_frame.h" -#include "kvi_mirccntrl.h" -#include "kvi_options.h" - -/* -#ifdef COMPILE_ON_WINDOWS - #include <windows.h> -#endif - -#ifdef COMPILE_KDE_SUPPORT - #include <netwm.h> -#endif -*/ - -#include "kvi_tal_popupmenu.h" -#include <qapplication.h> -#include <qpainter.h> -#include <qimage.h> -#include <qdesktopwidget.h> -#include <qtooltip.h> - - -extern kvi_time_t g_tNotifierDisabledUntil; - -KviNotifierMessage::KviNotifierMessage(KviNotifierWindow * pNotifierWindow, QPixmap * pImage, const QString &szText) -{ - m_pText = new QSimpleRichText(KviMircCntrl::stripControlBytes(szText),pNotifierWindow->defaultFont()); - m_pText->setWidth(pNotifierWindow->textWidth()); - m_pImage = pImage; - m_bHistoric = false; -} - -KviNotifierMessage::~KviNotifierMessage() -{ - delete m_pText; - if(m_pImage)delete m_pImage; -} - -static void increase_transparency(QImage &buffer,QImage &srcimg,int iDivisor) -{ - buffer.create(srcimg.width(),srcimg.height(),32); - buffer.setAlphaBuffer(true); - - for(int y = 0;y < buffer.height();y++) - { - QRgb * dst = (QRgb *)buffer.scanLine(y); - QRgb * end = dst + buffer.width(); - QRgb * src = (QRgb *)srcimg.scanLine(y); - - while(dst < end) - { - *dst = qRgba(qRed(*src),qGreen(*src),qBlue(*src),qAlpha(*src) / iDivisor); - dst++; - src++; - } - } -} - -void KviNotifierMessage::setHistoric() -{ - m_bHistoric = true; - if(!m_pImage)return; - if(!m_pImage->hasAlphaChannel())return; - QImage tmp; - QImage out = m_pImage->convertToImage(); - increase_transparency(tmp,out,2); - m_pImage->convertFromImage(tmp); -} - +//=============================================================================
+//
+// File : notifiermessage.cpp
+// Created on mar 02 nov 2004 02:41:18 by Iacopo
+//
+// This file is part of the KVirc irc client distribution
+// Copyright (C) 2004 Iacopo <iakko@siena.linux.it>
+//
+// This program is FREE software. You can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your opinion) 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 "notifiermessage.h"
+#include "notifierwindow.h"
+
+#include "kvi_iconmanager.h"
+#include "kvi_config.h"
+#include "kvi_app.h"
+#include "kvi_window.h"
+
+#include "kvi_locale.h"
+#include "kvi_frame.h"
+#include "kvi_mirccntrl.h"
+#include "kvi_options.h"
+
+/*
+#ifdef COMPILE_ON_WINDOWS
+ #include <windows.h>
+#endif
+
+#ifdef COMPILE_KDE_SUPPORT
+ #include <netwm.h>
+#endif
+*/
+
+#include <qapplication.h>
+#include <qpainter.h>
+#include <qimage.h>
+#include <qdesktopwidget.h>
+#include <qtooltip.h>
+
+#ifdef COMPILE_USE_QT4
+ #define QPopupMenu Q3PopupMenu
+ #include <q3popupmenu.h>
+#else
+ #include <qpopupmenu.h>
+#endif
+
+extern kvi_time_t g_tNotifierDisabledUntil;
+
+KviNotifierMessage::KviNotifierMessage(KviNotifierWindow * pNotifierWindow, QPixmap * pImage, const QString &szText)
+{
+ m_pText = new QSimpleRichText(KviMircCntrl::stripControlBytes(szText),pNotifierWindow->defaultFont());
+ m_pText->setWidth(pNotifierWindow->textWidth());
+ m_pImage = pImage;
+ m_bHistoric = false;
+}
+
+KviNotifierMessage::~KviNotifierMessage()
+{
+ delete m_pText;
+ if(m_pImage)delete m_pImage;
+}
+
+static void increase_transparency(QImage &buffer,QImage &srcimg,int iDivisor)
+{
+ buffer.create(srcimg.width(),srcimg.height(),32);
+ buffer.setAlphaBuffer(true);
+
+ for(int y = 0;y < buffer.height();y++)
+ {
+ QRgb * dst = (QRgb *)buffer.scanLine(y);
+ QRgb * end = dst + buffer.width();
+ QRgb * src = (QRgb *)srcimg.scanLine(y);
+
+ while(dst < end)
+ {
+ *dst = qRgba(qRed(*src),qGreen(*src),qBlue(*src),qAlpha(*src) / iDivisor);
+ dst++;
+ src++;
+ }
+ }
+}
+
+void KviNotifierMessage::setHistoric()
+{
+ m_bHistoric = true;
+ if(!m_pImage)return;
+ if(!m_pImage->hasAlphaChannel())return;
+ QImage tmp;
+ QImage out = m_pImage->convertToImage();
+ increase_transparency(tmp,out,2);
+ m_pImage->convertFromImage(tmp);
+}
+
|
