KVIrc 5.2.4
Developer APIs
KviStatusBar.h
Go to the documentation of this file.
1#ifndef _KVI_STATUSBAR_H_
2#define _KVI_STATUSBAR_H_
3//=============================================================================
4//
5// File : KviStatusBar.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-2010 Szymon Stefanek <pragma at kvirc dot net>
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// of the License, or (at your option) any later version.
15//
16// This program is distributed in the HOPE that it will be USEFUL,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
38#include "kvi_settings.h"
39#include "KviHeapObject.h"
40#include "KviPointerHashTable.h"
41#include "KviPointerList.h"
42#include "KviTalHBox.h"
43
44#include <QStatusBar>
45#include <QString>
46
48class KviIrcContext;
49class KviMainWindow;
52class QHelpEvent;
53class QLabel;
54class QMenu;
55class QTimer;
56
57#define VMARGIN 3
58//#define HMARGIN 4
59//#define SPACING 3
60#define RICHTEXTLABELTRICK 2
61
67{
68 friend class KviStatusBar;
69
70protected:
71 QString m_szText;
72 unsigned int m_uTimeout;
73 unsigned int m_uPriority;
74
75public:
83 KviStatusBarMessage(const QString & szText, unsigned int uTimeout = 8000, unsigned int uPriority = 0)
84 : KviHeapObject(), m_szText(szText), m_uTimeout(uTimeout), m_uPriority(uPriority){};
85
90
91public:
96 const QString & text() { return m_szText; };
97
102 unsigned int timeout() { return m_uTimeout; };
103
108 unsigned int priority() { return m_uPriority; };
109};
110
115class KVIRC_API KviStatusBar : public QStatusBar
116{
117 friend class KviStatusBarApplet;
118 friend class KviMainWindow;
119 Q_OBJECT
120public:
126 KviStatusBar(KviMainWindow * pFrame);
127
132
133protected:
145
146public:
151 KviMainWindow * frame() { return m_pFrame; };
152
158 bool appletExists(KviStatusBarApplet * pApplet);
159
170 KviStatusBarApplet * appletAt(const QPoint & pnt, bool bBestMatch = false);
171
172 //QMenu * contextPopup();
173
180 void queueMessage(KviStatusBarMessage * pMsg);
181
187 void registerAppletDescriptor(KviStatusBarAppletDescriptor * d);
188
195 int insertPermanentWidgetAtTheEnd(QWidget * widget, int stretch = 0);
196
197 //void addApplet(KviStatusBarApplet * pApplet);
198 //void removeApplet(KviStatusBarApplet * pApplet);
199protected:
204 void showFirstMessageInQueue();
205
211 void registerApplet(KviStatusBarApplet * pApplet);
212
218 void unregisterApplet(KviStatusBarApplet * pApplet);
219
224 void recalcMinimumHeight();
225
230 void save();
231
236 void load();
237
246 KviStatusBarApplet * createApplet(const QString & szInternalName);
247
252 void showLayoutHelp();
253
262 void tipRequest(QHelpEvent * e);
263protected slots:
271 void messageTimerFired();
272
278 void contextMenuRequested(const QPoint & pos);
279
284 void contextPopupAboutToShow();
285
290 void appletsPopupAboutToShow();
291
297 void appletsPopupActivated(QAction * pAction);
298
303 void removeClickedApplet();
304
311 void setPermanentMessage();
312
313protected:
314 void mousePressEvent(QMouseEvent * e) override;
315 void mouseDoubleClickEvent(QMouseEvent * e) override;
316 bool event(QEvent * e) override;
317 void dropEvent(QDropEvent * de) override;
318 void dragMoveEvent(QDragMoveEvent * de) override;
319 void dragEnterEvent(QDragEnterEvent * event) override;
320};
321
322#endif // _KVI_STATUSBAR_H_
Heap Object.
Pointer Hash Table.
C++ Template based double linked pointer list class.
Class for horizontal box.
Definition KviDynamicToolTip.h:50
Definition KviHeapObject.h:119
Definition KviIrcContext.h:60
Definition KviMainWindow.h:58
A fast pointer hash table implementation.
Definition KviPointerHashTable.h:450
A template double linked list of pointers.
Definition KviPointerList.h:371
Definition KviStatusBarApplet.h:53
Definition KviStatusBarApplet.h:87
A class that hold the statusbar message.
Definition KviStatusBar.h:67
~KviStatusBarMessage()
Destroys the statusbar message object.
Definition KviStatusBar.h:89
unsigned int m_uPriority
Definition KviStatusBar.h:73
KviStatusBarMessage(const QString &szText, unsigned int uTimeout=8000, unsigned int uPriority=0)
Constructs the statusbar message object.
Definition KviStatusBar.h:83
unsigned int timeout()
Returns the timeout of the message.
Definition KviStatusBar.h:102
unsigned int priority()
Returns the priority of the message.
Definition KviStatusBar.h:108
QString m_szText
Definition KviStatusBar.h:71
unsigned int m_uTimeout
Definition KviStatusBar.h:72
const QString & text()
Returns the text of the message.
Definition KviStatusBar.h:96
Status Bar class.
Definition KviStatusBar.h:116
QTimer * m_pMessageTimer
Definition KviStatusBar.h:136
KviStatusBarApplet * m_pClickedApplet
Definition KviStatusBar.h:142
KviPointerList< KviStatusBarMessage > * m_pMessageQueue
Definition KviStatusBar.h:135
bool m_bStopLayoutOnAddRemove
Definition KviStatusBar.h:144
QMenu * m_pAppletsPopup
Definition KviStatusBar.h:141
QMenu * m_pContextPopup
Definition KviStatusBar.h:140
KviPointerList< KviStatusBarApplet > * m_pAppletList
Definition KviStatusBar.h:138
KviPointerHashTable< QString, KviStatusBarAppletDescriptor > * m_pAppletDescriptors
Definition KviStatusBar.h:139
KviMainWindow * m_pFrame
Definition KviStatusBar.h:134
int m_iLastMinimumHeight
Definition KviStatusBar.h:143
QLabel * m_pMessageLabel
Definition KviStatusBar.h:137
KviMainWindow * frame()
Returns the frame pointer.
Definition KviStatusBar.h:151
#define d
Definition detector.cpp:69
#define e
Definition detector.cpp:70
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127