summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/picker.cpp
authortux_mike <tux_mike>2002-04-17 19:45:48 (UTC)
committer tux_mike <tux_mike>2002-04-17 19:45:48 (UTC)
commitc2c343110573bd8b4d59fbff577969ff23d5c544 (patch) (side-by-side diff)
tree79cff133d04fa7df83783482e27557191ee2e199 /core/pim/addressbook/picker.cpp
parentb94bcfb586b838885d7d0503623ea36ee0054464 (diff)
downloadopie-c2c343110573bd8b4d59fbff577969ff23d5c544.zip
opie-c2c343110573bd8b4d59fbff577969ff23d5c544.tar.gz
opie-c2c343110573bd8b4d59fbff577969ff23d5c544.tar.bz2
Added preliminary version of the Picker
Diffstat (limited to 'core/pim/addressbook/picker.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/picker.cpp234
1 files changed, 234 insertions, 0 deletions
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
new file mode 100644
index 0000000..06dcc7d
--- a/dev/null
+++ b/core/pim/addressbook/picker.cpp
@@ -0,0 +1,234 @@
+#include "picker.h"
+
+#include <qfont.h>
+#include <qstring.h>
+#include <qtimer.h>
+#include <qlayout.h>
+
+char PickerLabel::lastLetter = '\0';
+
+PickerLabel::PickerLabel( QWidget *parent, const char *name )
+ : QLabel ( parent, name )
+{
+ currentLetter = 0;
+ //lastLetter = 0;
+
+ letter1 = '\0';
+ letter2 = '\0';
+ letter3 = '\0';
+
+ setFont( QFont( "smallsmooth", 9 ) );
+ setTextFormat( Qt::RichText );
+
+}
+
+PickerLabel::~PickerLabel()
+{
+
+}
+
+void PickerLabel::setLetters( char ch1, char ch2, char ch3 )
+{
+ QString tmpStr;
+
+ if (ch1 != '\0')
+ letter1 = ch1;
+ else
+ letter1 = ' ';
+
+ if (ch2 != '\0')
+ letter2 = ch2;
+ else
+ letter2 = ' ';
+
+ if (ch3 != '\0')
+ letter3 = ch3;
+ else
+ letter3 = ' ';
+
+ tmpStr = "<qt>";
+ tmpStr += letter1;
+ tmpStr += letter2;
+ tmpStr += letter3;
+ tmpStr += "</qt>";
+
+ setText(tmpStr);
+
+ currentLetter = 0;
+
+}
+
+void PickerLabel::clearLetter()
+{
+
+ QString tmpStr;
+
+ tmpStr = "<qt>";
+ tmpStr += letter1;
+ tmpStr += letter2;
+ tmpStr += letter3;
+ tmpStr += "</qt>";
+
+ setText(tmpStr);
+
+ currentLetter = 0;
+
+}
+
+void PickerLabel::mouseReleaseEvent( QMouseEvent *e )
+{
+ QString tmpStr;
+
+ if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3)
+ QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
+
+ qDebug( "a" );
+ switch (currentLetter) {
+ case 0:
+ tmpStr = "<qt><font color=\"#7F0000\">";
+ tmpStr += letter1;
+ tmpStr += "</font>";
+ tmpStr += letter2;
+ tmpStr += letter3;
+ tmpStr += "</qt>";
+
+ setText(tmpStr);
+
+ currentLetter++;
+ lastLetter = letter1;
+ emit selectedLetter( letter1 );
+ qDebug( "PickerLabel::mouseReleaseEvent %c", letter1 );
+ break;
+
+ case 1:
+ tmpStr = "<qt>";
+ tmpStr += letter1;
+ tmpStr += "<font color=\"#7F0000\">";
+ tmpStr += letter2;
+ tmpStr += "</font>";
+ tmpStr += letter3;
+ tmpStr += "</qt>";
+
+ setText(tmpStr);
+
+ currentLetter++;
+ lastLetter = letter2;
+ emit selectedLetter( letter2 );
+ qDebug( "PickerLabel::mouseReleaseEvent %c", letter2 );
+ break;
+
+ case 2:
+ tmpStr = "<qt>";
+ tmpStr += letter1;
+ tmpStr += letter2;
+ tmpStr += "<font color=\"#7F0000\">";
+ tmpStr += letter3;
+ tmpStr += "</font></qt>";
+
+ setText(tmpStr);
+
+ currentLetter++;
+ lastLetter = letter3;
+ emit selectedLetter( letter3 );
+ qDebug( "PickerLabel::mouseReleaseEvent %c", letter3 );
+ break;
+
+ default:
+ clearLetter();
+ lastLetter = '\0';
+ emit selectedLetter( '\0' );
+
+
+ }
+}
+
+void PickerLabel::emitClearSignal() {
+ emit clearAll();
+}
+
+LetterPicker::LetterPicker( QWidget *parent, const char *name )
+ : QFrame( parent, name )
+{
+ QHBoxLayout *l = new QHBoxLayout(this);
+
+ lblABC = new PickerLabel( this );
+ l->addWidget( lblABC );
+
+ lblDEF = new PickerLabel( this );
+ l->addWidget( lblDEF );
+
+ lblGHI = new PickerLabel( this );
+ l->addWidget( lblGHI );
+
+ lblJKL = new PickerLabel( this );
+ l->addWidget( lblJKL );
+
+ lblMNO = new PickerLabel( this );
+ l->addWidget( lblMNO );
+
+ lblPQR = new PickerLabel( this );
+ l->addWidget( lblPQR );
+
+ lblSTU = new PickerLabel( this );
+ l->addWidget( lblSTU );
+
+ lblVWX = new PickerLabel( this );
+ l->addWidget( lblVWX );
+
+ lblYZ = new PickerLabel( this );
+ l->addWidget( lblYZ );
+
+ lblABC->setLetters( 'A', 'B', 'C' );
+ lblDEF->setLetters( 'D', 'E', 'F' );
+ lblGHI->setLetters( 'G', 'H', 'I' );
+ lblJKL->setLetters( 'J', 'K', 'L' );
+ lblMNO->setLetters( 'M', 'N', 'O' );
+ lblPQR->setLetters( 'P', 'Q', 'R' );
+ lblSTU->setLetters( 'S', 'T', 'U' );
+ lblVWX->setLetters( 'V', 'W', 'X' );
+ lblYZ->setLetters( 'Y', 'Z', '#' );
+
+ connect(lblABC, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblDEF, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblGHI, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblJKL, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblMNO, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblPQR, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblSTU, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblVWX, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblYZ, SIGNAL(selectedLetter(char)), this, SLOT(newLetter(char)));
+ connect(lblABC, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblDEF, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblGHI, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblJKL, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblMNO, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblPQR, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblSTU, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblVWX, SIGNAL(clearAll()), this, SLOT(clear()));
+ connect(lblYZ, SIGNAL(clearAll()), this, SLOT(clear()));
+
+}
+
+LetterPicker::~LetterPicker()
+{
+}
+
+void LetterPicker::clear()
+{
+ lblABC->clearLetter();
+ lblDEF->clearLetter();
+ lblGHI->clearLetter();
+ lblJKL->clearLetter();
+ lblMNO->clearLetter();
+ lblPQR->clearLetter();
+ lblSTU->clearLetter();
+ lblVWX->clearLetter();
+ lblYZ->clearLetter();
+}
+
+void LetterPicker::newLetter( char letter )
+{
+ qDebug( "LetterPicker::newLetter %c", letter );
+ emit letterClicked( letter );
+
+}