ChangeSet ID: 21308 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/17 05:05:35
Modified files: programs/winefile: winefile.h winefile.c
Log message: Martin Fuchs martin-fuchs@gmx.net Use command line for initial directory selection. Remove useless hwndParent variable.
Patch: http://cvs.winehq.org/patch.py?id=21308
Old revision New revision Changes Path 1.16 1.17 +0 -1 wine/programs/winefile/winefile.h 1.62 1.63 +24 -15 wine/programs/winefile/winefile.c
Index: wine/programs/winefile/winefile.h diff -u -p wine/programs/winefile/winefile.h:1.16 wine/programs/winefile/winefile.h:1.17 --- wine/programs/winefile/winefile.h:1.16 17 Nov 2005 11: 5:35 -0000 +++ wine/programs/winefile/winefile.h 17 Nov 2005 11: 5:35 -0000 @@ -113,7 +113,6 @@ typedef struct HANDLE hInstance; HACCEL haccel; ATOM hframeClass; - HWND hwndParent;
HWND hMainWnd; HMENU hMenuFrame; Index: wine/programs/winefile/winefile.c diff -u -p wine/programs/winefile/winefile.c:1.62 wine/programs/winefile/winefile.c:1.63 --- wine/programs/winefile/winefile.c:1.62 17 Nov 2005 11: 5:35 -0000 +++ wine/programs/winefile/winefile.c 17 Nov 2005 11: 5:35 -0000 @@ -2143,9 +2143,7 @@ static LRESULT CALLBACK FrameWndProc(HWN break;
case WM_DESTROY: - /* don't exit desktop when closing file manager window */ - if (!Globals.hwndParent) - PostQuitMessage(0); + PostQuitMessage(0); break;
case WM_INITMENUPOPUP: { @@ -4654,11 +4652,11 @@ static void InitInstance(HINSTANCE hinst }
-static void show_frame(HWND hwndParent, int cmdshow) +static void show_frame(HWND hwndParent, int cmdshow, LPCTSTR path) { static const TCHAR sMDICLIENT[] = {'M','D','I','C','L','I','E','N','T','\0'};
- TCHAR path[MAX_PATH], b1[BUFFER_LEN]; + TCHAR buffer[MAX_PATH], b1[BUFFER_LEN]; ChildWnd* child; HMENU hMenuFrame, hMenuWindow;
@@ -4667,8 +4665,6 @@ static void show_frame(HWND hwndParent, if (Globals.hMainWnd) return;
- Globals.hwndParent = hwndParent; - hMenuFrame = LoadMenu(Globals.hInstance, MAKEINTRESOURCE(IDM_WINEFILE)); hMenuWindow = GetSubMenu(hMenuFrame, GetMenuItemCount(hMenuFrame)-2);
@@ -4723,7 +4719,11 @@ static void show_frame(HWND hwndParent, Globals.hMainWnd, (HMENU)IDW_STATUSBAR, hinstance, 0);*/
/*TODO: read paths and window placements from registry */ - GetCurrentDirectory(MAX_PATH, path); + + if (!path || !*path) { + GetCurrentDirectory(MAX_PATH, buffer); + path = buffer; + }
ShowWindow(Globals.hMainWnd, cmdshow);
@@ -4797,7 +4797,7 @@ static int find_window_class(LPCTSTR cla
#endif
-static int winefile_main(HINSTANCE hinstance, HWND hwndParent, int cmdshow) +static int winefile_main(HINSTANCE hinstance, int cmdshow, LPCTSTR path) { MSG msg;
@@ -4807,7 +4807,7 @@ static int winefile_main(HINSTANCE hinst /*TODO: read window placement from registry */ cmdshow = SW_MAXIMIZE;
- show_frame(hwndParent, cmdshow); + show_frame(0, cmdshow, path);
while(GetMessage(&msg, 0, 0, 0)) { if (Globals.hmdiclient && TranslateMDISysAccel(Globals.hmdiclient, &msg)) @@ -4826,17 +4826,26 @@ static int winefile_main(HINSTANCE hinst }
-int APIENTRY WinMain(HINSTANCE hinstance, - HINSTANCE previnstance, - LPSTR cmdline, - int cmdshow) +#if defined(UNICODE) && 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
- winefile_main(hinstance, 0, cmdshow); +#if defined(UNICODE) && !defined(_MSC_VER) + { /* convert ANSI cmdline into WCS path string */ + TCHAR buffer[MAX_PATH]; + MultiByteToWideChar(CP_ACP, 0, cmdline, -1, buffer, MAX_PATH); + winefile_main(hinstance, cmdshow, buffer); + } +#else + winefile_main(hinstance, cmdshow, cmdline); +#endif
return 0; }