mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-12-27 21:15:19 +00:00
6aa9bd0f77
Now with some actual consensus on what the updater will do!
625 lines
19 KiB
C++
625 lines
19 KiB
C++
// Win32++ Version 7.2
|
|
// Released: 5th AUgust 2011
|
|
//
|
|
// David Nash
|
|
// email: dnash@bigpond.net.au
|
|
// url: https://sourceforge.net/projects/win32-framework
|
|
//
|
|
//
|
|
// Copyright (c) 2005-2011 David Nash
|
|
//
|
|
// Permission is hereby granted, free of charge, to
|
|
// any person obtaining a copy of this software and
|
|
// associated documentation files (the "Software"),
|
|
// to deal in the Software without restriction, including
|
|
// without limitation the rights to use, copy, modify,
|
|
// merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom
|
|
// the Software is furnished to do so, subject to the
|
|
// following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice
|
|
// shall be included in all copies or substantial portions
|
|
// of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
|
|
// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
// TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
|
// SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
|
|
// ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
|
// OR OTHER DEALINGS IN THE SOFTWARE.
|
|
//
|
|
////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
#ifndef _WIN32XX_TREEVIEW_H_
|
|
#define _WIN32XX_TREEVIEW_H_
|
|
|
|
#include "wincore.h"
|
|
#include "commctrl.h"
|
|
|
|
// Disable macros from Windowsx.h
|
|
#undef GetNextSibling
|
|
#undef GetPrevSibling
|
|
|
|
namespace Win32xx
|
|
{
|
|
|
|
class CTreeView : public CWnd
|
|
{
|
|
public:
|
|
CTreeView() {}
|
|
virtual ~CTreeView() {}
|
|
virtual void PreRegisterClass(WNDCLASS &wc);
|
|
|
|
// Attributes
|
|
COLORREF GetBkColor() const;
|
|
HTREEITEM GetChild(HTREEITEM hItem) const;
|
|
UINT GetCount() const;
|
|
HTREEITEM GetDropHiLightItem() const;
|
|
HWND GetEditControl() const;
|
|
HTREEITEM GetFirstVisible() const;
|
|
HIMAGELIST GetImageList(int iImageType) const;
|
|
UINT GetIndent() const;
|
|
COLORREF GetInsertMarkColor() const;
|
|
BOOL GetItem(TVITEM& Item) const;
|
|
DWORD_PTR GetItemData(HTREEITEM hItem) const;
|
|
int GetItemHeight() const;
|
|
BOOL GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage ) const;
|
|
BOOL GetItemRect(HTREEITEM hItem, CRect& rc, BOOL bTextOnly) const;
|
|
tString GetItemText(HTREEITEM hItem, UINT nTextMax /* = 260 */) const;
|
|
HTREEITEM GetLastVisible() const;
|
|
HTREEITEM GetNextItem(HTREEITEM hItem, UINT nCode) const;
|
|
HTREEITEM GetNextSibling(HTREEITEM hItem) const;
|
|
HTREEITEM GetNextVisible(HTREEITEM hItem) const;
|
|
HTREEITEM GetParentItem(HTREEITEM hItem) const;
|
|
HTREEITEM GetPrevSibling(HTREEITEM hItem) const;
|
|
HTREEITEM GetPrevVisible(HTREEITEM hItem) const;
|
|
HTREEITEM GetRootItem() const;
|
|
int GetScrollTime() const;
|
|
HTREEITEM GetSelection() const;
|
|
COLORREF GetTextColor() const;
|
|
HWND GetToolTips() const;
|
|
UINT GetVisibleCount() const;
|
|
BOOL ItemHasChildren(HTREEITEM hItem) const;
|
|
COLORREF SetBkColor(COLORREF clrBk) const;
|
|
HIMAGELIST SetImageList(HIMAGELIST himl, int nType) const;
|
|
void SetIndent(int indent) const;
|
|
BOOL SetInsertMark(HTREEITEM hItem, BOOL fAfter = TRUE) const;
|
|
COLORREF SetInsertMarkColor(COLORREF clrInsertMark) const;
|
|
BOOL SetItem(TVITEM& Item) const;
|
|
BOOL SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR szText, int nImage, int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam) const;
|
|
BOOL SetItemData(HTREEITEM hItem, DWORD_PTR dwData) const;
|
|
int SetItemHeight(SHORT cyItem) const;
|
|
BOOL SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage) const;
|
|
BOOL SetItemText(HTREEITEM hItem, LPCTSTR szText) const;
|
|
UINT SetScrollTime(UINT uScrollTime) const;
|
|
COLORREF SetTextColor(COLORREF clrText) const;
|
|
HWND SetToolTips(HWND hwndTooltip) const;
|
|
|
|
// Operations
|
|
HIMAGELIST CreateDragImage(HTREEITEM hItem) const;
|
|
BOOL DeleteAllItems() const;
|
|
BOOL DeleteItem(HTREEITEM hItem) const;
|
|
HWND EditLabel(HTREEITEM hItem) const;
|
|
BOOL EndEditLabelNow(BOOL fCancel) const;
|
|
BOOL EnsureVisible(HTREEITEM hItem) const;
|
|
BOOL Expand(HTREEITEM hItem, UINT nCode) const;
|
|
HTREEITEM HitTest(TVHITTESTINFO& ht) const;
|
|
HTREEITEM InsertItem(TVINSERTSTRUCT& tvIS) const;
|
|
BOOL Select(HTREEITEM hitem, UINT flag) const;
|
|
BOOL SelectDropTarget(HTREEITEM hItem) const;
|
|
BOOL SelectItem(HTREEITEM hItem) const;
|
|
BOOL SelectSetFirstVisible(HTREEITEM hItem) const;
|
|
BOOL SortChildren(HTREEITEM hItem, BOOL fRecurse) const;
|
|
BOOL SortChildrenCB(TVSORTCB& sort, BOOL fRecurse) const;
|
|
|
|
private:
|
|
CTreeView(const CTreeView&); // Disable copy construction
|
|
CTreeView& operator = (const CTreeView&); // Disable assignment operator
|
|
|
|
};
|
|
|
|
}
|
|
|
|
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
namespace Win32xx
|
|
{
|
|
|
|
inline void CTreeView::PreRegisterClass(WNDCLASS &wc)
|
|
{
|
|
// Set the Window Class
|
|
wc.lpszClassName = WC_TREEVIEW;
|
|
}
|
|
|
|
// Attributes
|
|
inline COLORREF CTreeView::GetBkColor() const
|
|
// Retrieves the current background color of the control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetBkColor( m_hWnd );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetChild(HTREEITEM hItem) const
|
|
// Retrieves the first child item of the specified tree-view item.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetChild(m_hWnd, hItem);
|
|
}
|
|
|
|
inline UINT CTreeView::GetCount() const
|
|
// Retrieves a count of the items in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetCount( m_hWnd );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetDropHiLightItem() const
|
|
// Retrieves the tree-view item that is the target of a drag-and-drop operation.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetDropHilight(m_hWnd);
|
|
}
|
|
|
|
inline HWND CTreeView::GetEditControl() const
|
|
// Retrieves the handle to the edit control being used to edit a tree-view item's text.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetEditControl( m_hWnd );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetFirstVisible() const
|
|
// Retrieves the first visible item in a tree-view control window.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetFirstVisible(m_hWnd);
|
|
}
|
|
|
|
inline HIMAGELIST CTreeView::GetImageList(int iImageType) const
|
|
// Retrieves the handle to the normal or state image list associated with a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetImageList( m_hWnd, iImageType );
|
|
}
|
|
|
|
inline UINT CTreeView::GetIndent() const
|
|
// Retrieves the amount, in pixels, that child items are indented relative to their parent items.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetIndent( m_hWnd );
|
|
}
|
|
|
|
inline COLORREF CTreeView::GetInsertMarkColor() const
|
|
// Retrieves the color used to draw the insertion mark for the tree view.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetInsertMarkColor( m_hWnd );
|
|
}
|
|
|
|
inline BOOL CTreeView::GetItem(TVITEM& Item) const
|
|
// Retrieves some or all of a tree-view item's attributes.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetItem( m_hWnd, &Item );
|
|
}
|
|
|
|
inline DWORD_PTR CTreeView::GetItemData(HTREEITEM hItem) const
|
|
// Retrieves a tree-view item's application data.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.mask = TVIF_PARAM;
|
|
tvi.hItem = hItem;
|
|
TreeView_GetItem( m_hWnd, &tvi );
|
|
return tvi.lParam;
|
|
}
|
|
|
|
inline int CTreeView::GetItemHeight() const
|
|
// Retrieves the current height of the tree-view item.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetItemHeight( m_hWnd );
|
|
}
|
|
|
|
inline BOOL CTreeView::GetItemImage(HTREEITEM hItem, int& nImage, int& nSelectedImage ) const
|
|
// Retrieves the index of the tree-view item's image and selected image.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;
|
|
tvi.hItem = hItem;
|
|
BOOL bResult = TreeView_GetItem( m_hWnd, &tvi );
|
|
nImage = tvi.iImage;
|
|
nSelectedImage = tvi.iSelectedImage;
|
|
return bResult;
|
|
}
|
|
|
|
inline BOOL CTreeView::GetItemRect(HTREEITEM hItem, CRect& rc, BOOL bTextOnly) const
|
|
// Retrieves the bounding rectangle for a tree-view item and indicates whether the item is visible.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetItemRect( m_hWnd, hItem, &rc, bTextOnly );
|
|
}
|
|
|
|
inline tString CTreeView::GetItemText(HTREEITEM hItem, UINT nTextMax /* = 260 */) const
|
|
// Retrieves the text for a tree-view item.
|
|
// Note: Although the tree-view control allows any length string to be stored
|
|
// as item text, only the first 260 characters are displayed.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
tString t;
|
|
if (nTextMax > 0)
|
|
{
|
|
TVITEM tvi = {0};
|
|
tvi.hItem = hItem;
|
|
tvi.mask = TVIF_TEXT;
|
|
tvi.cchTextMax = nTextMax;
|
|
std::vector<TCHAR> vTChar(nTextMax +1, _T('\0'));
|
|
TCHAR* pTCharArray = &vTChar.front();
|
|
tvi.pszText = pTCharArray;
|
|
::SendMessage(m_hWnd, TVM_GETITEM, 0L, (LPARAM)&tvi);
|
|
t = tvi.pszText;
|
|
}
|
|
return t;
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetLastVisible() const
|
|
// Retrieves the last expanded item in a tree-view control.
|
|
// This does not retrieve the last item visible in the tree-view window.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetLastVisible(m_hWnd);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetNextItem(HTREEITEM hItem, UINT nCode) const
|
|
// Retrieves the tree-view item that bears the specified relationship to a specified item.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetNextItem( m_hWnd, hItem, nCode);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetNextSibling(HTREEITEM hItem) const
|
|
// Retrieves the next sibling item of a specified item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetNextSibling(m_hWnd, hItem);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetNextVisible(HTREEITEM hItem) const
|
|
// Retrieves the next visible item that follows a specified item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetNextVisible(m_hWnd, hItem);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetParentItem(HTREEITEM hItem) const
|
|
// Retrieves the parent item of the specified tree-view item.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetParent(m_hWnd, hItem);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetPrevSibling(HTREEITEM hItem) const
|
|
// Retrieves the previous sibling item of a specified item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetPrevSibling(m_hWnd, hItem);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetPrevVisible(HTREEITEM hItem) const
|
|
// Retrieves the first visible item that precedes a specified item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetPrevSibling(m_hWnd, hItem);
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetRootItem() const
|
|
// Retrieves the topmost or very first item of the tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetRoot(m_hWnd);
|
|
}
|
|
|
|
inline int CTreeView::GetScrollTime() const
|
|
// Retrieves the maximum scroll time for the tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetScrollTime( m_hWnd );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::GetSelection() const
|
|
// Retrieves the currently selected item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetSelection(m_hWnd);
|
|
}
|
|
|
|
inline COLORREF CTreeView::GetTextColor() const
|
|
// Retrieves the current text color of the control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetTextColor( m_hWnd );
|
|
}
|
|
|
|
inline HWND CTreeView::GetToolTips() const
|
|
// Retrieves the handle to the child ToolTip control used by a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetToolTips( m_hWnd );
|
|
}
|
|
|
|
inline UINT CTreeView::GetVisibleCount() const
|
|
// Obtains the number of items that can be fully visible in the client window of a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_GetVisibleCount( m_hWnd );
|
|
}
|
|
|
|
inline BOOL CTreeView::ItemHasChildren(HTREEITEM hItem) const
|
|
// Returns true of the tree-view item has one or more children
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
if (TreeView_GetChild( m_hWnd, hItem ))
|
|
return TRUE;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
inline COLORREF CTreeView::SetBkColor(COLORREF clrBk) const
|
|
// Sets the background color of the control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetBkColor( m_hWnd, clrBk );
|
|
}
|
|
|
|
inline HIMAGELIST CTreeView::SetImageList(HIMAGELIST himl, int nType) const
|
|
// Sets the normal or state image list for a tree-view control
|
|
// and redraws the control using the new images.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetImageList( m_hWnd, himl, nType );
|
|
}
|
|
|
|
inline void CTreeView::SetIndent(int indent) const
|
|
// Sets the width of indentation for a tree-view control
|
|
// and redraws the control to reflect the new width.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
TreeView_SetIndent( m_hWnd, indent );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetInsertMark(HTREEITEM hItem, BOOL fAfter/* = TRUE*/) const
|
|
// Sets the insertion mark in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetInsertMark( m_hWnd, hItem, fAfter );
|
|
}
|
|
|
|
inline COLORREF CTreeView::SetInsertMarkColor(COLORREF clrInsertMark) const
|
|
// Sets the color used to draw the insertion mark for the tree view.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetInsertMarkColor( m_hWnd, clrInsertMark );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetItem(TVITEM& Item) const
|
|
// Sets some or all of a tree-view item's attributes.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetItem( m_hWnd, &Item );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR szText, int nImage, int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam) const
|
|
// Sets some or all of a tree-view item's attributes.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.hItem = hItem;
|
|
tvi.mask = nMask;
|
|
tvi.pszText = (LPTSTR)szText;
|
|
tvi.iImage = nImage;
|
|
tvi.iSelectedImage = nSelectedImage;
|
|
tvi.state = nState;
|
|
tvi.stateMask = nStateMask;
|
|
tvi.lParam = lParam;
|
|
return TreeView_SetItem( m_hWnd, &tvi );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetItemData(HTREEITEM hItem, DWORD_PTR dwData) const
|
|
// Sets the tree-view item's application data.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.hItem = hItem;
|
|
tvi.mask = TVIF_PARAM;
|
|
tvi.lParam = dwData;
|
|
return TreeView_SetItem( m_hWnd, &tvi );
|
|
}
|
|
|
|
inline int CTreeView::SetItemHeight(SHORT cyItem) const
|
|
// Sets the height of the tree-view items.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetItemHeight( m_hWnd, cyItem );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetItemImage(HTREEITEM hItem, int nImage, int nSelectedImage) const
|
|
// Sets the tree-view item's application image.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.hItem = hItem;
|
|
tvi.iImage = nImage;
|
|
tvi.iSelectedImage = nSelectedImage;
|
|
tvi.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;
|
|
return TreeView_SetItem(m_hWnd, &tvi );
|
|
}
|
|
|
|
inline BOOL CTreeView::SetItemText(HTREEITEM hItem, LPCTSTR szText) const
|
|
// Sets the tree-view item's application text.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
|
|
TVITEM tvi = {0};
|
|
tvi.hItem = hItem;
|
|
tvi.pszText = (LPTSTR)szText;
|
|
tvi.mask = TVIF_TEXT;
|
|
return TreeView_SetItem(m_hWnd, &tvi );
|
|
}
|
|
|
|
inline UINT CTreeView::SetScrollTime(UINT uScrollTime) const
|
|
// Sets the maximum scroll time for the tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetScrollTime( m_hWnd, uScrollTime );
|
|
}
|
|
|
|
inline COLORREF CTreeView::SetTextColor(COLORREF clrText) const
|
|
// Sets the text color of the control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetTextColor( m_hWnd, clrText );
|
|
}
|
|
|
|
inline HWND CTreeView::SetToolTips(HWND hwndTooltip) const
|
|
// Sets a tree-view control's child ToolTip control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SetToolTips( m_hWnd, hwndTooltip );
|
|
}
|
|
|
|
// Operations
|
|
|
|
inline HIMAGELIST CTreeView::CreateDragImage(HTREEITEM hItem) const
|
|
// Creates a dragging bitmap for the specified item in a tree-view control.
|
|
// It also creates an image list for the bitmap and adds the bitmap to the image list.
|
|
// An application can display the image when dragging the item by using the image list functions.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_CreateDragImage( m_hWnd, hItem );
|
|
}
|
|
|
|
inline BOOL CTreeView::DeleteAllItems() const
|
|
// Deletes all items from a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_DeleteAllItems( m_hWnd );
|
|
}
|
|
|
|
inline BOOL CTreeView::DeleteItem(HTREEITEM hItem) const
|
|
// Removes an item and all its children from a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_DeleteItem( m_hWnd, hItem );
|
|
}
|
|
|
|
inline HWND CTreeView::EditLabel(HTREEITEM hItem) const
|
|
// Begins in-place editing of the specified item's text, replacing the text of the item
|
|
// with a single-line edit control containing the text.
|
|
// The specified item is implicitly selected and focused.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_EditLabel( m_hWnd, hItem );
|
|
}
|
|
|
|
inline BOOL CTreeView::EndEditLabelNow(BOOL fCancel) const
|
|
// Ends the editing of a tree-view item's label.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_EndEditLabelNow(m_hWnd, fCancel);
|
|
}
|
|
|
|
inline BOOL CTreeView::EnsureVisible(HTREEITEM hItem) const
|
|
// Ensures that a tree-view item is visible, expanding the parent item or
|
|
// scrolling the tree-view control, if necessary.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_EnsureVisible( m_hWnd, hItem );
|
|
}
|
|
|
|
inline BOOL CTreeView::Expand(HTREEITEM hItem, UINT nCode) const
|
|
// The TreeView_Expand macro expands or collapses the list of child items associated
|
|
// with the specified parent item, if any.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_Expand( m_hWnd, hItem, nCode );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::HitTest(TVHITTESTINFO& ht) const
|
|
// Determines the location of the specified point relative to the client area of a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_HitTest( m_hWnd, &ht );
|
|
}
|
|
|
|
inline HTREEITEM CTreeView::InsertItem(TVINSERTSTRUCT& tvIS) const
|
|
// Inserts a new item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_InsertItem( m_hWnd, &tvIS );
|
|
}
|
|
|
|
inline BOOL CTreeView::Select(HTREEITEM hitem, UINT flag) const
|
|
// Selects the specified tree-view item, scrolls the item into view, or redraws
|
|
// the item in the style used to indicate the target of a drag-and-drop operation.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_Select(m_hWnd, hitem, flag );
|
|
}
|
|
|
|
inline BOOL CTreeView::SelectDropTarget(HTREEITEM hItem) const
|
|
// Redraws a specified tree-view control item in the style used to indicate the
|
|
// target of a drag-and-drop operation.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SelectDropTarget(m_hWnd, hItem);
|
|
}
|
|
|
|
inline BOOL CTreeView::SelectItem(HTREEITEM hItem) const
|
|
// Selects the specified tree-view item.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SelectItem(m_hWnd, hItem);
|
|
}
|
|
|
|
inline BOOL CTreeView::SelectSetFirstVisible(HTREEITEM hItem) const
|
|
// Scrolls the tree-view control vertically to ensure that the specified item is visible.
|
|
// If possible, the specified item becomes the first visible item at the top of the control's window.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SelectSetFirstVisible(m_hWnd, hItem);
|
|
}
|
|
|
|
inline BOOL CTreeView::SortChildren(HTREEITEM hItem, BOOL fRecurse) const
|
|
// Sorts the child items of the specified parent item in a tree-view control.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SortChildren( m_hWnd, hItem, fRecurse );
|
|
}
|
|
|
|
inline BOOL CTreeView::SortChildrenCB(TVSORTCB& sort, BOOL fRecurse) const
|
|
// Sorts tree-view items using an application-defined callback function that compares the items.
|
|
{
|
|
assert(::IsWindow(m_hWnd));
|
|
return TreeView_SortChildrenCB( m_hWnd, &sort, fRecurse );
|
|
}
|
|
|
|
|
|
} // namespace Win32xx
|
|
|
|
#endif // #ifndef _WIN32XX_TREEVIEW_H_
|
|
|