winefile: implement file filtering

Martin Fuchs martin-fuchs at gmx.net
Sat May 28 12:34:54 CDT 2005


Changelog:
implement file filtering (matching of file name patterns and file types)


Index: resource.h
===================================================================
RCS file: /home/wine/wine/programs/winefile/resource.h,v
retrieving revision 1.13
diff -u -p -d -r1.13 resource.h
--- resource.h	23 May 2005 09:52:51 -0000	1.13
+++ resource.h	28 May 2005 17:33:43 -0000
@@ -33,6 +33,7 @@
 
 #define	IDD_EXECUTE					103
 #define IDD_SELECT_DESTINATION				104
+#define IDD_DIALOG_VIEW_TYPE				105
 
 
 /* control ids */
@@ -51,6 +52,7 @@
 #define	ID_VIEW_SORT_TYPE				405
 #define	ID_VIEW_SORT_SIZE				406
 #define	ID_VIEW_SORT_DATE				407
+#define	ID_VIEW_FILTER					409
 #define	ID_VIEW_SPLIT					414
 #define ID_SELECT_FONT					510
 #define	ID_VIEW_TOOL_BAR				508
@@ -68,6 +70,13 @@
 #define	ID_WINDOW_SPLIT 				0xE135
 #define	ID_HELP_USING					0xE144
 #define	ID_HELP 					0xE146
+
+#define IDC_VIEW_PATTERN				1000
+#define IDC_VIEW_TYPE_DIRECTORIES		1001
+#define IDC_VIEW_TYPE_PROGRAMS			1002
+#define IDC_VIEW_TYPE_DOCUMENTS 		1003
+#define IDC_VIEW_TYPE_OTHERS			1004
+#define IDC_VIEW_TYPE_HIDDEN			1005
 
 
 /* winefile extensions */
