static VOID
DestroyTreeView(HWND hTreeView)
{
    HTREEITEM hItem;

    /* Get the first item in the top level */
    hItem = TreeView_GetFirstVisible(hTreeView);
    if (hItem)
    {
        /* Kill it and all children */
        DestroyItem(hTreeView, hItem);

        /* Kill all remaining top level items */
        while (hItem)
        {
            /* Are there any more items at the top level */
            hItem = TreeView_GetNextSibling(hTreeView, hItem);
            if (hItem)
            {
                /*  Kill it and all children */
                DestroyItem(hTreeView, hItem);
            }
        }
    }
}
Beispiel #2
0
void CWindowTreeDlg::SelectTreeItem(HWND windowHwnd)
{
    HWND _windowTreeHwnd = GetDlgItem(*this, IDC_WINDOWTREE);
    HTREEITEM actualItem = TreeView_GetFirstVisible(_windowTreeHwnd);

    // Search by the item into the list
    while (actualItem != NULL)
    {
        TVITEM tvi = {0};
        tvi.hItem = actualItem;
        tvi.mask = TVIF_PARAM;
        TreeView_GetItem(_windowTreeHwnd, &tvi);

        // If it is the item, select it and break the search
        if ((HWND)tvi.lParam == windowHwnd)
        {
            TreeView_SelectItem(_windowTreeHwnd, actualItem);
            break;
        }

        // Find the next item in the TreeView
        HTREEITEM nextItem = TreeView_GetChild(_windowTreeHwnd, actualItem);
        if (nextItem == NULL)
            nextItem = TreeView_GetNextSibling(_windowTreeHwnd, actualItem);

        HTREEITEM parentItem = actualItem;
        while ((nextItem == NULL) && (parentItem != NULL))
        {
            parentItem = TreeView_GetParent(_windowTreeHwnd, parentItem);
            nextItem = TreeView_GetNextSibling(_windowTreeHwnd, parentItem);
        }
        actualItem = nextItem;
    }
}
Beispiel #3
0
void treeview_update_scroll(HWND htv, fn_treeview_update_scroll fn, void* ctx)
{
	TVITEMEX tvi;
	HTREEITEM htvi = TreeView_GetFirstVisible(htv);
	TreeView_GetItem1(htv, htvi, &tvi, TVIF_PARAM | TVIF_CHILDREN, NULL);
	if (htvi && fn) {
		scroll::first_visible_lparam = tvi.lParam;
		fn(htv, htvi, tvi, ctx);
	}

	first_visible_lparam = 0;
}
Beispiel #4
0
    PTVDATA GetFirstVisible(void) {

        PTVDATA r       = NULL;
        HTREEITEM hItem = TreeView_GetFirstVisible(m_hWnd);

        if (NULL != hItem) {

            r = HandleToData(hItem);

        }

        return r;
    }
