ksystemtray.h
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 1999 Matthias Ettrich <ettrich@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License version 2 as published by the Free Software Foundation. 00007 00008 This library is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 Library General Public License for more details. 00012 00013 You should have received a copy of the GNU Library General Public License 00014 along with this library; see the file COPYING.LIB. If not, write to 00015 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00016 Boston, MA 02111-1307, USA. 00017 */ 00018 #ifndef KSYSTEMTRAY_H 00019 #define KSYSTEMTRAY_H 00020 00021 #include <qlabel.h> 00022 00023 class KActionCollection; 00024 class KPopupMenu; 00025 class KSystemTrayPrivate; 00026 00063 class KSystemTray : public QLabel 00064 { 00065 Q_OBJECT 00066 public: 00067 00081 KSystemTray( QWidget* parent = 0, const char* name = 0 ); 00082 00083 /* 00084 Destructor 00085 */ 00086 ~KSystemTray(); 00087 00088 00089 protected: 00090 00097 void mousePressEvent( QMouseEvent * ); 00098 00105 void mouseReleaseEvent( QMouseEvent * ); 00106 00111 KPopupMenu* contextMenu() const; 00112 00113 00118 virtual void contextMenuAboutToShow( KPopupMenu* menu ); 00119 00120 00126 KActionCollection* actionCollection(); 00127 00131 void showEvent( QShowEvent * ); 00132 00136 void enterEvent( QEvent* ); 00137 00138 signals: 00144 void quitSelected(); 00145 00146 private slots: 00147 void minimizeRestoreAction(); 00148 private: 00149 void activateOrHide(); 00150 void minimizeRestore( bool restore ); 00151 KPopupMenu* menu; 00152 // minimizeRestoreId is no longer needed. remove in KDE 4.0 00153 int minimizeRestoreId; 00154 uint hasQuit :1; 00155 protected: 00156 virtual void virtual_hook( int id, void* data ); 00157 private: 00158 KSystemTrayPrivate* d; 00159 }; 00160 00161 00162 #endif