You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
219 lines
7.8 KiB
C++
219 lines
7.8 KiB
C++
// XTPShellListCtrlView.h : header file
|
|
//
|
|
// This file is a part of the XTREME CONTROLS MFC class library.
|
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
|
//
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
|
//
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
|
// SINGLE COMPUTER.
|
|
//
|
|
// CONTACT INFORMATION:
|
|
// support@codejock.com
|
|
// http://www.codejock.com
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTPSHELLLISTCTRLVIEW_H__)
|
|
#define __XTPSHELLLISTCTRLVIEW_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
DECLATE_SHELLLIST_BASE(CXTPShellListViewBase, CListView, CXTPShellListBase)
|
|
DECLATE_SHELLLIST_BASE(CXTPShellListCtrlBase, CListCtrl, CXTPShellListBase)
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTPShellListView is a multiple inheritance class derived from CXTPListView
|
|
// and CXTPShellPidl. It is used to create a CXTPShellListView class object.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPShellListView : public CXTPShellListViewBase
|
|
{
|
|
DECLARE_DYNCREATE(CXTPShellListView)
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTPShellListView object
|
|
//-----------------------------------------------------------------------
|
|
CXTPShellListView();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPShellListView object, handles cleanup and deallocation
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPShellListView();
|
|
|
|
protected:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Occurs when the user double clicks on the list control.
|
|
// Parameters:
|
|
// pNMHDR - Address of an NMHDR structure that contains the notification
|
|
// code and additional information. For some notification messages,
|
|
// this parameter points to a larger structure that has the NMHDR
|
|
// structure as its first member.
|
|
// pResult - Pointer to an LRESULT variable in which to store the result
|
|
// code if the message is handled.
|
|
//-----------------------------------------------------------------------
|
|
void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
|
|
|
|
protected:
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
//{{AFX_VIRTUAL(CXTPShellListView)
|
|
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
|
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
|
|
//}}AFX_VIRTUAL
|
|
|
|
//{{AFX_MSG(CXTPShellListView)
|
|
afx_msg LRESULT OnUpdateShell(WPARAM wParam, LPARAM lParam);
|
|
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
|
//}}AFX_MSG
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
};
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTPShellListCtrl is a multiple inheritance class derived from CXTPListCtrl
|
|
// and CXTPShellPidl. It is used to create a CXTPShellListCtrl window.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPShellListCtrl : public CXTPShellListCtrlBase
|
|
{
|
|
|
|
public:
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTPShellListCtrl object
|
|
//-----------------------------------------------------------------------
|
|
CXTPShellListCtrl();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPShellListCtrl object, handles cleanup and deallocation
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPShellListCtrl();
|
|
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Call this member function to associate the tree control with the list.
|
|
// Parameters:
|
|
// pWnd - Points to the tree control that is associated with the list.
|
|
//-----------------------------------------------------------------------
|
|
virtual void AssociateTree(CWnd* pWnd);
|
|
|
|
protected:
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
//{{AFX_MSG(CXTPShellListCtrl)
|
|
afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg LRESULT OnUpdateShell(WPARAM wParam, LPARAM lParam);
|
|
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
|
//}}AFX_MSG
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
|
|
protected:
|
|
CWnd* m_pTreeCtrl; // Window that receives update notification, usually a CXTPShellTreeCtrl.
|
|
bool m_bInitControl; // true if the control has not been initialized.
|
|
|
|
};
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#define CXTPShellList CXTPShellListCtrl
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
AFX_INLINE void CXTPShellListCtrl::AssociateTree(CWnd* pWnd) {
|
|
ASSERT_VALID(pWnd); m_pTreeCtrl = pWnd;
|
|
}
|
|
|
|
//===========================================================================
|
|
// Summary:
|
|
// CXTPShellListCtrlEx is a CXTPShellListCtrl derived class. It is used to create
|
|
// a stand-alone shell list control that is not dependent on a CXTPShellTreeCtrl
|
|
// for initialization. It is used to create a CXTPShellListCtrlEx window for
|
|
// displaying the contents of file folders.
|
|
//===========================================================================
|
|
class _XTP_EXT_CLASS CXTPShellListCtrlEx : public CXTPShellListCtrl
|
|
{
|
|
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Constructs a CXTPShellListCtrlEx object
|
|
//-----------------------------------------------------------------------
|
|
CXTPShellListCtrlEx();
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// Destroys a CXTPShellListCtrlEx object, handles cleanup and deallocation
|
|
//-----------------------------------------------------------------------
|
|
virtual ~CXTPShellListCtrlEx();
|
|
|
|
public:
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function is called to browse to a particular file folder.
|
|
// Parameters:
|
|
// lpszPath - A NULL terminated string that represents the folder to select.
|
|
// Returns:
|
|
// true if successful, otherwise returns false.
|
|
//-----------------------------------------------------------------------
|
|
bool BrowseToFolder(LPCTSTR lpszPath);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This member function will associate a CWnd object with the shell list control. This
|
|
// window is usually a CEdit control, but can be any CWnd object. This window will have
|
|
// its window text updated whenever the selected folder is changed.
|
|
// Parameters:
|
|
// pSyncWnd - Points to a valid CWnd object.
|
|
//-----------------------------------------------------------------------
|
|
void SetSyncWnd(CWnd* pSyncWnd);
|
|
|
|
|
|
protected:
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
//{{AFX_VIRTUAL(CXTPShellListCtrlEx)
|
|
//}}AFX_VIRTUAL
|
|
|
|
//{{AFX_MSG(CXTPShellListCtrlEx)
|
|
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
|
|
//}}AFX_MSG
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
|
|
protected:
|
|
|
|
CWnd* m_pSyncWnd; // Points to the window to synchronize with the shell list control.
|
|
CString m_strItemPath; // A NULL terminated string that represents the currently selected folder.
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
AFX_INLINE void CXTPShellListCtrlEx::SetSyncWnd(CWnd* pSyncWnd) {
|
|
m_pSyncWnd = pSyncWnd;
|
|
}
|
|
|
|
#endif // !defined(__XTPSHELLLISTCTRLVIEW_H__)
|