Beispiel #5
0
void TffdshowPageDec::presetChanged(const char_t *presetName)
{
    fillPresetsCbx();
    int previd = page ? page->uniqueID() : 0, prevVisId = hti2page(TreeView_GetFirstVisible(htv))->uniqueID();
    for (ThtiPages::iterator p = filterPages.begin(); p != filterPages.end(); p++) {
        deletePage(*p);
    }
    filterPages.clear();
    deciD->createPresetPages(presetName, this);
    showShowHide(previd);
    InvalidateRect(htv, NULL, FALSE);
    sortOrder();
    setFullHalf();
}
BOOL CAuditionAutoLauncher::SelectAudition()
{

	HWND hTreeCtrl = GetDlgItem(m_hMainWindow, m_iTreeCtrlID);
	if (NULL == hTreeCtrl ) {
		return FALSE;
	}

	HTREEITEM hTreeItem = TreeView_GetFirstVisible(hTreeCtrl);
	if (hTreeItem == NULL) {
		return FALSE;
	}

	if (FALSE == TreeView_SelectItem(hTreeCtrl, hTreeItem)) {
		return FALSE;
	}
	return TRUE;
}
Beispiel #7
0
VOID
TreeListGetColumnTextExtent(
	__in PTREELIST_OBJECT Object,
	__in ULONG Column,
	__out PLONG Extent 
	)
{
	HTREEITEM hTreeItem;
	HWND hWndTree;
	SIZE Size;
	SIZE_T Length;
	HDC hdc;
	TVITEM tvi = {0};
    int cxEdge;
	WCHAR Buffer[MAX_PATH];

	*Extent = 0;
    cxEdge = GetSystemMetrics(SM_CXEDGE);

	hWndTree = Object->hWndTree;
	hdc = GetDC(Object->hWndTree);

	hTreeItem = TreeView_GetFirstVisible(hWndTree);

	while (hTreeItem != NULL) {

		tvi.mask = TVIF_PARAM;
		tvi.hItem = hTreeItem;
		TreeView_GetItem(hWndTree, &tvi);

		TreeListFormatValue(Object, Object->FormatCallback, hTreeItem, 
			               (PVOID)tvi.lParam, Column, Buffer, MAX_PATH);

		StringCchLength(Buffer, MAX_PATH, &Length);
		GetTextExtentPoint32(hdc, Buffer, (int)Length, &Size);

		*Extent = max(*Extent, Size.cx + cxEdge * 2);

		hTreeItem = TreeView_GetNextVisible(hWndTree, hTreeItem);
	}
	
	ReleaseDC(Object->hWndTree, hdc);
}
Beispiel #8
0
VOID
TreeListGetTreeRectMostRight(
	__in PTREELIST_OBJECT Object,
	__out PLONG MostRight
	)
{
	HTREEITEM hTreeItem;
	HWND hWndTree;
	RECT Rect;

	hWndTree = Object->hWndTree;
	hTreeItem = TreeView_GetFirstVisible(hWndTree);
	*MostRight = 0;

	while (hTreeItem != NULL) {
		TreeView_GetItemRect(hWndTree, hTreeItem, &Rect, TRUE);
		*MostRight = max(Rect.right, *MostRight);
		hTreeItem = TreeView_GetNextVisible(hWndTree, hTreeItem);
	}
}
Beispiel #9
-2
void TffdshowPageDec::showShowHide(int previd, int prevVisId)
{
    if (previd == 0 && page) {
        previd = page->uniqueID();
    }
    if (prevVisId == 0) {
        prevVisId = hti2page(TreeView_GetFirstVisible(htv))->uniqueID();
    }
    for (ThtiPages::reverse_iterator rp = filterPages.rbegin(); rp != filterPages.rend(); rp++)
        if ((*rp)->hti) {
            TreeView_DeleteItem(htv, (*rp)->hti);
            (*rp)->hti = NULL;
            for (TconfPages::iterator i = (*rp)->begin(); i != (*rp)->end(); i++) {
                (*i)->hti = NULL;
            }
        }
    TVINSERTSTRUCT tvis;
    tvis.hParent = htiPresets;
    tvis.hInsertAfter = htiBeforeShowHide;
    tvis.item.mask = TVIF_PARAM | TVIF_TEXT;
    HTREEITEM htiLast0 = NULL;
    for (ThtiPages::const_iterator p = filterPages.begin(); p != filterPages.end(); p++)
        if ((*p)->getPage()->getShow()) {
            tvis.item.lParam = (LPARAM) * p;
            tvis.item.pszText = LPTSTR((*p)->front()->dialogName());
            tvis.item.iImage = tvis.item.iSelectedImage = 0;
            tvis.hParent = ((*p)->getPage()->filterPageID > 1) ? htiLast0 : htiPresets;
            HTREEITEM hti = TreeView_InsertItem(htv, &tvis);
            (*p)->hti = hti;
            for (TconfPages::iterator i = (*p)->begin(); i != (*p)->end(); i++) {
                (*i)->hti = hti;
            }
            if ((*p)->getPage()->filterPageID <= 1) {
                if (htiLast0) {
                    TreeView_Expand(htv, htiLast0, TVE_EXPAND);
                }
                htiLast0 = hti;
            }
        }
    if (htiLast0) {
        TreeView_Expand(htv, htiLast0, TVE_EXPAND);
    }
    sortOrder();
    if (previd) {
        treeSelectItem(previd, prevVisId);
    }
}