author | zecke <zecke> | 2003-02-16 10:01:34 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-02-16 10:01:34 (UTC) |
commit | f1737ebd1afc35528c2452f6a281039c39a28f1f (patch) (side-by-side diff) | |
tree | 4172f2e55f7986c52562bf152b0379ede66712a4 | |
parent | 68675728278f9d47b200e6dd635d3bc1f524b5bf (diff) | |
download | opie-f1737ebd1afc35528c2452f6a281039c39a28f1f.zip opie-f1737ebd1afc35528c2452f6a281039c39a28f1f.tar.gz opie-f1737ebd1afc35528c2452f6a281039c39a28f1f.tar.bz2 |
Add some QCOP methods for the new OBEX dialog
-rw-r--r-- | core/applets/irdaapplet/irda.cpp | 34 | ||||
-rw-r--r-- | core/applets/irdaapplet/irda.h | 3 |
2 files changed, 37 insertions, 0 deletions
diff --git a/core/applets/irdaapplet/irda.cpp b/core/applets/irdaapplet/irda.cpp index c3ddff2..84c656f 100644 --- a/core/applets/irdaapplet/irda.cpp +++ b/core/applets/irdaapplet/irda.cpp @@ -1,80 +1,88 @@ /********************************************************************** ** Copyright (C) 2002 David Woodhouse <dwmw2@infradead.org> ** Max Reiss <harlekin@handhelds.org> [trivial stuff] ** Robert Griebl <sandman@handhelds.org> +** Holger Freyther <zecke@handhelds.org> QCOP Interface ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ +#include <qcopchannel_qws.h> + #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qpe/ir.h> #include <qpe/qcopenvelope_qws.h> #include <qpe/sound.h> #include <qpainter.h> #include <qfile.h> #include <qtimer.h> #include <qtextstream.h> #include <qpopupmenu.h> #include <unistd.h> #include <net/if.h> #include <netinet/in.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include "irda.h" //=========================================================================== IrdaApplet::IrdaApplet ( QWidget *parent, const char *name ) : QWidget ( parent, name ) { setFixedHeight ( 18 ); setFixedWidth ( 14 ); m_sockfd = ::socket ( PF_INET, SOCK_DGRAM, IPPROTO_IP ); m_irdaOnPixmap = Resource::loadPixmap( "irdaapplet/irdaon" ); m_irdaOffPixmap = Resource::loadPixmap( "irdaapplet/irdaoff" ); m_irdaDiscoveryOnPixmap = Resource::loadPixmap( "irdaapplet/magglass" ); m_receiveActivePixmap = Resource::loadPixmap( "irdaapplet/receive" ); m_irda_active = false; m_irda_discovery_active = false; m_receive_active = false; m_receive_state_changed = false; m_popup = 0; + m_wasOn = false; + + QCopChannel* chan = new QCopChannel("QPE/IrDaApplet", this ); + connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), + this, SLOT(slotMessage(const QCString&, const QByteArray& ) ) ); } void IrdaApplet::show() { QWidget::show ( ); startTimer ( 2000 ); } IrdaApplet::~IrdaApplet() { if ( m_sockfd >= 0 ) ::close ( m_sockfd ); } void IrdaApplet::popup ( QString message, QString icon ) { if ( !m_popup ) m_popup = new QPopupMenu ( this ); m_popup-> clear ( ); if ( icon. isEmpty ( )) m_popup-> insertItem ( message, 0 ); else @@ -290,24 +298,50 @@ void IrdaApplet::timerEvent ( QTimerEvent * ) } m_irda_active = checkIrdaStatus ( ); m_irda_discovery_active = checkIrdaDiscoveryStatus ( ); if ( m_irda_discovery_active ) showDiscovered ( ); if (( m_irda_active != oldactive ) || ( m_irda_discovery_active != olddiscovery ) || receiveUpdate ) update ( ); } void IrdaApplet::paintEvent ( QPaintEvent * ) { QPainter p ( this ); p. drawPixmap ( 0, 1, m_irda_active ? m_irdaOnPixmap : m_irdaOffPixmap ); if ( m_irda_discovery_active ) p. drawPixmap( 0, 1, m_irdaDiscoveryOnPixmap ); if ( m_receive_active ) p. drawPixmap( 0, 1, m_receiveActivePixmap ); } +/* + * We know 3 calls + * a) enable + * b) disable + * a and b will temp enable the IrDa device and disable will disable it again if it wasn't on + * c) listDevices: We will return a list of known devices + */ +void IrdaApplet::slotMessage( const QCString& str, const QByteArray& ar ) { + if ( str == "enableIrda()") { + m_wasOn = checkIrdaStatus(); + if (!m_wasOn) + setIrdaStatus( true ); + }else if ( str == "disableIrda()") { + if (!m_wasOn) + setIrdaStatus( false ); + }else if ( str == "listDevices()") { + QCopEnvelope e("QPE/IrDaAppletBack", "devices(QStringList)"); + + QStringList list; + QMap<QString, QString>::Iterator it; + for (it = m_devices.begin(); it != m_devices.end(); ++it ) + list << (*it); + + e << list; + } +} diff --git a/core/applets/irdaapplet/irda.h b/core/applets/irdaapplet/irda.h index 1b5faa6..675f874 100644 --- a/core/applets/irdaapplet/irda.h +++ b/core/applets/irdaapplet/irda.h @@ -17,56 +17,59 @@ #define __OPIE_IRDA_APPLET_H__ #include <qwidget.h> #include <qpixmap.h> #include <qpopupmenu.h> #include <qmap.h> class IrdaApplet : public QWidget { Q_OBJECT public: IrdaApplet( QWidget *parent = 0, const char *name = 0 ); ~IrdaApplet(); virtual void show ( ); protected: virtual void timerEvent ( QTimerEvent * ); virtual void mousePressEvent ( QMouseEvent * ); virtual void paintEvent ( QPaintEvent* ); private slots: void popupTimeout ( ); + void slotMessage( const QCString& , const QByteArray& ); private: void popup( QString message, QString icon = QString::null ); bool checkIrdaStatus ( ); bool setIrdaStatus ( bool ); bool checkIrdaDiscoveryStatus (); bool setIrdaDiscoveryStatus ( bool ); bool setIrdaReceiveStatus ( bool ); void showDiscovered(); private: QPixmap m_irdaOnPixmap; QPixmap m_irdaOffPixmap; QPixmap m_irdaDiscoveryOnPixmap; QPixmap m_receiveActivePixmap; bool m_irda_active; bool m_irda_discovery_active; bool m_receive_active; bool m_receive_state_changed; QPopupMenu *m_popup; int m_sockfd; QMap <QString, QString> m_devices; + + bool m_wasOn; // if IrDa was enabled }; #endif // __OPIE_IRDA_APPLET_H__ |