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 <tqobject.h> 00009 #include <tqptrlist.h> 00010 00011 #include <kaccel.h> 00012 00013 class TQPopupMenu; 00014 00035 class KAccelMenuWatch : public TQObject 00036 { 00037 Q_OBJECT 00038 TQ_OBJECT 00039 00040 private: 00041 enum AccelType { StdAccel, StringAccel }; 00042 00043 typedef struct AccelItem { 00044 TQPopupMenu *menu; 00045 int itemId; 00046 00047 AccelType type; 00048 00049 // only one of these is used at a time 00050 TQString action; 00051 KStdAccel::StdAccel stdAction; 00052 } AccelItem; 00053 00054 KAccel *_accel; 00055 TQPtrList<AccelItem> _accList; 00056 TQPtrList<TQPopupMenu> _menuList; 00057 00058 TQPopupMenu *_menu; 00059 00060 KAccelMenuWatch::AccelItem *newAccelItem( TQPopupMenu *menu, 00061 int itemId, AccelType type ); 00062 00063 public: 00067 KAccelMenuWatch( KAccel *accel, TQObject *parent = 0 ); 00068 00072 virtual ~KAccelMenuWatch() {} 00073 00080 void setMenu( TQPopupMenu *menu ); 00081 00086 TQPopupMenu *currentMenu() const { return _menu; } 00087 00092 void connectAccel( int itemId, const char *action ); 00093 00097 void connectAccel( int itemId, KStdAccel::StdAccel ); 00098 00099 public slots: 00104 void updateMenus(); 00105 00106 private slots: 00107 void removeDeadMenu(); 00108 00109 private: 00110 KAccelMenuWatch& operator=( const KAccelMenuWatch& ); 00111 KAccelMenuWatch( const KAccelMenuWatch& ); 00112 }; 00113 00114 #endif // KARM_K_ACCEL_MENU_WATCH_H