summaryrefslogtreecommitdiffstats
path: root/src/kvpnckicker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kvpnckicker.cpp')
-rw-r--r--src/kvpnckicker.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/kvpnckicker.cpp b/src/kvpnckicker.cpp
new file mode 100644
index 0000000..7f24699
--- /dev/null
+++ b/src/kvpnckicker.cpp
@@ -0,0 +1,84 @@
+/***************************************************************************
+* Copyright (C) 2004 by Christoph Thielecke *
+* *
+* 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 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 <qtooltip.h>
+#include <qimage.h>
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kaction.h>
+#include <kmessagebox.h>
+#include "kvpnckicker.h"
+#include "kvpnc.h"
+
+KVpncKicker::KVpncKicker( KVpncConfig *GlobalConfig,QWidget* parent, const char *name )
+ : KSystemTray( parent, name ) {
+ this->parent = parent;
+ this->initDockWindow();
+ this->GlobalConfig = GlobalConfig;
+ KAction *quit = actionCollection()->action( "file_quit" );
+ quit->disconnect();
+ KVpnc *myParent = static_cast<KVpnc *>( parent );
+ connect( quit, SIGNAL( activated() ), myParent, SLOT( quitCalledKicker() ) );
+
+ show();
+}
+
+KVpncKicker::~KVpncKicker() {}
+
+void KVpncKicker::closeEvent( QCloseEvent *e )
+{
+ if ( GlobalConfig->KvpncDebugLevel > 1 )
+ GlobalConfig->appendLogEntry ( i18n ( "CloseEvent recieved (reciever: %1)." ).arg("kvpnckicker"), GlobalConfig->debug );
+
+ emit closeEventKicker(e);
+}
+
+void KVpncKicker::enterEvent( QEvent* e )
+{
+ if (e->type() == QEvent::Enter)
+ emit tooltipRequested();
+
+ KSystemTray::enterEvent(e);
+
+}
+
+void KVpncKicker::setStatus( int status ) {
+ if ( status == connecting ) {
+ setPixmap( connectingIcon );
+ }
+ else if (status == connected){
+ setPixmap( connectedIcon );
+ }
+ else
+ setPixmap( disconnectedIcon );
+}
+
+void KVpncKicker::initDockWindow() {
+ disconnectedIcon = loadIcon( "disconnected");
+ connectedIcon = loadIcon( "connected" );
+ connectingIcon = loadIcon( "connecting" );
+ //setFixedSize( DOCK_WIDTH, DOCK_HEIGHT );
+ setPixmap( disconnectedIcon );
+ QToolTip::add(this, i18n("Disconnected"));
+}
+
+KPopupMenu* KVpncKicker::menu() {
+ return contextMenu();
+}