summaryrefslogtreecommitdiff
path: root/noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h
Unidiff
Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h b/noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h
new file mode 100644
index 0000000..5eebe78
--- a/dev/null
+++ b/noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h
@@ -0,0 +1,110 @@
1#ifndef _MENU_LAUNCHER_H_
2#define _MENU_LAUNCHER_H_
3
4#include <qstring.h>
5#include <qstringlist.h>
6#include <qvaluelist.h>
7#include <qwindowsystem_qws.h>
8#define INCLUDE_MENUITEM_DEF
9#include <qpopupmenu.h>
10#include <qpoint.h>
11#include <qtimer.h>
12#include <qgfx_qws.h>
13
14#include <qpe/global.h>
15#include <qpe/applnk.h>
16#include <qpe/config.h>
17#include <qpe/qpeapplication.h>
18
19#include "ExtensionInterface.h"
20#include "MenuTitle.h"
21#include "KeyNames.h"
22#include "ConfigEx.h"
23#include "LnkWrapper.h"
24#include "QPopupMenuEx.h"
25
26struct ItemInfo{
27 ItemInfo(QString g=QString::null, QString e=QString::null)
28 : group(g), entry(e){}
29 QString group;
30 QString entry;
31};
32
33class MenuLauncher : public QObject, public ExtensionInterface
34{
35 Q_OBJECT
36public:
37 MenuLauncher(const QString& kind = "menu");
38 virtual ~MenuLauncher();
39
40 typedef QValueList<ItemInfo> ItemList;
41
42 virtual bool onKeyPress(int keycode);
43 virtual bool onModRelease(int modcode);
44 virtual int getKeycode()
45 {
46 return(m_keycode);
47 }
48 virtual int getKeymask()
49 {
50 return(m_keymask);
51 }
52 virtual const QValueList<int>& getModcodes()
53 {
54 return(m_modcodes);
55 }
56 virtual void setKeycode(int keycode)
57 {
58 m_keycode = keycode;
59 }
60 virtual void setKeymask(int keymask)
61 {
62 m_keymask = keymask;
63 }
64 virtual void setModcodes(const QValueList<int>& modcodes)
65 {
66 m_modcodes = modcodes;
67 }
68 virtual const QString& kind()
69 {
70 return(m_kind);
71 }
72public slots:
73 void show();
74 void select();
75 void select(int id);
76 void highlight(int id);
77private:
78 int m_keycode;
79 int m_keymask;
80 QString m_kind;
81 QValueList<int> m_modcodes;
82
83 int m_submenuTimeout;
84 bool m_isShowing;
85 bool m_enablePopup;
86 int m_id;
87 QPopupMenu* m_pMenu;
88 QPopupMenu* m_pTopMenu;
89 QDateTime m_lastmodify;
90
91 QMap<QObject*, int> m_oLastId;
92 QValueList<QPopupMenu*> m_oMenuList;
93 ItemList m_oItemList;
94 QTimer* m_pTimer;
95
96 QStringList m_args;
97
98 QString getMenuText(const QString& key, const QString& name);
99 QPopupMenu* initMenu(QWidget* parent, const QString& name);
100 int buildMenu(bool force=false);
101 int buildMenu(const QString& section, QPopupMenu* pMenu, int& id);
102 void clearSubMenu();
103 void init();
104 void next();
105private slots:
106 bool eventFilter(QObject* o, QEvent* e);
107 void execute();
108};
109
110#endif /* _MENU_LAUNCHER_H_ */