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);
}