kdeui Library API Documentation

kactioncollection.h

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 1999 Reginald Stadlbauer <reggie@kde.org> 00003 (C) 1999 Simon Hausmann <hausmann@kde.org> 00004 (C) 2000 Nicolas Hadacek <haadcek@kde.org> 00005 (C) 2000 Kurt Granroth <granroth@kde.org> 00006 (C) 2000 Michael Koch <koch@kde.org> 00007 (C) 2001 Holger Freyther <freyther@kde.org> 00008 (C) 2002 Ellis Whitehead <ellis@kde.org> 00009 00010 This library is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU Library General Public 00012 License version 2 as published by the Free Software Foundation. 00013 00014 This library is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Library General Public License for more details. 00018 00019 You should have received a copy of the GNU Library General Public License 00020 along with this library; see the file COPYING.LIB. If not, write to 00021 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00022 Boston, MA 02111-1307, USA. 00023 */ 00024 00025 #ifndef __kactioncollection_h__ 00026 #define __kactioncollection_h__ 00027 00028 #include <kaction.h> 00029 00030 #include <qkeysequence.h> 00031 #include <qobject.h> 00032 #include <qvaluelist.h> 00033 #include <qguardedptr.h> 00034 #include <kguiitem.h> 00035 #include <kshortcut.h> 00036 #include <kstdaction.h> 00037 #include <kicontheme.h> 00038 00039 class QMenuBar; 00040 class QPopupMenu; 00041 class QComboBox; 00042 class QPoint; 00043 class QIconSet; 00044 class QString; 00045 class KToolBar; 00046 00047 class KAccel; 00048 class KAccelActions; 00049 class KConfig; 00050 class KConfigBase; 00051 class KURL; 00052 class KInstance; 00053 class KToolBar; 00054 class KActionCollection; 00055 class KPopupMenu; 00056 class KMainWindow; 00057 class KXMLGUIClient; 00058 00059 typedef QValueList<KAction *> KActionPtrList; 00060 00078 class KDEUI_EXPORT KActionCollection : public QObject 00079 { 00080 friend class KAction; 00081 friend class KXMLGUIClient; 00082 00083 Q_OBJECT 00084 00085 public: 00086 KActionCollection( QWidget *parent, const char *name = 0, KInstance *instance = 0 ); 00092 KActionCollection( QWidget *watch, QObject* parent, const char *name = 0, KInstance *instance = 0 ); 00093 KActionCollection( const KActionCollection &copy ); 00094 virtual ~KActionCollection(); 00095 00100 virtual void setWidget( QWidget *widget ); 00101 00109 void setAutoConnectShortcuts( bool ); 00110 00117 bool isAutoConnectShortcuts(); 00118 00125 //void setDefaultScope( KAction::Scope ); 00126 00131 bool addDocCollection( KActionCollection* pDoc ); 00132 00134 //uint widgetCount() const; 00135 00141 //bool ownsKAccel() const; 00142 00144 virtual KAccel* accel() KDE_DEPRECATED; 00146 virtual const KAccel* accel() const KDE_DEPRECATED; 00147 00149 KAccel* kaccel(); 00151 const KAccel* kaccel() const; 00152 00154 KAccel* builderKAccel() const; 00156 //KAccel* widgetKAccel( uint i ); 00157 //const KAccel* widgetKAccel( uint i ) const; 00158 00160 virtual uint count() const; 00161 bool isEmpty() const { return (count() == 0); } 00166 virtual KAction* action( int index ) const; 00174 virtual KAction* action( const char* name, const char* classname = 0 ) const; 00175 00180 virtual QStringList groups() const; 00185 virtual KActionPtrList actions( const QString& group ) const; 00187 virtual KActionPtrList actions() const; 00188 00192 bool readShortcutSettings( const QString& sConfigGroup = QString::null, KConfigBase* pConfig = 0 ); 00196 bool writeShortcutSettings( const QString& sConfigGroup = QString::null, KConfigBase* pConfig = 0 ) const; 00197 00198 void setInstance( KInstance *instance ); 00200 KInstance *instance() const; 00201 00205 void setXMLFile( const QString& ); 00209 const QString& xmlFile() const; 00210 00211 //TODO FOR KDE4 make this default true 00223 void setHighlightingEnabled( bool enable ); 00232 bool highlightingEnabled() const; 00233 00247 void connectHighlight( QWidget *container, KAction *action ); 00261 void disconnectHighlight( QWidget *container, KAction *action ); 00262 00266 const KXMLGUIClient *parentGUIClient() const; 00267 00268 signals: 00269 void inserted( KAction* ); 00270 void removed( KAction* ); 00271 00280 void actionHighlighted( KAction *action ); 00289 void actionHighlighted( KAction *action, bool highlight ); 00299 void actionStatusText( const QString &text ); 00305 void clearStatusText(); 00306 00307 private: 00314 void beginXMLPlug( QWidget *widget ); 00315 void endXMLPlug(); 00317 void prepareXMLUnplug(); 00318 void unplugShortcuts( KAccel* kaccel ); 00319 00320 void _clear(); 00321 void _insert( KAction* ); 00322 void _remove( KAction* ); 00323 KAction* _take( KAction* ); 00324 00325 private slots: 00326 void slotMenuItemHighlighted( int id ); 00327 void slotToolBarButtonHighlighted( int id, bool highlight ); 00328 void slotMenuAboutToHide(); 00329 void slotDestroyed(); 00330 00331 private: 00332 KAction *findAction( QWidget *container, int id ); 00333 00334 #ifndef KDE_NO_COMPAT 00335 public: 00336 KActionCollection( QObject *parent, const char *name = 0, KInstance *instance = 0 ); 00337 #endif 00338 00339 public: 00350 void insert( KAction* action); 00351 00358 void remove( KAction* action ); 00359 00367 KAction* take( KAction* action ); 00368 00369 #ifndef KDE_NO_COMPAT 00370 KActionCollection operator+ ( const KActionCollection& ) const; 00371 KActionCollection& operator= ( const KActionCollection& ); 00372 KActionCollection& operator+= ( const KActionCollection& ); 00373 #endif // !KDE_NO_COMPAT 00374 00375 // KDE4: clear() doesn't need to be a slot 00376 public slots: 00381 void clear(); 00382 00383 protected: 00384 virtual void virtual_hook( int id, void* data ); 00385 private: 00386 KActionCollection( const char* name, const KXMLGUIClient* parent ); 00387 class KActionCollectionPrivate; 00388 KActionCollectionPrivate *d; 00389 }; 00390 00391 #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 Tue Apr 12 22:56:19 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003