new option to open explorer subfolders in separate windows Modified: trunk/reactos/subsys/system/explorer/dialogs/settings.cpp Modified: trunk/reactos/subsys/system/explorer/explorer-cfg-template.xml Modified: trunk/reactos/subsys/system/explorer/explorer-cz.rc Modified: trunk/reactos/subsys/system/explorer/explorer-en.rc Modified: trunk/reactos/subsys/system/explorer/explorer-es.rc Modified: trunk/reactos/subsys/system/explorer/explorer-ru.rc Modified: trunk/reactos/subsys/system/explorer/explorer-sv.rc Modified: trunk/reactos/subsys/system/explorer/resource.h Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.cpp Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.h _____
Modified: trunk/reactos/subsys/system/explorer/dialogs/settings.cpp --- trunk/reactos/subsys/system/explorer/dialogs/settings.cpp 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/dialogs/settings.cpp 2005-10-02 11:40:41 UTC (rev 18209) @@ -238,10 +238,13 @@
XMLPos explorer_options = g_Globals.get_cfg("general/explorer"); bool mdi = XMLBool(explorer_options, "mdi", true); + bool separateFolders = XMLBool(explorer_options, "separate-folders", true);
int id = mdi? IDC_MDI: IDC_SDI; CheckDlgButton(hwnd, id, BST_CHECKED); SetFocus(GetDlgItem(hwnd, id)); + + CheckDlgButton(hwnd, IDC_SEPARATE_SUBFOLDERS, separateFolders?BST_CHECKED:BST_UNCHECKED); }
int MdiSdiDlg::Command(int id, int code) @@ -250,8 +253,12 @@ switch(id) { case IDOK: { bool mdi = IsDlgButtonChecked(_hwnd, IDC_MDI)==BST_CHECKED; + bool separateFolders = IsDlgButtonChecked(_hwnd, IDC_SEPARATE_SUBFOLDERS)==BST_CHECKED; + XMLPos explorer_options = g_Globals.get_cfg("general/explorer"); + XMLBoolRef(explorer_options, "mdi") = mdi; + XMLBoolRef(explorer_options, "separate-folders") = separateFolders; } // fall through
case IDCANCEL: _____
Modified: trunk/reactos/subsys/system/explorer/explorer-cfg-template.xml --- trunk/reactos/subsys/system/explorer/explorer-cfg-template.xml 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-cfg-template.xml 2005-10-02 11:40:41 UTC (rev 18209) @@ -2,14 +2,13 @@
<explorer-cfg> <general> <look-and-feel name="classic"/> - <explorer mdi="true"/> + <explorer mdi="true" separate-folders="true"/> <language name="EN"/> </general>
<desktop> <icon-alignment algorithm="simple" start="left-top" direction="horizontal"/> </desktop> - <desktopbar> <options show-clock="true"/> <positions> _____
Modified: trunk/reactos/subsys/system/explorer/explorer-cz.rc --- trunk/reactos/subsys/system/explorer/explorer-cz.rc 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-cz.rc 2005-10-02 11:40:41 UTC (rev 18209) @@ -362,7 +362,7 @@
PUSHBUTTON "&ZruÜit",IDCANCEL,151,153,50,14 END
-IDD_MDI_SDI DIALOGEX 0, 0, 194, 138 +IDD_MDI_SDI DIALOGEX 0, 0, 194, 157 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Volba MDI / SDI m¾du" @@ -371,15 +371,18 @@ LTEXT "ProsÝm zvolte si Vßmi up°ednost?ovan² zp¨sob zobrazenÝ oken pr¨zkumnÝka:", IDC_STATIC,7,7,160,8 CONTROL "&MDI (Mnoho dokumentov² interface)",IDC_MDI,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,30,121,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,121,10 + CONTROL "&SDI (Jedno dokumentov² interface)",IDC_SDI,"Button", + BS_AUTORADIOBUTTON,7,62,115,10 CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 - CONTROL "&SDI (Jedno dokumentov² interface)",IDC_SDI,"Button", - BS_AUTORADIOBUTTON,7,53,115,10 CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13 + CONTROL "Open Subfolders in s&eparate windows", + IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,90,135,10 LTEXT "Toto nastavenÝ bude pou×ito jako implicitnÝ pro vÜechny okna pr¨zkumnÝka.", - IDC_STATIC,7,76,174,22 - DEFPUSHBUTTON "&Nastavit",IDOK,29,105,50,14,WS_GROUP - PUSHBUTTON "&ZruÜit",IDCANCEL,106,105,50,14 + IDC_STATIC,7,111,174,22 + DEFPUSHBUTTON "&Nastavit",IDOK,29,136,50,14,WS_GROUP + PUSHBUTTON "&ZruÜit",IDCANCEL,106,136,50,14 END
_____
Modified: trunk/reactos/subsys/system/explorer/explorer-en.rc --- trunk/reactos/subsys/system/explorer/explorer-en.rc 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-en.rc 2005-10-02 11:40:41 UTC (rev 18209) @@ -360,24 +360,27 @@
PUSHBUTTON "&Cancel",IDCANCEL,151,153,50,14 END
-IDD_MDI_SDI DIALOGEX 0, 0, 194, 138 +IDD_MDI_SDI DIALOGEX 0, 0, 194, 157 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Choose MDI / SDI mode" -FONT 8, "MS Sans Serif", 0, 0, 0x1 +FONT 8, "MS Sans Serif" BEGIN LTEXT "Please select your prefered explorer user interface:", IDC_STATIC,7,7,160,8 CONTROL "&MDI (multiple document interface)",IDC_MDI,"Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,121,10 - CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 CONTROL "&SDI (single document interface)",IDC_SDI,"Button", BS_AUTORADIOBUTTON,7,62,115,10 + CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13 + CONTROL "Open Subfolders in s&eparate windows", + IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,90,135,10 LTEXT "This setting will be used as default for all explorer windows in the future.", - IDC_STATIC,7,91,174,22 - DEFPUSHBUTTON "&OK",IDOK,29,117,50,14,WS_GROUP - PUSHBUTTON "&Cancel",IDCANCEL,106,117,50,14 + IDC_STATIC,7,111,174,22 + DEFPUSHBUTTON "&OK",IDOK,29,136,50,14,WS_GROUP + PUSHBUTTON "&Cancel",IDCANCEL,106,136,50,14 END
_____
Modified: trunk/reactos/subsys/system/explorer/explorer-es.rc --- trunk/reactos/subsys/system/explorer/explorer-es.rc 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-es.rc 2005-10-02 11:40:41 UTC (rev 18209) @@ -360,22 +360,27 @@
PUSHBUTTON "&Cancelar",IDCANCEL,151,153,50,14 END
-IDD_MDI_SDI DIALOGEX 0, 0, 194, 138 +IDD_MDI_SDI DIALOGEX 0, 0, 194, 157 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Elegir modo MDI / SDI" -FONT 8, "MS Sans Serif", 0, 0, 0x1 +FONT 8, "MS Sans Serif" BEGIN LTEXT "Por favor, seleccione su interfaz de usuario preferida para el explorador:", IDC_STATIC,7,7,170,18 CONTROL "&MDI (Multiple Document Interface)",IDC_MDI,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,30,123,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,123,10 CONTROL "&SDI (Single Document Interface)",IDC_SDI,"Button", - BS_AUTORADIOBUTTON,7,53,116,10 + BS_AUTORADIOBUTTON,7,62,116,10 + CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 + CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13 + CONTROL "Open Subfolders in s&eparate windows", + IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,90,135,10 LTEXT "Esta configuraci¾n se usarß por defecto y apartir de ahora para todas las ventanas del explorador.", - IDC_STATIC,7,76,174,22 - DEFPUSHBUTTON "&Aceptar",IDOK,29,105,50,14,WS_GROUP - PUSHBUTTON "&Cancelar",IDCANCEL,106,105,50,14 + IDC_STATIC,7,111,174,22 + DEFPUSHBUTTON "&Aceptar",IDOK,29,136,50,14,WS_GROUP + PUSHBUTTON "&Cancelar",IDCANCEL,106,136,50,14 END
_____
Modified: trunk/reactos/subsys/system/explorer/explorer-ru.rc --- trunk/reactos/subsys/system/explorer/explorer-ru.rc 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-ru.rc 2005-10-02 11:40:41 UTC (rev 18209) @@ -330,7 +330,7 @@
PUSHBUTTON "&дÓÔÛÓ",254,158,42,47,14 END
-IDD_MDI_SDI DIALOGEX 0, 0, 194, 138 +IDD_MDI_SDI DIALOGEX 0, 0, 194, 157 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "?¹ßÕÞ?Õ ÕµÞý MDI / SDI" @@ -339,15 +339,18 @@ LTEXT "?¹ßÕÞ?Õ ÝÓÞ߯ÙÕÕ ´Õõ´¯¸?Þ?ÕÙ³Ý¹Ú õÙ ÔÓ±\nÔÞõ ´¯Ô¯õÝÞÛÓ:", IDC_STATIC,7,7,171,17 CONTROL "&MDI (ýݯүõ¯Û¾ýÕÝ?Ý¹Ú Ý?Õ¶ÕÚ ±)",IDC_MDI,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,30,136,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,136,10 + CONTROL "&SDI (¯õݯõ¯Û¾ýÕÝ?Ý¹Ú ÞÝ?Õ¶ÕÚ ±)",IDC_SDI,"Button", + BS_AUTORADIOBUTTON,7,62,134,10 CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 - CONTROL "&SDI (¯õݯõ¯Û¾ýÕÝ?Ý¹Ú ÞÝ?Õ¶ÕÚ ±)",IDC_SDI,"Button", - BS_AUTORADIOBUTTON,7,53,134,10 CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13 + CONTROL "Open Subfolders in s&eparate windows", + IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,90,135,10 LTEXT "¦?Þ ÝÓ±?¯ÚÛÞ ß¾õ¾? Þ±´¯Ù³þ¯ÔÓÝݹ, ÛÓÛ þÝÓ¸ÕÝÞÕ ´¯ ¾ý¯Ù¸ÓÝÞ? õÙ Ô±Õ§ ¯Û¯Ý ´¯Ô¯õÝÞÛÓ Ô ß¾õ¾¨Õý.", - IDC_STATIC,7,76,174,26 - DEFPUSHBUTTON "&OK",IDOK,29,105,50,14,WS_GROUP - PUSHBUTTON "&Cancel",IDCANCEL,106,105,50,14 + IDC_STATIC,7,107,174,26 + DEFPUSHBUTTON "&OK",IDOK,29,136,50,14,WS_GROUP + PUSHBUTTON "&Cancel",IDCANCEL,106,136,50,14 END
IDD_NOTIFYAREA DIALOGEX 0, 0, 208, 174 _____
Modified: trunk/reactos/subsys/system/explorer/explorer-sv.rc --- trunk/reactos/subsys/system/explorer/explorer-sv.rc 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/explorer-sv.rc 2005-10-02 11:40:41 UTC (rev 18209) @@ -397,23 +397,26 @@
PUSHBUTTON "&Avbryt",IDCANCEL,151,153,50,14 END
-IDD_MDI_SDI DIALOGEX 0, 0, 194, 138 +IDD_MDI_SDI DIALOGEX 0, 0, 194, 157 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Võlj MDI / SDI Lõge" -FONT 8, "MS Sans Serif", 0, 0, 0x1 +FONT 8, "MS Sans Serif" BEGIN LTEXT "Võlj det grõnssnitt du f÷redrar:",IDC_STATIC,7,7,160,8 CONTROL "&MDI (multiple document interface)",IDC_MDI,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,30,121,10 + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,31,121,10 + CONTROL "&SDI (single document interface)",IDC_SDI,"Button", + BS_AUTORADIOBUTTON,7,62,115,10 CONTROL 170,IDC_STATIC,"Static",SS_BITMAP,145,23,15,13 - CONTROL "&SDI (single document interface)",IDC_SDI,"Button", - BS_AUTORADIOBUTTON,7,53,115,10 CONTROL 171,IDC_STATIC,"Static",SS_BITMAP,145,57,15,13 + CONTROL "Open Subfolders in s&eparate windows", + IDC_SEPARATE_SUBFOLDERS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,7,90,135,10 LTEXT "Den hõr instõllningen kommer att gõlla som standard i alla nya explorer-f÷nster.", - IDC_STATIC,7,76,174,22 - DEFPUSHBUTTON "&OK",IDOK,29,105,50,14,WS_GROUP - PUSHBUTTON "&Avbryt",IDCANCEL,106,105,50,14 + IDC_STATIC,7,107,174,22 + DEFPUSHBUTTON "&OK",IDOK,29,136,50,14,WS_GROUP + PUSHBUTTON "&Avbryt",IDCANCEL,106,136,50,14 END
_____
Modified: trunk/reactos/subsys/system/explorer/resource.h --- trunk/reactos/subsys/system/explorer/resource.h 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/resource.h 2005-10-02 11:40:41 UTC (rev 18209) @@ -164,6 +164,7 @@
#define IDC_WIN_VERSION 1030 #define IDC_MDI 1030 #define IDC_SDI 1031 +#define IDC_SEPARATE_SUBFOLDERS 1034 #define ID_REFRESH 1704 #define ID_ABOUT_WINEFILE 1705 #define IDS_VERSION_STR 5000 @@ -221,7 +222,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 169 #define _APS_NEXT_COMMAND_VALUE 40024 -#define _APS_NEXT_CONTROL_VALUE 1034 +#define _APS_NEXT_CONTROL_VALUE 1035 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif _____
Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.cpp --- trunk/reactos/subsys/system/explorer/shell/mainframe.cpp 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/shell/mainframe.cpp 2005-10-02 11:40:41 UTC (rev 18209) @@ -103,17 +103,24 @@
if (SUCCEEDED(hr)) if (attribs & SFGAO_FOLDER) { try { + XMLPos explorer_options = g_Globals.get_cfg("general/explorer"); + + bool mdi = XMLBool(explorer_options, "mdi", true); + bool separateFolders = XMLBool(explorer_options, "separate-folders", true); + ShellPath pidl_abs = ShellPath(pidl).create_absolute_pidl(parent_pidl);
- if (hFrameWnd) { - if (SendMessage(hFrameWnd, PM_OPEN_WINDOW, OWM_PIDL, (LPARAM)(LPCITEMIDLIST)pidl_abs)) + if (hFrameWnd && (mdi || !separateFolders)) { + int flags = OWM_PIDL; + + if (separateFolders) + flags |= OWM_SEPARATE; + + if (SendMessage(hFrameWnd, PM_OPEN_WINDOW, flags, (LPARAM)(LPCITEMIDLIST)pidl_abs)) ++cnt; } else { HWND hwnd; #ifndef _NO_MDI - XMLPos explorer_options = g_Globals.get_cfg("general/explorer"); - bool mdi = XMLBool(explorer_options, "mdi", true); - if (mdi) hwnd = MDIMainFrame::Create(pidl_abs, 0); else @@ -900,7 +907,9 @@ LRESULT MDIMainFrame::WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam) { switch(nmsg) { - case PM_OPEN_WINDOW: {CONTEXT("MDIMainFrame PM_OPEN_WINDOW"); + case PM_OPEN_WINDOW: { + CONTEXT("MDIMainFrame PM_OPEN_WINDOW"); + TCHAR buffer[MAX_PATH]; LPCTSTR path; ShellPath shell_path = DesktopFolderPath(); @@ -940,11 +949,11 @@ // Shell Namespace as default view ShellChildWndInfo create_info(_hmdiclient, path, shell_path);
- create_info._pos.showCmd = SW_SHOWMAXIMIZED; - create_info._pos.rcNormalPosition.left = 0; - create_info._pos.rcNormalPosition.top = 0; - create_info._pos.rcNormalPosition.right = 600; - create_info._pos.rcNormalPosition.bottom = 280; + create_info._pos.showCmd = wparam&OWM_SEPARATE? SW_SHOWNORMAL: SW_SHOWMAXIMIZED; + create_info._pos.rcNormalPosition.left = CW_USEDEFAULT; + create_info._pos.rcNormalPosition.top = CW_USEDEFAULT; + create_info._pos.rcNormalPosition.right = CW_USEDEFAULT; + create_info._pos.rcNormalPosition.bottom = CW_USEDEFAULT;
create_info._open_mode = (OPEN_WINDOW_MODE)wparam;
@@ -1421,7 +1430,9 @@ } break;
- case PM_OPEN_WINDOW: {CONTEXT("SDIMainFrame PM_OPEN_WINDOW"); + case PM_OPEN_WINDOW: { + CONTEXT("SDIMainFrame PM_OPEN_WINDOW"); + TCHAR buffer[MAX_PATH]; LPCTSTR path; ShellPath shell_path = DesktopFolderPath(); @@ -1449,9 +1460,10 @@ *buffer = '\0';
path = buffer; + shell_path = path; }
- jump_to(shell_path, (OPEN_WINDOW_MODE)wparam); + jump_to(shell_path, (OPEN_WINDOW_MODE)wparam); //@todo content of 'path' not used any more return TRUE;} // success
default: def: _____
Modified: trunk/reactos/subsys/system/explorer/shell/mainframe.h --- trunk/reactos/subsys/system/explorer/shell/mainframe.h 2005-10-02 10:33:25 UTC (rev 18208) +++ trunk/reactos/subsys/system/explorer/shell/mainframe.h 2005-10-02 11:40:41 UTC (rev 18209) @@ -27,7 +27,7 @@
#define PM_OPEN_WINDOW (WM_APP+0x07) -enum OPEN_WINDOW_MODE {OWM_EXPLORE=1, OWM_DETAILS=2, OWM_PIDL=4}; +enum OPEN_WINDOW_MODE {OWM_EXPLORE=1, OWM_DETAILS=2, OWM_PIDL=4, OWM_SEPARATE=8};
/// Explorer frame window base class