karm

tdeaccelmenuwatch.h

00001 /*
00002 * tdeaccelmenuwatch.h -- Declaration of class TDEAccelMenuWatch.
00003 * Generated by newclass on Thu Jan  7 15:05:26 EST 1999.
00004 */
00005 #ifndef KARM_TDE_ACCEL_MENU_WATCH_H
00006 #define KARM_TDE_ACCEL_MENU_WATCH_H
00007 
00008 #include <tqobject.h>
00009 #include <tqptrlist.h>
00010 
00011 #include <tdeaccel.h>
00012 
00013 class TQPopupMenu;
00014 
00035 class TDEAccelMenuWatch : public TQObject
00036 {
00037   Q_OBJECT
00038   
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       TDEStdAccel::StdAccel stdAction;
00052     } AccelItem;
00053 
00054     TDEAccel *_accel;
00055     TQPtrList<AccelItem> _accList;
00056     TQPtrList<TQPopupMenu> _menuList;
00057 
00058     TQPopupMenu  *_menu;
00059 
00060     TDEAccelMenuWatch::AccelItem *newAccelItem( TQPopupMenu *menu, 
00061                                               int itemId, AccelType type );
00062 
00063   public:
00067     TDEAccelMenuWatch( TDEAccel *accel, TQObject *parent = 0 );
00068 
00072     virtual ~TDEAccelMenuWatch() {}
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, TDEStdAccel::StdAccel );
00098   
00099   public slots:
00104     void updateMenus();
00105 
00106   private slots:
00107     void removeDeadMenu();
00108 
00109   private:
00110     TDEAccelMenuWatch& operator=( const TDEAccelMenuWatch& );
00111     TDEAccelMenuWatch( const TDEAccelMenuWatch& );
00112 };
00113 
00114 #endif // KARM_K_ACCEL_MENU_WATCH_H