00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
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 © );
00094
virtual ~KActionCollection();
00095
00100
virtual void setWidget(
QWidget *widget );
00101
00109
void setAutoConnectShortcuts(
bool );
00110
00117
bool isAutoConnectShortcuts();
00118
00125
00126
00131
bool addDocCollection( KActionCollection* pDoc );
00132
00134
00135
00141
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
00157
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
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
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