36#include "../dialogs/settings.h"
63 if (
cmd.IsValidPath()) {
85 for(
int i=pida->
cidl;
i>0; --
i) {
96 bool mdi = XMLBool(explorer_options,
"mdi",
true);
97 bool separateFolders = XMLBool(explorer_options,
"separate-folders",
false);
102 if (
hFrameWnd && (mdi || !separateFolders)) {
156 static TCHAR Title2[] =
TEXT(
"Address :");
209 toolbarBtns,
sizeof(toolbarBtns)/
sizeof(
TBBUTTON),
264 rbBand.cxMinChild = 0;
265 rbBand.cyMinChild = 0;
267 rbBand.cyMaxChild = 0;
268 rbBand.cyIntegral = btn_hgt;
270 rbBand.lpText =
NULL;
272 rbBand.cxMinChild = 0;
273 rbBand.cyMinChild = btn_hgt;
277 rbBand.fStyle &= ~RBBS_HIDETITLE;
279 rbBand.lpText = Title2;
281 rbBand.cxMinChild = 0;
282 rbBand.cyMinChild = btn_hgt;
356 if (
wparam == FCW_STATUS) {
390 CONTEXT(
"MainFrameBase::Command()");
417 CONTEXT(
"ID_EXECUTE - ShellExecute()");
469 if (pnmgit->lParam) {
474 if (!
node._pfolder->_description.empty())
475 lstrcpyn(pnmgit->pszText,
node._pfolder->_description.c_str(), pnmgit->cchTextMax);
480 if (!
node._pbookmark->_url.empty()) {
484 txt +=
node._pbookmark->_url;
487 lstrcpyn(pnmgit->pszText, txt.c_str(), pnmgit->cchTextMax);
529 rect.top = rt.bottom;
535 int parts[] = {300, 500};
540 rect.bottom -= rt.bottom;
545 rect.left += rt.right-rt.left;
553 ClientRect
rect(_hwnd);
577 prect->
top += rt.bottom+2;
582 prect->
bottom -= rt.bottom;
654 WindowCanvas canvas(_hwnd);
670 tvi.item.pszText = sFavorites.str();
671 tvi.item.iSelectedImage = tvi.item.iImage = 0;
817 default: drivebarBtn.
iBitmap = 2;
821 ++drivebarBtn.idCommand;
822 ++drivebarBtn.iString;
836#ifndef RBBS_HIDETITLE
837#define RBBS_HIDETITLE 0x400
841 TCHAR ExtrasBand[] =
_T(
"Extras");
842 rbBand.lpText = ExtrasBand;
844 rbBand.cxMinChild = 0;
845 rbBand.cyMinChild = btn_hgt;
851 TCHAR DrivesBand[] =
_T(
"Drives");
852 rbBand.lpText = DrivesBand;
854 rbBand.cxMinChild = 0;
855 rbBand.cyMinChild = btn_hgt;
932 CONTEXT(
"MDIMainFrame PM_OPEN_WINDOW");
946 LOG(FmtString(
TEXT(
"MDIMainFrame PM_OPEN_WINDOW: path=%s"),
path));
964 OBJ_CONTEXT(
"create WebChild window",
path);
968 OBJ_CONTEXT(
"create ShellChildWndInfo",
path);
1020 CONTEXT(
"MDIMainFrame::Command()");
1185 prect->
top += rt.bottom+2;
1205 rect.top = rt.bottom;
1212 int new_top = --
rect.top + rt.bottom;
1222 int new_top = --
rect.top + rt.bottom;
1231 int parts[] = {300, 500};
1236 rect.bottom -= rt.bottom;
1241 rect.left += rt.right-rt.left;
1392 PaintCanvas canvas(_hwnd);
1395 ClientRect rt(_hwnd);
1402 rt.top = right_rect.top;
1403 rt.bottom = right_rect.bottom;
1407 Rectangle(canvas, rt.left, rt.top-1, rt.right, rt.bottom+1);
1430 ClientRect rt(_hwnd);
1459 ClientRect rt(_hwnd);
1461 if (
x>=0 &&
x<rt.right) {
1475 CONTEXT(
"SDIMainFrame PM_OPEN_WINDOW");
1489 LOG(FmtString(
TEXT(
"SDIMainFrame PM_OPEN_WINDOW: path=%s"),
path));
1551 rect.top = rt.bottom;
1557 int parts[] = {300, 500};
1562 rect.bottom -= rt.bottom;
1567 rect.left += rt.right-rt.left;
1600 ClientRect
rect(_hwnd);
1617 ClientRect
rect(_hwnd);
std::map< E_STRING, PART_TEST > parts
#define ID_VIEW_STATUSBAR
Retrieval of file system paths of ShellPath objects.
_Tp * get() const _STLP_NOTHROW
_Tp * release() _STLP_NOTHROW
HWND WINAPI CreateToolbarEx(HWND hwnd, DWORD style, UINT wID, INT nBitmaps, HINSTANCE hBMInst, UINT_PTR wBMID, LPCTBBUTTON lpButtons, INT iNumButtons, INT dxButton, INT dyButton, INT dxBitmap, INT dyBitmap, UINT uStructSize)
_Check_return_ _Ret_opt_z_ _CRTIMP char *__cdecl getcwd(_Out_writes_opt_(_SizeInBytes) char *_DstBuf, _In_ int _SizeInBytes)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
#define PM_GET_CONTROLWINDOW
#define PM_GET_SHELLBROWSER_PTR
#define PM_GET_FILEWND_PTR
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei height
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HWND create_webchildwindow(const WebChildWndInfo &info)
@ OWM_SEPARATE
path is given as PIDL, otherwise as LPCTSTR
@ OWM_PIDL
view files in detail mode
@ OWM_ROOTED
window in explore mode
@ OWM_DETAILS
"rooted" window with special shell namespace root
#define ID_WINDOW_ARRANGE
#define ID_WINDOW_TILE_VERT
#define ID_WINDOW_TILE_HORZ
#define ID_WINDOW_CASCADE
int ImageList_AddAlphaIcon(HIMAGELIST himl, HICON hIcon, HBRUSH hbrush_bkgnd, HDC hdc_wnd)
add icon with alpha channel to imagelist using the specified background color
ExplorerGlobals g_Globals
void explorer_about(HWND hwndParent)
#define ID_DRIVE_SHELL_NS
#define ID_ABOUT_EXPLORER
#define ID_VIEW_FULLSCREEN
#define ID_DRIVE_NTOBJ_NS
#define ID_DRIVE_REGISTRY
#define ID_VIEW_DRIVE_BAR
#define ID_VIEW_EXTRA_BAR
BOOL launch_file(HWND hwnd, LPCTSTR cmd, UINT nCmdShow, LPCTSTR parameters)
void display_error(HWND hwnd, DWORD error)
#define GET_WINDOW(CLASS, hwnd)
#define PM_DISPATCH_COMMAND
#define PM_FRM_GET_MENUINFO
#define WINDOW_CREATOR(WND_CLASS)
LPARAM TreeView_GetItemData(HWND hwndTreeView, HTREEITEM hItem)
#define Frame_CalcFrameClient(hwnd, prt)
#define PM_FRM_CALC_CLIENT
#define DEFAULT_SPLIT_POS
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HWND new_window(LPCSTR lpClassName, DWORD dwStyle, HWND parent)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define MAKEINTRESOURCE(i)
#define WS_OVERLAPPEDWINDOW
#define WS_EX_NOPARENTNOTIFY
_Out_opt_ int _Out_opt_ int * cy
#define TreeView_DeleteAllItems(hwnd)
#define TreeView_Expand(hwnd, hitem, code)
#define CreateStatusWindow
#define TVS_SHOWSELALWAYS
#define TreeView_GetSelection(hwnd)
#define TreeView_GetCount(hwnd)
#define CCS_NOPARENTALIGN
#define TreeView_SetImageList(hwnd, himl, iImage)
#define TreeView_InsertItem(hwnd, lpis)
#define TVIF_SELECTEDIMAGE
#define RBBS_GRIPPERALWAYS
DWORD WINAPI GetVersion()
void HandleException(COMException &e, HWND hwnd)
Exception Handler for COM exceptions.
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
void fill_tree(HWND hwnd, HTREEITEM parent, HIMAGELIST, HDC hdc_wnd) const
fill treeview control with bookmark tree content
Exception with context information.
Shell folder path of the desktop.
static int DoModal(UINT nid, CREATORFUNC creator, HWND hwndParent=0)
base of all file and directory entries
The "Execute..."-dialog lets the user enter a command line to launch.
static INT_PTR CALLBACK WndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam)
Explorer command line parser.
CtxMenuInterfaces _cm_ifs
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
information structure for creation of FileChildWindow
MDI child window displaying file lists.
static FileChildWindow * create(const FileChildWndInfo &info)
information structure for creation of FileChildWindow
const Icon & get_icon(int icon_id)
int add_to_imagelist(HIMAGELIST himl, HDC hdc_wnd, COLORREF bk_color=GetSysColor(COLOR_WINDOW), HBRUSH bk_brush=GetSysColorBrush(COLOR_WINDOW)) const
bool activate_child_window(LPCTSTR filesys)
virtual void frame_get_clientspace(PRECT prect)
virtual BOOL TranslateMsg(MSG *pmsg)
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
TCHAR _drives[BUFFER_LEN]
int Command(int id, int code)
bool activate_drive_window(LPCTSTR path)
virtual void resize_frame(int cx, int cy)
ChildWindow * CreateChild(LPCTSTR path=NULL, int mode=OWM_EXPLORE|OWM_DETAILS)
virtual bool go_to(LPCTSTR url, bool new_window)
static MDIShellBrowserChild * create(const ShellChildWndInfo &info)
Explorer frame window base class.
virtual BOOL TranslateMsg(MSG *pmsg)
int Command(int id, int code)
virtual void resize_frame(int cx, int cy)
FullScreenParameters _fullscreen
int Notify(int id, NMHDR *pnmh)
void toggle_child(HWND hwnd, UINT cmd, HWND hchild, int band_idx=-1)
static int OpenShellFolders(LPIDA pida, HWND hFrameWnd)
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
bool ProcessMessage(UINT nmsg, WPARAM wparam, LPARAM lparam, LRESULT *pres)
virtual void frame_get_clientspace(PRECT prect)
void resize_frame_client()
virtual bool go_to(LPCTSTR url, bool new_window)
static HWND Create(const ExplorerCmd &cmd)
configuration dialog to choose between MDI and SDI mode
information structure for creation of FileChildWindow for NT object namespace
information structure for creation of FileChildWindow for the Registry
convenient loading of string resources
void jump_to(LPCTSTR path, int mode)
virtual void entry_selected(Entry *entry)
void update_shell_browser()
void set_url(LPCTSTR url)
ShellPathInfo _shellpath_info
void resize_frame(int cx, int cy)
int Command(int id, int code)
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
auto_ptr< ShellBrowser > _shellBrowser
Implementation of IShellBrowserImpl interface in explorer child windows.
void UpdateFolderView(IShellFolder *folder)
const Root & get_root() const
void jump_to(LPCITEMIDLIST pidl)
bool select_folder(Entry *entry, bool expand)
information structure for creation of MDIShellBrowserChild
ShellPath _root_shell_path
IShellFolder smart pointer.
ShellPath _root_shell_path
wrapper class for item ID lists
ShellPath create_absolute_pidl(LPCITEMIDLIST parent_pidl) const
void assign(LPCITEMIDLIST pidl, size_t size)
convenient loading of small (16x16) icon resources
information structure for creation of WebChildWindow
virtual LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
static HWND Create(CREATORFUNC creator, DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int w, int h, HWND hwndParent=0, HMENU hMenu=0)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
DWORD WINAPI GetLastError(void)
#define SetCurrentDirectory
#define GetLogicalDriveStrings
#define GetCurrentDirectory
#define IsMinimized(hwnd)
#define SelectBrush(hdc, hbr)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI ReleaseCapture(void)
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI GetWindowPlacement(_In_ HWND, _Inout_ WINDOWPLACEMENT *)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HWND WINAPI GetCapture(void)
BOOL WINAPI EndDeferWindowPos(_In_ HDWP)
#define WM_SYSCOLORCHANGE
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
BOOL WINAPI IsIconic(_In_ HWND)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define WM_MDIICONARRANGE
BOOL WINAPI IsZoomed(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI TranslateMDISysAccel(_In_ HWND, _In_ LPMSG)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
#define GetNextWindow(h, c)
struct tagMINMAXINFO * LPMINMAXINFO
HDWP WINAPI DeferWindowPos(_In_ HDWP, _In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define MDITILE_HORIZONTAL
SHORT WINAPI GetAsyncKeyState(_In_ int)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define TranslateAccelerator
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HMENU WINAPI GetMenu(_In_ HWND)
HDWP WINAPI BeginDeferWindowPos(_In_ int)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)