summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oapplication.cpp2
-rw-r--r--libopie2/opiecore/oapplication.h6
-rw-r--r--libopie2/opiecore/oglobal.h3
-rw-r--r--libopie2/opiecore/oglobalsettings.h7
-rw-r--r--libopie2/opienet/omanufacturerdb.h1
-rw-r--r--libopie2/opienet/onetutils.h3
-rw-r--r--libopie2/opienet/onetwork.cpp2
-rw-r--r--libopie2/opienet/onetwork.h4
-rw-r--r--libopie2/opienet/opcap.h28
-rw-r--r--libopie2/opieui/odialog.h5
-rw-r--r--libopie2/opieui/oimageeffect.h1
-rw-r--r--libopie2/opieui/olistview.h4
-rw-r--r--libopie2/opieui/opopupmenu.h3
-rw-r--r--libopie2/qt3/opiecore/opair.h1
14 files changed, 51 insertions, 19 deletions
diff --git a/libopie2/opiecore/oapplication.cpp b/libopie2/opiecore/oapplication.cpp
index d3e04ba..ce26420 100644
--- a/libopie2/opiecore/oapplication.cpp
+++ b/libopie2/opiecore/oapplication.cpp
@@ -1,124 +1,124 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de> 4              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#include <opie2/oapplication.h> 31#include <opie2/oapplication.h>
32#include <opie2/oconfig.h> 32#include <opie2/oconfig.h>
33 33
34OApplication* OApplication::_instance = 0; 34OApplication* OApplication::_instance = 0;
35 35
36/**************************************************************************************************/ 36/**************************************************************************************************/
37/* OApplicationPrivate 37/* OApplicationPrivate
38/**************************************************************************************************/ 38/**************************************************************************************************/
39 39
40class OApplicationPrivate 40class OApplicationPrivate
41{ 41{
42 public: 42 public:
43 OApplicationPrivate() {}; 43 OApplicationPrivate() {};
44 ~OApplicationPrivate() {}; 44 ~OApplicationPrivate() {};
45}; 45};
46 46
47/**************************************************************************************************/ 47/**************************************************************************************************/
48/* OApplication 48/* OApplication
49/**************************************************************************************************/ 49/**************************************************************************************************/
50 50
51 51
52OApplication::OApplication( int& argc, char** argv, const QCString& rAppName ) 52OApplication::OApplication( int& argc, char** argv, const QCString& rAppName )
53 :OApplicationBaseClass( argc, argv ), 53 :OApplicationBaseClass( argc, argv ),
54 _appname( rAppName ), 54 _appname( rAppName ),
55 _config( 0 ) 55 _config( 0 )
56{ 56{
57 init(); 57 init();
58} 58}
59 59
60 60
61OApplication::~OApplication() 61OApplication::~OApplication()
62{ 62{
63 delete d; 63 delete d;
64 if ( _config ) 64 if ( _config )
65 delete _config; 65 delete _config;
66 OApplication::_instance = 0; 66 OApplication::_instance = 0;
67 // after deconstruction of the one-and-only application object, 67 // after deconstruction of the one-and-only application object,
68 // the construction of another object is allowed 68 // the construction of another object is allowed
69} 69}
70 70
71 71
72OConfig* OApplication::config() 72OConfig* OApplication::config()
73{ 73{
74 if ( !_config ) 74 if ( !_config )
75 { 75 {
76 _config = new OConfig( _appname ); 76 _config = new OConfig( _appname );
77 } 77 }
78 return _config; 78 return _config;
79} 79}
80 80
81 81
82void OApplication::init() 82void OApplication::init()
83{ 83{
84 d = new OApplicationPrivate(); 84 d = new OApplicationPrivate();
85 if ( !OApplication::_instance ) 85 if ( !OApplication::_instance )
86 { 86 {
87 OApplication::_instance = this; 87 OApplication::_instance = this;
88 } 88 }
89 else 89 else
90 { 90 {
91 qFatal( "OApplication: Can't create more than one OApplication object. Aborting." ); 91 qFatal( "OApplication: Can't create more than one OApplication object. Aborting." );
92 } 92 }
93} 93}
94 94
95 95
96void OApplication::setMainWidget( QWidget* widget ) 96void OApplication::setMainWidget( QWidget* widget )
97{ 97{
98 showMainWidget( widget ); 98 showMainWidget( widget );
99} 99}
100 100
101 101
102void OApplication::showMainWidget( QWidget* widget, bool nomax ) 102void OApplication::showMainWidget( QWidget* widget, bool nomax )
103{ 103{
104 #ifdef Q_WS_QWS 104 #ifdef Q_WS_QWS
105 QPEApplication::showMainWidget( widget, nomax ); 105 QPEApplication::showMainWidget( widget, nomax );
106 #else 106 #else
107 QApplication::setMainWidget( widget ); 107 QApplication::setMainWidget( widget );
108 widget->show(); 108 widget->show();
109 #endif 109 #endif
110 widget->setCaption( _appname ); 110 widget->setCaption( _appname );
111} 111}
112 112
113 113
114void OApplication::setTitle( QString title ) const 114void OApplication::setTitle( const QString& title ) const
115{ 115{
116 if ( mainWidget() ) 116 if ( mainWidget() )
117 { 117 {
118 if ( !title.isNull() ) 118 if ( !title.isNull() )
119 mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title ); 119 mainWidget()->setCaption( QString(_appname) + QString( " - " ) + title );
120 else 120 else
121 mainWidget()->setCaption( _appname ); 121 mainWidget()->setCaption( _appname );
122 } 122 }
123} 123}
124 124
diff --git a/libopie2/opiecore/oapplication.h b/libopie2/opiecore/oapplication.h
index 4d25202..8326847 100644
--- a/libopie2/opiecore/oapplication.h
+++ b/libopie2/opiecore/oapplication.h
@@ -1,130 +1,134 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de> 4              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#ifndef OAPPLICATION_H 31#ifndef OAPPLICATION_H
32#define OAPPLICATION_H 32#define OAPPLICATION_H
33 33
34#define oApp OApplication::oApplication() 34#define oApp OApplication::oApplication()
35 35
36// the below stuff will fail with moc because moc does not pre process headers
37// This will make usage of signal and slots hard inside QPEApplication -zecke
38
36#ifdef QWS 39#ifdef QWS
37 #include <qpe/qpeapplication.h> 40 #include <qpe/qpeapplication.h>
38 #define OApplicationBaseClass QPEApplication 41 #define OApplicationBaseClass QPEApplication
39#else 42#else
40 #include <qapplication.h> 43 #include <qapplication.h>
41 #define OApplicationBaseClass QApplication 44 #define OApplicationBaseClass QApplication
42#endif 45#endif
43 46
44class OApplicationPrivate; 47class OApplicationPrivate;
45class OConfig; 48class OConfig;
46 49
47class OApplication: public OApplicationBaseClass 50class OApplication: public OApplicationBaseClass
48{ 51{
52// Q_OBJECT would fail -zecke
49 public: 53 public:
50 54
51 /** 55 /**
52 * Constructor. Parses command-line arguments and sets the window caption. 56 * Constructor. Parses command-line arguments and sets the window caption.
53 * 57 *
54 * @param rAppName application name. Will be used for finding the 58 * @param rAppName application name. Will be used for finding the
55 * associated message, icon and configuration files 59 * associated message, icon and configuration files
56 * 60 *
57 */ 61 */
58 OApplication( int& argc, char** argv, const QCString& rAppName ); 62 OApplication( int& argc, char** argv, const QCString& rAppName );
59 /** 63 /**
60 * Destructor. Destroys the application object and its children. 64 * Destructor. Destroys the application object and its children.
61 */ 65 */
62 virtual ~OApplication(); 66 virtual ~OApplication();
63 67
64 /** 68 /**
65 * Returns the current application object. 69 * Returns the current application object.
66 * 70 *
67 * This is similar to the global @ref QApplication pointer qApp. It 71 * This is similar to the global @ref QApplication pointer qApp. It
68 * allows access to the single global OApplication object, since 72 * allows access to the single global OApplication object, since
69 * more than one cannot be created in the same application. It 73 * more than one cannot be created in the same application. It
70 * saves you the trouble of having to pass the pointer explicitly 74 * saves you the trouble of having to pass the pointer explicitly
71 * to every function that may require it. 75 * to every function that may require it.
72 * 76 *
73 * @return the current application object 77 * @return the current application object
74 */ 78 */
75 static const OApplication* oApplication() { return _instance; }; 79 static const OApplication* oApplication() { return _instance; };
76 80
77 /** 81 /**
78 * Returns the application name as given during creation. 82 * Returns the application name as given during creation.
79 * 83 *
80 * @return A reference to the application name 84 * @return A reference to the application name
81 */ 85 */
82 const QCString& appName() const { return _appname; }; 86 const QCString& appName() const { return _appname; };
83 87
84 /** 88 /**
85 * Returns the application session config object. 89 * Returns the application session config object.
86 * 90 *
87 * @return A pointer to the application's instance specific 91 * @return A pointer to the application's instance specific
88 * @ref OConfig object. 92 * @ref OConfig object.
89 * @see OConfig 93 * @see OConfig
90 */ 94 */
91 OConfig* config(); 95 OConfig* config();
92 96
93 /** 97 /**
94 * Sets the main widget - reimplemented to call showMainWidget() 98 * Sets the main widget - reimplemented to call showMainWidget()
95 * on Qt/Embedded. 99 * on Qt/Embedded.
96 * 100 *
97 * @param mainWidget the widget to become the main widget 101 * @param mainWidget the widget to become the main widget
98 * @see QWidget object 102 * @see QWidget object
99 */ 103 */
100 virtual void setMainWidget( QWidget *mainWidget ); 104 virtual void setMainWidget( QWidget *mainWidget );
101 105
102 /** 106 /**
103 * Shows the main widget - reimplemented to call setMainWidget() 107 * Shows the main widget - reimplemented to call setMainWidget()
104 * on platforms other than Qt/Embedded. 108 * on platforms other than Qt/Embedded.
105 * 109 *
106 * @param mainWidget the widget to become the main widget 110 * @param mainWidget the widget to become the main widget
107 * @see QWidget object 111 * @see QWidget object
108 */ 112 */
109 virtual void showMainWidget( QWidget* widget, bool nomax = false ); 113 virtual void showMainWidget( QWidget* widget, bool nomax = false );
110 114
111 /** 115 /**
112 * Set the application title. The application title will be concatenated 116 * Set the application title. The application title will be concatenated
113 * to the application name given in the constructor. 117 * to the application name given in the constructor.
114 * 118 *
115 * @param title the title. If not given, resets caption to appname 119 * @param title the title. If not given, resets caption to appname
116 */ 120 */
117 virtual void setTitle( QString title = QString::null ) const; 121 virtual void setTitle( const QString& title = QString::null ) const;
118 //virtual void setTitle() const; 122 //virtual void setTitle() const;
119 123
120 protected: 124 protected:
121 void init(); 125 void init();
122 126
123 private: 127 private:
124 const QCString _appname; 128 const QCString _appname;
125 static OApplication* _instance; 129 static OApplication* _instance;
126 OConfig* _config; 130 OConfig* _config;
127 OApplicationPrivate* d; 131 OApplicationPrivate* d;
128}; 132};
129 133
130#endif // OAPPLICATION_H 134#endif // OAPPLICATION_H
diff --git a/libopie2/opiecore/oglobal.h b/libopie2/opiecore/oglobal.h
index 8345c6a..34f211e 100644
--- a/libopie2/opiecore/oglobal.h
+++ b/libopie2/opiecore/oglobal.h
@@ -1,48 +1,49 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 4              Copyright (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29*/ 29*/
30 30
31#ifndef OGLOBAL_H 31#ifndef OGLOBAL_H
32#define OGLOBAL_H 32#define OGLOBAL_H
33 33
34#include <qpe/global.h> 34#include <qpe/global.h>
35#include <opie2/oconfig.h> 35#include <opie2/oconfig.h>
36 36
37static OConfig globalconfig = OConfig( "global" ); 37static OConfig globalconfig = OConfig( "global" );
38 38
39//FIXME: Is it wise or even necessary to inherit OGlobal from Global? 39//FIXME: Is it wise or even necessary to inherit OGlobal from Global?
40// once we totally skip libqpe it should ideally swallow Global -zecke
40 41
41class OGlobal : public Global 42class OGlobal : public Global
42{ 43{
43 public: 44 public:
44 45 // do we want to put that into OApplication as in KApplication -zecke
45 static OConfig* config(); 46 static OConfig* config();
46}; 47};
47 48
48#endif // OGLOBAL_H 49#endif // OGLOBAL_H
diff --git a/libopie2/opiecore/oglobalsettings.h b/libopie2/opiecore/oglobalsettings.h
index 6481251..d3f357e 100644
--- a/libopie2/opiecore/oglobalsettings.h
+++ b/libopie2/opiecore/oglobalsettings.h
@@ -1,368 +1,373 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de> 3              Copyright (C) 2003 Michael Lauer <mickey@tm.informatik.uni-frankfurt.de>
4 Inspired by KDE OGlobalSettings 4 Inspired by KDE OGlobalSettings
5 Copyright (C) 2000 David Faure <faure@kde.org> 5 Copyright (C) 2000 David Faure <faure@kde.org>
6 =. 6 =.
7 .=l. 7 .=l.
8           .>+-= 8           .>+-=
9 _;:,     .>    :=|. This program is free software; you can 9 _;:,     .>    :=|. This program is free software; you can
10.> <`_,   >  .   <= redistribute it and/or modify it under 10.> <`_,   >  .   <= redistribute it and/or modify it under
11:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 11:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
12.="- .-=="i,     .._ License as published by the Free Software 12.="- .-=="i,     .._ License as published by the Free Software
13 - .   .-<_>     .<> Foundation; either version 2 of the License, 13 - .   .-<_>     .<> Foundation; either version 2 of the License,
14     ._= =}       : or (at your option) any later version. 14     ._= =}       : or (at your option) any later version.
15    .%`+i>       _;_. 15    .%`+i>       _;_.
16    .i_,=:_.      -<s. This program is distributed in the hope that 16    .i_,=:_.      -<s. This program is distributed in the hope that
17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
18    : ..    .:,     . . . without even the implied warranty of 18    : ..    .:,     . . . without even the implied warranty of
19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
21..}^=.=       =       ; Library General Public License for more 21..}^=.=       =       ; Library General Public License for more
22++=   -.     .`     .: details. 22++=   -.     .`     .: details.
23 :     =  ...= . :.=- 23 :     =  ...= . :.=-
24 -.   .:....=;==+<; You should have received a copy of the GNU 24 -.   .:....=;==+<; You should have received a copy of the GNU
25  -_. . .   )=.  = Library General Public License along with 25  -_. . .   )=.  = Library General Public License along with
26    --        :-=` this library; see the file COPYING.LIB. 26    --        :-=` this library; see the file COPYING.LIB.
27 If not, write to the Free Software Foundation, 27 If not, write to the Free Software Foundation,
28 Inc., 59 Temple Place - Suite 330, 28 Inc., 59 Temple Place - Suite 330,
29 Boston, MA 02111-1307, USA. 29 Boston, MA 02111-1307, USA.
30*/ 30*/
31 31
32#ifndef OGLOBALSETTINGS_H 32#ifndef OGLOBALSETTINGS_H
33#define OGLOBALSETTINGS_H 33#define OGLOBALSETTINGS_H
34 34
35#include <qstring.h> 35#include <qstring.h>
36#include <qcolor.h> 36#include <qcolor.h>
37#include <qfont.h> 37#include <qfont.h>
38 38
39#define OPIE_DEFAULT_SINGLECLICK true 39#define OPIE_DEFAULT_SINGLECLICK true
40#define OPIE_DEFAULT_INSERTTEAROFFHANDLES true 40#define OPIE_DEFAULT_INSERTTEAROFFHANDLES true
41#define OPIE_DEFAULT_AUTOSELECTDELAY -1 41#define OPIE_DEFAULT_AUTOSELECTDELAY -1
42#define OPIE_DEFAULT_CHANGECURSOR true 42#define OPIE_DEFAULT_CHANGECURSOR true
43#define OPIE_DEFAULT_LARGE_CURSOR false 43#define OPIE_DEFAULT_LARGE_CURSOR false
44#define OPIE_DEFAULT_VISUAL_ACTIVATE true 44#define OPIE_DEFAULT_VISUAL_ACTIVATE true
45#define OPIE_DEFAULT_VISUAL_ACTIVATE_SPEED 50 45#define OPIE_DEFAULT_VISUAL_ACTIVATE_SPEED 50
46 46
47//FIXME: There's still a whole lot of stuff in here which has to be revised 47//FIXME: There's still a whole lot of stuff in here which has to be revised
48//FIXME: before public usage... lack of time to do it at once - so it will 48//FIXME: before public usage... lack of time to do it at once - so it will
49//FIXME: happen step-by-step. ML. 49//FIXME: happen step-by-step. ML.
50// we should not habe too much configure options!!!!!! -zecke
50 51
51/** 52/**
52 * Access the OPIE global configuration settings. 53 * Access the OPIE global configuration settings.
53 * 54 *
54 */ 55 */
55class OGlobalSettings 56class OGlobalSettings
56{ 57{
57 public: 58 public:
58 59
59 /** 60 /**
60 * Returns a threshold in pixels for drag & drop operations. 61 * Returns a threshold in pixels for drag & drop operations.
61 * As long as the mouse movement has not exceeded this number 62 * As long as the mouse movement has not exceeded this number
62 * of pixels in either X or Y direction no drag operation may 63 * of pixels in either X or Y direction no drag operation may
63 * be started. This prevents spurious drags when the user intended 64 * be started. This prevents spurious drags when the user intended
64 * to click on something but moved the mouse a bit while doing so. 65 * to click on something but moved the mouse a bit while doing so.
65 * 66 *
66 * For this to work you must save the position of the mouse (oldPos) 67 * For this to work you must save the position of the mouse (oldPos)
67 * in the @ref QWidget::mousePressEvent(). 68 * in the @ref QWidget::mousePressEvent().
68 * When the position of the mouse (newPos) 69 * When the position of the mouse (newPos)
69 * in a @ref QWidget::mouseMoveEvent() exceeds this threshold 70 * in a @ref QWidget::mouseMoveEvent() exceeds this threshold
70 * you may start a drag 71 * you may start a drag
71 * which should originate from oldPos. 72 * which should originate from oldPos.
72 * 73 *
73 * Example code: 74 * Example code:
74 * <pre> 75 * <pre>
75 * void OColorCells::mousePressEvent( QMouseEvent *e ) 76 * void OColorCells::mousePressEvent( QMouseEvent *e )
76 * { 77 * {
77 * mOldPos = e->pos(); 78 * mOldPos = e->pos();
78 * } 79 * }
79 * 80 *
80 * void OColorCells::mouseMoveEvent( QMouseEvent *e ) 81 * void OColorCells::mouseMoveEvent( QMouseEvent *e )
81 * { 82 * {
82 * if( !(e->state() && LeftButton)) return; 83 * if( !(e->state() && LeftButton)) return;
83 * 84 *
84 * int delay = OGlobalSettings::dndEventDelay(); 85 * int delay = OGlobalSettings::dndEventDelay();
85 * QPoint newPos = e->pos(); 86 * QPoint newPos = e->pos();
86 * if(newPos.x() > mOldPos.x()+delay || newPos.x() < mOldPos.x()-delay || 87 * if(newPos.x() > mOldPos.x()+delay || newPos.x() < mOldPos.x()-delay ||
87 * newPos.y() > mOldPos.y()+delay || newPos.y() < mOldPos.y()-delay) 88 * newPos.y() > mOldPos.y()+delay || newPos.y() < mOldPos.y()-delay)
88 * { 89 * {
89 * // Drag color object 90 * // Drag color object
90 * int cell = posToCell(mOldPos); // Find color at mOldPos 91 * int cell = posToCell(mOldPos); // Find color at mOldPos
91 * if ((cell != -1) && colors[cell].isValid()) 92 * if ((cell != -1) && colors[cell].isValid())
92 * { 93 * {
93 * OColorDrag *d = OColorDrag::makeDrag( colors[cell], this); 94 * OColorDrag *d = OColorDrag::makeDrag( colors[cell], this);
94 * d->dragCopy(); 95 * d->dragCopy();
95 * } 96 * }
96 * } 97 * }
97 * } 98 * }
98 * </pre> 99 * </pre>
99 * 100 *
100 */ 101 */
101 102
103 // we do not support DND at the momemt -zecke
102 static int dndEventDelay(); 104 static int dndEventDelay();
103 105
104 /** 106 /**
105 * Returns whether OPIE runs in single (default) or double click 107 * Returns whether OPIE runs in single (default) or double click
106 * mode. 108 * mode.
107 * 109 *
108 * @return @p true if single click mode, or @p false if double click mode. 110 * @return @p true if single click mode, or @p false if double click mode.
109 * 111 *
110 * see @ref http://opie.handhelds.org/documentation/standards/opie/style/mouse/index.html 112 * see @ref http://opie.handhelds.org/documentation/standards/opie/style/mouse/index.html
111 **/ 113 **/
112 static bool singleClick(); 114 static bool singleClick();
113 115
114 /** 116 /**
115 * Returns whether tear-off handles are inserted in OPopupMenus. 117 * Returns whether tear-off handles are inserted in OPopupMenus.
116 **/ 118 **/
119 // would clutter the small screen -zecke
117 static bool insertTearOffHandle(); 120 static bool insertTearOffHandle();
118 121
119 /** 122 /**
120 * @return the OPIE setting for "change cursor over icon" 123 * @return the OPIE setting for "change cursor over icon"
121 */ 124 */
122 static bool changeCursorOverIcon(); 125 static bool changeCursorOverIcon();
123 126
124 /** 127 /**
125 * @return whether to show some feedback when an item (specifically an 128 * @return whether to show some feedback when an item (specifically an
126 * icon) is activated. 129 * icon) is activated.
127 */ 130 */
128 static bool visualActivate(); 131 static bool visualActivate();
129 static unsigned int visualActivateSpeed(); 132 static unsigned int visualActivateSpeed();
130 133
131 /** 134 /**
132 * Returns the OPIE setting for the auto-select option 135 * Returns the OPIE setting for the auto-select option
133 * 136 *
134 * @return the auto-select delay or -1 if auto-select is disabled. 137 * @return the auto-select delay or -1 if auto-select is disabled.
135 */ 138 */
136 static int autoSelectDelay(); 139 static int autoSelectDelay();
137 140
138 /** 141 /**
139 * Returns the OPIE setting for the shortcut key to open 142 * Returns the OPIE setting for the shortcut key to open
140 * context menus. 143 * context menus.
141 * 144 *
142 * @return the key that pops up context menus. 145 * @return the key that pops up context menus.
143 */ 146 */
144 static int contextMenuKey(); 147 static int contextMenuKey();
145 148
146 /** 149 /**
147 * Returns the OPIE setting for context menus. 150 * Returns the OPIE setting for context menus.
148 * 151 *
149 * @return whether context menus should be shown on button press 152 * @return whether context menus should be shown on button press
150 * or button release (click). 153 * or button release (click).
151 */ 154 */
152 static bool showContextMenusOnPress (); 155 static bool showContextMenusOnPress ();
153 156
154 /** 157 /**
155 * This enum describes the completion mode used for by the @ref OCompletion class. 158 * This enum describes the completion mode used for by the @ref OCompletion class.
156 * See <a href="http://opie.handhelds.org/documentation/standards/opie/style/keys/completion.html"> 159 * See <a href="http://opie.handhelds.org/documentation/standards/opie/style/keys/completion.html">
157 * the styleguide</a>. 160 * the styleguide</a>.
158 **/ 161 **/
159 enum Completion { 162 enum Completion {
160 /** 163 /**
161 * No completion is used. 164 * No completion is used.
162 */ 165 */
163 CompletionNone=1, 166 CompletionNone=1,
164 /** 167 /**
165 * Text is automatically filled in whenever possible. 168 * Text is automatically filled in whenever possible.
166 */ 169 */
167 CompletionAuto, 170 CompletionAuto,
168 /** 171 /**
169 * Same as automatic except shortest match is used for completion. 172 * Same as automatic except shortest match is used for completion.
170 */ 173 */
171 CompletionMan, 174 CompletionMan,
172 /** 175 /**
173 * Complete text much in the same way as a typical *nix shell would. 176 * Complete text much in the same way as a typical *nix shell would.
174 */ 177 */
175 CompletionShell, 178 CompletionShell,
176 /** 179 /**
177 * Lists all possible matches in a popup list-box to choose from. 180 * Lists all possible matches in a popup list-box to choose from.
178 */ 181 */
179 CompletionPopup, 182 CompletionPopup,
180 /** 183 /**
181 * Lists all possible matches in a popup list-box to choose from, and automatically 184 * Lists all possible matches in a popup list-box to choose from, and automatically
182 * fill the result whenever possible. 185 * fill the result whenever possible.
183 */ 186 */
184 CompletionPopupAuto 187 CompletionPopupAuto
185 }; 188 };
186 /** 189 /**
187 * Returns the preferred completion mode setting. 190 * Returns the preferred completion mode setting.
188 * 191 *
189 * @return @ref Completion. Default is @p CompletionPopup. 192 * @return @ref Completion. Default is @p CompletionPopup.
190 */ 193 */
191 static Completion completionMode(); 194 static Completion completionMode();
192 195
193 /** 196 /**
194 * This enum describes the debug mode used for by the @ref odbgstream class. 197 * This enum describes the debug mode used for by the @ref odbgstream class.
195 * See <a href="http://opie.handhelds.org/documentation/standards/opie/style/debug/debug.html"> 198 * See <a href="http://opie.handhelds.org/documentation/standards/opie/style/debug/debug.html">
196 * the styleguide</a>. 199 * the styleguide</a>.
197 **/ 200 **/
198 enum Debug { 201 enum Debug {
199 /** 202 /**
200 * Debug messages are ignored. 203 * Debug messages are ignored.
201 */ 204 */
202 DebugNone=-1, 205 DebugNone=-1,
203 /** 206 /**
204 * Debug output is sent to files /var/log/***. 207 * Debug output is sent to files /var/log/***.
205 */ 208 */
206 DebugFiles=0, 209 DebugFiles=0,
207 /** 210 /**
208 * Debug output is written in a QMessageBox. 211 * Debug output is written in a QMessageBox.
209 */ 212 */
210 DebugMsgBox=1, 213 DebugMsgBox=1,
211 /** 214 /**
212 * Debug output is sent to stderr. 215 * Debug output is sent to stderr.
213 */ 216 */
214 DebugStdErr=2, 217 DebugStdErr=2,
215 /** 218 /**
216 * Debug output is sent to syslog. 219 * Debug output is sent to syslog.
217 */ 220 */
218 DebugSysLog=3, 221 DebugSysLog=3,
219 /** 222 /**
220 * Debug output is sent via udp over a socket. 223 * Debug output is sent via udp over a socket.
221 */ 224 */
222 DebugSocket=4 225 DebugSocket=4
223 }; 226 };
224 /** 227 /**
225 * Returns the preferred debug mode setting. 228 * Returns the preferred debug mode setting.
226 * 229 *
227 * @return @ref Debug. Default is @p DebugStdErr. 230 * @return @ref Debug. Default is @p DebugStdErr.
228 */ 231 */
229 static Debug debugMode(); 232 static Debug debugMode();
230 233
231 /** 234 /**
232 * Returns additional information for debug output (dependent on the debug mode). 235 * Returns additional information for debug output (dependent on the debug mode).
233 * 236 *
234 * @return Additional debug output information. 237 * @return Additional debug output information.
235 */ 238 */
236 static QString debugOutput(); 239 static QString debugOutput();
237 /** 240 /**
238 * This is a structure containing the possible mouse settings. 241 * This is a structure containing the possible mouse settings.
239 */ 242 */
240 struct OMouseSettings 243 struct OMouseSettings
241 { 244 {
242 enum { RightHanded = 0, LeftHanded = 1 }; 245 enum { RightHanded = 0, LeftHanded = 1 };
243 int handed; // left or right 246 int handed; // left or right
244 }; 247 };
245 248
246 /** 249 /**
247 * This returns the current mouse settings. 250 * This returns the current mouse settings.
248 */ 251 */
249 static OMouseSettings & mouseSettings(); 252 static OMouseSettings & mouseSettings();
250 253
251 /** 254 /**
252 * The path to the desktop directory of the current user. 255 * The path to the desktop directory of the current user.
253 */ 256 */
257 // below handled by Global stuff and QPEApplication
254 static QString desktopPath() { initStatic(); return *s_desktopPath; } 258 static QString desktopPath() { initStatic(); return *s_desktopPath; }
255 259
256 /** 260 /**
257 * The path to the autostart directory of the current user. 261 * The path to the autostart directory of the current user.
258 */ 262 */
259 static QString autostartPath() { initStatic(); return *s_autostartPath; } 263 static QString autostartPath() { initStatic(); return *s_autostartPath; }
260 264
261 /** 265 /**
262 * The path to the trash directory of the current user. 266 * The path to the trash directory of the current user.
263 */ 267 */
268 // we do not have that concept -zecke
264 static QString trashPath() { initStatic(); return *s_trashPath; } 269 static QString trashPath() { initStatic(); return *s_trashPath; }
265 270
266 /** 271 /**
267 * The path where documents are stored of the current user. 272 * The path where documents are stored of the current user.
268 */ 273 */
269 static QString documentPath() { initStatic(); return *s_documentPath; } 274 static QString documentPath() { initStatic(); return *s_documentPath; }
270 275
271 276
272 /** 277 /**
273 * The default color to use when highlighting toolbar buttons 278 * The default color to use when highlighting toolbar buttons
274 */ 279 */
275 static QColor toolBarHighlightColor(); 280 static QColor toolBarHighlightColor();
276 static QColor inactiveTitleColor(); 281 static QColor inactiveTitleColor();
277 static QColor inactiveTextColor(); 282 static QColor inactiveTextColor();
278 static QColor activeTitleColor(); 283 static QColor activeTitleColor();
279 static QColor activeTextColor(); 284 static QColor activeTextColor();
280 static int contrast(); 285 static int contrast();
281 286
282 /** 287 /**
283 * The default colors to use for text and links. 288 * The default colors to use for text and links.
284 */ 289 */
285 static QColor baseColor(); // Similair to QColorGroup::base() 290 static QColor baseColor(); // Similair to QColorGroup::base()
286 static QColor textColor(); // Similair to QColorGroup::text() 291 static QColor textColor(); // Similair to QColorGroup::text()
287 static QColor linkColor(); 292 static QColor linkColor();
288 static QColor visitedLinkColor(); 293 static QColor visitedLinkColor();
289 static QColor highlightedTextColor(); // Similair to QColorGroup::hightlightedText() 294 static QColor highlightedTextColor(); // Similair to QColorGroup::hightlightedText()
290 static QColor highlightColor(); // Similair to QColorGroup::highlight() 295 static QColor highlightColor(); // Similair to QColorGroup::highlight()
291 296
292 /** 297 /**
293 * Returns the alternate background color used by @ref OListView with 298 * Returns the alternate background color used by @ref OListView with
294 * @ref OListViewItem. Any other list that uses alternating background 299 * @ref OListViewItem. Any other list that uses alternating background
295 * colors should use this too, to obey to the user's preferences. Returns 300 * colors should use this too, to obey to the user's preferences. Returns
296 * an invalid color if the user doesn't want alternating backgrounds. 301 * an invalid color if the user doesn't want alternating backgrounds.
297 * @see #calculateAlternateBackgroundColor 302 * @see #calculateAlternateBackgroundColor
298 */ 303 */
299 static QColor alternateBackgroundColor(); 304 static QColor alternateBackgroundColor();
300 /** 305 /**
301 * Calculates a color based on @p base to be used as alternating 306 * Calculates a color based on @p base to be used as alternating
302 * color for e.g. listviews. 307 * color for e.g. listviews.
303 * @see #alternateBackgroundColor 308 * @see #alternateBackgroundColor
304 */ 309 */
305 static QColor calculateAlternateBackgroundColor(const QColor& base); 310 static QColor calculateAlternateBackgroundColor(const QColor& base);
306 311
307 312
308 static QFont generalFont(); 313 static QFont generalFont();
309 static QFont fixedFont(); 314 static QFont fixedFont();
310 static QFont toolBarFont(); 315 static QFont toolBarFont();
311 static QFont menuFont(); 316 static QFont menuFont();
312 static QFont windowTitleFont(); 317 static QFont windowTitleFont();
313 static QFont taskbarFont(); 318 static QFont taskbarFont();
314 319
315 /** 320 /**
316 * Returns if the user specified multihead. In case the display 321 * Returns if the user specified multihead. In case the display
317 * has multiple screens, the return value of this function specifies 322 * has multiple screens, the return value of this function specifies
318 * if the user wants OPIE to run on all of them or just on the primary 323 * if the user wants OPIE to run on all of them or just on the primary
319 */ 324 */
320 static bool isMultiHead(); 325 static bool isMultiHead();
321 326
322private: 327private:
323 /** 328 /**
324 * reads in all paths from kdeglobals 329 * reads in all paths from kdeglobals
325 */ 330 */
326 static void initStatic(); 331 static void initStatic();
327 /** 332 /**
328 * initialise kde2Blue 333 * initialise kde2Blue
329 */ 334 */
330 static void initColors(); 335 static void initColors();
331 /** 336 /**
332 * drop cached values for fonts (called by OApplication) 337 * drop cached values for fonts (called by OApplication)
333 */ 338 */
334 static void rereadFontSettings(); 339 static void rereadFontSettings();
335 /** 340 /**
336 * drop cached values for paths (called by OApplication) 341 * drop cached values for paths (called by OApplication)
337 */ 342 */
338 static void rereadPathSettings(); 343 static void rereadPathSettings();
339 /** 344 /**
340 * drop cached values for mouse settings (called by OApplication) 345 * drop cached values for mouse settings (called by OApplication)
341 */ 346 */
342 static void rereadMouseSettings(); 347 static void rereadMouseSettings();
343 348
344 349
345 static QString* s_desktopPath; 350 static QString* s_desktopPath;
346 static QString* s_autostartPath; 351 static QString* s_autostartPath;
347 static QString* s_trashPath; 352 static QString* s_trashPath;
348 static QString* s_documentPath; 353 static QString* s_documentPath;
349 static QFont *_generalFont; 354 static QFont *_generalFont;
350 static QFont *_fixedFont; 355 static QFont *_fixedFont;
351 static QFont *_toolBarFont; 356 static QFont *_toolBarFont;
352 static QFont *_menuFont; 357 static QFont *_menuFont;
353 static QFont *_windowTitleFont; 358 static QFont *_windowTitleFont;
354 static QFont *_taskbarFont; 359 static QFont *_taskbarFont;
355 static QColor * kde2Gray; 360 static QColor * kde2Gray;
356 static QColor * kde2Blue; 361 static QColor * kde2Blue;
357 static QColor * kde2AlternateColor; 362 static QColor * kde2AlternateColor;
358 static OMouseSettings *s_mouseSettings; 363 static OMouseSettings *s_mouseSettings;
359 364
360 static QColor * OpieGray; 365 static QColor * OpieGray;
361 static QColor * OpieBlue; 366 static QColor * OpieBlue;
362 static QColor * OpieAlternate; 367 static QColor * OpieAlternate;
363 static QColor * OpieHighlight; 368 static QColor * OpieHighlight;
364 369
365 friend class OApplication; 370 friend class OApplication;
366}; 371};
367 372
368#endif 373#endif
diff --git a/libopie2/opienet/omanufacturerdb.h b/libopie2/opienet/omanufacturerdb.h
index 5e66c37..cb0b6c8 100644
--- a/libopie2/opienet/omanufacturerdb.h
+++ b/libopie2/opienet/omanufacturerdb.h
@@ -1,37 +1,38 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef OMANUFACTURERDB_H 16#ifndef OMANUFACTURERDB_H
17#define OMANUFACTURERDB_H 17#define OMANUFACTURERDB_H
18 18
19#include <qmap.h> 19#include <qmap.h>
20 20
21class OManufacturerDB 21class OManufacturerDB
22{ 22{
23 public: 23 public:
24 //FIXME make us consistent -zecke I use self(), sandman inst() you use instance() so we need to chose one!
24 static OManufacturerDB* instance(); 25 static OManufacturerDB* instance();
25 const QString& lookup( const QString& macaddr ) const; 26 const QString& lookup( const QString& macaddr ) const;
26 27
27 protected: 28 protected:
28 OManufacturerDB(); 29 OManufacturerDB();
29 virtual ~OManufacturerDB(); 30 virtual ~OManufacturerDB();
30 31
31 private: 32 private:
32 QMap<QString, QString> manufacturers; 33 QMap<QString, QString> manufacturers;
33 static OManufacturerDB* _instance; 34 static OManufacturerDB* _instance;
34}; 35};
35 36
36#endif 37#endif
37 38
diff --git a/libopie2/opienet/onetutils.h b/libopie2/opienet/onetutils.h
index bedea63..9611518 100644
--- a/libopie2/opienet/onetutils.h
+++ b/libopie2/opienet/onetutils.h
@@ -1,158 +1,161 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4              (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 4              (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29 29
30*/ 30*/
31 31
32#ifndef ONETUTILS_H 32#ifndef ONETUTILS_H
33#define ONETUTILS_H 33#define ONETUTILS_H
34 34
35#include <qdict.h> 35#include <qdict.h>
36#include <qmap.h> 36#include <qmap.h>
37#include <qstring.h> 37#include <qstring.h>
38#include <qhostaddress.h> 38#include <qhostaddress.h>
39#include <qobject.h> 39#include <qobject.h>
40 40
41#include <sys/types.h> 41#include <sys/types.h>
42 42
43struct ifreq; 43struct ifreq;
44class OWirelessNetworkInterface; 44class OWirelessNetworkInterface;
45 45
46/*====================================================================================== 46/*======================================================================================
47 * OMacAddress 47 * OMacAddress
48 *======================================================================================*/ 48 *======================================================================================*/
49 49
50class OMacAddress 50class OMacAddress
51{ 51{
52 public: 52 public:
53 // QString c'tor? -zecke
53 OMacAddress( unsigned char* ); 54 OMacAddress( unsigned char* );
54 OMacAddress( const unsigned char* ); 55 OMacAddress( const unsigned char* );
55 OMacAddress( struct ifreq& ); 56 OMacAddress( struct ifreq& );
56 ~OMacAddress(); 57 ~OMacAddress();
57 58
58 QString manufacturer() const; 59 QString manufacturer() const;
59 QString toString( bool substitute = false ) const; 60 QString toString( bool substitute = false ) const;
60 const unsigned char* native() const; 61 const unsigned char* native() const;
61 62
63 // no c'tor but this one why not make it a c'tor. it could also replace the others or is this the problem?
62 static OMacAddress fromString( const QString& ); 64 static OMacAddress fromString( const QString& );
63 65
64 public: 66 public:
65 static const OMacAddress& broadcast; // ff:ff:ff:ff:ff:ff 67 static const OMacAddress& broadcast; // ff:ff:ff:ff:ff:ff
66 static const OMacAddress& unknown; // 44:44:44:44:44:44 68 static const OMacAddress& unknown; // 44:44:44:44:44:44
67 69
68 private: 70 private:
69 unsigned char _bytes[6]; 71 unsigned char _bytes[6];
70 72
71 friend bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); 73 friend bool operator==( const OMacAddress &m1, const OMacAddress &m2 );
72 74
73}; 75};
74 76
75bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); 77bool operator==( const OMacAddress &m1, const OMacAddress &m2 );
76 78
77 79
78/*====================================================================================== 80/*======================================================================================
79 * OHostAddress 81 * OHostAddress
80 *======================================================================================*/ 82 *======================================================================================*/
81 83
82class OHostAddress : public QHostAddress 84class OHostAddress : public QHostAddress
83{ 85{
84 public: 86 public:
85 OHostAddress(); 87 OHostAddress();
86 ~OHostAddress(); 88 ~OHostAddress();
87}; 89};
88 90
89 91
90/*====================================================================================== 92/*======================================================================================
91 * OPrivateIOCTL 93 * OPrivateIOCTL
92 *======================================================================================*/ 94 *======================================================================================*/
93 95
94class OPrivateIOCTL : public QObject 96class OPrivateIOCTL : public QObject
95{ 97{
96 public: 98 public:
97 OPrivateIOCTL( QObject* parent, const char* name, int cmd, int getargs, int setargs ); 99 OPrivateIOCTL( QObject* parent, const char* name, int cmd, int getargs, int setargs );
98 ~OPrivateIOCTL(); 100 ~OPrivateIOCTL();
99 101
100 int numberGetArgs() const; 102 int numberGetArgs() const;
101 int typeGetArgs() const; 103 int typeGetArgs() const;
102 int numberSetArgs() const; 104 int numberSetArgs() const;
103 int typeSetArgs() const; 105 int typeSetArgs() const;
104 106
107 // FIXME return int? as ::ioctl does? -zecke
105 void invoke() const; 108 void invoke() const;
106 void setParameter( int, u_int32_t ); 109 void setParameter( int, u_int32_t );
107 110
108 private: 111 private:
109 u_int32_t _ioctl; 112 u_int32_t _ioctl;
110 u_int16_t _getargs; 113 u_int16_t _getargs;
111 u_int16_t _setargs; 114 u_int16_t _setargs;
112 115
113}; 116};
114 117
115 /*====================================================================================== 118 /*======================================================================================
116 * Miscellaneous 119 * Miscellaneous
117 *======================================================================================*/ 120 *======================================================================================*/
118 121
119/* dump bytes */ 122/* dump bytes */
120 123
121void dumpBytes( const unsigned char* data, int num ); 124void dumpBytes( const unsigned char* data, int num );
122 125
123/* Network to host order macros */ 126/* Network to host order macros */
124 127
125#ifdef LBL_ALIGN 128#ifdef LBL_ALIGN
126#define EXTRACT_16BITS(p) \ 129#define EXTRACT_16BITS(p) \
127 ((u_int16_t)((u_int16_t)*((const u_int8_t *)(p) + 0) << 8 | \ 130 ((u_int16_t)((u_int16_t)*((const u_int8_t *)(p) + 0) << 8 | \
128 (u_int16_t)*((const u_int8_t *)(p) + 1))) 131 (u_int16_t)*((const u_int8_t *)(p) + 1)))
129#define EXTRACT_32BITS(p) \ 132#define EXTRACT_32BITS(p) \
130 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 0) << 24 | \ 133 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 0) << 24 | \
131 (u_int32_t)*((const u_int8_t *)(p) + 1) << 16 | \ 134 (u_int32_t)*((const u_int8_t *)(p) + 1) << 16 | \
132 (u_int32_t)*((const u_int8_t *)(p) + 2) << 8 | \ 135 (u_int32_t)*((const u_int8_t *)(p) + 2) << 8 | \
133 (u_int32_t)*((const u_int8_t *)(p) + 3))) 136 (u_int32_t)*((const u_int8_t *)(p) + 3)))
134#else 137#else
135#define EXTRACT_16BITS(p) \ 138#define EXTRACT_16BITS(p) \
136 ((u_int16_t)ntohs(*(const u_int16_t *)(p))) 139 ((u_int16_t)ntohs(*(const u_int16_t *)(p)))
137#define EXTRACT_32BITS(p) \ 140#define EXTRACT_32BITS(p) \
138 ((u_int32_t)ntohl(*(const u_int32_t *)(p))) 141 ((u_int32_t)ntohl(*(const u_int32_t *)(p)))
139#endif 142#endif
140 143
141#define EXTRACT_24BITS(p) \ 144#define EXTRACT_24BITS(p) \
142 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 0) << 16 | \ 145 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 0) << 16 | \
143 (u_int32_t)*((const u_int8_t *)(p) + 1) << 8 | \ 146 (u_int32_t)*((const u_int8_t *)(p) + 1) << 8 | \
144 (u_int32_t)*((const u_int8_t *)(p) + 2))) 147 (u_int32_t)*((const u_int8_t *)(p) + 2)))
145 148
146/* Little endian protocol host order macros */ 149/* Little endian protocol host order macros */
147#define EXTRACT_LE_8BITS(p) (*(p)) 150#define EXTRACT_LE_8BITS(p) (*(p))
148#define EXTRACT_LE_16BITS(p) \ 151#define EXTRACT_LE_16BITS(p) \
149 ((u_int16_t)((u_int16_t)*((const u_int8_t *)(p) + 1) << 8 | \ 152 ((u_int16_t)((u_int16_t)*((const u_int8_t *)(p) + 1) << 8 | \
150 (u_int16_t)*((const u_int8_t *)(p) + 0))) 153 (u_int16_t)*((const u_int8_t *)(p) + 0)))
151#define EXTRACT_LE_32BITS(p) \ 154#define EXTRACT_LE_32BITS(p) \
152 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 3) << 24 | \ 155 ((u_int32_t)((u_int32_t)*((const u_int8_t *)(p) + 3) << 24 | \
153 (u_int32_t)*((const u_int8_t *)(p) + 2) << 16 | \ 156 (u_int32_t)*((const u_int8_t *)(p) + 2) << 16 | \
154 (u_int32_t)*((const u_int8_t *)(p) + 1) << 8 | \ 157 (u_int32_t)*((const u_int8_t *)(p) + 1) << 8 | \
155 (u_int32_t)*((const u_int8_t *)(p) + 0))) 158 (u_int32_t)*((const u_int8_t *)(p) + 0)))
156 159
157#endif // ONETUTILS_H 160#endif // ONETUTILS_H
158 161
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp
index 73b543b..f0094c7 100644
--- a/libopie2/opienet/onetwork.cpp
+++ b/libopie2/opienet/onetwork.cpp
@@ -1,239 +1,239 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 by the Wellenreiter team: 3              Copyright (C) 2003 by the Wellenreiter team:
4 Martin J. Muench <mjm@remote-exploit.org> 4 Martin J. Muench <mjm@remote-exploit.org>
5 Max Moser <mmo@remote-exploit.org 5 Max Moser <mmo@remote-exploit.org
6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34/* OPIE */ 34/* OPIE */
35 35
36#include <opie2/onetwork.h> 36#include <opie2/onetwork.h>
37 37
38/* QT */ 38/* QT */
39 39
40#include <qfile.h> 40#include <qfile.h>
41#include <qtextstream.h> 41#include <qtextstream.h>
42 42
43/* UNIX */ 43/* UNIX */
44 44
45#include <arpa/inet.h> 45#include <arpa/inet.h>
46#include <cerrno> 46#include <cerrno>
47#include <cstring> 47#include <cstring>
48#include <cstdlib> 48#include <cstdlib>
49#include <math.h> 49#include <math.h>
50#include <sys/ioctl.h> 50#include <sys/ioctl.h>
51#include <sys/socket.h> 51#include <sys/socket.h>
52#include <sys/types.h> 52#include <sys/types.h>
53#include <unistd.h> 53#include <unistd.h>
54#include <linux/sockios.h> 54#include <linux/sockios.h>
55#include <net/if_arp.h> 55#include <net/if_arp.h>
56#include <stdarg.h> 56#include <stdarg.h>
57 57
58using namespace std; 58using namespace std;
59 59
60/*====================================================================================== 60/*======================================================================================
61 * ONetwork 61 * ONetwork
62 *======================================================================================*/ 62 *======================================================================================*/
63 63
64ONetwork* ONetwork::_instance = 0; 64ONetwork* ONetwork::_instance = 0;
65 65
66ONetwork::ONetwork() 66ONetwork::ONetwork()
67{ 67{
68 qDebug( "ONetwork::ONetwork()" ); 68 qDebug( "ONetwork::ONetwork()" );
69 synchronize(); 69 synchronize();
70} 70}
71 71
72void ONetwork::synchronize() 72void ONetwork::synchronize()
73{ 73{
74 // gather available interfaces by inspecting /proc/net/dev 74 // gather available interfaces by inspecting /proc/net/dev
75 //FIXME: we could use SIOCGIFCONF here, but we aren't interested in virtual (e.g. eth0:0) devices 75 //FIXME: we could use SIOCGIFCONF here, but we aren't interested in virtual (e.g. eth0:0) devices
76 //FIXME: Use SIOCGIFCONF anway, because we can disable listing of aliased devices 76 //FIXME: Use SIOCGIFCONF anway, because we can disable listing of aliased devices
77 77
78 _interfaces.clear(); 78 _interfaces.clear();
79 QString str; 79 QString str;
80 QFile f( "/proc/net/dev" ); 80 QFile f( "/proc/net/dev" );
81 bool hasFile = f.open( IO_ReadOnly ); 81 bool hasFile = f.open( IO_ReadOnly );
82 if ( !hasFile ) 82 if ( !hasFile )
83 { 83 {
84 qDebug( "ONetwork: /proc/net/dev not existing. No network devices available" ); 84 qDebug( "ONetwork: /proc/net/dev not existing. No network devices available" );
85 return; 85 return;
86 } 86 }
87 QTextStream s( &f ); 87 QTextStream s( &f );
88 s.readLine(); 88 s.readLine();
89 s.readLine(); 89 s.readLine();
90 while ( !s.atEnd() ) 90 while ( !s.atEnd() )
91 { 91 {
92 s >> str; 92 s >> str;
93 str.truncate( str.find( ':' ) ); 93 str.truncate( str.find( ':' ) );
94 qDebug( "ONetwork: found interface '%s'", (const char*) str ); 94 qDebug( "ONetwork: found interface '%s'", (const char*) str );
95 ONetworkInterface* iface; 95 ONetworkInterface* iface;
96 if ( isWirelessInterface( str ) ) 96 if ( isWirelessInterface( str ) )
97 { 97 {
98 iface = new OWirelessNetworkInterface( this, (const char*) str ); 98 iface = new OWirelessNetworkInterface( this, (const char*) str );
99 qDebug( "ONetwork: interface '%s' has Wireless Extensions", (const char*) str ); 99 qDebug( "ONetwork: interface '%s' has Wireless Extensions", (const char*) str );
100 } 100 }
101 else 101 else
102 { 102 {
103 iface = new ONetworkInterface( this, (const char*) str ); 103 iface = new ONetworkInterface( this, (const char*) str );
104 } 104 }
105 _interfaces.insert( str, iface ); 105 _interfaces.insert( str, iface );
106 s.readLine(); 106 s.readLine();
107 } 107 }
108} 108}
109 109
110 110
111ONetworkInterface* ONetwork::interface( QString iface ) const 111ONetworkInterface* ONetwork::interface( const QString& iface ) const
112{ 112{
113 return _interfaces[iface]; 113 return _interfaces[iface];
114} 114}
115 115
116 116
117ONetwork* ONetwork::instance() 117ONetwork* ONetwork::instance()
118{ 118{
119 if ( !_instance ) _instance = new ONetwork(); 119 if ( !_instance ) _instance = new ONetwork();
120 return _instance; 120 return _instance;
121} 121}
122 122
123 123
124ONetwork::InterfaceIterator ONetwork::iterator() const 124ONetwork::InterfaceIterator ONetwork::iterator() const
125{ 125{
126 return ONetwork::InterfaceIterator( _interfaces ); 126 return ONetwork::InterfaceIterator( _interfaces );
127} 127}
128 128
129 129
130bool ONetwork::isWirelessInterface( const char* name ) const 130bool ONetwork::isWirelessInterface( const char* name ) const
131{ 131{
132 int sfd = socket( AF_INET, SOCK_STREAM, 0 ); 132 int sfd = socket( AF_INET, SOCK_STREAM, 0 );
133 struct iwreq iwr; 133 struct iwreq iwr;
134 memset( &iwr, 0, sizeof( struct iwreq ) ); 134 memset( &iwr, 0, sizeof( struct iwreq ) );
135 strcpy( (char*) &iwr.ifr_name, name ); 135 strcpy( (char*) &iwr.ifr_name, name );
136 int result = ::ioctl( sfd, SIOCGIWNAME, &iwr ); 136 int result = ::ioctl( sfd, SIOCGIWNAME, &iwr );
137 return result != -1; 137 return result != -1;
138} 138}
139 139
140/*====================================================================================== 140/*======================================================================================
141 * ONetworkInterface 141 * ONetworkInterface
142 *======================================================================================*/ 142 *======================================================================================*/
143 143
144ONetworkInterface::ONetworkInterface( QObject* parent, const char* name ) 144ONetworkInterface::ONetworkInterface( QObject* parent, const char* name )
145 :QObject( parent, name ), 145 :QObject( parent, name ),
146 _sfd( socket( AF_INET, SOCK_DGRAM, 0 ) ), _mon( 0 ) 146 _sfd( socket( AF_INET, SOCK_DGRAM, 0 ) ), _mon( 0 )
147{ 147{
148 qDebug( "ONetworkInterface::ONetworkInterface()" ); 148 qDebug( "ONetworkInterface::ONetworkInterface()" );
149 init(); 149 init();
150} 150}
151 151
152 152
153struct ifreq& ONetworkInterface::ifr() const 153struct ifreq& ONetworkInterface::ifr() const
154{ 154{
155 return _ifr; 155 return _ifr;
156} 156}
157 157
158 158
159void ONetworkInterface::init() 159void ONetworkInterface::init()
160{ 160{
161 qDebug( "ONetworkInterface::init()" ); 161 qDebug( "ONetworkInterface::init()" );
162 162
163 memset( &_ifr, 0, sizeof( struct ifreq ) ); 163 memset( &_ifr, 0, sizeof( struct ifreq ) );
164 164
165 if ( _sfd == -1 ) 165 if ( _sfd == -1 )
166 { 166 {
167 qDebug( "ONetworkInterface::init(): Warning - can't get socket for device '%s'", name() ); 167 qDebug( "ONetworkInterface::init(): Warning - can't get socket for device '%s'", name() );
168 return; 168 return;
169 } 169 }
170} 170}
171 171
172 172
173bool ONetworkInterface::ioctl( int call, struct ifreq& ifreq ) const 173bool ONetworkInterface::ioctl( int call, struct ifreq& ifreq ) const
174{ 174{
175 int result = ::ioctl( _sfd, call, &ifreq ); 175 int result = ::ioctl( _sfd, call, &ifreq );
176 if ( result == -1 ) 176 if ( result == -1 )
177 qDebug( "ONetworkInterface::ioctl (%s) call %d - Status: Failed: %d (%s)", name(), call, result, strerror( errno ) ); 177 qDebug( "ONetworkInterface::ioctl (%s) call %d - Status: Failed: %d (%s)", name(), call, result, strerror( errno ) );
178 else 178 else
179 qDebug( "ONetworkInterface::ioctl (%s) call %d - Status: Ok.", name(), call ); 179 qDebug( "ONetworkInterface::ioctl (%s) call %d - Status: Ok.", name(), call );
180 return ( result != -1 ); 180 return ( result != -1 );
181} 181}
182 182
183 183
184bool ONetworkInterface::ioctl( int call ) const 184bool ONetworkInterface::ioctl( int call ) const
185{ 185{
186 strcpy( _ifr.ifr_name, name() ); 186 strcpy( _ifr.ifr_name, name() );
187 return ioctl( call, _ifr ); 187 return ioctl( call, _ifr );
188} 188}
189 189
190 190
191bool ONetworkInterface::isLoopback() const 191bool ONetworkInterface::isLoopback() const
192{ 192{
193 ioctl( SIOCGIFFLAGS ); 193 ioctl( SIOCGIFFLAGS );
194 return _ifr.ifr_flags & IFF_LOOPBACK; 194 return _ifr.ifr_flags & IFF_LOOPBACK;
195} 195}
196 196
197 197
198bool ONetworkInterface::setUp( bool b ) 198bool ONetworkInterface::setUp( bool b )
199{ 199{
200 ioctl( SIOCGIFFLAGS ); 200 ioctl( SIOCGIFFLAGS );
201 if ( b ) _ifr.ifr_flags |= IFF_UP; 201 if ( b ) _ifr.ifr_flags |= IFF_UP;
202 else _ifr.ifr_flags &= (~IFF_UP); 202 else _ifr.ifr_flags &= (~IFF_UP);
203 return ioctl( SIOCSIFFLAGS ); 203 return ioctl( SIOCSIFFLAGS );
204} 204}
205 205
206 206
207bool ONetworkInterface::isUp() const 207bool ONetworkInterface::isUp() const
208{ 208{
209 ioctl( SIOCGIFFLAGS ); 209 ioctl( SIOCGIFFLAGS );
210 return _ifr.ifr_flags & IFF_UP; 210 return _ifr.ifr_flags & IFF_UP;
211} 211}
212 212
213 213
214QString ONetworkInterface::ipV4Address() const 214QString ONetworkInterface::ipV4Address() const
215{ 215{
216 if ( ioctl( SIOCGIFADDR ) ) 216 if ( ioctl( SIOCGIFADDR ) )
217 { 217 {
218 struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr; 218 struct sockaddr_in *sa = (struct sockaddr_in *) &_ifr.ifr_addr;
219 //FIXME: Use QHostAddress here 219 //FIXME: Use QHostAddress here
220 return QString( inet_ntoa( sa->sin_addr ) ); 220 return QString( inet_ntoa( sa->sin_addr ) );
221 } 221 }
222 else 222 else
223 return "<unknown>"; 223 return "<unknown>";
224} 224}
225 225
226 226
227void ONetworkInterface::setMacAddress( const OMacAddress& addr ) 227void ONetworkInterface::setMacAddress( const OMacAddress& addr )
228{ 228{
229 _ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER; 229 _ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;
230 memcpy( &_ifr.ifr_hwaddr.sa_data, addr.native(), 6 ); 230 memcpy( &_ifr.ifr_hwaddr.sa_data, addr.native(), 6 );
231 ioctl( SIOCSIFHWADDR ); 231 ioctl( SIOCSIFHWADDR );
232} 232}
233 233
234 234
235OMacAddress ONetworkInterface::macAddress() const 235OMacAddress ONetworkInterface::macAddress() const
236{ 236{
237 if ( ioctl( SIOCGIFHWADDR ) ) 237 if ( ioctl( SIOCGIFHWADDR ) )
238 { 238 {
239 return OMacAddress( _ifr ); 239 return OMacAddress( _ifr );
diff --git a/libopie2/opienet/onetwork.h b/libopie2/opienet/onetwork.h
index d2cc25d..db8e702 100644
--- a/libopie2/opienet/onetwork.h
+++ b/libopie2/opienet/onetwork.h
@@ -1,234 +1,236 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 by the Wellenreiter team: 3              Copyright (C) 2003 by the Wellenreiter team:
4 Martin J. Muench <mjm@remote-exploit.org> 4 Martin J. Muench <mjm@remote-exploit.org>
5 Max Moser <mmo@remote-exploit.org 5 Max Moser <mmo@remote-exploit.org
6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef ONETWORK_H 34#ifndef ONETWORK_H
35#define ONETWORK_H 35#define ONETWORK_H
36 36
37/* QT */ 37/* QT */
38 38
39#include <qvaluelist.h> 39#include <qvaluelist.h>
40#include <qdict.h> 40#include <qdict.h>
41#include <qmap.h> 41#include <qmap.h>
42#include <qobject.h> 42#include <qobject.h>
43#include <qhostaddress.h> 43#include <qhostaddress.h>
44 44
45/* OPIE */ 45/* OPIE */
46 46
47#include <opie2/onetutils.h> 47#include <opie2/onetutils.h>
48 48
49#ifndef IFNAMSIZ 49#ifndef IFNAMSIZ
50#define IFNAMSIZ 16 50#define IFNAMSIZ 16
51#endif 51#endif
52#ifndef IW_MAX_PRIV_DEF 52#ifndef IW_MAX_PRIV_DEF
53#define IW_MAX_PRIV_DEF 128 53#define IW_MAX_PRIV_DEF 128
54#endif 54#endif
55 55
56// ML: Yeah, I hate to include kernel headers, but it's necessary here 56// ML: Yeah, I hate to include kernel headers, but it's necessary here
57// ML: Here comes an ugly hack to prevent <linux/wireless.h> including <linux/if.h> 57// ML: Here comes an ugly hack to prevent <linux/wireless.h> including <linux/if.h>
58// ML: which conflicts with the user header <net/if.h> 58// ML: which conflicts with the user header <net/if.h>
59// ML: We really a user header for the Wireless Extensions, something like <net/wireless.h> 59// ML: We really a user header for the Wireless Extensions, something like <net/wireless.h>
60// ML: I will drop Jean an mail on that subject 60// ML: I will drop Jean an mail on that subject
61 61
62#include <net/if.h> 62#include <net/if.h>
63#define _LINUX_IF_H 63#define _LINUX_IF_H
64#include <linux/wireless.h> 64#include <linux/wireless.h>
65 65
66class ONetworkInterface; 66class ONetworkInterface;
67class OWirelessNetworkInterface; 67class OWirelessNetworkInterface;
68class OChannelHopper; 68class OChannelHopper;
69class OMonitoringInterface; 69class OMonitoringInterface;
70 70
71/*====================================================================================== 71/*======================================================================================
72 * ONetwork 72 * ONetwork
73 *======================================================================================*/ 73 *======================================================================================*/
74 74
75/** 75/**
76 * @brief A container class for all network devices. 76 * @brief A container class for all network devices.
77 * 77 *
78 * This class provides access to all available network devices of your computer. 78 * This class provides access to all available network devices of your computer.
79 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 79 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
80 */ 80 */
81class ONetwork : public QObject 81class ONetwork : public QObject
82{ 82{
83 Q_OBJECT 83 Q_OBJECT
84 84
85 public: 85 public:
86 typedef QDict<ONetworkInterface> InterfaceMap; 86 typedef QDict<ONetworkInterface> InterfaceMap;
87 typedef QDictIterator<ONetworkInterface> InterfaceIterator; 87 typedef QDictIterator<ONetworkInterface> InterfaceIterator;
88 88
89 public: 89 public:
90 /** 90 /**
91 * @returns a pointer to the (one and only) @ref ONetwork instance. 91 * @returns a pointer to the (one and only) @ref ONetwork instance.
92 */ 92 */
93 static ONetwork* instance(); 93 static ONetwork* instance();
94 /** 94 /**
95 * @returns an iterator usable for iterating through all network interfaces. 95 * @returns an iterator usable for iterating through all network interfaces.
96 */ 96 */
97 InterfaceIterator iterator() const; 97 InterfaceIterator iterator() const;
98 /** 98 /**
99 * @returns true, if the @p interface supports the wireless extension protocol. 99 * @returns true, if the @p interface supports the wireless extension protocol.
100 */ 100 */
101 // FIXME QString? -zecke
101 bool isWirelessInterface( const char* interface ) const; 102 bool isWirelessInterface( const char* interface ) const;
102 /** 103 /**
103 * @returns a pointer to the @ref ONetworkInterface object for the specified @p interface or 0, if not found 104 * @returns a pointer to the @ref ONetworkInterface object for the specified @p interface or 0, if not found
104 * @see ONetworkInterface 105 * @see ONetworkInterface
105 */ 106 */
106 ONetworkInterface* interface( QString interface ) const; 107 // FIXME: const QString& is prefered over QString!!! -zecke
108 ONetworkInterface* interface( const QString& interface ) const;
107 109
108 protected: 110 protected:
109 ONetwork(); 111 ONetwork();
110 void synchronize(); 112 void synchronize();
111 113
112 private: 114 private:
113 static ONetwork* _instance; 115 static ONetwork* _instance;
114 InterfaceMap _interfaces; 116 InterfaceMap _interfaces;
115}; 117};
116 118
117 119
118/*====================================================================================== 120/*======================================================================================
119 * ONetworkInterface 121 * ONetworkInterface
120 *======================================================================================*/ 122 *======================================================================================*/
121 123
122/** 124/**
123 * @brief A network interface wrapper. 125 * @brief A network interface wrapper.
124 * 126 *
125 * This class provides a wrapper for a network interface. All the cumbersume details of 127 * This class provides a wrapper for a network interface. All the cumbersume details of
126 * Linux ioctls are hidden under a convenient high-level interface. 128 * Linux ioctls are hidden under a convenient high-level interface.
127 * @warning Most of the setting methods contained in this class require the appropriate 129 * @warning Most of the setting methods contained in this class require the appropriate
128 * process permissions to work. 130 * process permissions to work.
129 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 131 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
130 */ 132 */
131class ONetworkInterface : public QObject 133class ONetworkInterface : public QObject
132{ 134{
133 friend class OMonitoringInterface; 135 friend class OMonitoringInterface;
134 friend class OCiscoMonitoringInterface; 136 friend class OCiscoMonitoringInterface;
135 friend class OWlanNGMonitoringInterface; 137 friend class OWlanNGMonitoringInterface;
136 friend class OHostAPMonitoringInterface; 138 friend class OHostAPMonitoringInterface;
137 friend class OOrinocoMonitoringInterface; 139 friend class OOrinocoMonitoringInterface;
138 140
139 public: 141 public:
140 /** 142 /**
141 * Constructor. Normally you don't create @ref ONetworkInterface objects yourself, 143 * Constructor. Normally you don't create @ref ONetworkInterface objects yourself,
142 * but access them via @ref ONetwork::interface(). 144 * but access them via @ref ONetwork::interface().
143 */ 145 */
144 ONetworkInterface( QObject* parent, const char* name ); 146 ONetworkInterface( QObject* parent, const char* name );
145 /** 147 /**
146 * Destructor. 148 * Destructor.
147 */ 149 */
148 virtual ~ONetworkInterface(); 150 virtual ~ONetworkInterface();
149 /** 151 /**
150 * Associates a @a monitoring interface with this network interface. 152 * Associates a @a monitoring interface with this network interface.
151 * @note This is currently only useful with @ref OWirelessNetworkInterface objects. 153 * @note This is currently only useful with @ref OWirelessNetworkInterface objects.
152 */ 154 */
153 void setMonitoring( OMonitoringInterface* monitoring ); 155 void setMonitoring( OMonitoringInterface* monitoring );
154 /** 156 /**
155 * @returns the currently associated monitoring interface or 0, if no monitoring is associated. 157 * @returns the currently associated monitoring interface or 0, if no monitoring is associated.
156 */ 158 */
157 OMonitoringInterface* monitoring() const; 159 OMonitoringInterface* monitoring() const;
158 /** 160 /**
159 * Setting an interface to promiscuous mode enables the device to receive 161 * Setting an interface to promiscuous mode enables the device to receive
160 * all packets on the shared medium - as opposed to packets which are addressed to this interface. 162 * all packets on the shared medium - as opposed to packets which are addressed to this interface.
161 */ 163 */
162 bool setPromiscuousMode( bool ); 164 bool setPromiscuousMode( bool );
163 /** 165 /**
164 * @returns true if the interface is set to promiscuous mode. 166 * @returns true if the interface is set to promiscuous mode.
165 */ 167 */
166 bool promiscuousMode() const; 168 bool promiscuousMode() const;
167 /** 169 /**
168 * Setting an interface to up enables it to receive packets. 170 * Setting an interface to up enables it to receive packets.
169 */ 171 */
170 bool setUp( bool ); 172 bool setUp( bool );
171 /** 173 /**
172 * @returns true if the interface is up. 174 * @returns true if the interface is up.
173 */ 175 */
174 bool isUp() const; 176 bool isUp() const;
175 /* 177 /*
176 * @returns true if the interface is a loopback interface. 178 * @returns true if the interface is a loopback interface.
177 */ 179 */
178 bool isLoopback() const; 180 bool isLoopback() const;
179 /* 181 /*
180 * @returns true if the interface is featuring supports the wireless extension protocol. 182 * @returns true if the interface is featuring supports the wireless extension protocol.
181 */ 183 */
182 bool isWireless() const; 184 bool isWireless() const;
183 /* 185 /*
184 * @returns the IPv4 address associated with this interface. 186 * @returns the IPv4 address associated with this interface.
185 */ 187 */
186 QString ipV4Address() const; 188 QString ipV4Address() const;
187 /* 189 /*
188 * Associate the MAC address @a addr with the interface. 190 * Associate the MAC address @a addr with the interface.
189 * @note It can be necessary to shut down the interface prior to calling this method. 191 * @note It can be necessary to shut down the interface prior to calling this method.
190 * @warning This is not supported by all drivers. 192 * @warning This is not supported by all drivers.
191 */ 193 */
192 void setMacAddress( const OMacAddress& addr ); 194 void setMacAddress( const OMacAddress& addr );
193 /* 195 /*
194 * @returns the MAC address associated with this interface. 196 * @returns the MAC address associated with this interface.
195 */ 197 */
196 OMacAddress macAddress() const; 198 OMacAddress macAddress() const;
197 /* 199 /*
198 * @returns the data link type currently associated with this interface. 200 * @returns the data link type currently associated with this interface.
199 * @see #include <net/if_arp.h> for possible values. 201 * @see #include <net/if_arp.h> for possible values.
200 */ 202 */
201 int dataLinkType() const; 203 int dataLinkType() const;
202 204
203 protected: 205 protected:
204 const int _sfd; 206 const int _sfd;
205 mutable ifreq _ifr; 207 mutable ifreq _ifr;
206 OMonitoringInterface* _mon; 208 OMonitoringInterface* _mon;
207 209
208 protected: 210 protected:
209 struct ifreq& ifr() const; 211 struct ifreq& ifr() const;
210 virtual void init(); 212 virtual void init();
211 bool ioctl( int call ) const; 213 bool ioctl( int call ) const;
212 bool ioctl( int call, struct ifreq& ) const; 214 bool ioctl( int call, struct ifreq& ) const;
213}; 215};
214 216
215/*====================================================================================== 217/*======================================================================================
216 * OChannelHopper 218 * OChannelHopper
217 *======================================================================================*/ 219 *======================================================================================*/
218 220
219/** 221/**
220 * @brief A radio frequency channel hopper. 222 * @brief A radio frequency channel hopper.
221 * 223 *
222 * This class provides a channel hopper for radio frequencies. A channel hopper frequently 224 * This class provides a channel hopper for radio frequencies. A channel hopper frequently
223 * changes the radio frequency channel of its associated @ref OWirelessNetworkInterface. 225 * changes the radio frequency channel of its associated @ref OWirelessNetworkInterface.
224 * This is necessary when in monitoring mode and scanning for other devices, because 226 * This is necessary when in monitoring mode and scanning for other devices, because
225 * the radio frequency hardware can only detect packets sent on the same frequency. 227 * the radio frequency hardware can only detect packets sent on the same frequency.
226 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 228 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
227 */ 229 */
228class OChannelHopper : public QObject 230class OChannelHopper : public QObject
229{ 231{
230 Q_OBJECT 232 Q_OBJECT
231 233
232 public: 234 public:
233 OChannelHopper( OWirelessNetworkInterface* ); 235 OChannelHopper( OWirelessNetworkInterface* );
234 virtual ~OChannelHopper(); 236 virtual ~OChannelHopper();
diff --git a/libopie2/opienet/opcap.h b/libopie2/opienet/opcap.h
index 99631ba..6bf7416 100644
--- a/libopie2/opienet/opcap.h
+++ b/libopie2/opienet/opcap.h
@@ -1,507 +1,517 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 by the Wellenreiter team: 3              Copyright (C) 2003 by the Wellenreiter team:
4 Martin J. Muench <mjm@remote-exploit.org> 4 Martin J. Muench <mjm@remote-exploit.org>
5 Max Moser <mmo@remote-exploit.org 5 Max Moser <mmo@remote-exploit.org
6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef OPCAP_H 34#ifndef OPCAP_H
35#define OPCAP_H 35#define OPCAP_H
36 36
37/* LINUX */ 37/* LINUX */
38extern "C" // work around a bpf/pcap conflict in recent headers 38extern "C" // work around a bpf/pcap conflict in recent headers
39{ 39{
40 #include <pcap.h> 40 #include <pcap.h>
41} 41}
42#include <netinet/ether.h> 42#include <netinet/ether.h>
43#include <netinet/ip.h> 43#include <netinet/ip.h>
44#include <netinet/udp.h> 44#include <netinet/udp.h>
45#include <netinet/tcp.h> 45#include <netinet/tcp.h>
46#include <time.h> 46#include <time.h>
47 47
48/* QT */ 48/* QT */
49#include <qevent.h> 49#include <qevent.h>
50#include <qfile.h> 50#include <qfile.h>
51#include <qhostaddress.h> 51#include <qhostaddress.h>
52#include <qobject.h> 52#include <qobject.h>
53#include <qstring.h> 53#include <qstring.h>
54#include <qmap.h> 54#include <qmap.h>
55 55
56/* OPIE */ 56/* OPIE */
57#include <opie2/onetutils.h> 57#include <opie2/onetutils.h>
58#include "802_11_user.h" 58#include "802_11_user.h"
59 59
60/* TYPEDEFS */ 60/* TYPEDEFS */
61typedef struct timeval timevalstruct; 61typedef struct timeval timevalstruct;
62typedef struct pcap_pkthdr packetheaderstruct; 62typedef struct pcap_pkthdr packetheaderstruct;
63 63
64/* FORWARDS */ 64/* FORWARDS */
65class OPacketCapturer; 65class OPacketCapturer;
66class QSocketNotifier; 66class QSocketNotifier;
67 67
68/*====================================================================================== 68/*======================================================================================
69 * OPacket - A frame on the wire 69 * OPacket - A frame on the wire
70 *======================================================================================*/ 70 *======================================================================================*/
71 71// FIXME how many OPackets do we've at a time? QObject seams to be a big for that usage
72class OPacket : public QObject 72class OPacket : public QObject
73{ 73{
74 Q_OBJECT 74 Q_OBJECT
75 75
76 public: 76 public:
77 OPacket( int datalink, packetheaderstruct, const unsigned char*, QObject* parent ); 77 OPacket( int datalink, packetheaderstruct, const unsigned char*, QObject* parent );
78 virtual ~OPacket(); 78 virtual ~OPacket();
79 79
80 timevalstruct timeval() const; 80 timevalstruct timeval() const;
81 81
82 int caplen() const; 82 int caplen() const;
83 int len() const; 83 int len() const;
84 QString dump( int = 32 ) const; 84 QString dump( int = 32 ) const;
85 85
86 void updateStats( QMap<QString,int>&, QObjectList* ); 86 void updateStats( QMap<QString,int>&, QObjectList* );
87 87
88 private: 88 private:
89 const packetheaderstruct _hdr; // pcap packet header 89 const packetheaderstruct _hdr; // pcap packet header
90 const unsigned char* _data; // pcap packet data 90 const unsigned char* _data; // pcap packet data
91 const unsigned char* _end; // end of pcap packet data 91 const unsigned char* _end; // end of pcap packet data
92}; 92};
93 93
94/*====================================================================================== 94/*======================================================================================
95 * OEthernetPacket - DLT_EN10MB frame 95 * OEthernetPacket - DLT_EN10MB frame
96 *======================================================================================*/ 96 *======================================================================================*/
97 97
98//FIXME same critic as above -zecke
98class OEthernetPacket : public QObject 99class OEthernetPacket : public QObject
99{ 100{
100 Q_OBJECT 101 Q_OBJECT
101 102
102 public: 103 public:
103 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 ); 104 OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 );
104 virtual ~OEthernetPacket(); 105 virtual ~OEthernetPacket();
105 106
106 OMacAddress sourceAddress() const; 107 OMacAddress sourceAddress() const;
107 OMacAddress destinationAddress() const; 108 OMacAddress destinationAddress() const;
108 int type() const; 109 int type() const;
109 110
110 private: 111 private:
111 const struct ether_header* _ether; 112 const struct ether_header* _ether;
112}; 113};
113 114
114 115
115/*====================================================================================== 116/*======================================================================================
116 * OWaveLanPacket - DLT_IEEE802_11 frame 117 * OWaveLanPacket - DLT_IEEE802_11 frame
117 *======================================================================================*/ 118 *======================================================================================*/
118 119//FIXME same
119class OWaveLanPacket : public QObject 120class OWaveLanPacket : public QObject
120{ 121{
121 Q_OBJECT 122 Q_OBJECT
122 123
123 public: 124 public:
124 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 ); 125 OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 );
125 virtual ~OWaveLanPacket(); 126 virtual ~OWaveLanPacket();
126 127
127 int duration() const; 128 int duration() const;
128 bool fromDS() const; 129 bool fromDS() const;
129 bool toDS() const; 130 bool toDS() const;
130 virtual OMacAddress macAddress1() const; 131 virtual OMacAddress macAddress1() const;
131 virtual OMacAddress macAddress2() const; 132 virtual OMacAddress macAddress2() const;
132 virtual OMacAddress macAddress3() const; 133 virtual OMacAddress macAddress3() const;
133 virtual OMacAddress macAddress4() const; 134 virtual OMacAddress macAddress4() const;
134 bool usesPowerManagement() const; 135 bool usesPowerManagement() const;
135 int type() const; 136 int type() const;
136 int subType() const; 137 int subType() const;
137 int version() const; 138 int version() const;
138 bool usesWep() const; 139 bool usesWep() const;
139 140
140 private: 141 private:
141 const struct ieee_802_11_header* _wlanhdr; 142 const struct ieee_802_11_header* _wlanhdr;
142}; 143};
143 144
144 145
145/*====================================================================================== 146/*======================================================================================
146 * OWaveLanManagementPacket - type: management (T_MGMT) 147 * OWaveLanManagementPacket - type: management (T_MGMT)
147 *======================================================================================*/ 148 *======================================================================================*/
148 149//FIXME same as above -zecke
149class OWaveLanManagementPacket : public QObject 150class OWaveLanManagementPacket : public QObject
150{ 151{
151 Q_OBJECT 152 Q_OBJECT
152 153
153 public: 154 public:
154 OWaveLanManagementPacket( const unsigned char*, const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 ); 155 OWaveLanManagementPacket( const unsigned char*, const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 );
155 virtual ~OWaveLanManagementPacket(); 156 virtual ~OWaveLanManagementPacket();
156 157
157 QString managementType() const; 158 QString managementType() const;
158 159
159 int beaconInterval() const; 160 int beaconInterval() const;
160 int capabilities() const; // generic 161 int capabilities() const; // generic
161 162
162 bool canESS() const; 163 bool canESS() const;
163 bool canIBSS() const; 164 bool canIBSS() const;
164 bool canCFP() const; 165 bool canCFP() const;
165 bool canCFP_REQ() const; 166 bool canCFP_REQ() const;
166 bool canPrivacy() const; 167 bool canPrivacy() const;
167 168
168 private: 169 private:
169 const struct ieee_802_11_mgmt_header* _header; 170 const struct ieee_802_11_mgmt_header* _header;
170 const struct ieee_802_11_mgmt_body* _body; 171 const struct ieee_802_11_mgmt_body* _body;
171}; 172};
172 173
173 174
174/*====================================================================================== 175/*======================================================================================
175 * OWaveLanManagementSSID 176 * OWaveLanManagementSSID
176 *======================================================================================*/ 177 *======================================================================================*/
177 178//FIXME is QObject necessary? -zecke
178class OWaveLanManagementSSID : public QObject 179class OWaveLanManagementSSID : public QObject
179{ 180{
180 Q_OBJECT 181 Q_OBJECT
181 182
182 public: 183 public:
183 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 ); 184 OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 );
184 virtual ~OWaveLanManagementSSID(); 185 virtual ~OWaveLanManagementSSID();
185 186
186 QString ID() const; 187 QString ID() const;
187 188
188 private: 189 private:
189 const struct ssid_t* _data; 190 const struct ssid_t* _data;
190}; 191};
191 192
192/*====================================================================================== 193/*======================================================================================
193 * OWaveLanManagementRates 194 * OWaveLanManagementRates
194 *======================================================================================*/ 195 *======================================================================================*/
195 196// FIXME same as above -zecke
196class OWaveLanManagementRates : public QObject 197class OWaveLanManagementRates : public QObject
197{ 198{
198 Q_OBJECT 199 Q_OBJECT
199 200
200 public: 201 public:
201 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 ); 202 OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 );
202 virtual ~OWaveLanManagementRates(); 203 virtual ~OWaveLanManagementRates();
203 204
204 private: 205 private:
205 const struct rates_t* _data; 206 const struct rates_t* _data;
206}; 207};
207 208
208/*====================================================================================== 209/*======================================================================================
209 * OWaveLanManagementCF 210 * OWaveLanManagementCF
210 *======================================================================================*/ 211 *======================================================================================*/
211 212
213//FIXME same....
212class OWaveLanManagementCF : public QObject 214class OWaveLanManagementCF : public QObject
213{ 215{
214 Q_OBJECT 216 Q_OBJECT
215 217
216 public: 218 public:
217 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 ); 219 OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 );
218 virtual ~OWaveLanManagementCF(); 220 virtual ~OWaveLanManagementCF();
219 221
220 private: 222 private:
221 const struct cf_t* _data; 223 const struct cf_t* _data;
222}; 224};
223 225
224/*====================================================================================== 226/*======================================================================================
225 * OWaveLanManagementFH 227 * OWaveLanManagementFH
226 *======================================================================================*/ 228 *======================================================================================*/
227 229
230//FIXME same
228class OWaveLanManagementFH : public QObject 231class OWaveLanManagementFH : public QObject
229{ 232{
230 Q_OBJECT 233 Q_OBJECT
231 234
232 public: 235 public:
233 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 ); 236 OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 );
234 virtual ~OWaveLanManagementFH(); 237 virtual ~OWaveLanManagementFH();
235 238
236 private: 239 private:
237 const struct fh_t* _data; 240 const struct fh_t* _data;
238}; 241};
239 242
240/*====================================================================================== 243/*======================================================================================
241 * OWaveLanManagementDS 244 * OWaveLanManagementDS
242 *======================================================================================*/ 245 *======================================================================================*/
243 246//FIXME same
244class OWaveLanManagementDS : public QObject 247class OWaveLanManagementDS : public QObject
245{ 248{
246 Q_OBJECT 249 Q_OBJECT
247 250
248 public: 251 public:
249 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 ); 252 OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 );
250 virtual ~OWaveLanManagementDS(); 253 virtual ~OWaveLanManagementDS();
251 254
252 int channel() const; 255 int channel() const;
253 256
254 private: 257 private:
255 const struct ds_t* _data; 258 const struct ds_t* _data;
256}; 259};
257 260
258/*====================================================================================== 261/*======================================================================================
259 * OWaveLanManagementTim 262 * OWaveLanManagementTim
260 *======================================================================================*/ 263 *======================================================================================*/
261 264
265//FIXME guess what?
262class OWaveLanManagementTim : public QObject 266class OWaveLanManagementTim : public QObject
263{ 267{
264 Q_OBJECT 268 Q_OBJECT
265 269
266 public: 270 public:
267 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 ); 271 OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 );
268 virtual ~OWaveLanManagementTim(); 272 virtual ~OWaveLanManagementTim();
269 273
270 private: 274 private:
271 const struct tim_t* _data; 275 const struct tim_t* _data;
272}; 276};
273 277
274/*====================================================================================== 278/*======================================================================================
275 * OWaveLanManagementIBSS 279 * OWaveLanManagementIBSS
276 *======================================================================================*/ 280 *======================================================================================*/
277 281
282//FIXME same as above ( Qobject )
278class OWaveLanManagementIBSS : public QObject 283class OWaveLanManagementIBSS : public QObject
279{ 284{
280 Q_OBJECT 285 Q_OBJECT
281 286
282 public: 287 public:
283 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 ); 288 OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 );
284 virtual ~OWaveLanManagementIBSS(); 289 virtual ~OWaveLanManagementIBSS();
285 290
286 private: 291 private:
287 const struct ibss_t* _data; 292 const struct ibss_t* _data;
288}; 293};
289 294
290/*====================================================================================== 295/*======================================================================================
291 * OWaveLanManagementChallenge 296 * OWaveLanManagementChallenge
292 *======================================================================================*/ 297 *======================================================================================*/
293 298
299// Qobject do we need that??
294class OWaveLanManagementChallenge : public QObject 300class OWaveLanManagementChallenge : public QObject
295{ 301{
296 Q_OBJECT 302 Q_OBJECT
297 303
298 public: 304 public:
299 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 ); 305 OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 );
300 virtual ~OWaveLanManagementChallenge(); 306 virtual ~OWaveLanManagementChallenge();
301 307
302 private: 308 private:
303 const struct challenge_t* _data; 309 const struct challenge_t* _data;
304}; 310};
305 311
306/*====================================================================================== 312/*======================================================================================
307 * OWaveLanDataPacket - type: data (T_DATA) 313 * OWaveLanDataPacket - type: data (T_DATA)
308 *======================================================================================*/ 314 *======================================================================================*/
309 315// Qobject?
310class OWaveLanDataPacket : public QObject 316class OWaveLanDataPacket : public QObject
311{ 317{
312 Q_OBJECT 318 Q_OBJECT
313 319
314 public: 320 public:
315 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 ); 321 OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 );
316 virtual ~OWaveLanDataPacket(); 322 virtual ~OWaveLanDataPacket();
317 323
318 private: 324 private:
319 const struct ieee_802_11_data_header* _header; 325 const struct ieee_802_11_data_header* _header;
320}; 326};
321 327
322/*====================================================================================== 328/*======================================================================================
323 * OWaveLanControlPacket - type: control (T_CTRL) 329 * OWaveLanControlPacket - type: control (T_CTRL)
324 *======================================================================================*/ 330 *======================================================================================*/
325 331// Qobject needed?
326class OWaveLanControlPacket : public QObject 332class OWaveLanControlPacket : public QObject
327{ 333{
328 Q_OBJECT 334 Q_OBJECT
329 335
330 public: 336 public:
331 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 ); 337 OWaveLanControlPacket( const unsigned char*, const struct ieee_802_11_control_header*, OWaveLanPacket* parent = 0 );
332 virtual ~OWaveLanControlPacket(); 338 virtual ~OWaveLanControlPacket();
333 339
334 private: 340 private:
335 const struct ieee_802_11_control_header* _header; 341 const struct ieee_802_11_control_header* _header;
336}; 342};
337 343
338/*====================================================================================== 344/*======================================================================================
339 * OLLCPacket - IEEE 802.2 Link Level Control 345 * OLLCPacket - IEEE 802.2 Link Level Control
340 *======================================================================================*/ 346 *======================================================================================*/
341 347
348// QObject needed?
342class OLLCPacket : public QObject 349class OLLCPacket : public QObject
343{ 350{
344 Q_OBJECT 351 Q_OBJECT
345 352
346 public: 353 public:
347 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 ); 354 OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 );
348 virtual ~OLLCPacket(); 355 virtual ~OLLCPacket();
349 356
350 private: 357 private:
358 //FIXME how to get that header?
351 const struct ieee_802_11_802_2_header* _header; 359 const struct ieee_802_11_802_2_header* _header;
352}; 360};
353 361
354/*====================================================================================== 362/*======================================================================================
355 * OIPPacket 363 * OIPPacket
356 *======================================================================================*/ 364 *======================================================================================*/
357 365
366// Qobject as baseclass?
358class OIPPacket : public QObject 367class OIPPacket : public QObject
359{ 368{
360 Q_OBJECT 369 Q_OBJECT
361 370
362 public: 371 public:
363 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 ); 372 OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 );
364 virtual ~OIPPacket(); 373 virtual ~OIPPacket();
365 374
366 QHostAddress fromIPAddress() const; 375 QHostAddress fromIPAddress() const;
367 QHostAddress toIPAddress() const; 376 QHostAddress toIPAddress() const;
368 377
369 int tos() const; 378 int tos() const;
370 int len() const; 379 int len() const;
371 int id() const; 380 int id() const;
372 int offset() const; 381 int offset() const;
373 int ttl() const; 382 int ttl() const;
374 int protocol() const; 383 int protocol() const;
375 int checksum() const; 384 int checksum() const;
376 385
377 private: 386 private:
378 const struct iphdr* _iphdr; 387 const struct iphdr* _iphdr;
379}; 388};
380 389
381/*====================================================================================== 390/*======================================================================================
382 * OUDPPacket 391 * OUDPPacket
383 *======================================================================================*/ 392 *======================================================================================*/
384 393// QObject?
385class OUDPPacket : public QObject 394class OUDPPacket : public QObject
386{ 395{
387 Q_OBJECT 396 Q_OBJECT
388 397
389 public: 398 public:
390 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 ); 399 OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 );
391 virtual ~OUDPPacket(); 400 virtual ~OUDPPacket();
392 401
393 int fromPort() const; 402 int fromPort() const;
394 int toPort() const; 403 int toPort() const;
395 404
396 private: 405 private:
397 const struct udphdr* _udphdr; 406 const struct udphdr* _udphdr;
398}; 407};
399 408
400/*====================================================================================== 409/*======================================================================================
401 * OTCPPacket 410 * OTCPPacket
402 *======================================================================================*/ 411 *======================================================================================*/
403 412
413// Qobect needed?
404class OTCPPacket : public QObject 414class OTCPPacket : public QObject
405{ 415{
406 Q_OBJECT 416 Q_OBJECT
407 417
408 public: 418 public:
409 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 ); 419 OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 );
410 virtual ~OTCPPacket(); 420 virtual ~OTCPPacket();
411 421
412 int fromPort() const; 422 int fromPort() const;
413 int toPort() const; 423 int toPort() const;
414 424
415 private: 425 private:
416 const struct tcphdr* _tcphdr; 426 const struct tcphdr* _tcphdr;
417}; 427};
418 428
419 429
420/*====================================================================================== 430/*======================================================================================
421 * OPacketCapturer 431 * OPacketCapturer
422 *======================================================================================*/ 432 *======================================================================================*/
423 433
424/** 434/**
425 * @brief A class based wrapper for network packet capturing. 435 * @brief A class based wrapper for network packet capturing.
426 * 436 *
427 * This class is the base of a high-level interface to the well known packet capturing 437 * This class is the base of a high-level interface to the well known packet capturing
428 * library libpcap. ... 438 * library libpcap. ...
429 */ 439 */
430class OPacketCapturer : public QObject 440class OPacketCapturer : public QObject
431{ 441{
432 Q_OBJECT 442 Q_OBJECT
433 443
434 public: 444 public:
435 /** 445 /**
436 * Constructor. 446 * Constructor.
437 */ 447 */
438 OPacketCapturer( QObject* parent = 0, const char* name = 0 ); 448 OPacketCapturer( QObject* parent = 0, const char* name = 0 );
439 /** 449 /**
440 * Destructor. 450 * Destructor.
441 */ 451 */
442 ~OPacketCapturer(); 452 ~OPacketCapturer();
443 /** 453 /**
444 * Setting the packet capturer to use blocking IO calls can be useful when 454 * Setting the packet capturer to use blocking IO calls can be useful when
445 * not using the socket notifier, e.g. without an application object. 455 * not using the socket notifier, e.g. without an application object.
446 */ 456 */
447 void setBlocking( bool ); 457 void setBlocking( bool );
448 /** 458 /**
449 * @returns true if the packet capturer uses blocking IO calls. 459 * @returns true if the packet capturer uses blocking IO calls.
450 */ 460 */
451 bool blocking() const; 461 bool blocking() const;
452 /** 462 /**
453 * Closes the packet capturer. This is automatically done in the destructor. 463 * Closes the packet capturer. This is automatically done in the destructor.
454 */ 464 */
455 void close(); 465 void close();
456 /** 466 /**
457 * @returns the data link type. 467 * @returns the data link type.
458 * @see <pcap.h> for possible values. 468 * @see <pcap.h> for possible values.
459 */ 469 */
460 int dataLink() const; 470 int dataLink() const;
461 /** 471 /**
462 * @returns the filedescriptor of the packet capturer. This is only useful, if 472 * @returns the filedescriptor of the packet capturer. This is only useful, if
463 * not using the socket notifier, e.g. without an application object. 473 * not using the socket notifier, e.g. without an application object.
464 */ 474 */
465 int fileno() const; 475 int fileno() const;
466 /** 476 /**
467 * @returns the next @ref OPacket from the packet capturer. 477 * @returns the next @ref OPacket from the packet capturer.
468 * @note If blocking mode is true then this call might block. 478 * @note If blocking mode is true then this call might block.
469 */ 479 */
470 OPacket* next(); 480 OPacket* next();
471 /** 481 /**
472 * Open the packet capturer to capture packets in live-mode from @a interface. 482 * Open the packet capturer to capture packets in live-mode from @a interface.
473 * If a @a filename is given, all captured packets are output to a tcpdump-compatible capture file. 483 * If a @a filename is given, all captured packets are output to a tcpdump-compatible capture file.
474 */ 484 */
475 bool open( const QString& interface, const QString& filename = QString::null ); 485 bool open( const QString& interface, const QString& filename = QString::null );
476 /** 486 /**
477 * Open the packet capturer to capture packets in offline-mode from @a file. 487 * Open the packet capturer to capture packets in offline-mode from @a file.
478 */ 488 */
479 bool open( const QFile& file ); 489 bool open( const QFile& file );
480 /** 490 /**
481 * @returns true if the packet capturer is open 491 * @returns true if the packet capturer is open
482 */ 492 */
483 bool isOpen() const; 493 bool isOpen() const;
484 494
485 const QMap<QString,int>& statistics() const; 495 const QMap<QString,int>& statistics() const;
486 496
487 signals: 497 signals:
488 /** 498 /**
489 * This signal is emitted, when a packet has been received. 499 * This signal is emitted, when a packet has been received.
490 */ 500 */
491 void receivedPacket( OPacket* ); 501 void receivedPacket( OPacket* );
492 502
493 protected slots: 503 protected slots:
494 void readyToReceive(); 504 void readyToReceive();
495 505
496 protected: 506 protected:
497 QString _name; // devicename 507 QString _name; // devicename
498 bool _open; // check this before doing pcap calls 508 bool _open; // check this before doing pcap calls
499 pcap_t* _pch; // pcap library handle 509 pcap_t* _pch; // pcap library handle
500 pcap_dumper_t* _pcd; // pcap dumper handle 510 pcap_dumper_t* _pcd; // pcap dumper handle
501 QSocketNotifier* _sn; // socket notifier for main loop 511 QSocketNotifier* _sn; // socket notifier for main loop
502 mutable char _errbuf[PCAP_ERRBUF_SIZE]; // holds error strings from libpcap 512 mutable char _errbuf[PCAP_ERRBUF_SIZE]; // holds error strings from libpcap
503 QMap<QString, int> _stats; // statistics; 513 QMap<QString, int> _stats; // statistics;
504}; 514};
505 515
506#endif // OPCAP_H 516#endif // OPCAP_H
507 517
diff --git a/libopie2/opieui/odialog.h b/libopie2/opieui/odialog.h
index 7947dfb..4116ed7 100644
--- a/libopie2/opieui/odialog.h
+++ b/libopie2/opieui/odialog.h
@@ -1,88 +1,89 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4              (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 4              (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 =. 5 =.
6 .=l. 6 .=l.
7           .>+-= 7           .>+-=
8 _;:,     .>    :=|. This program is free software; you can 8 _;:,     .>    :=|. This program is free software; you can
9.> <`_,   >  .   <= redistribute it and/or modify it under 9.> <`_,   >  .   <= redistribute it and/or modify it under
10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 10:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
11.="- .-=="i,     .._ License as published by the Free Software 11.="- .-=="i,     .._ License as published by the Free Software
12 - .   .-<_>     .<> Foundation; either version 2 of the License, 12 - .   .-<_>     .<> Foundation; either version 2 of the License,
13     ._= =}       : or (at your option) any later version. 13     ._= =}       : or (at your option) any later version.
14    .%`+i>       _;_. 14    .%`+i>       _;_.
15    .i_,=:_.      -<s. This program is distributed in the hope that 15    .i_,=:_.      -<s. This program is distributed in the hope that
16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 16     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
17    : ..    .:,     . . . without even the implied warranty of 17    : ..    .:,     . . . without even the implied warranty of
18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 18    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 19  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
20..}^=.=       =       ; Library General Public License for more 20..}^=.=       =       ; Library General Public License for more
21++=   -.     .`     .: details. 21++=   -.     .`     .: details.
22 :     =  ...= . :.=- 22 :     =  ...= . :.=-
23 -.   .:....=;==+<; You should have received a copy of the GNU 23 -.   .:....=;==+<; You should have received a copy of the GNU
24  -_. . .   )=.  = Library General Public License along with 24  -_. . .   )=.  = Library General Public License along with
25    --        :-=` this library; see the file COPYING.LIB. 25    --        :-=` this library; see the file COPYING.LIB.
26 If not, write to the Free Software Foundation, 26 If not, write to the Free Software Foundation,
27 Inc., 59 Temple Place - Suite 330, 27 Inc., 59 Temple Place - Suite 330,
28 Boston, MA 02111-1307, USA. 28 Boston, MA 02111-1307, USA.
29 29
30*/ 30*/
31 31
32#ifndef ODIALOG_H 32#ifndef ODIALOG_H
33#define ODIALOG_H 33#define ODIALOG_H
34 34
35class QLayoutItem; 35class QLayoutItem;
36 36
37#include <qdialog.h> 37#include <qdialog.h>
38 38
39/** 39/**
40 * Dialog with extended nonmodal support and methods for OPIE standard 40 * Dialog with extended nonmodal support and methods for OPIE standard
41 * compliance. 41 * compliance.
42 * 42 *
43 * The @ref marginHint() and @ref spacingHint() sizes shall be used 43 * The @ref marginHint() and @ref spacingHint() sizes shall be used
44 * whenever you layout the interior of a dialog. One special note. If 44 * whenever you layout the interior of a dialog. One special note. If
45 * you make your own action buttons (OK, Cancel etc), the space 45 * you make your own action buttons (OK, Cancel etc), the space
46 * beteween the buttons shall be @ref spacingHint(), whereas the space 46 * beteween the buttons shall be @ref spacingHint(), whereas the space
47 * above, below, to the right and to the left shall be @ref marginHint(). 47 * above, below, to the right and to the left shall be @ref marginHint().
48 * If you add a separator line above the buttons, there shall be a 48 * If you add a separator line above the buttons, there shall be a
49 * @ref marginHint() between the buttons and the separator and a 49 * @ref marginHint() between the buttons and the separator and a
50 * @ref marginHint() above the separator as well. 50 * @ref marginHint() above the separator as well.
51 * 51 *
52 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 52 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
53 */ 53 */
54 // lets fix up Qt instead! Size does matter. -zecke
54 55
55class ODialog : public QDialog 56class ODialog : public QDialog
56{ 57{
57 Q_OBJECT 58 Q_OBJECT
58 59
59 public: 60 public:
60 61
61 /** 62 /**
62 * Constructor. 63 * Constructor.
63 * 64 *
64 * Takes the same arguments as @ref QDialog. 65 * Takes the same arguments as @ref QDialog.
65 */ 66 */
66 ODialog(QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags f = 0); 67 ODialog(QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags f = 0);
67 68
68 /** 69 /**
69 * Return the number of pixels you shall use between a 70 * Return the number of pixels you shall use between a
70 * dialog edge and the outermost widget(s) according to the KDE standard. 71 * dialog edge and the outermost widget(s) according to the KDE standard.
71 **/ 72 **/
72 static int marginHint(); 73 static int marginHint();
73 74
74 /** 75 /**
75 * Return the number of pixels you shall use between 76 * Return the number of pixels you shall use between
76 * widgets inside a dialog according to the KDE standard. 77 * widgets inside a dialog according to the KDE standard.
77 */ 78 */
78 static int spacingHint(); 79 static int spacingHint();
79 80
80 private: 81 private:
81 static int mMarginSize; 82 static int mMarginSize;
82 static int mSpacingSize; 83 static int mSpacingSize;
83 84
84 //class ODialogPrivate; 85 class ODialogPrivate;
85 //ODialogPrivate *d; 86 ODialogPrivate *d; // d pointer always needed! -zecke
86 87
87}; 88};
88#endif // ODIALOG_H 89#endif // ODIALOG_H
diff --git a/libopie2/opieui/oimageeffect.h b/libopie2/opieui/oimageeffect.h
index 313ea50..fb4d22d 100644
--- a/libopie2/opieui/oimageeffect.h
+++ b/libopie2/opieui/oimageeffect.h
@@ -1,130 +1,131 @@
1//FIXME: Revise for Opie - do we really need such fancy stuff on PDA's? 1//FIXME: Revise for Opie - do we really need such fancy stuff on PDA's?
2//FIXME: Maybe not on SL5xxx, but surely on C700 :)) 2//FIXME: Maybe not on SL5xxx, but surely on C700 :))
3//FIXME: I think we don#t need that -zecke
3 4
4/* This file is part of the KDE libraries 5/* This file is part of the KDE libraries
5 Copyright (C) 1998, 1999, 2001, 2002 Daniel M. Duley <mosfet@interaccess.com> 6 Copyright (C) 1998, 1999, 2001, 2002 Daniel M. Duley <mosfet@interaccess.com>
6 (C) 1998, 1999 Christian Tibirna <ctibirna@total.net> 7 (C) 1998, 1999 Christian Tibirna <ctibirna@total.net>
7 (C) 1998, 1999 Dirk A. Mueller <mueller@kde.org> 8 (C) 1998, 1999 Dirk A. Mueller <mueller@kde.org>
8 9
9Redistribution and use in source and binary forms, with or without 10Redistribution and use in source and binary forms, with or without
10modification, are permitted provided that the following conditions 11modification, are permitted provided that the following conditions
11are met: 12are met:
12 13
131. Redistributions of source code must retain the above copyright 141. Redistributions of source code must retain the above copyright
14 notice, this list of conditions and the following disclaimer. 15 notice, this list of conditions and the following disclaimer.
152. Redistributions in binary form must reproduce the above copyright 162. Redistributions in binary form must reproduce the above copyright
16 notice, this list of conditions and the following disclaimer in the 17 notice, this list of conditions and the following disclaimer in the
17 documentation and/or other materials provided with the distribution. 18 documentation and/or other materials provided with the distribution.
18 19
19THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 20THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 21IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 23IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 24INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 30
30*/ 31*/
31 32
32// $Id$ 33// $Id$
33 34
34#ifndef OIMAGEEFFECT_H 35#ifndef OIMAGEEFFECT_H
35#define OIMAGEEFFECT_H 36#define OIMAGEEFFECT_H
36 37
37class QImage; 38class QImage;
38class QSize; 39class QSize;
39class QColor; 40class QColor;
40 41
41/** 42/**
42 * This class includes various @ref QImage based graphical effects. 43 * This class includes various @ref QImage based graphical effects.
43 * 44 *
44 * Everything is 45 * Everything is
45 * static, so there is no need to create an instance of this class. You can 46 * static, so there is no need to create an instance of this class. You can
46 * just call the static methods. They are encapsulated here merely to provide 47 * just call the static methods. They are encapsulated here merely to provide
47 * a common namespace. 48 * a common namespace.
48 */ 49 */
49 50
50class OImageEffect 51class OImageEffect
51{ 52{
52public: 53public:
53 enum GradientType { VerticalGradient, HorizontalGradient, 54 enum GradientType { VerticalGradient, HorizontalGradient,
54 DiagonalGradient, CrossDiagonalGradient, 55 DiagonalGradient, CrossDiagonalGradient,
55 PyramidGradient, RectangleGradient, 56 PyramidGradient, RectangleGradient,
56 PipeCrossGradient, EllipticGradient }; 57 PipeCrossGradient, EllipticGradient };
57 enum RGBComponent { Red, Green, Blue, Gray, All }; 58 enum RGBComponent { Red, Green, Blue, Gray, All };
58 59
59 enum Lighting {NorthLite, NWLite, WestLite, SWLite, 60 enum Lighting {NorthLite, NWLite, WestLite, SWLite,
60 SouthLite, SELite, EastLite, NELite}; 61 SouthLite, SELite, EastLite, NELite};
61 62
62 enum ModulationType { Intensity, Saturation, HueShift, Contrast }; 63 enum ModulationType { Intensity, Saturation, HueShift, Contrast };
63 64
64 enum NoiseType { UniformNoise=0, GaussianNoise, MultiplicativeGaussianNoise, 65 enum NoiseType { UniformNoise=0, GaussianNoise, MultiplicativeGaussianNoise,
65 ImpulseNoise, LaplacianNoise, PoissonNoise}; 66 ImpulseNoise, LaplacianNoise, PoissonNoise};
66 67
67 enum RotateDirection{ Rotate90, Rotate180, Rotate270 }; 68 enum RotateDirection{ Rotate90, Rotate180, Rotate270 };
68 69
69 /** 70 /**
70 * Create a gradient from color a to color b of the specified type. 71 * Create a gradient from color a to color b of the specified type.
71 * 72 *
72 * @param size The desired size of the gradient. 73 * @param size The desired size of the gradient.
73 * @param ca Color a 74 * @param ca Color a
74 * @param cb Color b 75 * @param cb Color b
75 * @param type The type of gradient. 76 * @param type The type of gradient.
76 * @param ncols The number of colors to use when not running on a 77 * @param ncols The number of colors to use when not running on a
77 * truecolor display. The gradient will be dithered to this number of 78 * truecolor display. The gradient will be dithered to this number of
78 * colors. Pass 0 to prevent dithering. 79 * colors. Pass 0 to prevent dithering.
79 */ 80 */
80 static QImage gradient(const QSize &size, const QColor &ca, 81 static QImage gradient(const QSize &size, const QColor &ca,
81 const QColor &cb, GradientType type, int ncols=3); 82 const QColor &cb, GradientType type, int ncols=3);
82 83
83 /** 84 /**
84 * Create an unbalanced gradient. 85 * Create an unbalanced gradient.
85 86
86 * An unbalanced gradient is a gradient where the transition from 87 * An unbalanced gradient is a gradient where the transition from
87 * color a to color b is not linear, but in this case, exponential. 88 * color a to color b is not linear, but in this case, exponential.
88 * 89 *
89 * @param size The desired size of the gradient. 90 * @param size The desired size of the gradient.
90 * @param ca Color a 91 * @param ca Color a
91 * @param cb Color b 92 * @param cb Color b
92 * @param type The type of gradient. 93 * @param type The type of gradient.
93 * @param xfactor The x decay length. Use a value between -200 and 200. 94 * @param xfactor The x decay length. Use a value between -200 and 200.
94 * @param yfactor The y decay length. 95 * @param yfactor The y decay length.
95 * @param ncols The number of colors. See OPixmapEffect:gradient. 96 * @param ncols The number of colors. See OPixmapEffect:gradient.
96 */ 97 */
97 static QImage unbalancedGradient(const QSize &size, const QColor &ca, 98 static QImage unbalancedGradient(const QSize &size, const QColor &ca,
98 const QColor &cb, GradientType type, int xfactor = 100, 99 const QColor &cb, GradientType type, int xfactor = 100,
99 int yfactor = 100, int ncols = 3); 100 int yfactor = 100, int ncols = 3);
100 101
101 /** 102 /**
102 * Blends a color into the destination image, using an opacity 103 * Blends a color into the destination image, using an opacity
103 * value for blending one into another. Very fast direct pixel 104 * value for blending one into another. Very fast direct pixel
104 * manipulation is used. 105 * manipulation is used.
105 * 106 *
106 * @author Karol Szwed (gallium@kde.org) 107 * @author Karol Szwed (gallium@kde.org)
107 * @param clr source color to be blended into the destination image. 108 * @param clr source color to be blended into the destination image.
108 * @param dst destination image in which the source will be blended into. 109 * @param dst destination image in which the source will be blended into.
109 * @param opacity opacity (in percent) which determines how much the source 110 * @param opacity opacity (in percent) which determines how much the source
110 * color will be blended into the destination image. 111 * color will be blended into the destination image.
111 * @return The destination image (dst) containing the result. 112 * @return The destination image (dst) containing the result.
112 */ 113 */
113 static QImage& blend(const QColor& clr, QImage& dst, float opacity); 114 static QImage& blend(const QColor& clr, QImage& dst, float opacity);
114 115
115 /** 116 /**
116 * Blend the src image into the destination image, using an opacity 117 * Blend the src image into the destination image, using an opacity
117 * value for blending one into another. Very fast direct pixel 118 * value for blending one into another. Very fast direct pixel
118 * manipulation is used. 119 * manipulation is used.
119 * 120 *
120 * @author Karol Szwed (gallium@kde.org) 121 * @author Karol Szwed (gallium@kde.org)
121 * @param src source image to be blended into the destination image. 122 * @param src source image to be blended into the destination image.
122 * @param dst destination image in which the source will be blended into. 123 * @param dst destination image in which the source will be blended into.
123 * @param opacity opacity (in percent) which determines how much the source 124 * @param opacity opacity (in percent) which determines how much the source
124 * image will be blended into the destination image. 125 * image will be blended into the destination image.
125 * @return The destination image (dst) containing the result. 126 * @return The destination image (dst) containing the result.
126 */ 127 */
127 static QImage& blend(QImage& src, QImage& dst, float opacity); 128 static QImage& blend(QImage& src, QImage& dst, float opacity);
128 129
129 /** 130 /**
130 * Blend the provided image into a background of the indicated color. 131 * Blend the provided image into a background of the indicated color.
diff --git a/libopie2/opieui/olistview.h b/libopie2/opieui/olistview.h
index bafc67c..b62e278 100644
--- a/libopie2/opieui/olistview.h
+++ b/libopie2/opieui/olistview.h
@@ -1,235 +1,235 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3 3
4 =. (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 4 =. (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
5 .=l. 5 .=l.
6           .>+-= 6           .>+-=
7 _;:,     .>    :=|. This program is free software; you can 7 _;:,     .>    :=|. This program is free software; you can
8.> <`_,   >  .   <= redistribute it and/or modify it under 8.> <`_,   >  .   <= redistribute it and/or modify it under
9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 9:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
10.="- .-=="i,     .._ License as published by the Free Software 10.="- .-=="i,     .._ License as published by the Free Software
11 - .   .-<_>     .<> Foundation; either version 2 of the License, 11 - .   .-<_>     .<> Foundation; either version 2 of the License,
12     ._= =}       : or (at your option) any later version. 12     ._= =}       : or (at your option) any later version.
13    .%`+i>       _;_. 13    .%`+i>       _;_.
14    .i_,=:_.      -<s. This program is distributed in the hope that 14    .i_,=:_.      -<s. This program is distributed in the hope that
15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 15     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
16    : ..    .:,     . . . without even the implied warranty of 16    : ..    .:,     . . . without even the implied warranty of
17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 17    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 18  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
19..}^=.=       =       ; Library General Public License for more 19..}^=.=       =       ; Library General Public License for more
20++=   -.     .`     .: details. 20++=   -.     .`     .: details.
21 :     =  ...= . :.=- 21 :     =  ...= . :.=-
22 -.   .:....=;==+<; You should have received a copy of the GNU 22 -.   .:....=;==+<; You should have received a copy of the GNU
23  -_. . .   )=.  = Library General Public License along with 23  -_. . .   )=.  = Library General Public License along with
24    --        :-=` this library; see the file COPYING.LIB. 24    --        :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28 28
29*/ 29*/
30 30
31#ifndef OLISTVIEW_H 31#ifndef OLISTVIEW_H
32#define OLISTVIEW_H 32#define OLISTVIEW_H
33 33
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qlistview.h> 35#include <qlistview.h>
36#include <qpen.h> 36#include <qpen.h>
37#include <qdatastream.h> 37#include <qdatastream.h>
38 38
39class OListViewItem; 39class OListViewItem;
40 40
41/** 41/**
42 * A @ref QListView variant featuring visual and functional enhancements 42 * A @ref QListView variant featuring visual and functional enhancements
43 * like an alternate background for odd rows, an autostretch mode 43 * like an alternate background for odd rows, an autostretch mode
44 * for the width of the widget ( >= Qt 3 only ) and persistence capabilities. 44 * for the width of the widget ( >= Qt 3 only ) and persistence capabilities.
45 * 45 *
46 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 46 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
47 * @short OListView list/tree widget. 47 * @short OListView list/tree widget.
48 */ 48 */
49 class OListView: public QListView 49 class OListView: public QListView
50{ 50{
51 public: 51 public:
52 /** 52 /**
53 * Constructor. 53 * Constructor.
54 * 54 *
55 * The parameters @p parent and @p name are handled by 55 * The parameters @p parent and @p name are handled by
56 * @ref QListView, as usual. 56 * @ref QListView, as usual.
57 */ 57 */
58 OListView ( QWidget *parent = 0, const char *name = 0 ); 58 OListView ( QWidget *parent = 0, const char *name = 0 );
59 59
60 /** 60 /**
61 * Destructor. 61 * Destructor.
62 */ 62 */
63 virtual ~OListView(); 63 virtual ~OListView();
64 64
65 /** 65 /**
66 * Let the last column fit exactly all the available width. 66 * Let the last column fit exactly all the available width.
67 */ 67 */
68 void setFullWidth( bool fullWidth ); 68 void setFullWidth( bool fullWidth );
69 69
70 /** 70 /**
71 * Returns whether the last column is set to fit the available width. 71 * Returns whether the last column is set to fit the available width.
72 */ 72 */
73 bool fullWidth() const; 73 bool fullWidth() const;
74 74
75 /** 75 /**
76 * Reimplemented for full width support 76 * Reimplemented for full width support
77 */ 77 */
78 virtual int addColumn( const QString& label, int width = -1 ); 78 virtual int addColumn( const QString& label, int width = -1 );
79 79
80 /** 80 /**
81 * Reimplemented for full width support 81 * Reimplemented for full width support
82 */ 82 */
83 virtual int addColumn( const QIconSet& iconset, const QString& label, int width = -1 ); 83 virtual int addColumn( const QIconSet& iconset, const QString& label, int width = -1 );
84 84
85 /** 85 /**
86 * Reimplemented for full width support 86 * Reimplemented for full width support
87 */ 87 */
88 virtual void removeColumn(int index); 88 virtual void removeColumn(int index);
89 89
90 /** 90 /**
91 * sets the alternate background background color. 91 * sets the alternate background background color.
92 * This only has an effect if the items are OListViewItems 92 * This only has an effect if the items are OListViewItems
93 * 93 *
94 * @param c the color to use for every other item. Set to an invalid 94 * @param c the color to use for every other item. Set to an invalid
95 * color to disable alternate colors. 95 * color to disable alternate colors.
96 */ 96 */
97 void setAlternateBackground( const QColor &c ); 97 void setAlternateBackground( const QColor &c );
98 98
99 /** 99 /**
100 * sets the column separator pen. 100 * sets the column separator pen.
101 * 101 *
102 * @param p the pen used to draw the column separator. 102 * @param p the pen used to draw the column separator.
103 */ 103 */
104 void setColumnSeparator( const QPen &p ); 104 void setColumnSeparator( const QPen &p );
105 105
106 /** 106 /**
107 * @return the alternate background color 107 * @return the alternate background color
108 */ 108 */
109 const QColor& alternateBackground() const; 109 const QColor& alternateBackground() const;
110 110
111 /** 111 /**
112 * @return the column separator pen 112 * @return the column separator pen
113 */ 113 */
114 const QPen& columnSeparator() const; 114 const QPen& columnSeparator() const;
115 115
116 /** 116 /**
117 * create a list view item as child of this object 117 * create a list view item as child of this object
118 * @return the new object 118 * @return the new object
119 */ 119 */
120 virtual OListViewItem* childFactory(); 120 virtual OListViewItem* childFactory();
121 121
122 #ifndef QT_NO_DATASTREAM 122#ifndef QT_NO_DATASTREAM
123 /** 123 /**
124 * serialize this object to a @ref QDataStream 124 * serialize this object to a @ref QDataStream
125 * @param s the stream used to serialize this object. 125 * @param s the stream used to serialize this object.
126 */ 126 */
127 virtual void serializeTo( QDataStream& s ) const; 127 virtual void serializeTo( QDataStream& s ) const;
128 128
129 /** 129 /**
130 * serialize this object from a @ref QDataStream 130 * serialize this object from a @ref QDataStream
131 * @param s the stream used to serialize this object. 131 * @param s the stream used to serialize this object.
132 */ 132 */
133 virtual void serializeFrom( QDataStream& s ); 133 virtual void serializeFrom( QDataStream& s );
134 #endif 134#endif
135 135
136 private: 136 private:
137 QColor m_alternateBackground; 137 QColor m_alternateBackground;
138 bool m_fullWidth; 138 bool m_fullWidth;
139 QPen m_columnSeparator; 139 QPen m_columnSeparator;
140}; 140};
141 141
142#ifndef QT_NO_DATASTREAM 142#ifndef QT_NO_DATASTREAM
143/** 143/**
144 * \relates QListView 144 * \relates QListView
145 * Writes a listview to the stream and returns a reference to the stream. 145 * Writes a listview to the stream and returns a reference to the stream.
146 */ 146 */
147QDataStream& operator<<( QDataStream& s, const OListView& lv ); 147QDataStream& operator<<( QDataStream& s, const OListView& lv );
148/** 148/**
149 * \relates QListView 149 * \relates QListView
150 * Reads a listview from the stream and returns a reference to the stream. 150 * Reads a listview from the stream and returns a reference to the stream.
151 */ 151 */
152QDataStream& operator>>( QDataStream& s, OListView& lv ); 152QDataStream& operator>>( QDataStream& s, OListView& lv );
153#endif // QT_NO_DATASTREAM 153#endif // QT_NO_DATASTREAM
154 154
155//****************************** OListViewItem ****************************************************************** 155//****************************** OListViewItem ******************************************************************
156 156
157class OListViewItem: public QListViewItem 157class OListViewItem: public QListViewItem
158{ 158{
159 public: 159 public:
160 OListViewItem( QListView * parent ); 160 OListViewItem( QListView * parent );
161 OListViewItem( QListViewItem * parent ); 161 OListViewItem( QListViewItem * parent );
162 OListViewItem( QListView * parent, QListViewItem * after ); 162 OListViewItem( QListView * parent, QListViewItem * after );
163 OListViewItem( QListViewItem * parent, QListViewItem * after ); 163 OListViewItem( QListViewItem * parent, QListViewItem * after );
164 164
165 OListViewItem( QListView * parent, 165 OListViewItem( QListView * parent,
166 QString, QString = QString::null, 166 QString, QString = QString::null,
167 QString = QString::null, QString = QString::null, 167 QString = QString::null, QString = QString::null,
168 QString = QString::null, QString = QString::null, 168 QString = QString::null, QString = QString::null,
169 QString = QString::null, QString = QString::null ); 169 QString = QString::null, QString = QString::null );
170 170
171 OListViewItem( QListViewItem * parent, 171 OListViewItem( QListViewItem * parent,
172 QString, QString = QString::null, 172 QString, QString = QString::null,
173 QString = QString::null, QString = QString::null, 173 QString = QString::null, QString = QString::null,
174 QString = QString::null, QString = QString::null, 174 QString = QString::null, QString = QString::null,
175 QString = QString::null, QString = QString::null ); 175 QString = QString::null, QString = QString::null );
176 176
177 OListViewItem( QListView * parent, QListViewItem * after, 177 OListViewItem( QListView * parent, QListViewItem * after,
178 QString, QString = QString::null, 178 QString, QString = QString::null,
179 QString = QString::null, QString = QString::null, 179 QString = QString::null, QString = QString::null,
180 QString = QString::null, QString = QString::null, 180 QString = QString::null, QString = QString::null,
181 QString = QString::null, QString = QString::null ); 181 QString = QString::null, QString = QString::null );
182 182
183 OListViewItem( QListViewItem * parent, QListViewItem * after, 183 OListViewItem( QListViewItem * parent, QListViewItem * after,
184 QString, QString = QString::null, 184 QString, QString = QString::null,
185 QString = QString::null, QString = QString::null, 185 QString = QString::null, QString = QString::null,
186 QString = QString::null, QString = QString::null, 186 QString = QString::null, QString = QString::null,
187 QString = QString::null, QString = QString::null ); 187 QString = QString::null, QString = QString::null );
188 188
189 virtual ~OListViewItem(); 189 virtual ~OListViewItem();
190 190
191 const QColor& backgroundColor(); 191 const QColor& backgroundColor();
192 bool isAlternate(); 192 bool isAlternate();
193 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment ); 193 void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int alignment );
194 void init(); 194 void init();
195 195
196 /** 196 /**
197 * create a list view item as child of this object 197 * create a list view item as child of this object
198 * @return the new object 198 * @return the new object
199 */ 199 */
200 virtual OListViewItem* childFactory(); 200 virtual OListViewItem* childFactory();
201 201
202 #ifndef QT_NO_DATASTREAM 202 #ifndef QT_NO_DATASTREAM
203 /** 203 /**
204 * serialize this object to or from a @ref QDataStream 204 * serialize this object to or from a @ref QDataStream
205 * @param s the stream used to serialize this object. 205 * @param s the stream used to serialize this object.
206 */ 206 */
207 virtual void serializeTo( QDataStream& s ) const; 207 virtual void serializeTo( QDataStream& s ) const;
208 208
209 /** 209 /**
210 * serialize this object to or from a @ref QDataStream 210 * serialize this object to or from a @ref QDataStream
211 * @param s the stream used to serialize this object. 211 * @param s the stream used to serialize this object.
212 */ 212 */
213 virtual void serializeFrom( QDataStream& s ); 213 virtual void serializeFrom( QDataStream& s );
214 #endif 214 #endif
215 215
216 private: 216 private:
217 bool m_known; 217 bool m_known;
218 bool m_odd; 218 bool m_odd;
219}; 219};
220 220
221#ifndef QT_NO_DATASTREAM 221#ifndef QT_NO_DATASTREAM
222/** 222/**
223 * \relates QListViewItem 223 * \relates QListViewItem
224 * Writes a listview item and all subitems recursively to the stream 224 * Writes a listview item and all subitems recursively to the stream
225 * and returns a reference to the stream. 225 * and returns a reference to the stream.
226 */ 226 */
227QDataStream& operator<<( QDataStream &s, const OListViewItem& lvi ); 227QDataStream& operator<<( QDataStream &s, const OListViewItem& lvi );
228/** 228/**
229 * \relates QListViewItem 229 * \relates QListViewItem
230 * Reads a listview item from the stream and returns a reference to the stream. 230 * Reads a listview item from the stream and returns a reference to the stream.
231 */ 231 */
232QDataStream& operator>>( QDataStream &s, OListViewItem& lvi ); 232QDataStream& operator>>( QDataStream &s, OListViewItem& lvi );
233#endif // QT_NO_DATASTREAM 233#endif // QT_NO_DATASTREAM
234 234
235#endif // OLISTVIEW_H 235#endif // OLISTVIEW_H
diff --git a/libopie2/opieui/opopupmenu.h b/libopie2/opieui/opopupmenu.h
index 94f05f4..54e4301 100644
--- a/libopie2/opieui/opopupmenu.h
+++ b/libopie2/opieui/opopupmenu.h
@@ -1,128 +1,131 @@
1//FIXME what is ODE? ODE Desktop Environemt? -zecke
2//FIXME do we need titles? space is limited that is only eyecandy? -zecke
3//FIXME keyboard navigation is also not that popular on a PDA might be with a keyboard (tuxphone) -zecke
1/* This file is part of the ODE libraries 4/* This file is part of the ODE libraries
2 Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org> 5 Copyright (C) 2000 Daniel M. Duley <mosfet@kde.org>
3 6
4 This library is free software; you can redistribute it and/or 7 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 8 modify it under the terms of the GNU Library General Public
6 License version 2 as published by the Free Software Foundation. 9 License version 2 as published by the Free Software Foundation.
7 10
8 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details. 14 Library General Public License for more details.
12 15
13 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
17*/ 20*/
18#ifndef _OPOPUP_H 21#ifndef _OPOPUP_H
19#define _OPOPUP_H 22#define _OPOPUP_H
20 23
21#define INCLUDE_MENUITEM_DEF 24#define INCLUDE_MENUITEM_DEF
22 25
23/* QT */ 26/* QT */
24 27
25#include <qpopupmenu.h> 28#include <qpopupmenu.h>
26 29
27/* OPIE */ 30/* OPIE */
28 31
29#include <opie2/opixmapeffect.h> 32#include <opie2/opixmapeffect.h>
30 33
31/** 34/**
32 * Title widget for use in @ref OPopupMenu. 35 * Title widget for use in @ref OPopupMenu.
33 * 36 *
34 * You usually don't have to create this manually since 37 * You usually don't have to create this manually since
35 * @ref OPopupMenu::insertTitle will do it for you, but it is allowed if 38 * @ref OPopupMenu::insertTitle will do it for you, but it is allowed if
36 * you wish to customize it's look. 39 * you wish to customize it's look.
37 * 40 *
38 * @author Daniel M. Duley <mosfet@kde.org> 41 * @author Daniel M. Duley <mosfet@kde.org>
39 * @short OPopupMenu title widget. 42 * @short OPopupMenu title widget.
40 */ 43 */
41class OPopupTitle : public QWidget 44class OPopupTitle : public QWidget
42{ 45{
43 Q_OBJECT 46 Q_OBJECT
44 47
45public: 48public:
46 /** 49 /**
47 * Constructs a title widget with the user specified gradient, pixmap, 50 * Constructs a title widget with the user specified gradient, pixmap,
48 * and colors. 51 * and colors.
49 */ 52 */
50 OPopupTitle(QWidget *parent=0, const char *name=0); 53 OPopupTitle(QWidget *parent=0, const char *name=0);
51 /** 54 /**
52 * @deprecated 55 * @deprecated
53 * Constructs a title widget with the specified gradient and colors. 56 * Constructs a title widget with the specified gradient and colors.
54 */ 57 */
55 OPopupTitle(OPixmapEffect::GradientType gradient, const QColor &color, 58 OPopupTitle(OPixmapEffect::GradientType gradient, const QColor &color,
56 const QColor &textColor, QWidget *parent=0, 59 const QColor &textColor, QWidget *parent=0,
57 const char *name=0); 60 const char *name=0);
58 /** 61 /**
59 * @deprecated 62 * @deprecated
60 * Constructs a title widget with the specified pixmap and colors. 63 * Constructs a title widget with the specified pixmap and colors.
61 */ 64 */
62 OPopupTitle(const OPixmap &background, const QColor &color, 65 OPopupTitle(const OPixmap &background, const QColor &color,
63 const QColor &textColor, QWidget *parent=0, 66 const QColor &textColor, QWidget *parent=0,
64 const char *name=0); 67 const char *name=0);
65 /** 68 /**
66 * Sets the title string and optional icon for the title widget. 69 * Sets the title string and optional icon for the title widget.
67 * 70 *
68 * You will want to call this before inserting into a menu. 71 * You will want to call this before inserting into a menu.
69 */ 72 */
70 void setTitle(const QString &text, const QPixmap *icon=NULL); 73 void setTitle(const QString &text, const QPixmap *icon=NULL);
71 /** 74 /**
72 * Returns the current title. 75 * Returns the current title.
73 */ 76 */
74 QString title() const { return(titleStr); } 77 QString title() const { return(titleStr); }
75 /** 78 /**
76 * Returns the current icon. 79 * Returns the current icon.
77 */ 80 */
78 QPixmap icon() const { return(miniicon); } 81 QPixmap icon() const { return(miniicon); }
79 82
80 QSize sizeHint() const; 83 QSize sizeHint() const;
81 84
82public slots: 85public slots:
83 /// @since 3.1 86 /// @since 3.1
84 void setText( const QString &text ); 87 void setText( const QString &text );
85 /// @since 3.1 88 /// @since 3.1
86 void setIcon( const QPixmap &pix ); 89 void setIcon( const QPixmap &pix );
87 90
88protected: 91protected:
89 void paintEvent(QPaintEvent *ev); 92 void paintEvent(QPaintEvent *ev);
90 93
91 QString titleStr; 94 QString titleStr;
92 QPixmap miniicon; 95 QPixmap miniicon;
93 96
94 // Remove in KDE4 97 // Remove in KDE4
95 OPixmapEffect::GradientType grType; 98 OPixmapEffect::GradientType grType;
96 QPixmap fill; 99 QPixmap fill;
97 QColor fgColor, bgColor, grHigh, grLow; 100 QColor fgColor, bgColor, grHigh, grLow;
98 bool useGradient; 101 bool useGradient;
99 102
100protected: 103protected:
101 virtual void virtual_hook( int id, void* data ); 104 virtual void virtual_hook( int id, void* data );
102private: 105private:
103 class OPopupTitlePrivate; 106 class OPopupTitlePrivate;
104 OPopupTitlePrivate *d; 107 OPopupTitlePrivate *d;
105}; 108};
106 109
107/** 110/**
108 * OPopupMenu is a class for menus with standard title items and keyboard 111 * OPopupMenu is a class for menus with standard title items and keyboard
109 * accessibility for popups with many options and/or varying options. It acts 112 * accessibility for popups with many options and/or varying options. It acts
110 * identically to QPopupMenu, with the addition of insertTitle(), 113 * identically to QPopupMenu, with the addition of insertTitle(),
111 * changeTitle(), setKeyboardShortcutsEnabled() and 114 * changeTitle(), setKeyboardShortcutsEnabled() and
112 * setKeyboardShortcutsExecute() methods. 115 * setKeyboardShortcutsExecute() methods.
113 * 116 *
114 * The titles support a text string, an icon, plus user defined gradients, 117 * The titles support a text string, an icon, plus user defined gradients,
115 * colors, and background pixmaps. 118 * colors, and background pixmaps.
116 * 119 *
117 * The keyboard search algorithm is incremental with additional underlining 120 * The keyboard search algorithm is incremental with additional underlining
118 * for user feedback. 121 * for user feedback.
119 * 122 *
120 * @short A menu with title items. 123 * @short A menu with title items.
121 * @author Daniel M. Duley <mosfet@kde.org> 124 * @author Daniel M. Duley <mosfet@kde.org>
122 * @author Hamish Rodda <meddie@yoyo.its.monash.edu.au> 125 * @author Hamish Rodda <meddie@yoyo.its.monash.edu.au>
123 */ 126 */
124class OPopupMenu : public QPopupMenu { 127class OPopupMenu : public QPopupMenu {
125 Q_OBJECT 128 Q_OBJECT
126public: 129public:
127 /** 130 /**
128 * Constructs a OPopupMenu. 131 * Constructs a OPopupMenu.
diff --git a/libopie2/qt3/opiecore/opair.h b/libopie2/qt3/opiecore/opair.h
index 26f617d..a151127 100644
--- a/libopie2/qt3/opiecore/opair.h
+++ b/libopie2/qt3/opiecore/opair.h
@@ -1,99 +1,100 @@
1// QPair minus QT_INLINE_TEMPLATE (instead directly using 'inline' directive) 1// QPair minus QT_INLINE_TEMPLATE (instead directly using 'inline' directive)
2//FIXME: remove and use qpair.h as soon as we're on Qt3 2//FIXME: remove and use qpair.h as soon as we're on Qt3
3// name file qpair -zecke
3 4
4/**************************************************************************** 5/****************************************************************************
5** 6**
6** Definition of QPair class 7** Definition of QPair class
7** 8**
8** 9**
9** Copyright (C) 1992-2001 Trolltech AS. All rights reserved. 10** Copyright (C) 1992-2001 Trolltech AS. All rights reserved.
10** 11**
11** This file is part of the tools module of the Qt GUI Toolkit. 12** This file is part of the tools module of the Qt GUI Toolkit.
12** 13**
13** This file may be distributed under the terms of the Q Public License 14** This file may be distributed under the terms of the Q Public License
14** as defined by Trolltech AS of Norway and appearing in the file 15** as defined by Trolltech AS of Norway and appearing in the file
15** LICENSE.QPL included in the packaging of this file. 16** LICENSE.QPL included in the packaging of this file.
16** 17**
17** This file may be distributed and/or modified under the terms of the 18** This file may be distributed and/or modified under the terms of the
18** GNU General Public License version 2 as published by the Free Software 19** GNU General Public License version 2 as published by the Free Software
19** Foundation and appearing in the file LICENSE.GPL included in the 20** Foundation and appearing in the file LICENSE.GPL included in the
20** packaging of this file. 21** packaging of this file.
21** 22**
22** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition 23** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
23** licenses may use this file in accordance with the Qt Commercial License 24** licenses may use this file in accordance with the Qt Commercial License
24** Agreement provided with the Software. 25** Agreement provided with the Software.
25** 26**
26** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 27** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
27** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 28** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
28** 29**
29** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 30** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
30** information about Qt Commercial License Agreements. 31** information about Qt Commercial License Agreements.
31** See http://www.trolltech.com/qpl/ for QPL licensing information. 32** See http://www.trolltech.com/qpl/ for QPL licensing information.
32** See http://www.trolltech.com/gpl/ for GPL licensing information. 33** See http://www.trolltech.com/gpl/ for GPL licensing information.
33** 34**
34** Contact info@trolltech.com if any conditions of this licensing are 35** Contact info@trolltech.com if any conditions of this licensing are
35** not clear to you. 36** not clear to you.
36** 37**
37**********************************************************************/ 38**********************************************************************/
38 39
39#ifndef QPAIR_H 40#ifndef QPAIR_H
40#define QPAIR_H 41#define QPAIR_H
41 42
42#ifndef QT_H 43#ifndef QT_H
43#include "qglobal.h" 44#include "qglobal.h"
44#include "qdatastream.h" 45#include "qdatastream.h"
45#endif // QT_H 46#endif // QT_H
46 47
47template <class T1, class T2> 48template <class T1, class T2>
48struct QPair 49struct QPair
49{ 50{
50 typedef T1 first_type; 51 typedef T1 first_type;
51 typedef T2 second_type; 52 typedef T2 second_type;
52 53
53 QPair() 54 QPair()
54 : first( T1() ), second( T2() ) 55 : first( T1() ), second( T2() )
55 {} 56 {}
56 QPair( const T1& t1, const T2& t2 ) 57 QPair( const T1& t1, const T2& t2 )
57 : first( t1 ), second( t2 ) 58 : first( t1 ), second( t2 )
58 {} 59 {}
59 60
60 T1 first; 61 T1 first;
61 T2 second; 62 T2 second;
62}; 63};
63 64
64template <class T1, class T2> 65template <class T1, class T2>
65inline bool operator==( const QPair<T1, T2>& x, const QPair<T1, T2>& y ) 66inline bool operator==( const QPair<T1, T2>& x, const QPair<T1, T2>& y )
66{ 67{
67 return x.first == y.first && x.second == y.second; 68 return x.first == y.first && x.second == y.second;
68} 69}
69 70
70template <class T1, class T2> 71template <class T1, class T2>
71inline bool operator<( const QPair<T1, T2>& x, const QPair<T1, T2>& y ) 72inline bool operator<( const QPair<T1, T2>& x, const QPair<T1, T2>& y )
72{ 73{
73 return x.first < y.first || 74 return x.first < y.first ||
74 ( !( y.first < x.first ) && x.second < y.second ); 75 ( !( y.first < x.first ) && x.second < y.second );
75} 76}
76 77
77template <class T1, class T2> 78template <class T1, class T2>
78inline QPair<T1, T2> qMakePair( const T1& x, const T2& y ) 79inline QPair<T1, T2> qMakePair( const T1& x, const T2& y )
79{ 80{
80 return QPair<T1, T2>( x, y ); 81 return QPair<T1, T2>( x, y );
81} 82}
82 83
83#ifndef QT_NO_DATASTREAM 84#ifndef QT_NO_DATASTREAM
84template <class T1, class T2> 85template <class T1, class T2>
85inline QDataStream& operator>>( QDataStream& s, QPair<T1, T2>& p ) 86inline QDataStream& operator>>( QDataStream& s, QPair<T1, T2>& p )
86{ 87{
87 s >> p.first >> p.second; 88 s >> p.first >> p.second;
88 return s; 89 return s;
89} 90}
90 91
91template <class T1, class T2> 92template <class T1, class T2>
92inline QDataStream& operator<<( QDataStream& s, const QPair<T1, T2>& p ) 93inline QDataStream& operator<<( QDataStream& s, const QPair<T1, T2>& p )
93{ 94{
94 s << p.first << p.second; 95 s << p.first << p.second;
95 return s; 96 return s;
96} 97}
97#endif 98#endif
98 99
99#endif 100#endif