Diffstat (limited to 'noncore/tools/euroconv/calcdisplay.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/tools/euroconv/calcdisplay.cpp | 50 |
1 files changed, 39 insertions, 11 deletions
diff --git a/noncore/tools/euroconv/calcdisplay.cpp b/noncore/tools/euroconv/calcdisplay.cpp index 06e5158..1659858 100644 --- a/noncore/tools/euroconv/calcdisplay.cpp +++ b/noncore/tools/euroconv/calcdisplay.cpp @@ -6,67 +6,84 @@ * * * Authors: Eric Santonacci <Eric.Santonacci@talc.fr> * * Requirements: Qt * * $Id$ * ***************************************************************************/ #include <stdio.h> #include <qvbox.h> +#include <qpixmap.h> #include "currency.h" #include "calcdisplay.h" LCDDisplay::LCDDisplay( QWidget *parent, const char *name ) : QHBox( parent, name ){ + +this->setMargin(5); +this->setSpacing(5); + // Create display QVBox *vbxlayout = new QVBox (this); -grpbxTop = new QVGroupBox(vbxlayout, "grpbxTop"); +/*************** Top LCD ***********************/ +grpbxTop = new QHGroupBox(vbxlayout, "grpbxTop"); +grpbxStyle = grpbxTop->frameStyle(); +grpbxTop->setMaximumHeight(48); + cbbxTop = new QComboBox(grpbxTop, "cbbxTop"); +cbbxTop->setMaximumWidth(50); +cbbxTop->insertStrList(aCurrency); + lcdTop = new QLCDNumber(10, grpbxTop, "lcdTop"); lcdTop->setMode( QLCDNumber::DEC ); lcdTop->setSmallDecimalPoint(true); lcdTop->setSegmentStyle(QLCDNumber::Flat); -cbbxTop->insertStrList(aCurrency); -grpbxBottom = new QVGroupBox(vbxlayout, "grpbxBottom"); +/************** Bottom LCD ************************/ +grpbxBottom = new QHGroupBox(vbxlayout, "grpbxBottom"); +grpbxBottom->setMaximumHeight(46); +grpbxBottom->setFrameStyle(0); +grpbxBottom->setFrameShadow(QFrame::MShadow); + cbbxBottom = new QComboBox(grpbxBottom, "cbbxBottom"); +cbbxBottom->setMaximumWidth(50); +cbbxBottom->insertStrList(aCurrency); + lcdBottom = new QLCDNumber(10, grpbxBottom, "lcdBottom"); lcdBottom->setMode( QLCDNumber::DEC ); lcdBottom->setSmallDecimalPoint(true); lcdBottom->setSegmentStyle(QLCDNumber::Flat); -cbbxBottom->insertStrList(aCurrency); // set combo box signals connect(cbbxTop, SIGNAL(activated(int)), this, SLOT(cbbxChange())); connect(cbbxBottom, SIGNAL(activated(int)), this, SLOT(cbbxChange())); -btnSwap = new QPushButton("S",this, "swap"); -btnSwap->setMaximumSize(20,50); -btnSwap->setMinimumSize(20,50); +btnSwap = new QPushButton(this, "swap"); +QPixmap imgSwap((const char**) swap_xpm); +btnSwap->setPixmap(imgSwap); +btnSwap->setFixedSize(20,40); // set signal connect(btnSwap, SIGNAL(clicked()), this, SLOT(swapLCD())); // set default LCD to top iCurrentLCD = 0; -//setValue(123.456); - } /*********************************************************************** * SLOT: Display value in the correct LCD **********************************************************************/ void LCDDisplay::setValue(double dSrcValue){ double dDstValue=0; int iSrcIndex; int iDstIndex; @@ -104,43 +121,47 @@ if(!iCurrentLCD){ } /*********************************************************************** * SLOT: Swap output keypad between LCD displays **********************************************************************/ void LCDDisplay::swapLCD(void){ double dCurrentValue; // get current value if(!iCurrentLCD){ + // iCurrentLCD = 0, lcdTop has current focus and is going to loose + // it dCurrentValue = lcdTop->value(); iCurrentLCD = 1; + grpbxTop->setFrameStyle(0); + grpbxBottom->setFrameStyle(grpbxStyle); }else{ dCurrentValue = lcdBottom->value(); iCurrentLCD = 0; + grpbxTop->setFrameStyle(grpbxStyle); + grpbxBottom->setFrameStyle(0); } setValue(dCurrentValue); } /*********************************************************************** * SLOT: Currency change **********************************************************************/ void LCDDisplay::cbbxChange(void){ double dCurrentValue; -printf("combo changes...\n"); - // get current value if(!iCurrentLCD){ dCurrentValue = lcdTop->value(); }else{ dCurrentValue = lcdBottom->value(); } setValue(dCurrentValue); } /*********************************************************************** @@ -152,37 +173,44 @@ double LCDDisplay::Euro2x(int iIndex, double dValue){ switch (iIndex){ case 0: // Euro return(dValue); break; case 1: // FF: French Francs return(dValue*FF); break; case 2: // DM: Deutch Mark return(dValue*DM); break; + + default: + return 0; }//switch (iIndex) }// fct Eur2x /*********************************************************************** * x2Euro converts dValue to Euro from the currency which combo box * index is provided in iIndex. **********************************************************************/ double LCDDisplay::x2Euro(int iIndex, double dValue){ switch (iIndex){ case 0: // Euro return(dValue); break; case 1: // FF: French Francs return(dValue/FF); break; case 2: // DM: Deutch Mark return(dValue/DM); break; }//switch (iIndex) + +// we shouldn't come here +return 0; + }// fct x2Euro |