karm

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
KDE Home | KDE Accessibility Home | Description of Access Keys