From ad748b0b3b65600b2c16e92c1ec54ad7f5b2b8f4 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Wed, 20 Mar 2024 07:32:52 +0900 Subject: [PATCH] [EXPLORER][SHELL32] Smaller Start Menu (#6646) Improve customization of Start Menu. JIRA issue: CORE-19494 - Add SmallStartMenu flag to TW_STRUCKRECTS2 structure. - Add IDS_ADVANCED_SMALL_START_MENU resource string. - Update g_TaskbarSettings.sr.SmallStartMenu via a callback function. - Check g_TaskbarSettings.sr.SmallStartMenu when Start Menu is updated. --- base/shell/explorer/precomp.h | 1 + base/shell/explorer/resource.h | 1 + base/shell/explorer/settings.cpp | 1 + base/shell/explorer/startmnu.cpp | 4 +- base/shell/explorer/startmnucust.cpp | 115 +++++++++++-------- base/shell/explorer/traywnd.cpp | 7 +- dll/win32/shell32/lang/bg-BG.rc | 1 + dll/win32/shell32/lang/ca-ES.rc | 1 + dll/win32/shell32/lang/cs-CZ.rc | 1 + dll/win32/shell32/lang/da-DK.rc | 1 + dll/win32/shell32/lang/de-DE.rc | 1 + dll/win32/shell32/lang/el-GR.rc | 1 + dll/win32/shell32/lang/en-GB.rc | 1 + dll/win32/shell32/lang/en-US.rc | 1 + dll/win32/shell32/lang/es-ES.rc | 1 + dll/win32/shell32/lang/et-EE.rc | 1 + dll/win32/shell32/lang/eu-ES.rc | 1 + dll/win32/shell32/lang/fi-FI.rc | 1 + dll/win32/shell32/lang/fr-FR.rc | 1 + dll/win32/shell32/lang/he-IL.rc | 1 + dll/win32/shell32/lang/hi-IN.rc | 1 + dll/win32/shell32/lang/hu-HU.rc | 1 + dll/win32/shell32/lang/id-ID.rc | 1 + dll/win32/shell32/lang/it-IT.rc | 1 + dll/win32/shell32/lang/ja-JP.rc | 1 + dll/win32/shell32/lang/ko-KR.rc | 1 + dll/win32/shell32/lang/nl-NL.rc | 1 + dll/win32/shell32/lang/no-NO.rc | 1 + dll/win32/shell32/lang/pl-PL.rc | 1 + dll/win32/shell32/lang/pt-BR.rc | 1 + dll/win32/shell32/lang/pt-PT.rc | 1 + dll/win32/shell32/lang/ro-RO.rc | 1 + dll/win32/shell32/lang/ru-RU.rc | 1 + dll/win32/shell32/lang/sk-SK.rc | 1 + dll/win32/shell32/lang/sl-SI.rc | 1 + dll/win32/shell32/lang/sq-AL.rc | 1 + dll/win32/shell32/lang/sv-SE.rc | 1 + dll/win32/shell32/lang/tr-TR.rc | 1 + dll/win32/shell32/lang/uk-UA.rc | 1 + dll/win32/shell32/lang/zh-CN.rc | 1 + dll/win32/shell32/lang/zh-HK.rc | 1 + dll/win32/shell32/lang/zh-TW.rc | 1 + dll/win32/shell32/shellmenu/CMenuDeskBar.cpp | 5 +- dll/win32/shell32/shresdef.h | 1 + 44 files changed, 119 insertions(+), 52 deletions(-) diff --git a/base/shell/explorer/precomp.h b/base/shell/explorer/precomp.h index ad94ada234a..16087fd6e21 100644 --- a/base/shell/explorer/precomp.h +++ b/base/shell/explorer/precomp.h @@ -205,6 +205,7 @@ typedef struct _TW_STUCKRECTS2 DWORD AlwaysOnTop : 1; DWORD SmallIcons : 1; DWORD HideClock : 1; + DWORD SmallStartMenu : 1; }; }; DWORD Position; diff --git a/base/shell/explorer/resource.h b/base/shell/explorer/resource.h index f78d7538e9a..acc350843e6 100644 --- a/base/shell/explorer/resource.h +++ b/base/shell/explorer/resource.h @@ -116,6 +116,7 @@ #define IDS_ADVANCED_EXPAND_NET_CONNECTIONS 30473 #define IDS_ADVANCED_DISPLAY_RUN 30474 #define IDS_ADVANCED_DISPLAY_ADMINTOOLS 30476 +#define IDS_ADVANCED_SMALL_START_MENU 30477 /*******************************************************************************\ |* Control Resources *| diff --git a/base/shell/explorer/settings.cpp b/base/shell/explorer/settings.cpp index f5932ef42cb..35ee8ba29d5 100644 --- a/base/shell/explorer/settings.cpp +++ b/base/shell/explorer/settings.cpp @@ -82,6 +82,7 @@ BOOL TaskbarSettings::Load() sr.AlwaysOnTop = TRUE; sr.SmallIcons = TRUE; sr.HideClock = FALSE; + sr.SmallStartMenu = FALSE; sr.Rect.left = sr.Rect.top = 0; sr.Rect.bottom = sr.Rect.right = 1; sr.Size.cx = sr.Size.cy = 0; diff --git a/base/shell/explorer/startmnu.cpp b/base/shell/explorer/startmnu.cpp index d306010bba0..450d6e63bbb 100644 --- a/base/shell/explorer/startmnu.cpp +++ b/base/shell/explorer/startmnu.cpp @@ -97,9 +97,7 @@ CreateStartMenu(IN ITrayWindow *Tray, if (FAILED_UNEXPECTEDLY(hr)) return NULL; - UpdateStartMenu(pMp, - hbmBanner, - bSmallIcons); + UpdateStartMenu(pMp, hbmBanner, bSmallIcons); *ppMenuBand = pMb.Detach(); diff --git a/base/shell/explorer/startmnucust.cpp b/base/shell/explorer/startmnucust.cpp index 922d4581aab..0d456fc8ee0 100644 --- a/base/shell/explorer/startmnucust.cpp +++ b/base/shell/explorer/startmnucust.cpp @@ -1,26 +1,15 @@ /* - * ReactOS Explorer - * - * Copyright 2006 - 2007 Thomas Weidenmueller - * 2015 Robert Naumann - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * PROJECT: ReactOS Explorer + * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) + * PURPOSE: "Customize Start Menu" dialog + * COPYRIGHT: Copyright 2006-2007 Thomas Weidenmueller + * Copyright 2015 Robert Naumann + * Copyright 2024 Katayama Hirofumi MZ */ #include "precomp.h" +// TreeView checkbox state indexes (Use with INDEXTOSTATEIMAGEMASK macro) #define I_UNCHECKED 1 #define I_CHECKED 2 @@ -75,58 +64,94 @@ static VOID OnClearRecentItems(HWND hwnd) EnableWindow(GetDlgItem(hwnd, IDC_CLASSICSTART_CLEAR), RecentHasShortcut(hwnd)); } -struct CUSTOMIZE_ENTRY; -typedef DWORD (CALLBACK *FN_CUSTOMIZE_READ)(const CUSTOMIZE_ENTRY *entry); -typedef BOOL (CALLBACK *FN_CUSTOMIZE_WRITE)(const CUSTOMIZE_ENTRY *entry, DWORD dwValue); +struct CUSTOM_ENTRY; -struct CUSTOMIZE_ENTRY +typedef BOOL (CALLBACK *FN_CUSTOM_GET)(const CUSTOM_ENTRY *entry); +typedef VOID (CALLBACK *FN_CUSTOM_SET)(const CUSTOM_ENTRY *entry, BOOL bValue); + +struct CUSTOM_ENTRY { LPARAM id; LPCWSTR name; BOOL bDefaultValue; + FN_CUSTOM_GET fnGetValue; + FN_CUSTOM_SET fnSetValue; RESTRICTIONS policy1, policy2; }; -static const CUSTOMIZE_ENTRY s_CustomizeEntries[] = +static BOOL CALLBACK CustomGetAdvanced(const CUSTOM_ENTRY *entry) +{ + return GetAdvancedBool(entry->name, entry->bDefaultValue); +} + +static VOID CALLBACK CustomSetAdvanced(const CUSTOM_ENTRY *entry, BOOL bValue) +{ + SetAdvancedDword(entry->name, bValue); +} + +static BOOL CALLBACK CustomGetSmallStartMenu(const CUSTOM_ENTRY *entry) +{ + return g_TaskbarSettings.sr.SmallStartMenu; +} + +static VOID CALLBACK CustomSetSmallStartMenu(const CUSTOM_ENTRY *entry, BOOL bValue) +{ + g_TaskbarSettings.sr.SmallStartMenu = bValue; +} + +static const CUSTOM_ENTRY s_CustomEntries[] = { { IDS_ADVANCED_DISPLAY_ADMINTOOLS, L"StartMenuAdminTools", TRUE, + CustomGetAdvanced, CustomSetAdvanced, }, { IDS_ADVANCED_DISPLAY_FAVORITES, L"StartMenuFavorites", FALSE, - REST_NOFAVORITESMENU + CustomGetAdvanced, CustomSetAdvanced, + REST_NOFAVORITESMENU, }, { IDS_ADVANCED_DISPLAY_LOG_OFF, L"StartMenuLogoff", FALSE, - REST_STARTMENULOGOFF + CustomGetAdvanced, CustomSetAdvanced, + REST_STARTMENULOGOFF, }, { IDS_ADVANCED_DISPLAY_RUN, L"StartMenuRun", TRUE, - REST_NORUN + CustomGetAdvanced, CustomSetAdvanced, + REST_NORUN, }, { IDS_ADVANCED_EXPAND_MY_DOCUMENTS, L"CascadeMyDocuments", FALSE, - REST_NOSMMYDOCS + CustomGetAdvanced, CustomSetAdvanced, + REST_NOSMMYDOCS, }, { IDS_ADVANCED_EXPAND_MY_PICTURES, L"CascadeMyPictures", FALSE, - REST_NOSMMYPICS + CustomGetAdvanced, CustomSetAdvanced, + REST_NOSMMYPICS, }, { IDS_ADVANCED_EXPAND_CONTROL_PANEL, L"CascadeControlPanel", FALSE, + CustomGetAdvanced, CustomSetAdvanced, REST_NOSETFOLDERS, REST_NOCONTROLPANEL, }, { IDS_ADVANCED_EXPAND_PRINTERS, L"CascadePrinters", FALSE, - REST_NOSETFOLDERS + CustomGetAdvanced, CustomSetAdvanced, + REST_NOSETFOLDERS, }, { IDS_ADVANCED_EXPAND_NET_CONNECTIONS, L"CascadeNetworkConnections", FALSE, - REST_NOSETFOLDERS, REST_NONETWORKCONNECTIONS + CustomGetAdvanced, CustomSetAdvanced, + REST_NOSETFOLDERS, REST_NONETWORKCONNECTIONS, + }, + { + IDS_ADVANCED_SMALL_START_MENU, NULL, FALSE, + CustomGetSmallStartMenu, CustomSetSmallStartMenu, }, }; -static VOID AddCustomizeItem(HWND hTreeView, const CUSTOMIZE_ENTRY *entry) +static VOID AddCustomItem(HWND hTreeView, const CUSTOM_ENTRY *entry) { if (SHRestricted(entry->policy1) || SHRestricted(entry->policy2)) { @@ -134,17 +159,17 @@ static VOID AddCustomizeItem(HWND hTreeView, const CUSTOMIZE_ENTRY *entry) return; // Restricted. Don't show } - TV_INSERTSTRUCT Insert = { TVI_ROOT, TVI_LAST }; - Insert.item.mask = TVIF_TEXT | TVIF_STATE | TVIF_PARAM; - WCHAR szText[MAX_PATH]; LoadStringW(GetModuleHandleW(L"shell32.dll"), entry->id, szText, _countof(szText)); + + BOOL bChecked = entry->fnGetValue(entry); + TRACE("%p: %d\n", entry->id, bChecked); + + TV_INSERTSTRUCT Insert = { TVI_ROOT, TVI_LAST, { TVIF_TEXT | TVIF_STATE | TVIF_PARAM } }; Insert.item.pszText = szText; Insert.item.lParam = entry->id; Insert.item.stateMask = TVIS_STATEIMAGEMASK; - BOOL bChecked = GetAdvancedBool(entry->name, entry->bDefaultValue); Insert.item.state = INDEXTOSTATEIMAGEMASK(bChecked ? I_CHECKED : I_UNCHECKED); - TRACE("%p: %d\n", entry->id, bChecked); TreeView_InsertItem(hTreeView, &Insert); } @@ -157,9 +182,9 @@ static void CustomizeClassic_OnInitDialog(HWND hwnd) DWORD_PTR style = GetWindowLongPtrW(hTreeView, GWL_STYLE); SetWindowLongPtrW(hTreeView, GWL_STYLE, style | TVS_CHECKBOXES); - for (auto& entry : s_CustomizeEntries) + for (auto& entry : s_CustomEntries) { - AddCustomizeItem(hTreeView, &entry); + AddCustomItem(hTreeView, &entry); } } @@ -171,13 +196,12 @@ static BOOL CustomizeClassic_OnOK(HWND hwnd) hItem != NULL; hItem = TreeView_GetNextVisible(hTreeView, hItem)) { - TV_ITEM item = { TVIF_PARAM | TVIF_STATE }; - item.hItem = hItem; + TV_ITEM item = { TVIF_PARAM | TVIF_STATE, hItem }; item.stateMask = TVIS_STATEIMAGEMASK; TreeView_GetItem(hTreeView, &item); BOOL bChecked = !!(item.state & INDEXTOSTATEIMAGEMASK(I_CHECKED)); - for (auto& entry : s_CustomizeEntries) + for (auto& entry : s_CustomEntries) { if (SHRestricted(entry.policy1) || SHRestricted(entry.policy2)) continue; @@ -185,7 +209,7 @@ static BOOL CustomizeClassic_OnOK(HWND hwnd) if (item.lParam == entry.id) { TRACE("%p: %d\n", item.lParam, bChecked); - SetAdvancedDword(entry.name, bChecked); + entry.fnSetValue(&entry, bChecked); break; } } @@ -220,9 +244,7 @@ INT_PTR CALLBACK CustomizeClassicProc(HWND hwnd, UINT Message, WPARAM wParam, LP break; case IDOK: if (CustomizeClassic_OnOK(hwnd)) - { EndDialog(hwnd, IDOK); - } break; case IDCANCEL: EndDialog(hwnd, IDCANCEL); @@ -230,9 +252,10 @@ INT_PTR CALLBACK CustomizeClassicProc(HWND hwnd, UINT Message, WPARAM wParam, LP } break; default: - return FALSE; + break; } - return TRUE; + + return FALSE; } VOID ShowCustomizeClassic(HINSTANCE hInst, HWND hExplorer) diff --git a/base/shell/explorer/traywnd.cpp b/base/shell/explorer/traywnd.cpp index bfb9abb345c..1bc0a9a8999 100644 --- a/base/shell/explorer/traywnd.cpp +++ b/base/shell/explorer/traywnd.cpp @@ -2554,8 +2554,9 @@ ChangePos: RegLoadSettings(); /* Create and initialize the start menu */ + BOOL bSmallStartMenu = g_TaskbarSettings.sr.SmallStartMenu; HBITMAP hbmBanner = LoadBitmapW(hExplorerInstance, MAKEINTRESOURCEW(IDB_STARTMENU)); - m_StartMenuPopup = CreateStartMenu(this, &m_StartMenuBand, hbmBanner, 0); + m_StartMenuPopup = CreateStartMenu(this, &m_StartMenuBand, hbmBanner, bSmallStartMenu); /* Create the task band */ hRet = CTaskBand_CreateInstance(this, m_StartButton.m_hWnd, IID_PPV_ARG(IDeskBand, &m_TaskBand)); @@ -2663,8 +2664,10 @@ ChangePos: /* Re-create the start menu */ HideStartMenu(); m_StartMenuBand.Release(); + + BOOL bSmallStartMenu = g_TaskbarSettings.sr.SmallStartMenu; HBITMAP hbmBanner = LoadBitmapW(hExplorerInstance, MAKEINTRESOURCEW(IDB_STARTMENU)); - m_StartMenuPopup = CreateStartMenu(this, &m_StartMenuBand, hbmBanner, FALSE); + m_StartMenuPopup = CreateStartMenu(this, &m_StartMenuBand, hbmBanner, bSmallStartMenu); } return 0; diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc index c64e11fba90..dcce57c64ac 100644 --- a/dll/win32/shell32/lang/bg-BG.rc +++ b/dll/win32/shell32/lang/bg-BG.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc index 948b4cbc51b..b36c381824a 100644 --- a/dll/win32/shell32/lang/ca-ES.rc +++ b/dll/win32/shell32/lang/ca-ES.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc index 84a0ea85e5e..e2e4f4c322f 100644 --- a/dll/win32/shell32/lang/cs-CZ.rc +++ b/dll/win32/shell32/lang/cs-CZ.rc @@ -1029,6 +1029,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc index 50fb44e6d03..5fbf26d6d38 100644 --- a/dll/win32/shell32/lang/da-DK.rc +++ b/dll/win32/shell32/lang/da-DK.rc @@ -1028,6 +1028,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc index 48a7798c2d3..e45ce1ab33c 100644 --- a/dll/win32/shell32/lang/de-DE.rc +++ b/dll/win32/shell32/lang/de-DE.rc @@ -1022,6 +1022,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Kleine Symbole im Startmenü anzeigen" IDS_NEWEXT_ADVANCED_LEFT "<< Er&weitert" IDS_NEWEXT_ADVANCED_RIGHT "&Erweitert >>" diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc index fa9951a6b29..5c84544f0a8 100644 --- a/dll/win32/shell32/lang/el-GR.rc +++ b/dll/win32/shell32/lang/el-GR.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc index d4a577ceeb2..89351a4b6fe 100644 --- a/dll/win32/shell32/lang/en-GB.rc +++ b/dll/win32/shell32/lang/en-GB.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc index 5f15dbff2b5..e7f7d50babf 100644 --- a/dll/win32/shell32/lang/en-US.rc +++ b/dll/win32/shell32/lang/en-US.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc index 15ab62ac077..3644ee18714 100644 --- a/dll/win32/shell32/lang/es-ES.rc +++ b/dll/win32/shell32/lang/es-ES.rc @@ -1030,6 +1030,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< A&vanzado" IDS_NEWEXT_ADVANCED_RIGHT "A&vanzado >>" diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc index bc0f0a8925e..0761124034f 100644 --- a/dll/win32/shell32/lang/et-EE.rc +++ b/dll/win32/shell32/lang/et-EE.rc @@ -1028,6 +1028,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< T&äpsemalt" IDS_NEWEXT_ADVANCED_RIGHT "Tä&psemalt >>" diff --git a/dll/win32/shell32/lang/eu-ES.rc b/dll/win32/shell32/lang/eu-ES.rc index 8d2330ae3eb..5cc69f46917 100644 --- a/dll/win32/shell32/lang/eu-ES.rc +++ b/dll/win32/shell32/lang/eu-ES.rc @@ -1026,6 +1026,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &Aurreratua" IDS_NEWEXT_ADVANCED_RIGHT "&Aurreratua >>" diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc index af229c16a50..08b4d1c7ea5 100644 --- a/dll/win32/shell32/lang/fi-FI.rc +++ b/dll/win32/shell32/lang/fi-FI.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc index cc0fe50d721..0c2befb2bd6 100644 --- a/dll/win32/shell32/lang/fr-FR.rc +++ b/dll/win32/shell32/lang/fr-FR.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Avancé" IDS_NEWEXT_ADVANCED_RIGHT "Avancé >>" diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc index 124e2a782c4..47817c203c2 100644 --- a/dll/win32/shell32/lang/he-IL.rc +++ b/dll/win32/shell32/lang/he-IL.rc @@ -1028,6 +1028,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &מתקדם" IDS_NEWEXT_ADVANCED_RIGHT "&מתקדם >>" diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc index 397e975dda7..f2d3dec9008 100644 --- a/dll/win32/shell32/lang/hi-IN.rc +++ b/dll/win32/shell32/lang/hi-IN.rc @@ -1023,6 +1023,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &उन्नत" IDS_NEWEXT_ADVANCED_RIGHT "&उन्नत >>" diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc index 436dfb73792..5ec159a8a47 100644 --- a/dll/win32/shell32/lang/hu-HU.rc +++ b/dll/win32/shell32/lang/hu-HU.rc @@ -1020,6 +1020,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &Haladó" IDS_NEWEXT_ADVANCED_RIGHT "&Haladó >>" diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc index 261ce8d012a..8a20ab6f104 100644 --- a/dll/win32/shell32/lang/id-ID.rc +++ b/dll/win32/shell32/lang/id-ID.rc @@ -1018,6 +1018,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Tin&gkat lanjut" IDS_NEWEXT_ADVANCED_RIGHT "Tin&gkat lanjut >>" diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc index 6af11defb3b..8d0819c6135 100644 --- a/dll/win32/shell32/lang/it-IT.rc +++ b/dll/win32/shell32/lang/it-IT.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc index 75537d33a5c..8cde76dd877 100644 --- a/dll/win32/shell32/lang/ja-JP.rc +++ b/dll/win32/shell32/lang/ja-JP.rc @@ -1018,6 +1018,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "「マイ ネットワーク」を展開" IDS_ADVANCED_DISPLAY_RUN "「ファイル名を指定して実行」を表示" IDS_ADVANCED_DISPLAY_ADMINTOOLS "「管理者ツール」を表示" + IDS_ADVANCED_SMALL_START_MENU "小さいアイコンでスタートメニューを表示" IDS_NEWEXT_ADVANCED_LEFT "<< 高度な設定(&V)" IDS_NEWEXT_ADVANCED_RIGHT "高度な設定(&V) >>" diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc index 81f89b1c4af..d93ae3c369a 100644 --- a/dll/win32/shell32/lang/ko-KR.rc +++ b/dll/win32/shell32/lang/ko-KR.rc @@ -1028,6 +1028,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc index 079fd5766e4..75300447bd3 100644 --- a/dll/win32/shell32/lang/nl-NL.rc +++ b/dll/win32/shell32/lang/nl-NL.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc index ea625e68480..8bd5a4687ea 100644 --- a/dll/win32/shell32/lang/no-NO.rc +++ b/dll/win32/shell32/lang/no-NO.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc index a308132b212..7d7d5dce6fc 100644 --- a/dll/win32/shell32/lang/pl-PL.rc +++ b/dll/win32/shell32/lang/pl-PL.rc @@ -1030,6 +1030,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Rozwiń polecenie Połączenia sieciowe" IDS_ADVANCED_DISPLAY_RUN "Wyświetl polecenie Uruchom" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Wyświetl polecenie Narzędzia administracyjne" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &Zaawansowane" IDS_NEWEXT_ADVANCED_RIGHT "&Zaawansowane >>" diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc index 32df4c6519b..860f5f3f6cf 100644 --- a/dll/win32/shell32/lang/pt-BR.rc +++ b/dll/win32/shell32/lang/pt-BR.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc index b4370d67019..f96b75bcc49 100644 --- a/dll/win32/shell32/lang/pt-PT.rc +++ b/dll/win32/shell32/lang/pt-PT.rc @@ -1020,6 +1020,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< A&vançado" IDS_NEWEXT_ADVANCED_RIGHT "Avança&do >>" diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc index c839f9d9db9..751389a52eb 100644 --- a/dll/win32/shell32/lang/ro-RO.rc +++ b/dll/win32/shell32/lang/ro-RO.rc @@ -1029,6 +1029,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< A&vansate" IDS_NEWEXT_ADVANCED_RIGHT "A&vansate >>" diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc index 48b24cbc26d..c016635a817 100644 --- a/dll/win32/shell32/lang/ru-RU.rc +++ b/dll/win32/shell32/lang/ru-RU.rc @@ -1030,6 +1030,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Раскрывать ""Сетевые подключения""" IDS_ADVANCED_DISPLAY_RUN "Отображать команду ""Выполнить""" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Отображать меню ""Администрирование""" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< До&полнительно" IDS_NEWEXT_ADVANCED_RIGHT "До&полнительно >>" diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc index c18a52969e5..f7396def72e 100644 --- a/dll/win32/shell32/lang/sk-SK.rc +++ b/dll/win32/shell32/lang/sk-SK.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc index 8f891e7422d..dccaa7d23db 100644 --- a/dll/win32/shell32/lang/sl-SI.rc +++ b/dll/win32/shell32/lang/sl-SI.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc index fe9f522ad0a..54ecf4e67b3 100644 --- a/dll/win32/shell32/lang/sq-AL.rc +++ b/dll/win32/shell32/lang/sq-AL.rc @@ -1028,6 +1028,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc index 514ffc671c1..0340ef25966 100644 --- a/dll/win32/shell32/lang/sv-SE.rc +++ b/dll/win32/shell32/lang/sv-SE.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< Ad&vanced" IDS_NEWEXT_ADVANCED_RIGHT "Ad&vanced >>" diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc index be6886bd04a..f4fae486971 100644 --- a/dll/win32/shell32/lang/tr-TR.rc +++ b/dll/win32/shell32/lang/tr-TR.rc @@ -1030,6 +1030,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< G&elişmiş" IDS_NEWEXT_ADVANCED_RIGHT "Ge&lişmiş >>" diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc index 83ca1877267..aba12606eb5 100644 --- a/dll/win32/shell32/lang/uk-UA.rc +++ b/dll/win32/shell32/lang/uk-UA.rc @@ -1021,6 +1021,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< &Додатково" IDS_NEWEXT_ADVANCED_RIGHT "&Додатково >>" diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc index 253eb1d3883..5c4669f8a77 100644 --- a/dll/win32/shell32/lang/zh-CN.rc +++ b/dll/win32/shell32/lang/zh-CN.rc @@ -1031,6 +1031,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< 高级(&V)" IDS_NEWEXT_ADVANCED_RIGHT "高级(&V) >>" diff --git a/dll/win32/shell32/lang/zh-HK.rc b/dll/win32/shell32/lang/zh-HK.rc index 7a3709ac5c6..5b96921b081 100644 --- a/dll/win32/shell32/lang/zh-HK.rc +++ b/dll/win32/shell32/lang/zh-HK.rc @@ -1029,6 +1029,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< 進階(&V)" IDS_NEWEXT_ADVANCED_RIGHT "進階(&V) >>" diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc index cc14c766b8d..4979047abe5 100644 --- a/dll/win32/shell32/lang/zh-TW.rc +++ b/dll/win32/shell32/lang/zh-TW.rc @@ -1030,6 +1030,7 @@ BEGIN IDS_ADVANCED_EXPAND_NET_CONNECTIONS "Expand Network Connections" IDS_ADVANCED_DISPLAY_RUN "Display Run" IDS_ADVANCED_DISPLAY_ADMINTOOLS "Display Administrative Tools" + IDS_ADVANCED_SMALL_START_MENU "Show Small Icons in Start menu" IDS_NEWEXT_ADVANCED_LEFT "<< 進階(&V)" IDS_NEWEXT_ADVANCED_RIGHT "進階(&V) >>" diff --git a/dll/win32/shell32/shellmenu/CMenuDeskBar.cpp b/dll/win32/shell32/shellmenu/CMenuDeskBar.cpp index cf8934cd833..493e4905a1a 100644 --- a/dll/win32/shell32/shellmenu/CMenuDeskBar.cpp +++ b/dll/win32/shell32/shellmenu/CMenuDeskBar.cpp @@ -551,6 +551,9 @@ HRESULT STDMETHODCALLTYPE CMenuDeskBar::GetIconSize(THIS_ DWORD* piIcon) HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetBitmap(THIS_ HBITMAP hBitmap) { + if (m_Banner && m_Banner != hBitmap) + ::DeleteObject(m_Banner); + m_Banner = hBitmap; BOOL bHandled; @@ -682,7 +685,7 @@ LRESULT CMenuDeskBar::_OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHa GetClientRect(&rc); - if (m_Banner != NULL) + if (m_Banner && m_IconSize != BMICON_SMALL) { BITMAP bm; ::GetObject(m_Banner, sizeof(bm), &bm); diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h index fea82a77561..bcae426f590 100644 --- a/dll/win32/shell32/shresdef.h +++ b/dll/win32/shell32/shresdef.h @@ -316,6 +316,7 @@ #define IDS_ADVANCED_EXPAND_NET_CONNECTIONS 30473 #define IDS_ADVANCED_DISPLAY_RUN 30474 #define IDS_ADVANCED_DISPLAY_ADMINTOOLS 30476 +#define IDS_ADVANCED_SMALL_START_MENU 30477 #define IDS_NEWEXT_ADVANCED_LEFT 30515 #define IDS_NEWEXT_ADVANCED_RIGHT 30516