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.
164 lines
5.2 KiB
164 lines
5.2 KiB
|
|
/*************************************************************************** |
|
* * |
|
* KCPULoad and KNetLoad are copyright (c) 1999-2000, Markus Gustavsson * |
|
* (c) 2002, Ben Burton * |
|
* * |
|
* 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 __STATDOCK_H |
|
#define __STATDOCK_H |
|
|
|
#include <tqcolor.h> |
|
#include <ksystemtray.h> |
|
|
|
class StatPopup; |
|
|
|
/** |
|
* A system tray window that displays a recent history of readings. |
|
* A single application might have many of these windows. |
|
* |
|
* Two simultaneous sets of readings are supported; these will be |
|
* referred to as upper and lower readings. When diagram splitting is |
|
* switched on, these readings will be displayed together on the diagram |
|
* with the upper readings shown above the lower readings. When diagram |
|
* splitting is switched off, only the upper readings will be displayed. |
|
* |
|
* The parent window of a StatDock must be a StatPopup, which provides |
|
* all of the actions in this window's context menu. |
|
*/ |
|
class StatDock : public KSystemTray { |
|
Q_OBJECT |
|
|
|
|
|
public: |
|
/** |
|
* Fill style constants. |
|
*/ |
|
static const int fillLines; |
|
static const int fillBars; |
|
static const int fillShaded; |
|
|
|
/** |
|
* Colour constants. |
|
*/ |
|
static const TQColor colorGrid; |
|
static const TQColor colorGridInactive; |
|
static const TQColor colorLabel; |
|
static const TQColor colorLabelInactive; |
|
static const TQColor colorLower; |
|
static const TQColor colorLowerInactive; |
|
static const TQColor colorBlack; |
|
|
|
public: |
|
/** |
|
* Constructor and destructor. |
|
* |
|
* Note that the constructor will call parent->initDock(). |
|
* |
|
* Parameter whichDock must be 0 or 1 to specify whether this dock |
|
* will become dock[0] or dock[1] in the given StatPopup parent. |
|
* Parameter useLabel should contain the label that will be drawn on |
|
* the diagram if labelling is enabled. |
|
*/ |
|
StatDock(int whichDock, const TQString& useLabel, StatPopup *parent, |
|
const char *name = 0); |
|
~StatDock(); |
|
|
|
/** |
|
* Setting display options. |
|
*/ |
|
void setGrid(bool); |
|
void setActive(bool); |
|
void setSoft(bool); |
|
void setSplit(bool); |
|
void setLabelled(bool); |
|
void setLabel(const TQString&); |
|
void setFill(int); |
|
void setColor(const TQColor&); |
|
|
|
public slots: |
|
/** |
|
* Clear the history of recent readings. |
|
* All readings will be reset to zero and the diagram will be |
|
* updated. |
|
*/ |
|
void clearHistory(); |
|
|
|
/** |
|
* Add the given pair of readings as the most recent in our list. |
|
* The diagram will be updated accordingly. |
|
* |
|
* Each argument should be a percentage between 0 and 100. |
|
* The sum of both arguments must not exceed 100. |
|
* |
|
* If diagram splitting is switched off, the given lower reading |
|
* will be ignored completely and 0 will be used instead. |
|
* |
|
* @param upper the upper reading in this pair. |
|
* @param lower the lower reading in this pair. |
|
*/ |
|
void addPercentReading(int upper, int lower); |
|
|
|
private: |
|
/** |
|
* Repaint this system tray window with a fresh diagram. |
|
*/ |
|
void paintEvent(TQPaintEvent*); |
|
|
|
private: |
|
/** |
|
* Display options. |
|
*/ |
|
bool grid; |
|
/**< Should the grid be displayed behind the diagram? */ |
|
bool active; |
|
/**< Is this meter currently active? */ |
|
bool soft; |
|
/**< Are we artificially modifying the readings to produce a |
|
soft curve? */ |
|
bool split; |
|
/**< Are we displaying both upper and lower readings? */ |
|
bool labelled; |
|
/**< Should this diagram be labelled? */ |
|
TQString label; |
|
/**< The specific label to draw on this diagram. */ |
|
int fill; |
|
/**< Specifies which of the predefined fill styles to use. */ |
|
TQColor colorUpper; |
|
/**< Colour for displaying the upper readings. */ |
|
TQColor colorUpperInactive; |
|
/**< Colour for displaying the upper readings whilst the diagram |
|
is inactive. */ |
|
|
|
/** |
|
* Stored readings. |
|
*/ |
|
int* bufUpper; |
|
/**< Stores our list of recent upper readings. |
|
This list begins at index (pos + 1) as the earliest reading |
|
and cycles around to index (pos) as the latest reading. */ |
|
int* bufLower; |
|
/**< Stores our list of recent lower readings. |
|
This list begins at index (pos + 1) as the earliest reading |
|
and cycles around to index (pos) as the latest reading. */ |
|
int pos; |
|
/**< The index in our arrays of the most recent reading. */ |
|
|
|
|
|
/** |
|
* Temporaries. |
|
*/ |
|
int i, j, tmpPos, oldUpper, oldLower; |
|
/**< Temporary variables used during computations. */ |
|
|
|
protected: |
|
void resizeEvent ( TQResizeEvent * ); |
|
}; |
|
|
|
#endif
|
|
|