removed hard-coded comdlg filter from desk.cpl and it now searches for bmp;jpeg;png in windir patch by Christoph_vW see Bug 885
Modified: trunk/reactos/lib/cpl/desk/background.c
Modified: trunk/reactos/lib/cpl/desk/de.rc
Modified: trunk/reactos/lib/cpl/desk/en.rc
Modified: trunk/reactos/lib/cpl/desk/resource.h

Modified: trunk/reactos/lib/cpl/desk/background.c
--- trunk/reactos/lib/cpl/desk/background.c	2005-10-13 18:43:49 UTC (rev 18432)
+++ trunk/reactos/lib/cpl/desk/background.c	2005-10-13 19:13:47 UTC (rev 18433)
@@ -52,12 +52,13 @@
 
 HIMAGELIST g_hShellImageList    = NULL;
 
-/* Add the bitmaps in the C:\ReactOS directory and the current wallpaper if any */
+/* Add the images in the C:\ReactOS directory and the current wallpaper if any */
 void AddListViewItems()
 {
     WIN32_FIND_DATA fd;
     HANDLE hFind;
     TCHAR szSearchPath[MAX_PATH];
+	TCHAR szFileTypes[MAX_PATH];
     LV_ITEM listItem;
     LV_COLUMN dummy;
     RECT clientRect;
@@ -151,65 +152,79 @@
     
     RegCloseKey(regKey);
 
-    /* Add all the bitmaps in the C:\ReactOS directory. */
+    /* Add all the images in the C:\ReactOS directory. */
 
-    GetWindowsDirectory(szSearchPath, MAX_PATH);
-    _tcscat(szSearchPath, TEXT("\\*.bmp"));
-    
-    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];
-            
-            GetWindowsDirectory(filename, MAX_PATH);
+	LoadString(hApplet, IDS_SUPPORTED_EXT, szFileTypes, sizeof(szFileTypes) / sizeof(TCHAR));
+	
+	TCHAR separators[] = TEXT(";");
+	TCHAR *token;
 
-            _tcscat(filename, TEXT("\\"));
-            _tcscat(filename, fd.cFileName);
-            
-            himl = (HIMAGELIST)SHGetFileInfo(filename,
-                                             0,
-                                             &sfi,
-                                             sizeof(sfi),
-                                             SHGFI_SYSICONINDEX | SHGFI_SMALLICON |
-                                             SHGFI_DISPLAYNAME);
+	token = _tcstok ( szFileTypes, separators );
+	while ( token != NULL )
+	{
+		GetWindowsDirectory(szSearchPath, MAX_PATH);
+		_tcscat(szSearchPath, TEXT("\\"));
+		_tcscat(szSearchPath, token);
+	    
+		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];
+	            
+				GetWindowsDirectory(filename, MAX_PATH);
 
-            if(himl == NULL)
-            {
-                break;
-            }
-            
-            if(i++ == 0)
-            {
-                g_hShellImageList = himl;
-                ListView_SetImageList(g_hBackgroundList, himl, LVSIL_SMALL);
-            }
+				_tcscat(filename, TEXT("\\"));
+				_tcscat(filename, fd.cFileName);
+	            
+				himl = (HIMAGELIST)SHGetFileInfo(filename,
+												0,
+												&sfi,
+												sizeof(sfi),
+												SHGFI_SYSICONINDEX | SHGFI_SMALLICON |
+												SHGFI_DISPLAYNAME);
 
-            backgroundItem = &g_backgroundItems[g_listViewItemCount];
+				if(himl == NULL)
+				{
+					break;
+				}
+	            
+				if(i++ == 0)
+				{
+					g_hShellImageList = himl;
+					ListView_SetImageList(g_hBackgroundList, himl, LVSIL_SMALL);
+				}
 
-            backgroundItem->bWallpaper = TRUE;
-            
-            _tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
-            _tcscpy(backgroundItem->szFilename, filename);
+				backgroundItem = &g_backgroundItems[g_listViewItemCount];
 
