kstatusbar.h

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 1997 Mark Donohoe (donohoe@kde.org)
00003    Copyright (C) 1997, 1998 1998 Sven Radej (sven@lisa.exp.univie.ac.at)
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Library General Public
00007    License as published by the Free Software Foundation; either
00008    version 2 of the License, or (at your option) any later version.
00009 
00010    This library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Library General Public License for more details.
00014 
00015    You should have received a copy of the GNU Library General Public License
00016    along with this library; see the file COPYING.LIB.  If not, write to
00017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018    Boston, MA 02110-1301, USA.
00019 */
00020 
00021 #ifndef __KSTATUSBAR_H__
00022 #define __KSTATUSBAR_H__
00023 
00024 #include <qstatusbar.h>
00025 #include <qintdict.h>
00026 #include <qlabel.h>
00027 #include <kdelibs_export.h>
00028 
00029 class KStatusBar;
00030 
00035 class KDEUI_EXPORT KStatusBarLabel : public QLabel
00036 {
00037   Q_OBJECT
00038 
00039 public:
00040 
00041 
00042   KStatusBarLabel( const QString& text, int _id, KStatusBar* parent = 0L, const char *name=0L );
00043   ~KStatusBarLabel () {};
00044 
00045 protected:
00046 
00047   void mousePressEvent (QMouseEvent* _event);
00048   void mouseReleaseEvent (QMouseEvent* _event);
00049 
00050 private:
00051 
00052   int id;
00053 
00054 signals:
00055 
00056   void itemPressed (int id);
00057   void itemReleased (int id);
00058 };
00059 
00087 class KDEUI_EXPORT KStatusBar : public QStatusBar
00088 {
00089   Q_OBJECT
00090 
00091 public:
00097   enum BarStatus{ Toggle, Show, Hide };
00098 
00102   KStatusBar( QWidget* parent = 0L, const char* name = 0L );
00103 
00109   ~KStatusBar();
00110 
00127   void insertItem(const QString& text, int id, int stretch=0, bool permanent=false );
00128 
00138   inline void insertFixedItem(const QString& text, int id, bool permanent=false)
00139                { insertItem(text, id, 0, permanent); setItemFixed(id); }
00140 
00146   void removeItem( int id );
00147 
00156   bool hasItem( int id ) const;
00157 
00167   void changeItem( const QString& text, int id );
00168 
00174   void setItemAlignment(int id, int align);
00175 
00183   void setItemFixed(int id, int width=-1);
00184 
00185 signals:
00186 
00193   void pressed( int );
00194 
00200   void released( int );
00201 
00202 private:
00203   QIntDict<KStatusBarLabel> items;
00204   class KStatusBarPrivate* d;
00205 };
00206 
00207 #endif // __KSTATUSBAR_H__
00208 
KDE Home | KDE Accessibility Home | Description of Access Keys