summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile14
-rw-r--r--core/launcher/taskbar.cpp4
-rw-r--r--core/opie-login/README2
-rw-r--r--core/opie-login/qdmdialogimpl.cpp2
4 files changed, 11 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 24a9050..01aba30 100644
--- a/Makefile
+++ b/Makefile
@@ -1,71 +1,71 @@
1default: dynamic 1default: dynamic
2 2
3all: default docs 3all: default docs
4 4
5LIBS=library libopie 5LIBS=library libopie
6 6
7COMPONENTS=$(LOCALCOMPONENTS) inputmethods/keyboard \ 7COMPONENTS=$(LOCALCOMPONENTS) inputmethods/keyboard \
8 inputmethods/pickboard \ 8 inputmethods/pickboard \
9 inputmethods/handwriting \ 9 inputmethods/handwriting \
10 inputmethods/unikeyboard \ 10 inputmethods/unikeyboard \
11 inputmethods/jumpx \ 11 inputmethods/jumpx \
12 inputmethods/dvorak \ 12 inputmethods/dvorak \
13 taskbar/batteryapplet \ 13 launcher/batteryapplet \
14 taskbar/volumeapplet \ 14 launcher/volumeapplet \
15 taskbar/clockapplet \ 15 launcher/clockapplet \
16 taskbar/netmonapplet \ 16 launcher/netmonapplet \
17 taskbar/screenshotapplet \ 17 launcher/screenshotapplet \
18 taskbar/vmemo \ 18 launcher/vmemo \
19 netsetup/dialup \ 19 netsetup/dialup \
20 netsetup/lan \ 20 netsetup/lan \
21 opiemail/ifaces/pop3 opiemail/ifaces/smtp \ 21 opiemail/ifaces/pop3 opiemail/ifaces/smtp \
22 mpegplayer/libmpeg3 \ 22 mpegplayer/libmpeg3 \
23 mpegplayer/libmad \ 23 mpegplayer/libmad \
24 mpegplayer/wavplugin \ 24 mpegplayer/wavplugin \
25 cardmon \ 25 cardmon \
26 sdmon 26 sdmon
27 27
28APPS=$(LOCALAPPS) core/addressbook calculator clock datebook \ 28APPS=$(LOCALAPPS) core/addressbook calculator clock datebook \
29 filebrowser helpbrowser minesweep mpegplayer \ 29 filebrowser helpbrowser minesweep mpegplayer \
30 settings/light-and-power \ 30 settings/light-and-power \
31 settings/language \ 31 settings/language \
32 settings/rotation \ 32 settings/rotation \
33 settings/appearance \ 33 settings/appearance \
34 settings/security \ 34 settings/security \
35 settings/sound \ 35 settings/sound \
36 settings/systemtime \ 36 settings/systemtime \
37 solitaire spreadsheet tetrix textedit \ 37 solitaire spreadsheet tetrix textedit \
38 todo wordgame embeddedkonsole taskbar sysinfo \ 38 todo wordgame embeddedkonsole launcher sysinfo \
39 parashoot snake citytime showimg netsetup tableviewer \ 39 parashoot snake citytime showimg netsetup tableviewer \
40 qipkg mindbreaker go qasteroids qcop fifteen keypebble today opiemail/converter opiemail \ 40 qipkg mindbreaker go qasteroids qcop fifteen keypebble today opiemail/converter opiemail \
41 noncore/tictac noncore/opieftp noncore/drawpad noncore/kcheckers 41 noncore/tictac noncore/opieftp noncore/drawpad noncore/kcheckers
42 42
43DOCS = docs/src/opie-policy 43DOCS = docs/src/opie-policy
44single: mpegplayer/libmpeg3 44single: mpegplayer/libmpeg3
45 45
46dynamic: $(APPS) 46dynamic: $(APPS)
47 47
48docs: $(DOCS) 48docs: $(DOCS)
49 49
50$(COMPONENTS): $(LIBS) 50$(COMPONENTS): $(LIBS)
51 51
52$(APPS): $(LIBS) $(COMPONENTS) 52$(APPS): $(LIBS) $(COMPONENTS)
53 53
54$(LIBS) $(COMPONENTS) $(APPS) $(DOCS) single: 54$(LIBS) $(COMPONENTS) $(APPS) $(DOCS) single:
55 $(MAKE) -C $@ -f Makefile 55 $(MAKE) -C $@ -f Makefile
56 56
57showcomponents: 57showcomponents:
58 @echo $(LIBS) $(APPS) $(COMPONENTS) single 58 @echo $(LIBS) $(APPS) $(COMPONENTS) single
59 59
60clean: 60clean:
61 $(MAKE) -C single -f Makefile $@ 61 $(MAKE) -C single -f Makefile $@
62 for dir in $(APPS) $(LIBS) $(COMPONENTS) $(DOCS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done 62 for dir in $(APPS) $(LIBS) $(COMPONENTS) $(DOCS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done
63 63
64lupdate: 64lupdate:
65 for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done 65 for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done
66 66
67lrelease: 67lrelease:
68 for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done 68 for dir in $(APPS) $(LIBS) $(COMPONENTS); do $(MAKE) -C $$dir -f Makefile $@ || exit 1; done
69 69
70 70
71.PHONY: default dynamic $(LIBS) $(APPS) $(COMPONENTS) $(DOCS) single showcomponents clean 71.PHONY: default dynamic $(LIBS) $(APPS) $(COMPONENTS) $(DOCS) single showcomponents clean
diff --git a/core/launcher/taskbar.cpp b/core/launcher/taskbar.cpp
index d7f36bd..18d28cb 100644
--- a/core/launcher/taskbar.cpp
+++ b/core/launcher/taskbar.cpp
@@ -1,172 +1,172 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia 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** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "startmenu.h" 21#include "startmenu.h"
22#include "inputmethods.h" 22#include "inputmethods.h"
23#include "mrulist.h" 23#include "mrulist.h"
24#include "systray.h" 24#include "systray.h"
25#include "calibrate.h" 25#include "calibrate.h"
26#include "wait.h" 26#include "wait.h"
27#include "appicons.h" 27#include "appicons.h"
28 28
29#include "taskbar.h" 29#include "taskbar.h"
30#include "desktop.h" 30#include "desktop.h"
31 31
32#include <qpe/qpeapplication.h> 32#include <qpe/qpeapplication.h>
33#include <qpe/qcopenvelope_qws.h> 33#include <qpe/qcopenvelope_qws.h>
34#include <qpe/global.h> 34#include <qpe/global.h>
35#ifdef QT_QWS_CUSTOM 35#ifdef QT_QWS_CUSTOM
36#include <qpe/custom.h> 36#include <qpe/custom.h>
37#endif 37#endif
38 38
39#include <qlabel.h> 39#include <qlabel.h>
40#include <qlayout.h> 40#include <qlayout.h>
41#include <qtimer.h> 41#include <qtimer.h>
42#include <qwindowsystem_qws.h> 42#include <qwindowsystem_qws.h>
43#include <qwidgetstack.h> 43#include <qwidgetstack.h>
44 44
45#if defined( Q_WS_QWS ) 45#if defined( Q_WS_QWS )
46#include <qwsdisplay_qws.h> 46#include <qwsdisplay_qws.h>
47#include <qgfx_qws.h> 47#include <qgfx_qws.h>
48#endif 48#endif
49 49
50 50
51#define FACTORY(T) \ 51#define FACTORY(T) \
52 static QWidget *new##T( bool maximized ) { \ 52 static QWidget *new##T( bool maximized ) { \
53 QWidget *w = new T( 0, "test", QWidget::WDestructiveClose | QWidget::WGroupLeader ); \ 53 QWidget *w = new T( 0, "test", QWidget::WDestructiveClose | QWidget::WGroupLeader ); \
54 if ( maximized ) { \ 54 if ( maximized ) { \
55 if ( qApp->desktop()->width() <= 350 ) { \ 55 if ( qApp->desktop()->width() <= 350 ) { \
56 w->showMaximized(); \ 56 w->showMaximized(); \
57 } else { \ 57 } else { \
58 w->resize( QSize( 300, 300 ) ); \ 58 w->resize( QSize( 300, 300 ) ); \
59 } \ 59 } \
60 } \ 60 } \
61 w->show(); \ 61 w->show(); \
62 return w; \ 62 return w; \
63 } 63 }
64 64
65 65
66#ifdef SINGLE_APP 66#ifdef SINGLE_APP
67#define APP(a,b,c,d) FACTORY(b) 67#define APP(a,b,c,d) FACTORY(b)
68#include "../taskbar/apps.h" 68#include "../launcher/apps.h"
69#undef APP 69#undef APP
70#endif // SINGLE_APP 70#endif // SINGLE_APP
71 71
72static Global::Command builtins[] = { 72static Global::Command builtins[] = {
73 73
74#ifdef SINGLE_APP 74#ifdef SINGLE_APP
75#define APP(a,b,c,d) { a, new##b, c }, 75#define APP(a,b,c,d) { a, new##b, c },
76#include "../taskbar/apps.h" 76#include "../launcher/apps.h"
77#undef APP 77#undef APP
78#endif 78#endif
79 79
80#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_EBX) 80#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_EBX)
81 { "calibrate", TaskBar::calibrate,1, 0 }, 81 { "calibrate", TaskBar::calibrate,1, 0 },
82#endif 82#endif
83#if !defined(QT_QWS_CASSIOPEIA) 83#if !defined(QT_QWS_CASSIOPEIA)
84 { "shutdown", Global::shutdown, 1, 0 }, 84 { "shutdown", Global::shutdown, 1, 0 },
85 // { "run", run, 1, 0 }, 85 // { "run", run, 1, 0 },
86#endif 86#endif
87 87
88 { 0, TaskBar::calibrate,0, 0 }, 88 { 0, TaskBar::calibrate,0, 0 },
89}; 89};
90 90
91static bool initNumLock() 91static bool initNumLock()
92{ 92{
93#ifdef QPE_INITIAL_NUMLOCK_STATE 93#ifdef QPE_INITIAL_NUMLOCK_STATE
94 QPE_INITIAL_NUMLOCK_STATE 94 QPE_INITIAL_NUMLOCK_STATE
95#endif 95#endif
96 return FALSE; 96 return FALSE;
97} 97}
98 98
99class LockKeyState : public QWidget 99class LockKeyState : public QWidget
100{ 100{
101public: 101public:
102 LockKeyState( QWidget *parent ) : 102 LockKeyState( QWidget *parent ) :
103 QWidget(parent), 103 QWidget(parent),
104 nl(initNumLock()), cl(FALSE) 104 nl(initNumLock()), cl(FALSE)
105 { 105 {
106 nl_pm = Resource::loadPixmap("numlock"); 106 nl_pm = Resource::loadPixmap("numlock");
107 cl_pm = Resource::loadPixmap("capslock"); 107 cl_pm = Resource::loadPixmap("capslock");
108 } 108 }
109 QSize sizeHint() const 109 QSize sizeHint() const
110 { 110 {
111 return QSize(nl_pm.width()+2,nl_pm.width()+nl_pm.height()+1); 111 return QSize(nl_pm.width()+2,nl_pm.width()+nl_pm.height()+1);
112 } 112 }
113 void toggleNumLockState() 113 void toggleNumLockState()
114 { 114 {
115 nl = !nl; repaint(); 115 nl = !nl; repaint();
116 } 116 }
117 void toggleCapsLockState() 117 void toggleCapsLockState()
118 { 118 {
119 cl = !cl; repaint(); 119 cl = !cl; repaint();
120 } 120 }
121 void paintEvent( QPaintEvent * ) 121 void paintEvent( QPaintEvent * )
122 { 122 {
123 int y = (height()-sizeHint().height())/2; 123 int y = (height()-sizeHint().height())/2;
124 QPainter p(this); 124 QPainter p(this);
125 if ( nl ) 125 if ( nl )
126 p.drawPixmap(1,y,nl_pm); 126 p.drawPixmap(1,y,nl_pm);
127 if ( cl ) 127 if ( cl )
128 p.drawPixmap(1,y+nl_pm.height()+1,cl_pm); 128 p.drawPixmap(1,y+nl_pm.height()+1,cl_pm);
129 } 129 }
130private: 130private:
131 QPixmap nl_pm, cl_pm; 131 QPixmap nl_pm, cl_pm;
132 bool nl, cl; 132 bool nl, cl;
133}; 133};
134 134
135TaskBar::~TaskBar() 135TaskBar::~TaskBar()
136{ 136{
137} 137}
138 138
139 139
140TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader) 140TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOnTop | WGroupLeader)
141{ 141{
142 Global::setBuiltinCommands(builtins); 142 Global::setBuiltinCommands(builtins);
143 143
144 sm = new StartMenu( this ); 144 sm = new StartMenu( this );
145 145
146 inputMethods = new InputMethods( this ); 146 inputMethods = new InputMethods( this );
147 connect( inputMethods, SIGNAL(inputToggled(bool)), 147 connect( inputMethods, SIGNAL(inputToggled(bool)),
148 this, SLOT(calcMaxWindowRect()) ); 148 this, SLOT(calcMaxWindowRect()) );
149 //new QuickLauncher( this ); 149 //new QuickLauncher( this );
150 150
151 stack = new QWidgetStack( this ); 151 stack = new QWidgetStack( this );
152 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) ); 152 stack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ) );
153 label = new QLabel(stack); 153 label = new QLabel(stack);
154 154
155 mru = new MRUList( stack ); 155 mru = new MRUList( stack );
156 stack->raiseWidget( mru ); 156 stack->raiseWidget( mru );
157 157
158 waitIcon = new Wait( this ); 158 waitIcon = new Wait( this );
159 (void) new AppIcons( this ); 159 (void) new AppIcons( this );
160 160
161 sysTray = new SysTray( this ); 161 sysTray = new SysTray( this );
162 162
163 // ## make customizable in some way? 163 // ## make customizable in some way?
164#ifdef QT_QWS_CUSTOM 164#ifdef QT_QWS_CUSTOM
165 lockState = new LockKeyState( this ); 165 lockState = new LockKeyState( this );
166#else 166#else
167 lockState = 0; 167 lockState = 0;
168#endif 168#endif
169 169
170#if defined(Q_WS_QWS) 170#if defined(Q_WS_QWS)
171#if !defined(QT_NO_COP) 171#if !defined(QT_NO_COP)
172 QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this ); 172 QCopChannel *channel = new QCopChannel( "QPE/TaskBar", this );
diff --git a/core/opie-login/README b/core/opie-login/README
index ad3b298..4a4234d 100644
--- a/core/opie-login/README
+++ b/core/opie-login/README
@@ -1,78 +1,78 @@
1 1
2Welcome to LISA System's 2Welcome to LISA System's
3 3
4 QDM - the Login-Dialog for QPE 4 QDM - the Login-Dialog for QPE
5 5
6 6
7WHAT'S THIS: 7WHAT'S THIS:
8 8
9This small add-on for the Qtopia Environment (QPE - see 9This small add-on for the Qtopia Environment (QPE - see
10http://qpe.sourceforge.net for further details) allows You to use your 10http://qpe.sourceforge.net for further details) allows You to use your
11handheld computer running QPE and Linux with the typical Un*x user 11handheld computer running QPE and Linux with the typical Un*x user
12handling, i.e. just log in on a graphical environment, as e.g. KDM or 12handling, i.e. just log in on a graphical environment, as e.g. KDM or
13XDM. This way your personal data can be easily protected against 13XDM. This way your personal data can be easily protected against
14unwanted access from others in case you loose your machine. 14unwanted access from others in case you loose your machine.
15 15
16 16
17STATUS: 17STATUS:
18 18
19Still in development, but should be useable. 19Still in development, but should be useable.
20 20
21 21
22REQUIREMENTS: 22REQUIREMENTS:
23 23
24- QDM needs Linux-PAM (Pluggable Authentication Modules for Linux) for 24- QDM needs Linux-PAM (Pluggable Authentication Modules for Linux) for
25 proper user validation. 25 proper user validation.
26 26
27- the /dev/fb0 device has to writeable to everyone ;-( 27- the /dev/fb0 device has to writeable to everyone ;-(
28 28
29 29
30INSTALLATION: 30INSTALLATION:
31 31
32Per default this little add-on is not enabled. You have to do so 32Per default this little add-on is not enabled. You have to do so
33yourself for now, by setting a compile option variable called 33yourself for now, by setting a compile option variable called
34QT_QWS_LOGIN . Furthermore there have to be made some changes in 34QT_QWS_LOGIN . Furthermore there have to be made some changes in
35taskbar/taskbar.pro : 35launcher/taskbar.pro :
36 36
37At the section HEADERS insert a line: 37At the section HEADERS insert a line:
38 ../login/qdmdialogimpl.h \ 38 ../login/qdmdialogimpl.h \
39 39
40At the section SOURCES insert a line: 40At the section SOURCES insert a line:
41 ../login/qdmdialogimpl.cpp \ 41 ../login/qdmdialogimpl.cpp \
42 42
43 furthermore serte these lines: 43 furthermore serte these lines:
44 44
45 INCLUDEPATH+= ../login 45 INCLUDEPATH+= ../login
46 DEPENDPATH+= ../login 46 DEPENDPATH+= ../login
47 47
48 INTERFACES= ../login/qdmdialog.ui 48 INTERFACES= ../login/qdmdialog.ui
49 49
50For unix-login make folloing changes to a line: 50For unix-login make folloing changes to a line:
51 LIBS = -lqpe -lcrypt 51 LIBS = -lqpe -lcrypt
52 52
53For PAM use the following: 53For PAM use the following:
54 LIBS = -lqpe -ldl -lpam 54 LIBS = -lqpe -ldl -lpam
55 55
56 56
57 57
58CONFIGURATION: 58CONFIGURATION:
59 59
60Configuration of the 'Look' of QDM is done via Qt Designer. Just open 60Configuration of the 'Look' of QDM is done via Qt Designer. Just open
61the .ui file and edit the look of the dialog as you like. You can, for 61the .ui file and edit the look of the dialog as you like. You can, for
62instance, change the logo pixmap. QDM should also be ready for i18n so 62instance, change the logo pixmap. QDM should also be ready for i18n so
63far. 63far.
64 64
65Other configuration stuff, eg welcome string in the upper right, and 65Other configuration stuff, eg welcome string in the upper right, and
66user list can be changed in the qdm_config.h file. 66user list can be changed in the qdm_config.h file.
67 67
68 68
69USAGE: 69USAGE:
70 70
71The QDM comes up, when the QPE is started, and if the QPE is started 71The QDM comes up, when the QPE is started, and if the QPE is started
72as 'root'. Being started as any other user, the uid couldn't be 72as 'root'. Being started as any other user, the uid couldn't be
73changed and the login dialog wouldn't be ofg much use. 73changed and the login dialog wouldn't be ofg much use.
74 74
75 75
76CONTACT: 76CONTACT:
77 77
78http://www.lisa.de 78http://www.lisa.de
diff --git a/core/opie-login/qdmdialogimpl.cpp b/core/opie-login/qdmdialogimpl.cpp
index bb1b453..56f0fc0 100644
--- a/core/opie-login/qdmdialogimpl.cpp
+++ b/core/opie-login/qdmdialogimpl.cpp
@@ -1,167 +1,167 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2001 LISA Systems 2** Copyright (C) 2001 LISA Systems
3** 3**
4** This file is an additional part of Qtopia Environment. 4** This file is an additional part of Qtopia 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** For further information contact info@lisa.de 14** For further information contact info@lisa.de
15** 15**
16**********************************************************************/ 16**********************************************************************/
17 17
18/* 18/*
19 * AUTHOR: Christian Rahn 19 * AUTHOR: Christian Rahn
20 * EMAIL: cdr@lisa.de 20 * EMAIL: cdr@lisa.de
21 * 21 *
22 * $Id$ 22 * $Id$
23 */ 23 */
24 24
25#include "qdm_config.h" 25#include "qdm_config.h"
26 26
27#ifdef QT_QWS_LOGIN 27#ifdef QT_QWS_LOGIN
28 28
29#include <pwd.h> 29#include <pwd.h>
30#include <unistd.h> 30#include <unistd.h>
31#include <stdlib.h> 31#include <stdlib.h>
32#include <iostream.h> 32#include <iostream.h>
33#include <assert.h> 33#include <assert.h>
34 34
35#include <qlabel.h> 35#include <qlabel.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qdatetime.h> 37#include <qdatetime.h>
38#include <qmessagebox.h> 38#include <qmessagebox.h>
39#include <qcombobox.h> 39#include <qcombobox.h>
40#include <qlineedit.h> 40#include <qlineedit.h>
41#include <qtranslator.h> 41#include <qtranslator.h>
42#include <qpeapplication.h> 42#include <qpeapplication.h>
43 43
44#include <qwsdisplay_qws.h> 44#include <qwsdisplay_qws.h>
45 45
46#include <string.h> 46#include <string.h>
47#include <stdio.h> 47#include <stdio.h>
48#include <errno.h> 48#include <errno.h>
49#include <unistd.h> 49#include <unistd.h>
50 50
51#include <sys/types.h> 51#include <sys/types.h>
52#include <sys/stat.h> 52#include <sys/stat.h>
53#include <sys/sem.h> 53#include <sys/sem.h>
54#include <sys/shm.h> 54#include <sys/shm.h>
55#include <sys/ipc.h> 55#include <sys/ipc.h>
56 56
57#include <global.h> 57#include <global.h>
58 58
59#if defined(QT_QWS_LOGIN_USEPAM) 59#if defined(QT_QWS_LOGIN_USEPAM)
60extern "C" { 60extern "C" {
61#include <security/pam_appl.h> 61#include <security/pam_appl.h>
62} 62}
63#else 63#else
64#define _XOPEN_SOURCE 64#define _XOPEN_SOURCE
65#include <unistd.h> 65#include <unistd.h>
66#include <crypt.h> 66#include <crypt.h>
67#endif 67#endif
68 68
69 69
70#include "qdmdialogimpl.h" 70#include "qdmdialogimpl.h"
71#include "../taskbar/inputmethods.h" 71#include "../launcher/inputmethods.h"
72 72
73 73
74//---------------------------------------------------------------------------- 74//----------------------------------------------------------------------------
75 75
76//-- taken from semctl man page 76//-- taken from semctl man page
77#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) 77#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
78//-- union semun is defined by including <sys/sem.h> 78//-- union semun is defined by including <sys/sem.h>
79#else 79#else
80//-- according to X/OPEN we have to define it ourselves 80//-- according to X/OPEN we have to define it ourselves
81union semun { 81union semun {
82 int val; // value for SETVAL 82 int val; // value for SETVAL
83 struct semid_ds *buf; // buffer for IPC_STAT, IPC_SET 83 struct semid_ds *buf; // buffer for IPC_STAT, IPC_SET
84 unsigned short int *array; // array for GETALL, SETALL 84 unsigned short int *array; // array for GETALL, SETALL
85 struct seminfo *__buf; // buffer for IPC_INFO 85 struct seminfo *__buf; // buffer for IPC_INFO
86}; 86};
87#endif 87#endif
88 88
89//---------------------------------------------------------------------------- 89//----------------------------------------------------------------------------
90 90
91static const int ShowClockFreq = 1; 91static const int ShowClockFreq = 1;
92 92
93QDM_SHOWNUSERS; 93QDM_SHOWNUSERS;
94 94
95#ifdef QT_QWS_LOGIN_USEPAM 95#ifdef QT_QWS_LOGIN_USEPAM
96 96
97static const char *_PAM_SERVICE = "xdm"; 97static const char *_PAM_SERVICE = "xdm";
98static const char *PAM_password; 98static const char *PAM_password;
99 99
100typedef const struct pam_message pam_message_type; 100typedef const struct pam_message pam_message_type;
101 101
102static int PAM_conv( int, pam_message_type **, struct pam_response **, void * ); 102static int PAM_conv( int, pam_message_type **, struct pam_response **, void * );
103 103
104static struct pam_conv PAM_conversation = { 104static struct pam_conv PAM_conversation = {
105 &PAM_conv, 105 &PAM_conv,
106 NULL 106 NULL
107}; 107};
108 108
109//---------------------------------------------------------------------------- 109//----------------------------------------------------------------------------
110 110
111static char *COPY_STRING( const char * s ) { 111static char *COPY_STRING( const char * s ) {
112 return (s) ? strdup(s) : (char *)NULL; 112 return (s) ? strdup(s) : (char *)NULL;
113} 113}
114 114
115#define GET_MEM if (reply) realloc(reply, size);\ 115#define GET_MEM if (reply) realloc(reply, size);\
116 else reply = (struct pam_response *)malloc(size); \ 116 else reply = (struct pam_response *)malloc(size); \
117 if (!reply) return PAM_CONV_ERR; \ 117 if (!reply) return PAM_CONV_ERR; \
118 size += sizeof(struct pam_response) 118 size += sizeof(struct pam_response)
119 119
120 120
121static int PAM_conv( int num_msg, pam_message_type **msg, 121static int PAM_conv( int num_msg, pam_message_type **msg,
122 struct pam_response **resp, void *) 122 struct pam_response **resp, void *)
123{ 123{
124 int count = 0, replies = 0; 124 int count = 0, replies = 0;
125 struct pam_response *reply = NULL; 125 struct pam_response *reply = NULL;
126 int size = sizeof(struct pam_response); 126 int size = sizeof(struct pam_response);
127 127
128 for( count = 0; count < num_msg; count++ ) { 128 for( count = 0; count < num_msg; count++ ) {
129 switch (msg[count]->msg_style) { 129 switch (msg[count]->msg_style) {
130 case PAM_PROMPT_ECHO_ON: 130 case PAM_PROMPT_ECHO_ON:
131 /* user name given to PAM already */ 131 /* user name given to PAM already */
132 return PAM_CONV_ERR; 132 return PAM_CONV_ERR;
133 133
134 case PAM_PROMPT_ECHO_OFF: 134 case PAM_PROMPT_ECHO_OFF:
135 /* wants password */ 135 /* wants password */
136 GET_MEM; 136 GET_MEM;
137 reply[replies].resp_retcode = PAM_SUCCESS; 137 reply[replies].resp_retcode = PAM_SUCCESS;
138 reply[replies].resp = COPY_STRING(PAM_password); 138 reply[replies].resp = COPY_STRING(PAM_password);
139 replies++; 139 replies++;
140 /* PAM frees resp */ 140 /* PAM frees resp */
141 break; 141 break;
142 case PAM_TEXT_INFO: 142 case PAM_TEXT_INFO:
143 break; 143 break;
144 default: 144 default:
145 /* unknown or PAM_ERROR_MSG */ 145 /* unknown or PAM_ERROR_MSG */
146 if (reply) free (reply); 146 if (reply) free (reply);
147 return PAM_CONV_ERR; 147 return PAM_CONV_ERR;
148 } 148 }
149 } 149 }
150 if (reply) *resp = reply; 150 if (reply) *resp = reply;
151 return PAM_SUCCESS; 151 return PAM_SUCCESS;
152} 152}
153 153
154#endif 154#endif
155 155
156 156
157//---------------------------------------------------------------------------- 157//----------------------------------------------------------------------------
158 158
159QDMDialogImpl::QDMDialogImpl( QWidget* parent, const char* name, bool modal, WFlags f ) 159QDMDialogImpl::QDMDialogImpl( QWidget* parent, const char* name, bool modal, WFlags f )
160 : QDMDialog( parent, name, modal, f ) 160 : QDMDialog( parent, name, modal, f )
161{ 161{
162 showTime(); 162 showTime();
163 clockTimer = startTimer( ShowClockFreq * 1000 );//-- call timer evry min. 163 clockTimer = startTimer( ShowClockFreq * 1000 );//-- call timer evry min.
164 setActiveWindow(); 164 setActiveWindow();
165 setFocus(); 165 setFocus();
166 166
167 input = new InputMethods( this ); 167 input = new InputMethods( this );