-            ZeroMemory(&listItem, sizeof(LV_ITEM));
-            listItem.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
-            listItem.pszText    = backgroundItem->szDisplayName;
-            listItem.state      = 0;
-            listItem.iImage     = sfi.iIcon;
-            listItem.iItem      = g_listViewItemCount;
-            listItem.lParam     = g_listViewItemCount;
-            
-            ListView_InsertItem(g_hBackgroundList, &listItem);
-            
-            g_listViewItemCount++;
-        }
-        
-        if(!FindNextFile(hFind, &fd))
-            hFind = INVALID_HANDLE_VALUE;
-    }
+				backgroundItem->bWallpaper = TRUE;
+	            
+				_tcscpy(backgroundItem->szDisplayName, sfi.szDisplayName);
+				_tcscpy(backgroundItem->szFilename, filename);
+
+				ZeroMemory(&listItem, sizeof(LV_ITEM));
+				listItem.mask       = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
+				listItem.pszText    = backgroundItem->szDisplayName;
+				listItem.state      = 0;
+				listItem.iImage     = sfi.iIcon;
+				listItem.iItem      = g_listViewItemCount;
+				listItem.lParam     = g_listViewItemCount;
+	            
+				ListView_InsertItem(g_hBackgroundList, &listItem);
+	            
+				g_listViewItemCount++;
+			}
+	        
+			if(!FindNextFile(hFind, &fd))
+				hFind = INVALID_HANDLE_VALUE;
+		}
+
+		token = _tcstok ( NULL, separators );
+	}
+
+
 }
 
 void InitBackgroundDialog()
@@ -293,6 +308,7 @@
     OPENFILENAME ofn;
     TCHAR filename[MAX_PATH];
     TCHAR fileTitle[256];
+    TCHAR filter[MAX_PATH];
     BackgroundItem *backgroundItem = NULL;
         
     ZeroMemory(&ofn, sizeof(OPENFILENAME));
@@ -300,12 +316,14 @@
     ofn.lStructSize = sizeof(OPENFILENAME);
     ofn.hwndOwner = g_hBackgroundPage;
     ofn.lpstrFile = filename;
+
+    LoadString(hApplet, IDS_BACKGROUND_COMDLG_FILTER, filter, sizeof(filter) / sizeof(TCHAR));
         
     /* Set lpstrFile[0] to '\0' so that GetOpenFileName does not 
      * use the contents of szFile to initialize itself */
     ofn.lpstrFile[0] = TEXT('\0');
     ofn.nMaxFile = MAX_PATH;
-    ofn.lpstrFilter = TEXT("Bitmap Files (*.bmp)\0*.bmp\0");
+    ofn.lpstrFilter = filter;
     ofn.nFilterIndex = 0;
     ofn.lpstrFileTitle = fileTitle;
     ofn.nMaxFileTitle = 256;

Modified: trunk/reactos/lib/cpl/desk/de.rc
--- trunk/reactos/lib/cpl/desk/de.rc	2005-10-13 18:43:49 UTC (rev 18432)
+++ trunk/reactos/lib/cpl/desk/de.rc	2005-10-13 19:13:47 UTC (rev 18433)
@@ -78,3 +78,9 @@
     IDS_COLOR_32BIT "True Color (32 Bit)"
     IDS_PIXEL "%lux%lu Pixel"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_BACKGROUND_COMDLG_FILTER "Bilddateien (*.bmp;*.jpg;*.dib;*.png)\0*.bmp;*.jpg;*.jpeg;*.dib;*.png\0"
+    IDS_SUPPORTED_EXT "*.jpg;*.jpeg;*.bmp;*.dib;*.png"
+END

Modified: trunk/reactos/lib/cpl/desk/en.rc
--- trunk/reactos/lib/cpl/desk/en.rc	2005-10-13 18:43:49 UTC (rev 18432)
+++ trunk/reactos/lib/cpl/desk/en.rc	2005-10-13 19:13:47 UTC (rev 18433)
@@ -102,3 +102,9 @@
     IDS_COLOR_32BIT "True Color (32 Bit)"
     IDS_PIXEL "%lux%lu Pixel"
 END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+    IDS_BACKGROUND_COMDLG_FILTER "Pictures (*.bmp;*.jpg;*.dib;*.png)\0*.bmp;*.jpg;*.jpeg;*.dib;*.png\0"
+    IDS_SUPPORTED_EXT "*.jpg;*.jpeg;*.bmp;*.dib;*.png"
+END

Modified: trunk/reactos/lib/cpl/desk/resource.h
--- trunk/reactos/lib/cpl/desk/resource.h	2005-10-13 18:43:49 UTC (rev 18432)
+++ trunk/reactos/lib/cpl/desk/resource.h	2005-10-13 19:13:47 UTC (rev 18433)
@@ -27,6 +27,8 @@
 #define IDC_BROWSE_BUTTON               1002
 #define IDC_COLOR_BUTTON                1003
 #define IDC_PLACEMENT_COMBO             1004
+#define IDS_BACKGROUND_COMDLG_FILTER    1005
+#define IDS_SUPPORTED_EXT               1006
 
 /* Screensaver Page */
 #define IDC_SCREENS_CHOICES             1010