/* KSysGuard, the KDE System Guard Copyright (c) 2001 Tobias Koenig This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _SensorLogger_h #define _SensorLogger_h #include #include #include #include #include #include #include #include #include "SensorLoggerDlg.h" #define NONE -1 class SensorLoggerSettings; class SLListViewItem : public TQListViewItem { public: SLListViewItem(TQListView *parent = 0); void setTextColor(const TQColor& color) { textColor = color; } void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int tqalignment) { TQColorGroup cgroup(cg); cgroup.setColor(TQColorGroup::Text, textColor); TQListViewItem::paintCell(p, cgroup, column, width, tqalignment); } void paintFocus(TQPainter *, const TQColorGroup, const TQRect) {} private: TQColor textColor; }; class LogSensor : public TQObject, public KSGRD::SensorClient { Q_OBJECT public: LogSensor(TQListView *parent); ~LogSensor(void); void answerReceived(int id, const TQString& answer); void setHostName(const TQString& name) { hostName = name; lvi->setText(3, name); } void setSensorName(const TQString& name) { sensorName = name; lvi->setText(2, name); } void setFileName(const TQString& name) { fileName = name; lvi->setText(4, name); } void setUpperLimitActive(bool value) { upperLimitActive = value; } void setLowerLimitActive(bool value) { lowerLimitActive = value; } void setUpperLimit(double value) { upperLimit = value; } void setLowerLimit(double value) { lowerLimit = value; } void setTimerInterval(int interval) { timerInterval = interval; if (timerID != NONE) { timerOff(); timerOn(); } lvi->setText(1, TQString("%1").arg(interval)); } TQString getSensorName(void) { return sensorName; } TQString getHostName(void) { return hostName; } TQString getFileName(void) { return fileName; } int getTimerInterval(void) { return timerInterval; } bool getUpperLimitActive(void) { return upperLimitActive; } bool getLowerLimitActive(void) { return lowerLimitActive; } double getUpperLimit(void) { return upperLimit; } double getLowerLimit(void) { return lowerLimit; } TQListViewItem* getListViewItem(void) { return lvi; } public slots: void timerOff() { killTimer(timerID); timerID = NONE; } void timerOn() { timerID = startTimer(timerInterval * 1000); } bool isLogging() { return timerID != NONE; } void startLogging(void); void stopLogging(void); protected: virtual void timerEvent(TQTimerEvent*); private: TQListView* monitor; SLListViewItem* lvi; TQPixmap pixmap_running; TQPixmap pixmap_waiting; TQString sensorName; TQString hostName; TQString fileName; int timerInterval; int timerID; bool lowerLimitActive; bool upperLimitActive; double lowerLimit; double upperLimit; }; class SensorLogger : public KSGRD::SensorDisplay { Q_OBJECT public: SensorLogger(TQWidget *parent = 0, const char *name = 0, const TQString& title = 0); ~SensorLogger(void); bool addSensor(const TQString& hostName, const TQString& sensorName, const TQString& sensorType, const TQString& sensorDescr); bool editSensor(LogSensor*); void answerReceived(int id, const TQString& answer); void resizeEvent(TQResizeEvent*); bool restoreSettings(TQDomElement& element); bool saveSettings(TQDomDocument& doc, TQDomElement& element, bool save = true); void configureSettings(void); virtual bool hasSettingsDialog() const { return (true); } public slots: void applySettings(); void applyStyle(); void RMBClicked(TQListViewItem*, const TQPoint&, int); protected: LogSensor* getLogSensor(TQListViewItem*); private: TQListView* monitor; TQPtrList logSensors; SensorLoggerDlg *sld; SensorLoggerSettings *sls; }; #endif // _SensorLogger_h