MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / ShowPopupMenu

Function ShowPopupMenu

Win32/Win32App.cpp:50–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48 bool g_isWinService;
49
50 static void ShowPopupMenu (HWND hWnd, POINT *curpos, int wDefaultItem)
51 {
52 HMENU hPopup = CreatePopupMenu();
53 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_CONSOLE, "Open &console");
54 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_DATADIR, "Open &datadir");
55 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_APP, "&Show app");
56 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_ABOUT, "&About...");
57 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
58 if(!i2p::context.AcceptsTunnels())
59 InsertMenu (hPopup, -1,
60 i2p::util::DaemonWin32::Instance ().isGraceful ? MF_BYPOSITION | MF_STRING | MF_GRAYED : MF_BYPOSITION | MF_STRING,
61 ID_ACCEPT_TRANSIT, "Accept &transit");
62 else
63 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_DECLINE_TRANSIT, "Decline &transit");
64 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_RELOAD, "&Reload tunnels config");
65 if (!i2p::util::DaemonWin32::Instance ().isGraceful)
66 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_GRACEFUL_SHUTDOWN, "&Graceful shutdown");
67 else
68 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_STOP_GRACEFUL_SHUTDOWN, "Stop &graceful shutdown");
69 InsertMenu (hPopup, -1, MF_BYPOSITION | MF_STRING, ID_EXIT, "E&xit");
70 SetMenuDefaultItem (hPopup, ID_CONSOLE, FALSE);
71 SendMessage (hWnd, WM_INITMENUPOPUP, (WPARAM)hPopup, 0);
72
73 POINT p;
74 if (!curpos)
75 {
76 GetCursorPos (&p);
77 curpos = &p;
78 }
79
80 WORD cmd = TrackPopupMenu (hPopup, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD | TPM_NONOTIFY, curpos->x, curpos->y, 0, hWnd, NULL);
81 SendMessage (hWnd, WM_COMMAND, cmd, 0);
82
83 DestroyMenu(hPopup);
84 }
85
86 static void AddTrayIcon (HWND hWnd, bool notify = false)
87 {

Callers 1

CALLBACKFunction · 0.85

Calls 1

AcceptsTunnelsMethod · 0.80

Tested by

no test coverage detected