summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2003-10-02 15:53:52 (UTC)
committer mickeyl <mickeyl>2003-10-02 15:53:52 (UTC)
commit4c9bda8027049b7ea423471a213eca2068490b08 (patch) (unidiff)
treea2400c2a77847764cd09e4c882caf521e503a423
parent4dd842eacb6c04303932e4cbebedff14db7cbc87 (diff)
downloadopie-4c9bda8027049b7ea423471a213eca2068490b08.zip
opie-4c9bda8027049b7ea423471a213eca2068490b08.tar.gz
opie-4c9bda8027049b7ea423471a213eca2068490b08.tar.bz2
Start with some customization bits for inputmethods as part of the
BigScreen initiative. You can now choose to have free floating and resizable inputmethods. Two outstanding things: 1.) Hiding the inputmethod via the [x] button confuses the show/hide toggle button. 2.) The new size and position of a moved/resized inputmethod should be remembered.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/inputmethods.cpp14
-rw-r--r--core/launcher/inputmethods.h2
-rw-r--r--core/launcher/taskbar.cpp41
-rw-r--r--core/launcher/taskbar.h30
-rw-r--r--core/settings/launcher/inputmethodsettings.cpp87
-rw-r--r--core/settings/launcher/inputmethodsettings.h57
-rw-r--r--core/settings/launcher/launcher.pro2
-rw-r--r--core/settings/launcher/launchersettings.cpp5
-rw-r--r--core/settings/launcher/launchersettings.h2
-rw-r--r--pics/launchersettings/inputmethod.pngbin0 -> 232 bytes
10 files changed, 200 insertions, 40 deletions
diff --git a/core/launcher/inputmethods.cpp b/core/launcher/inputmethods.cpp
index f0d8294..d89a366 100644
--- a/core/launcher/inputmethods.cpp
+++ b/core/launcher/inputmethods.cpp
@@ -70,8 +70,2 @@ static const char * tri_xpm[]={
70 70
71static const int inputWidgetStyle = QWidget::WStyle_Customize |
72 QWidget::WStyle_Tool |
73 QWidget::WStyle_StaysOnTop |
74 QWidget::WGroupLeader;
75
76
77int InputMethod::operator <(const InputMethod& o) const 71int InputMethod::operator <(const InputMethod& o) const
@@ -106,2 +100,8 @@ InputMethods::InputMethods( QWidget *parent ) :
106{ 100{
101 Config cfg( "Launcher" );
102 cfg.setGroup( "InputMethods" );
103 inputWidgetStyle = QWidget::WStyle_Customize | QWidget::WStyle_StaysOnTop | QWidget::WGroupLeader;
104 inputWidgetStyle |= cfg.readBoolEntry( "Float", false ) ? QWidget::WStyle_DialogBorder : QWidget::WStyle_Tool;
105 inputWidgetWidth = cfg.readNumEntry( "Width", 100 );
106
107 setBackgroundMode( PaletteBackground ); 107 setBackgroundMode( PaletteBackground );
@@ -539,3 +539,3 @@ void InputMethods::showKbd( bool on )
539 int height = QMIN( mkeyboard->widget->sizeHint().height(), 134 ); 539 int height = QMIN( mkeyboard->widget->sizeHint().height(), 134 );
540 mkeyboard->widget->resize( qApp->desktop()->width(), height ); 540 mkeyboard->widget->resize( qApp->desktop()->width() * (inputWidgetWidth*0.01), height );
541 mkeyboard->widget->move( 0, mapToGlobal( QPoint() ).y() - height ); 541 mkeyboard->widget->move( 0, mapToGlobal( QPoint() ).y() - height );
diff --git a/core/launcher/inputmethods.h b/core/launcher/inputmethods.h
index 93b69de..246661a 100644
--- a/core/launcher/inputmethods.h
+++ b/core/launcher/inputmethods.h
@@ -105,2 +105,4 @@ private:
105 QValueList<InputMethod> inputModifierList; 105 QValueList<InputMethod> inputModifierList;
106 int inputWidgetStyle;
107 int inputWidgetWidth;
106}; 108};
diff --git a/core/launcher/taskbar.cpp b/core/launcher/taskbar.cpp
index 37fdb30..2966168 100644
--- a/core/launcher/taskbar.cpp
+++ b/core/launcher/taskbar.cpp
@@ -30,2 +30,3 @@
30 30
31#include <qtopia/config.h>
31#include <qtopia/qpeapplication.h> 32#include <qtopia/qpeapplication.h>
@@ -174,2 +175,6 @@ TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOn
174{ 175{
176 Config cfg( "Launcher" );
177 cfg.setGroup( "InputMethods" );
178 resizeRunningApp = cfg.readBoolEntry( "Resize", true );
179
175 sm = new StartMenu( this ); 180 sm = new StartMenu( this );
@@ -293,22 +298,20 @@ void TaskBar::calcMaxWindowRect()
293{ 298{
294 /* 299 if ( resizeRunningApp )
295#ifdef Q_WS_QWS 300 {
296 QRect wr; 301 #if defined(Q_WS_QWS)
297 int displayWidth = qApp->desktop()->width(); 302 QRect wr;
298 QRect ir = inputMethods->inputRect(); 303 int displayWidth = qApp->desktop()->width();
299 if ( ir.isValid() ) { 304 QRect ir = inputMethods->inputRect();
300 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); 305 if ( ir.isValid() ) {
301 } else { 306 wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 );
302 wr.setCoords( 0, 0, displayWidth-1, y()-1 ); 307 } else {
308 wr.setCoords( 0, 0, displayWidth-1, y()-1 );
309 }
310 #if QT_VERSION < 0x030000
311 QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr,QSize(qt_screen->width(),qt_screen->height())) );
312 #else
313 QWSServer::setMaxWindowRect( wr );
314 #endif
315 #endif
303 } 316 }
304
305#if QT_VERSION < 0x030000
306 QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr,
307 QSize(qt_screen->width(),qt_screen->height()))
308 );
309#else
310 QWSServer::setMaxWindowRect( wr );
311#endif
312#endif
313 */
314} 317}
diff --git a/core/launcher/taskbar.h b/core/launcher/taskbar.h
index 0cfc123..ed558b1 100644
--- a/core/launcher/taskbar.h
+++ b/core/launcher/taskbar.h
@@ -1,5 +1,5 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of the Qtopia Environment.
5** 5**
@@ -20,6 +20,8 @@
20 20
21#ifndef __TASKBAR_H__ 21#ifndef TASKBAR_H
22#define __TASKBAR_H__ 22#define TASKBAR_H
23 23
24#include <qhbox.h> 24#include <qhbox.h>
25#include "serverinterface.h"
26#include "startmenu.h"
25 27
@@ -34,4 +36,4 @@ class QTimer;
34class QLabel; 36class QLabel;
35class StartMenu;
36class LockKeyState; 37class LockKeyState;
38class AppLnkSet;
37 39
@@ -43,7 +45,9 @@ public:
43 45
44 static QWidget *calibrate( bool ); 46 void launchStartMenu() { if (sm) sm->launch(); }
47 void refreshStartMenu() { if (sm) sm->refreshMenu(); }
48 void setApplicationState( const QString &name, ServerInterface::ApplicationState state );
45 49
46 bool recoverMemory(); 50signals:
51 void tabSelected(const QString&);
47 52
48 StartMenu *startMenu() const { return sm; }
49public slots: 53public slots:
@@ -52,2 +56,3 @@ public slots:
52 void stopWait(); 56 void stopWait();
57
53 void clearStatusBar(); 58 void clearStatusBar();
@@ -56,2 +61,3 @@ public slots:
56 void toggleSymbolInput(); 61 void toggleSymbolInput();
62 void calcMaxWindowRect();
57 63
@@ -61,5 +67,3 @@ protected:
61 void setStatusMessage( const QString &text ); 67 void setStatusMessage( const QString &text );
62 68
63public slots:
64 void calcMaxWindowRect();
65private slots: 69private slots:
@@ -68,3 +72,2 @@ private slots:
68private: 72private:
69
70 QTimer *waitTimer; 73 QTimer *waitTimer;
@@ -79,2 +82,3 @@ private:
79 StartMenu *sm; 82 StartMenu *sm;
83 bool resizeRunningApp;
80}; 84};
@@ -82,2 +86,2 @@ private:
82 86
83#endif // __TASKBAR_H__ 87#endif // TASKBAR_H
diff --git a/core/settings/launcher/inputmethodsettings.cpp b/core/settings/launcher/inputmethodsettings.cpp
new file mode 100644
index 0000000..1aa1ae8
--- a/dev/null
+++ b/core/settings/launcher/inputmethodsettings.cpp
@@ -0,0 +1,87 @@
1/*
2                This file is part of the OPIE Project
3 =. Copyright (c) 2002 Trolltech AS <info@trolltech.com>
4             .=l. Copyright (c) 2003 Michael Lauer <mickeyl@handhelds.org>
5           .>+-=
6 _;:,     .>    :=|. This file is free software; you can
7.> <`_,   >  .   <= redistribute it and/or modify it under
8:`=1 )Y*s>-.--   : the terms of the GNU General Public
9.="- .-=="i,     .._ License as published by the Free Software
10 - .   .-<_>     .<> Foundation; either version 2 of the License,
11     ._= =}       : or (at your option) any later version.
12    .%`+i>       _;_.
13    .i_,=:_.      -<s. This file is distributed in the hope that
14     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
15    : ..    .:,     . . . without even the implied warranty of
16    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
17  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
18..}^=.=       =       ; Public License for more details.
19++=   -.     .`     .:
20 :     =  ...= . :.=- You should have received a copy of the GNU
21 -.   .:....=;==+<; General Public License along with this file;
22  -_. . .   )=.  = see the file COPYING. If not, write to the
23    --        :-=` Free Software Foundation, Inc.,
24 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#include "inputmethodsettings.h"
30
31#include <qpe/config.h>
32#include <qpe/qlibrary.h>
33#include <qpe/qpeapplication.h>
34
35#include <qspinbox.h>
36#include <qcheckbox.h>
37#include <qlayout.h>
38#include <qlabel.h>
39#include <qwhatsthis.h>
40
41InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QWidget( parent, name )
42{
43 QBoxLayout *lay = new QVBoxLayout( this, 4, 4 );
44
45 _resize = new QCheckBox( tr( "Resize application on Popup" ), this );
46 _float = new QCheckBox( tr( "Enable floating and resizing" ), this );
47
48 QHBoxLayout* hbox = new QHBoxLayout( this, 4, 4 );
49 hbox->addWidget( new QLabel( "Initial Width:", this ) );
50 _size = new QSpinBox( 10, 100, 10, this );
51 _size->setSuffix( "%" );
52 hbox->addWidget( _size );
53 hbox->addStretch();
54
55 Config cfg( "Launcher" );
56 cfg.setGroup( "InputMethods" );
57 _resize->setChecked( cfg.readBoolEntry( "Resize", true ) );
58 _float->setChecked( cfg.readBoolEntry( "Float", false ) );
59 _size->setValue( cfg.readNumEntry( "Width", 100 ) );
60
61 lay->addWidget( _resize );
62 lay->addWidget( _float );
63 lay->addLayout( hbox );
64 lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) );
65
66 lay->addStretch();
67
68 QWhatsThis::add( _resize, tr( "Check, if you want the application to be automatically resized if the input method pops up." ) );
69 QWhatsThis::add( _float, tr( "Check, if you want to move and/or resize input methods" ) );
70 QWhatsThis::add( _size, tr( "Specify the percentage of the screen width for the input method" ) );
71}
72
73void InputMethodSettings::appletChanged()
74{
75}
76
77void InputMethodSettings::accept()
78{
79 qDebug( "InputMethodSettings::accept()" );
80 Config cfg( "Launcher" );
81 cfg.setGroup( "InputMethods" );
82 cfg.writeEntry( "Resize", _resize->isChecked() );
83 cfg.writeEntry( "Float", _float->isChecked() );
84 cfg.writeEntry( "Width", _size->value() );
85 cfg.write();
86}
87
diff --git a/core/settings/launcher/inputmethodsettings.h b/core/settings/launcher/inputmethodsettings.h
new file mode 100644
index 0000000..486ee5e
--- a/dev/null
+++ b/core/settings/launcher/inputmethodsettings.h
@@ -0,0 +1,57 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2003 Michael Lauer <mickeyl@handhelds.org>
4           .>+-=
5 _;:,     .>    :=|. This file is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This file is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU General
17..}^=.=       =       ; Public License for more details.
18++=   -.     .`     .:
19 :     =  ...= . :.=- You should have received a copy of the GNU
20 -.   .:....=;==+<; General Public License along with this file;
21  -_. . .   )=.  = see the file COPYING. If not, write to the
22    --        :-=` Free Software Foundation, Inc.,
23 59 Temple Place - Suite 330,
24 Boston, MA 02111-1307, USA.
25
26*/
27
28#ifndef __IMETHOD_SETTINGS_H__
29#define __IMETHOD_SETTINGS_H__
30
31#include <qwidget.h>
32
33class QCheckBox;
34class QSpinBox;
35
36class InputMethodSettings : public QWidget
37{
38 Q_OBJECT
39
40 public:
41 InputMethodSettings ( QWidget *parent = 0, const char *name = 0 );
42
43 void accept ( );
44
45 protected slots:
46 void appletChanged ( );
47
48 protected:
49 void init ( );
50
51 private:
52 QCheckBox* _resize;
53 QCheckBox* _float;
54 QSpinBox* _size;
55};
56
57#endif
diff --git a/core/settings/launcher/launcher.pro b/core/settings/launcher/launcher.pro
index e532852..cea268d 100644
--- a/core/settings/launcher/launcher.pro
+++ b/core/settings/launcher/launcher.pro
@@ -7,2 +7,3 @@ HEADERS = launchersettings.h \
7 menusettings.h \ 7 menusettings.h \
8 inputmethodsettings.h \
8 tabconfig.h \ 9 tabconfig.h \
@@ -15,2 +16,3 @@ SOURCES = main.cpp \
15 menusettings.cpp \ 16 menusettings.cpp \
17 inputmethodsettings.cpp \
16 tabdialog.cpp 18 tabdialog.cpp
diff --git a/core/settings/launcher/launchersettings.cpp b/core/settings/launcher/launchersettings.cpp
index cb6e98a..3982194 100644
--- a/core/settings/launcher/launchersettings.cpp
+++ b/core/settings/launcher/launchersettings.cpp
@@ -37,3 +37,3 @@
37#include "taskbarsettings.h" 37#include "taskbarsettings.h"
38 38#include "inputmethodsettings.h"
39 39
@@ -51,2 +51,3 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false,
51 m_menu = new MenuSettings ( tw ); 51 m_menu = new MenuSettings ( tw );
52 m_imethods = new InputMethodSettings ( tw );
52 53
@@ -55,2 +56,3 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false,
55 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" )); 56 tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" ));
57 tw-> addTab ( m_imethods, "launchersettings/inputmethod.png", tr( "InputMethods" ));
56 58
@@ -64,2 +66,3 @@ void LauncherSettings::accept ( )
64 m_tabs-> accept ( ); 66 m_tabs-> accept ( );
67 m_imethods-> accept ( );
65 68
diff --git a/core/settings/launcher/launchersettings.h b/core/settings/launcher/launchersettings.h
index 56c916e..71165a3 100644
--- a/core/settings/launcher/launchersettings.h
+++ b/core/settings/launcher/launchersettings.h
@@ -35,2 +35,3 @@ class TaskbarSettings;
35class MenuSettings; 35class MenuSettings;
36class InputMethodSettings;
36 37
@@ -49,2 +50,3 @@ private:
49 MenuSettings *m_menu; 50 MenuSettings *m_menu;
51 InputMethodSettings* m_imethods;
50}; 52};
diff --git a/pics/launchersettings/inputmethod.png b/pics/launchersettings/inputmethod.png
new file mode 100644
index 0000000..f5af6cb
--- a/dev/null
+++ b/pics/launchersettings/inputmethod.png
Binary files differ