author | mickeyl <mickeyl> | 2003-10-02 15:53:52 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-10-02 15:53:52 (UTC) |
commit | 4c9bda8027049b7ea423471a213eca2068490b08 (patch) (side-by-side diff) | |
tree | a2400c2a77847764cd09e4c882caf521e503a423 | |
parent | 4dd842eacb6c04303932e4cbebedff14db7cbc87 (diff) | |
download | opie-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.
-rw-r--r-- | core/launcher/inputmethods.cpp | 14 | ||||
-rw-r--r-- | core/launcher/inputmethods.h | 2 | ||||
-rw-r--r-- | core/launcher/taskbar.cpp | 41 | ||||
-rw-r--r-- | core/launcher/taskbar.h | 30 | ||||
-rw-r--r-- | core/settings/launcher/inputmethodsettings.cpp | 87 | ||||
-rw-r--r-- | core/settings/launcher/inputmethodsettings.h | 57 | ||||
-rw-r--r-- | core/settings/launcher/launcher.pro | 2 | ||||
-rw-r--r-- | core/settings/launcher/launchersettings.cpp | 5 | ||||
-rw-r--r-- | core/settings/launcher/launchersettings.h | 2 | ||||
-rw-r--r-- | pics/launchersettings/inputmethod.png | bin | 0 -> 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[]={ -static const int inputWidgetStyle = QWidget::WStyle_Customize | - QWidget::WStyle_Tool | - QWidget::WStyle_StaysOnTop | - QWidget::WGroupLeader; - - int InputMethod::operator <(const InputMethod& o) const @@ -106,2 +100,8 @@ InputMethods::InputMethods( QWidget *parent ) : { + Config cfg( "Launcher" ); + cfg.setGroup( "InputMethods" ); + inputWidgetStyle = QWidget::WStyle_Customize | QWidget::WStyle_StaysOnTop | QWidget::WGroupLeader; + inputWidgetStyle |= cfg.readBoolEntry( "Float", false ) ? QWidget::WStyle_DialogBorder : QWidget::WStyle_Tool; + inputWidgetWidth = cfg.readNumEntry( "Width", 100 ); + setBackgroundMode( PaletteBackground ); @@ -539,3 +539,3 @@ void InputMethods::showKbd( bool on ) int height = QMIN( mkeyboard->widget->sizeHint().height(), 134 ); - mkeyboard->widget->resize( qApp->desktop()->width(), height ); + mkeyboard->widget->resize( qApp->desktop()->width() * (inputWidgetWidth*0.01), height ); 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: QValueList<InputMethod> inputModifierList; + int inputWidgetStyle; + int inputWidgetWidth; }; 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 @@ +#include <qtopia/config.h> #include <qtopia/qpeapplication.h> @@ -174,2 +175,6 @@ TaskBar::TaskBar() : QHBox(0, 0, WStyle_Customize | WStyle_Tool | WStyle_StaysOn { + Config cfg( "Launcher" ); + cfg.setGroup( "InputMethods" ); + resizeRunningApp = cfg.readBoolEntry( "Resize", true ); + sm = new StartMenu( this ); @@ -293,22 +298,20 @@ void TaskBar::calcMaxWindowRect() { - /* -#ifdef Q_WS_QWS - QRect wr; - int displayWidth = qApp->desktop()->width(); - QRect ir = inputMethods->inputRect(); - if ( ir.isValid() ) { - wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); - } else { - wr.setCoords( 0, 0, displayWidth-1, y()-1 ); + if ( resizeRunningApp ) + { + #if defined(Q_WS_QWS) + QRect wr; + int displayWidth = qApp->desktop()->width(); + QRect ir = inputMethods->inputRect(); + if ( ir.isValid() ) { + wr.setCoords( 0, 0, displayWidth-1, ir.top()-1 ); + } else { + wr.setCoords( 0, 0, displayWidth-1, y()-1 ); + } + #if QT_VERSION < 0x030000 + QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr,QSize(qt_screen->width(),qt_screen->height())) ); + #else + QWSServer::setMaxWindowRect( wr ); + #endif + #endif } - -#if QT_VERSION < 0x030000 - QWSServer::setMaxWindowRect( qt_screen->mapToDevice(wr, - QSize(qt_screen->width(),qt_screen->height())) - ); -#else - QWSServer::setMaxWindowRect( wr ); -#endif -#endif - */ } 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 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** @@ -20,6 +20,8 @@ -#ifndef __TASKBAR_H__ -#define __TASKBAR_H__ +#ifndef TASKBAR_H +#define TASKBAR_H #include <qhbox.h> +#include "serverinterface.h" +#include "startmenu.h" @@ -34,4 +36,4 @@ class QTimer; class QLabel; -class StartMenu; class LockKeyState; +class AppLnkSet; @@ -43,7 +45,9 @@ public: - static QWidget *calibrate( bool ); + void launchStartMenu() { if (sm) sm->launch(); } + void refreshStartMenu() { if (sm) sm->refreshMenu(); } + void setApplicationState( const QString &name, ServerInterface::ApplicationState state ); - bool recoverMemory(); +signals: + void tabSelected(const QString&); - StartMenu *startMenu() const { return sm; } public slots: @@ -52,2 +56,3 @@ public slots: void stopWait(); + void clearStatusBar(); @@ -56,2 +61,3 @@ public slots: void toggleSymbolInput(); + void calcMaxWindowRect(); @@ -61,5 +67,3 @@ protected: void setStatusMessage( const QString &text ); - -public slots: - void calcMaxWindowRect(); + private slots: @@ -68,3 +72,2 @@ private slots: private: - QTimer *waitTimer; @@ -79,2 +82,3 @@ private: StartMenu *sm; + bool resizeRunningApp; }; @@ -82,2 +86,2 @@ private: -#endif // __TASKBAR_H__ +#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 @@ +/* + This file is part of the OPIE Project + =. Copyright (c) 2002 Trolltech AS <info@trolltech.com> + .=l. Copyright (c) 2003 Michael Lauer <mickeyl@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include "inputmethodsettings.h" + +#include <qpe/config.h> +#include <qpe/qlibrary.h> +#include <qpe/qpeapplication.h> + +#include <qspinbox.h> +#include <qcheckbox.h> +#include <qlayout.h> +#include <qlabel.h> +#include <qwhatsthis.h> + +InputMethodSettings::InputMethodSettings( QWidget *parent, const char *name ):QWidget( parent, name ) +{ + QBoxLayout *lay = new QVBoxLayout( this, 4, 4 ); + + _resize = new QCheckBox( tr( "Resize application on Popup" ), this ); + _float = new QCheckBox( tr( "Enable floating and resizing" ), this ); + + QHBoxLayout* hbox = new QHBoxLayout( this, 4, 4 ); + hbox->addWidget( new QLabel( "Initial Width:", this ) ); + _size = new QSpinBox( 10, 100, 10, this ); + _size->setSuffix( "%" ); + hbox->addWidget( _size ); + hbox->addStretch(); + + Config cfg( "Launcher" ); + cfg.setGroup( "InputMethods" ); + _resize->setChecked( cfg.readBoolEntry( "Resize", true ) ); + _float->setChecked( cfg.readBoolEntry( "Float", false ) ); + _size->setValue( cfg.readNumEntry( "Width", 100 ) ); + + lay->addWidget( _resize ); + lay->addWidget( _float ); + lay->addLayout( hbox ); + lay->addWidget( new QLabel( tr( "<b>Note:</b> Changing these settings may need restarting Opie to become effective." ), this ) ); + + lay->addStretch(); + + QWhatsThis::add( _resize, tr( "Check, if you want the application to be automatically resized if the input method pops up." ) ); + QWhatsThis::add( _float, tr( "Check, if you want to move and/or resize input methods" ) ); + QWhatsThis::add( _size, tr( "Specify the percentage of the screen width for the input method" ) ); +} + +void InputMethodSettings::appletChanged() +{ +} + +void InputMethodSettings::accept() +{ + qDebug( "InputMethodSettings::accept()" ); + Config cfg( "Launcher" ); + cfg.setGroup( "InputMethods" ); + cfg.writeEntry( "Resize", _resize->isChecked() ); + cfg.writeEntry( "Float", _float->isChecked() ); + cfg.writeEntry( "Width", _size->value() ); + cfg.write(); +} + 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 @@ +/* + =. This file is part of the OPIE Project + .=l. Copyright (c) 2003 Michael Lauer <mickeyl@handhelds.org> + .>+-= + _;:, .> :=|. This file is free software; you can +.> <`_, > . <= redistribute it and/or modify it under +:`=1 )Y*s>-.-- : the terms of the GNU General Public +.="- .-=="i, .._ License as published by the Free Software + - . .-<_> .<> Foundation; either version 2 of the License, + ._= =} : or (at your option) any later version. + .%`+i> _;_. + .i_,=:_. -<s. This file is distributed in the hope that + + . -:. = it will be useful, but WITHOUT ANY WARRANTY; + : .. .:, . . . without even the implied warranty of + =_ + =;=|` MERCHANTABILITY or FITNESS FOR A + _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU General +..}^=.= = ; Public License for more details. +++= -. .` .: + : = ...= . :.=- You should have received a copy of the GNU + -. .:....=;==+<; General Public License along with this file; + -_. . . )=. = see the file COPYING. If not, write to the + -- :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#ifndef __IMETHOD_SETTINGS_H__ +#define __IMETHOD_SETTINGS_H__ + +#include <qwidget.h> + +class QCheckBox; +class QSpinBox; + +class InputMethodSettings : public QWidget +{ + Q_OBJECT + + public: + InputMethodSettings ( QWidget *parent = 0, const char *name = 0 ); + + void accept ( ); + + protected slots: + void appletChanged ( ); + + protected: + void init ( ); + + private: + QCheckBox* _resize; + QCheckBox* _float; + QSpinBox* _size; +}; + +#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 \ menusettings.h \ + inputmethodsettings.h \ tabconfig.h \ @@ -15,2 +16,3 @@ SOURCES = main.cpp \ menusettings.cpp \ + inputmethodsettings.cpp \ 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 @@ #include "taskbarsettings.h" - +#include "inputmethodsettings.h" @@ -51,2 +51,3 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false, m_menu = new MenuSettings ( tw ); + m_imethods = new InputMethodSettings ( tw ); @@ -55,2 +56,3 @@ LauncherSettings::LauncherSettings ( ) : QDialog ( 0, "LauncherSettings", false, tw-> addTab ( m_tabs, "launchersettings/tabstab.png", tr( "Tabs" )); + tw-> addTab ( m_imethods, "launchersettings/inputmethod.png", tr( "InputMethods" )); @@ -64,2 +66,3 @@ void LauncherSettings::accept ( ) m_tabs-> accept ( ); + m_imethods-> accept ( ); 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; class MenuSettings; +class InputMethodSettings; @@ -49,2 +50,3 @@ private: MenuSettings *m_menu; + InputMethodSettings* m_imethods; }; diff --git a/pics/launchersettings/inputmethod.png b/pics/launchersettings/inputmethod.png Binary files differnew file mode 100644 index 0000000..f5af6cb --- a/dev/null +++ b/pics/launchersettings/inputmethod.png |