summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-09-12 13:56:12 (UTC)
committer mickeyl <mickeyl>2004-09-12 13:56:12 (UTC)
commit16f05a60665f1ba6aa61ac1032f3153578e5aaaf (patch) (side-by-side diff)
treede8d6c077b660485162f8989657ca49a9e4ca4ed
parent0c7a238e2116daa67c84e389d53fc64f8c2d78b3 (diff)
downloadopie-16f05a60665f1ba6aa61ac1032f3153578e5aaaf.zip
opie-16f05a60665f1ba6aa61ac1032f3153578e5aaaf.tar.gz
opie-16f05a60665f1ba6aa61ac1032f3153578e5aaaf.tar.bz2
show backdrop, make crosshair a bit more prominent, enable calibration test when QT_DEBUG is set
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/apps/calibrate/calibrate.cpp62
-rw-r--r--core/apps/calibrate/calibrate.h3
-rw-r--r--core/apps/calibrate/main.cpp4
3 files changed, 33 insertions, 36 deletions
diff --git a/core/apps/calibrate/calibrate.cpp b/core/apps/calibrate/calibrate.cpp
index e079195..5f52bdc 100644
--- a/core/apps/calibrate/calibrate.cpp
+++ b/core/apps/calibrate/calibrate.cpp
@@ -17,47 +17,45 @@
** 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 <qpixmap.h>
+#include <qimage.h>
#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 )
{
#ifdef QWS
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( "logo/opielogo" ).smoothScale( w, w ) );
- }
- else {
- logo = Resource::loadPixmap( "logo/opielogo" );
- }
+ crosshair.convertFromImage( Resource::loadImage("launcher/crosshair") );
+
+ splash.convertFromImage( Resource::loadImage("launcher/firstuse").smoothScale( width(), height() ) );
+ setBackgroundPixmap( splash );
+
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() ) );
#endif
}
@@ -77,25 +75,25 @@ void Calibrate::show()
#endif
}
void Calibrate::store()
{
#ifdef QWS
QWSServer::mouseHandler() ->calibrate( &goodcd );
#endif
}
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()
@@ -117,25 +115,25 @@ QPoint Calibrate::fromDevice( const QPoint &p )
}
bool Calibrate::sanityCheck()
{
#ifdef QWS
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 ( );
+ 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 ( ));
int dby = QABS( br. y ( ) - bl. y ( ));
int dl = (int) ::sqrt (( dlx * dlx ) + ( dly * dly )); // calculate vector lengths for all sides
int dr = (int) ::sqrt (( drx * drx ) + ( dry * dry ));
@@ -159,59 +157,57 @@ bool Calibrate::sanityCheck()
( diff3 > ( avg3 / 20 )))
return false;
else
return true;
#else
return true;
#endif
}
void Calibrate::moveCrosshair( QPoint pt )
{
showCross = FALSE;
- repaint( crossPos.x() - 8, crossPos.y() - 8, 16, 16 );
+ repaint( crossPos.x() - 14, crossPos.y() - 14, 28, 28 );
showCross = TRUE;
crossPos = pt;
- repaint( crossPos.x() - 8, crossPos.y() - 8, 16, 16 );
+ repaint( crossPos.x() - 14, crossPos.y() - 14, 28, 28 );
}
void Calibrate::paintEvent( QPaintEvent * )
{
QPainter p( this );
-
- int y;
-
- if ( !logo.isNull() ) {
- y = height() / 2 - logo.height() - 15;
- p.drawPixmap( ( width() - logo.width() ) / 2, y, logo );
- }
-
- y = height() / 2 + 15;
+ int y = height() / 3;
p.drawText( 0, y + height() / 8, width(), height() - y, AlignHCenter,
tr( "Touch the crosshairs firmly and\n"
"accurately to calibrate your screen." ) );
- QFont f = p.font();
- f.setBold( TRUE );
- p.setFont( f );
- p.drawText( 0, y, width(), height() - y, AlignHCenter | WordBreak,
- tr( "Welcome to Opie" ) );
-
- if ( showCross ) {
- p.drawRect( crossPos.x() - 1, crossPos.y() - 8, 2, 7 );
- p.drawRect( crossPos.x() - 1, crossPos.y() + 1, 2, 7 );
- p.drawRect( crossPos.x() - 8, crossPos.y() - 1, 7, 2 );
- p.drawRect( crossPos.x() + 1, crossPos.y() - 1, 7, 2 );
+ if ( !showCross ) return;
+
+#if 0
+ if ( crosshair.isNull() ) {
+#endif
+ p.setPen( QColor( 0, 0, 155 ) );
+ p.drawEllipse( crossPos.x()-8, crossPos.y()-8, 16, 16 );
+ p.setPen( QColor( 250, 220, 220 ) );
+ p.drawRoundRect( crossPos.x()-12, crossPos.y()-12, 24, 24, 75, 75 );
+ p.setPen( QColor( 0, 0, 120 ) );
+ p.drawRect( crossPos.x() - 1, crossPos.y() - 14, 2, 13 );
+ p.drawRect( crossPos.x() - 1, crossPos.y() + 1, 2, 13 );
+ p.drawRect( crossPos.x() - 14, crossPos.y() - 1, 13, 2 );
+ p.drawRect( crossPos.x() + 1, crossPos.y() - 1, 13, 2 );
+#if 0
}
+ else p.drawPixmap( crossPos.x(), crossPos.y(), crosshair );
+#endif
}
void Calibrate::mousePressEvent( QMouseEvent *e )
{
#ifdef QWS
// map to device coordinates
QPoint devPos = qt_screen->mapToDevice( e->pos(), QSize( qt_screen->width(), qt_screen->height() ) );
if ( penPos.isNull() )
penPos = devPos;
else
penPos = QPoint( ( penPos.x() + devPos.x() ) / 2,
( penPos.y() + devPos.y() ) / 2 );
diff --git a/core/apps/calibrate/calibrate.h b/core/apps/calibrate/calibrate.h
index 06aa0c9..c1b990a 100644
--- a/core/apps/calibrate/calibrate.h
+++ b/core/apps/calibrate/calibrate.h
@@ -42,25 +42,26 @@ private:
bool sanityCheck();
void moveCrosshair( QPoint pt );
void paintEvent( QPaintEvent * );
void mousePressEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
private slots:
void timeout();
private:
void store();
void reset();
- QPixmap logo;
+ QPixmap splash;
+ QPixmap crosshair;
#ifdef QWS
QWSPointerCalibrationData goodcd,cd;
QWSPointerCalibrationData::Location location;
#endif
QPoint crossPos;
QPoint penPos;
QPixmap saveUnder;
QTimer *timer;
int dx;
int dy;
bool showCross;
};
diff --git a/core/apps/calibrate/main.cpp b/core/apps/calibrate/main.cpp
index 0da0fe0..d9d98f5 100644
--- a/core/apps/calibrate/main.cpp
+++ b/core/apps/calibrate/main.cpp
@@ -22,25 +22,25 @@
#include <qpe/qpeapplication.h>
#ifdef QWS
#include <qwindowsystem_qws.h>
#endif
int main( int argc, char ** argv )
{
QPEApplication a( argc, argv );
int retval = 0;
-#ifdef QWS
+#if !defined(QT_DEBUG) && defined(QWS)
if ( QWSServer::mouseHandler() &&
QWSServer::mouseHandler() ->inherits("QCalibratedMouseHandler") ) {
#endif
// Make sure calibration widget starts on top.
Calibrate cal;
a.setMainWidget(&cal);
a.showMainWidget(&cal);
return a.exec();
-#ifdef QWS
+#if !defined(QT_DEBUG) && defined(QWS)
}
#endif
}