| # kdeui Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# 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

This file is part of the documentation for kdeui Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:20:24 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003