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 <qguardedptr.h> 00033 #include <qframe.h> 00034 #include <qiconset.h> 00035 00036 #include <kglobal.h> 00037 00038 class QDomElement; 00039 class QSize; 00040 class QPixmap; 00041 class QPopupMenu; 00042 class QStringList; 00043 class QDomDocument; 00044 class QTimer; 00045 00046 class KLineEdit; 00047 class KToolBar; 00048 class KToolBarButton; 00049 class KToolBoxManager; 00050 class KAnimWidget; 00051 class KPopupMenu; 00052 class KInstance; 00053 class KComboBox; 00054 class KXMLGUIClient; 00055 00056 class KToolBarPrivate; 00057 00058 class KDEUI_EXPORT KToolBarSeparator : public QFrame 00059 { 00060 Q_OBJECT 00061 public: 00062 KToolBarSeparator( Orientation, bool l, QToolBar *parent, const char* name=0 ); 00063 00064 QSize sizeHint() const; 00065 Orientation orientation() const { return orient; } 00066 QSizePolicy sizePolicy() const; 00067 bool showLine() const { return line; } 00068 public slots: 00069 void setOrientation( Orientation ); 00070 protected: 00071 void styleChange( QStyle& ); 00072 void drawContents( QPainter* ); 00073 private: 00074 Orientation orient; 00075 bool line; 00076 }; 00077 00078 00103 class KDEUI_EXPORT 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 00862 int iconSizeDefault() const; 00863 00869 void setEnableContextMenu(bool enable = true); 00870 00875 bool contextMenuEnabled() const; 00876 00885 void setItemNoStyle(int id, bool no_style = true); 00886 00887 void setFlat (bool flag); 00888 00893 int count() const; 00894 00900 void saveState(); // BIC: remove for KDE4? This doesn't appear to be used internally, 00901 // and apps use saveMainWindowSettings in KMainWindow anyway. 00902 00906 void saveSettings(KConfig *config, const QString &configGroup); 00907 00912 void applySettings(KConfig *config, const QString &configGroup,bool force); 00913 // KDE4 merge with force=false 00914 void applySettings(KConfig *config, const QString &configGroup); 00915 00916 /* 00917 * Tell the toolbar what XML-GUI resource file it should use to save 00918 * it's state. The state of the toolbar (position, size, etc) is 00919 * saved in KConfig files if the application does not use XML-GUI 00920 * but if the app does, then it's saved the XML file. This function 00921 * allows this to happen. 00922 * 00923 * @param xmlfile The XML-GUI resource file to write to 00924 * @param xml The DOM document for the XML-GUI building 00925 * @internal 00926 */ 00927 // void setXML(const QString& xmlfile, const QDomDocument& xml); 00928 00929 void setXMLGUIClient( KXMLGUIClient *client ); 00930 00935 void setText( const QString & txt ); 00936 00941 QString text() const; 00942 00943 void setStretchableWidget( QWidget *w ); 00944 QSizePolicy sizePolicy() const; 00945 bool highlight() const; 00946 QSize sizeHint() const; 00947 QSize minimumSizeHint() const; 00948 QSize minimumSize() const; 00949 00950 void hide(); 00951 void show(); 00952 00953 void updateRects( bool = false ) {} 00954 00958 void loadState( const QDomElement &e ); 00959 /* 00960 * Save state into an XML element, called by KXMLGUIBuilder 00961 */ 00962 void saveState( QDomElement &e ); 00963 00967 void positionYourself( bool force = false); 00968 00969 signals: 00973 void clicked(int id); 00974 00988 void doubleClicked (int id); 00989 00993 void pressed(int); 00994 00998 void released(int); 00999 01009 void toggled(int); 01010 01021 void highlighted(int id, bool isHighlighted); 01022 01031 void highlighted(int id ); 01032 01042 void moved( BarPosition ); 01043 01051 void modechange (); 01052 01060 void toolbarDestroyed(); 01061 01062 public: 01067 static bool highlightSetting(); 01068 01073 static bool transparentSetting(); 01074 01079 static IconText iconTextSetting(); 01080 01081 public slots: 01082 virtual void setIconText( const QString &txt ) 01083 { QToolBar::setIconText( txt ); } 01084 01085 protected: 01086 void mousePressEvent( QMouseEvent * ); 01087 void childEvent( QChildEvent *e ); 01088 void showEvent( QShowEvent *e ); 01089 void resizeEvent( QResizeEvent *e ); 01090 bool event( QEvent *e ); 01091 void applyAppearanceSettings(KConfig *config, const QString &_configGroup, bool forceGlobal = false); 01092 QString settingsGroup() const; 01093 01094 private slots: 01095 void rebuildLayout(); 01096 void slotReadConfig (); 01097 void slotAppearanceChanged(); 01098 void slotIconChanged(int); 01099 void slotRepaint(); 01100 void toolBarPosChanged( QToolBar *tb ); 01101 void slotContextAboutToShow(); 01102 void slotContextAboutToHide(); 01103 void widgetDestroyed(); 01104 01105 private: 01106 void init( bool readConfig = true, bool honorStyle = false ); 01107 void doConnections( KToolBarButton *button ); 01108 void insertWidgetInternal( QWidget *w, int &index, int id ); 01109 void removeWidgetInternal( QWidget *w ); 01110 void getAttributes( QString &position, QString &icontext, int &index ); 01111 int dockWindowIndex(); 01112 KPopupMenu *contextMenu(); 01113 void doModeChange(); 01114 01115 QMap<QWidget*, int > widget2id; 01116 typedef QMap<int, QWidget* > Id2WidgetMap; 01117 Id2WidgetMap id2widget; 01118 KPopupMenu *context; 01119 QPtrList<QWidget> widgets; 01120 QTimer *layoutTimer; 01121 QGuardedPtr<QWidget> stretchableWidget, rightAligned; 01122 protected: 01123 virtual void virtual_hook( int id, void* data ); 01124 private: 01125 KToolBarPrivate *d; 01126 }; 01127 01128 #endif
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 14 00:10:17 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003