1
/***************************************************************************
2
knutdock.h - description
4
begin : �t zari 23 2003
5
copyright : (C) 2003 by Daniel Prynych
6
email : Daniel.Prynych@alo.cz
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
21
#include "knutupsdata.h"
22
#include "knutvardata.h"
23
#include "knutconst.h"
26
#include <ksystemtray.h>
27
#include <kpopupmenu.h>
37
* This class makes icons in dock.
38
* Tato trida zajistuje vytvoreni icony v docku.
40
* @author Daniel Prynych
44
class KNutDock : public KSystemTray {
48
enum KNTDconst { DefaultToolTipFlags = 0x398};
52
idle, // ups isn't connected
53
connecting, // ups is connecting
54
ok, // ups is connected
55
error // error of connecting
58
enum eTypeOfIcons { pictureKI = 0, generalKI};
62
TTMFR = 0x8, // 8, // FRM
63
TTModel = 0x10, // 16, // Model
64
TTSerial = 0x20, // 32, // Serial
65
TTFirm = 0x40, //64, // Firmware Revision
66
TTRun = 0x80,// 128, // Runtime
67
TTCharge = 0x100, // 256, // Charge
68
TTLoad = 0x200 // 512 // Load
75
* Constructor - makes icon in dockbar.
76
* Konstruktor - vytvori iconu v docku.
78
* @param tActiveUpsInfo odkaz na structuru upsInfo
79
* @param tActiveUpsInfo pointer to structure upsInfo
80
* @param tSettingData odkaz na strukturu typu SettingDataDef
81
* @param tSettingData pointer to structure type of SettingDataDef
82
* @param tUpsRecord odkaz na instanci tridy tActiveUpsInfo
83
* @param tUpsRecord pointer to class tActiveUpsInfo
86
KNutDock(struct upsInfo* tActiveUpsInfo, SettingDataDef* tSettingData, KNutUpsData* tUpsRecords);
97
* Nastavi zakladni nastaveni pro dock.
98
* Sets basic setting for dock.
102
void clearDockValues(void);
106
* Vytvori menu (seznam) UPS.
107
* Makes menu (list) of UPS.
111
void changeUps(void);
115
* Zmeni styl/typ icon
116
* Changes style/type of icon
120
void changeKIcon (void);
123
* Zmeni pozadi icony v kickeru
124
* Changes background of icon in kicker
128
void changeKIBColor(void);
132
* Zmeni prvky v tooltip-u
133
* Changes items in toolTip
137
void changeToolTip(void);
140
* Provede nove zpracovani dat a jejich nakresli iconu docku, interni repaint je volan vzdy.
141
* Tato funkce take vola funkci ToolTip.
142
* Makes new processing of data and paints icons of dock, internal repaint is colled always.
143
* This function calls function ToolTips too.
144
* @param always Kdyz je true prorovede vykresleni vzdy, kde je false provede vykresleni jen kdyz je zmenena nejaka hodnota UPS.
145
* @param always When param is true, icon is made always, is one is false icon is makeing when same UPS's value is changed.
149
void repaintDock ( const bool always = false);
154
* Nastavi v Menu oznaceni pro aktivni UPS.
155
* Sets mark for active UPS in menu.
159
void setNewUPS(void);
165
/**This signal is emited when end of application was selected in menu.
166
* Tento signal je vyslan pokud bylo vybrano v menu ukonceni aplikace.
171
void endApplication(void);
174
* Tento signal je vyslan pokud bylo vybrano v menu minimalizace aplikace.
175
* Tento signal is emited when minimize application was selected in menu.
183
* Tento signal je vyslan pokud bylo vybrano v menu polozka preferences.
184
* This signal is emited when item preferences was selected in menu.
188
void preferences(void);
193
* Tento signal je vyslan pokud byla vybrana activace hlavniho okna (Main Window).
197
void activeMainWindow(void);
201
* Tento signal je vyslan pokud bylo vybrano zobrazeni promennych;
202
* This signal is emited when showing values was selected.
206
void printUPSVars(void);
209
* Tento signal je vyslan pokud bylo vybrano provedeni okamziteho prikazu;
210
* This signal is emited when running instant command was selected.
214
void instComms(void);
217
* Tento signal je vyslan pokud bylo vybrana zmena RW promennych.
218
* This signal is emited when change of RW values was selected.
225
* Tento signal je vyslan pokud bylo vybrana zmena RW promennych.
226
* This signal is emited when refresh connection was selected
230
void makeRefreshConnection(void);
234
* Tento signal je vyslan pokud je vybrana nova UPS;
235
* This signal is emited when new UPS is selected
239
void UPSChanged(QString name);
244
virtual void mousePressEvent(QMouseEvent *e);
248
* Vola proceduru KAboutApplication, zobrazi informace o teto aplikaci a KDE.
249
* Calls procedure KAboutApplication, shows informations about this application and KDE.
253
void slotShowMyAbout();
254
void slotExitApplication (void);
258
* Vysle signal minimize.
259
* Sends signal minimize.
263
void slotMinimize (void);
268
* Vysle signal peferences.
269
* Sends signal preferences.
273
void slotPreferences (void);
277
* Vysle signal printUPSVars.
278
* Sends signal printUPSVars.
282
void slotPrintUPSVars(void);
286
* Vysle signal instComms.
287
* Sends signal instComms.
291
void slotInstComms(void);
296
* Vysle signal RWVars.
297
* Sends signal RWVars.
301
void slotRWVars(void);
305
* Vysle signal upsName
306
* Sends signal upsName.
310
void slotUpsName(int i);
314
* Vysle signal makeRefreshConnection
315
* Sends signal makeRefreshConnection.
319
void slotRefreshConnection(void);
325
* Nastavi vse pro vykresleni zakladni ikony.
326
* Tato ikona je kreslena dokud neni navazano spojeni
327
* Sets all for painting of basic icon.
328
* This icon is painted
332
void initImage(void);
343
void toolTip (int runtime, int status, int batteryCharge, int upsLoad );
348
* Vytvori a hlavni menu panelu.
349
* Makes a main menu of panel
353
void createMainMenu(void);
357
* Vytvori a podmenu pro seznam UPS-ek.
358
* Makes a submenu for list ig UPSes.
362
void createUpsMenu(void);
368
* @param number je hodnota cisla.
369
* @param x je leva souradnice cisla
370
* @param y je horni souradnice cisla
371
* @param p je ukazatel na painter
375
void paintNumbers (int numbers, int x, int y, QPainter* p ); //x,y levy horni roh cisla 1
381
* @param number je hodnota cislice.
382
* @param x je leva souradnice cislice
383
* @param y je horni souradnice cislice
384
* @param p je ukazatel na painter
388
void paintNumber (int x, int y, int number, QPainter *p);
394
* @param x je leva souradnice cislice
395
* @param y je horni souradnice cislice
396
* @param p je ukazatel na painter
397
* @param char je vykreslovany znak.
401
void paintChar (int x, int y, char LCDChar, QPainter *p);
407
* @param x je leva souradnice pomlcky
408
* @param y je horni souradnice pomlcky
409
* @param p je ukazatel na painter
413
void paintDash (int x, int y, QPainter *p);
418
* Paints runtime layer.
419
* Vykresli vrstvu runtime.
423
void paintRuntime (int runtime, int status);
427
* Paints layer for UPS Load
428
* Vykresli vrstvu pro UPS Load.
432
void paintLoad (int load );
436
* Paints layer for Battery Charge, only for type general.
437
* Vykresli vrstvu pro Battery Charge.
441
void paintCharge (int charge );
445
* Paints layer for UPS Status, only for type general
446
* Vykresli vrstvu pro UPS Status.
450
void paintStatus (int status );
453
void paintEvent (QPaintEvent *);
457
* Paints green point into main layer, only for type picture.
458
* Vykresli do hlavni vrstvy zeleny bod.
459
* Ma vyznam jen pro typ picture.
463
void paintErrorPoint ( QPainter& paint );
467
* Paints red point into main layer, only for type picture.
468
* Vykresli do hlavni vrstvy cerveny bod.
469
* Ma vyznam jen pro typ picture.
473
void paintOKPoint ( QPainter& paint );
477
* Clean internal variables this class.
478
* Vycisti interni promene teto tridy.
482
void clearValues(void);
485
KNutUpsData* m_upsRecords;
486
SettingDataDef* m_settingData; // v teto strukture jsou ulozeny promene ktere nastavuji konfiguraci
487
struct upsInfo* m_activeUpsInfo; // values for selected ups
491
QPixmap m_connectPix;
495
QPixmap m_mainLayer1;
497
QColor backgroundColor;
500
KPopupMenu* m_upsServerMenu;
502
QPixmap *m_statusLayer;
503
QPixmap *m_runtimeLayer;
504
QPixmap *m_loadLayer;
505
QPixmap *m_chargeLayer;
506
QPixmap *m_mainLayer;
510
int m_batteryChargeValue;
512
int m_statusBatValue;
513
int m_statusWarningValue;
516
upsConnection m_dataOk; // selects one from four type of icons's view //idle, connecting, connected, error
517
upsConnection m_dataOkOld;
521
unsigned int m_toolTipFlags;