From a62f884b0b6d2a7dd2dbbb2ebda6404e8715494c Mon Sep 17 00:00:00 2001 From: Martin Fuchs Date: Sat, 21 May 2005 16:45:50 +0000 Subject: [PATCH] - fixed for FOR _NO_EXTENSIONS mode - implement ID_VIEW_SPLIT command svn path=/trunk/; revision=15460 --- reactos/subsys/system/winefile/Sv.rc | 2 +- reactos/subsys/system/winefile/cs.rc | 2 +- reactos/subsys/system/winefile/de.rc | 2 +- reactos/subsys/system/winefile/en.rc | 2 +- reactos/subsys/system/winefile/es.rc | 2 +- reactos/subsys/system/winefile/fr.rc | 2 +- reactos/subsys/system/winefile/hu.rc | 2 +- reactos/subsys/system/winefile/it.rc | 2 +- reactos/subsys/system/winefile/nl.rc | 2 +- reactos/subsys/system/winefile/pl.rc | 2 +- reactos/subsys/system/winefile/pt.rc | 4 +- reactos/subsys/system/winefile/resource.h | 1 + reactos/subsys/system/winefile/ru.rc | 2 +- reactos/subsys/system/winefile/si.rc | 2 +- reactos/subsys/system/winefile/winefile.c | 46 ++++++++++++++--------- reactos/subsys/system/winefile/winefile.h | 7 ++-- reactos/subsys/system/winefile/zh.rc | 2 +- 17 files changed, 48 insertions(+), 36 deletions(-) diff --git a/reactos/subsys/system/winefile/Sv.rc b/reactos/subsys/system/winefile/Sv.rc index 108bae5f5e5..31347d6eb00 100644 --- a/reactos/subsys/system/winefile/Sv.rc +++ b/reactos/subsys/system/winefile/Sv.rc @@ -87,7 +87,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Bara tr&äd", 411 MENUITEM "Bara &mapp", 412 MENUITEM SEPARATOR - MENUITEM "De&la", 414 + MENUITEM "De&la", ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Namn", ID_VIEW_NAME MENUITEM "&Alla Fildetaljer" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/cs.rc b/reactos/subsys/system/winefile/cs.rc index 58fe7eb3193..8f724976c22 100644 --- a/reactos/subsys/system/winefile/cs.rc +++ b/reactos/subsys/system/winefile/cs.rc @@ -86,7 +86,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "&Jen strom" , 411 MENUITEM "Jen &adresáøe" , 412 MENUITEM SEPARATOR - MENUITEM "&Rozdìlit" , 414 + MENUITEM "&Rozdìlit" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Jméno" , ID_VIEW_NAME MENUITEM "&Detaily všech souborù" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/de.rc b/reactos/subsys/system/winefile/de.rc index d3c17b33901..50a17a91659 100644 --- a/reactos/subsys/system/winefile/de.rc +++ b/reactos/subsys/system/winefile/de.rc @@ -85,7 +85,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Nur St&ruktur" , 411 MENUITEM "Nur &Verzeichnis" , 412 MENUITEM SEPARATOR - MENUITEM "&Teilen" , 414 + MENUITEM "&Teilen" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Name" , ID_VIEW_NAME MENUITEM "A&lle Dateiangaben" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/en.rc b/reactos/subsys/system/winefile/en.rc index f7a6932131a..abf20729be0 100644 --- a/reactos/subsys/system/winefile/en.rc +++ b/reactos/subsys/system/winefile/en.rc @@ -88,7 +88,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Tr&ee Only" , 411 MENUITEM "Directory &Only" , 412 MENUITEM SEPARATOR - MENUITEM "Sp&lit" , 414 + MENUITEM "Sp&lit" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Name" , ID_VIEW_NAME MENUITEM "&All File Details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/es.rc b/reactos/subsys/system/winefile/es.rc index 6f16ff6fe2e..956e2cdfc24 100644 --- a/reactos/subsys/system/winefile/es.rc +++ b/reactos/subsys/system/winefile/es.rc @@ -84,7 +84,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Árbol &sólo" , 411 MENUITEM "&Directorio sólo" , 412 MENUITEM SEPARATOR - MENUITEM "Di&vidir" , 414 + MENUITEM "Di&vidir" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "No&mbre" , ID_VIEW_NAME MENUITEM "T&odos los detalles" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/fr.rc b/reactos/subsys/system/winefile/fr.rc index 5b0a073cef8..d76b16f87c9 100644 --- a/reactos/subsys/system/winefile/fr.rc +++ b/reactos/subsys/system/winefile/fr.rc @@ -87,7 +87,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "&Arbre seulement" , 411 MENUITEM "&Répertoire seulement" , 412 MENUITEM SEPARATOR - MENUITEM "&Séparer" , 414 + MENUITEM "&Séparer" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Nom" , ID_VIEW_NAME MENUITEM "Tous &les Détails" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/hu.rc b/reactos/subsys/system/winefile/hu.rc index 35dd2dfdf13..d94bf5ddc7b 100644 --- a/reactos/subsys/system/winefile/hu.rc +++ b/reactos/subsys/system/winefile/hu.rc @@ -87,7 +87,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "&Könyvtárfa" , 411 MENUITEM "&Csak mappák" , 412 MENUITEM SEPARATOR - MENUITEM "&Felosztás" , 414 + MENUITEM "&Felosztás" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Név" , ID_VIEW_NAME MENUITEM "&Minden részlet" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/it.rc b/reactos/subsys/system/winefile/it.rc index dea9eedf7ca..06925782914 100644 --- a/reactos/subsys/system/winefile/it.rc +++ b/reactos/subsys/system/winefile/it.rc @@ -87,7 +87,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "So&lo Albero" , 411 MENUITEM "&Solo Directory" , 412 MENUITEM SEPARATOR - MENUITEM "Di&vidi" , 414 + MENUITEM "Di&vidi" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Nome" , ID_VIEW_NAME MENUITEM "&Mostra tutti i dettagli sui file" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/nl.rc b/reactos/subsys/system/winefile/nl.rc index 85734f8b992..75089858c1f 100644 --- a/reactos/subsys/system/winefile/nl.rc +++ b/reactos/subsys/system/winefile/nl.rc @@ -83,7 +83,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "&Alleen hierarchie" , 411 MENUITEM "Alleen &mapinhoud" , 412 MENUITEM SEPARATOR - MENUITEM "Sp&litsen" , 414 + MENUITEM "Sp&litsen" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Naam" , ID_VIEW_NAME MENUITEM "&Alle details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/pl.rc b/reactos/subsys/system/winefile/pl.rc index 3b641134afd..a91b42e85da 100644 --- a/reactos/subsys/system/winefile/pl.rc +++ b/reactos/subsys/system/winefile/pl.rc @@ -87,7 +87,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "D&rzewo" , 411 MENUITEM "&Katalogi" , 412 MENUITEM SEPARATOR - MENUITEM "&Po³¹cz" , 414 + MENUITEM "&Po³¹cz" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Nazwa" , ID_VIEW_NAME MENUITEM "&Wszystkie atrybuty pliku" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/pt.rc b/reactos/subsys/system/winefile/pt.rc index dd58d346072..2ad7fab2e59 100644 --- a/reactos/subsys/system/winefile/pt.rc +++ b/reactos/subsys/system/winefile/pt.rc @@ -86,7 +86,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "S&omente árvore" , 411 MENUITEM "So&mente pasta" , 412 MENUITEM SEPARATOR - MENUITEM "&Dividir" , 414 + MENUITEM "&Dividir" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Nome" , ID_VIEW_NAME MENUITEM "&Todos os delalhes" , ID_VIEW_ALL_ATTRIBUTES, CHECKED @@ -214,7 +214,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "S&omente árvore" , 411 MENUITEM "So&mente pasta" , 412 MENUITEM SEPARATOR - MENUITEM "&Dividir" , 414 + MENUITEM "&Dividir" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Nome" , ID_VIEW_NAME MENUITEM "&Todos os delalhes" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/resource.h b/reactos/subsys/system/winefile/resource.h index acf67fb1153..0cc7d59fda3 100644 --- a/reactos/subsys/system/winefile/resource.h +++ b/reactos/subsys/system/winefile/resource.h @@ -53,6 +53,7 @@ #define ID_VIEW_SORT_TYPE 405 #define ID_VIEW_SORT_SIZE 406 #define ID_VIEW_SORT_DATE 407 +#define ID_VIEW_SPLIT 414 #define ID_SELECT_FONT 510 #define ID_VIEW_TOOL_BAR 508 #define ID_VIEW_DRIVE_BAR 507 diff --git a/reactos/subsys/system/winefile/ru.rc b/reactos/subsys/system/winefile/ru.rc index 6ab0c4ae789..be4463711d9 100644 --- a/reactos/subsys/system/winefile/ru.rc +++ b/reactos/subsys/system/winefile/ru.rc @@ -83,7 +83,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Òîëüêî &äåðåâî" , 411 MENUITEM "Òîëüêî &ïàïêà" , 412 MENUITEM SEPARATOR - MENUITEM "Ðàç&áèòü" , 414 + MENUITEM "Ðàç&áèòü" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "È&ìÿ" , ID_VIEW_NAME MENUITEM "Â&ñå ïîäðîáíîñòè î ôàéëå" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/si.rc b/reactos/subsys/system/winefile/si.rc index 60a7570d194..dedc830eaa8 100644 --- a/reactos/subsys/system/winefile/si.rc +++ b/reactos/subsys/system/winefile/si.rc @@ -84,7 +84,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "Tr&ee Only" , 411 MENUITEM "Directory &Only" , 412 MENUITEM SEPARATOR - MENUITEM "Sp&lit" , 414 + MENUITEM "Sp&lit" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "&Name" , ID_VIEW_NAME MENUITEM "&All File Details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED diff --git a/reactos/subsys/system/winefile/winefile.c b/reactos/subsys/system/winefile/winefile.c index a62746e36a6..516274fe36f 100644 --- a/reactos/subsys/system/winefile/winefile.c +++ b/reactos/subsys/system/winefile/winefile.c @@ -211,6 +211,8 @@ LRESULT CALLBACK TreeWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam) /* globals */ WINEFILE_GLOBALS Globals; +static int last_split; + /* some common string constants */ const static TCHAR sEmpty[] = {'\0'}; @@ -346,6 +348,15 @@ static void read_directory_win(Entry* dir, LPCTSTR path) if (hFind != INVALID_HANDLE_VALUE) { do { +#ifdef _NO_EXTENSIONS + /* hide directory entry "." */ + if (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + LPCTSTR name = w32fd.cFileName; + + if (name[0]=='.' && name[1]=='\0') + continue; + } +#endif entry = alloc_entry(); if (!first_entry) @@ -361,15 +372,7 @@ static void read_directory_win(Entry* dir, LPCTSTR path) entry->scanned = FALSE; entry->level = level; -#ifdef _NO_EXTENSIONS - /* hide directory entry "." */ - if (entry->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - LPCTSTR name = entry->data.cFileName; - - if (name[0]=='.' && name[1]=='\0') - continue; - } -#else +#ifndef _NO_EXTENSIONS entry->etype = ET_WINDOWS; entry->bhfi_valid = FALSE; @@ -387,9 +390,10 @@ static void read_directory_win(Entry* dir, LPCTSTR path) #endif last = entry; - } while(FindNextFile(hFind, &entry->data)); + } while(FindNextFile(hFind, &w32fd)); - last->next = NULL; + if (last) + last->next = NULL; FindClose(hFind); } @@ -568,7 +572,8 @@ static void read_directory_unix(Entry* dir, LPCTSTR path) last = entry; } - last->next = NULL; + if (last) + last->next = NULL; call_closedir(pdir); } @@ -1219,7 +1224,7 @@ static void SortDirectory(Entry* dir, SORT_ORDER sortOrder) len++; if (len) { - array = (Entry**) HeapAlloc(GetProcessHeap(), 0, len*sizeof(Entry*)); + array = HeapAlloc(GetProcessHeap(), 0, len*sizeof(Entry*)); p = array; for(entry=dir->down; entry; entry=entry->next) @@ -1321,10 +1326,10 @@ static void read_directory(Entry* dir, LPCTSTR path, SORT_ORDER sortOrder, HWND static Entry* read_tree(Root* root, LPCTSTR path, LPITEMIDLIST pidl, LPTSTR drv, SORT_ORDER sortOrder, HWND hwnd) { - const static TCHAR sBackslash[] = {'\\', '\0'}; #if !defined(_NO_EXTENSIONS) && defined(__WINE__) const static TCHAR sSlash[] = {'/', '\0'}; #endif + const static TCHAR sBackslash[] = {'\\', '\0'}; #ifdef _SHELL_FOLDERS if (pidl) @@ -3397,7 +3402,9 @@ static void refresh_child(ChildWnd* child) static void create_drive_bar() { TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0}; +#ifndef _NO_EXTENSIONS TCHAR b1[BUFFER_LEN]; +#endif int btn = 1; PTSTR p; @@ -3755,8 +3762,6 @@ static HRESULT ShellFolderContextMenu(IShellFolder* shell_folder, HWND hwndParen LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam) { - static int last_split; - ChildWnd* child = (ChildWnd*) GetWindowLong(hwnd, GWL_USERDATA); ASSERT(child); @@ -3995,6 +4000,14 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam set_sort_order(child, SORT_DATE); break; + case ID_VIEW_SPLIT: { + last_split = child->split_pos; +#ifdef _NO_EXTENSIONS + draw_splitbar(hwnd, last_split); +#endif + SetCapture(hwnd); + break;} + default: return pane_command(pane, LOWORD(wparam)); } @@ -4244,7 +4257,6 @@ void show_frame(HWND hwndParent, int cmdshow) TCHAR path[MAX_PATH], b1[BUFFER_LEN]; ChildWnd* child; HMENU hMenuFrame, hMenuWindow; - TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, BTNS_SEP, {0, 0}, 0, 0}; CLIENTCREATESTRUCT ccs; diff --git a/reactos/subsys/system/winefile/winefile.h b/reactos/subsys/system/winefile/winefile.h index edb3894847d..e2d1158bdb8 100644 --- a/reactos/subsys/system/winefile/winefile.h +++ b/reactos/subsys/system/winefile/winefile.h @@ -50,12 +50,11 @@ #include /* for alloca() */ #endif +#include /* for ShellExecute() */ +#include /* for SHFormatDrive() */ + #ifndef _NO_EXTENSIONS #define _SHELL_FOLDERS - -#include -#include -#include #endif /* _NO_EXTENSIONS */ #ifndef FILE_ATTRIBUTE_NOT_CONTENT_INDEXED diff --git a/reactos/subsys/system/winefile/zh.rc b/reactos/subsys/system/winefile/zh.rc index bafd61f48fd..f82c9e9a61c 100644 --- a/reactos/subsys/system/winefile/zh.rc +++ b/reactos/subsys/system/winefile/zh.rc @@ -84,7 +84,7 @@ IDM_WINEFILE MENU FIXED IMPURE MENUITEM "½öÏÔʾĿ¼Ê÷£¨&E£©" , 411 MENUITEM "½öÏÔʾĿ¼ÄÚÈÝ£¨&O£©" , 412 MENUITEM SEPARATOR - MENUITEM "·Ö¸î£¨&L£©" , 414 + MENUITEM "·Ö¸î£¨&L£©" , ID_VIEW_SPLIT MENUITEM SEPARATOR MENUITEM "ÎļþÃûÃû£¨&N£©" , ID_VIEW_NAME MENUITEM "ÎļþÏêϤÁÐ±í£¨&A£©" , ID_VIEW_ALL_ATTRIBUTES, CHECKED