diff options
Diffstat (limited to 'src/knutdock.h')
-rwxr-xr-x | src/knutdock.h | 525 |
1 files changed, 525 insertions, 0 deletions
diff --git a/src/knutdock.h b/src/knutdock.h new file mode 100755 index 0000000..15fa69c --- /dev/null +++ b/src/knutdock.h @@ -0,0 +1,525 @@ +/*************************************************************************** + knutdock.h - description + ------------------- + begin : Út zari 23 2003 + copyright : (C) 2003 by Daniel Prynych + email : Daniel.Prynych@alo.cz + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 KNUTDOCK_H +#define KNUTDOCK_H + +#include "knutupsdata.h" +#include "knutvardata.h" +#include "knutconst.h" + + +#include <ksystemtray.h> +#include <kpopupmenu.h> + +#include <qobject.h> + + +class QString; +class QPixmap; +class QColor; + +/** + * This class makes icons in dock. + * Tato trida zajistuje vytvoreni icony v docku. + * + * @author Daniel Prynych + * @short Dock's icons + * @version 0.3 + */ +class KNutDock : public KSystemTray { + Q_OBJECT + public: + + enum KNTDconst { DefaultToolTipFlags = 0x398}; + + + enum upsConnection { + idle, // ups isn't connected + connecting, // ups is connecting + ok, // ups is connected + error // error of connecting + }; + + enum eTypeOfIcons { pictureKI = 0, generalKI}; + + + enum toolTipItems { + TTMFR = 0x8, // 8, // FRM + TTModel = 0x10, // 16, // Model + TTSerial = 0x20, // 32, // Serial + TTFirm = 0x40, //64, // Firmware Revision + TTRun = 0x80,// 128, // Runtime + TTCharge = 0x100, // 256, // Charge + TTLoad = 0x200 // 512 // Load + }; + + + + +/** + * Constructor - makes icon in dockbar. + * Konstruktor - vytvori iconu v docku. + * + * @param activeUpsInfo odkaz na structuru upsInfo + * @param activeUpsInfo pointer to structure upsInfo + * @param settingData odkaz na strukturu typu SettingDataDef + * @param settingData pointer to structure type of SettingDataDef + * @param upsRecord odkaz na instanci tridy tActiveUpsInfo + * @param upsRecord pointer to class tActiveUpsInfo + * @since 0.3 + */ + KNutDock(KNutVarData::upsInfoDef* activeUpsInfo, KNutVarData::SettingDataDef* settingData, KNutUpsData* upsRecords); + +/** + * Destruktor. + * + * @since 0.1.2 + **/ + ~KNutDock(); + + +/** + * Nastavi zakladni nastaveni pro dock. + * Sets basic setting for dock. + * + * @since 0.1 + **/ + void clearDockValues(void); + + +/** + * Vytvori menu (seznam) UPS. + * Makes menu (list) of UPS. + * + * @since 0.1 + **/ + void changeUps(void); + + +/** + * Zmeni styl/typ icon + * Changes style/type of icon + * + * @since 0.1 + **/ + void changeKIcon (void); + +/** + * Zmeni pozadi icony v kickeru + * Changes background of icon in kicker + * + * @since 0.2 + **/ + void changeKIBColor(void); + + +/** + * Zmeni prvky v tooltip-u + * Changes items in toolTip + * + * @since 0.1 + **/ + void changeToolTip(void); + +/** + * Provede nove zpracovani dat a jejich nakresli iconu docku, interni repaint je volan vzdy. + * Tato funkce take vola funkci ToolTip. + * Makes new processing of data and paints icons of dock, internal repaint is colled always. + * This function calls function ToolTips too. + * @param always Kdyz je true prorovede vykresleni vzdy, kde je false provede vykresleni jen kdyz je zmenena nejaka hodnota UPS. + * @param always When param is true, icon is made always, is one is false icon is makeing when same UPS's value is changed. + * + * @since 0.4 + **/ + void repaintDock ( const bool always = false); + + + +/** + * Nastavi v Menu oznaceni pro aktivni UPS. + * Sets mark for active UPS in menu. + * + * @since 0.1 + **/ + void setNewUPS(void); + + + + + signals: +/**This signal is emited when end of application was selected in menu. + * Tento signal je vyslan pokud bylo vybrano v menu ukonceni aplikace. + * + * + * @since 0.1 + **/ + void endApplication(void); + +/** + * Tento signal je vyslan pokud bylo vybrano v menu minimalizace aplikace. + * Tento signal is emited when minimize application was selected in menu. + * + * + * @since 0.1 + **/ + void minimize(void); + +/** + * Tento signal je vyslan pokud bylo vybrano v menu polozka preferences. + * This signal is emited when item preferences was selected in menu. + * + * @since 0.1 + **/ + void preferences(void); + + + +/** + * Tento signal je vyslan pokud byla vybrana activace hlavniho okna (Main Window). + * + * @since 0.1 + **/ + void activeMainWindow(void); + + +/** + * Tento signal je vyslan pokud bylo vybrano zobrazeni promennych; + * This signal is emited when showing values was selected. + * + * @since 0.1 + **/ + void printUPSVars(void); + +/** + * Tento signal je vyslan pokud bylo vybrano provedeni okamziteho prikazu; + * This signal is emited when running instant command was selected. + * + * @since 0.1 + **/ + void instComms(void); + +/** + * Tento signal je vyslan pokud bylo vybrana zmena RW promennych. + * This signal is emited when change of RW values was selected. + * + * @since 0.1 + **/ + void RWVars(void); + +/** + * Tento signal je vyslan pokud bylo vybrana zmena RW promennych. + * This signal is emited when refresh connection was selected + * + * @since 0.1 + **/ + void makeRefreshConnection(void); + + +/** + * Tento signal je vyslan pokud je vybrana nova UPS; + * This signal is emited when new UPS is selected + * + * @since 0.1 + **/ + void UPSChanged(QString name); + + + protected slots: + + virtual void mousePressEvent(QMouseEvent *e); + +/** + * @internal + * Vola proceduru KAboutApplication, zobrazi informace o teto aplikaci a KDE. + * Calls procedure KAboutApplication, shows informations about this application and KDE. + * + * @since 0.1 + **/ + void slotShowMyAbout(); + void slotExitApplication (void); + +/** + * @internal + * Vysle signal minimize. + * Sends signal minimize. + * + * @since 0.1 + **/ + void slotMinimize (void); + + +/** + * @internal + * Vysle signal peferences. + * Sends signal preferences. + * + * @since 0.1 + **/ + void slotPreferences (void); + +/** + * @internal + * Vysle signal printUPSVars. + * Sends signal printUPSVars. + * + * @since 0.1 + **/ + void slotPrintUPSVars(void); + +/** + * @internal + * Vysle signal instComms. + * Sends signal instComms. + * + * @since 0.1 + **/ + void slotInstComms(void); + + +/** + * @internal + * Vysle signal RWVars. + * Sends signal RWVars. + * + * @since 0.1 + **/ + void slotRWVars(void); + +/** + * @internal + * Vysle signal upsName + * Sends signal upsName. + * + * @since 0.1 + **/ + void slotUpsName(int i); + +/** + * @internal + * Vysle signal makeRefreshConnection + * Sends signal makeRefreshConnection. + * + * @since 0.1 + **/ + void slotRefreshConnection(void); + + + protected: +/** + * @internal + * Nastavi vse pro vykresleni zakladni ikony. + * Tato ikona je kreslena dokud neni navazano spojeni + * Sets all for painting of basic icon. + * This icon is painted + * + * @since 0.2 + **/ + void initImage(void); + + + +/** + * @internal + * Sets tooltip. + * Nastavi ToolTip. + * + * @since 0.1 + **/ + void toolTip (int runtime, int status, int batteryCharge, int upsLoad ); + + +/** + * @internal + * Vytvori a hlavni menu panelu. + * Makes a main menu of panel + * + * @since 0.1 + **/ + void createMainMenu(void); + +/** + * @internal + * Vytvori a podmenu pro seznam UPS-ek. + * Makes a submenu for list ig UPSes. + * + * @since 0.1 + **/ + void createUpsMenu(void); + +/** + * @internal + * Paints a numbers. + * Vykresli cisla. + * @param number je hodnota cisla. + * @param x je leva souradnice cisla + * @param y je horni souradnice cisla + * @param p je ukazatel na painter + * + * @since 0.2 + **/ + void paintNumbers (int numbers, int x, int y, QPainter* p ); //x,y levy horni roh cisla 1 + +/** + * @internal + * Paints a number + * Vykresli cislici. + * @param number je hodnota cislice. + * @param x je leva souradnice cislice + * @param y je horni souradnice cislice + * @param p je ukazatel na painter + * + * @since 0.1 + **/ + void paintNumber (int x, int y, int number, QPainter *p); + +/** + * @internal + * Paints a char. + * Vykresli znak. + * @param x je leva souradnice cislice + * @param y je horni souradnice cislice + * @param p je ukazatel na painter + * @param char je vykreslovany znak. + * + * @since 0.1 + **/ + void paintChar (int x, int y, char LCDChar, QPainter *p); + + +/** + * @internal + * Vykresli pomlcku. + * @param x je leva souradnice pomlcky + * @param y je horni souradnice pomlcky + * @param p je ukazatel na painter + * + * @since 0.1 + **/ + void paintDash (int x, int y, QPainter *p); + + +/** + * @internal + * Paints runtime layer. + * Vykresli vrstvu runtime. + * + * @since 0.1 + **/ + void paintRuntime (int runtime, int status); + +/** + * @internal + * Paints layer for UPS Load + * Vykresli vrstvu pro UPS Load. + * + * @since 0.2 + **/ + void paintLoad (int load ); + +/** + * @internal + * Paints layer for Battery Charge, only for type general. + * Vykresli vrstvu pro Battery Charge. + * + * @since 0.2 + **/ + void paintCharge (int charge ); + +/** + * @internal + * Paints layer for UPS Status, only for type general + * Vykresli vrstvu pro UPS Status. + * + * @since 0.2 + **/ + void paintStatus (int status ); + + + void paintEvent (QPaintEvent *); + +/** + * @internal + * Paints green point into main layer, only for type picture. + * Vykresli do hlavni vrstvy zeleny bod. + * Ma vyznam jen pro typ picture. + * + * @since 0.3 + **/ + void paintErrorPoint ( QPainter& paint ); + +/** + * @internal + * Paints red point into main layer, only for type picture. + * Vykresli do hlavni vrstvy cerveny bod. + * Ma vyznam jen pro typ picture. + * + * @since 0.3 + **/ + void paintOKPoint ( QPainter& paint ); + +/** + * @internal + * Clean internal variables this class. + * Vycisti interni promene teto tridy. + * + * @since 0.1 + **/ + void clearValues(void); + + + KNutUpsData* m_upsRecords; + KNutVarData::SettingDataDef* m_settingData; // v teto strukture jsou ulozeny promene ktere nastavuji konfiguraci + KNutVarData::upsInfoDef* m_activeUpsInfo; // values for selected ups + + QPixmap m_mainPix; + QPixmap m_errorPix; + QPixmap m_connectPix; + QPixmap m_upsPix; + QPixmap m_battPix; + + QPixmap m_mainLayer1; + + QColor backgroundColor; + + KPopupMenu* m_menu; + KPopupMenu* m_upsServerMenu; + + QPixmap *m_statusLayer; + QPixmap *m_runtimeLayer; + QPixmap *m_loadLayer; + QPixmap *m_chargeLayer; + QPixmap *m_mainLayer; + + int m_runtimeValue; + int m_upsLoadValue; + int m_batteryChargeValue; + int m_statusValue; + int m_statusBatValue; + int m_statusWarningValue; + + + upsConnection m_dataOk; // selects one from four type of icons's view //idle, connecting, connected, error + upsConnection m_dataOkOld; + + int m_typeOfIcon; + QColor m_myBGColor; + unsigned int m_toolTipFlags; + +}; + +#endif |