Initial
This commit is contained in:
499
imagelst/SCRAPS.TXT
Normal file
499
imagelst/SCRAPS.TXT
Normal file
@@ -0,0 +1,499 @@
|
||||
|
||||
WORD addChildNode(const TreeViewItem &someTreeViewItem,const String &parentString);
|
||||
WORD addSiblingNode(const TreeViewItem &someTreeViewItem,const String &parentString);
|
||||
|
||||
WORD TreeView::addChildNode(const TreeViewItem &someTreeViewItem,const String &parentString)
|
||||
{
|
||||
HTREEITEM hParent(0);
|
||||
HTREEITEM hTreeItem;
|
||||
HTREEITEM hPrevItem;
|
||||
HTREEITEM hChildItem;
|
||||
String bufferString;
|
||||
TreeViewInsert viewInsert;
|
||||
TreeViewItem viewItem;
|
||||
|
||||
bufferString.length(255);
|
||||
hTreeItem=getChild(TVGN_ROOT);
|
||||
while(hTreeItem)
|
||||
{
|
||||
hChildItem=getChild(hTreeItem);
|
||||
if(hChildItem&&searchInsertChild(someTreeViewItem,viewInsert,parentString,hChildItem))
|
||||
{
|
||||
insertItem(viewInsert);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
viewItem.mask(TreeViewItem::MaskText);
|
||||
viewItem.item(hTreeItem);
|
||||
viewItem.text(bufferString);
|
||||
getItem(viewItem);
|
||||
if(parentString==viewItem.text())
|
||||
{
|
||||
hParent=hTreeItem;
|
||||
viewItem=TreeViewItem();
|
||||
viewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
viewItem.text(someTreeViewItem.text());
|
||||
viewItem.image(someTreeViewItem.image());
|
||||
viewItem.selectedImage(someTreeViewItem.selectedImage());
|
||||
viewItem.lParam(someTreeViewItem.lParam());
|
||||
viewInsert.parent(hParent);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewInsert.viewItem(viewItem);
|
||||
insertItem(viewInsert);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
WORD TreeView::addSiblingNode(const TreeViewItem &someTreeViewItem,const String &parentString)
|
||||
{
|
||||
HTREEITEM hParent(0);
|
||||
HTREEITEM hTreeItem;
|
||||
HTREEITEM hPrevItem;
|
||||
HTREEITEM hChildItem;
|
||||
String bufferString;
|
||||
TreeViewInsert viewInsert;
|
||||
TreeViewItem viewItem;
|
||||
|
||||
bufferString.length(255);
|
||||
hTreeItem=getChild(TVGN_ROOT);
|
||||
while(hTreeItem)
|
||||
{
|
||||
hChildItem=getChild(hTreeItem);
|
||||
if(hChildItem&&searchInsertSibling(someTreeViewItem,viewInsert,parentString,hTreeItem,hChildItem))
|
||||
{
|
||||
insertItem(viewInsert);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
viewItem.mask(TreeViewItem::MaskText);
|
||||
viewItem.item(hTreeItem);
|
||||
viewItem.text(bufferString);
|
||||
getItem(viewItem);
|
||||
if(parentString==viewItem.text())
|
||||
{
|
||||
hParent=hTreeItem;
|
||||
viewItem=TreeViewItem();
|
||||
viewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
viewItem.text(someTreeViewItem.text());
|
||||
viewItem.image(someTreeViewItem.image());
|
||||
viewItem.selectedImage(someTreeViewItem.selectedImage());
|
||||
viewItem.lParam(someTreeViewItem.lParam());
|
||||
viewInsert.parent(hParent);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewInsert.viewItem(viewItem);
|
||||
insertItem(viewInsert);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
WORD TreeView::searchInsertChild(TreeViewItem &viewItem,TreeViewInsert &viewInsert,const String &parentString,HTREEITEM hParent)
|
||||
{
|
||||
WORD searchResult(FALSE);
|
||||
HTREEITEM hPrevItem(FALSE);
|
||||
HTREEITEM hTreeItem(hParent);
|
||||
HTREEITEM hChildItem;
|
||||
TreeViewItem searchItem;
|
||||
String bufferString;
|
||||
|
||||
bufferString.length(String::MaxString);
|
||||
while(hTreeItem)
|
||||
{
|
||||
hChildItem=getChild(hTreeItem);
|
||||
if(hChildItem&&searchInsertChild(viewItem,viewInsert,parentString,hChildItem))
|
||||
{
|
||||
searchResult=TRUE;
|
||||
break;
|
||||
}
|
||||
searchItem.mask(TreeViewItem::MaskText);
|
||||
searchItem.item(hTreeItem);
|
||||
searchItem.text(bufferString);
|
||||
getItem(searchItem);
|
||||
if(searchItem.text()==parentString)
|
||||
{
|
||||
viewInsert.parent(hTreeItem);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
viewInsert.viewItem(viewItem);
|
||||
searchResult=TRUE;
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return searchResult;
|
||||
}
|
||||
|
||||
|
||||
WORD TreeView::searchInsertSibling(TreeViewItem &viewItem,TreeViewInsert &viewInsert,const String &parentString,HTREEITEM hParent,HTREEITEM hChildItem)
|
||||
{
|
||||
WORD searchResult(FALSE);
|
||||
HTREEITEM hPrevItem(FALSE);
|
||||
HTREEITEM hTreeItem(hChildItem);
|
||||
HTREEITEM hChildNode;
|
||||
TreeViewItem searchItem;
|
||||
String bufferString;
|
||||
|
||||
bufferString.length(String::MaxString);
|
||||
while(hTreeItem)
|
||||
{
|
||||
hChildNode=getChild(hTreeItem);
|
||||
if(hChildNode&&searchInsertSibling(viewItem,viewInsert,parentString,hTreeItem,hChildNode))
|
||||
{
|
||||
searchResult=TRUE;
|
||||
break;
|
||||
}
|
||||
searchItem.mask(TreeViewItem::MaskText);
|
||||
searchItem.item(hTreeItem);
|
||||
searchItem.text(bufferString);
|
||||
getItem(searchItem);
|
||||
if(searchItem.text()==parentString)
|
||||
{
|
||||
viewInsert.parent(hParent);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
viewInsert.viewItem(viewItem);
|
||||
searchResult=TRUE;
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return searchResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// mhTreeViewWnd=::CreateWindow("SysTreeView32","",WS_VISIBLE|WS_BORDER|WS_CHILD|viewFlags,
|
||||
// winRect.left(),winRect.top(),winRect.right(),winRect.bottom(),
|
||||
// parentWindow(),(HMENU)TreeViewID,TreeView::processInstance(),0);
|
||||
// mhTreeViewWnd=::CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_LEFT|WS_EX_LTRREADING|WS_EX_RIGHTSCROLLBAR,
|
||||
// "SysTreeView32","",WS_CHILD|WS_VISIBLE|TVS_HASBUTTONS|TVS_HASLINES|TVS_EDITLABELS,
|
||||
// winRect.left(),winRect.top(),winRect.right(),winRect.bottom(),
|
||||
// parentWindow(),(HMENU)TreeViewID,TreeView::processInstance(),0);
|
||||
// ::UpdateWindow(mhTreeViewWnd);
|
||||
|
||||
|
||||
WORD TreeView::addChildNode(const TreeViewItem &someTreeViewItem,const String &parentString)
|
||||
{
|
||||
HTREEITEM hParent(0);
|
||||
HTREEITEM hTreeItem;
|
||||
HTREEITEM hPrevItem;
|
||||
String bufferString;
|
||||
|
||||
bufferString.length(255);
|
||||
hTreeItem=getChild(TVGN_ROOT);
|
||||
while(hTreeItem)
|
||||
{
|
||||
TreeViewItem viewItem;
|
||||
|
||||
viewItem.mask(TreeViewItem::MaskText);
|
||||
viewItem.item(hTreeItem);
|
||||
viewItem.text(bufferString);
|
||||
getItem(viewItem);
|
||||
|
||||
|
||||
|
||||
if(parentString==viewItem.text())
|
||||
{
|
||||
hParent=hTreeItem;
|
||||
while(hTreeItem){hPrevItem=hTreeItem;hTreeItem=getChild(hTreeItem);}
|
||||
TreeViewInsert viewInsert;
|
||||
viewItem=TreeViewItem();
|
||||
viewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
viewItem.text(someTreeViewItem.text());
|
||||
viewItem.image(someTreeViewItem.image());
|
||||
viewItem.selectedImage(someTreeViewItem.selectedImage());
|
||||
viewItem.lParam(someTreeViewItem.lParam());
|
||||
viewInsert.parent(hParent);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewInsert.viewItem(viewItem);
|
||||
insertItem(viewInsert);
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
WORD TreeView::searchInsert(const TreeItem &viewItem,TreeViewInsert &viewInsert,const String &parentString,HTREEITEM hParent)
|
||||
{
|
||||
WORD searchResult(FALSE);
|
||||
HTREEITEM hPrevItem(FALSE);
|
||||
HTREEITEM hTreeItem(hParent);
|
||||
TreeViewItem searchItem;
|
||||
String bufferString;
|
||||
|
||||
bufferString.length(String::MaxString);
|
||||
while(hTreeItem)
|
||||
{
|
||||
searchItem.mask(TreeViewItem::MaskText);
|
||||
searchItem.item(hTreeItem);
|
||||
searchItem.text(bufferString);
|
||||
getItem(searchItem);
|
||||
if(searchItem.text()==parentString)
|
||||
{
|
||||
viewInsert.parent(hParent);
|
||||
viewInsert.insertAfter(hPrevItem);
|
||||
viewInsert.viewItem(viewItem);
|
||||
searchResult=TRUE;
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return searchResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
WORD TreeView::addChildNode(DWORD indexImage,const String &textString,const String &parentString,DWORD userData)
|
||||
{
|
||||
treeViewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
treeViewItem.text(textString);
|
||||
treeViewItem.image(indexImage);
|
||||
treeViewItem.selectedImage(I_IMAGECALLBACK);
|
||||
treeViewItem.lParam(userData);
|
||||
treeViewInsert.parent(hParent);
|
||||
treeViewInsert.insertAfter(hPrevItem);
|
||||
treeViewInsert.viewItem(treeViewItem);
|
||||
insertItem(treeViewInsert);
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
WORD TreeView::addChildNode(DWORD indexImage,const String &textString,const String &parentString,DWORD userData)
|
||||
{
|
||||
HTREEITEM hParent(0);
|
||||
HTREEITEM hTreeItem;
|
||||
HTREEITEM hPrevItem;
|
||||
String bufferString;
|
||||
|
||||
bufferString.length(255);
|
||||
hTreeItem=getChild(TVGN_ROOT);
|
||||
while(hTreeItem)
|
||||
{
|
||||
TreeViewItem treeViewItem;
|
||||
|
||||
treeViewItem.mask(TVIF_TEXT);
|
||||
treeViewItem.item(hTreeItem);
|
||||
treeViewItem.text(bufferString);
|
||||
getItem(treeViewItem);
|
||||
if(parentString==treeViewItem.text())
|
||||
{
|
||||
hParent=hTreeItem;
|
||||
while(hTreeItem)
|
||||
{
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getChild(hTreeItem);
|
||||
}
|
||||
TreeViewInsert treeViewInsert;
|
||||
TreeViewItem treeViewItem;
|
||||
treeViewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
treeViewItem.text(textString);
|
||||
treeViewItem.image(indexImage);
|
||||
treeViewItem.selectedImage(I_IMAGECALLBACK);
|
||||
treeViewItem.lParam(userData);
|
||||
treeViewInsert.parent(hParent);
|
||||
treeViewInsert.insertAfter(hPrevItem);
|
||||
treeViewInsert.viewItem(treeViewItem);
|
||||
insertItem(treeViewInsert);
|
||||
break;
|
||||
}
|
||||
hPrevItem=hTreeItem;
|
||||
hTreeItem=getNextSibling(hTreeItem);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
HTREEITEM FindOrAddTreeViewItem(HWND hWndTV,HTREEITEM hParent,int iImage,int iSelectedImage,LPSTR szText,LPARAM lParam)
|
||||
{
|
||||
TV_ITEM tvItem; // Temporary item
|
||||
HTREEITEM hItem; // Handle to item
|
||||
HTREEITEM hPrevItem; // Handle to previous item
|
||||
char szBuffer[256]; // Temporary buffer
|
||||
|
||||
// Get the first child of the passed in parent
|
||||
hItem=TreeView_GetChild(hWndTV,hParent);
|
||||
// Loop through all children, looking for an already existing child.
|
||||
while(hItem)
|
||||
{
|
||||
tvItem.mask= TVIF_TEXT; // We want the text
|
||||
tvItem.hItem= hItem; // Indicate the item to fetch
|
||||
tvItem.pszText=szBuffer; // Indicate the buffer
|
||||
tvItem.cchTextMax=sizeof(szBuffer); // Indicate buffer's size
|
||||
::TreeView_GetItem(hWndTV,&tvItem); // Fetch, Rover!
|
||||
|
||||
if(!lstrcmpi(tvItem.pszText,szText))return hItem;
|
||||
hPrevItem=hItem; // Remember the last item, since the next line
|
||||
// of code will eventually put a NULL in the
|
||||
// hItem variable, and we want to know the
|
||||
// last item under the parent in case we need
|
||||
// to add a new item.
|
||||
|
||||
// Get the next sibling item in the TreeView, if any.
|
||||
hItem=::TreeView_GetNextSibling(hWndTV,hItem);
|
||||
}
|
||||
|
||||
// If we made it here, then the item needs to be added onto the end of the list
|
||||
return AddTreeViewItem ( hWndTV, // Handle of TreeView
|
||||
hParent, // Parent item
|
||||
hPrevItem, // Last child in list (from above loop)
|
||||
iImage, // These are the parameters
|
||||
iSelectedImage,// passed into this
|
||||
szText, // function.
|
||||
lParam //
|
||||
);
|
||||
}
|
||||
#endif
|
||||
#if 0
|
||||
|
||||
if (hWndTreeView)
|
||||
{
|
||||
TreeView_SetImageList ( hWndTreeView, hCoasterImageList, 0 );
|
||||
ImageList_SetBkColor ( hCoasterImageList, GetSysColor ( COLOR_WINDOW ));
|
||||
FillTreeView ( hWndTreeView );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// enum StateFlags{StateFocused=TVIS_FOCUSED,StateSelected=TVIS_SELECTED,
|
||||
// StateCut=TVIS_CUT,StateDropHilited=TVIS_DROPHILITED,StateBold=TVIS_BOLD,
|
||||
// StateExpanded=TVIS_EXPANDED,StateExpandedOnce=TVIS_EXPANDEDONCE};
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
TreeViewInfo &treeViewInfo=((TreeViewInfo&)*((TreeViewInfo*)someCallbackData.lParam()));
|
||||
TreeViewNotify &treeViewNotify=(*((TreeViewNotify*)someCallbackData.lParam()));
|
||||
|
||||
if(TreeViewID==((NotifyMessageHeader&)treeViewInfo).idFrom())
|
||||
{
|
||||
switch(((NotifyMessageHeader&)treeViewInfo).code())
|
||||
{
|
||||
case TVN_SELCHANGING :
|
||||
return tvnSelChanging(treeViewNotify);
|
||||
case TVN_SELCHANGED :
|
||||
return tvnSelChanged(treeViewNotify);
|
||||
case TVN_GETDISPINFO :
|
||||
return tvnGetDispInfo(treeViewInfo);
|
||||
case TVN_SETDISPINFO :
|
||||
return tvnSetDispInfo(treeViewInfo);
|
||||
case TVN_ITEMEXPANDING :
|
||||
return tvnItemExpanding(treeViewInfo);
|
||||
case TVN_BEGINDRAG :
|
||||
return tvnBeginDrag(treeViewNotify);
|
||||
case TVN_BEGINRDRAG :
|
||||
return tvnBeginRDrag(treeViewNotify);
|
||||
case TVN_DELETEITEM :
|
||||
return tvnDeleteItem(treeViewInfo);
|
||||
case TVN_BEGINLABELEDIT :
|
||||
return tvnBeginLabelEdit(treeViewInfo);
|
||||
case TVN_ENDLABELEDIT :
|
||||
return tvnEndLabelEdit(treeViewInfo);
|
||||
case TVN_KEYDOWN :
|
||||
return tvnKeyDown(treeViewInfo);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
if(((TreeViewItem&)treeViewInfo).state()&TVIS_EXPANDED)
|
||||
{
|
||||
((TreeViewItem&)treeViewInfo).image(FolderOpen);
|
||||
((TreeViewItem&)treeViewInfo).selectedImage(FolderOpen);
|
||||
}
|
||||
else
|
||||
{
|
||||
((TreeViewItem&)treeViewInfo).image(FolderClosed);
|
||||
((TreeViewItem&)treeViewInfo).selectedImage(FolderClosed);
|
||||
}
|
||||
|
||||
|
||||
WNDPROC sOrigProc;
|
||||
void subClass(HINSTANCE hProcessInstance);
|
||||
__declspec(dllexport) LONG FAR PASCAL windowProcedure(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
|
||||
// ********************************************************************************
|
||||
|
||||
void subClass(HINSTANCE hProcessInstance)
|
||||
{
|
||||
WNDCLASS wndClass;
|
||||
::GetClassInfo(0,"SysTreeView32",&wndClass);
|
||||
wndClass.lpszClassName="SysTreeView32Sk";
|
||||
sOrigProc=wndClass.lpfnWndProc;
|
||||
wndClass.lpfnWndProc=(WNDPROC)windowProcedure;
|
||||
wndClass.hInstance=hProcessInstance;
|
||||
::RegisterClass(&wndClass);
|
||||
}
|
||||
|
||||
long FAR PASCAL windowProcedure(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
|
||||
{
|
||||
if(WM_RBUTTONUP==message)::MessageBeep(0);
|
||||
return sOrigProc(hWnd,message,wParam,lParam);
|
||||
}
|
||||
|
||||
|
||||
|
||||
WORD TreeView::appendNode(NodeType nodeType,DWORD itemIndex,const String &text,DWORD userData,WORD selected)
|
||||
{
|
||||
HTREEITEM hInsertItem;
|
||||
TreeViewItem treeViewItem;
|
||||
TreeViewInsert treeViewInsert;
|
||||
// String workString;
|
||||
|
||||
// workString=text;
|
||||
treeViewItem.mask(TreeViewItem::MaskText|TreeViewItem::MaskImage|TreeViewItem::MaskSelectedImage|TreeViewItem::MaskParam);
|
||||
treeViewItem.text((LPSTR)(String&)text);
|
||||
treeViewItem.maxText(text.length());
|
||||
treeViewItem.image(itemIndex);
|
||||
treeViewItem.selectedImage(I_IMAGECALLBACK);
|
||||
treeViewItem.lParam(userData);
|
||||
if(NodeChild==nodeType)treeViewInsert.parent(mLastInsert.insertAfter());
|
||||
else treeViewInsert.parent(mLastInsert.parent());
|
||||
treeViewInsert.insertAfter(mLastInsert.insertAfter());
|
||||
treeViewInsert.viewItem(treeViewItem);
|
||||
hInsertItem=insertItem(treeViewInsert);
|
||||
if(!hInsertItem)return FALSE;
|
||||
if(selected)selectItem(hInsertItem);
|
||||
return (hInsertItem?TRUE:FALSE);
|
||||
}
|
||||
Reference in New Issue
Block a user