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