KVIrc 5.2.0
Developer APIs
KviStatusBarApplet.h
Go to the documentation of this file.
1#ifndef _KVI_STATUSBARAPPLET_H_
2#define _KVI_STATUSBARAPPLET_H_
3//=============================================================================
4//
5// File : KviStatusBarApplet.h
6// Creation date : Tue 07 Sep 2004 03:56:46 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2004 Szymon Stefanek <pragma at kvirc dot net>
10// Copyright (C) 2008 Elvio Basello <hellvis69 at netsons dor org>
11//
12// This program is FREE software. You can redistribute it and/or
13// modify it under the terms of the GNU General Public License
14// as published by the Free Software Foundation; either version 2
15// of the License, or (at your option) any later version.
16//
17// This program is distributed in the HOPE that it will be USEFUL,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20// See the GNU General Public License for more details.
21//
22// You should have received a copy of the GNU General Public License
23// along with this program. If not, write to the Free Software Foundation,
24// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25//
26//=============================================================================
27
28#include "kvi_settings.h"
29#include "KviPointerList.h"
30#include "KviHeapObject.h"
31#include "KviStatusBar.h"
32#include "KviPointerHashTable.h"
33#include "KviHttpRequest.h"
34
35#include <QString>
36#include <QStatusBar>
37#include <QLabel>
38#include <QPixmap>
39
40class QTimer;
41class QLabel;
42class QMenu;
44class KviMainWindow;
45class KviIrcContext;
49
50typedef KviStatusBarApplet * (*CreateAppletCallback)(KviStatusBar *, KviStatusBarAppletDescriptor *);
51
53{
54 friend class KviStatusBar;
55 friend class KviStatusBarApplet;
56
57protected:
58 QString m_szVisibleName; // visible name of the applet
59 QString m_szInternalName; // UNIQUE name of the applet
60 QString m_szPreloadModule; // name of the module that must be preloaded for this applet
61 CreateAppletCallback m_pProc; // creation callback
62 QPixmap * m_pIcon;
63 int m_iId;
65
66public:
67 KviStatusBarAppletDescriptor(const QString & szVisibleName,
68 const QString & szInternalName,
70 const QString & szPreloadModule = QString(),
71 const QPixmap & pixIcon = QPixmap());
73
74public:
75 const QString & visibleName() { return m_szVisibleName; };
76 const QString & internalName() { return m_szInternalName; };
77 const QString & preloadModule() { return m_szPreloadModule; };
78 int id() { return m_iId; };
79 QPixmap * icon() { return m_pIcon; };
80protected:
81 KviStatusBarApplet * create(KviStatusBar * pBar);
82 void registerApplet(KviStatusBarApplet * a);
83 void unregisterApplet(KviStatusBarApplet * a);
84};
85
86class KVIRC_API KviStatusBarApplet : public QLabel
87{
88 friend class KviStatusBar;
89 Q_OBJECT
90protected:
93 int mIndex;
94
95public:
98
99public:
100 KviStatusBar * statusBar() { return m_pStatusBar; };
101 KviMainWindow * frame() { return m_pStatusBar->frame(); };
102 KviStatusBarAppletDescriptor * descriptor() { return m_pDescriptor; };
103 void setIndex(int i) { mIndex = i; }
104 int index() const { return mIndex; }
105protected:
106 virtual void fillContextPopup(QMenu *){};
107 virtual void loadState(const char *, KviConfigurationFile *){};
108 virtual void saveState(const char *, KviConfigurationFile *){};
109 virtual QString tipText(const QPoint &);
110};
111
112//this is needed to sort a KviPointerList<KviStatusBarApplet *>
113inline int kvi_compare(const KviStatusBarApplet * p1, const KviStatusBarApplet * p2)
114{
115 return p1->index() > p2->index();
116}
117
119{
121public:
125 {
127 HM
128 };
129
130protected:
131 bool m_bUtc;
132 bool m_b24h;
134
135public:
136 static void selfRegister(KviStatusBar * pBar);
137
138protected:
139 void fillContextPopup(QMenu * p) override;
140 void timerEvent(QTimerEvent * e) override;
141
142 void loadState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
143 void saveState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
144 void adjustMinWidth();
145protected slots:
146 void toggleUtc();
147 void toggle24h();
148 void changeFormat(QAction *);
149};
150
152{
154public:
157
158protected:
160
161protected:
162 void timerEvent(QTimerEvent * e) override;
163 void fillContextPopup(QMenu * p) override;
164 void loadState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
165 void saveState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
166
167public:
168 static void selfRegister(KviStatusBar * pBar);
169protected slots:
170 void toggleTotal();
171};
172
183
185{
187public:
190
191public:
192 static void selfRegister(KviStatusBar * pBar);
193
194protected:
196
197protected:
198 void mouseDoubleClickEvent(QMouseEvent * e) override;
199 QString tipText(const QPoint &) override;
200 void fillContextPopup(QMenu * p) override;
201 void loadState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
202 void saveState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
203protected slots:
204 void updateDisplay();
205 void toggleContext();
206};
207
209{
211public:
214
215public:
216 static void selfRegister(KviStatusBar * pBar);
217
218protected:
219 void mouseDoubleClickEvent(QMouseEvent * e) override;
220 QString tipText(const QPoint &) override;
221protected slots:
222 void updateDisplay();
223};
224
226{
228public:
231 static void selfRegister(KviStatusBar * pBar);
232
233protected:
234 void mouseDoubleClickEvent(QMouseEvent * e) override;
235 QString tipText(const QPoint &) override;
236 void fillContextPopup(QMenu * p) override;
237 void loadState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
238 void saveState(const char * pcPrefix, KviConfigurationFile * pCfg) override;
239 void checkVersion();
240 void getNewVersion();
241protected slots:
242 void updateDisplay();
243 void toggleStartup();
244 void toggleRevision();
245 void responseReceived(const QString &);
246 void requestCompleted(bool status);
247 void binaryDataReceived(const KviDataBuffer &);
248
249private:
258};
259
260#endif //_KVI_STATUSBARAPPLET_H_
Heap Object.
Pointer Hash Table.
C++ Template based double linked pointer list class.
int kvi_compare(const KviStatusBarApplet *p1, const KviStatusBarApplet *p2)
Definition KviStatusBarApplet.h:113
KviStatusBarApplet *(* CreateAppletCallback)(KviStatusBar *, KviStatusBarAppletDescriptor *)
Definition KviStatusBarApplet.h:50
KVIrc Status Bar management.
m_iId
Definition KvsObject_buttonGroup.cpp:62
Definition KviConfigurationFile.h:50
Definition KviDataBuffer.h:31
Definition KviHeapObject.h:125
Definition KviHttpRequest.h:58
An abstraction of a connection to an IRC server.
Definition KviIrcConnection.h:97
Definition KviIrcContext.h:60
Definition KviMainWindow.h:58
A template double linked list of pointers.
Definition KviPointerList.h:371
Definition KviStatusBarApplet.h:53
QString m_szPreloadModule
Definition KviStatusBarApplet.h:60
CreateAppletCallback m_pProc
Definition KviStatusBarApplet.h:61
QPixmap * icon()
Definition KviStatusBarApplet.h:79
QPixmap * m_pIcon
Definition KviStatusBarApplet.h:62
int id()
Definition KviStatusBarApplet.h:78
QString m_szVisibleName
Definition KviStatusBarApplet.h:58
const QString & visibleName()
Definition KviStatusBarApplet.h:75
int m_iId
Definition KviStatusBarApplet.h:63
QString m_szInternalName
Definition KviStatusBarApplet.h:59
const QString & internalName()
Definition KviStatusBarApplet.h:76
KviPointerList< KviStatusBarApplet > * m_pAppletList
Definition KviStatusBarApplet.h:64
const QString & preloadModule()
Definition KviStatusBarApplet.h:77
Definition KviStatusBarApplet.h:87
KviMainWindow * frame()
Definition KviStatusBarApplet.h:101
KviStatusBarAppletDescriptor * m_pDescriptor
Definition KviStatusBarApplet.h:92
void setIndex(int i)
Definition KviStatusBarApplet.h:103
int index() const
Definition KviStatusBarApplet.h:104
virtual void saveState(const char *, KviConfigurationFile *)
Definition KviStatusBarApplet.h:108
KviStatusBarAppletDescriptor * descriptor()
Definition KviStatusBarApplet.h:102
KviStatusBar * m_pStatusBar
Definition KviStatusBarApplet.h:91
int mIndex
Definition KviStatusBarApplet.h:93
KviStatusBar * statusBar()
Definition KviStatusBarApplet.h:100
virtual void fillContextPopup(QMenu *)
Definition KviStatusBarApplet.h:106
virtual void loadState(const char *, KviConfigurationFile *)
Definition KviStatusBarApplet.h:107
Definition KviStatusBarApplet.h:185
QString tipText(const QPoint &) override
Definition KviStatusBarApplet.cpp:216
bool m_bAwayOnAllContexts
Definition KviStatusBarApplet.h:195
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:191
void mouseDoubleClickEvent(QMouseEvent *e) override
Definition KviStatusBarApplet.cpp:199
void updateDisplay()
Definition KviStatusBarApplet.cpp:143
void loadState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:171
void toggleContext()
Definition KviStatusBarApplet.cpp:159
void fillContextPopup(QMenu *p) override
Definition KviStatusBarApplet.cpp:164
void saveState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:177
Definition KviStatusBarApplet.h:119
bool m_b24h
Definition KviStatusBarApplet.h:132
void saveState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:475
void toggle24h()
Definition KviStatusBarApplet.cpp:448
void adjustMinWidth()
Definition KviStatusBarApplet.cpp:380
void changeFormat(QAction *)
Definition KviStatusBarApplet.cpp:455
void timerEvent(QTimerEvent *e) override
Definition KviStatusBarApplet.cpp:399
int m_iType
Definition KviStatusBarApplet.h:133
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:492
void fillContextPopup(QMenu *p) override
Definition KviStatusBarApplet.cpp:417
Format
Definition KviStatusBarApplet.h:125
@ HM
Definition KviStatusBarApplet.h:127
@ HMS
Definition KviStatusBarApplet.h:126
bool m_bUtc
Definition KviStatusBarApplet.h:131
void loadState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:464
void toggleUtc()
Definition KviStatusBarApplet.cpp:442
Definition KviStatusBarApplet.h:152
void toggleTotal()
Definition KviStatusBarApplet.cpp:543
void loadState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:555
void timerEvent(QTimerEvent *e) override
Definition KviStatusBarApplet.cpp:513
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:574
void fillContextPopup(QMenu *p) override
Definition KviStatusBarApplet.cpp:548
bool m_bTotal
Definition KviStatusBarApplet.h:159
void saveState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:561
Definition KviStatusBarApplet.h:209
void mouseDoubleClickEvent(QMouseEvent *e) override
Definition KviStatusBarApplet.cpp:260
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:358
void updateDisplay()
Definition KviStatusBarApplet.cpp:322
QString tipText(const QPoint &) override
Definition KviStatusBarApplet.cpp:278
~KviStatusBarLagIndicator()=default
Definition KviStatusBarApplet.h:174
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:598
Definition KviStatusBarApplet.h:226
void responseReceived(const QString &)
Definition KviStatusBarApplet.cpp:720
bool m_bCheckDone
Definition KviStatusBarApplet.h:253
void updateDisplay()
Definition KviStatusBarApplet.cpp:625
bool m_bUpdateRevision
Definition KviStatusBarApplet.h:257
void binaryDataReceived(const KviDataBuffer &)
Definition KviStatusBarApplet.cpp:731
bool m_bUpdateStatus
Definition KviStatusBarApplet.h:255
void mouseDoubleClickEvent(QMouseEvent *e) override
Definition KviStatusBarApplet.cpp:709
QString tipText(const QPoint &) override
Definition KviStatusBarApplet.cpp:806
void fillContextPopup(QMenu *p) override
Definition KviStatusBarApplet.cpp:645
static void selfRegister(KviStatusBar *pBar)
Definition KviStatusBarApplet.cpp:682
KviHttpRequest * m_pHttpRequest
Definition KviStatusBarApplet.h:250
void loadState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:656
bool m_bCheckFailed
Definition KviStatusBarApplet.h:254
void getNewVersion()
Definition KviStatusBarApplet.cpp:770
void toggleStartup()
Definition KviStatusBarApplet.cpp:633
QString m_szNewVersion
Definition KviStatusBarApplet.h:252
void toggleRevision()
Definition KviStatusBarApplet.cpp:638
void requestCompleted(bool status)
Definition KviStatusBarApplet.cpp:764
void saveState(const char *pcPrefix, KviConfigurationFile *pCfg) override
Definition KviStatusBarApplet.cpp:667
QString m_szHttpResponse
Definition KviStatusBarApplet.h:251
bool m_bUpdateOnStartup
Definition KviStatusBarApplet.h:256
void checkVersion()
Definition KviStatusBarApplet.cpp:689
Status Bar class.
Definition KviStatusBar.h:116
KviMainWindow * frame()
Returns the frame pointer.
Definition KviStatusBar.h:151
#define i
Definition detector.cpp:74
#define e
Definition detector.cpp:70
#define a
Definition detector.cpp:92
#define p
Definition detector.cpp:81
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127