1 /*
2  * Copyright 2003, 2004 Martin Fuchs
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18 
19 
20  //
21  // Explorer clone
22  //
23  // explorer.h
24  //
25  // Martin Fuchs, 23.07.2003
26  //
27 
28 
29 #define _LIGHT_STARTMENU
30 #define _LAZY_ICONEXTRACT
31 #define _SINGLE_ICONEXTRACT
32 //#define _NO_WIN_FS
33 
34 
35 #include "utility/shellclasses.h"
36 
37 #include "shell/entries.h"
38 
39 #ifndef _NO_WIN_FS
40 #include "shell/winfs.h"
41 #endif
42 
43 #include "shell/shellfs.h"
44 
45 #ifndef ROSSHELL
46 #include "shell/unixfs.h"
47 #endif
48 
49 #include "utility/window.h"
50 
51 
52 #define	IDW_STATUSBAR			0x100
53 #define	IDW_TOOLBAR				0x101
54 #define	IDW_EXTRABAR			0x102
55 #define	IDW_DRIVEBAR			0x103
56 #define	IDW_ADDRESSBAR			0x104
57 #define	IDW_SIDEBAR				0x106
58 #define	IDW_FIRST_CHILD			0xC000	/*0x200*/
59 
60 
61 #define	PM_GET_FILEWND_PTR		(WM_APP+0x05)
62 #define	PM_GET_SHELLBROWSER_PTR	(WM_APP+0x06)
63 
64 #define	PM_GET_CONTROLWINDOW	(WM_APP+0x16)
65 
66 #define	PM_RESIZE_CHILDREN		(WM_APP+0x17)
67 #define	PM_GET_WIDTH			(WM_APP+0x18)
68 
69 #define	PM_REFRESH				(WM_APP+0x1B)
70 #define	PM_REFRESH_CONFIG		(WM_APP+0x1C)
71 
72 
73 #define	CLASSNAME_FRAME 		TEXT("CabinetWClass")	// same class name for frame window as in MS Explorer
74 
75 #define	CLASSNAME_CHILDWND		TEXT("WFS_Child")
76 #define	CLASSNAME_WINEFILETREE	TEXT("WFS_Tree")
77 
78 
79 #include "shell/pane.h"
80 #include "shell/filechild.h"
81 #include "shell/shellbrowser.h"
82 
83 
84 #ifndef ROSSHELL
85 
86  /// Explorer command line parser
87  // for commands like "/e,/root,c:\"
88  // or "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}" (launch of control panel)
89 struct ExplorerCmd
90 {
ExplorerCmdExplorerCmd91 	ExplorerCmd()
92 	 :	_flags(0),
93 		_cmdShow(SW_SHOWNORMAL),
94 		_mdi(false),
95 		_valid_path(false)
96 	{
97 	}
98 
ExplorerCmdExplorerCmd99 	ExplorerCmd(LPCTSTR url, bool mdi)
100 	 :	_path(url),
101 		_flags(0),
102 		_cmdShow(SW_SHOWNORMAL),
103 		_mdi(mdi),
104 		_valid_path(true)	//@@
105 	{
106 	}
107 
108 	bool	ParseCmdLine(LPCTSTR lpCmdLine);
109 	bool	EvaluateOption(LPCTSTR option);
110 	bool	IsValidPath() const;
111 
112 	String	_path;
113 	WCHAR	szPath[MAX_PATH];
114 	int		_flags;	// OPEN_WINDOW_MODE
115 	int		_cmdShow;
116 	bool	_mdi;
117 	bool	_valid_path;
118 };
119 
120 #include "shell/mainframe.h"
121 
122 #endif
123