Author: jimtabor
Date: Sat Dec 7 01:37:47 2013
New Revision: 61241
URL:
http://svn.reactos.org/svn/reactos?rev=61241&view=rev
Log:
[RosApps]
- Add cat, ps and winefile for testing. Building winefile (cmake hacked please check it)
is syned up with wine head (winefile.c/h only).
Added:
trunk/rosapps/applications/sysutils/utils/CMakeLists.txt (with props)
trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt (with props)
trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt (with props)
trunk/rosapps/applications/winfile/CMakeLists.txt (with props)
Modified:
trunk/rosapps/applications/CMakeLists.txt
trunk/rosapps/applications/sysutils/CMakeLists.txt
trunk/rosapps/applications/winfile/resource.h
trunk/rosapps/applications/winfile/winefile.c
trunk/rosapps/applications/winfile/winefile.h
Modified: trunk/rosapps/applications/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/CMakeLists.tx…
==============================================================================
--- trunk/rosapps/applications/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rosapps/applications/CMakeLists.txt [iso-8859-1] Sat Dec 7 01:37:47 2013
@@ -6,4 +6,4 @@
add_subdirectory(notevil)
add_subdirectory(screensavers)
add_subdirectory(sysutils)
-#add_subdirectory(winfile)
+add_subdirectory(winfile)
Modified: trunk/rosapps/applications/sysutils/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/CMak…
==============================================================================
--- trunk/rosapps/applications/sysutils/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rosapps/applications/sysutils/CMakeLists.txt [iso-8859-1] Sat Dec 7 01:37:47
2013
@@ -14,4 +14,4 @@
#add_subdirectory(systeminfo)
#add_subdirectory(tcat)
add_subdirectory(tlist)
-#add_subdirectory(utils)
+add_subdirectory(utils)
Added: trunk/rosapps/applications/sysutils/utils/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/util…
==============================================================================
--- trunk/rosapps/applications/sysutils/utils/CMakeLists.txt (added)
+++ trunk/rosapps/applications/sysutils/utils/CMakeLists.txt [iso-8859-1] Sat Dec 7
01:37:47 2013
@@ -0,0 +1,16 @@
+#add_subdirectory(binpatch)
+add_subdirectory(cat)
+#add_subdirectory(driver)
+#add_subdirectory(infinst)
+#add_subdirectory(nts2w32err)
+#add_subdirectory(objdir)
+#add_subdirectory(partinfo)
+#add_subdirectory(pice)
+#add_subdirectory(pnpdump)
+add_subdirectory(ps)
+#add_subdirectory(rosperf)
+#add_subdirectory(sdkparse)
+#add_subdirectory(stats)
+#add_subdirectory(theme)
+#add_subdirectory(tickcount)
+
Propchange: trunk/rosapps/applications/sysutils/utils/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rosapps/applications/sysutils/utils/CMakeLists.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/util…
==============================================================================
--- trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt (added)
+++ trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt [iso-8859-1] Sat Dec 7
01:37:47 2013
@@ -0,0 +1,5 @@
+
+add_executable(cat cat.c)
+set_module_type(cat win32cui)
+add_importlibs(cat ntdll user32 msvcrt kernel32)
+add_cd_file(TARGET cat DESTINATION reactos/bin FOR all)
Propchange: trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rosapps/applications/sysutils/utils/cat/CMakeLists.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/util…
==============================================================================
--- trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt (added)
+++ trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt [iso-8859-1] Sat Dec 7
01:37:47 2013
@@ -0,0 +1,5 @@
+
+add_executable(ps ps.c)
+set_module_type(ps win32cui)
+add_importlibs(ps ntdll user32 msvcrt kernel32)
+add_cd_file(TARGET ps DESTINATION reactos/bin FOR all)
Propchange: trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rosapps/applications/sysutils/utils/ps/CMakeLists.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: trunk/rosapps/applications/winfile/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/winfile/CMake…
==============================================================================
--- trunk/rosapps/applications/winfile/CMakeLists.txt (added)
+++ trunk/rosapps/applications/winfile/CMakeLists.txt [iso-8859-1] Sat Dec 7 01:37:47
2013
@@ -0,0 +1,14 @@
+
+add_executable(winefile winefile.c rsrc.rc)
+
+set_module_type(winefile win32gui UNICODE)
+add_importlibs(winefile advapi32 gdi32 user32 ws2_32 msimg32 version mpr comctl32
comdlg32 ole32 oleaut32 shell32 shlwapi msvcrt kernel32 ntdll)
+target_link_libraries(winefile uuid)
+
+add_cd_file(TARGET winefile DESTINATION reactos/system32 FOR all)
+
+if(NOT MSVC)
+ # FIXME:
http://www.cmake.org/Bug/view.php?id=12998
+ #add_target_compile_flags(winefile "-Wno-format")
+ allow_warnings(winefile)
+endif()
Propchange: trunk/rosapps/applications/winfile/CMakeLists.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: trunk/rosapps/applications/winfile/CMakeLists.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: trunk/rosapps/applications/winfile/resource.h
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/winfile/resou…
==============================================================================
--- trunk/rosapps/applications/winfile/resource.h [iso-8859-1] (original)
+++ trunk/rosapps/applications/winfile/resource.h [iso-8859-1] Sat Dec 7 01:37:47 2013
@@ -132,6 +132,9 @@
#define IDS_COL_ATTR 1217
#define IDS_COL_SEC 1218
#define IDS_FREE_SPACE_FMT 1219
+#define IDS_UNIT_KB 1220
+#define IDS_UNIT_MB 1221
+#define IDS_UNIT_GB 1222
/* range for drive bar command ids: 0x9000..0x90FF */
Modified: trunk/rosapps/applications/winfile/winefile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/winfile/winef…
==============================================================================
--- trunk/rosapps/applications/winfile/winefile.c [iso-8859-1] (original)
+++ trunk/rosapps/applications/winfile/winefile.c [iso-8859-1] Sat Dec 7 01:37:47 2013
@@ -35,10 +35,6 @@
#include "resource.h"
#include "wine/unicode.h"
-#ifdef _NO_EXTENSIONS
-#undef _LEFT_FILES
-#endif
-
#ifndef _MAX_PATH
#define _MAX_DRIVE 3
#define _MAX_FNAME 256
@@ -53,12 +49,7 @@
#define UNION_MEMBER(x) x
#endif
-
-#ifdef _SHELL_FOLDERS
#define DEFAULT_SPLIT_POS 300
-#else
-#define DEFAULT_SPLIT_POS 200
-#endif
static const WCHAR registry_key[] = {
'S','o','f','t','w','a','r','e','\\',
'W','i','n','e','\\',
@@ -72,9 +63,7 @@
enum ENTRY_TYPE {
ET_WINDOWS,
ET_UNIX,
-#ifdef _SHELL_FOLDERS
ET_SHELL
-#endif
};
typedef struct _Entry {
@@ -88,16 +77,12 @@
WIN32_FIND_DATAW data;
-#ifndef _NO_EXTENSIONS
BY_HANDLE_FILE_INFORMATION bhfi;
BOOL bhfi_valid;
enum ENTRY_TYPE etype;
-#endif
-#ifdef _SHELL_FOLDERS
LPITEMIDLIST pidl;
IShellFolder* folder;
HICON hicon;
-#endif
} Entry;
typedef struct {
@@ -115,13 +100,9 @@
COL_TIME = 0x04,
COL_ATTRIBUTES = 0x08,
COL_DOSNAMES = 0x10,
-#ifdef _NO_EXTENSIONS
- COL_ALL = COL_SIZE|COL_DATE|COL_TIME|COL_ATTRIBUTES|COL_DOSNAMES
-#else
COL_INDEX = 0x20,
COL_LINKS = 0x40,
COL_ALL = COL_SIZE|COL_DATE|COL_TIME|COL_ATTRIBUTES|COL_DOSNAMES|COL_INDEX|COL_LINKS
-#endif
};
typedef enum {
@@ -133,15 +114,9 @@
typedef struct {
HWND hwnd;
-#ifndef _NO_EXTENSIONS
HWND hwndHeader;
-#endif
-
-#ifndef _NO_EXTENSIONS
+
#define COLUMNS 10
-#else
-#define COLUMNS 5
-#endif
int widths[COLUMNS];
int positions[COLUMNS+1];
@@ -263,11 +238,14 @@
LOGFONTW lFont;
HDC hdc = GetDC(hwnd);
+
+ GetObjectW(Globals.hfont, sizeof(LOGFONTW), &lFont);
+
chFont.lStructSize = sizeof(CHOOSEFONTW);
chFont.hwndOwner = hwnd;
chFont.hDC = NULL;
chFont.lpLogFont = &lFont;
- chFont.Flags = CF_SCREENFONTS | CF_FORCEFONTEXIST | CF_LIMITSIZE |
CF_NOSCRIPTSEL;
+ chFont.Flags = CF_SCREENFONTS | CF_FORCEFONTEXIST | CF_LIMITSIZE | CF_NOSCRIPTSEL
| CF_INITTOLOGFONTSTRUCT | CF_NOVERTFONTS;
chFont.rgbColors = RGB(0,0,0);
chFont.lCustData = 0;
chFont.lpfnHook = NULL;
@@ -315,11 +293,9 @@
{
Entry* entry = HeapAlloc(GetProcessHeap(), 0, sizeof(Entry));
-#ifdef _SHELL_FOLDERS
entry->pidl = NULL;
entry->folder = NULL;
entry->hicon = 0;
-#endif
return entry;
}
@@ -327,7 +303,6 @@
/* free a directory entry */
static void free_entry(Entry* entry)
{
-#ifdef _SHELL_FOLDERS
if (entry->hicon && entry->hicon!=(HICON)-1)
DestroyIcon(entry->hicon);
@@ -336,7 +311,6 @@
if (entry->pidl)
IMalloc_Free(Globals.iMalloc, entry->pidl);
-#endif
HeapFree(GetProcessHeap(), 0, entry);
}
@@ -369,9 +343,7 @@
int level = dir->level + 1;
WIN32_FIND_DATAW w32fd;
HANDLE hFind;
-#ifndef _NO_EXTENSIONS
HANDLE hFile;
-#endif
WCHAR buffer[MAX_PATH], *p;
for(p=buffer; *path; )
@@ -385,15 +357,6 @@
if (hFind != INVALID_HANDLE_VALUE) {
do {
-#ifdef _NO_EXTENSIONS
- /* hide directory entry "." */
- if (w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
- LPCWSTR name = w32fd.cFileName;
-
- if (name[0]=='.' && name[1]=='\0')
- continue;
- }
-#endif
entry = alloc_entry();
if (!first_entry)
@@ -408,8 +371,6 @@
entry->expanded = FALSE;
entry->scanned = FALSE;
entry->level = level;
-
-#ifndef _NO_EXTENSIONS
entry->etype = ET_WINDOWS;
entry->bhfi_valid = FALSE;
@@ -424,7 +385,6 @@
CloseHandle(hFile);
}
-#endif
last = entry;
} while(FindNextFileW(hFind, &w32fd));
@@ -475,10 +435,7 @@
HCURSOR old_cursor = SetCursor(LoadCursorW(0, (LPCWSTR)IDC_WAIT));
-#ifndef _NO_EXTENSIONS
entry->etype = ET_WINDOWS;
-#endif
-
while(entry) {
while(*s && *s != '\\' && *s != '/')
*d++ = *s++;
@@ -506,11 +463,11 @@
}
-#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
-
-static BOOL time_to_filetime(const time_t* t, FILETIME* ftime)
-{
- struct tm* tm = gmtime(t);
+#ifdef __WINE__
+
+static BOOL time_to_filetime(time_t t, FILETIME* ftime)
+{
+ struct tm* tm = gmtime(&t);
SYSTEMTIME stime;
if (!tm)
@@ -523,6 +480,7 @@
stime.wHour = tm->tm_hour;
stime.wMinute = tm->tm_min;
stime.wSecond = tm->tm_sec;
+ stime.wMilliseconds = 0;
return SystemTimeToFileTime(&stime, ftime);
}
@@ -576,8 +534,8 @@
entry->data.nFileSizeHigh = st.st_size >> 32;
memset(&entry->data.ftCreationTime, 0, sizeof(FILETIME));
- time_to_filetime(&st.st_atime, &entry->data.ftLastAccessTime);
- time_to_filetime(&st.st_mtime, &entry->data.ftLastWriteTime);
+ time_to_filetime(st.st_atime, &entry->data.ftLastAccessTime);
+ time_to_filetime(st.st_mtime, &entry->data.ftLastWriteTime);
entry->bhfi.nFileIndexLow = ent->d_ino;
entry->bhfi.nFileIndexHigh = 0;
@@ -664,10 +622,7 @@
return entry;
}
-#endif /* !defined(_NO_EXTENSIONS) && defined(__WINE__) */
-
-
-#ifdef _SHELL_FOLDERS
+#endif /* __WINE__ */
static void free_strret(STRRET* str)
{
@@ -837,10 +792,7 @@
HCURSOR old_cursor = SetCursor(LoadCursorW(0, (LPCWSTR)IDC_WAIT));
-#ifndef _NO_EXTENSIONS
entry->etype = ET_SHELL;
-#endif
-
folder = Globals.iDesktop;
while(entry) {
@@ -1025,10 +977,8 @@
entry->scanned = FALSE;
entry->level = level;
-#ifndef _NO_EXTENSIONS
entry->etype = ET_SHELL;
entry->bhfi_valid = FALSE;
-#endif
last = entry;
}
@@ -1043,9 +993,6 @@
dir->down = first_entry;
dir->scanned = TRUE;
}
-
-#endif /* _SHELL_FOLDERS */
-
/* sort order for different directory/file types */
enum TYPE_ORDER {
@@ -1175,7 +1122,7 @@
static void SortDirectory(Entry* dir, SORT_ORDER sortOrder)
{
- Entry* entry = dir->down;
+ Entry* entry;
Entry** array, **p;
int len;
@@ -1212,7 +1159,6 @@
LPCWSTR s;
PWSTR d;
-#ifdef _SHELL_FOLDERS
if (dir->etype == ET_SHELL)
{
read_directory_shell(dir, hwnd);
@@ -1234,8 +1180,7 @@
}
}
else
-#endif
-#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
+#ifdef __WINE__
if (dir->etype == ET_UNIX)
{
read_directory_unix(dir, path);
@@ -1286,12 +1231,11 @@
static Entry* read_tree(Root* root, LPCWSTR path, LPITEMIDLIST pidl, LPWSTR drv,
SORT_ORDER sortOrder, HWND hwnd)
{
-#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
+#ifdef __WINE__
static const WCHAR sSlash[] = {'/', '\0'};
#endif
static const WCHAR sBackslash[] = {'\\', '\0'};
-#ifdef _SHELL_FOLDERS
if (pidl)
{
/* read shell namespace tree */
@@ -1305,8 +1249,7 @@
return read_tree_shell(root, pidl, sortOrder, hwnd);
}
else
-#endif
-#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
+#ifdef __WINE__
if (*path == '/')
{
/* read unix file system tree */
@@ -1350,8 +1293,8 @@
{
WCHAR drv[_MAX_DRIVE+1], dir[_MAX_DIR], name[_MAX_FNAME], ext[_MAX_EXT];
WCHAR dir_path[MAX_PATH];
- WCHAR b1[BUFFER_LEN];
static const WCHAR sAsterics[] = {'*', '\0'};
+ static const WCHAR sTitleFmt[] = {'%','s',' ','-','
','%','s','\0'};
ChildWnd* child = HeapAlloc(GetProcessHeap(), 0, sizeof(ChildWnd));
Root* root = &child->root;
@@ -1363,11 +1306,7 @@
child->left.visible_cols = 0;
child->right.treePane = FALSE;
-#ifndef _NO_EXTENSIONS
child->right.visible_cols =
COL_SIZE|COL_DATE|COL_TIME|COL_ATTRIBUTES|COL_INDEX|COL_LINKS;
-#else
- child->right.visible_cols = COL_SIZE|COL_DATE|COL_TIME|COL_ATTRIBUTES;
-#endif
child->pos.length = sizeof(WINDOWPLACEMENT);
child->pos.flags = 0;
@@ -1398,12 +1337,10 @@
lstrcatW(dir_path, dir);
entry = read_tree(root, dir_path, pidl, drv, child->sortOrder, hwnd);
-#ifdef _SHELL_FOLDERS
if (root->entry.etype == ET_SHELL)
load_string(root->entry.data.cFileName,
sizeof(root->entry.data.cFileName)/sizeof(root->entry.data.cFileName[0]),
IDS_DESKTOP);
else
-#endif
- wsprintfW(root->entry.data.cFileName, RS(b1,IDS_TITLEFMT), drv, root->fs);
+ wsprintfW(root->entry.data.cFileName, sTitleFmt, drv, root->fs);
root->entry.data.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
@@ -1431,7 +1368,6 @@
int len = 0;
int level = 0;
-#ifdef _SHELL_FOLDERS
if (dir->etype == ET_SHELL)
{
SFGAOF attribs;
@@ -1451,7 +1387,6 @@
}
}
else
-#endif
{
for(entry=dir; entry; level++) {
LPCWSTR name;
@@ -1472,12 +1407,10 @@
memcpy(path+1, name, l*sizeof(WCHAR));
len += l+1;
-#ifndef _NO_EXTENSIONS
if (entry->etype == ET_UNIX)
path[0] = '/';
else
-#endif
- path[0] = '\\';
+ path[0] = '\\';
}
entry = entry->up;
@@ -1490,11 +1423,9 @@
}
if (!level) {
-#ifndef _NO_EXTENSIONS
if (entry->etype == ET_UNIX)
path[len++] = '/';
else
-#endif
path[len++] = '\\';
}
@@ -1830,6 +1761,7 @@
static WCHAR sTranslation[] =
{'\\','V','a','r','F','i','l','e','I','n','f','o','\\','T','r','a','n','s','l','a','t','i','o','n','\0'};
static WCHAR sStringFileInfo[] =
{'\\','S','t','r','i','n','g','F','i','l','e','I','n','f','o','\\',
'%','0','4','x','%','0','4','x','\\','%','s','\0'};
+ static WCHAR sFmt[] =
{'%','d','.','%','d','.','%','d','.','%','d','\0'};
DWORD dwVersionDataLen = GetFileVersionInfoSizeW(strFilename, NULL);
if (dwVersionDataLen) {
@@ -1842,13 +1774,13 @@
if (VerQueryValueW(dlg->pVersionData, sBackSlash, &pVal, &nValLen)) {
if (nValLen == sizeof(VS_FIXEDFILEINFO)) {
VS_FIXEDFILEINFO* pFixedFileInfo = (VS_FIXEDFILEINFO*)pVal;
- char buffer[BUFFER_LEN];
-
- sprintf(buffer, "%d.%d.%d.%d",
- HIWORD(pFixedFileInfo->dwFileVersionMS),
LOWORD(pFixedFileInfo->dwFileVersionMS),
- HIWORD(pFixedFileInfo->dwFileVersionLS),
LOWORD(pFixedFileInfo->dwFileVersionLS));
-
- SetDlgItemTextA(hwnd, IDC_STATIC_PROP_VERSION, buffer);
+ WCHAR buffer[BUFFER_LEN];
+
+ sprintfW(buffer, sFmt,
+
HIWORD(pFixedFileInfo->dwFileVersionMS), LOWORD(pFixedFileInfo->dwFileVersionMS),
+
HIWORD(pFixedFileInfo->dwFileVersionLS), LOWORD(pFixedFileInfo->dwFileVersionLS));
+
+ SetDlgItemTextW(hwnd, IDC_STATIC_PROP_VERSION,
buffer);
}
}
@@ -1961,9 +1893,6 @@
DialogBoxParamW(Globals.hInstance, MAKEINTRESOURCEW(IDD_DIALOG_PROPERTIES), hwnd,
PropertiesDialogDlgProc, (LPARAM)&dlg);
}
-
-
-#ifndef _NO_EXTENSIONS
static struct FullScreenParameters {
BOOL mode;
@@ -2055,9 +1984,6 @@
MoveWindow(hwnd, rt.left, rt.top, rt.right-rt.left, rt.bottom-rt.top, TRUE);
}
-#endif
-
-
static void toggle_child(HWND hwnd, UINT cmd, HWND hchild)
{
BOOL vis = IsWindowVisible(hchild);
@@ -2066,10 +1992,8 @@
ShowWindow(hchild, vis?SW_HIDE:SW_SHOW);
-#ifndef _NO_EXTENSIONS
if (g_fullscreen.mode)
fullscreen_move(hwnd);
-#endif
resize_frame_client(hwnd);
}
@@ -2081,7 +2005,7 @@
_wsplitpath(path, drv1, 0, 0, 0);
- /* search for a already open window for the same drive */
+ /* search for an already open window for the same drive */
for(child_wnd=GetNextWindow(Globals.hmdiclient,GW_CHILD); child_wnd;
child_wnd=GetNextWindow(child_wnd, GW_HWNDNEXT)) {
ChildWnd* child = (ChildWnd*)GetWindowLongPtrW(child_wnd, GWLP_USERDATA);
@@ -2106,7 +2030,7 @@
{
HWND child_wnd;
- /* search for a already open window of the given file system name */
+ /* search for an already open window of the given file system name */
for(child_wnd=GetNextWindow(Globals.hmdiclient,GW_CHILD); child_wnd;
child_wnd=GetNextWindow(child_wnd, GW_HWNDNEXT)) {
ChildWnd* child = (ChildWnd*) GetWindowLongPtrW(child_wnd, GWLP_USERDATA);
@@ -2274,18 +2198,10 @@
}
break;}
- case ID_FORMAT_DISK: {
- UINT sem_org = SetErrorMode(0); /* Get the current Error Mode settings. */
- SetErrorMode(sem_org & ~SEM_FAILCRITICALERRORS); /* Force O/S to handle */
- SHFormatDrive(hwnd, 0 /* A: */, SHFMT_ID_DEFAULT, 0);
- SetErrorMode(sem_org); /* Put it back the way it was. */
- break;}
-
case ID_HELP:
WinHelpW(hwnd, RS(b1,IDS_WINEFILE), HELP_INDEX, 0);
break;
-#ifndef _NO_EXTENSIONS
case ID_VIEW_FULLSCREEN:
CheckMenuItem(Globals.hMenuOptions, cmd, toggle_fullscreen(hwnd)?MF_CHECKED:0);
break;
@@ -2307,7 +2223,6 @@
HeapFree(GetProcessHeap(), 0, child);
break;}
#endif
-#ifdef _SHELL_FOLDERS
case ID_DRIVE_SHELL_NS: {
WCHAR path[MAX_PATH];
ChildWnd* child;
@@ -2321,8 +2236,6 @@
if (!create_child_window(child))
HeapFree(GetProcessHeap(), 0, child);
break;}
-#endif
-#endif
/*TODO: There are even more menu items! */
@@ -2351,7 +2264,6 @@
SendMessageW(hwnd, WM_COMMAND, MAKELONG(ID_REFRESH,0), 0);
break;
-#ifndef _NO_EXTENSIONS
case WM_GETMINMAXINFO: {
LPMINMAXINFO lpmmi = (LPMINMAXINFO)lparam;
@@ -2362,7 +2274,6 @@
case FRM_CALC_CLIENT:
frame_get_clientspace(hwnd, (PRECT)lparam);
return TRUE;
-#endif /* _NO_EXTENSIONS */
default:
return DefFrameProcW(hwnd, Globals.hmdiclient, nmsg, wparam, lparam);
@@ -2372,7 +2283,7 @@
}
-static WCHAR g_pos_names[COLUMNS][20] = {
+static WCHAR g_pos_names[COLUMNS][40] = {
{'\0'} /* symbol */
};
@@ -2381,22 +2292,20 @@
HDF_LEFT, /* Name */
HDF_RIGHT, /* Size */
HDF_LEFT, /* CDate */
-#ifndef _NO_EXTENSIONS
HDF_LEFT, /* ADate */
HDF_LEFT, /* MDate */
HDF_LEFT, /* Index */
HDF_CENTER, /* Links */
-#endif
HDF_CENTER, /* Attributes */
-#ifndef _NO_EXTENSIONS
HDF_LEFT /* Security */
-#endif
};
static void resize_tree(ChildWnd* child, int cx, int cy)
{
HDWP hdwp = BeginDeferWindowPos(4);
RECT rt;
+ WINDOWPOS wp;
+ HD_LAYOUT hdl;
rt.left = 0;
rt.top = 0;
@@ -2404,32 +2313,20 @@
rt.bottom = cy;
cx = child->split_pos + SPLIT_WIDTH/2;
-
-#ifndef _NO_EXTENSIONS
- {
- WINDOWPOS wp;
- HD_LAYOUT hdl;
-
- hdl.prc = &rt;
- hdl.pwpos = ℘
-
- SendMessageW(child->left.hwndHeader, HDM_LAYOUT, 0, (LPARAM)&hdl);
-
- DeferWindowPos(hdwp, child->left.hwndHeader, wp.hwndInsertAfter,
- wp.x-1, wp.y, child->split_pos-SPLIT_WIDTH/2+1, wp.cy, wp.flags);
- DeferWindowPos(hdwp, child->right.hwndHeader, wp.hwndInsertAfter,
- rt.left+cx+1, wp.y, wp.cx-cx+2, wp.cy, wp.flags);
- }
-#endif /* _NO_EXTENSIONS */
-
+ hdl.prc = &rt;
+ hdl.pwpos = ℘
+
+ SendMessageW(child->left.hwndHeader, HDM_LAYOUT, 0, (LPARAM)&hdl);
+
+ DeferWindowPos(hdwp, child->left.hwndHeader, wp.hwndInsertAfter,
+ wp.x-1, wp.y, child->split_pos-SPLIT_WIDTH/2+1, wp.cy,
wp.flags);
+ DeferWindowPos(hdwp, child->right.hwndHeader, wp.hwndInsertAfter,
+ rt.left+cx+1, wp.y, wp.cx-cx+2, wp.cy, wp.flags);
DeferWindowPos(hdwp, child->left.hwnd, 0, rt.left, rt.top,
child->split_pos-SPLIT_WIDTH/2-rt.left, rt.bottom-rt.top,
SWP_NOZORDER|SWP_NOACTIVATE);
DeferWindowPos(hdwp, child->right.hwnd, 0, rt.left+cx+1, rt.top, rt.right-cx,
rt.bottom-rt.top, SWP_NOZORDER|SWP_NOACTIVATE);
EndDeferWindowPos(hdwp);
}
-
-
-#ifndef _NO_EXTENSIONS
static HWND create_header(HWND parent, Pane* pane, UINT id)
{
@@ -2454,9 +2351,6 @@
return hwnd;
}
-
-#endif /* _NO_EXTENSIONS */
-
static void init_output(HWND hwnd)
{
@@ -2565,9 +2459,7 @@
return TRUE;
}
-
/* calculate one preferred column width */
-
static void calc_single_width(Pane* pane, int col)
{
HFONT hfontOld;
@@ -2625,7 +2517,6 @@
SendMessageW(pane->hwnd, LB_SETHORIZONTALEXTENT, x, 0);
}
-
static BOOL pattern_match(LPCWSTR str, LPCWSTR pattern)
{
for( ; *str&&*pattern; str++,pattern++) {
@@ -2687,19 +2578,15 @@
ShowWindow(pane->hwnd, SW_HIDE);
for(; entry; entry=entry->next) {
-#ifndef _LEFT_FILES
if (pane->treePane &&
!(entry->data.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
continue;
-#endif
if (entry->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
/* don't display entries "." and ".." in the left pane */
if (pane->treePane && entry->data.cFileName[0] == '.')
- if (
-#ifndef _NO_EXTENSIONS
- entry->data.cFileName[1] == '\0' ||
-#endif
- (entry->data.cFileName[1] == '.' && entry->data.cFileName[2]
== '\0'))
+ if (entry->data.cFileName[1] == '\0' ||
+ (entry->data.cFileName[1] == '.'
&&
+ entry->data.cFileName[2] == '\0'))
continue;
/* filter directories in right pane */
@@ -2751,21 +2638,34 @@
static void format_bytes(LPWSTR buffer, LONGLONG bytes)
{
- static const WCHAR sFmtGB[] = {'%', '.', '1', 'f', '
', 'G', 'B', '\0'};
- static const WCHAR sFmtMB[] = {'%', '.', '1', 'f', '
', 'M', 'B', '\0'};
- static const WCHAR sFmtkB[] = {'%', '.', '1', 'f', '
', 'k', 'B', '\0'};
- static const WCHAR sFmtB[] = {'%', 'u', 0};
-
- float fBytes = (float)bytes;
-
- if (bytes >= 1073741824) /* 1 GB */
- sprintfW(buffer, sFmtGB, fBytes/1073741824.f+.5f);
- else if (bytes >= 1048576) /* 1 MB */
- sprintfW(buffer, sFmtMB, fBytes/1048576.f+.5f);
- else if (bytes >= 1024) /* 1 kB */
- sprintfW(buffer, sFmtkB, fBytes/1024.f+.5f);
+ static const WCHAR sFmtSmall[] = {'%', 'u', 0};
+ static const WCHAR sFmtBig[] = {'%', '.', '1', 'f',
' ', '%', 's', '\0'};
+
+ if (bytes < 1024)
+ sprintfW(buffer, sFmtSmall, (DWORD)bytes);
else
- sprintfW(buffer, sFmtB, (DWORD)bytes);
+ {
+ WCHAR unit[64];
+ UINT resid;
+ float fBytes;
+ if (bytes >= 1073741824) /* 1 GB */
+ {
+ fBytes = ((float)bytes)/1073741824.f+.5f;
+ resid = IDS_UNIT_GB;
+ }
+ else if (bytes >= 1048576) /* 1 MB */
+ {
+ fBytes = ((float)bytes)/1048576.f+.5f;
+ resid = IDS_UNIT_MB;
+ }
+ else /* bytes >= 1024 */ /* 1 kB */
+ {
+ fBytes = ((float)bytes)/1024.f+.5f;
+ resid = IDS_UNIT_KB;
+ }
+ LoadStringW(Globals.hInstance, resid, unit, sizeof(unit)/sizeof(*unit));
+ sprintfW(buffer, sFmtBig, fBytes, unit);
+ }
}
static void set_space_status(void)
@@ -2774,9 +2674,14 @@
WCHAR fmt[64], b1[64], b2[64], buffer[BUFFER_LEN];
if (GetDiskFreeSpaceExW(NULL, &ulFreeBytesToCaller, &ulTotalBytes,
&ulFreeBytes)) {
+ DWORD_PTR args[2];
format_bytes(b1, ulFreeBytesToCaller.QuadPart);
format_bytes(b2, ulTotalBytes.QuadPart);
- wsprintfW(buffer, RS(fmt,IDS_FREE_SPACE_FMT), b1, b2);
+ args[0] = (DWORD_PTR)b1;
+ args[1] = (DWORD_PTR)b2;
+ FormatMessageW(FORMAT_MESSAGE_FROM_STRING|FORMAT_MESSAGE_ARGUMENT_ARRAY,
+ RS(fmt,IDS_FREE_SPACE_FMT), 0, 0, buffer,
+ sizeof(buffer)/sizeof(*buffer), (__ms_va_list*)args);
} else
lstrcpyW(buffer, sQMarks);
@@ -2790,7 +2695,7 @@
{
static const WCHAR sListBox[] =
{'L','i','s','t','B','o','x','\0'};
- static int s_init = 0;
+ static BOOL s_init = FALSE;
Entry* entry = pane->root;
pane->hwnd = CreateWindowW(sListBox, sEmpty,
WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|
@@ -2808,15 +2713,13 @@
/* calculate column widths */
if (!s_init) {
- s_init = 1;
+ s_init = TRUE;
init_output(pane->hwnd);
}
calc_widths(pane, TRUE);
-#ifndef _NO_EXTENSIONS
pane->hwndHeader = create_header(parent, pane, id_header);
-#endif
}
@@ -2876,9 +2779,6 @@
{
RECT rt = {0, 0, 0, 0};
-/* DRAWTEXTPARAMS dtp = {sizeof(DRAWTEXTPARAMS), 2};
- DrawTextExW(dis->hDC, (LPWSTR)str, -1, &rt,
DT_CALCRECT|DT_SINGLELINE|DT_NOPREFIX|DT_EXPANDTABS|DT_TABSTOP, &dtp);*/
-
DrawTextW(dis->hDC, str, -1, &rt,
DT_CALCRECT|DT_SINGLELINE|DT_EXPANDTABS|DT_TABSTOP|(2<<8));
/*FIXME rt (0,0) ??? */
@@ -2909,9 +2809,6 @@
rt.top = dis->rcItem.top;
rt.right = x+pane->positions[col+1]-Globals.spaceSize.cx;
rt.bottom = dis->rcItem.bottom;
-
-/* DRAWTEXTPARAMS dtp = {sizeof(DRAWTEXTPARAMS), 2};
- DrawTextExW(dis->hDC, (LPWSTR)str, -1, &rt,
DT_SINGLELINE|DT_NOPREFIX|DT_EXPANDTABS|DT_TABSTOP, &dtp);*/
DrawTextW(dis->hDC, str, -1, &rt,
DT_SINGLELINE|DT_EXPANDTABS|DT_TABSTOP|(2<<8));
}
@@ -2955,11 +2852,9 @@
{'E','X','E','\0'},
{'B','A','T','\0'},
{'C','M','D','\0'},
-#ifndef _NO_EXTENSIONS
{'C','M','M','\0'},
{'B','T','M','\0'},
{'A','W','K','\0'},
-#endif /* _NO_EXTENSIONS */
{'\0'}
};
@@ -3021,15 +2916,9 @@
if (entry->data.cFileName[0] == '.' && entry->data.cFileName[1]
== '.'
&& entry->data.cFileName[2] == '\0')
img = IMG_FOLDER_UP;
-#ifndef _NO_EXTENSIONS
else if (entry->data.cFileName[0] == '.' &&
entry->data.cFileName[1] == '\0')
img = IMG_FOLDER_CUR;
-#endif
- else if (
-#ifdef _NO_EXTENSIONS
- entry->expanded ||
-#endif
- (pane->treePane && (dis->itemState&ODS_FOCUS)))
+ else if (pane->treePane &&
(dis->itemState&ODS_FOCUS))
img = IMG_OPEN_FOLDER;
else
img = IMG_FOLDER;
@@ -3069,7 +2958,6 @@
hrgn_org = 0;
}
- /* HGDIOBJ holdPen = SelectObject(dis->hDC, GetStockObject(BLACK_PEN)); */
ExtSelectClipRgn(dis->hDC, hrgn, RGN_AND);
DeleteObject(hrgn);
@@ -3083,9 +2971,7 @@
x -= IMAGE_WIDTH+TREE_LINE_DX;
if (up->next
-#ifndef _LEFT_FILES
&& (up->next->data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-#endif
) {
MoveToEx(dis->hDC, x, dis->rcItem.top, 0);
LineTo(dis->hDC, x, dis->rcItem.bottom);
@@ -3099,15 +2985,11 @@
LineTo(dis->hDC, x, y);
if (entry->next
-#ifndef _LEFT_FILES
- && (entry->next->data.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
-#endif
- )
+ &&
(entry->next->data.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))
LineTo(dis->hDC, x, dis->rcItem.bottom);
SelectClipRgn(dis->hDC, hrgn_org);
if (hrgn_org) DeleteObject(hrgn_org);
- /* SelectObject(dis->hDC, holdPen); */
} else if (calcWidthCol==col || calcWidthCol==COLUMNS) {
int right = img_pos + IMAGE_WIDTH - TREE_LINE_DX;
@@ -3127,20 +3009,9 @@
if (calcWidthCol == -1) {
focusRect.left = img_pos -2;
-#ifdef _NO_EXTENSIONS
- if (pane->treePane && entry) {
- RECT rt = {0};
-
- DrawTextW(dis->hDC, entry->data.cFileName, -1, &rt,
DT_CALCRECT|DT_SINGLELINE|DT_NOPREFIX);
-
- focusRect.right = dis->rcItem.left+pane->positions[col+1]+TREE_LINE_DX +
rt.right +2;
- }
-#else
-
if (attrs & FILE_ATTRIBUTE_COMPRESSED)
textcolor = COLOR_COMPRESSED;
else
-#endif /* _NO_EXTENSIONS */
textcolor = RGB(0,0,0);
if (dis->itemState & ODS_FOCUS) {
@@ -3163,11 +3034,9 @@
if (cx > IMAGE_WIDTH)
cx = IMAGE_WIDTH;
-#ifdef _SHELL_FOLDERS
if (entry->hicon && entry->hicon!=(HICON)-1)
DrawIconEx(dis->hDC, img_pos, dis->rcItem.top, entry->hicon, cx,
GetSystemMetrics(SM_CYSMICON), 0, 0, DI_NORMAL);
else
-#endif
ImageList_DrawEx(Globals.himl, img, dis->hDC,
img_pos, dis->rcItem.top, cx,
IMAGE_HEIGHT, bkcolor, CLR_DEFAULT, ILD_NORMAL);
@@ -3177,14 +3046,9 @@
if (!entry)
return;
-#ifdef _NO_EXTENSIONS
- if (img >= IMG_FOLDER_UP)
- return;
-#endif
-
col++;
- /* ouput file name */
+ /* output file name */
if (calcWidthCol == -1)
output_text(pane, dis, col, entry->data.cFileName, 0);
else if (calcWidthCol==col || calcWidthCol==COLUMNS)
@@ -3192,30 +3056,20 @@
col++;
-#ifdef _NO_EXTENSIONS
- if (!pane->treePane) {
-#endif
-
/* display file size */
if (visible_cols & COL_SIZE) {
-#ifdef _NO_EXTENSIONS
- if (!(attrs&FILE_ATTRIBUTE_DIRECTORY))
-#endif
- {
- format_longlong( buffer, ((ULONGLONG)entry->data.nFileSizeHigh << 32) |
entry->data.nFileSizeLow );
-
- if (calcWidthCol == -1)
- output_number(pane, dis, col, buffer);
- else if (calcWidthCol==col || calcWidthCol==COLUMNS)
- calc_width(pane, dis, col, buffer);/*TODO: not ever time enough */
- }
+ format_longlong( buffer, ((ULONGLONG)entry->data.nFileSizeHigh
<< 32) | entry->data.nFileSizeLow );
+
+ if (calcWidthCol == -1)
+ output_number(pane, dis, col, buffer);
+ else if (calcWidthCol==col || calcWidthCol==COLUMNS)
+ calc_width(pane, dis, col, buffer);/*TODO: not ever time enough
*/
col++;
}
/* display file date */
if (visible_cols & (COL_DATE|COL_TIME)) {
-#ifndef _NO_EXTENSIONS
format_date(&entry->data.ftCreationTime, buffer, visible_cols);
if (calcWidthCol == -1)
output_text(pane, dis, col, buffer, 0);
@@ -3229,7 +3083,6 @@
else if (calcWidthCol==col || calcWidthCol==COLUMNS)
calc_width(pane, dis, col, buffer);
col++;
-#endif /* _NO_EXTENSIONS */
format_date(&entry->data.ftLastWriteTime, buffer, visible_cols);
if (calcWidthCol == -1)
@@ -3239,7 +3092,6 @@
col++;
}
-#ifndef _NO_EXTENSIONS
if (entry->bhfi_valid) {
if (visible_cols & COL_INDEX) {
static const WCHAR fmtlow[] = {'%','X',0};
@@ -3271,17 +3123,11 @@
}
} else
col += 2;
-#endif /* _NO_EXTENSIONS */
/* show file attributes */
if (visible_cols & COL_ATTRIBUTES) {
-#ifdef _NO_EXTENSIONS
- static const WCHAR s4Tabs[] = {' ','\t',' ','\t','
','\t',' ','\t',' ','\0'};
- lstrcpyW(buffer, s4Tabs);
-#else
static const WCHAR s11Tabs[] = {' ','\t',' ','\t','
','\t',' ','\t',' ','\t','
','\t',' ','\t',' ','\t','
','\t',' ','\t',' ','\t','
','\0'};
lstrcpyW(buffer, s11Tabs);
-#endif
if (attrs & FILE_ATTRIBUTE_NORMAL) buffer[ 0] = 'N';
else {
@@ -3290,7 +3136,6 @@
if (attrs & FILE_ATTRIBUTE_SYSTEM) buffer[ 6] = 'S';
if (attrs & FILE_ATTRIBUTE_ARCHIVE) buffer[ 8] = 'A';
if (attrs & FILE_ATTRIBUTE_COMPRESSED) buffer[10] = 'C';
-#ifndef _NO_EXTENSIONS
if (attrs & FILE_ATTRIBUTE_DIRECTORY) buffer[12] = 'D';
if (attrs & FILE_ATTRIBUTE_ENCRYPTED) buffer[14] = 'E';
if (attrs & FILE_ATTRIBUTE_TEMPORARY) buffer[16] = 'T';
@@ -3298,7 +3143,6 @@
if (attrs & FILE_ATTRIBUTE_REPARSE_POINT) buffer[20] = 'Q';
if (attrs & FILE_ATTRIBUTE_OFFLINE) buffer[22] = 'O';
if (attrs & FILE_ATTRIBUTE_NOT_CONTENT_INDEXED) buffer[24] = 'X';
-#endif /* _NO_EXTENSIONS */
}
if (calcWidthCol == -1)
@@ -3308,94 +3152,7 @@
col++;
}
-
-/*TODO
- if (flags.security) {
- static const WCHAR sSecTabs[] = {
- ' ','\t',' ','\t',' ','\t','
',
- ' ','\t',' ',
- ' ','\t',' ','\t',' ','\t','
',
- ' ','\t',' ',
- ' ','\t',' ','\t',' ','\t','
',
- '\0'
- };
-
- DWORD rights = get_access_mask();
-
- lstrcpyW(buffer, sSecTabs);
-
- if (rights & FILE_READ_DATA) buffer[ 0] = 'R';
- if (rights & FILE_WRITE_DATA) buffer[ 2] = 'W';
- if (rights & FILE_APPEND_DATA) buffer[ 4] = 'A';
- if (rights & FILE_READ_EA) {buffer[6] = 'entry'; buffer[ 7] =
'R';}
- if (rights & FILE_WRITE_EA) {buffer[9] = 'entry'; buffer[10] =
'W';}
- if (rights & FILE_EXECUTE) buffer[12] = 'X';
- if (rights & FILE_DELETE_CHILD) buffer[14] = 'D';
- if (rights & FILE_READ_ATTRIBUTES) {buffer[16] = 'a'; buffer[17] =
'R';}
- if (rights & FILE_WRITE_ATTRIBUTES) {buffer[19] = 'a'; buffer[20] =
'W';}
- if (rights & WRITE_DAC) buffer[22] = 'C';
- if (rights & WRITE_OWNER) buffer[24] = 'O';
- if (rights & SYNCHRONIZE) buffer[26] = 'S';
-
- output_text(dis, col++, buffer, DT_LEFT, 3, psize);
- }
-
- if (flags.description) {
- get_description(buffer);
- output_text(dis, col++, buffer, 0, psize);
- }
-*/
-
-#ifdef _NO_EXTENSIONS
- }
-
- /* draw focus frame */
- if ((dis->itemState&ODS_FOCUS) && calcWidthCol==-1) {
- /* Currently [04/2000] Wine neither behaves exactly the same */
- /* way as WIN 95 nor like Windows NT... */
- HGDIOBJ lastBrush;
- HPEN lastPen;
- HPEN hpen;
-
- if (!(GetVersion() & 0x80000000)) { /* Windows NT? */
- LOGBRUSH lb = {PS_SOLID, RGB(255,255,255)};
- hpen = ExtCreatePen(PS_COSMETIC|PS_ALTERNATE, 1, &lb, 0, 0);
- } else
- hpen = CreatePen(PS_DOT, 0, RGB(255,255,255));
-
- lastPen = SelectPen(dis->hDC, hpen);
- lastBrush = SelectObject(dis->hDC, GetStockObject(HOLLOW_BRUSH));
- SetROP2(dis->hDC, R2_XORPEN);
- Rectangle(dis->hDC, focusRect.left, focusRect.top, focusRect.right,
focusRect.bottom);
- SelectObject(dis->hDC, lastBrush);
- SelectObject(dis->hDC, lastPen);
- DeleteObject(hpen);
- }
-#endif /* _NO_EXTENSIONS */
-}
-
-
-#ifdef _NO_EXTENSIONS
-
-static void draw_splitbar(HWND hwnd, int x)
-{
- RECT rt;
- HDC hdc = GetDC(hwnd);
-
- GetClientRect(hwnd, &rt);
-
- rt.left = x - SPLIT_WIDTH/2;
- rt.right = x + SPLIT_WIDTH/2+1;
-
- InvertRect(hdc, &rt);
-
- ReleaseDC(hwnd, hdc);
-}
-
-#endif /* _NO_EXTENSIONS */
-
-
-#ifndef _NO_EXTENSIONS
+}
static void set_header(Pane* pane)
{
@@ -3406,7 +3163,7 @@
item.mask = HDI_WIDTH;
item.cxy = 0;
- for(; x+pane->widths[i]<scroll_pos && i<COLUMNS; i++) {
+ for(; (i < COLUMNS) && (x+pane->widths[i] < scroll_pos); i++) {
x += pane->widths[i];
SendMessageW(pane->hwndHeader, HDM_SETITEMW, i, (LPARAM)&item);
}
@@ -3416,7 +3173,7 @@
item.cxy = x - scroll_pos;
SendMessageW(pane->hwndHeader, HDM_SETITEMW, i++, (LPARAM)&item);
- for(; i<COLUMNS; i++) {
+ for(; i < COLUMNS; i++) {
item.cxy = pane->widths[i];
x += pane->widths[i];
SendMessageW(pane->hwndHeader, HDM_SETITEMW, i, (LPARAM)&item);
@@ -3491,9 +3248,6 @@
return 0;
}
-#endif /* _NO_EXTENSIONS */
-
-
static void scan_entry(ChildWnd* child, Entry* entry, int idx, HWND hwnd)
{
WCHAR path[MAX_PATH];
@@ -3517,13 +3271,11 @@
free_entries(entry);
/* read contents from disk */
-#ifdef _SHELL_FOLDERS
if (entry->etype == ET_SHELL)
{
read_directory(entry, NULL, child->sortOrder, hwnd);
}
else
-#endif
{
get_path(entry, path);
read_directory(entry, path, child->sortOrder, hwnd);
@@ -3532,9 +3284,7 @@
/* insert found entries in right pane */
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);
-#endif
child->header_wdths_ok = FALSE;
@@ -3575,9 +3325,7 @@
if (!child->header_wdths_ok) {
if (calc_widths(&child->left, FALSE)) {
-#ifndef _NO_EXTENSIONS
set_header(&child->left);
-#endif
child->header_wdths_ok = TRUE;
}
@@ -3589,7 +3337,10 @@
static void collapse_entry(Pane* pane, Entry* dir)
{
- int idx = SendMessageW(pane->hwnd, LB_FINDSTRING, 0, (LPARAM)dir);
+ int idx;
+
+ if (!dir) return;
+ idx = SendMessageW(pane->hwnd, LB_FINDSTRING, 0, (LPARAM)dir);
ShowWindow(pane->hwnd, SW_HIDE);
@@ -3616,9 +3367,7 @@
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)
@@ -3664,8 +3413,6 @@
child->right.root = NULL;
scan_entry(child, &child->root.entry, 0, child->hwnd);
-
-#ifdef _SHELL_FOLDERS
if (child->root.entry.etype == ET_SHELL)
{
@@ -3676,7 +3423,6 @@
entry = NULL;
}
else
-#endif
entry = read_tree(&child->root, path, NULL, drv, child->sortOrder,
child->hwnd);
if (!entry)
@@ -3694,9 +3440,7 @@
static void create_drive_bar(void)
{
TBBUTTON drivebarBtn = {0, 0, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0};
-#ifndef _NO_EXTENSIONS
WCHAR b1[BUFFER_LEN];
-#endif
int btn = 1;
PWSTR p;
@@ -3706,7 +3450,6 @@
IDW_DRIVEBAR, 2, Globals.hInstance, IDB_DRIVEBAR, &drivebarBtn,
0, 16, 13, 16, 13, sizeof(TBBUTTON));
-#ifndef _NO_EXTENSIONS
#ifdef __WINE__
/* insert unix file system button */
b1[0] = '/';
@@ -3718,7 +3461,6 @@
SendMessageW(Globals.hdrivebar, TB_INSERTBUTTONW, btn++, (LPARAM)&drivebarBtn);
drivebarBtn.iString++;
#endif
-#ifdef _SHELL_FOLDERS
/* insert shell namespace button */
load_string(b1, sizeof(b1)/sizeof(b1[0]), IDS_SHELL);
b1[lstrlenW(b1)+1] = '\0';
@@ -3727,20 +3469,13 @@
drivebarBtn.idCommand = ID_DRIVE_SHELL_NS;
SendMessageW(Globals.hdrivebar, TB_INSERTBUTTONW, btn++, (LPARAM)&drivebarBtn);
drivebarBtn.iString++;
-#endif
/* register windows drive root strings */
SendMessageW(Globals.hdrivebar, TB_ADDSTRINGW, 0, (LPARAM)Globals.drives);
-#endif
drivebarBtn.idCommand = ID_DRIVE_FIRST;
for(p=Globals.drives; *p; ) {
-#ifdef _NO_EXTENSIONS
- /* insert drive letter */
- WCHAR b[3] = {tolower(*p)};
- SendMessageW(Globals.hdrivebar, TB_ADDSTRINGW, 0, (LPARAM)b);
-#endif
switch(GetDriveTypeW(p)) {
case DRIVE_REMOVABLE: drivebarBtn.iBitmap = 1; break;
case DRIVE_CDROM: drivebarBtn.iBitmap = 3; break;
@@ -3791,7 +3526,6 @@
{
WCHAR cmd[MAX_PATH];
-#ifdef _SHELL_FOLDERS
if (entry->etype == ET_SHELL) {
BOOL ret = TRUE;
@@ -3817,7 +3551,6 @@
return ret;
}
-#endif
get_path(entry, cmd);
@@ -3842,10 +3575,8 @@
scan_entry(child, entry, idx, hwnd);
}
-#ifndef _NO_EXTENSIONS
if (entry->data.cFileName[0]=='.' &&
entry->data.cFileName[1]=='\0')
return;
-#endif
if (entry->data.cFileName[0]=='.' &&
entry->data.cFileName[1]=='.' &&
entry->data.cFileName[2]=='\0') {
entry = child->left.cur->up;
@@ -3867,9 +3598,7 @@
if (!scanned_old) {
calc_widths(pane, FALSE);
-#ifndef _NO_EXTENSIONS
set_header(pane);
-#endif
}
} else {
if (GetKeyState(VK_MENU) < 0)
@@ -3887,13 +3616,10 @@
if (pane->visible_cols) {
pane->visible_cols = 0;
calc_widths(pane, TRUE);
-#ifndef _NO_EXTENSIONS
set_header(pane);
-#endif
InvalidateRect(pane->hwnd, 0, TRUE);
CheckMenuItem(Globals.hMenuView, ID_VIEW_NAME, MF_BYCOMMAND|MF_CHECKED);
CheckMenuItem(Globals.hMenuView, ID_VIEW_ALL_ATTRIBUTES, MF_BYCOMMAND);
- CheckMenuItem(Globals.hMenuView, ID_VIEW_SELECTED_ATTRIBUTES, MF_BYCOMMAND);
}
break;
@@ -3901,23 +3627,18 @@
if (pane->visible_cols != COL_ALL) {
pane->visible_cols = COL_ALL;
calc_widths(pane, TRUE);
-#ifndef _NO_EXTENSIONS
set_header(pane);
-#endif
InvalidateRect(pane->hwnd, 0, TRUE);
CheckMenuItem(Globals.hMenuView, ID_VIEW_NAME, MF_BYCOMMAND);
CheckMenuItem(Globals.hMenuView, ID_VIEW_ALL_ATTRIBUTES, MF_BYCOMMAND|MF_CHECKED);
- CheckMenuItem(Globals.hMenuView, ID_VIEW_SELECTED_ATTRIBUTES, MF_BYCOMMAND);
}
break;
-#ifndef _NO_EXTENSIONS
case ID_PREFERRED_SIZES: {
calc_widths(pane, TRUE);
set_header(pane);
InvalidateRect(pane->hwnd, 0, TRUE);
break;}
-#endif
/* TODO: more command ids... */
@@ -3954,7 +3675,7 @@
if (target_attr == INVALID_FILE_ATTRIBUTES)
return FALSE;
- return target_attr&FILE_ATTRIBUTE_DIRECTORY? TRUE: FALSE;
+ return (target_attr & FILE_ATTRIBUTE_DIRECTORY) != 0;
}
static BOOL prompt_target(Pane* pane, LPWSTR source, LPWSTR target)
@@ -4036,14 +3757,12 @@
return FALSE;
}
-
static HRESULT ShellFolderContextMenu(IShellFolder* shell_folder, HWND hwndParent, int
cidl, LPCITEMIDLIST* apidl, int x, int y)
{
IContextMenu* pcm;
BOOL executed = FALSE;
HRESULT hr = IShellFolder_GetUIObjectOf(shell_folder, hwndParent, cidl, apidl,
&IID_IContextMenu, NULL, (LPVOID*)&pcm);
-/* HRESULT hr = CDefFolderMenu_Create2(dir?dir->_pidl:DesktopFolder(), hwndParent, 1,
&pidl, shell_folder, NULL, 0, NULL, &pcm); */
if (SUCCEEDED(hr)) {
HMENU hmenu = CreatePopupMenu();
@@ -4083,7 +3802,6 @@
return FAILED(hr)? hr: executed? S_OK: S_FALSE;
}
-
static LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
{
@@ -4124,10 +3842,6 @@
lastBrush = SelectObject(ps.hdc, GetStockObject(COLOR_SPLITBAR));
Rectangle(ps.hdc, rt.left, rt.top-1, rt.right, rt.bottom+1);
SelectObject(ps.hdc, lastBrush);
-#ifdef _NO_EXTENSIONS
- rt.top = rt.bottom - GetSystemMetrics(SM_CYHSCROLL);
- FillRect(ps.hdc, &rt, GetStockObject(BLACK_BRUSH));
-#endif
EndPaint(hwnd, &ps);
break;}
@@ -4152,45 +3866,21 @@
if (x>=child->split_pos-SPLIT_WIDTH/2 &&
x<child->split_pos+SPLIT_WIDTH/2+1) {
last_split = child->split_pos;
-#ifdef _NO_EXTENSIONS
- draw_splitbar(hwnd, last_split);
-#endif
SetCapture(hwnd);
}
break;}
case WM_LBUTTONUP:
- if (GetCapture() == hwnd) {
-#ifdef _NO_EXTENSIONS
- RECT rt;
- int x = (short)LOWORD(lparam);
- draw_splitbar(hwnd, last_split);
- last_split = -1;
- GetClientRect(hwnd, &rt);
- child->split_pos = x;
- resize_tree(child, rt.right, rt.bottom);
-#endif
- ReleaseCapture();
- }
+ if (GetCapture() == hwnd)
+ ReleaseCapture();
break;
-
-#ifdef _NO_EXTENSIONS
- case WM_CAPTURECHANGED:
- if (GetCapture()==hwnd && last_split>=0)
- draw_splitbar(hwnd, last_split);
- break;
-#endif
case WM_KEYDOWN:
if (wparam == VK_ESCAPE)
if (GetCapture() == hwnd) {
RECT rt;
-#ifdef _NO_EXTENSIONS
- draw_splitbar(hwnd, last_split);
-#else
child->split_pos = last_split;
-#endif
GetClientRect(hwnd, &rt);
resize_tree(child, rt.right, rt.bottom);
last_split = -1;
@@ -4204,21 +3894,6 @@
RECT rt;
int x = (short)LOWORD(lparam);
-#ifdef _NO_EXTENSIONS
- HDC hdc = GetDC(hwnd);
- GetClientRect(hwnd, &rt);
-
- rt.left = last_split-SPLIT_WIDTH/2;
- rt.right = last_split+SPLIT_WIDTH/2+1;
- InvertRect(hdc, &rt);
-
- last_split = x;
- rt.left = x-SPLIT_WIDTH/2;
- rt.right = x+SPLIT_WIDTH/2+1;
- InvertRect(hdc, &rt);
-
- ReleaseDC(hwnd, hdc);
-#else
GetClientRect(hwnd, &rt);
if (x>=0 && x<rt.right) {
@@ -4231,11 +3906,9 @@
UpdateWindow(hwnd);
UpdateWindow(child->right.hwnd);
}
-#endif
}
break;
-#ifndef _NO_EXTENSIONS
case WM_GETMINMAXINFO:
DefMDIChildProcW(hwnd, nmsg, wparam, lparam);
@@ -4244,7 +3917,6 @@
lpmmi->ptMaxTrackSize.x <<= 1;/*2*GetSystemMetrics(SM_CXSCREEN) /
SM_CXVIRTUALSCREEN */
lpmmi->ptMaxTrackSize.y <<= 1;/*2*GetSystemMetrics(SM_CYSCREEN) /
SM_CYVIRTUALSCREEN */
break;}
-#endif /* _NO_EXTENSIONS */
case WM_SETFOCUS:
if (SetCurrentDirectoryW(child->path))
@@ -4345,9 +4017,6 @@
case ID_VIEW_SPLIT: {
last_split = child->split_pos;
-#ifdef _NO_EXTENSIONS
- draw_splitbar(hwnd, last_split);
-#endif
SetCapture(hwnd);
break;}
@@ -4381,13 +4050,10 @@
}
break;}
-#ifndef _NO_EXTENSIONS
case WM_NOTIFY: {
NMHDR* pnmh = (NMHDR*) lparam;
return pane_notify(pnmh->idFrom==IDW_HEADER_LEFT? &child->left:
&child->right, pnmh);}
-#endif
-
-#ifdef _SHELL_FOLDERS
+
case WM_CONTEXTMENU: {
POINT pt, pt_clnt;
Pane* pane;
@@ -4426,7 +4092,6 @@
}
}
break;}
-#endif
case WM_MEASUREITEM:
draw_menu_item:
@@ -4474,11 +4139,9 @@
ASSERT(child);
switch(nmsg) {
-#ifndef _NO_EXTENSIONS
case WM_HSCROLL:
set_header(pane);
break;
-#endif
case WM_SETFOCUS:
child->focus_pane = pane==&child->right? 1: 0;
@@ -4559,12 +4222,10 @@
Globals.hInstance = hinstance;
-#ifdef _SHELL_FOLDERS
CoInitialize(NULL);
CoGetMalloc(MEMCTX_TASK, &Globals.iMalloc);
SHGetDesktopFolder(&Globals.iDesktop);
Globals.cfStrFName = RegisterClipboardFormatW(CFSTR_FILENAMEW);
-#endif
/* load column strings */
col = 1;
@@ -4572,16 +4233,12 @@
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_NAME);
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_SIZE);
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_CDATE);
-#ifndef _NO_EXTENSIONS
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_ADATE);
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_MDATE);
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_IDX);
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_LINKS);
-#endif
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_ATTR);
-#ifndef _NO_EXTENSIONS
load_string(g_pos_names[col++], sizeof(g_pos_names[col])/sizeof(g_pos_names[col][0]),
IDS_COL_SEC);
-#endif
}
@@ -4604,15 +4261,15 @@
hMenuWindow = GetSubMenu(hMenuFrame, GetMenuItemCount(hMenuFrame)-2);
Globals.hMenuFrame = hMenuFrame;
- Globals.hMenuView = GetSubMenu(hMenuFrame, 3);
- Globals.hMenuOptions = GetSubMenu(hMenuFrame, 4);
+ Globals.hMenuView = GetSubMenu(hMenuFrame, 2);
+ Globals.hMenuOptions = GetSubMenu(hMenuFrame, 3);
ccs.hWindowMenu = hMenuWindow;
ccs.idFirstChild = IDW_FIRST_CHILD;
/* create main window */
- Globals.hMainWnd = CreateWindowExW(0, MAKEINTRESOURCEW(Globals.hframeClass),
RS(b1,IDS_WINE_FILE), WS_OVERLAPPEDWINDOW,
+ Globals.hMainWnd = CreateWindowExW(0, MAKEINTRESOURCEW(Globals.hframeClass),
RS(b1,IDS_WINEFILE), WS_OVERLAPPEDWINDOW,
opts.start_x, opts.start_y, opts.width, opts.height,
hwndParent, Globals.hMenuFrame, Globals.hInstance, 0/*lpParam*/);
@@ -4634,10 +4291,7 @@
{1, ID_WINDOW_CASCADE, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
{2, ID_WINDOW_TILE_HORZ, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
{3, ID_WINDOW_TILE_VERT, TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
-/*TODO
- {4, ID_... , TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
- {5, ID_... , TBSTATE_ENABLED, BTNS_BUTTON, {0, 0}, 0, 0},
-*/ };
+ };
Globals.htoolbar = CreateToolbarEx(Globals.hMainWnd, WS_CHILD|WS_VISIBLE,
IDW_TOOLBAR, 2, Globals.hInstance, IDB_TOOLBAR, toolbarBtns,
@@ -4648,11 +4302,6 @@
Globals.hstatusbar = CreateStatusWindowW(WS_CHILD|WS_VISIBLE, 0, Globals.hMainWnd,
IDW_STATUSBAR);
CheckMenuItem(Globals.hMenuOptions, ID_VIEW_STATUSBAR, MF_BYCOMMAND|MF_CHECKED);
-/* CreateStatusWindowW does not accept WS_BORDER
- Globals.hstatusbar = CreateWindowExW(WS_EX_NOPARENTNOTIFY, STATUSCLASSNAME, 0,
- WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_BORDER|CCS_NODIVIDER, 0,0,0,0,
- Globals.hMainWnd, (HMENU)IDW_STATUSBAR, hinstance, 0);*/
-
/*TODO: read paths from registry */
if (!path || !*path) {
@@ -4662,7 +4311,7 @@
ShowWindow(Globals.hMainWnd, cmdshow);
-#if defined(_SHELL_FOLDERS) && !defined(__WINE__)
+#ifndef __WINE__
/* Shell Namespace as default: */
child = alloc_child_window(path, get_path_pidl(path,Globals.hMainWnd),
Globals.hMainWnd);
#else
@@ -4721,56 +4370,21 @@
static void ExitInstance(void)
{
-#ifdef _SHELL_FOLDERS
IShellFolder_Release(Globals.iDesktop);
IMalloc_Release(Globals.iMalloc);
CoUninitialize();
-#endif
DeleteObject(Globals.hfont);
ImageList_Destroy(Globals.himl);
}
-#ifdef _NO_EXTENSIONS
-
-/* search for already running win[e]files */
-
-static int g_foundPrevInstance = 0;
-
-static BOOL CALLBACK EnumWndProc(HWND hwnd, LPARAM lparam)
-{
- WCHAR cls[128];
-
- GetClassName(hwnd, cls, 128);
-
- if (!lstrcmpW(cls, (LPCWSTR)lparam)) {
- g_foundPrevInstance++;
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* search for window of given class name to allow only one running instance */
-static int find_window_class(LPCWSTR classname)
-{
- EnumWindows(EnumWndProc, (LPARAM)classname);
-
- if (g_foundPrevInstance)
- return 1;
-
- return 0;
-}
-
-#endif
-
-static int winefile_main(HINSTANCE hinstance, int cmdshow, LPCWSTR path)
+int APIENTRY wWinMain(HINSTANCE hinstance, HINSTANCE previnstance, LPWSTR cmdline, int
cmdshow)
{
MSG msg;
InitInstance(hinstance);
- if( !show_frame(0, cmdshow, path) )
+ if( !show_frame(0, cmdshow, cmdline) )
{
ExitInstance();
return 1;
@@ -4791,24 +4405,3 @@
return msg.wParam;
}
-
-
-#if defined(_MSC_VER)
-int APIENTRY wWinMain(HINSTANCE hinstance, HINSTANCE previnstance, LPWSTR cmdline, int
cmdshow)
-#else
-int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE previnstance, LPSTR cmdline, int
cmdshow)
-#endif
-{
-#ifdef _NO_EXTENSIONS
- if (find_window_class(sWINEFILEFRAME))
- return 1;
-#endif
-
- { /* convert ANSI cmdline into WCS path string */
- WCHAR buffer[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, cmdline, -1, buffer, MAX_PATH);
- winefile_main(hinstance, cmdshow, buffer);
- }
-
- return 0;
-}
Modified: trunk/rosapps/applications/winfile/winefile.h
URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/winfile/winef…
==============================================================================
--- trunk/rosapps/applications/winfile/winefile.h [iso-8859-1] (original)
+++ trunk/rosapps/applications/winfile/winefile.h [iso-8859-1] Sat Dec 7 01:37:47 2013
@@ -30,25 +30,17 @@
#define NONAMELESSUNION
#include <windows.h>
-#include <commctrl.h>
#include <commdlg.h>
-#ifdef UNICODE
-#define _UNICODE
-#endif
+//#ifdef UNICODE
+//#define _UNICODE
+//#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
#include <locale.h>
#include <time.h>
#include <shellapi.h> /* for ShellExecuteW() */
-#include <shlobj.h> /* for SHFormatDrive() */
-
-#ifndef _NO_EXTENSIONS
-#define _SHELL_FOLDERS
-#endif /* _NO_EXTENSIONS */
+#include <shlobj.h>
#ifndef FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
#define FILE_ATTRIBUTE_ENCRYPTED 0x00000040
@@ -92,12 +84,7 @@
#define COLOR_COMPRESSED RGB(0,0,255)
#define COLOR_SELECTION RGB(0,0,128)
-
-#ifdef _NO_EXTENSIONS
-#define COLOR_SPLITBAR WHITE_BRUSH
-#else
#define COLOR_SPLITBAR LTGRAY_BRUSH
-#endif
#define FRM_CALC_CLIENT 0xBF83
#define Frame_CalcFrameClient(hwnd, prt) (SendMessageW(hwnd, FRM_CALC_CLIENT, 0,
(LPARAM)(PRECT)prt))
@@ -135,14 +122,12 @@
WCHAR drives[BUFFER_LEN];
BOOL prescan_node; /*TODO*/
BOOL saveSettings;
-
-#ifdef _SHELL_FOLDERS
+
IShellFolder* iDesktop;
IMalloc* iMalloc;
UINT cfStrFName;
-#endif
} WINEFILE_GLOBALS;
extern WINEFILE_GLOBALS Globals;
-extern void _wsplitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR*
ext);
+//extern void _wsplitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR*
ext);