mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 07:52:57 +00:00
[DESK] Add desktop icon change feature
- All functions now implemented, except no support for themes. - Fixed listview height to avoid vertical scrollbar in Windows. - Refactored existing code for show/hide desktop icons. CORE-3567 CORE-8427
This commit is contained in:
parent
43ecf7e4e4
commit
769fcd895b
32 changed files with 327 additions and 47 deletions
|
@ -1146,19 +1146,15 @@ static VOID
|
||||||
OnCustomButton(HWND hwndDlg, PBACKGROUND_DATA pData)
|
OnCustomButton(HWND hwndDlg, PBACKGROUND_DATA pData)
|
||||||
{
|
{
|
||||||
HPROPSHEETPAGE hpsp[1] = {0};
|
HPROPSHEETPAGE hpsp[1] = {0};
|
||||||
PROPSHEETHEADER psh;
|
PROPSHEETHEADER psh = {sizeof(psh)};
|
||||||
PROPSHEETPAGE psp;
|
PROPSHEETPAGE psp = {sizeof(psp)};
|
||||||
|
|
||||||
ZeroMemory(&psh, sizeof(psh));
|
|
||||||
psh.dwSize = sizeof(psh);
|
|
||||||
psh.dwFlags = PSH_NOAPPLYNOW;
|
psh.dwFlags = PSH_NOAPPLYNOW;
|
||||||
psh.hwndParent = GetParent(hwndDlg);
|
psh.hwndParent = GetParent(hwndDlg);
|
||||||
psh.hInstance = hApplet;
|
psh.hInstance = hApplet;
|
||||||
psh.pszCaption = MAKEINTRESOURCE(IDS_DESKTOP_ITEMS);
|
psh.pszCaption = MAKEINTRESOURCE(IDS_DESKTOP_ITEMS);
|
||||||
psh.phpage = hpsp;
|
psh.phpage = hpsp;
|
||||||
|
|
||||||
ZeroMemory(&psp, sizeof(psp));
|
|
||||||
psp.dwSize = sizeof(psp);
|
|
||||||
psp.dwFlags = PSP_DEFAULT;
|
psp.dwFlags = PSP_DEFAULT;
|
||||||
psp.hInstance = hApplet;
|
psp.hInstance = hApplet;
|
||||||
psp.pszTemplate = MAKEINTRESOURCE(IDD_DESKTOP_GENERAL);
|
psp.pszTemplate = MAKEINTRESOURCE(IDD_DESKTOP_GENERAL);
|
||||||
|
|
|
@ -81,8 +81,8 @@ ULONG __cdecl DbgPrint(PCCH Format,...);
|
||||||
#define MAX_DESK_PAGES 32
|
#define MAX_DESK_PAGES 32
|
||||||
#define NUM_SPECTRUM_BITMAPS 3
|
#define NUM_SPECTRUM_BITMAPS 3
|
||||||
|
|
||||||
/* This number must match DesktopIcons array size */
|
#define NUM_DESKTOP_ICONS 4 /* DesktopIcons array size */
|
||||||
#define NUM_DESKTOP_ICONS 4
|
#define NUM_CHANGE_ICONS 5 /* IconChange array size */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -90,15 +90,33 @@ typedef struct
|
||||||
BOOL bHideNewStart; /* Hide icon in Modern Start menu mode */
|
BOOL bHideNewStart; /* Hide icon in Modern Start menu mode */
|
||||||
} HIDE_ICON;
|
} HIDE_ICON;
|
||||||
|
|
||||||
|
typedef struct _ICON_PATH
|
||||||
|
{
|
||||||
|
TCHAR szPath[MAX_PATH];
|
||||||
|
} ICON_PATH;
|
||||||
|
|
||||||
|
typedef struct _ICON_DATA
|
||||||
|
{
|
||||||
|
TCHAR szPath[MAX_PATH];
|
||||||
|
TCHAR szTitle[40];
|
||||||
|
} ICON_DATA;
|
||||||
|
|
||||||
typedef struct _DESKTOP_DATA
|
typedef struct _DESKTOP_DATA
|
||||||
{
|
{
|
||||||
BOOL bSettingsChanged;
|
BOOL bSettingsChanged;
|
||||||
HIDE_ICON optIcons[NUM_DESKTOP_ICONS];
|
HIDE_ICON optIcons[NUM_DESKTOP_ICONS];
|
||||||
BOOL bHideChanged[NUM_DESKTOP_ICONS];
|
BOOL bHideChanged[NUM_DESKTOP_ICONS];
|
||||||
|
BOOL bIconChanged[NUM_CHANGE_ICONS];
|
||||||
|
ICON_PATH Icon[NUM_CHANGE_ICONS];
|
||||||
|
ICON_PATH DefIcon[NUM_CHANGE_ICONS];
|
||||||
|
|
||||||
BOOL bLocalSettingsChanged;
|
BOOL bLocalSettingsChanged;
|
||||||
BOOL bLocalHideIcon[NUM_DESKTOP_ICONS];
|
BOOL bLocalHideIcon[NUM_DESKTOP_ICONS];
|
||||||
BOOL bLocalHideChanged[NUM_DESKTOP_ICONS];
|
BOOL bLocalHideChanged[NUM_DESKTOP_ICONS];
|
||||||
|
BOOL bLocalIconChanged[NUM_CHANGE_ICONS];
|
||||||
|
ICON_DATA LocalIcon[NUM_CHANGE_ICONS];
|
||||||
|
HIMAGELIST hLocalImageList;
|
||||||
|
INT iLocalCurIcon;
|
||||||
} DESKTOP_DATA, *PDESKTOP_DATA;
|
} DESKTOP_DATA, *PDESKTOP_DATA;
|
||||||
|
|
||||||
/* As slider control can't contain user data, we have to keep an
|
/* As slider control can't contain user data, we have to keep an
|
||||||
|
|
|
@ -7,7 +7,24 @@
|
||||||
|
|
||||||
#include "desk.h"
|
#include "desk.h"
|
||||||
|
|
||||||
#define FCIDM_DESKBROWSER_REFRESH 0xA220 /* From shresdef.h */
|
#include <shlwapi.h>
|
||||||
|
#include <shellapi.h>
|
||||||
|
|
||||||
|
/* From shresdef.h */
|
||||||
|
#define FCIDM_DESKBROWSER_REFRESH 0xA220
|
||||||
|
|
||||||
|
#define IDS_TITLE_MYCOMP 30386
|
||||||
|
#define IDS_TITLE_MYNET 30387
|
||||||
|
#define IDS_TITLE_BIN_1 30388
|
||||||
|
#define IDS_TITLE_BIN_0 30389
|
||||||
|
|
||||||
|
/* Workaround:
|
||||||
|
* There's no special fallback icon title string
|
||||||
|
* for My Documents in shell32.dll, so use IDS_PERSONAL.
|
||||||
|
*
|
||||||
|
* Windows does this in some different way.
|
||||||
|
*/
|
||||||
|
#define IDS_PERSONAL 9227
|
||||||
|
|
||||||
static const TCHAR szHideDesktopIcons[] = TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons");
|
static const TCHAR szHideDesktopIcons[] = TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\HideDesktopIcons");
|
||||||
static const TCHAR szClassicStartMenu[] = TEXT("ClassicStartMenu");
|
static const TCHAR szClassicStartMenu[] = TEXT("ClassicStartMenu");
|
||||||
|
@ -24,11 +41,30 @@ struct
|
||||||
{TEXT("{871C5380-42A0-1069-A2EA-08002B30309D}"), IDC_ICONS_INTERNET}, /* Internet Browser */
|
{TEXT("{871C5380-42A0-1069-A2EA-08002B30309D}"), IDC_ICONS_INTERNET}, /* Internet Browser */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const TCHAR szUserClass[] = TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CLSID\\");
|
||||||
|
static const TCHAR szSysClass[] = TEXT("CLSID\\");
|
||||||
|
static const TCHAR szDefaultIcon[] = TEXT("\\DefaultIcon");
|
||||||
|
static const TCHAR szFallbackIcon[] = TEXT("%SystemRoot%\\system32\\shell32.dll,0");
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
LPCTSTR CLSID;
|
||||||
|
UINT TitleId;
|
||||||
|
LPCTSTR IconName;
|
||||||
|
} IconChange[NUM_CHANGE_ICONS] = {
|
||||||
|
{TEXT("{20D04FE0-3AEA-1069-A2D8-08002B30309D}"), IDS_TITLE_MYCOMP, NULL}, /* My Computer */
|
||||||
|
{TEXT("{450D8FBA-AD25-11D0-98A8-0800361B1103}"), IDS_PERSONAL, NULL}, /* My Documents */
|
||||||
|
{TEXT("{208D2C60-3AEA-1069-A2D7-08002B30309D}"), IDS_TITLE_MYNET, NULL}, /* My Network Places */
|
||||||
|
{TEXT("{645FF040-5081-101B-9F08-00AA002F954E}"), IDS_TITLE_BIN_1, TEXT("Full")}, /* Recycle Bin (full) */
|
||||||
|
{TEXT("{645FF040-5081-101B-9F08-00AA002F954E}"), IDS_TITLE_BIN_0, TEXT("Empty")}, /* Recycle Bin (empty) */
|
||||||
|
};
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
InitDesktopSettings(PDESKTOP_DATA pData)
|
InitDesktopSettings(PDESKTOP_DATA pData)
|
||||||
{
|
{
|
||||||
HKEY regKey, iconKey1, iconKey2;
|
HKEY regKey, iconKey1, iconKey2;
|
||||||
UINT i;
|
UINT i;
|
||||||
|
DWORD dwType, cbData;
|
||||||
|
|
||||||
/* Default values */
|
/* Default values */
|
||||||
for (i = 0; i < _countof(pData->optIcons); i++)
|
for (i = 0; i < _countof(pData->optIcons); i++)
|
||||||
|
@ -41,7 +77,7 @@ InitDesktopSettings(PDESKTOP_DATA pData)
|
||||||
if (RegOpenKeyEx(HKEY_CURRENT_USER, szHideDesktopIcons,
|
if (RegOpenKeyEx(HKEY_CURRENT_USER, szHideDesktopIcons,
|
||||||
0, KEY_QUERY_VALUE, ®Key) != ERROR_SUCCESS)
|
0, KEY_QUERY_VALUE, ®Key) != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
return;
|
goto LoadIcons;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RegOpenKeyEx(regKey, szClassicStartMenu, 0, KEY_QUERY_VALUE, &iconKey1) != ERROR_SUCCESS)
|
if (RegOpenKeyEx(regKey, szClassicStartMenu, 0, KEY_QUERY_VALUE, &iconKey1) != ERROR_SUCCESS)
|
||||||
|
@ -53,7 +89,7 @@ InitDesktopSettings(PDESKTOP_DATA pData)
|
||||||
for (i = 0; i < _countof(pData->optIcons); i++)
|
for (i = 0; i < _countof(pData->optIcons); i++)
|
||||||
{
|
{
|
||||||
LSTATUS res;
|
LSTATUS res;
|
||||||
DWORD dwType, dwData, cbData;
|
DWORD dwData;
|
||||||
|
|
||||||
if (iconKey1)
|
if (iconKey1)
|
||||||
{
|
{
|
||||||
|
@ -81,6 +117,47 @@ InitDesktopSettings(PDESKTOP_DATA pData)
|
||||||
RegCloseKey(iconKey2);
|
RegCloseKey(iconKey2);
|
||||||
|
|
||||||
RegCloseKey(regKey);
|
RegCloseKey(regKey);
|
||||||
|
|
||||||
|
LoadIcons:
|
||||||
|
for (i = 0; i < _countof(IconChange); i++)
|
||||||
|
{
|
||||||
|
TCHAR iconPath[MAX_PATH];
|
||||||
|
TCHAR szData[MAX_PATH];
|
||||||
|
|
||||||
|
/* Current icons */
|
||||||
|
StringCchCopy(iconPath, _countof(iconPath), szUserClass);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), IconChange[i].CLSID);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), szDefaultIcon);
|
||||||
|
cbData = sizeof(szData);
|
||||||
|
|
||||||
|
if (SHGetValue(HKEY_CURRENT_USER, iconPath, IconChange[i].IconName, &dwType,
|
||||||
|
&szData, &cbData) == ERROR_SUCCESS &&
|
||||||
|
(dwType == REG_SZ || dwType == REG_EXPAND_SZ))
|
||||||
|
{
|
||||||
|
StringCchCopy(pData->Icon[i].szPath, _countof(pData->Icon[i].szPath), szData);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Default icons */
|
||||||
|
/* FIXME: Get default icons from theme data, fallback to CLSID data on error. */
|
||||||
|
StringCchCopy(iconPath, _countof(iconPath), szSysClass);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), IconChange[i].CLSID);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), szDefaultIcon);
|
||||||
|
cbData = sizeof(szData);
|
||||||
|
|
||||||
|
if (SHGetValue(HKEY_CLASSES_ROOT, iconPath, IconChange[i].IconName, &dwType,
|
||||||
|
&szData, &cbData) == ERROR_SUCCESS &&
|
||||||
|
(dwType == REG_SZ || dwType == REG_EXPAND_SZ))
|
||||||
|
{
|
||||||
|
StringCchCopy(pData->DefIcon[i].szPath, _countof(pData->DefIcon[i].szPath), szData);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Emergency fallback */
|
||||||
|
if (lstrlen(pData->DefIcon[i].szPath) == 0)
|
||||||
|
StringCchCopy(pData->DefIcon[i].szPath, _countof(pData->DefIcon[i].szPath), szFallbackIcon);
|
||||||
|
|
||||||
|
if (lstrlen(pData->Icon[i].szPath) == 0)
|
||||||
|
StringCchCopy(pData->Icon[i].szPath, _countof(pData->Icon[i].szPath), pData->DefIcon[i].szPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
@ -93,13 +170,21 @@ SaveDesktopSettings(PDESKTOP_DATA pData)
|
||||||
|
|
||||||
for (i = 0; i < _countof(DesktopIcons); i++)
|
for (i = 0; i < _countof(DesktopIcons); i++)
|
||||||
{
|
{
|
||||||
if (pData->bLocalHideChanged[i])
|
if (!pData->bLocalHideChanged[i])
|
||||||
pData->bHideChanged[i] = TRUE;
|
|
||||||
else
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
pData->optIcons[i].bHideClassic =
|
pData->optIcons[i].bHideClassic =
|
||||||
pData->optIcons[i].bHideNewStart = pData->bLocalHideIcon[i];
|
pData->optIcons[i].bHideNewStart = pData->bLocalHideIcon[i];
|
||||||
|
pData->bHideChanged[i] = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < _countof(IconChange); i++)
|
||||||
|
{
|
||||||
|
if (!pData->bLocalIconChanged[i])
|
||||||
|
continue;
|
||||||
|
|
||||||
|
StringCchCopy(pData->Icon[i].szPath, _countof(pData->Icon[i].szPath), pData->LocalIcon[i].szPath);
|
||||||
|
pData->bIconChanged[i] = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
pData->bSettingsChanged = TRUE;
|
pData->bSettingsChanged = TRUE;
|
||||||
|
@ -187,24 +272,55 @@ SetDesktopSettings(PDESKTOP_DATA pData)
|
||||||
pData->bHideChanged[i] = FALSE;
|
pData->bHideChanged[i] = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < _countof(IconChange); i++)
|
||||||
|
{
|
||||||
|
TCHAR iconPath[MAX_PATH];
|
||||||
|
DWORD dwType = (pData->Icon[i].szPath[0] == TEXT('%') ? REG_EXPAND_SZ : REG_SZ);
|
||||||
|
|
||||||
|
if (!pData->bIconChanged[i])
|
||||||
|
continue;
|
||||||
|
|
||||||
|
StringCchCopy(iconPath, _countof(iconPath), szUserClass);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), IconChange[i].CLSID);
|
||||||
|
StringCchCat(iconPath, _countof(iconPath), szDefaultIcon);
|
||||||
|
|
||||||
|
SHSetValue(HKEY_CURRENT_USER, iconPath, IconChange[i].IconName, dwType,
|
||||||
|
pData->Icon[i].szPath, sizeof(pData->Icon[i].szPath));
|
||||||
|
if (IconChange[i].TitleId == IDS_TITLE_BIN_0)
|
||||||
|
{
|
||||||
|
/* Also apply to the root value */
|
||||||
|
SHSetValue(HKEY_CURRENT_USER, iconPath, NULL, dwType,
|
||||||
|
pData->Icon[i].szPath, sizeof(pData->Icon[i].szPath));
|
||||||
|
}
|
||||||
|
pData->bIconChanged[i] = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
pData->bSettingsChanged = FALSE;
|
pData->bSettingsChanged = FALSE;
|
||||||
|
|
||||||
/* Refresh the desktop */
|
/* Refresh the desktop */
|
||||||
PostMessage(GetShellWindow(), WM_COMMAND, FCIDM_DESKBROWSER_REFRESH, 0);
|
PostMessage(GetShellWindow(), WM_COMMAND, FCIDM_DESKBROWSER_REFRESH, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HICON
|
||||||
|
GetIconFromLocation(LPTSTR szIconPath)
|
||||||
|
{
|
||||||
|
INT iIndex;
|
||||||
|
TCHAR szPath[MAX_PATH];
|
||||||
|
|
||||||
|
ExpandEnvironmentStrings(szIconPath, szPath, _countof(szPath));
|
||||||
|
iIndex = PathParseIconLocation(szPath);
|
||||||
|
return ExtractIcon(hApplet, szPath, iIndex);
|
||||||
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
DesktopOnInitDialog(IN HWND hwndDlg, IN PDESKTOP_DATA pData)
|
DesktopOnInitDialog(IN HWND hwndDlg, IN PDESKTOP_DATA pData)
|
||||||
{
|
{
|
||||||
UINT i;
|
UINT i;
|
||||||
SHELLSTATE ss = {0};
|
SHELLSTATE ss = {0};
|
||||||
|
HWND hwndList;
|
||||||
|
|
||||||
SHGetSetSettings(&ss, SSF_STARTPANELON, FALSE);
|
SHGetSetSettings(&ss, SSF_STARTPANELON, FALSE);
|
||||||
|
|
||||||
/* Disable unimplemented features */
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg, IDC_ICONS_CHANGEICON), FALSE);
|
|
||||||
EnableWindow(GetDlgItem(hwndDlg, IDC_ICONS_SETDEFAULT), FALSE);
|
|
||||||
|
|
||||||
for (i = 0; i < _countof(pData->optIcons); i++)
|
for (i = 0; i < _countof(pData->optIcons); i++)
|
||||||
{
|
{
|
||||||
BOOL bHide;
|
BOOL bHide;
|
||||||
|
@ -222,9 +338,86 @@ DesktopOnInitDialog(IN HWND hwndDlg, IN PDESKTOP_DATA pData)
|
||||||
pData->bLocalHideChanged[i] = FALSE;
|
pData->bLocalHideChanged[i] = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pData->iLocalCurIcon = 0;
|
||||||
|
hwndList = GetDlgItem(hwndDlg, IDC_ICONS_LISTVIEW);
|
||||||
|
pData->hLocalImageList = ImageList_Create(GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), ILC_COLOR32 | ILC_MASK, 1, 1);
|
||||||
|
ListView_SetImageList(hwndList, pData->hLocalImageList, LVSIL_NORMAL);
|
||||||
|
|
||||||
|
for (i = 0; i < _countof(IconChange); i++)
|
||||||
|
{
|
||||||
|
TCHAR szClassPath[MAX_PATH];
|
||||||
|
DWORD dwType, cbData;
|
||||||
|
LVITEM lvitem = {0};
|
||||||
|
HICON hIcon;
|
||||||
|
|
||||||
|
StringCchCopy(pData->LocalIcon[i].szPath, _countof(pData->LocalIcon[i].szPath), pData->Icon[i].szPath);
|
||||||
|
pData->bLocalIconChanged[i] = FALSE;
|
||||||
|
|
||||||
|
/* Try loading user-defined desktop icon title */
|
||||||
|
StringCchCopy(szClassPath, _countof(szClassPath), szUserClass);
|
||||||
|
StringCchCat(szClassPath, _countof(szClassPath), IconChange[i].CLSID);
|
||||||
|
cbData = sizeof(pData->LocalIcon[i].szTitle);
|
||||||
|
|
||||||
|
if (SHGetValue(HKEY_CURRENT_USER, szClassPath, IconChange[i].IconName, &dwType,
|
||||||
|
pData->LocalIcon[i].szTitle, &cbData) != ERROR_SUCCESS || dwType != REG_SZ)
|
||||||
|
{
|
||||||
|
/* Try loading system-defined class icon title */
|
||||||
|
StringCchCopy(szClassPath, _countof(szClassPath), szSysClass);
|
||||||
|
StringCchCat(szClassPath, _countof(szClassPath), IconChange[i].CLSID);
|
||||||
|
cbData = sizeof(pData->LocalIcon[i].szTitle);
|
||||||
|
|
||||||
|
if (SHGetValue(HKEY_CLASSES_ROOT, szClassPath, IconChange[i].IconName, &dwType,
|
||||||
|
pData->LocalIcon[i].szTitle, &cbData) != ERROR_SUCCESS || dwType != REG_SZ)
|
||||||
|
{
|
||||||
|
/* Fallback to predefined strings */
|
||||||
|
LoadString(GetModuleHandle(TEXT("shell32.dll")),
|
||||||
|
IconChange[i].TitleId,
|
||||||
|
pData->LocalIcon[i].szTitle,
|
||||||
|
_countof(pData->LocalIcon[i].szTitle));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hIcon = GetIconFromLocation(pData->LocalIcon[i].szPath);
|
||||||
|
|
||||||
|
lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
|
||||||
|
lvitem.iItem = i;
|
||||||
|
lvitem.iSubItem = 0;
|
||||||
|
lvitem.pszText = pData->LocalIcon[i].szTitle;
|
||||||
|
lvitem.lParam = (LPARAM)i;
|
||||||
|
|
||||||
|
if (hIcon)
|
||||||
|
{
|
||||||
|
if (pData->hLocalImageList)
|
||||||
|
lvitem.iImage = ImageList_AddIcon(pData->hLocalImageList, hIcon);
|
||||||
|
DestroyIcon(hIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ListView_InsertItem(hwndList, &lvitem) < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (i > 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
lvitem.state = LVIS_FOCUSED | LVIS_SELECTED;
|
||||||
|
lvitem.stateMask = LVIS_FOCUSED | LVIS_SELECTED;
|
||||||
|
SendMessage(hwndList, LVM_SETITEMSTATE, 0, (LPARAM)&lvitem);
|
||||||
|
}
|
||||||
|
|
||||||
pData->bLocalSettingsChanged = FALSE;
|
pData->bLocalSettingsChanged = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
DesktopOnDestroyDialog(IN HWND hwndDlg, IN PDESKTOP_DATA pData)
|
||||||
|
{
|
||||||
|
if (pData->hLocalImageList)
|
||||||
|
{
|
||||||
|
ListView_SetImageList(GetDlgItem(hwndDlg, IDC_ICONS_LISTVIEW), NULL, LVSIL_NORMAL);
|
||||||
|
ImageList_Destroy(pData->hLocalImageList);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetWindowLongPtr(hwndDlg, DWLP_USER, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Property page dialog callback */
|
/* Property page dialog callback */
|
||||||
INT_PTR CALLBACK
|
INT_PTR CALLBACK
|
||||||
DesktopPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
|
DesktopPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam)
|
||||||
|
@ -245,6 +438,12 @@ DesktopPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPara
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case WM_DESTROY:
|
||||||
|
{
|
||||||
|
DesktopOnDestroyDialog(hwndDlg, pData);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
{
|
{
|
||||||
DWORD controlId = LOWORD(wParam);
|
DWORD controlId = LOWORD(wParam);
|
||||||
|
@ -253,6 +452,7 @@ DesktopPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPara
|
||||||
if (command == BN_CLICKED)
|
if (command == BN_CLICKED)
|
||||||
{
|
{
|
||||||
UINT i;
|
UINT i;
|
||||||
|
BOOL bUpdateIcon = FALSE;
|
||||||
|
|
||||||
for (i = 0; i < _countof(DesktopIcons); i++)
|
for (i = 0; i < _countof(DesktopIcons); i++)
|
||||||
{
|
{
|
||||||
|
@ -268,6 +468,72 @@ DesktopPageProc(IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lPara
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (controlId == IDC_ICONS_CHANGEICON)
|
||||||
|
{
|
||||||
|
TCHAR szPath[MAX_PATH];
|
||||||
|
INT iIndex;
|
||||||
|
i = pData->iLocalCurIcon;
|
||||||
|
|
||||||
|
ExpandEnvironmentStrings(pData->LocalIcon[i].szPath, szPath, _countof(szPath));
|
||||||
|
iIndex = PathParseIconLocation(szPath);
|
||||||
|
|
||||||
|
if (PickIconDlg(hwndDlg, szPath, _countof(szPath), &iIndex))
|
||||||
|
{
|
||||||
|
StringCchCopy(pData->LocalIcon[i].szPath, _countof(pData->LocalIcon[i].szPath), szPath);
|
||||||
|
PathUnExpandEnvStrings(pData->LocalIcon[i].szPath, szPath, _countof(szPath));
|
||||||
|
|
||||||
|
StringCchPrintf(pData->LocalIcon[i].szPath, _countof(pData->LocalIcon[i].szPath), TEXT("%s,%d"), szPath, iIndex);
|
||||||
|
bUpdateIcon = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (controlId == IDC_ICONS_SETDEFAULT)
|
||||||
|
{
|
||||||
|
i = pData->iLocalCurIcon;
|
||||||
|
|
||||||
|
StringCchCopy(pData->LocalIcon[i].szPath, _countof(pData->LocalIcon[i].szPath), pData->DefIcon[i].szPath);
|
||||||
|
bUpdateIcon = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bUpdateIcon)
|
||||||
|
{
|
||||||
|
HWND hwndList = GetDlgItem(hwndDlg, IDC_ICONS_LISTVIEW);
|
||||||
|
HICON hIcon;
|
||||||
|
|
||||||
|
hIcon = GetIconFromLocation(pData->LocalIcon[i].szPath);
|
||||||
|
|
||||||
|
if (hIcon)
|
||||||
|
{
|
||||||
|
if (pData->hLocalImageList)
|
||||||
|
ImageList_ReplaceIcon(pData->hLocalImageList, i, hIcon);
|
||||||
|
DestroyIcon(hIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
pData->bLocalSettingsChanged =
|
||||||
|
pData->bLocalIconChanged[i] = TRUE;
|
||||||
|
|
||||||
|
InvalidateRect(hwndList, NULL, TRUE);
|
||||||
|
SetFocus(hwndList);
|
||||||
|
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case WM_NOTIFY:
|
||||||
|
{
|
||||||
|
LPNMLISTVIEW nm = (LPNMLISTVIEW)lParam;
|
||||||
|
|
||||||
|
switch (nm->hdr.code)
|
||||||
|
{
|
||||||
|
case LVN_ITEMCHANGED:
|
||||||
|
{
|
||||||
|
if ((nm->uNewState & LVIS_SELECTED) == 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
pData->iLocalCurIcon = nm->iItem;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -174,7 +174,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -178,7 +178,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -175,7 +175,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -170,7 +170,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -170,7 +170,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -178,7 +178,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -173,7 +173,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -177,7 +177,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -168,7 +168,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "С&менить значок...", IDC_ICONS_CHANGEICON, 74, 120, 70, 15
|
PUSHBUTTON "С&менить значок...", IDC_ICONS_CHANGEICON, 74, 120, 70, 15
|
||||||
PUSHBUTTON "&Обычный значок", IDC_ICONS_SETDEFAULT, 148, 120, 70, 15
|
PUSHBUTTON "&Обычный значок", IDC_ICONS_SETDEFAULT, 148, 120, 70, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -170,7 +170,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -172,7 +172,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -170,7 +170,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -170,7 +170,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -176,7 +176,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -178,7 +178,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -176,7 +176,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
|
@ -177,7 +177,7 @@ BEGIN
|
||||||
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
BS_AUTOCHECKBOX | WS_TABSTOP, 116, 28, 100, 12
|
||||||
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
CONTROL "", IDC_ICONS_LISTVIEW, "SysListView32",
|
||||||
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
LVS_ICON | LVS_ALIGNLEFT | LVS_AUTOARRANGE | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_HSCROLL,
|
||||||
6, 60, 212, 54
|
6, 60, 212, 56
|
||||||
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
PUSHBUTTON "C&hange Icon...", IDC_ICONS_CHANGEICON, 86, 120, 64, 15
|
||||||
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
PUSHBUTTON "Re&store Default", IDC_ICONS_SETDEFAULT, 154, 120, 64, 15
|
||||||
END
|
END
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue