MCPcopy Create free account
hub / github.com/chcg/NPP_HexEditor / ChangeNppMenu

Function ChangeNppMenu

HexEditor/src/misc/ModifyMenu.cpp:49–301  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48
49void ChangeNppMenu(HWND hWnd, BOOL toHexStyle, HWND hSci)
50{
51 extern HWND g_HSource;
52 if ((toHexStyle == isMenuHex) || (hSci != g_HSource))
53 return;
54
55 TCHAR text[menuItemSize];
56 HMENU hMenu = (HMENU)::SendMessage(hWnd, NPPM_INTERNAL_GETMENU, 0, 0);
57
58 if (hMenu == NULL)
59 return;
60
61 /* store if menu will be modified */
62 isMenuHex = toHexStyle;
63
64 if (vMenuInfoFile.size() == 0) {
65 StoreNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_FILE), vMenuInfoFile);
66 }
67 else {
68 UpdateNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_FILE), vMenuInfoFile);
69 }
70 if (vMenuInfoEdit.size() == 0) {
71 StoreNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_EDIT), vMenuInfoEdit);
72 }
73 else {
74 UpdateNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_EDIT), vMenuInfoEdit);
75 }
76 if (vMenuInfoSearch.size() == 0) {
77 StoreNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_SEARCH), vMenuInfoSearch);
78 }
79 else {
80 UpdateNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_SEARCH), vMenuInfoSearch);
81 }
82 if (vMenuInfoView.size() == 0) {
83 StoreNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_VIEW), vMenuInfoView);
84 }
85 else {
86 UpdateNppMenuInfo(::GetSubMenu(hMenu, MENUINDEX_VIEW), vMenuInfoView);
87 }
88
89 /* create own menu for FILE */
90 if (vMenuInfoFile.size() != 0)
91 {
92 HMENU hMenuTemp = ::CreatePopupMenu();
93
94 if (isMenuHex == TRUE)
95 {
96 BOOL lastSep = FALSE;
97 for (size_t nPos = 0; nPos < vMenuInfoFile.size(); nPos++) {
98 switch (vMenuInfoFile[nPos].uID) {
99 case 0:
100 {
101 if (vMenuInfoFile[nPos].uFlags & MF_SEPARATOR) {
102 lastSep = TRUE;
103 }
104 else {
105 lastSep = FALSE;
106 }

Callers 1

doDialogMethod · 0.85

Calls 5

StoreNppMenuInfoFunction · 0.85
UpdateNppMenuInfoFunction · 0.85
CreateNppMenuFunction · 0.85
DestroyNppMenuHndlFunction · 0.85
sizeMethod · 0.80

Tested by

no test coverage detected