summaryrefslogtreecommitdiffstats
path: root/keduca/keduca/kquestion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'keduca/keduca/kquestion.cpp')
-rw-r--r--keduca/keduca/kquestion.cpp123
1 files changed, 123 insertions, 0 deletions
diff --git a/keduca/keduca/kquestion.cpp b/keduca/keduca/kquestion.cpp
new file mode 100644
index 00000000..262f89b3
--- /dev/null
+++ b/keduca/keduca/kquestion.cpp
@@ -0,0 +1,123 @@
+/***************************************************************************
+ kquestion.cpp - description
+ -------------------
+ begin : Tue May 22 2001
+ copyright : (C) 2001 by Javier Campos Morales
+ email : javi@asyris.org
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+
+#include "kquestion.h"
+#include "kquestion.moc"
+
+#include <qlayout.h>
+#include <qpixmap.h>
+#include <qvbox.h>
+#include <qtimer.h>
+
+#include <kprogress.h>
+#include <klocale.h>
+
+KQuestion::KQuestion( QWidget *parent, const char *name )
+ : QHBox( parent, name ), _countdownTimer( 0 )
+{
+ initGUI();
+}
+
+KQuestion::~KQuestion()
+{
+}
+
+/** Init graphical interface */
+void KQuestion::initGUI()
+{
+ setFrameShape( QFrame::Box );
+ setFrameShadow( QFrame::Plain );
+ setPalette( QPalette( Qt::white ) );
+
+ QVBox *picBox = new QVBox( this );
+
+ _picture = new QLabel( picBox, "PixmapLabel1" );
+ _picture->setScaledContents( FALSE );
+ _picture->setPalette( QPalette( Qt::white ) );
+
+ _countdownWidget = new KProgress( picBox );
+ _countdownWidget->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,
+ QSizePolicy::Preferred ) );
+ _countdownWidget->setFormat( i18n( "%v seconds left" ) );
+
+ _view = new QTextEdit( this, "TextView1" );
+ _view->setReadOnly( true );
+ _view->setFrameShape( QTextEdit::NoFrame );
+ _view->setHScrollBarMode( QTextEdit::AlwaysOff );
+ _view->setTextFormat( QTextEdit::RichText );
+ _view->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, true ) );
+}
+
+/** Set text */
+void KQuestion::setText( const QString &text)
+{
+ _view->setText( text );
+}
+
+/** Set pixmap */
+void KQuestion::setPixmap( const QPixmap pixmap)
+{
+ _picture->setPixmap( pixmap );
+}
+
+void KQuestion::countdown(int starttime)
+{
+ _totalCount = starttime;
+ _currentCount = starttime;
+ if (starttime > 0)
+ {
+ if (!_countdownTimer)
+ {
+ _countdownTimer = new QTimer(this);
+ connect(_countdownTimer, SIGNAL(timeout()),
+ this, SLOT(countDownOne()));
+ }
+ _countdownTimer->start(1000);
+ // make one step less than time passes by in seconds
+ // so that the user will see when time is up
+ _countdownWidget->setTotalSteps(starttime);
+ _countdownWidget->setProgress(starttime);
+ }else{
+ _countdownTimer->stop();
+ _countdownWidget->reset();
+ }
+}
+
+void KQuestion::countDownOne()
+{
+ _currentCount--;
+ //_countdownWidget->setProgress(_totalCount - _currentCount);
+ _countdownWidget->advance(-1);
+
+ if (_currentCount == 0)
+ _countdownTimer->stop();
+}
+
+void KQuestion::countdownVisible(bool visible)
+{
+ if (visible)
+ _countdownWidget->show();
+ else
+ _countdownWidget->hide();
+}
+
+/** Get current time */
+int KQuestion::getCurrentTime()
+{
+ return _totalCount - _currentCount;
+}