You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.1 KiB
100 lines
2.1 KiB
/*
|
|
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 option) any later version.
|
|
*/
|
|
|
|
/*
|
|
This class handles the system tray icon
|
|
begin: Sun Nov 9 2003
|
|
copyright: (C) 2003 by Peter Simonsson
|
|
email: psn@linux.se
|
|
*/
|
|
|
|
#include "trayicon.h"
|
|
#include "konversationapplication.h"
|
|
#include "channel.h"
|
|
#include "server.h"
|
|
#include "chatwindow.h"
|
|
#include "config/preferences.h"
|
|
|
|
#include <tqtimer.h>
|
|
#include <tqtooltip.h>
|
|
|
|
#include <kglobal.h>
|
|
#include <kiconloader.h>
|
|
#include <klocale.h>
|
|
|
|
|
|
namespace Konversation
|
|
{
|
|
|
|
TrayIcon::TrayIcon(TQWidget* parent) : KSystemTray(parent)
|
|
{
|
|
m_notificationEnabled = false;
|
|
m_blinkTimer = new TQTimer(this);
|
|
connect(m_blinkTimer, TQT_SIGNAL(timeout()), TQT_SLOT(blinkTimeout()));
|
|
|
|
updateAppearance();
|
|
|
|
TQToolTip::add(this,i18n("Konversation - IRC Client"));
|
|
}
|
|
|
|
TrayIcon::~TrayIcon()
|
|
{
|
|
}
|
|
|
|
void TrayIcon::startNotification()
|
|
{
|
|
if(!m_notificationEnabled)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(Preferences::trayNotifyBlink())
|
|
{
|
|
if(!m_blinkTimer->isActive())
|
|
{
|
|
setPixmap(m_messagePix);
|
|
m_blinkOn = true;
|
|
m_blinkTimer->start(500);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
setPixmap(m_messagePix);
|
|
m_blinkTimer->stop();
|
|
}
|
|
}
|
|
|
|
void TrayIcon::endNotification()
|
|
{
|
|
m_blinkTimer->stop();
|
|
setPixmap(m_nomessagePix);
|
|
}
|
|
|
|
void TrayIcon::blinkTimeout()
|
|
{
|
|
m_blinkOn = !m_blinkOn;
|
|
|
|
if(m_blinkOn)
|
|
{
|
|
setPixmap(m_messagePix);
|
|
}
|
|
else
|
|
{
|
|
setPixmap(m_nomessagePix);
|
|
}
|
|
}
|
|
|
|
void TrayIcon::updateAppearance()
|
|
{
|
|
m_nomessagePix = loadIcon("konversation");
|
|
m_messagePix = loadIcon("konv_message");
|
|
setPixmap(m_nomessagePix);
|
|
}
|
|
}
|
|
|
|
#include "trayicon.moc"
|