author | alwin <alwin> | 2004-08-01 10:32:56 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-08-01 10:32:56 (UTC) |
commit | 142d432ef9f8215636a81c358c828d4b6986a6ad (patch) (unidiff) | |
tree | faf33f40f3e19fdd0362256c61e6774ea949f70c /libopie2/opiecore/device | |
parent | 24c8aff75cbb41ccb2acf3de79675c2f4fd7ecc9 (diff) | |
download | opie-142d432ef9f8215636a81c358c828d4b6986a6ad.zip opie-142d432ef9f8215636a81c358c828d4b6986a6ad.tar.gz opie-142d432ef9f8215636a81c358c828d4b6986a6ad.tar.bz2 |
added a keyfilter singleton. All OPIE apps should use that instead of
the base from qte 'cause there are some stupids in handling pointers.
key handlers from odevice-classes will handled at top of all others
iPAQ and SIMPad are switched to that filter queue.
-rw-r--r-- | libopie2/opiecore/device/odevice_ipaq.cpp | 53 | ||||
-rw-r--r-- | libopie2/opiecore/device/odevice_simpad.cpp | 50 |
2 files changed, 55 insertions, 48 deletions
diff --git a/libopie2/opiecore/device/odevice_ipaq.cpp b/libopie2/opiecore/device/odevice_ipaq.cpp index 16c0538..791e409 100644 --- a/libopie2/opiecore/device/odevice_ipaq.cpp +++ b/libopie2/opiecore/device/odevice_ipaq.cpp | |||
@@ -1,32 +1,32 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) The Opie Team <opie-devel@handhelds.org> | 3 | Copyright (C) The Opie Team <opie-devel@handhelds.org> |
4 | =. | 4 | =. |
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 | #include "odevice_ipaq.h" | 30 | #include "odevice_ipaq.h" |
31 | 31 | ||
32 | /* QT */ | 32 | /* QT */ |
@@ -35,16 +35,17 @@ | |||
35 | #include <qtextstream.h> | 35 | #include <qtextstream.h> |
36 | #include <qwindowsystem_qws.h> | 36 | #include <qwindowsystem_qws.h> |
37 | 37 | ||
38 | /* OPIE */ | 38 | /* OPIE */ |
39 | #include <qpe/config.h> | 39 | #include <qpe/config.h> |
40 | #include <qpe/resource.h> | 40 | #include <qpe/resource.h> |
41 | #include <qpe/sound.h> | 41 | #include <qpe/sound.h> |
42 | #include <qpe/qcopenvelope_qws.h> | 42 | #include <qpe/qcopenvelope_qws.h> |
43 | #include <opie2/okeyfilter.h> | ||
43 | 44 | ||
44 | /* STD */ | 45 | /* STD */ |
45 | #include <fcntl.h> | 46 | #include <fcntl.h> |
46 | #include <math.h> | 47 | #include <math.h> |
47 | #include <stdlib.h> | 48 | #include <stdlib.h> |
48 | #include <signal.h> | 49 | #include <signal.h> |
49 | #include <sys/ioctl.h> | 50 | #include <sys/ioctl.h> |
50 | #include <sys/time.h> | 51 | #include <sys/time.h> |
@@ -162,18 +163,20 @@ void iPAQ::init(const QString& model) | |||
162 | 163 | ||
163 | } | 164 | } |
164 | 165 | ||
165 | void iPAQ::initButtons() | 166 | void iPAQ::initButtons() |
166 | { | 167 | { |
167 | if ( d->m_buttons ) | 168 | if ( d->m_buttons ) |
168 | return; | 169 | return; |
169 | 170 | ||
170 | if ( isQWS( ) ) | 171 | if ( isQWS( ) ) { |
171 | QWSServer::setKeyboardFilter ( this ); | 172 | Opie::Core::OKeyFilter::inst()->addPreHandler(this); |
173 | //QWSServer::setKeyboardFilter ( this ); | ||
174 | } | ||
172 | 175 | ||
173 | d->m_buttons = new QValueList <ODeviceButton>; | 176 | d->m_buttons = new QValueList <ODeviceButton>; |
174 | 177 | ||
175 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { | 178 | for ( uint i = 0; i < ( sizeof( ipaq_buttons ) / sizeof( i_button )); i++ ) { |
176 | i_button *ib = ipaq_buttons + i; | 179 | i_button *ib = ipaq_buttons + i; |
177 | ODeviceButton b; | 180 | ODeviceButton b; |
178 | 181 | ||
179 | if (( ib->model & d->m_model ) == d->m_model ) { | 182 | if (( ib->model & d->m_model ) == d->m_model ) { |
@@ -266,26 +269,26 @@ bool iPAQ::filter ( int /*unicode*/, int keycode, int modifiers, bool isPress, b | |||
266 | if (( d->m_model == Model_iPAQ_H38xx ) || | 269 | if (( d->m_model == Model_iPAQ_H38xx ) || |
267 | ( d->m_model == Model_iPAQ_H39xx ) || | 270 | ( d->m_model == Model_iPAQ_H39xx ) || |
268 | ( d->m_model == Model_iPAQ_H5xxx)) { | 271 | ( d->m_model == Model_iPAQ_H5xxx)) { |
269 | newkeycode = HardKey_Mail; | 272 | newkeycode = HardKey_Mail; |
270 | } | 273 | } |
271 | break; | 274 | break; |
272 | } | 275 | } |
273 | 276 | ||
274 | // Rotate cursor keys 180° or 270° | 277 | // Rotate cursor keys 180 or 270 |
275 | case Key_Left : | 278 | case Key_Left : |
276 | case Key_Right: | 279 | case Key_Right: |
277 | case Key_Up : | 280 | case Key_Up : |
278 | case Key_Down : { | 281 | case Key_Down : { |
279 | if (( d->m_model == Model_iPAQ_H31xx ) || | 282 | if (( d->m_model == Model_iPAQ_H31xx ) || |
280 | ( d->m_model == Model_iPAQ_H38xx )) { | 283 | ( d->m_model == Model_iPAQ_H38xx )) { |
281 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; | 284 | newkeycode = Key_Left + ( keycode - Key_Left + 2 ) % 4; |
282 | } | 285 | } |
283 | // Rotate the cursor keys by 270° | 286 | // Rotate the cursor keys by 270 |
284 | // keycode - Key_Left = position of the button starting from left clockwise | 287 | // keycode - Key_Left = position of the button starting from left clockwise |
285 | // add the rotation to it and modolo. No we've the original offset | 288 | // add the rotation to it and modolo. No we've the original offset |
286 | // add the offset to the Key_Left key | 289 | // add the offset to the Key_Left key |
287 | if ( d-> m_model == Model_iPAQ_H5xxx ) | 290 | if ( d-> m_model == Model_iPAQ_H5xxx ) |
288 | newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; | 291 | newkeycode = Key_Left + ( keycode - Key_Left + 3 ) % 4; |
289 | break; | 292 | break; |
290 | } | 293 | } |
291 | 294 | ||
diff --git a/libopie2/opiecore/device/odevice_simpad.cpp b/libopie2/opiecore/device/odevice_simpad.cpp index e62ea18..6c3253c 100644 --- a/libopie2/opiecore/device/odevice_simpad.cpp +++ b/libopie2/opiecore/device/odevice_simpad.cpp | |||
@@ -1,32 +1,32 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) The Opie Team <opie-devel@handhelds.org> | 3 | Copyright (C) The Opie Team <opie-devel@handhelds.org> |
4 | =. | 4 | =. |
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 | #include "odevice_simpad.h" | 30 | #include "odevice_simpad.h" |
31 | 31 | ||
32 | /* QT */ | 32 | /* QT */ |
@@ -35,16 +35,17 @@ | |||
35 | #include <qtextstream.h> | 35 | #include <qtextstream.h> |
36 | #include <qwindowsystem_qws.h> | 36 | #include <qwindowsystem_qws.h> |
37 | 37 | ||
38 | /* OPIE */ | 38 | /* OPIE */ |
39 | #include <qpe/config.h> | 39 | #include <qpe/config.h> |
40 | #include <qpe/resource.h> | 40 | #include <qpe/resource.h> |
41 | #include <qpe/sound.h> | 41 | #include <qpe/sound.h> |
42 | #include <qpe/qcopenvelope_qws.h> | 42 | #include <qpe/qcopenvelope_qws.h> |
43 | #include <opie2/okeyfilter.h> | ||
43 | 44 | ||
44 | /* STD */ | 45 | /* STD */ |
45 | #include <fcntl.h> | 46 | #include <fcntl.h> |
46 | #include <math.h> | 47 | #include <math.h> |
47 | #include <stdlib.h> | 48 | #include <stdlib.h> |
48 | #include <signal.h> | 49 | #include <signal.h> |
49 | #include <sys/ioctl.h> | 50 | #include <sys/ioctl.h> |
50 | #include <sys/time.h> | 51 | #include <sys/time.h> |
@@ -140,18 +141,21 @@ void SIMpad::init(const QString&) | |||
140 | 141 | ||
141 | } | 142 | } |
142 | 143 | ||
143 | void SIMpad::initButtons() | 144 | void SIMpad::initButtons() |
144 | { | 145 | { |
145 | if ( d->m_buttons ) | 146 | if ( d->m_buttons ) |
146 | return; | 147 | return; |
147 | 148 | ||
148 | if ( isQWS( ) ) | 149 | if ( isQWS( ) ) { |
149 | QWSServer::setKeyboardFilter ( this ); | 150 | Opie::Core::OKeyFilter::inst()->addPreHandler(this); |
151 | // QWSServer::setKeyboardFilter ( this ); | ||
152 | } | ||
153 | |||
150 | 154 | ||
151 | d->m_buttons = new QValueList <ODeviceButton>; | 155 | d->m_buttons = new QValueList <ODeviceButton>; |
152 | 156 | ||
153 | for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { | 157 | for ( uint i = 0; i < ( sizeof( simpad_buttons ) / sizeof( s_button )); i++ ) { |
154 | s_button *sb = simpad_buttons + i; | 158 | s_button *sb = simpad_buttons + i; |
155 | ODeviceButton b; | 159 | ODeviceButton b; |
156 | 160 | ||
157 | if (( sb->model & d->m_model ) == d->m_model ) { | 161 | if (( sb->model & d->m_model ) == d->m_model ) { |