karm
kaccelmenuwatch.h00001
00002
00003
00004
00005 #ifndef KARM_K_ACCEL_MENU_WATCH_H
00006 #define KARM_K_ACCEL_MENU_WATCH_H
00007
00008 #include <qobject.h>
00009 #include <qptrlist.h>
00010
00011 #include <kaccel.h>
00012
00013 class QPopupMenu;
00014
00035 class KAccelMenuWatch : public QObject
00036 {
00037 Q_OBJECT
00038
00039 private:
00040 enum AccelType { StdAccel, StringAccel };
00041
00042 typedef struct AccelItem {
00043 QPopupMenu *menu;
00044 int itemId;
00045
00046 AccelType type;
00047
00048
00049 QString action;
00050 KStdAccel::StdAccel stdAction;
00051 } AccelItem;
00052
00053 KAccel *_accel;
00054 QPtrList<AccelItem> _accList;
00055 QPtrList<QPopupMenu> _menuList;
00056
00057 QPopupMenu *_menu;
00058
00059 KAccelMenuWatch::AccelItem *newAccelItem( QPopupMenu *menu,
00060 int itemId, AccelType type );
00061
00062 public:
00066 KAccelMenuWatch( KAccel *accel, QObject *parent = 0 );
00067
00071 virtual ~KAccelMenuWatch() {}
00072
00079 void setMenu( QPopupMenu *menu );
00080
00085 QPopupMenu *currentMenu() const { return _menu; }
00086
00091 void connectAccel( int itemId, const char *action );
00092
00096 void connectAccel( int itemId, KStdAccel::StdAccel );
00097
00098 public slots:
00103 void updateMenus();
00104
00105 private slots:
00106 void removeDeadMenu();
00107
00108 private:
00109 KAccelMenuWatch& operator=( const KAccelMenuWatch& );
00110 KAccelMenuWatch( const KAccelMenuWatch& );
00111 };
00112
00113 #endif // KARM_K_ACCEL_MENU_WATCH_H
|