diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /lib/kofficeui/KoKoolBar.h | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'lib/kofficeui/KoKoolBar.h')
-rw-r--r-- | lib/kofficeui/KoKoolBar.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/lib/kofficeui/KoKoolBar.h b/lib/kofficeui/KoKoolBar.h new file mode 100644 index 00000000..5e6f91fc --- /dev/null +++ b/lib/kofficeui/KoKoolBar.h @@ -0,0 +1,166 @@ +/* + This file is part of the KDE project + Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#ifndef __ko_koolbar_h__ +#define __ko_koolbar_h__ + +#include <qframe.h> +#include <qpixmap.h> +#include <qintdict.h> +#include <koffice_export.h> +class QPushButton; +class QPixmap; +class KoKoolBar; +class KoKoolBarGroup; + +class KoKoolBarItem : public QObject +{ +private: + Q_OBJECT +public: + KoKoolBarItem( KoKoolBarGroup *_grp, const QPixmap& _pix, const QString& _text = QString::null ); + + int id() const { return m_id; } + void press(); + bool isEnabled() const { return m_bEnabled; } + void setEnabled( bool _e ) { m_bEnabled = _e; } + + int height() const { return m_iHeight; } + QPixmap pixmap() const { return m_pixmap; } + void setText( const QString & text ) { m_strText = text; } + QString text() const { return m_strText; } + +signals: + void pressed( int _group, int _id ); + void pressed(); +protected: + void calc( QWidget* ); + + int m_iHeight; + KoKoolBarGroup* m_pGroup; + QString m_strText; + QPixmap m_pixmap; + int m_id; + bool m_bEnabled; + class KoKoolBarItemPrivate; + KoKoolBarItemPrivate *d; +}; + +class KoKoolBarGroup : public QObject +{ + Q_OBJECT +public: + KoKoolBarGroup( KoKoolBar *_bar, const QString& _text ); + ~KoKoolBarGroup(); + + void append( KoKoolBarItem *_i ) { m_mapItems.insert( _i->id(), _i ); } + void remove( int _id ); + + KoKoolBar* bar() const { return m_pBar; } + QPushButton* button() const { return m_pButton; } + int id() const { return m_id; } + bool isEnabled() const { return m_bEnabled; } + void setEnabled( bool _e ) { m_bEnabled = _e; } + KoKoolBarItem* item( int _id ) const { return m_mapItems[ _id ]; } + int items() const { return m_mapItems.size(); } + QIntDictIterator<KoKoolBarItem> iterator() const { return QIntDictIterator<KoKoolBarItem>( m_mapItems ); } + +public slots: + void pressed(); + +protected: + QIntDict<KoKoolBarItem> m_mapItems; + KoKoolBar* m_pBar; + QString m_strText; + int m_id; + QPushButton* m_pButton; + bool m_bEnabled; + class KoKoolBarGroupPrivate; + KoKoolBarGroupPrivate *d; +}; + +class KoKoolBarBox : public QFrame +{ + Q_OBJECT +public: + KoKoolBarBox( KoKoolBar *_bar ); + + void setActiveGroup( KoKoolBarGroup *_grp ); + int maxHeight() const; + + void sizeChanged() { resizeEvent(0L); } + +protected slots: + void scrollUp(); + void scrollDown(); + +protected: + virtual void resizeEvent( QResizeEvent *_ev ); + virtual void drawContents( QPainter * ); + virtual void mousePressEvent( QMouseEvent *_ev ) + { KoKoolBarItem *item = findByPos( _ev->pos().y() + m_iYOffset ); if ( !item ) return; item->press(); } + + KoKoolBarItem* findByPos( int _abs_y ) const; + + bool needsScrolling() const; + bool isAtBottom() const; + bool isAtTop() const; + void updateScrollButtons(); + + KoKoolBar *m_pBar; + int m_iYOffset; + int m_iYIcon; + KoKoolBarGroup *m_pGroup; + QPushButton* m_pButtonUp; + QPushButton* m_pButtonDown; + class KoKoolBarBoxPrivate; + KoKoolBarBoxPrivate *d; +}; + +class KOFFICEUI_EXPORT KoKoolBar : public QWidget +{ + Q_OBJECT +public: + KoKoolBar( QWidget *_parent = 0L, const char *_name = 0L ); + virtual ~KoKoolBar() { }; + + virtual int insertGroup( const QString& _text ); + virtual int insertItem( int _grp, const QPixmap& _pix, const QString& _text = QString::null, + QObject *_obj = 0L, const char *_slot = 0L ); + virtual void removeGroup( int _grp ); + virtual void removeItem( int _grp, int _id ); + virtual void renameItem( int _grp, int _id, const QString & _text ); + virtual void setActiveGroup( int _grp ); + virtual int activeGroup() const { return m_iActiveGroup; } + virtual void enableItem( int _grp, int _id, bool _enable ); + virtual void enableGroup( int _grp, bool _enable ); + +protected: + virtual void resizeEvent( QResizeEvent *_ev ); + + QIntDict<KoKoolBarGroup> m_mapGroups; + + int m_iActiveGroup; + KoKoolBarBox* m_pBox; + class KoKoolBarPrivate; + KoKoolBarPrivate *d; +}; + +#endif |