kaccelmenuwatch.h
00001 /* 00002 * kaccelmenuwatch.h -- Declaration of class KAccelMenuWatch. 00003 * Generated by newclass on Thu Jan 7 15:05:26 EST 1999. 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 // only one of these is used at a time 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