• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdeui

ktoolbar.h

Go to the documentation of this file.
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., 51 Franklin Street, Fifth Floor,
00021     Boston, MA 02110-1301, 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

kdeui

Skip menu "kdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal