Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MenuLauncher.h

Go to the documentation of this file.
00001 #ifndef _MENU_LAUNCHER_H_
00002 #define _MENU_LAUNCHER_H_
00003 
00004 #include <qstring.h>
00005 #include <qstringlist.h>
00006 #include <qvaluelist.h>
00007 #include <qwindowsystem_qws.h>
00008 #define INCLUDE_MENUITEM_DEF
00009 #include <qpopupmenu.h>
00010 #include <qpoint.h>
00011 #include <qtimer.h>
00012 #include <qgfx_qws.h>
00013 
00014 #include <qpe/global.h>
00015 #include <qpe/applnk.h>
00016 #include <qpe/config.h>
00017 #include <qpe/qpeapplication.h>
00018 
00019 #include "ExtensionInterface.h"
00020 #include "MenuTitle.h"
00021 #include "KeyNames.h"
00022 #include "ConfigEx.h"
00023 #include "LnkWrapper.h"
00024 #include "QPopupMenuEx.h"
00025 
00026 struct ItemInfo{
00027         ItemInfo(QString g=QString::null, QString e=QString::null)
00028                 : group(g), entry(e){}
00029         QString group;
00030         QString entry;
00031 };
00032 
00033 class MenuLauncher : public QObject, public ExtensionInterface
00034 {
00035         Q_OBJECT
00036 public:
00037         MenuLauncher(const QString& kind = "menu");
00038         virtual ~MenuLauncher();
00039 
00040         typedef QValueList<ItemInfo> ItemList;
00041 
00042         virtual bool onKeyPress(int keycode);
00043         virtual bool onModRelease(int modcode);
00044         virtual int getKeycode()
00045         {
00046                 return(m_keycode);
00047         }
00048         virtual int getKeymask()
00049         {
00050                 return(m_keymask);
00051         }
00052         virtual const QValueList<int>& getModcodes()
00053         {
00054                 return(m_modcodes);
00055         }
00056         virtual void setKeycode(int keycode)
00057         {
00058                 m_keycode = keycode;
00059         }
00060         virtual void setKeymask(int keymask)
00061         {
00062                 m_keymask = keymask;
00063         }
00064         virtual void setModcodes(const QValueList<int>& modcodes)
00065         {
00066                 m_modcodes = modcodes;
00067         }
00068         virtual const QString& kind()
00069         {
00070                 return(m_kind);
00071         }
00072 public slots:
00073         void show();
00074         void select();
00075         void select(int id);
00076         void highlight(int id);
00077 private:
00078         int m_keycode;
00079         int m_keymask;
00080         QString m_kind;
00081         QValueList<int> m_modcodes;
00082 
00083         int m_submenuTimeout;
00084         bool m_isShowing;
00085         bool m_enablePopup;
00086         int m_id;
00087         QPopupMenu* m_pMenu;
00088         QPopupMenu* m_pTopMenu;
00089         QDateTime m_lastmodify;
00090 
00091         QMap<QObject*, int> m_oLastId;
00092         QValueList<QPopupMenu*> m_oMenuList;
00093         ItemList m_oItemList;
00094         QTimer* m_pTimer;
00095 
00096         QStringList m_args;
00097 
00098         QString getMenuText(const QString& key, const QString& name);
00099         QPopupMenu* initMenu(QWidget* parent, const QString& name);
00100         int buildMenu(bool force=false);
00101         int buildMenu(const QString& section, QPopupMenu* pMenu, int& id);
00102         void clearSubMenu();
00103         void init();
00104         void next();
00105 private slots:
00106         bool eventFilter(QObject* o, QEvent* e);
00107         void execute();
00108 };
00109 
00110 #endif /* _MENU_LAUNCHER_H_ */

Generated on Sat Nov 5 16:16:43 2005 for OPIE by  doxygen 1.4.2