/* -*- C++ -*- */ /**********************************************************************/ /* TimeMon (c) 1994 Helmut Maierhofer */ /* KDE-ified M. Maierhofer 1998 */ /* maintained by Dirk A. Mueller #include #include // -- global constants --------------------------------------------------- const int MAX_MOUSE_ACTIONS = 3; // event handlers for the three buttons only // -- forward declaration ------------------------------------------------ class KSample; class KConfDialog; class TQPaintEvent; class TQMouseEvent; class TQPainter; class KProcess; class KShellProcess; class KHelpMenu; class KPopupMenu; // -- KTimeMon declaration ----------------------------------------------- /* * KTimeMon * * This is the main widget of the application. It handles the configuration * dialog and may have an associated KTimeMonWidget in the panel (in which * case it hides itself). */ class KTimeMon : public KPanelApplet, TQToolTip { Q_OBJECT TQ_OBJECT public: enum MouseAction { NOTHING, SWITCH, MENU, COMMAND }; KTimeMon(const TQString& configFile, Type t = Normal, int actions = 0, TQWidget *tqparent = 0, const char *name = 0); virtual ~KTimeMon(); void writeConfiguration(); // write back the configuration data // reimplemented from KPanelApplet virtual int widthForHeight(int height) const; virtual int heightForWidth(int width) const; virtual void preferences(); void stop(); void cont(); public slots: void timeout(); // timer expired void save(); // session management callback void apply(); // apply configuration information protected: virtual void maybeTip(const TQPoint&); virtual void mousePressEvent(TQMouseEvent *event); virtual void updateConfig(KConfDialog *d); virtual void paintEvent(TQPaintEvent *event); private slots: // called from the menu void configure(); // show the configuration dialog void orientation(); // switch vertical/horizontal orientation void commandStderr(KProcess *proc, char *buffer, int length); private: void runCommand(int index); void paintRect(int x, int y, int w, int h, TQColor c, TQPainter *p); unsigned interval; bool autoScale; unsigned pageScale, swapScale, ctxScale; KPopupMenu* menu; KHelpMenu* hmenu; TQTimer* timer; KConfDialog *configDialog; MouseAction mouseAction[MAX_MOUSE_ACTIONS]; TQString mouseActionCommand[MAX_MOUSE_ACTIONS]; KShellProcess *bgProcess; KSample *sample; TQColor kernelColour, userColour, niceColour, iowaitColour; TQColor usedColour, buffersColour, cachedColour, mkernelColour; TQColor swapColour, bgColour; bool vertical, tooltip; friend class KConfDialog; }; #endif // TIMEMON_H