summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--networkstatus/Makefile.am4
-rw-r--r--networkstatus/networkstatusiface.h50
-rw-r--r--networkstatus/networkstatusindicator.cpp64
-rw-r--r--networkstatus/networkstatusindicator.h42
4 files changed, 158 insertions, 2 deletions
diff --git a/networkstatus/Makefile.am b/networkstatus/Makefile.am
index c3b73f46f..e495f7910 100644
--- a/networkstatus/Makefile.am
+++ b/networkstatus/Makefile.am
@@ -13,7 +13,7 @@ libnetworkstatus_la_SOURCES = networkstatuscommon.cpp
libconnectionmanager_la_LIBADD = $(LIB_KDECORE)
libconnectionmanager_la_LDFLAGS = $(all_libraries)
-libconnectionmanager_la_SOURCES = connectionmanager.cpp connectionmanager.skel clientiface.stub
+libconnectionmanager_la_SOURCES = connectionmanager.cpp networkstatusindicator.cpp connectionmanager.skel clientiface.stub networkstatusiface.stub
kded_networkstatus_la_SOURCES = networkstatus.cpp networkstatus.skel \
clientiface.skel serviceiface.skel network.cpp
@@ -27,7 +27,7 @@ services_DATA = networkstatus.desktop
noinst_HEADERS = serviceifaceimpl.h \
network.h clientifaceimpl.h testservice.h connectionmanager.h
-include_HEADERS = serviceiface.h provideriface.h networkstatuscommon.h
+include_HEADERS = serviceiface.h provideriface.h connectionmanager.h networkstatuscommon.h networkstatusindicator.h networkstatusiface.h
bin_PROGRAMS = networkstatustestservice
diff --git a/networkstatus/networkstatusiface.h b/networkstatus/networkstatusiface.h
new file mode 100644
index 000000000..c35a22db5
--- /dev/null
+++ b/networkstatus/networkstatusiface.h
@@ -0,0 +1,50 @@
+/* This file is part of kdepim.
+ Copyright (C) 2005,2007 Will Stephenson <wstephenson@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library. If not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ As a special exception, permission is given to link this library
+ with any edition of TQt, and distribute the resulting executable,
+ without including the source code for TQt in the source distribution.
+*/
+
+#ifndef KDED_NETWORKSTATUSIFACE_H
+#define KDED_NETWORKSTATUSIFACE_H
+
+#include <dcopobject.h>
+#include <tqstringlist.h>
+
+#include "networkstatuscommon.h"
+
+class NetworkStatusIface : virtual public DCOPObject
+{
+K_DCOP
+k_dcop:
+ // Client interface
+ virtual TQStringList networks() = 0;
+ virtual int status() = 0;
+ // Service interface
+ virtual void setNetworkStatus( const TQString & networkName, int status ) = 0;
+ virtual void registerNetwork( NetworkStatus::Properties properties ) = 0;
+ virtual void unregisterNetwork( const TQString & networkName ) = 0 ;
+k_dcop_signals:
+ /**
+ * A status change occurred affecting the overall connectivity
+ * @param status The new status
+ */
+ virtual void statusChange( int status ) = 0;
+};
+#endif
+// vim: sw=4 ts=4
diff --git a/networkstatus/networkstatusindicator.cpp b/networkstatus/networkstatusindicator.cpp
new file mode 100644
index 000000000..b422c5a97
--- /dev/null
+++ b/networkstatus/networkstatusindicator.cpp
@@ -0,0 +1,64 @@
+/* This file is part of the KDE project
+ Copyright (C) 2007 Will Stephenson <wstephenson@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library. If not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ As a special exception, permission is given to link this library
+ with any edition of TQt, and distribute the resulting executable,
+ without including the source code for TQt in the source distribution.
+*/
+
+#include <tqlabel.h>
+#include <tqtooltip.h>
+#include <kiconloader.h>
+#include <klocale.h>
+
+#include "connectionmanager.h"
+
+#include "networkstatusindicator.h"
+
+StatusBarNetworkStatusIndicator::StatusBarNetworkStatusIndicator(
+ TQWidget * parent, const char * name ) : TQHBox( parent, name )/*, d( new StatusBarNetworkStatusIndicatorPrivate )*/
+{
+ setMargin( 2 );
+ setSpacing( 1 );
+ TQLabel * label = new TQLabel( this, "offlinemodelabel" );
+ label->setPixmap( SmallIcon("connect_no") );
+ TQToolTip::add( label, i18n( "The desktop is offline" ) );
+
+ connect( ConnectionManager::self(), TQT_SIGNAL( statusChanged( NetworkStatus::EnumStatus ) ),
+ TQT_SLOT( networkStatusChanged( NetworkStatus::EnumStatus) ) );
+
+}
+
+void StatusBarNetworkStatusIndicator::init()
+{
+ networkStatusChanged( ConnectionManager::self()->status(TQString("")));
+}
+
+StatusBarNetworkStatusIndicator::~StatusBarNetworkStatusIndicator()
+{
+}
+
+void StatusBarNetworkStatusIndicator::networkStatusChanged( NetworkStatus::EnumStatus status )
+{
+ if ( status == NetworkStatus::Online || status == NetworkStatus::NoNetworks ) {
+ hide();
+ } else {
+ show();
+ }
+}
+
+#include "networkstatusindicator.moc"
diff --git a/networkstatus/networkstatusindicator.h b/networkstatus/networkstatusindicator.h
new file mode 100644
index 000000000..4385f4c3f
--- /dev/null
+++ b/networkstatus/networkstatusindicator.h
@@ -0,0 +1,42 @@
+/* This file is part of the KDE project
+ Copyright (C) 2007 Will Stephenson <wstephenson@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License version 2 as published by the Free Software Foundation.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library. If not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ As a special exception, permission is given to link this library
+ with any edition of TQt, and distribute the resulting executable,
+ without including the source code for TQt in the source distribution.
+*/
+
+#ifndef KDE_NETWORKSTATUS_INDICATOR_H
+#define KDE_NETWORKSTATUS_INDICATOR_H
+
+#include <tqhbox.h>
+#include <kdemacros.h>
+#include <networkstatuscommon.h>
+
+class StatusBarNetworkStatusIndicator : public TQHBox
+{
+Q_OBJECT
+public:
+ StatusBarNetworkStatusIndicator( TQWidget * parent, const char * name );
+ virtual ~StatusBarNetworkStatusIndicator();
+ void init();
+protected slots:
+ void networkStatusChanged( NetworkStatus::EnumStatus status );
+};
+
+#endif
+