koKoolBar.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __ko_koolbar_h__
00022 #define __ko_koolbar_h__
00023
00024 #include <qframe.h>
00025 #include <qpixmap.h>
00026 #include <qintdict.h>
00027
00028 class QPushButton;
00029 class QPixmap;
00030 class KoKoolBar;
00031 class KoKoolBarGroup;
00032
00033 class KoKoolBarItem : public QObject
00034 {
00035 private:
00036 Q_OBJECT
00037 public:
00038 KoKoolBarItem( KoKoolBarGroup *_grp, const QPixmap& _pix, const QString& _text = QString::null );
00039
00040 int id() const { return m_id; }
00041 void press();
00042 bool isEnabled() const { return m_bEnabled; }
00043 void setEnabled( bool _e ) { m_bEnabled = _e; }
00044
00045 int height() const { return m_iHeight; }
00046 QPixmap pixmap() const { return m_pixmap; }
00047 void setText( const QString & text ) { m_strText = text; }
00048 QString text() const { return m_strText; }
00049
00050 signals:
00051 void pressed( int _group, int _id );
00052 void pressed();
00053 protected:
00054 void calc( QWidget* );
00055
00056 int m_iHeight;
00057 KoKoolBarGroup* m_pGroup;
00058 QString m_strText;
00059 QPixmap m_pixmap;
00060 int m_id;
00061 bool m_bEnabled;
00062 class KoKoolBarItemPrivate;
00063 KoKoolBarItemPrivate *d;
00064 };
00065
00066 class KoKoolBarGroup : public QObject
00067 {
00068 Q_OBJECT
00069 public:
00070 KoKoolBarGroup( KoKoolBar *_bar, const QString& _text );
00071 ~KoKoolBarGroup();
00072
00073 void append( KoKoolBarItem *_i ) { m_mapItems.insert( _i->id(), _i ); }
00074 void remove( int _id );
00075
00076 KoKoolBar* bar() const { return m_pBar; }
00077 QPushButton* button() const { return m_pButton; }
00078 int id() const { return m_id; }
00079 bool isEnabled() const { return m_bEnabled; }
00080 void setEnabled( bool _e ) { m_bEnabled = _e; }
00081 KoKoolBarItem* item( int _id ) const { return m_mapItems[ _id ]; }
00082 int items() const { return m_mapItems.size(); }
00083 QIntDictIterator<KoKoolBarItem> iterator() const { return QIntDictIterator<KoKoolBarItem>( m_mapItems ); }
00084
00085 public slots:
00086 void pressed();
00087
00088 protected:
00089 QIntDict<KoKoolBarItem> m_mapItems;
00090 KoKoolBar* m_pBar;
00091 QString m_strText;
00092 int m_id;
00093 QPushButton* m_pButton;
00094 bool m_bEnabled;
00095 class KoKoolBarGroupPrivate;
00096 KoKoolBarGroupPrivate *d;
00097 };
00098
00099 class KoKoolBarBox : public QFrame
00100 {
00101 Q_OBJECT
00102 public:
00103 KoKoolBarBox( KoKoolBar *_bar );
00104
00105 void setActiveGroup( KoKoolBarGroup *_grp );
00106 int maxHeight() const;
00107
00108 void sizeChanged() { resizeEvent(0L); }
00109
00110 protected slots:
00111 void scrollUp();
00112 void scrollDown();
00113
00114 protected:
00115 virtual void resizeEvent( QResizeEvent *_ev );
00116 virtual void drawContents( QPainter * );
00117 virtual void mousePressEvent( QMouseEvent *_ev )
00118 { KoKoolBarItem *item = findByPos( _ev->pos().y() + m_iYOffset ); if ( !item ) return; item->press(); }
00119
00120 KoKoolBarItem* findByPos( int _abs_y ) const;
00121
00122 bool needsScrolling() const;
00123 bool isAtBottom() const;
00124 bool isAtTop() const;
00125 void updateScrollButtons();
00126
00127 KoKoolBar *m_pBar;
00128 int m_iYOffset;
00129 int m_iYIcon;
00130 KoKoolBarGroup *m_pGroup;
00131 QPushButton* m_pButtonUp;
00132 QPushButton* m_pButtonDown;
00133 class KoKoolBarBoxPrivate;
00134 KoKoolBarBoxPrivate *d;
00135 };
00136
00137 class KoKoolBar : public QWidget
00138 {
00139 Q_OBJECT
00140 public:
00141 KoKoolBar( QWidget *_parent = 0L, const char *_name = 0L );
00142 virtual ~KoKoolBar() { };
00143
00144 virtual int insertGroup( const QString& _text );
00145 virtual int insertItem( int _grp, const QPixmap& _pix, const QString& _text = QString::null,
00146 QObject *_obj = 0L, const char *_slot = 0L );
00147 virtual void removeGroup( int _grp );
00148 virtual void removeItem( int _grp, int _id );
00149 virtual void renameItem( int _grp, int _id, const QString & _text );
00150 virtual void setActiveGroup( int _grp );
00151 virtual int activeGroup() const { return m_iActiveGroup; }
00152 virtual void enableItem( int _grp, int _id, bool _enable );
00153 virtual void enableGroup( int _grp, bool _enable );
00154
00155 protected:
00156 virtual void resizeEvent( QResizeEvent *_ev );
00157
00158 QIntDict<KoKoolBarGroup> m_mapGroups;
00159
00160 int m_iActiveGroup;
00161 KoKoolBarBox* m_pBox;
00162 class KoKoolBarPrivate;
00163 KoKoolBarPrivate *d;
00164 };
00165
00166 #endif
This file is part of the documentation for lib Library Version 1.3.5.