-rw-r--r-- | noncore/tools/euroconv/calcdisplay.cpp | 40 | ||||
-rw-r--r-- | noncore/tools/euroconv/currency.h | 10 |
2 files changed, 43 insertions, 7 deletions
diff --git a/noncore/tools/euroconv/calcdisplay.cpp b/noncore/tools/euroconv/calcdisplay.cpp index 1659858..898de81 100644 --- a/noncore/tools/euroconv/calcdisplay.cpp +++ b/noncore/tools/euroconv/calcdisplay.cpp @@ -83,134 +83,166 @@ iCurrentLCD = 0; void LCDDisplay::setValue(double dSrcValue){ double dDstValue=0; int iSrcIndex; int iDstIndex; // get item index of the focused if(!iCurrentLCD){ iSrcIndex = cbbxTop->currentItem(); iDstIndex = cbbxBottom->currentItem(); }else{ iSrcIndex = cbbxBottom->currentItem(); iDstIndex = cbbxTop->currentItem(); } if(iSrcIndex == iDstIndex) dDstValue = dSrcValue; else{ if(iSrcIndex){ // we are NOT in Euro as iDstIndex <> 0 // Convert to Euro dDstValue = x2Euro(iSrcIndex, dSrcValue); dDstValue = Euro2x(iDstIndex, dDstValue); }else // We are in Euro dDstValue = Euro2x(iDstIndex, dSrcValue); } if(!iCurrentLCD){ lcdTop->display(dSrcValue); lcdBottom->display(dDstValue); }else{ lcdBottom->display(dSrcValue); lcdTop->display(dDstValue); } } /*********************************************************************** * 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; // get current value if(!iCurrentLCD){ dCurrentValue = lcdTop->value(); }else{ dCurrentValue = lcdBottom->value(); } setValue(dCurrentValue); } /*********************************************************************** * Euro2x converts dValue from Euro to the currency which combo box * index is provided in iIndex. **********************************************************************/ double LCDDisplay::Euro2x(int iIndex, double dValue){ switch (iIndex){ case 0: // Euro return(dValue); break; case 1: // FF: French Francs - return(dValue*FF); + return(dValue*FRF); break; case 2: // DM: Deutch Mark - return(dValue*DM); + return(dValue*DEM); + break; + + case 3: // BEL Belgium Francs + return(dValue*BEF); + break; + + case 4: // ITL Itialian Lire + return(dValue*ITL); + break; + + case 5: // LUF Luxemburg + return(dValue*LUF); + break; + + case 6: // IEP Irish Pound + return(dValue*IEP); 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); + return(dValue/FRF); break; case 2: // DM: Deutch Mark - return(dValue/DM); + return(dValue/DEM); + break; + + case 3: // BEL Belgium Francs + return(dValue/BEF); + break; + + case 4: // ITL Itialian Lire + return(dValue/ITL); + break; + + case 5: // LUF Luxemburg + return(dValue/LUF); + break; + + case 6: // IEP Irish Pound + return(dValue/IEP); break; }//switch (iIndex) // we shouldn't come here return 0; }// fct x2Euro diff --git a/noncore/tools/euroconv/currency.h b/noncore/tools/euroconv/currency.h index d9ee75c..6ca4d09 100644 --- a/noncore/tools/euroconv/currency.h +++ b/noncore/tools/euroconv/currency.h @@ -1,20 +1,24 @@ /**************************************************************************** * * File: currency.h * * Description: define constant for currency compare Euro * * * Authors: Eric Santonacci <Eric.Santonacci@talc.fr> * * * $Id$ * ***************************************************************************/ // 1 Euro equal.... #define EURO 1 // Euro -#define FF 6.55957 // French Francs -#define DM 1.9594 // Deutch Mark +#define FRF 6.55957 // French Francs +#define DEM 1.9594 // Deutch Mark +#define BEF 40.3399 // Belgium Francs +#define ITL 1936.27 // Italian Lire +#define LUF 40.3399 // Luxemburg +#define IEP 0.787564 // Irish Pound -static const char* aCurrency[] = { "Euro", "FF", "DM", 0 }; +static const char* aCurrency[] = { "Euro", "FRF", "DEM", "BEF", "ITL", "LUF", "IEP", 0 }; |