trayicon_qt.cpp

Go to the documentation of this file.
00001 /*
00002 **  This file is part of Vidalia, and is subject to the license terms in the
00003 **  LICENSE file, found in the top level directory of this distribution. If you
00004 **  did not receive the LICENSE file with this file, you may obtain it from the
00005 **  Vidalia source package distributed by the Vidalia Project at
00006 **  http://www.vidalia-project.net/. No part of Vidalia, including this file,
00007 **  may be copied, modified, propagated, or distributed except according to the
00008 **  terms described in the LICENSE file.
00009 */
00010 
00011 /*
00012 ** \file trayicon_qt.cpp
00013 ** \version $Id: trayicon_qt.cpp 2362 2008-02-29 04:30:11Z edmanm $
00014 ** \brief Tray icon wrapper around Qt's QSystemTrayIcon implementation
00015 */
00016 
00017 #include <QMouseEvent>
00018 #include "trayicon_qt.h"
00019 
00020 
00021 /** Default constructor. */
00022 TrayIconImpl::TrayIconImpl(QObject *parent)
00023   : QSystemTrayIcon(parent)
00024 {
00025   connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
00026           this, SLOT(onActivated(QSystemTrayIcon::ActivationReason)));
00027 }
00028 
00029 /** Modify the tray icon's image to <b>iconFile</b>. */
00030 void
00031 TrayIconImpl::setIcon(const QString &iconFile)
00032 {
00033   QSystemTrayIcon::setIcon(QIcon(iconFile));
00034 }
00035 
00036 /** Called when the user interacts with the tray icon and propoagates
00037  * double-click events to the parent object. */
00038 void
00039 TrayIconImpl::onActivated(QSystemTrayIcon::ActivationReason reason)
00040 {
00041   if (reason == QSystemTrayIcon::DoubleClick) {
00042     /* Propagate the double-click to the parent class's event handler */
00043     event(new QMouseEvent(QEvent::MouseButtonDblClick, QPoint(), 
00044                           Qt::LeftButton, Qt::LeftButton, 
00045                           Qt::NoModifier));
00046   }
00047 }
00048 

Generated on Sat Aug 16 17:38:36 2008 for Vidalia by  doxygen 1.5.6