blob: 61d32b913d33816d06e6514a09f0c6de665bd869 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#ifndef _CONTEXTMENU_H
#define _CONTEXTMENU_H
#include <api/wnd/popup.h>
#include <bfc/common.h>
class DragItem;
class ContextMenuEntry;
class ContextMenuEntryCompare;
class svc_contextCmd;
class ContextMenu : private PopupMenu, private PopupMenuCallback
{
public:
ContextMenu(ifc_window *sourceWnd, DragItem *item, bool autopop=TRUE, const wchar_t *menu_path=NULL);
ContextMenu(ifc_window *sourceWnd, int x, int y, DragItem *item, bool autopop=TRUE, const wchar_t *menu_path=NULL);
virtual ~ContextMenu();
void addDragItem(DragItem *item, const wchar_t *menu_path=NULL);
using PopupMenu::popAtXY;
using PopupMenu::popAtMouse;
using PopupMenu::addCommand;
using PopupMenu::addSeparator;
using PopupMenu::getNumCommands;
protected:
ContextMenu(DragItem *item, const wchar_t *menu_path);
private:
virtual void onPostPop(intptr_t result);
void populate();
virtual PopupMenu *popupMenuCallback(PopupMenu *parent, intptr_t param);
DragItem *item;
StringW menu_path;
PtrList<svc_contextCmd> svclist;
PtrListQuickSorted<ContextMenuEntry, ContextMenuEntryCompare> entries;
};
#endif
|