Diffstat (limited to 'noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/applets/keyhelper/keyhelperapplet/extension/MenuLauncher.h | 110 |
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 | |||
26 | struct ItemInfo{ | ||
27 | ItemInfo(QString g=QString::null, QString e=QString::null) | ||
28 | : group(g), entry(e){} | ||
29 | QString group; | ||
30 | QString entry; | ||
31 | }; | ||
32 | |||
33 | class MenuLauncher : public QObject, public ExtensionInterface | ||
34 | { | ||
35 | Q_OBJECT | ||
36 | public: | ||
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 | } | ||
72 | public slots: | ||
73 | void show(); | ||
74 | void select(); | ||
75 | void select(int id); | ||
76 | void highlight(int id); | ||
77 | private: | ||
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(); | ||
105 | private slots: | ||
106 | bool eventFilter(QObject* o, QEvent* e); | ||
107 | void execute(); | ||
108 | }; | ||
109 | |||
110 | #endif /* _MENU_LAUNCHER_H_ */ | ||