You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kstars/kstars/timeunitbox.cpp

96 lines
2.7 KiB

/***************************************************************************
timeunitbox.cpp - description
-------------------
begin : Sat Apr 27 2002
copyright : (C) 2002 by Jason Harris
email : kstars@30doradus.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 <stdlib.h>
#include <kdebug.h>
#include "timeunitbox.h"
#include "timeunitbox.moc"
#include <tqpushbutton.h>
TimeUnitBox::TimeUnitBox(TQWidget *parent, const char *name, bool daysonly )
: TQVBox( parent, name ) {
UpButton = new TQPushButton( "+", this );
UpButton->setMaximumWidth( 22 );
UpButton->setMaximumHeight( 10 );
DownButton = new TQPushButton( "-", this );
DownButton->setMaximumWidth( 22 );
DownButton->setMaximumHeight( 10 );
setDaysOnly( daysonly );
connect( UpButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( increase() ) );
connect( DownButton, TQT_SIGNAL( clicked() ), this, TQT_SLOT( decrease() ) );
}
TimeUnitBox::~TimeUnitBox(){
}
void TimeUnitBox::setDaysOnly( bool daysonly ) {
if ( daysonly ) {
setMinValue( 1-DAYUNITS );
setMaxValue( DAYUNITS-1 );
setValue( 1 ); // Start out with days units
UnitStep[0] = 0;
UnitStep[1] = 1;
UnitStep[2] = 5;
UnitStep[3] = 8;
UnitStep[4] = 14;
} else {
setMinValue( 1-ALLUNITS );
setMaxValue( ALLUNITS-1 );
setValue( 1 ); // Start out with seconds units
UnitStep[0] = 0;
UnitStep[1] = 4;
UnitStep[2] = 10;
UnitStep[3] = 16;
UnitStep[4] = 21;
UnitStep[5] = 25;
UnitStep[6] = 28;
UnitStep[7] = 34;
}
}
void TimeUnitBox::increase() {
if ( value() < maxValue() ) {
setValue( value()+1 );
emit valueChanged( value() );
}
}
void TimeUnitBox::decrease() {
if ( value() > minValue() ) {
setValue( value()-1 );
emit valueChanged( value() );
}
}
int TimeUnitBox::unitValue() {
int uval;
if ( value() >= 0 ) uval = UnitStep[ value() ];
else uval = -1*UnitStep[ abs( value() ) ];
return uval;
}
int TimeUnitBox::getUnitValue( int val ) {
if ( val >= 0 ) return UnitStep[ val ];
else return -1*UnitStep[ abs( val ) ];
}