-rw-r--r-- | core/apps/calibrate/calibrate.cpp | 11 | ||||
-rw-r--r-- | core/launcher/shutdownimpl.cpp | 11 | ||||
-rw-r--r-- | core/launcher/shutdownimpl.h | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/core/apps/calibrate/calibrate.cpp b/core/apps/calibrate/calibrate.cpp index b9ad73d..6d498bc 100644 --- a/core/apps/calibrate/calibrate.cpp +++ b/core/apps/calibrate/calibrate.cpp @@ -1,116 +1,123 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include <math.h> #include "calibrate.h" #include <qpe/resource.h> - +#include <qpe/qcopenvelope_qws.h> #include <qapplication.h> #if defined(Q_WS_QWS) || defined(_WS_QWS_) #include <qpainter.h> #include <qtimer.h> #include <qwindowsystem_qws.h> #include <qgfx_qws.h> Calibrate::Calibrate( QWidget* parent, const char * name, WFlags wf ) : QDialog( parent, name, TRUE, wf | WStyle_Tool | WStyle_Customize | WStyle_StaysOnTop ) { showCross = TRUE; const int offset = 30; QRect desk = qApp->desktop() ->geometry(); setGeometry( 0, 0, desk.width(), desk.height() ); if ( desk.height() < 250 ) { int w = desk.height() / 3; logo.convertFromImage( Resource::loadImage( "launcher/opielogo" ).smoothScale( w, w ) ); } else { logo = Resource::loadPixmap( "launcher/opielogo" ); } cd.screenPoints[ QWSPointerCalibrationData::TopLeft ] = QPoint( offset, offset ); cd.screenPoints[ QWSPointerCalibrationData::BottomLeft ] = QPoint( offset, qt_screen->deviceHeight() - offset ); cd.screenPoints[ QWSPointerCalibrationData::BottomRight ] = QPoint( qt_screen->deviceWidth() - offset, qt_screen->deviceHeight() - offset ); cd.screenPoints[ QWSPointerCalibrationData::TopRight ] = QPoint( qt_screen->deviceWidth() - offset, offset ); cd.screenPoints[ QWSPointerCalibrationData::Center ] = QPoint( qt_screen->deviceWidth() / 2, qt_screen->deviceHeight() / 2 ); goodcd = cd; reset(); timer = new QTimer( this ); connect( timer, SIGNAL( timeout() ), this, SLOT( timeout() ) ); } Calibrate::~Calibrate() { store(); } void Calibrate::show() { grabMouse(); QWSServer::mouseHandler() ->getCalibration( &goodcd ); QWSServer::mouseHandler() ->clearCalibration(); QDialog::show(); } void Calibrate::store() { QWSServer::mouseHandler() ->calibrate( &goodcd ); } void Calibrate::hide() { - if ( isVisible() ) + if ( isVisible ( )) { store(); + + // hack - calibrate is a launcher dialog, but treated like a standalone app + { + QCopEnvelope e( "QPE/System", "closing(QString)" ); + e << QString ( "calibrate" ); + } + } QDialog::hide(); } void Calibrate::reset() { penPos = QPoint(); location = QWSPointerCalibrationData::TopLeft; crossPos = fromDevice( cd.screenPoints[ location ] ); } QPoint Calibrate::fromDevice( const QPoint &p ) { return qt_screen->mapFromDevice ( p, QSize( qt_screen->deviceWidth ( ), qt_screen->deviceHeight() ) ); } bool Calibrate::sanityCheck() { QPoint tl = cd.devPoints[QWSPointerCalibrationData::TopLeft]; QPoint tr = cd.devPoints[QWSPointerCalibrationData::TopRight]; QPoint bl = cd.devPoints[QWSPointerCalibrationData::BottomLeft]; QPoint br = cd.devPoints[QWSPointerCalibrationData::BottomRight]; // not needed anywhere .. just calculate it, so it's there cd. devPoints [QWSPointerCalibrationData::Center] = QRect ( tl, br ). normalize ( ). center ( ); int dlx = QABS( bl. x ( ) - tl. x ( )); int dly = QABS( bl. y ( ) - tl. y ( )); int drx = QABS( br. x ( ) - tr. x ( )); int dry = QABS( br. y ( ) - tr. y ( )); int dtx = QABS( tr. x ( ) - tl. x ( )); int dty = QABS( tr. y ( ) - tl. y ( )); int dbx = QABS( br. x ( ) - bl. x ( )); diff --git a/core/launcher/shutdownimpl.cpp b/core/launcher/shutdownimpl.cpp index b1925d9..9292bb8 100644 --- a/core/launcher/shutdownimpl.cpp +++ b/core/launcher/shutdownimpl.cpp @@ -1,55 +1,56 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #include "shutdownimpl.h" #include <qpe/global.h> +#include <qpe/qcopenvelope_qws.h> #include <qtimer.h> #include <qprogressbar.h> #include <qpushbutton.h> #include <qbuttongroup.h> #include <qlabel.h> #include <qlayout.h> #include <qpalette.h> static void changeButtonColor ( QPushButton *btn, const QColor &col ) { QPalette pal = btn-> palette ( ); pal. setColor ( QPalette::Active, QColorGroup::Button, col ); pal. setColor ( QPalette::Disabled, QColorGroup::Button, col ); pal. setColor ( QPalette::Inactive, QColorGroup::Button, col ); btn-> setPalette ( pal ); } ShutdownImpl::ShutdownImpl( QWidget* parent, const char *name, WFlags fl ) : QWidget ( parent, name, fl ) { setCaption ( tr( "Shut down..." ) ); QVBoxLayout *vbox = new QVBoxLayout ( this ); vbox-> setSpacing ( 3 ); vbox-> setMargin ( 6 ); QButtonGroup *btngrp = new QButtonGroup ( this ); @@ -136,33 +137,43 @@ void ShutdownImpl::buttonClicked ( int b ) break; case 4: m_operation = TerminateDesktop; break; } m_info-> hide ( ); m_progress-> show ( ); m_timer-> start ( 300 ); timeout ( ); } void ShutdownImpl::cancelClicked ( ) { m_progress-> hide ( ); m_info-> show ( ); if ( m_timer-> isActive ( ) ) m_timer-> stop ( ); else close ( ); } void ShutdownImpl::timeout ( ) { if ( ( m_counter += 2 ) > m_progress-> totalSteps ( ) ) { m_progress-> hide ( ); m_timer-> stop ( ); emit shutdown ( m_operation ); } else m_progress-> setProgress ( m_counter ); } +void ShutdownImpl::hide ( ) +{ + if ( isVisible ( )) { + // hack - shutdown is a launcher dialog, but treated like a standalone app + QCopEnvelope e( "QPE/System", "closing(QString)" ); + e << QString ( "shutdown" ); + + } + QWidget::hide ( ); +} diff --git a/core/launcher/shutdownimpl.h b/core/launcher/shutdownimpl.h index c2ebcc7..12b859d 100644 --- a/core/launcher/shutdownimpl.h +++ b/core/launcher/shutdownimpl.h @@ -5,51 +5,53 @@ ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef SHUTDOWNIMPL_H #define SHUTDOWNIMPL_H #include <qwidget.h> class QTimer; class QLabel; class QProgressBar; class ShutdownImpl : public QWidget { Q_OBJECT public: ShutdownImpl( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); enum Type { ShutdownSystem, RebootSystem, RestartDesktop, TerminateDesktop }; + virtual void hide ( ); + signals: void shutdown( ShutdownImpl::Type ); private slots: void buttonClicked( int ); void cancelClicked(); void timeout(); private: QTimer *m_timer; int m_counter; Type m_operation; QLabel * m_info; QProgressBar *m_progress; }; #endif |