LiFan
2025-02-13 03ef0b51103c735077c784c7df81ae2bcc1599ab
jrj/xframe/xcontrol/xtreeview.hpp
@@ -49,6 +49,7 @@
 #define TV_FIRST 0x1100 
#ifdef XWIN
struct SCROLLINFO 
{
    int cbSize;
@@ -59,6 +60,8 @@
    int  nPos;
    int  nTrackPos;
};
#endif
struct tvitem 
{
@@ -123,7 +126,7 @@
            return (HTREEITEM)SendMessage(GetHWND(), TVM_GETNEXTITEM, TVGN_CARET,0);             
    }
    
    string GetItemLabel(HTREEITEM hItem)
    xstring GetItemLabel(HTREEITEM hItem)
    {
             int TVM_GETITEM = TV_FIRST + 62;
        
@@ -169,6 +172,11 @@
            return  tvi.lParam;
    }
    
    int SetItemData(HTREEITEM hItem, KXMLDOMElement value)
    {
        return  SetItemData(hItem, (LPARAM)value.ptr());
    }
    int SetItemData(HTREEITEM hItem,LPARAM value)
    {
            int TVM_SETITEM = TV_FIRST + 63;
@@ -387,7 +395,7 @@
        return InsertChildItemEx(hItem, label, ele.ptr(), image,image2);
    }
    HTREEITEM InsertChildItemEx(HTREEITEM hItem,string label,int data,int image = 0,int image2 = 0)
    HTREEITEM InsertChildItemEx(HTREEITEM hItem,string label,LPARAM data,int image = 0,int image2 = 0)
    {
        int TVM_INSERTITEM = TV_FIRST + 50;
        
@@ -505,28 +513,27 @@
        SendMessage(GetHWND(), TVM_GETITEMW, 0,(LPARAM)&xitem);
        return xitem.cChildren;
    }
#if 0
    string PopupMenu(string str)
    xstring PopupMenu(string str)
    {
       return (str)SendMessage(GetHWND(), 0x402, (WPARAM)str, 0);
       return (string)SendMessage(GetHWND(), 0x402, (WPARAM)str, 0);
    }
    string PopupMenu(KXMLDOMElement e)
    {
        return PopupMenu(e.xml);
        return PopupMenu(e.xml());
    }
#endif
    void SetLineAtRoot(bool value)
    {
        int GWL_STYLE = -16;
        int TVS_LINESATROOT = 0x0004;
        int style = GetWindowLong(GetHWND(), GWL_STYLE);
        int GWL_STYLE_ = -16;
        int TVS_LINESATROOT_ = 0x0004;
        int style = GetWindowLong(GetHWND(), GWL_STYLE_);
        if (value)
            SetWindowLong(GetHWND(), GWL_STYLE, style | TVS_LINESATROOT);
            SetWindowLong(GetHWND(), GWL_STYLE_, style | TVS_LINESATROOT_);
        else
            SetWindowLong(GetHWND(), GWL_STYLE, style & ~TVS_LINESATROOT);
            SetWindowLong(GetHWND(), GWL_STYLE_, style & ~TVS_LINESATROOT_);
    }
};