#include <shellbrowser.h>
Public Types | |
typedef ExtContextMenuHandlerT < ShellBrowserChildT < ChildWindow > > | super |
Public Member Functions | |
MDIShellBrowserChild (HWND hwnd, const ShellChildWndInfo &info) | |
LRESULT | Init (LPCREATESTRUCT) |
virtual String | jump_to_int (LPCTSTR url) |
Static Public Member Functions | |
static MDIShellBrowserChild * | create (const ShellChildWndInfo &info) |
Protected Member Functions | |
LRESULT | WndProc (UINT nmsg, WPARAM wparam, LPARAM lparam) |
void | update_shell_browser () |
virtual void | entry_selected (Entry *entry) |
Protected Attributes | |
ShellChildWndInfo | _create_info |
ShellPathInfo | _shellpath_info |
Definition at line 249 of file shellbrowser.h.
Reimplemented from ExtContextMenuHandlerT< ShellBrowserChildT< ChildWindow > >.
Definition at line 255 of file shellbrowser.h.
MDIShellBrowserChild::MDIShellBrowserChild | ( | HWND | hwnd, |
const ShellChildWndInfo & | info | ||
) |
todo Conversion of shell path into path string -> store into URL history const String& path = GetDesktopFolder().get_name(info._shell_path, SHGDN_FORADDRESSBAR); const String& parsingpath = GetDesktopFolder().get_name(info._shell_path, SHGDN_FORPARSING);
store path into history if (info._path && *info._path) _url_history.push(info._path);
Definition at line 616 of file shellbrowser.cpp.
: super(hwnd, info), _create_info(info), _shellpath_info(info) //@@ copies info -> no reference to _create_info ! { /**todo Conversion of shell path into path string -> store into URL history const String& path = GetDesktopFolder().get_name(info._shell_path, SHGDN_FORADDRESSBAR); const String& parsingpath = GetDesktopFolder().get_name(info._shell_path, SHGDN_FORPARSING); // store path into history if (info._path && *info._path) _url_history.push(info._path); */ }
MDIShellBrowserChild * MDIShellBrowserChild::create | ( | const ShellChildWndInfo & | info ) | [static] |
Definition at line 632 of file shellbrowser.cpp.
References FileChildWndInfo::_pos, CLASSNAME_CHILDWND, and WINDOW_CREATOR_INFO.
Referenced by MDIMainFrame::Command(), WndProc(), and MDIMainFrame::WndProc().
{ ChildWindow* child = ChildWindow::create(info, info._pos.rcNormalPosition, WINDOW_CREATOR_INFO(MDIShellBrowserChild,ShellChildWndInfo), CLASSNAME_CHILDWND, NULL, info._pos.showCmd==SW_SHOWMAXIMIZED? WS_MAXIMIZE: 0); return static_cast<MDIShellBrowserChild*>(child); }
void MDIShellBrowserChild::entry_selected | ( | Entry * | entry ) | [protected, virtual] |
Implements BrowserCallback.
Definition at line 738 of file shellbrowser.cpp.
References WindowHandle::_hwnd, ChildWindow::_left_hwnd, ShellBrowserChildT< ChildWindow >::_shellBrowser, COUNTOF, Entry::get_path(), Entry::get_shell_folder(), String::printf(), ChildWindow::resize_children(), ChildWindow::set_url(), and TEXT.
{ if (_left_hwnd) _shellBrowser->select_folder(entry, false); _shellBrowser->UpdateFolderView(entry->get_shell_folder()); // set size of new created shell view windows ClientRect rt(_hwnd); resize_children(rt.right, rt.bottom); // set new URL TCHAR path[MAX_PATH]; if (entry->get_path(path, COUNTOF(path))) { String url; if (path[0] == ':') url.printf(TEXT("shell://%s"), path); else url.printf(TEXT("file://%s"), path); set_url(url); } }
LRESULT MDIShellBrowserChild::Init | ( | LPCREATESTRUCT | pcs ) | [virtual] |
Reimplemented from Window.
Definition at line 641 of file shellbrowser.cpp.
References CONTEXT, Window::Init(), and update_shell_browser().
{ CONTEXT("MDIShellBrowserChild::Init()"); if (super::Init(pcs)) return 1; update_shell_browser(); return 0; }
Implements ChildWindow.
Definition at line 717 of file shellbrowser.cpp.
References ShellBrowserChildT< ChildWindow >::_shellBrowser, _tcsnicmp, SplitFileSysURL(), and TEXT.
{ String dir, fname; if (!_tcsnicmp(url, TEXT("shell://"), 8)) { if (_shellBrowser->jump_to_pidl(ShellPath(url+8))) return url; } if (SplitFileSysURL(url, dir, fname)) { ///@todo use fname if (_shellBrowser->jump_to_pidl(ShellPath(dir))) return FmtString(TEXT("file://%s"), (LPCTSTR)dir); } return String(); }
void MDIShellBrowserChild::update_shell_browser | ( | ) | [protected] |
Definition at line 684 of file shellbrowser.cpp.
References ExtContextMenuHandlerT< ShellBrowserChildT< ChildWindow > >::_cm_ifs, _create_info, ExplorerGlobals::_hInstance, WindowHandle::_hwnd, ChildWindow::_hwndFrame, ChildWindow::_left_hwnd, FileChildWndInfo::_open_mode, ChildWindow::_right_hwnd, ShellBrowserChildT< ChildWindow >::_shellBrowser, _shellpath_info, ChildWindow::_split_pos, DEFAULT_SPLIT_POS, g_Globals, IDC_FILETREE, OWM_EXPLORE, and SPLIT_WIDTH.
Referenced by Init().
{ int split_pos = DEFAULT_SPLIT_POS; if (_shellBrowser.get()) { split_pos = _split_pos; delete _shellBrowser.release(); } // create explorer treeview if (_create_info._open_mode & OWM_EXPLORE) { if (!_left_hwnd) { ClientRect rect(_hwnd); _left_hwnd = CreateWindowEx(0, WC_TREEVIEW, NULL, WS_CHILD|WS_TABSTOP|WS_VISIBLE|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS,//|TVS_NOTOOLTIPS 0, rect.top, split_pos-SPLIT_WIDTH/2, rect.bottom-rect.top, _hwnd, (HMENU)IDC_FILETREE, g_Globals._hInstance, 0); } } else { if (_left_hwnd) { DestroyWindow(_left_hwnd); _left_hwnd = 0; } } _shellBrowser = auto_ptr<ShellBrowser>(new ShellBrowser(_hwnd, _hwndFrame, _left_hwnd, _right_hwnd, _shellpath_info, this, _cm_ifs)); _shellBrowser->Init(); }
LRESULT MDIShellBrowserChild::WndProc | ( | UINT | nmsg, |
WPARAM | wparam, | ||
LPARAM | lparam | ||
) | [protected, virtual] |
Reimplemented from ExtContextMenuHandlerT< ShellBrowserChildT< ChildWindow > >.
Definition at line 654 of file shellbrowser.cpp.
References _create_info, ShellBrowserChildT< ChildWindow >::_shellBrowser, ChildWindow::_url, CONTEXT, Window::Create(), create(), ID_REFRESH, ID_VIEW_SDI, ID_WINDOW_NEW, PM_DISPATCH_COMMAND, and ExtContextMenuHandlerT< ShellBrowserChildT< ChildWindow > >::WndProc().
{ switch(nmsg) { case PM_DISPATCH_COMMAND: { switch(LOWORD(wparam)) { case ID_WINDOW_NEW: {CONTEXT("MDIShellBrowserChild PM_DISPATCH_COMMAND ID_WINDOW_NEW"); MDIShellBrowserChild::create(_create_info); break;} case ID_REFRESH: ///@todo refresh shell child _shellBrowser->invalidate_cache(); break; case ID_VIEW_SDI: MainFrameBase::Create(ExplorerCmd(_url, false)); break; default: return super::WndProc(nmsg, wparam, lparam); } return TRUE;} default: return super::WndProc(nmsg, wparam, lparam); } return 0; }
ShellChildWndInfo MDIShellBrowserChild::_create_info [protected] |
Definition at line 266 of file shellbrowser.h.
Referenced by update_shell_browser(), and WndProc().
ShellPathInfo MDIShellBrowserChild::_shellpath_info [protected] |
Definition at line 267 of file shellbrowser.h.
Referenced by update_shell_browser().
ROS Explorer Source Code Documentation
generated on 02.01.2013 by ![]() |