kdeui Library API Documentation

ktoolbar.h

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2000 Reginald Stadlbauer (reggie@kde.org) 00003 (C) 1997, 1998 Stephan Kulow (coolo@kde.org) 00004 (C) 1997, 1998 Sven Radej (radej@kde.org) 00005 (C) 1997, 1998 Mark Donohoe (donohoe@kde.org) 00006 (C) 1997, 1998 Matthias Ettrich (ettrich@kde.org) 00007 (C) 1999, 2000 Kurt Granroth (granroth@kde.org) 00008 00009 This library is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU Library General Public 00011 License version 2 as published by the Free Software Foundation. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Library General Public License for more details. 00017 00018 You should have received a copy of the GNU Library General Public License 00019 along with this library; see the file COPYING.LIB. If not, write to 00020 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00021 Boston, MA 02111-1307, USA. 00022 */ 00023 00024 #ifndef KTOOLBAR_H 00025 #define KTOOLBAR_H 00026 00027 #include <qtoolbar.h> 00028 #include <qmainwindow.h> 00029 #include <qcombobox.h> 00030 #include <qmap.h> 00031 #include <qptrlist.h> 00032 #include <kglobal.h> 00033 #include <qguardedptr.h> 00034 #include <qframe.h> 00035 #include <qiconset.h> 00036 00037 class QDomElement; 00038 class QSize; 00039 class QPixmap; 00040 class QPopupMenu; 00041 class QStringList; 00042 class QDomDocument; 00043 class QTimer; 00044 00045 class KLineEdit; 00046 class KToolBar; 00047 class KToolBarButton; 00048 class KToolBoxManager; 00049 class KAnimWidget; 00050 class KPopupMenu; 00051 class KInstance; 00052 class KComboBox; 00053 class KXMLGUIClient; 00054 00055 class KToolBarPrivate; 00056 00057 class KToolBarSeparator : public QFrame 00058 { 00059 Q_OBJECT 00060 public: 00061 KToolBarSeparator( Orientation, bool l, QToolBar *parent, const char* name=0 ); 00062 00063 QSize sizeHint() const; 00064 Orientation orientation() const { return orient; } 00065 QSizePolicy sizePolicy() const; 00066 bool showLine() const { return line; } 00067 public slots: 00068 void setOrientation( Orientation ); 00069 protected: 00070 void styleChange( QStyle& ); 00071 void drawContents( QPainter* ); 00072 private: 00073 Orientation orient; 00074 bool line; 00075 }; 00076 00077 00103 class KToolBar : public QToolBar 00104 { 00105 Q_OBJECT 00106 Q_ENUMS( IconText BarPosition ) 00107 Q_PROPERTY( IconText iconText READ iconText WRITE setIconText ) 00108 Q_PROPERTY( BarPosition barPos READ barPos WRITE setBarPos ) 00109 Q_PROPERTY( bool fullSize READ fullSize WRITE setFullSize ) 00110 Q_PROPERTY( int iconSize READ iconSize WRITE setIconSize ) 00111 Q_PROPERTY( QString text READ text WRITE setText ) 00112 00113 public: 00114 enum IconText{IconOnly = 0, IconTextRight, TextOnly, IconTextBottom}; 00119 enum BarStatus{Toggle, Show, Hide}; 00123 enum BarPosition{ Unmanaged, Floating, Top, Bottom, Right, Left, Flat}; 00124 00142 KToolBar( QWidget *parent, const char *name = 0, bool honorStyle = false, bool readConfig = true ); 00143 00159 KToolBar( QMainWindow *parentWindow, QMainWindow::ToolBarDock dock /*= QMainWindow::Top*/, bool newLine = false, 00160 const char *name = 0, bool honorStyle = false, bool readConfig = true ); 00161 00177 KToolBar( QMainWindow *parentWindow, QWidget *dock, bool newLine = false, 00178 const char *name = 0, bool honorStyle = false, bool readConfig = true ); 00179 00183 virtual ~KToolBar(); 00184 00206 int insertButton(const QString& icon, int id, bool enabled = true, 00207 const QString& text = QString::null, int index=-1, 00208 KInstance *_instance = KGlobal::instance()); 00209 00228 int insertButton(const QString& icon, int id, const char *signal, 00229 const QObject *receiver, const char *slot, 00230 bool enabled = true, const QString& text = QString::null, 00231 int index=-1, KInstance *_instance = KGlobal::instance() ); 00232 00257 int insertButton(const QPixmap& pixmap, int id, bool enabled = true, 00258 const QString& text = QString::null, int index=-1 ); 00259 00277 int insertButton(const QPixmap& pixmap, int id, const char *signal, 00278 const QObject *receiver, const char *slot, 00279 bool enabled = true, const QString& text = QString::null, 00280 int index=-1 ); 00281 00294 int insertButton(const QString& icon, int id, QPopupMenu *popup, 00295 bool enabled, const QString&_text, int index=-1); 00296 00309 int insertButton(const QPixmap& pixmap, int id, QPopupMenu *popup, 00310 bool enabled, const QString&_text, int index=-1); 00311 00324 int insertLined (const QString& text, int id, 00325 const char *signal, 00326 const QObject *receiver, const char *slot, 00327 bool enabled = true, 00328 const QString& toolTipText = QString::null, 00329 int size = 70, int index =-1); 00330 00345 int insertCombo (const QStringList &list, int id, bool writable, 00346 const char *signal, const QObject *receiver, 00347 const char *slot, bool enabled=true, 00348 const QString& tooltiptext=QString::null, 00349 int size=70, int index=-1, 00350 QComboBox::Policy policy = QComboBox::AtBottom); 00351 00361 int insertCombo (const QString& text, int id, bool writable, 00362 const char *signal, QObject *receiver, 00363 const char *slot, bool enabled=true, 00364 const QString& tooltiptext=QString::null, 00365 int size=70, int index=-1, 00366 QComboBox::Policy policy = QComboBox::AtBottom); 00367 00372 int insertSeparator( int index = -1, int id = -1 ); 00373 00378 int insertLineSeparator( int index = -1, int id = -1 ); 00379 00390 int insertWidget(int id, int width, QWidget *_widget, int index=-1); 00391 00408 int insertAnimatedWidget(int id, QObject *receiver, const char *slot, 00409 const QString& icons, int index = -1); 00410 00419 KAnimWidget *animatedWidget( int id ); 00420 00427 void addConnection (int id, const char *signal, 00428 const QObject *receiver, const char *slot); 00432 void setItemEnabled( int id, bool enabled ); 00433 00439 void setButtonIcon( int id, const QString& _icon ); 00440 00446 void setButtonPixmap( int id, const QPixmap& _pixmap ); 00447 00453 void setButtonIconSet( int id, const QIconSet& iconset ); 00454 00481 void setDelayedPopup (int id , QPopupMenu *_popup, bool toggle = false); 00482 00496 void setAutoRepeat (int id, bool flag=true); 00497 00498 00502 void setToggle (int id, bool flag = true); 00503 00513 void toggleButton (int id); 00514 00524 void setButton (int id, bool flag); 00525 00531 bool isButtonOn (int id) const; 00532 00538 void setLinedText (int id, const QString& text); 00539 00544 QString getLinedText (int id) const; 00545 00549 void insertComboItem (int id, const QString& text, int index); 00550 00554 void insertComboList (int id, const QStringList &list, int index); 00555 00559 void removeComboItem (int id, int index); 00560 00564 void setCurrentComboItem (int id, int index); 00565 00571 void changeComboItem (int id, const QString& text, int index=-1); 00572 00578 void clearCombo (int id); 00579 00587 QString getComboItem (int id, int index=-1) const; 00588 00600 KComboBox * getCombo(int id); 00601 00614 KLineEdit * getLined (int id); 00615 00628 KToolBarButton * getButton (int id); 00629 00636 void alignItemRight (int id, bool right = true); 00637 00649 QWidget *getWidget (int id); // ### KDE4: make this const! 00650 00664 void setItemAutoSized (int id, bool yes = true); 00665 00671 void clear (); 00672 00678 void removeItem (int id); 00679 00685 void removeItemDelayed (int id); 00686 00690 void hideItem (int id); 00691 00695 void showItem (int id); 00696 00702 int itemIndex (int id); // ### KDE4: make this const! 00703 00708 int idAt(int index); // ### KDE4: make this const! 00709 00722 void setFullSize(bool flag = true); 00723 00728 bool fullSize() const; 00729 00734 void enableMoving(bool flag = true) KDE_DEPRECATED; 00735 00740 void setBarPos (BarPosition bpos); 00741 00746 BarPosition barPos() const; 00747 00756 bool enable(BarStatus stat) KDE_DEPRECATED; 00757 00762 void setMaxHeight (int h) KDE_DEPRECATED; // Set max height for vertical toolbars 00763 00770 int maxHeight() KDE_DEPRECATED; 00771 00777 void setMaxWidth (int dw) KDE_DEPRECATED; 00778 00785 int maxWidth() KDE_DEPRECATED; 00786 00793 void setTitle (const QString& _title); 00794 00799 void enableFloating (bool flag) KDE_DEPRECATED; 00800 00812 void setIconText(IconText it); 00813 // Note: don't merge with the next one, it breaks Qt properties 00814 00821 void setIconText(IconText it, bool update); 00822 00827 IconText iconText() const; 00828 00839 void setIconSize(int size); 00840 // Note: don't merge with the next one, it breaks Qt properties 00841 00850 void setIconSize(int size, bool update); 00851 00856 int iconSize() const; 00857 00863 void setEnableContextMenu(bool enable = true); 00864 00869 bool contextMenuEnabled() const; 00870 00879 void setItemNoStyle(int id, bool no_style = true); 00880 00881 void setFlat (bool flag); 00882 00887 int count() const; 00888 00894 void saveState(); // BIC: remove for KDE4? This doesn't appear to be used internally, 00895 // and apps use saveMainWindowSettings in KMainWindow anyway. 00896 00900 void saveSettings(KConfig *config, const QString &configGroup); 00901 00906 void applySettings(KConfig *config, const QString &configGroup,bool force); 00907 // KDE4 merge with force=false 00908 void applySettings(KConfig *config, const QString &configGroup); 00909 00910 /* 00911 * Tell the toolbar what XML-GUI resource file it should use to save 00912 * it's state. The state of the toolbar (position, size, etc) is 00913 * saved in KConfig files if the application does not use XML-GUI 00914 * but if the app does, then it's saved the XML file. This function 00915 * allows this to happen. 00916 * 00917 * @param xmlfile The XML-GUI resource file to write to 00918 * @param xml The DOM document for the XML-GUI building 00919 * @internal 00920 */ 00921 // void setXML(const QString& xmlfile, const QDomDocument& xml); 00922 00923 void setXMLGUIClient( KXMLGUIClient *client ); 00924 00929 void setText( const QString & txt ); 00930 00935 QString text() const; 00936 00937 void setStretchableWidget( QWidget *w ); 00938 QSizePolicy sizePolicy() const; 00939 bool highlight() const; 00940 QSize sizeHint() const; 00941 QSize minimumSizeHint() const; 00942 QSize minimumSize() const; 00943 00944 void hide(); 00945 void show(); 00946 00947 void updateRects( bool = false ) {} 00948 00949 void loadState( const QDomElement &e ); 00950 void saveState( QDomElement &e ); 00951 00955 void positionYourself( bool force = false); 00956 00957 signals: 00961 void clicked(int id); 00962 00976 void doubleClicked (int id); 00977 00981 void pressed(int); 00982 00986 void released(int); 00987 00997 void toggled(int); 00998 01009 void highlighted(int id, bool isHighlighted); 01010 01019 void highlighted(int id ); 01020 01030 void moved( BarPosition ); 01031 01039 void modechange (); 01040 01048 void toolbarDestroyed(); 01049 01050 public: 01055 static bool highlightSetting(); 01056 01061 static bool transparentSetting(); 01062 01067 static IconText iconTextSetting(); 01068 01069 public slots: 01070 virtual void setIconText( const QString &txt ) 01071 { QToolBar::setIconText( txt ); } 01072 01073 protected: 01074 void mousePressEvent( QMouseEvent * ); 01075 void childEvent( QChildEvent *e ); 01076 void showEvent( QShowEvent *e ); 01077 void resizeEvent( QResizeEvent *e ); 01078 bool event( QEvent *e ); 01079 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false); 01080 QString settingsGroup() const; 01081 01082 private slots: 01083 void rebuildLayout(); 01084 void slotReadConfig (); 01085 void slotAppearanceChanged(); 01086 void slotIconChanged(int); 01087 void slotRepaint(); 01088 void toolBarPosChanged( QToolBar *tb ); 01089 void slotContextAboutToShow(); 01090 void slotContextAboutToHide(); 01091 void widgetDestroyed(); 01092 01093 private: 01094 void init( bool readConfig = true, bool honorStyle = false ); 01095 void doConnections( KToolBarButton *button ); 01096 void insertWidgetInternal( QWidget *w, int &index, int id ); 01097 void removeWidgetInternal( QWidget *w ); 01098 void getAttributes( QString &position, QString &icontext, int &index ); 01099 int dockWindowIndex(); 01100 KPopupMenu *contextMenu(); 01101 void doModeChange(); 01102 01103 QMap<QWidget*, int > widget2id; 01104 typedef QMap<int, QWidget* > Id2WidgetMap; 01105 Id2WidgetMap id2widget; 01106 KPopupMenu *context; 01107 QPtrList<QWidget> widgets; 01108 QTimer *layoutTimer; 01109 QGuardedPtr<QWidget> stretchableWidget, rightAligned; 01110 protected: 01111 virtual void virtual_hook( int id, void* data ); 01112 private: 01113 KToolBarPrivate *d; 01114 }; 01115 01116 #endif
KDE Logo
This file is part of the documentation for kdeui Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:43:30 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003