Source Code (Use browser search to find items of interest.)
Class Index
ktop'MultiMeter (./kdeutils/ktop/gui/MultiMeter.h:37)
class MultiMeter : public QWidget
{
Q_OBJECT
public:
MultiMeter(QWidget* parent = 0, const char* name = 0, int min = 0,
int max = 100);
~MultiMeter()
{
delete gm;
}
bool addMeter(const QString& name, QColor col);
void updateValues(int v0 = 0, int v1 = 0, int v2 = 0, int v3 = 0,
int v4 = 0);
virtual QSize sizeHint(void);
private:
// the number of meters displayed in this multi meter
int meters;
int digits;
QGridLayout* gm;
QList<QLabel> meterLabel;
QList<QLCDNumber> meterLcd;
} ;
ktop'MultiMeter::MultiMeter() (./kdeutils/ktop/gui/MultiMeter.cc:36)
MultiMeter::MultiMeter(QWidget* parent, const char* name, int minVal,
int maxVal)
: QWidget(parent, name)
{
meters = 0;
digits = (int) log10(QMAX(abs(minVal), abs(maxVal))) + 1;
if (minVal < 0)
digits++;
meterLabel.setAutoDelete(true);
gm = new QGridLayout(this, 1, 2);
}
bool
ktop'MultiMeter::addMeter() (./kdeutils/ktop/gui/MultiMeter.cc:51)
MultiMeter::addMeter(const QString& name, QColor col)
{
delete gm;
gm = new QGridLayout(this, ++meters, 2, GMBorder);
QLabel* lab = new QLabel(name, this);
meterLabel.append(lab);
QLCDNumber* lcd = new QLCDNumber(this);
lcd->setMaximumHeight(LCDHeight);
lcd->setMinimumHeight(LCDHeight);
lcd->setMaximumWidth(60);
lcd->setBackgroundColor(col);
lcd->setNumDigits(digits);
meterLcd.append(lcd);
for (int i = 0; i < meters; i++)
{
gm->addWidget(meterLabel.at(i), i, 0);
gm->addWidget(meterLcd.at(i), i, 1);
gm->setRowStretch(i, 1);
}
gm->activate();
return (true);
}
void
ktop'MultiMeter::updateValues() (./kdeutils/ktop/gui/MultiMeter.cc:81)
MultiMeter::updateValues(int v0, int v1, int v2, int v3, int v4)
{
if (meters > 0)
meterLcd.at(0)->display(v0);
if (meters > 1)
meterLcd.at(1)->display(v1);
if (meters > 2)
meterLcd.at(2)->display(v2);
if (meters > 3)
meterLcd.at(3)->display(v3);
if (meters > 4)
meterLcd.at(4)->display(v4);
}
QSize
ktop'MultiMeter::sizeHint() (./kdeutils/ktop/gui/MultiMeter.cc:96)
MultiMeter::sizeHint(void)
{
int maxLab = 0;
int maxLcd = 0;
for (int i = 0; i < meters; i++)
{
if (meterLabel.at(i)->width() > maxLab)
maxLab = meterLabel.at(i)->width();
if (meterLcd.at(i)->width() > maxLcd)
maxLcd = meterLcd.at(i)->width();
}
QSize hint;
hint.setWidth(maxLab + maxLcd + 3 * GMBorder);
hint.setHeight(GMBorder + meters * (GMBorder + LCDHeight));
return (hint);
}