Index: winefile.c
===================================================================
RCS file: /home/wine/wine/programs/winefile/winefile.c,v
retrieving revision 1.43
diff -u -p -d -r1.43 winefile.c
--- winefile.c	23 May 2005 10:26:47 -0000	1.43
+++ winefile.c	28 May 2005 17:33:45 -0000
@@ -157,6 +157,8 @@ typedef struct {
 	BOOL	header_wdths_ok;
 
 	TCHAR	path[MAX_PATH];
+	TCHAR	filter_pattern[MAX_PATH];
+	int		filter_flags;
 	Root	root;
 
 	SORT_ORDER sortOrder;
@@ -1330,10 +1332,22 @@ static Entry* read_tree(Root* root, LPCT
 }
 
 
+/* flags to filter different file types */
+enum TYPE_FILTER {
+	TF_DIRECTORIES	= 0x01,
+	TF_PROGRAMS		= 0x02,
+	TF_DOCUMENTS	= 0x04,
+	TF_OTHERS		= 0x08,
+	TF_HIDDEN		= 0x10,
+	TF_ALL			= 0x1F
+};
+
+
 static ChildWnd* alloc_child_window(LPCTSTR path, LPITEMIDLIST pidl, HWND hwnd)
 {
 	TCHAR drv[_MAX_DRIVE+1], dir[_MAX_DIR], name[_MAX_FNAME], ext[_MAX_EXT];
 	TCHAR b1[BUFFER_LEN];
+	const static TCHAR sAsterics[] = {'*', '\0'};
 
 	ChildWnd* child = (ChildWnd*) malloc(sizeof(ChildWnd));
 	Root* root = &child->root;
@@ -1371,6 +1385,9 @@ static ChildWnd* alloc_child_window(LPCT
 		_tsplitpath(path, drv, dir, name, ext);
 	}
 
+	_tcscpy(child->filter_pattern, sAsterics);
+	child->filter_flags = TF_ALL;
+
 	root->entry.level = 0;
 
 	entry = read_tree(root, path, pidl, drv, child->sortOrder, hwnd);
@@ -1592,7 +1609,6 @@ struct ExecuteDialog {
 	int		cmdshow;
 };
 
-
 static INT_PTR CALLBACK ExecuteDialogWndProg(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 {
 	static struct ExecuteDialog* dlg;
@@ -1619,6 +1635,7 @@ static INT_PTR CALLBACK ExecuteDialogWnd
 	return 0;
 }
 
+
 static INT_PTR CALLBACK DestinationDlgProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
 {
 	TCHAR b1[BUFFER_LEN], b2[BUFFER_LEN];
@@ -1656,6 +1673,53 @@ static INT_PTR CALLBACK DestinationDlgPr
 }
 
 
+struct FilterDialog {
+	TCHAR	pattern[MAX_PATH];
+	int		flags;
+};
+
+static INT_PTR CALLBACK FilterDialogDlgProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
+{
+	static struct FilterDialog* dlg;
+
+	switch(nmsg) {
+		case WM_INITDIALOG:
+			dlg = (struct FilterDialog*) lparam;
+			SetWindowText(GetDlgItem(hwnd, IDC_VIEW_PATTERN), dlg->pattern);
+			Button_SetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_DIRECTORIES), (dlg->flags&TF_DIRECTORIES? BST_CHECKED: BST_UNCHECKED));
+			Button_SetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_PROGRAMS), dlg->flags&TF_PROGRAMS? BST_CHECKED: BST_UNCHECKED);
+			Button_SetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_DOCUMENTS), dlg->flags&TF_DOCUMENTS? BST_CHECKED: BST_UNCHECKED);
+			Button_SetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_OTHERS), dlg->flags&TF_OTHERS? BST_CHECKED: BST_UNCHECKED);
+			Button_SetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_HIDDEN), dlg->flags&TF_HIDDEN? BST_CHECKED: BST_UNCHECKED);
+			return 1;
+
+		case WM_COMMAND: {
+			int id = (int)wparam;
+
+			if (id == IDOK) {
+				int flags = 0;
+
+				GetWindowText(GetDlgItem(hwnd, IDC_VIEW_PATTERN), dlg->pattern, MAX_PATH);
+
+				flags |= Button_GetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_DIRECTORIES))&BST_CHECKED? TF_DIRECTORIES: 0;
+				flags |= Button_GetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_PROGRAMS))&BST_CHECKED? TF_PROGRAMS: 0;
+				flags |= Button_GetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_DOCUMENTS))&BST_CHECKED? TF_DOCUMENTS: 0;
+				flags |= Button_GetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_OTHERS))&BST_CHECKED? TF_OTHERS: 0;
+				flags |= Button_GetCheck(GetDlgItem(hwnd,IDC_VIEW_TYPE_HIDDEN))&BST_CHECKED? TF_HIDDEN: 0;
+
+				dlg->flags = flags;
+
+				EndDialog(hwnd, id);
+			} else if (id == IDCANCEL)
+				EndDialog(hwnd, id);
+
+			return 1;}
+	}
+
+	return 0;
+}
+
+
 #ifndef _NO_EXTENSIONS
 
 static struct FullScreenParameters {
@@ -2377,9 +2441,46 @@ static void calc_single_width(Pane* pane
 }
 
 
+static BOOL pattern_match(LPCTSTR str, LPCTSTR pattern)
+{
+	for( ; *str&&*pattern; str++,pattern++) {
+		if (*pattern == '*') {
+			do pattern++;
+			while(*pattern == '*');
+
+			if (!*pattern)
+				return TRUE;
+
+			for(; *str; str++)
+				if (_totupper(*str)==_totupper(*pattern) && pattern_match(str, pattern))
+					return TRUE;
+
+			return FALSE;
+		}
+		else if (_totupper(*str)!=_totupper(*pattern) && *pattern!='?')
+			return FALSE;
+	}
+
+	if (*str || *pattern)
+		if (*pattern!='*' || pattern[1]!='\0')
+			return FALSE;
+
+	return TRUE;
+}
+
+
+enum FILE_TYPE {
+	FT_OTHER		= 0,
+	FT_EXECUTABLE	= 1,
+	FT_DOCUMENT		= 2
+};
+
+static enum FILE_TYPE get_file_type(LPCTSTR filename);
+
+
 /* insert listbox entries after index idx */
 
-static int insert_entries(Pane* pane, Entry* dir, int idx)
+static int insert_entries(Pane* pane, Entry* dir, LPCTSTR pattern, int filter_flags, int idx)
 {
 	Entry* entry = dir;
 
@@ -2394,15 +2495,47 @@ static int insert_entries(Pane* pane, En
 			continue;
 #endif
 
-		/* don't display entries "." and ".." in the left pane */
-		if (pane->treePane && (entry->data.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
-				&& entry->data.cFileName[0]==TEXT('.'))
-			if (
-#ifndef _NO_EXTENSIONS
-				entry->data.cFileName[1]==TEXT('\0') ||
-#endif
-				(entry->data.cFileName[1]==TEXT('.') && entry->data.cFileName[2]==TEXT('\0')))
+		if (entry->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+			/* don't display entries "." and ".." in the left pane */
+			if (pane->treePane && entry->data.cFileName[0]==TEXT('.'))
+				if (
+	#ifndef _NO_EXTENSIONS
+					entry->data.cFileName[1]==TEXT('\0') ||
+	#endif
+					(entry->data.cFileName[1]==TEXT('.') && entry->data.cFileName[2]==TEXT('\0')))
+					continue;
+
+			/* filter directories in right pane */
+			if (!pane->treePane && !(filter_flags&TF_DIRECTORIES))
 				continue;
+		}
+
+		/* filter using the file name pattern */
+		if (pattern)
+			if (!pattern_match(entry->data.cFileName, pattern))
+				continue;
+
+		/* filter system and hidden files */
+		if (!(filter_flags&TF_HIDDEN) && (entry->data.dwFileAttributes&(FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM)))
+			continue;
+
+		/* filter looking at the file type */
+		if ((filter_flags&(TF_PROGRAMS|TF_DOCUMENTS|TF_OTHERS)) != (TF_PROGRAMS|TF_DOCUMENTS|TF_OTHERS))
+			switch(get_file_type(entry->data.cFileName)) {
+			  case FT_EXECUTABLE:
+			  	if (!(filter_flags & TF_PROGRAMS))
+					continue;
+				break;
+
+			  case FT_DOCUMENT:
+				if (!(filter_flags & TF_DOCUMENTS))
+					continue;
+				break;
+
+			  default: // TF_OTHERS
+				if (!(filter_flags & TF_OTHERS))
+					continue;
+			}
 
 		if (idx != -1)
 			idx++;
@@ -2410,7 +2543,7 @@ static int insert_entries(Pane* pane, En
 		ListBox_InsertItemData(pane->hwnd, idx, entry);
 
 		if (pane->treePane && entry->expanded)
-			idx = insert_entries(pane, entry->down, idx);
+			idx = insert_entries(pane, entry->down, pattern, filter_flags, idx);
 	}
 
 	ShowWindow(pane->hwnd, SW_SHOW);
@@ -2455,7 +2588,7 @@ static void set_space_status()
 
 static WNDPROC g_orgTreeWndProc;
 
-static void create_tree_window(HWND parent, Pane* pane, int id, int id_header)
+static void create_tree_window(HWND parent, Pane* pane, int id, int id_header, LPCTSTR pattern, int filter_flags)
 {
 	const static TCHAR sListBox[] = {'L','i','s','t','B','o','x','\0'};
 
@@ -2473,7 +2606,7 @@ static void create_tree_window(HWND pare
 
 	/* insert entries into listbox */
 	if (entry)
-		insert_entries(pane, entry, -1);
+		insert_entries(pane, entry, pattern, filter_flags, -1);
 
 	/* calculate column widths */
 	if (!s_init) {
@@ -2491,8 +2624,8 @@ static void create_tree_window(HWND pare
 
 static void InitChildWindow(ChildWnd* child)
 {
-	create_tree_window(child->hwnd, &child->left, IDW_TREE_LEFT, IDW_HEADER_LEFT);
-	create_tree_window(child->hwnd, &child->right, IDW_TREE_RIGHT, IDW_HEADER_RIGHT);
+	create_tree_window(child->hwnd, &child->left, IDW_TREE_LEFT, IDW_HEADER_LEFT, NULL, TF_ALL);
+	create_tree_window(child->hwnd, &child->right, IDW_TREE_RIGHT, IDW_HEADER_RIGHT, child->filter_pattern, child->filter_flags);
 }
 
 
@@ -2617,7 +2750,7 @@ static void output_number(Pane* pane, LP
 }
 
 
-static int is_exe_file(LPCTSTR ext)
+static BOOL is_exe_file(LPCTSTR ext)
 {
 	static const TCHAR executable_extensions[][4] = {
 		{'C','O','M','\0'},
@@ -2641,17 +2774,33 @@ static int is_exe_file(LPCTSTR ext)
 		d++;
 
 	for(p=executable_extensions; (*p)[0]; p++)
-		if (!_tcscmp(ext_buffer, *p))
-			return 1;
+		if (!_tcsicmp(ext_buffer, *p))
+			return TRUE;
 
-	return 0;
+	return FALSE;
 }
 
-static int is_registered_type(LPCTSTR ext)
+static BOOL is_registered_type(LPCTSTR ext)
 {
-        /* TODO */
+	/* check if there exists a classname for this file extension in the registry */
+	if (!RegQueryValue(HKEY_CLASSES_ROOT, ext, NULL, NULL))
+		return TRUE;
 
-	return 1;
+	return FALSE;
+}
+
+static enum FILE_TYPE get_file_type(LPCTSTR filename)
+{
+	LPCTSTR ext = _tcsrchr(filename, '.');
+	if (!ext)
+		ext = sEmpty;
+
+	if (is_exe_file(ext))
+		return FT_EXECUTABLE;
+	else if (is_registered_type(ext))
+		return FT_DOCUMENT;
+	else
+		return FT_OTHER;
 }
 
 
@@ -2687,16 +2836,11 @@ static void draw_item(Pane* pane, LPDRAW
 			else
 				img = IMG_FOLDER;
 		} else {
-			LPCTSTR ext = _tcsrchr(entry->data.cFileName, '.');
-			if (!ext)
-				ext = sEmpty;
-
-			if (is_exe_file(ext))
-				img = IMG_EXECUTABLE;
-			else if (is_registered_type(ext))
-				img = IMG_DOCUMENT;
-			else
-				img = IMG_FILE;
+			switch(get_file_type(entry->data.cFileName)) {
+			  case FT_EXECUTABLE:	img = IMG_EXECUTABLE;	break;
+			  case FT_DOCUMENT:		img = IMG_DOCUMENT;		break;
+			  default:				img = IMG_FILE;
+			}
 		}
 	} else {
 		attrs = 0;
@@ -3198,7 +3342,7 @@ static void scan_entry(ChildWnd* child, 
 	}
 
 	/* insert found entries in right pane */
-	insert_entries(&child->right, entry->down, -1);
+	insert_entries(&child->right, entry->down, child->filter_pattern, child->filter_flags, -1);
 	calc_widths(&child->right, FALSE);
 #ifndef _NO_EXTENSIONS
 	set_header(&child->right);
@@ -3239,7 +3383,7 @@ static BOOL expand_entry(ChildWnd* child
 	dir->expanded = TRUE;
 
 	/* insert entries in left pane */
-	insert_entries(&child->left, p, idx);
+	insert_entries(&child->left, p, NULL, TF_ALL, idx);
 
 	if (!child->header_wdths_ok) {
 		if (calc_widths(&child->left, FALSE)) {
@@ -3278,6 +3422,17 @@ static void collapse_entry(Pane* pane, E
 }
 
 
+static void refresh_right_pane(ChildWnd* child)
+{
+	ListBox_ResetContent(child->right.hwnd);
+	insert_entries(&child->right, child->right.root, child->filter_pattern, child->filter_flags, -1);
+	calc_widths(&child->right, FALSE);
+
+#ifndef _NO_EXTENSIONS
+	set_header(&child->right);
+#endif
+}
+
 static void set_curdir(ChildWnd* child, Entry* entry, int idx, HWND hwnd)
 {
 	TCHAR path[MAX_PATH];
@@ -3285,19 +3440,14 @@ static void set_curdir(ChildWnd* child, 
 	path[0] = '\0';
 
 	child->left.cur = entry;
+
 	child->right.root = entry->down? entry->down: entry;
 	child->right.cur = entry;
 
 	if (!entry->scanned)
 		scan_entry(child, entry, idx, hwnd);
-	else {
-		ListBox_ResetContent(child->right.hwnd);
-		insert_entries(&child->right, entry->down, -1);
-		calc_widths(&child->right, FALSE);
-#ifndef _NO_EXTENSIONS
-		set_header(&child->right);
-#endif
-	}
+	else
+		refresh_right_pane(child);
 
 	get_path(entry, path);
 	lstrcpy(child->path, path);
@@ -3326,7 +3476,7 @@ static void refresh_child(ChildWnd* chil
 
 	entry = read_tree(&child->root, path, NULL, drv, child->sortOrder, child->hwnd);
 
-	insert_entries(&child->left, child->root.entry.down, 0);
+	insert_entries(&child->left, child->root.entry.down, NULL, TF_ALL, 0);
 
 	set_curdir(child, entry, 0, child->hwnd);
 
@@ -3923,6 +4073,20 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd,
 				case ID_VIEW_SORT_DATE:
 					set_sort_order(child, SORT_DATE);
 					break;
+
+				case ID_VIEW_FILTER: {
+					struct FilterDialog dlg;
+
+					memset(&dlg, 0, sizeof(struct FilterDialog));
+					_tcscpy(dlg.pattern, child->filter_pattern);
+					dlg.flags = child->filter_flags;
+
+					if (DialogBoxParam(Globals.hInstance, MAKEINTRESOURCE(IDD_DIALOG_VIEW_TYPE), hwnd, FilterDialogDlgProc, (LPARAM)&dlg) == IDOK) {
+						_tcscpy(child->filter_pattern, dlg.pattern);
+						child->filter_flags = dlg.flags;
+						refresh_right_pane(child);
+					}
+					break;}
 
 				case ID_VIEW_SPLIT: {
 					last_split = child->split_pos;
Index: Cs.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Cs.rc,v
retrieving revision 1.5
diff -u -p -d -r1.5 Cs.rc
--- Cs.rc	23 May 2005 09:52:51 -0000	1.5
+++ Cs.rc	28 May 2005 17:33:42 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Tøídit dle Velikost&i" , 		406
 		MENUITEM "Tøídit dle &data" , 		407
 		MENUITEM SEPARATOR
-		MENUITEM "Tøídit dle  &..." ,			409
+		MENUITEM "Tøídit dle  &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Nastavení"  {
Index: De.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/De.rc,v
retrieving revision 1.11
diff -u -p -d -r1.11 De.rc
--- De.rc	23 May 2005 09:52:51 -0000	1.11
+++ De.rc	28 May 2005 17:33:42 -0000
@@ -2,7 +2,7 @@
  * Winefile
  * German Language Support
  *
- * Copyright 2000 Martin Fuchs
+ * Copyright 2000, 2005 Martin Fuchs
  * Copyright 2002 Steven Edwards
  * Copyright 2002 Alexandre Julliard
  *
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Nach &Größe" , 	ID_VIEW_SORT_SIZE
 		MENUITEM "Nach &Datum" , 	ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Angaben ausw&ählen..." ,			409
+		MENUITEM "Angaben ausw&ählen..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Optionen"  {
@@ -177,6 +177,29 @@ FONT 8, "MS Shell Dlg"
 	PUSHBUTTON		"Abbrechen" , 2, 158, 23, 47, 14
 	PUSHBUTTON		"&Durchsuchen" , 254, 158, 43, 47, 14
 }
+
+IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Angaben auswählen"
+FONT 8, "MS Sans Serif"
+BEGIN
+    LTEXT           "&Name:",-1,7,8,22,10
+    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
+    GROUPBOX        "Dateityp",-1,7,23,87,56
+    CONTROL         "&Verzeichnisse",IDC_VIEW_TYPE_DIRECTORIES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
+    CONTROL         "&Programme",IDC_VIEW_TYPE_PROGRAMS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
+    CONTROL         "&Dokumente",IDC_VIEW_TYPE_DOCUMENTS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
+    CONTROL         "&Andere Dateien",IDC_VIEW_TYPE_OTHERS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
+    CONTROL         "Vers&teckte/Systemdateien anzeigen",IDC_VIEW_TYPE_HIDDEN,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
+    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,104,24,50,14
+END
+
 
 STRINGTABLE
 {
Index: En.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/En.rc,v
retrieving revision 1.16
diff -u -p -d -r1.16 En.rc
--- En.rc	23 May 2005 09:52:51 -0000	1.16
+++ En.rc	28 May 2005 17:33:42 -0000
@@ -97,7 +97,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Sort by Si&ze" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Sort by &Date" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Filter by &..." ,			409
+		MENUITEM "Filter by &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Options"  {
@@ -177,6 +177,29 @@ FONT 8, "MS Shell Dlg"
 	PUSHBUTTON		"Cancel" , 2, 158, 23, 47, 14
 	PUSHBUTTON		"&Browse" , 254, 158, 43, 47, 14
 }
+
+IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "By File Type"
+FONT 8, "MS Sans Serif"
+BEGIN
+    LTEXT           "&Name:",-1,7,8,22,10
+    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
+    GROUPBOX        "File Type",-1,7,23,87,56
+    CONTROL         "&Directories",IDC_VIEW_TYPE_DIRECTORIES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
+    CONTROL         "&Programs",IDC_VIEW_TYPE_PROGRAMS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
+    CONTROL         "Docu&ments",IDC_VIEW_TYPE_DOCUMENTS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
+    CONTROL         "&Other files",IDC_VIEW_TYPE_OTHERS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
+    CONTROL         "Show Hidden/&System Files",IDC_VIEW_TYPE_HIDDEN,
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
+    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
+    PUSHBUTTON      "Cancel",IDCANCEL,104,24,50,14
+END
+
 
 STRINGTABLE
 {
Index: Es.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Es.rc,v
retrieving revision 1.9
diff -u -p -d -r1.9 Es.rc
--- Es.rc	23 May 2005 09:52:51 -0000	1.9
+++ Es.rc	28 May 2005 17:33:42 -0000
@@ -95,7 +95,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Ordenar por t&amaño" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Ordenar por &fecha" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Ordenar por &..." ,			409
+		MENUITEM "Ordenar por &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Opciones"  {
Index: Fr.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Fr.rc,v
retrieving revision 1.9
diff -u -p -d -r1.9 Fr.rc
--- Fr.rc	23 May 2005 09:52:51 -0000	1.9
+++ Fr.rc	28 May 2005 17:33:42 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Trier par Ta&ille" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Trier par Dat&e" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Trier par &..." ,			409
+		MENUITEM "Trier par &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Options"  {
Index: Hu.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Hu.rc,v
retrieving revision 1.7
diff -u -p -d -r1.7 Hu.rc
--- Hu.rc	23 May 2005 09:52:51 -0000	1.7
+++ Hu.rc	28 May 2005 17:33:42 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Rendezés &méret szerint" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Rendezés &dátum szerint" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Egyedi rendezés &..." ,			409
+		MENUITEM "Egyedi rendezés &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Beállítások"  {
Index: It.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/It.rc,v
retrieving revision 1.10
diff -u -p -d -r1.10 It.rc
--- It.rc	23 May 2005 09:52:51 -0000	1.10
+++ It.rc	28 May 2005 17:33:42 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "&Ordina per Dimensione" , 	ID_VIEW_SORT_SIZE
 		MENUITEM "&Ordina per Data" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Ordina per &..." ,			409
+		MENUITEM "Ordina per &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Opzioni"  {
Index: Nl.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Nl.rc,v
retrieving revision 1.7
diff -u -p -d -r1.7 Nl.rc
--- Nl.rc	23 May 2005 09:52:51 -0000	1.7
+++ Nl.rc	28 May 2005 17:33:42 -0000
@@ -94,7 +94,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Sorteer op &grootte" , ID_VIEW_SORT_SIZE
 		MENUITEM "Sorteer op &datum" ,   ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Sorteer op &..." ,     409
+		MENUITEM "Sorteer op &..." ,     ID_VIEW_FILTER
 	}
 
 	POPUP "&Opties"  {
Index: Pl.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Pl.rc,v
retrieving revision 1.8
diff -u -p -d -r1.8 Pl.rc
--- Pl.rc	23 May 2005 09:52:51 -0000	1.8
+++ Pl.rc	28 May 2005 17:33:42 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Rozmieœæ &po wielkoœci" , 		406
 		MENUITEM "&Sortuj po dacie" , 		407
 		MENUITEM SEPARATOR
-		MENUITEM "Sortuj po &..." ,			409
+		MENUITEM "Sortuj po &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Opcje"  {
Index: Pt.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Pt.rc,v
retrieving revision 1.9
diff -u -p -d -r1.9 Pt.rc
--- Pt.rc	23 May 2005 09:52:51 -0000	1.9
+++ Pt.rc	28 May 2005 17:33:42 -0000
@@ -97,7 +97,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Cl&assificar por tamanho" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Cla&ssificar por &data" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Classificar &por..." ,			409
+		MENUITEM "Classificar &por..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Opções"  {
@@ -224,7 +224,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Cl&assificar por tamanho" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Cla&ssificar por &data" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Classificar &por..." ,			409
+		MENUITEM "Classificar &por..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Opções"  {
Index: Ru.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Ru.rc,v
retrieving revision 1.7
diff -u -p -d -r1.7 Ru.rc
--- Ru.rc	23 May 2005 09:52:51 -0000	1.7
+++ Ru.rc	28 May 2005 17:33:42 -0000
@@ -94,7 +94,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Ñîðòèðîâàòü ïî &ðàçìåðó" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Ñîðòèðîâàòü ïî ä&àòå" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Ñîðòèðîâàòü ïî &..." ,			409
+		MENUITEM "Ñîðòèðîâàòü ïî &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Íàñòðîéêè"  {
Index: Si.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Si.rc,v
retrieving revision 1.7
diff -u -p -d -r1.7 Si.rc
--- Si.rc	23 May 2005 09:52:51 -0000	1.7
+++ Si.rc	28 May 2005 17:33:42 -0000
@@ -95,7 +95,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "Sort by Si&ze" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "Sort by &Date" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "Filter by &..." ,			409
+		MENUITEM "Filter by &..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "&Options"  {
Index: Sv.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Sv.rc,v
retrieving revision 1.3
diff -u -p -d -r1.3 Sv.rc
--- Sv.rc	23 May 2005 09:52:51 -0000	1.3
+++ Sv.rc	28 May 2005 17:33:43 -0000
@@ -98,7 +98,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 	MENUITEM "Sortera efter st&orlek",	ID_VIEW_SORT_SIZE
 	MENUITEM "Sortera efter &datum",	ID_VIEW_SORT_DATE
         MENUITEM SEPARATOR
-        MENUITEM "Sortera efter &...",                409
+        MENUITEM "Sortera efter &...",                ID_VIEW_FILTER
 	}
 
 	POPUP "&Inställningar"  {
Index: Zh.rc
===================================================================
RCS file: /home/wine/wine/programs/winefile/Zh.rc,v
retrieving revision 1.7
diff -u -p -d -r1.7 Zh.rc
--- Zh.rc	23 May 2005 09:52:51 -0000	1.7
+++ Zh.rc	28 May 2005 17:33:43 -0000
@@ -95,7 +95,7 @@ IDM_WINEFILE MENU FIXED IMPURE
 		MENUITEM "°´´óСÅÅÐò£¨&Z£©" , 		ID_VIEW_SORT_SIZE
 		MENUITEM "°´ÈÕÆÚÅÅÐò£¨&D£©" , 		ID_VIEW_SORT_DATE
 		MENUITEM SEPARATOR
-		MENUITEM "¶¨ÖÆÅÅÐò..." ,			409
+		MENUITEM "¶¨ÖÆÅÅÐò..." ,			ID_VIEW_FILTER
 	}
 
 	POPUP "Ñ¡Ï&O£©"  {





More information about the wine-patches mailing list