author | llornkcor <llornkcor> | 2004-04-08 22:02:23 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2004-04-08 22:02:23 (UTC) |
commit | 3ff6546b780c2c74994e21bdd749379be064c979 (patch) (side-by-side diff) | |
tree | 864c4ce441cf553de031da4e942247ceeaa130d1 | |
parent | c1ffd357ea7e8632f97c6974e86677946d22d816 (diff) | |
download | opie-3ff6546b780c2c74994e21bdd749379be064c979.zip opie-3ff6546b780c2c74994e21bdd749379be064c979.tar.gz opie-3ff6546b780c2c74994e21bdd749379be064c979.tar.bz2 |
add kilos/pound combo
-rw-r--r-- | noncore/apps/opie-bartender/bac.cpp | 33 | ||||
-rw-r--r-- | noncore/apps/opie-bartender/bac.h | 4 |
2 files changed, 26 insertions, 11 deletions
diff --git a/noncore/apps/opie-bartender/bac.cpp b/noncore/apps/opie-bartender/bac.cpp index c97a253..2e74029 100644 --- a/noncore/apps/opie-bartender/bac.cpp +++ b/noncore/apps/opie-bartender/bac.cpp @@ -1,171 +1,184 @@ /**************************************************************************** ** ** Created: Sun Jul 21 19:00:14 2002 ** by: L.J. Potter <ljp@llornkcor.com> ** copyright : (C) 2002 by ljp email : ljp@llornkcor.com * 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 "bac.h" #include <qcombobox.h> #include <qlabel.h> #include <qlcdnumber.h> #include <qpushbutton.h> #include <qspinbox.h> #include <qlayout.h> BacDialog::BacDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) : QDialog( parent, name, modal, fl ) { if ( !name ) setName( "BacDialog" ); setCaption( tr( "Blood Alcohol Estimator" ) ); Layout7 = new QVBoxLayout( this); Layout7->setSpacing( 6 ); Layout7->setMargin( 0 ); Layout1 = new QHBoxLayout; Layout1->setSpacing( 6 ); Layout1->setMargin( 0 ); NumberSpinBox = new QSpinBox( this, "NumberSpinBox" ); Layout1->addWidget( NumberSpinBox ); TextLabel1 = new QLabel(this, "TextLabel1" ); - TextLabel1->setText( tr( "Number of Drinks Consumed" ) ); + TextLabel1->setText( tr( "# Drinks Consumed" ) ); Layout1->addWidget( TextLabel1 ); Layout7->addLayout( Layout1 ); Layout2 = new QHBoxLayout; Layout2->setSpacing( 6 ); Layout2->setMargin( 0 ); WeightSpinBox = new QSpinBox( this, "WeightSpinBox" ); Layout2->addWidget( WeightSpinBox ); WeightSpinBox->setMaxValue(500); TextLabel2 = new QLabel( this, "TextLabel2" ); TextLabel2->setText( tr( "Weight" ) ); Layout2->addWidget( TextLabel2 ); Layout7->addLayout( Layout2 ); + weightUnitsCombo =new QComboBox( FALSE, this, "unitComboBox" ); + weightUnitsCombo->insertItem( tr( "Kilos" ) ); + weightUnitsCombo->insertItem( tr( "Pounds" ) ); + Layout2->addWidget( weightUnitsCombo ); + + weightUnitsLabel = new QLabel(this, "unitsTextLabel" ); + weightUnitsLabel->setText( tr( "Units" ) ); + Layout2->addWidget( weightUnitsLabel ); + Layout3 = new QHBoxLayout; Layout3->setSpacing( 6 ); Layout3->setMargin( 0 ); TimeSpinBox = new QSpinBox( this, "TimeSpinBox" ); Layout3->addWidget( TimeSpinBox ); TimeSpinBox->setMaxValue(24); TextLabel3 = new QLabel( this, "TextLabel3" ); TextLabel3->setText( tr( "Period of Time (hours)" ) ); Layout3->addWidget( TextLabel3 ); Layout7->addLayout( Layout3 ); Layout4 = new QHBoxLayout; Layout4->setSpacing( 6 ); Layout4->setMargin( 0 ); GenderComboBox = new QComboBox( FALSE, this, "GenderComboBox" ); GenderComboBox->insertItem( tr( "Male" ) ); GenderComboBox->insertItem( tr( "Female" ) ); GenderComboBox->insertItem( tr( "Unknown" ) ); Layout4->addWidget( GenderComboBox ); TextLabel4 = new QLabel( this, "TextLabel4" ); TextLabel4->setText( tr( "Gender" ) ); Layout4->addWidget( TextLabel4 ); Layout7->addLayout( Layout4 ); Layout6 = new QHBoxLayout; Layout6->setSpacing( 6 ); Layout6->setMargin( 0 ); TypeDrinkComboBox = new QComboBox( FALSE,this, "TypeDrinkComboBox" ); TypeDrinkComboBox->insertItem( tr( "Beer" ) ); TypeDrinkComboBox->insertItem( tr( "Wine" ) ); TypeDrinkComboBox->insertItem( tr( "Shot" ) ); Layout6->addWidget( TypeDrinkComboBox ); TextLabel1_2 = new QLabel( this, "TextLabel1_2" ); TextLabel1_2->setText( tr( "Type of drink" ) ); Layout6->addWidget( TextLabel1_2 ); Layout7->addLayout( Layout6 ); PushButton1 = new QPushButton( this, "PushButton1" ); PushButton1->setText( tr( "Calculate" ) ); Layout7->addWidget( PushButton1 ); connect(PushButton1,SIGNAL( clicked()), this, SLOT( calculate())); LCDNumber1 = new QLCDNumber( this, "LCDNumber1" ); LCDNumber1->setMaximumHeight( 50); LCDNumber1->setNumDigits(6); LCDNumber1->setSmallDecimalPoint(TRUE); LCDNumber1->setFrameStyle(QFrame::Box); LCDNumber1->setLineWidth(2); LCDNumber1->setSegmentStyle( QLCDNumber::Filled); QPalette palette = LCDNumber1->palette(); palette.setColor(QPalette::Normal, QColorGroup::Foreground, Qt::red); palette.setColor(QPalette::Normal, QColorGroup::Light, Qt::black); palette.setColor(QPalette::Normal, QColorGroup::Dark, Qt::darkGreen); LCDNumber1->setPalette(palette); - Layout7->addWidget( LCDNumber1 ); - - + NumberSpinBox->setFocus(); } -BacDialog::~BacDialog() { -} +BacDialog::~BacDialog() +{} + +void BacDialog::calculate() +{ -void BacDialog::calculate() { float weight,genderDiff, bac, typeDrink=0, drinkOz=0, bodyWater, milliliters, oz, gram, gramsMil, alc, metab, bac1; + float weightunitDifference, massunitdiff; QString estBac; if( GenderComboBox->currentItem()==0) genderDiff = .58; else genderDiff = .49; switch(TypeDrinkComboBox->currentItem()) { case 0: { //beer typeDrink = .045; drinkOz = 12; } break; case 1: { typeDrink = .2; drinkOz = 4; } break; case 2: { typeDrink = .5; drinkOz = 1.5; } break; }; - weight = WeightSpinBox->value() / 2.2046; // in kilograms + + if( weightUnitsCombo->currentItem() == 0 ) { + weight = WeightSpinBox->value(); // kilos + } else { + weight = WeightSpinBox->value() / 2.2046; // convert to kilograms + } bodyWater = weight * genderDiff; milliliters = bodyWater * 1000; oz = 23.36/milliliters; gram = oz * .806; gramsMil = gram * 100; alc = drinkOz*NumberSpinBox->value() * typeDrink; metab = TimeSpinBox->value() * .012; bac1 = gramsMil * alc; bac = bac1 - metab; - - // weightDrink= (nDrinks * .79) / (weight * genderDiff*1000); // (ounces * percent * 0.075 / weight) - (hours * 0.015); // bac = (((weightDrink * .806) * 100) * .54);// - (time * .012); // assuming beer of 4.5% estBac.sprintf("%f",bac); LCDNumber1->display(bac); // BACTextLabel->setText(estBac ); } diff --git a/noncore/apps/opie-bartender/bac.h b/noncore/apps/opie-bartender/bac.h index 9245c96..43c7035 100644 --- a/noncore/apps/opie-bartender/bac.h +++ b/noncore/apps/opie-bartender/bac.h @@ -1,58 +1,60 @@ /**************************************************************************** ** Created: Sun Jul 21 18:59:50 2002 ** by: L.J. Potter <ljp@llornkcor.com> ** copyright : (C) 2002 by ljp email : ljp@llornkcor.com * 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. * ***************************************************************************/ #ifndef BACDIALOG_H #define BACDIALOG_H #include <qvariant.h> #include <qdialog.h> class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QComboBox; class QLCDNumber; class QLabel; class QPushButton; class QSpinBox; class BacDialog : public QDialog { Q_OBJECT public: BacDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~BacDialog(); QSpinBox* NumberSpinBox; QLabel* TextLabel1; QSpinBox* WeightSpinBox; QLabel* TextLabel2; QSpinBox* TimeSpinBox; QLabel* TextLabel3; QComboBox* GenderComboBox; QLabel* TextLabel4; QComboBox* TypeDrinkComboBox; QLabel* TextLabel1_2; QPushButton* PushButton1; QLCDNumber* LCDNumber1; - + QComboBox *weightUnitsCombo; + QLabel *weightUnitsLabel; protected: QVBoxLayout* Layout7; QHBoxLayout* Layout1; QHBoxLayout* Layout2; QHBoxLayout* Layout3; QHBoxLayout* Layout4; QHBoxLayout* Layout6; + protected slots: void calculate(); }; #endif // BACDIALOG_H |