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.
DWORD AlwaysOnTop : 1;
DWORD SmallIcons : 1;
DWORD HideClock : 1;
+ DWORD SmallStartMenu : 1;
};
};
DWORD Position;
#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 *|
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;
if (FAILED_UNEXPECTEDLY(hr))
return NULL;
- UpdateStartMenu(pMp,
- hbmBanner,
- bSmallIcons);
+ UpdateStartMenu(pMp, hbmBanner, bSmallIcons);
*ppMenuBand = pMb.Detach();
/*
- * ReactOS Explorer
- *
- * Copyright 2006 - 2007 Thomas Weidenmueller <w3seek@reactos.org>
- * 2015 Robert Naumann <gonzomdx@gmail.com>
- *
- * 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 <w3seek@reactos.org>
+ * Copyright 2015 Robert Naumann <gonzomdx@gmail.com>
+ * Copyright 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
*/
#include "precomp.h"
+// TreeView checkbox state indexes (Use with INDEXTOSTATEIMAGEMASK macro)
#define I_UNCHECKED 1
#define I_CHECKED 2
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))
{
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);
}
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);
}
}
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;
if (item.lParam == entry.id)
{
TRACE("%p: %d\n", item.lParam, bChecked);
- SetAdvancedDword(entry.name, bChecked);
+ entry.fnSetValue(&entry, bChecked);
break;
}
}
break;
case IDOK:
if (CustomizeClassic_OnOK(hwnd))
- {
EndDialog(hwnd, IDOK);
- }
break;
case IDCANCEL:
EndDialog(hwnd, IDCANCEL);
}
break;
default:
- return FALSE;
+ break;
}
- return TRUE;
+
+ return FALSE;
}
VOID ShowCustomizeClassic(HINSTANCE hInst, HWND hExplorer)
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));
/* 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;
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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é >>"
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 "&מתקדם >>"
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 "&उन्नत >>"
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ó >>"
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 >>"
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 >>"
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) >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 >>"
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 "До&полнительно >>"
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 >>"
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 >>"
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 >>"
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 >>"
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ş >>"
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 "&Додатково >>"
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) >>"
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) >>"
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) >>"
HRESULT STDMETHODCALLTYPE CMenuDeskBar::SetBitmap(THIS_ HBITMAP hBitmap)
{
+ if (m_Banner && m_Banner != hBitmap)
+ ::DeleteObject(m_Banner);
+
m_Banner = hBitmap;
BOOL bHandled;
GetClientRect(&rc);
- if (m_Banner != NULL)
+ if (m_Banner && m_IconSize != BMICON_SMALL)
{
BITMAP bm;
::GetObject(m_Banner, sizeof(bm), &bm);
#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