summaryrefslogtreecommitdiffstats
path: root/src/kvirc/ui/kvi_statusbar.h
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 02:13:59 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-02-24 02:13:59 +0000
commita6d58bb6052ac8cb01805a48c4ad2f129126116f (patch)
treedd867a099fcbb263a8009a9fb22695b87855dad6 /src/kvirc/ui/kvi_statusbar.h
downloadkvirc-a6d58bb6052ac8cb01805a48c4ad2f129126116f.tar.gz
kvirc-a6d58bb6052ac8cb01805a48c4ad2f129126116f.zip
Added KDE3 version of kvirc
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kvirc@1095341 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/kvirc/ui/kvi_statusbar.h')
-rw-r--r--src/kvirc/ui/kvi_statusbar.h130
1 files changed, 130 insertions, 0 deletions
diff --git a/src/kvirc/ui/kvi_statusbar.h b/src/kvirc/ui/kvi_statusbar.h
new file mode 100644
index 00000000..119c93d8
--- /dev/null
+++ b/src/kvirc/ui/kvi_statusbar.h
@@ -0,0 +1,130 @@
+#ifndef _KVI_STATUSBAR_H_
+#define _KVI_STATUSBAR_H_
+//=============================================================================
+//
+// File : kvi_statusbar.h
+// Created on Tue 07 Sep 2004 03:56:46 by Szymon Stefanek
+//
+// This file is part of the KVIrc IRC client distribution
+// Copyright (C) 2004 Szymon Stefanek <pragma at kvirc dot net>
+//
+// 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 opinion) any later version.
+//
+// This program is distributed in the HOPE that it will be USEFUL,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+// See the GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, write to the Free Software Foundation,
+// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+//=============================================================================
+
+#include "kvi_settings.h"
+#include "kvi_pointerlist.h"
+#include "kvi_heapobject.h"
+
+#include <qstring.h>
+#include "kvi_pointerhashtable.h"
+#include <qstatusbar.h>
+
+class KviFrame;
+
+class QTimer;
+class QLabel;
+class KviTalPopupMenu;
+
+class KVIRC_API KviStatusBarMessage : public KviHeapObject
+{
+ friend class KviStatusBar;
+protected:
+ QString m_szText;
+ unsigned int m_uTimeout;
+ unsigned int m_uPriority;
+public:
+ KviStatusBarMessage(const QString &szText,unsigned int uTimeout = 8000,unsigned int uPriority = 0)
+ : KviHeapObject(), m_szText(szText), m_uTimeout(uTimeout), m_uPriority(uPriority) {};
+ ~KviStatusBarMessage(){};
+public:
+ const QString & text(){ return m_szText; };
+ unsigned int timeout(){ return m_uTimeout; };
+ unsigned int priority(){ return m_uPriority; };
+};
+
+
+class KviStatusBarApplet;
+class KviStatusBarAppletDescriptor;
+class KviIrcContext;
+class KviDynamicToolTip;
+
+class KVIRC_API KviStatusBar : public QStatusBar
+{
+ friend class KviStatusBarApplet;
+ friend class KviFrame;
+ Q_OBJECT
+public:
+ KviStatusBar(KviFrame * pFrame);
+ ~KviStatusBar();
+protected:
+ KviFrame * m_pFrame;
+ KviPointerList<KviStatusBarMessage> * m_pMessageQueue;
+ QTimer * m_pMessageTimer;
+ QLabel * m_pMessageLabel;
+ KviPointerList<KviStatusBarApplet> * m_pAppletList;
+ KviPointerHashTable<QString,KviStatusBarAppletDescriptor> * m_pAppletDescriptors;
+ KviTalPopupMenu * m_pContextPopup;
+ KviTalPopupMenu * m_pAppletsPopup;
+ KviStatusBarApplet * m_pClickedApplet;
+ int m_iLastMinimumHeight;
+ bool m_bStopLayoutOnAddRemove;
+ KviDynamicToolTip * m_pToolTip;
+public:
+ KviFrame * frame(){ return m_pFrame; };
+protected slots:
+ void messageTimerFired();
+protected:
+ void showFirstMessageInQueue();
+ virtual void paintEvent(QPaintEvent * e);
+ virtual void mousePressEvent(QMouseEvent * e);
+ virtual void mouseMoveEvent(QMouseEvent * e);
+ virtual void mouseReleaseEvent(QMouseEvent * e);
+ virtual void resizeEvent(QResizeEvent * e);
+ virtual bool event(QEvent * e);
+ void registerApplet(KviStatusBarApplet * a);
+ void unregisterApplet(KviStatusBarApplet * a);
+ void recalcMinimumHeight();
+ void layoutChildren();
+ void updateLayout(){ recalcMinimumHeight(); layoutChildren(); };
+ void save();
+ void load();
+ KviStatusBarApplet * createApplet(const QString &szInternalName);
+ void showLayoutHelp();
+public:
+ bool appletExists(KviStatusBarApplet * pApplet);
+ // pnt is global!
+ KviStatusBarApplet * appletAt(const QPoint &pnt,bool bBestMatch = false);
+
+ KviTalPopupMenu * contextPopup();
+ // takes the ownership of pMsg
+ void queueMessage(KviStatusBarMessage * pMsg);
+ // called by KviFrame
+ void activeWindowChanged();
+
+ void registerAppletDescriptor(KviStatusBarAppletDescriptor * d);
+
+ //void addApplet(KviStatusBarApplet * pApplet);
+ //void removeApplet(KviStatusBarApplet * pApplet);
+protected slots:
+ void contextPopupAboutToShow();
+ void appletsPopupAboutToShow();
+ void appletsPopupActivated(int id);
+ void removeClickedApplet();
+ void setPermanentMessage();
+ void tipRequest(KviDynamicToolTip *pTip,const QPoint &pnt);
+};
+
+#endif //!_KVI_STATUSBAR_H_