karm

kaccelmenuwatch.h
1 /*
2 * kaccelmenuwatch.h -- Declaration of class KAccelMenuWatch.
3 * Generated by newclass on Thu Jan 7 15:05:26 EST 1999.
4 */
5 #ifndef KARM_K_ACCEL_MENU_WATCH_H
6 #define KARM_K_ACCEL_MENU_WATCH_H
7 
8 #include <tqobject.h>
9 #include <tqptrlist.h>
10 
11 #include <kaccel.h>
12 
13 class TQPopupMenu;
14 
35 class KAccelMenuWatch : public TQObject
36 {
37  Q_OBJECT
38  TQ_OBJECT
39 
40  private:
41  enum AccelType { StdAccel, StringAccel };
42 
43  typedef struct AccelItem {
44  TQPopupMenu *menu;
45  int itemId;
46 
47  AccelType type;
48 
49  // only one of these is used at a time
50  TQString action;
51  KStdAccel::StdAccel stdAction;
52  } AccelItem;
53 
54  KAccel *_accel;
55  TQPtrList<AccelItem> _accList;
56  TQPtrList<TQPopupMenu> _menuList;
57 
58  TQPopupMenu *_menu;
59 
60  KAccelMenuWatch::AccelItem *newAccelItem( TQPopupMenu *menu,
61  int itemId, AccelType type );
62 
63  public:
67  KAccelMenuWatch( KAccel *accel, TQObject *parent = 0 );
68 
72  virtual ~KAccelMenuWatch() {}
73 
80  void setMenu( TQPopupMenu *menu );
81 
86  TQPopupMenu *currentMenu() const { return _menu; }
87 
92  void connectAccel( int itemId, const char *action );
93 
97  void connectAccel( int itemId, KStdAccel::StdAccel );
98 
99  public slots:
104  void updateMenus();
105 
106  private slots:
107  void removeDeadMenu();
108 
109  private:
110  KAccelMenuWatch& operator=( const KAccelMenuWatch& );
112 };
113 
114 #endif // KARM_K_ACCEL_MENU_WATCH_H