HIMAGELIST himl;
TCHAR wallpaperFilename[MAX_PATH];
DWORD bufferSize = sizeof(wallpaperFilename);
+ TCHAR buffer[MAX_PATH];
DWORD varType = REG_SZ;
LONG result;
UINT i = 0;
result = RegQueryValueEx(regKey, TEXT("Wallpaper"), 0, &varType, (LPBYTE)wallpaperFilename, &bufferSize);
if ((result == ERROR_SUCCESS) && (_tcslen(wallpaperFilename) > 0))
{
+ /* Allow environment variables in file name */
+ if (ExpandEnvironmentStrings(wallpaperFilename, buffer, MAX_PATH))
+ {
+ _tcscpy(wallpaperFilename, buffer);
+ }
+
himl = (HIMAGELIST)SHGetFileInfo(wallpaperFilename,
0,
&sfi,
hFind = FindFirstFile(szSearchPath, &fd);
while (hFind != INVALID_HANDLE_VALUE)
{
- /* Don't add any hidden bitmaps */
- if ((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0)
- {
- TCHAR filename[MAX_PATH];
+ TCHAR filename[MAX_PATH];
- GetWindowsDirectory(filename, MAX_PATH);
+ GetWindowsDirectory(filename, MAX_PATH);
- _tcscat(filename, TEXT("\\"));
- _tcscat(filename, fd.cFileName);
+ _tcscat(filename, TEXT("\\"));
+ _tcscat(filename, fd.cFileName);
+ /* Don't add any hidden bitmaps. Also don't add current wallpaper once more. */
+ if (((fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0) && (_tcscmp(wallpaperFilename, filename) != 0))
+ {
himl = (HIMAGELIST)SHGetFileInfo(filename,
0,
&sfi,
/* Save selected color to var */
pGlobalData->backgroundDesktopColor = cc.rgbResult;
- /* Allpy buuton will be activated */
+ /* Apply button will be activated */
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
/* Window will be updated :) */
InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW), NULL, TRUE);
- /* Save custom colors to reg. To this moment key must be ceated already. See above */
+ /* Save custom colors to reg. To this moment key must be created already. See above */
res = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Appearance"), 0,
KEY_WRITE, &hKey);
if (res == ERROR_SUCCESS)
SHFILEINFO sfi;
LV_ITEM listItem;
HWND hwndBackgroundList;
+ TCHAR *p;
hwndBackgroundList = GetDlgItem(hwndDlg, IDC_BACKGROUND_LIST);
backgroundItem->bWallpaper = TRUE;
_tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
+ p = _tcsrchr(backgroundItem->szDisplayName, _T('.'));
+ if (p)
+ *p = (TCHAR)0;
_tcscpy(backgroundItem->szFilename, filename);
ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
- listItem.state = 0;
+ listItem.state = LVIS_SELECTED;
listItem.pszText = backgroundItem->szDisplayName;
listItem.iImage = sfi.iIcon;
listItem.iItem = pGlobalData->listViewItemCount;
listItem.lParam = pGlobalData->listViewItemCount;
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
+ SendMessage(hwndBackgroundList, WM_VSCROLL, SB_BOTTOM, 0);
pGlobalData->listViewItemCount++;
}
InvalidateRect(GetDlgItem(hwndDlg, IDC_BACKGROUND_PREVIEW),
NULL, TRUE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_COLOR_BUTTON),
- (backgroundItem->bWallpaper == FALSE ? TRUE : FALSE));
EnableWindow(GetDlgItem(hwndDlg, IDC_PLACEMENT_COMBO),
backgroundItem->bWallpaper);
return FALSE;
}
+