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 <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
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
|